Lt;структура-1>, ...,<структура-N>.

Конкретизация переменной – связывание переменной языка ПРОЛОГ с конкретным значением.

Конкретизация переменной обеспечивает возврат искомых значений переменных по запросам.

Выполнение запроса в языке ПРОЛОГ – процесс доказательства выводимости всех подцелей целевого утверждения методом резолюции с использовании линейной по входу стратегии.

Получив запрос, состоящий из нескольких предикатов, интерпретатор выбирает первый в последовательности запроса предикат и делает попытку (если этот предикат не встроенный) согласовать его с утверждениями, составляющими базы фактов и правил, для чего выполняется сопоставление этого предиката со всеми фактами и заголовками этих правил в простом линейном порядке до тех пор, пока оно не даст положительного результата. Если этого не происходит, ответом на запрос будет "Нет". В ходе согласования возможна конкретизация переменных значениями.

Если в ходе просмотра произошло сравнение с заголовком правила, то тело правила рекурсивно рассматривается в качестве нового целевого утверждения, доказательство которого реализуется с помощью рассматриваемой здесь процедуры.

Удовлетворив один предикат (подцель) запроса, интерпретатор переходит к соседнему справа, обрабатывая его аналогичным образом.

Запрос считается выполненным после удовлетворения его последней (крайней справа) подцели. Если же какая-либо подцель (но не первая) не может быть удовлетворена (согласована), то в работу включается механизм бэктрекинга, который заставляет интерпретатор, передвигаясь по предикатам целевого утверждения справа налево, вновь согласовывать эти предикаты, но уже на новых утверждениях программы. Если попытка пересогласовать какой-либо предикат (подцель) удается, то интерпретатор продолжает рассмотрение подцелей от данной в обычном порядке (слева направо).

Применение ПРОЛОГа для решения интеллектуальных задач, в частности в экспертных системах удачно настолько, что породило мнение, что ПРОЛОГ не является языком программирования в чистом виде. Его можно считать и оболочкой экспертной системы, и реализацией интеллектуальной база данных (не реляционной).

Машинная реализация языка предиката первого порядка имеет ряд серьезных проблем, которые связаны с универсальностью аппарата логического вывода. 1-я проблема — монотонность рассуждений (в процессе логического вывода нельзя отказаться от промежуточного заключения, если становятся известными дополнительные факты, которые свидетельствуют о том, что полученные на основе этого заключения решения не приводят к желаемому результату. 2-я проблема — комбинаторный взрыв ( в процессе логического вывода невозможно применять оценочные критерии для выбора очередного правила. Безсистемное применение правил в расчете на случайное доказательство приводит к тому, что возникает много лишних цепочек ППФ, активных в определенный момент времени. Это чаще всего приводит к переполнению рабочей памяти.

 

Билет №22








Дата добавления: 2016-05-11; просмотров: 1536;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.