Volkov_Zachet_1
.docxНерекурсивные правила.
Термы. Их классификация, назначение и свойства. Умение определять вид каждого терма в программе.
Это
Основные процедуры пролога, в том числе правила сопоставления термов. Умение проводить сопоставление термов.
Структура программы на Visual Prolog. Состав, назначение.
Виды предложений в прологе. Их состав и назначение. Умение определять вид каждого предложения. Умение записать указанную информацию предложением заданного вида. Понимать, как меняется смысл информации при переносе ее из одного вида предложения в другой или из одной части предложения в другую.
Прологовские предложения бывают трех типов: факты, правила и запросы.
• Факты содержат утверждения, которые являются всегда, безусловно верными.
Существует такой элемент с названием кон, кодом c1, с соседними узлами 1 и 2.
• Правила содержат утверждения, истинность которых зависит от некоторых условий.
Между
элементами с1 и r1 существует общий узел
1, если есть элемент с названием кон,
кодом c1, с соседними узлами 1 и 2 и элемент
с названием рез, кодом r1, с соседними
узлами 1 и 4
• С помощью запросов пользователь может запрашивать систему о том, какие утверждения являются истинными.
Существует
ли элемент с названием кон, кодом с1 и
соседними узлами 1,2?
Последовательность выполнения условий в правиле (целей в запросе), объединенных логическими операциями и , логическими операциями или.
Разработка правила по его логической модели.
У
каждого своё, ориентируясь на ИЗ1.
Передача данных внутри предложения. Выявление необходимых и достаточных условий для этого.
Передача данных через
логическое ИЛИ не будет
Слева
от ; получает ложь, так как Y2 конкретизируется
в значение 3, а 3<1 это ложь, переходим
в правую сторону от ; и если бы передача
данных работала, то при сопоставлении
с фактом получили бы ложь, т.к. Y2 нес в
себе значение 3, что не равно второму
аргументу факта (3 != 54353). Но программа
выдает yes, это говорит о том что мы
сопоставляли не конкретизированную
переменную со вторым аргументом факта
и переменная получила конкретизацию и
получилась истина.
Передача данных в факте будет
из запроса test2 конкретизируем аргументы X и Y левой части правила как 1 и 2 соответственно.
Переходим в 1 условие правила, вычисляем Y2 = X(=1)+Y(=2), после чего Y2 будет содержать значение 3.
Переходим во второе условие правила. test сопоставляется с фактом test.
X(=1) сопоставляется с 1 - истина
Y2(=3) сопоставляется с Y и конкретизирует его значением 3
третий аргумент в факте получил конкретизацию при помощи лексического диапазона переменной (данные передались в факте)
4 сопоставляется с Y(=3) результат - ложь.
Передача данных в
запросе будет
Передача данных из одного предложения в другое. Выявление необходимых и достаточных условий для этого.
Пошаговое выполнения программы с рассмотрением сопоставления термов и состояния переменных.
Индивидуально по ИЗ1.
Поэтапное выполнение разработки нерекурсивных правил.
Индивидуально по ИЗ1.
Рекурсивные правила
НЕОБХОДИМОЕ УСЛОВИЕ РЕКУРСИВНОСТИ ПРАВИЛА:
наличие в левой и правой части одноименного предиката.
За счет каких процедур происходит передача данных при рекурсии?
Возврат найденного значения в переменную запроса осуществляется на основе двух процедур:
Передача внутри предложения – за счцет лексического диапазона одноименных переменных (требуются две или более переменных с одинаковым именем в пределах одного предложения);
Передача данных из одного предложения в другое за счет связанных при сопоставлении переменных (необходимы именованные переменные, стоящие на соответствующих местах в разных предложениях. Имена переменных при этом могут быть любыми).
Сформулировать условия для передачи данных из одного предложения в другое при рекурсивном обращении.
Процедуру рекурсивного сопоставления.
Сопоставление правой части правила с его левой частью по определению является рекурсивным обращением.
Рекурсивное обращение из правой части правила к его левой части эквивалентно обращению к новому предложению.
Левая часть правила должна рассматриваться при этом как новое предложение.
Все переменные в левой части нового правила до сопоставления должны находиться в неконкретизированном состоянии. При этом переменные в правой части старого правила конкретизацию не теряют, так как из правой части предложения мы пока не вышли.
НЕОБХОДИМОЕ УСЛОВИЕ ДЛЯ ВОЗВРАТА: переменные должны быть связаны (лексическим диапазоном / сопоставлением) и должны находиться в неконкретизированном состоянии.
