Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Parent) torn, pat)





parent! torn, Y) predecessor^ Y, pat)


no

Рис. 1.8. Первый этап выполнения Рис. 1.9. Продолжение схемы выполнения программы. программы; цель, показанная ввер- показанной на рис. 1.8 ху, является истинной, если ис­тинно цгль. пакошннаяяиизу

Теперь система Prolog сталкивается с необходимостью заниматься двумя целями и пытается их достичь в том порядке, в каком они записаны. Первая цель достигает­ся легко, поскольку она соответствует одному из фактов в программе. Это соответст­вие вынуждает выполнить конкретизацию переменной Y и подстановку вместо нее значения bob. Таким образом, достигается первая цель, и оставшаяся цель принима­ет вид

(bob, pat)

Для достижения данной цели снова используется правило prl. Следует отметить, что это (второе) применение того же правила не имеет ничего общего с его предыду­щим применением. Поэтому система Prolog использует в правиле новый набор пере­менных при каждом его применении. Чтобы продемонстрировать это, переименуем переменные в правиле prl для этого этапа применения правила следующим образом:

predecessor! X1, Z'):-

parent; X', Z'),

Голова данного правила должна соответствовать текущей цели predecessor [ bob, pat], поэтому:

х- = bob, z ■ = pat

Текущая цель заменяется следующей: parent (boh, pat)

Данная цель достигается сразу же, поскольку она представлена в программе в ви­де факта. На этом завершается формирование схемы выполнения, которая представ­лена в графическом виде на рис. 1.10.

Графическая схема выполнения программы (см. рис. 1.10) имеет форму дерева. Узлы дерева соответствуют целям или спискам целей, которые должны быть достиг­нуты. Дуги между узлами соответствуют этапам применения (альтернативных) пред­ложений программы, на которых цели одного узла преобразуются в цели другого уз­ла. Верхняя цель достигается после того, как будет найден путь от корневого узла (верхней цели) к лист-узлу, обозначенному как "yes". Лист носит метку "yes", если он представляет собой простой факт. Процесс выполнения программ Prolog состоит в поиске путей, оканчивающихся такими простыми фактами. В ходе поиска система Prolog может войти в одну из ветвей, не позволяющих достичь успеха. При обнару­жении того, что ветвь не позволяет достичь цели, система Prolog автоматически воз­вращается к предыдущему узлу и пытается использовать в этом узле альтернативное предложение.


Глава 1. Введение в Prolog



predecessor! torn, pat)


no правилу ргТ


по правилу рг2


 


parent! torn, pat)


parent) torn, Y) predecessor! Y, pat)


 


Y = bob






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 487 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2321 - | 2091 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.