Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Pred3( torn, pat)




V--------------


 


paren1(torn, pat)


pred3(torn, Y'J parent) Y, pat)


I

parent! torn, Y~) parent! V, pat)

Г = bob

parent! bob, pat)



Yes


 


pred4{X,Z):-

pred4(X, Y). parent! V, Z). prod4(X, Z):■ parent! X, Z).


Pred4(torn, pat)

Gt;


prad4(tom, Y') parent! Y', pat)

pred4(torn, Y') parent! Y", Y") parent! Y', pat)

pred4(torci, Y""J parent! V™, Y) parent! Y". Г) parent(Y\ pat)

Рис. 2.13, Поведение трех вариантов отношения predecessor при поиске ответа на вопрос о том, является ли Том предком Пэт

Это сравнение должно напоминать нам об общем проверенном на практике эври­стическом правиле в области решения задач: обычно лучше всего вначале пытаться проверить простейшую идею. Б данном случае все версии отношения predecessor основаны на следующих идеях.


Глава 2. Синтаксис и значение программ Prolog



1. Наиболее простая идея состоит в том, что нужно проверить, соответствуют ли отношению parent: два параметра отношения predecessor.

2. Более сложная идея состоит и том, чтобы найти кого-то, кто связывает друг с другом обоих людей (того, кто связан с ними отношениями, с одной стороны, parent, а с другой стороны, predecessor).

Из всех этих четырех вариантов отношения predecessor только в варианте predl в первую очередь осуществляются простейшие действия. В отличие от этого, в варианте pred<3 в первую очередь всегда предпринимается попытка выполнить сложные действия, а варианты pred2 и ргеаЗ лежат между этими двумя крайно­стями. Поэтому даже без подробного изучения трассировок выполнения следует предпочесть вариант predl просто на основании правила, согласно которому вначале следует пытаться выполнить простейшие действия. Это правило и в целом может служить полезным руководящим указанием в программировании.

Рассматриваемые четыре варианта процедуры predecessor можно также срав­нить на основании изучения того, на какие типы вопросов позволяют находить отве­ты конкретные варианты программы и на какие типы вопросов они не дают ответов. Как оказалось, и вариант predl, и вариант prcd2 позволяют достичь ответа на во­просы любого типа о предках; вариант pred4 ни при каких условиях не позволяет достичь ответа, а вариант pced3 иногда позволяет найти ответ, а иногда нет. Ниже приведен один пример вопроса, на который вариант pred3 не позволяет найти ответ.?- Pred3(lie, jim),

Этот вопрос снова вводит систему в бесконечную последовательность рекурсивных вызовов. Поэтому вариант pred3 также нельзя считать правильным с процедурной точки зрения.





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


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


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

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

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2245 - | 2190 -


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

Ген: 0.011 с.