Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


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; ћы поможем в написании ваших работ!; просмотров: 473 | Ќарушение авторских прав


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

Ћучшие изречени€:

—тремитесь не к успеху, а к ценност€м, которые он дает © јльберт Ёйнштейн
==> читать все изречени€...

1364 - | 1305 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.012 с.