Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Volkov_Zachet_1

.docx
Скачиваний:
0
Добавлен:
19.06.2026
Размер:
35.19 Mб
Скачать

Нерекурсивные правила.

  1. Термы. Их классификация, назначение и свойства. Умение определять вид каждого терма в программе.

Это

  1. Основные процедуры пролога, в том числе правила сопоставления термов. Умение проводить сопоставление термов.

  1. Структура программы на Visual Prolog. Состав, назначение.

  1. Виды предложений в прологе. Их состав и назначение. Умение определять вид каждого предложения. Умение записать указанную информацию предложением заданного вида. Понимать, как меняется смысл информации при переносе ее из одного вида предложения в другой или из одной части предложения в другую.

Прологовские предложения бывают трех типов: факты, правила и запросы.

• Факты содержат утверждения, которые являются всегда, безусловно верными.

Существует такой элемент с названием кон, кодом c1, с соседними узлами 1 и 2.

• Правила содержат утверждения, истинность которых зависит от некоторых условий.

Между элементами с1 и r1 существует общий узел 1, если есть элемент с названием кон, кодом c1, с соседними узлами 1 и 2 и элемент с названием рез, кодом r1, с соседними узлами 1 и 4

• С помощью запросов пользователь может запрашивать систему о том, какие утверждения являются истинными.

Существует ли элемент с названием кон, кодом с1 и соседними узлами 1,2?

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

  2. Разработка правила по его логической модели.

У каждого своё, ориентируясь на ИЗ1.

  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. Передача данных из одного предложения в другое. Выявление необходимых и достаточных условий для этого.

  2. Пошаговое выполнения программы с рассмотрением сопоставления термов и состояния переменных.

Индивидуально по ИЗ1.

  1. Поэтапное выполнение разработки нерекурсивных правил.

Индивидуально по ИЗ1.

Рекурсивные правила

НЕОБХОДИМОЕ УСЛОВИЕ РЕКУРСИВНОСТИ ПРАВИЛА:

наличие в левой и правой части одноименного предиката.

За счет каких процедур происходит передача данных при рекурсии?

Возврат найденного значения в переменную запроса осуществляется на основе двух процедур:

Передача внутри предложения – за счцет лексического диапазона одноименных переменных (требуются две или более переменных с одинаковым именем в пределах одного предложения);

Передача данных из одного предложения в другое за счет связанных при сопоставлении переменных (необходимы именованные переменные, стоящие на соответствующих местах в разных предложениях. Имена переменных при этом могут быть любыми).

Сформулировать условия для передачи данных из одного предложения в другое при рекурсивном обращении.

Процедуру рекурсивного сопоставления.

Сопоставление правой части правила с его левой частью по определению является рекурсивным обращением.

Рекурсивное обращение из правой части правила к его левой части эквивалентно обращению к новому предложению.

Левая часть правила должна рассматриваться при этом как новое предложение.

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

НЕОБХОДИМОЕ УСЛОВИЕ ДЛЯ ВОЗВРАТА: переменные должны быть связаны (лексическим диапазоном / сопоставлением) и должны находиться в неконкретизированном состоянии.

Соседние файлы в предмете Теория обработки информации