I. Вопрос 10.1
10 Рекурсивное описание алгоритма работы SLD-резолютивного
логического интерпретатора
Рекурсивное описание алгоритма работы SLD-резолютивного логического интерпре-
татора. Механизм бэктрекинга. Дерево вывода. Стратегии обхода дерева вывода при
поиске решений.
Определение 31. SLD-резолюция – разновидность метода линейной резолюции,
в котором для выбора второй посылки при выполнении резолютивного вывода ис-
пользуется некоторая детерминированная функция.
Рекурсивное описание:
1. Добавляем к множеству фактов отрицание цели.
2. Ищем формулу, такую, позитивная литера которой унифицируется с целью.
3. Применяем резолюцию (modus tollens) для каждой удачной унификации:
• если удалось получить пустой дизъюнкт ⇒ завершить.
• иначе продолжить.
4. Применяем этот же алгоритм. Цель = формула найденная на предыдущем ша-
ге.
Процесс можно представить графически в виде дерева вывода. (стр. 61 в книжке).
Это подчёркивает рекурсивную структуру SLD-вывода. При поиске решения проис-
ходит исследование ветвей дерева.
Определение 32. Дерево вывода – дерево, в котором развилки возникают только
в случае множественных вариантов доказательства, шаги конъюнкции – линейная
последовательность вершин.
В общем случае SLD-резолюция не должна быть упорядочена, но стратегия выбора
должна задаваться выбирающим правилом.
10.1 Стратегии обхода дерева вывода при поиске решений.
• Обход в глубину
от корня по некоторому направлени я, пока поиск не дойдёт до листа. В случае
необходимости поиска другого решения происходит откат назад (вверх) на 1
шаг – backtracking, и исследование других возможных вариантов решения.
• Обход в ширину
на каждом уровне одновременно рассматриваются все возможные варианты.
Наиболее короткие пути найдутся быстрее.
22