Языки логического программирования.

Логическое программирование поддерживается рядом языков, среди которых наиболее известен язык Prolog [10]. Он является универсальным, но применяется в основном для представления логических знаний и вывода при решении относительно простых интеллектуальных задач.

Язык Prolog позволяет создать логическую программу, формализующую предикатную базу знаний. Она декларативна и не содержит описания алгоритма решения задачи. Интерпретатор этого языка реализует правила резолюции и унификации при формировании ответов на запросы, проводя каждый раз доказательство, аналогичное приведенному ранее (см. параграф 2.3). По существу, интерпретатор является встроенной в язык машиной вывода и хорошо работает при решении простых задач. В сложных случаях, требующих других стратегий поиска, используются встроенные предикаты управления решением задачи, включая механизм повторения (предикат fail) и отсечения (предикат cut). Первый предикат требует перебрать все варианты решения, т.е. провести поиск полным перебором, второй — ограничивает перебор вариантов, чтобы сократить поиск или устранить лишние решения. Заметим, что включение механизма повторения позволяет выявить все множество решений, если их несколько.

Рассмотрим в качестве примера логическую программу, соответствующую простой базе правил, и работу интерпретатора при решении задачи с использованием этой программы.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >