Пролог | Введение
Вступление :
Пролог - это язык логического программирования. Он играет важную роль в искусственном интеллекте. В отличие от многих других языков программирования, 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/