Пролог | Введение

Опубликовано: 13 Июля, 2021


Вступление :

Пролог - это язык логического программирования. Он играет важную роль в искусственном интеллекте. В отличие от многих других языков программирования, Prolog задуман прежде всего как декларативный язык программирования. В прологе логика выражается в виде отношений (называемых фактами и правилами). В основе пролога лежит применяемая логика . Формулировка или вычисление выполняется путем выполнения запроса по этим отношениям.

Установка в Linux:

Откройте терминал (Ctrl + Alt + T) и введите:

sudo apt-get install swi-prolog

Синтаксис и основные поля:

В прологе мы констатируем некоторые факты. Эти факты составляют базу знаний системы. Мы можем запросить базу знаний. Мы получаем результат как утвердительный, если наш запрос уже находится в Базе знаний или он подразумевается Базой знаний, в противном случае мы получаем результат как отрицательный. Итак, Базу Знаний можно рассматривать как базу данных, к которой мы можем обращаться. Факты Пролога выражаются определенным образом. Факты содержат сущности и их отношения. Сущности записываются в круглых скобках через запятую (,). Их отношение выражается в начале и вне скобок. Каждый факт / правило заканчивается точкой (.). Итак, типичный факт пролога выглядит следующим образом:

Формат: отношение (entity1, entity2, .... k-ая сущность).

Пример :
друзья (раджу, махеш).
певец (сону).
нечетное_число (5).

Объяснение :
Эти факты можно интерпретировать как:
раджу и махеш - друзья.
Сону - певец.
5 - нечетное число.

Ключевая особенность :
1. Унификация: основная идея состоит в том, можно ли сделать данные термины для представления одной и той же структуры.
2. Отслеживание с возвратом: когда задача не выполняется, пролог выполняет обратную трассировку и пытается выполнить предыдущую задачу.
3. Рекурсия. Рекурсия - это основа любого поиска в программе.

Выполняемые запросы:
Типичный пролог-запрос можно задать так:

Вопрос 1:? - певец (сону).
Выход: да.

Пояснение: Поскольку наша база знаний содержит
вышеупомянутый факт, поэтому вывод был "Да", в противном случае
это было бы «Нет». Запрос 2:? - odd_number (7). Выход: Нет. Объяснение: поскольку наша база знаний не
содержат вышеуказанный факт, поэтому на выходе было «Нет».

Преимущества :
1. Легко построить базу данных. Не требует особых усилий по программированию.
2. Сопоставление с образцом очень просто. Поиск основан на рекурсии.
3. Он имеет встроенную обработку списков. Облегчает работу с любым алгоритмом, включающим списки.

Недостатки:
1. LISP (еще один язык логического программирования) доминирует над прологом в отношении функций ввода-вывода.
2. Иногда ввод-вывод бывает непростым.

Приложения :

Пролог широко используется в искусственном интеллекте (ИИ). Пролог также используется для сопоставления с образцом в деревьях синтаксического анализа естественного языка.

Ссылка 1: https://en.wikipedia.org/wiki/Prolog

Ссылка 2: http://www.swi-prolog.org/