Все шпаргалки / Логическое программирование / 

Основы программирования на Турбо-Прологе: методы и средства управления поиском решения.

Управление поиском с возвратом заключается в решении двух задач: включении поиска с возвратом при его отсутствии, и отключении поиска с возвратом при его наличии. Предикат fail, включает поиск с возвратом. Предикат ! (его называют «отсечение»), предотвращает поиск с возвратом. Действует предикат fail очень просто – цель с использованием данного предиката НИКОГДА не доказывается, а, следовательно, всегда включается поиск с возвратом. Используется для поиска всех ответов если в программе присутствует внутренняя цель. Еще одно средство для управления поиском с возвратом – это стандартный предикат ! (отсечение). Действие этого предиката прямо противоположно действию предиката fail. Если предикат fail всегда включает поиск с возвратом, то отсечение поиск с возвратом прекращает. Вид правила повтора, определяемого программистом: repeat. % повторить; repeat :- repeat. Когда при выполнении программы в одном из ее правил встретится подцель с предикатом repeat и выполнение следующих подцелей будет успешным, произойдет возвращение к подцели repeat для поиска других возможных решений, а ее обращение к правилу repeat создаст условия для отката и повторного выполнения следующих подцелей.Для задания режима трассировки в начало программы вводится директива компилятору trace. CALL: (имя выполняемого предиката и значения его аргументов); RETURN: (возвращаемый предикат со звездочкой впереди) - когда предикат или правило удовлетворяются; FAIL: (предикат) - когда предикат не удовлетворяется (не FILE); REDO - показывает, что производится поиск с возвратом.