Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
flp.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
206.85 Кб
Скачать

65. Резолюция, правило резолюции как процедура вывода решений

Метод резолюции формируется следующим образом: если выводимы дизъюнкты P \/ Q и ~P \/ R, где P - атомарная формула, а Q и R обозначают остальные части дизъюнктов (возможно пустые), то выводим и дизъюнкт Q \/ R, называемый резольвентой.

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

Выполнение сопоставления может производиться либо явно, в теле правила с помощью встроенного предиката X=Y, либо неявно, при сопоставлении цели с фактом или головой правила. Сопоставление реализует основные операции обработки данных в логическом программировании:

однократное присваивание,

передача параметров,

создание структурных объектов,

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

67. Понятие инверсных вычислений

Уникальное чертой логического программирования является - инверсность вычислений: переменные в определении процедуры не делятся явно на входные и выходные. Переменные, определенные как входные, в определенных случаях могут быть и выходными.

68. Структура терма

Составные термы (функции) состоят из имени функции (нечислового атома) и списка аргументов (термов Пролога, то есть атомов, чисел, переменных или других составных термов), заключенных в круглые скобки и разделенных запятыми. итого(клиент(X,23,_), 71)

69. Переменная, конкретизация переменных

Переменная языка ПРОЛОГ - последовательность букв, цифр и знака "подчеркивание", обязательно начинающаяся с прописной буквы.

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

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

70. Атом

атом представляется последовательностью букв нижнего и верхнего регистра, цифр и символа подчеркивания '_', начинающейся со строчной буквы. Кроме того, любой набор допустимых символов, заключенный в апострофы, также является атомом. Наконец, комбинации специальных символов + - * = < > : & также являются атомами (следует отметить, что набор этих символов может отличаться в различных версиях Пролога).

71. Структура, функтор, компоненты

Структура. Имеет следующий вид:

функтор (компонента1, компонента2, ...)

функтор является предикатным именем и используется для обозначения предметного отношения (законченная информация о предметной сущности). Компоненты - атрибуты этого предметного отношения.

stud(petrov,173,54).

72. Факты, пример записи фактов

Если структура записана в виде константных объектов, то она называется фактом

mem(Atom,[X|Y]):-X=Atom. %-правило

или

mem(X,[X|_]). %факт, аналогичный правилу

73. Правило, пример записи правила

. Правила имеют следующий вид:

p0(x1,x2,xn):-p1(x1,x2,...),p2(),...,pn().

p0 - заголовок правила. p1..pn - подцели. Утверждение заканчивается точкой.

Пример : mem(Atom,[X|Y]):-X=Atom. %-правило

74. Процедура вывода решения, как процедура доказательства теоремы

Доказательство осуществляется методом резолюции.

Метод резолюции формируется следующим образом: если выводимые атомарные формулы (p || q) и (!p || R) то выводимы следующие формулы (Q || R), где p - заголовок атомарной формулы, Q и R - остальная часть формулы, возможно включающая комбинацию из других формул. (Q || R) - дизьюнктор (резолюция).

Процедура логического вывода, основанного на резолюция заключается в следующем: 1) к фразам, описывающих предметную область, добавляется отрицание теоремы. 2) выполняется поиск аксиомы, с которой может быть выполнена резолюция в простом линейном порядке. 3) При нахождении такой аксиомы, к применяется резолюция, и она добавляется во множество аксиом, описывающих предметную область. Эта процедура повторяется до тех пор, пока не будет получен пустой дизьюнкт.

Пустым дизьюнктом называется дизьюнкт следующего вида (p && !p)

В процессе доказательства выполняются унификации атомарных формул, при этом возможна конкретизация переменных. Унификация проходит успешно, если совпадают предикатные имена.

75. Поиск с возвратом

backtracking (поиск с возвратом)Процедура которая обеспечивает возврат в случае неудачи какой-либо из подцели (факт или другие правила), предыдущей ранней успешной подцели, и пересогласование её на новых утверждениях.

76. Сопоставление термов

Операции, которые присущи языкам Erlang, Refal, Prolog. В результате операции сопоставления может быть успех или неуспех. В случае успеха если один сопоставляемый объект является образцом, то переменные не конкретизированные получают какое-то значение.

77. Операционная модель машины вывода Пролога

Машина вывода — программа, которая выполняет логический вывод из предварительно построенной базы фактов и правил в соответствии с законами формальной логики.

  • Факт в данном случае — утверждение, являющееся постоянно истинным, например: «Адам является человеком».

  • Правило в данном случае — параметризованное утверждение, состоящее из двух частей: условия и результата,

78. Операторная нотация в прологе

Стандартная форма записи терма в прологе является запись терма в виде структуры, состоящие из функтора и компонента. Наряду с такой формой возможна и операторная нотация, при которой главный функтор структуры объявляется в виде оператора, а компоненты являются операндами. операторная нотация

79. Определение оператора и его свойства.

Cвойства операторов (позиция, приоритет, ассоциативность). Виды операторов: инфиксные, префиксные, постфиксные. :-op(приоритет, тип, функтор).

80. Пример "естественной языковой" записи программы на Прологе.

Например, факт с двумя объектами может быть описан так:

 likes(tom,computer).

На естественном языке вышеприведенный факт означает: "Тому нравится компьютер".

Общая форма записи правила имеет вид:

<заголовок правила>:- <тело  правила>.

Заголовок представляет собой  предикат. Тело состоит из термов, которые могут быть связаны между собой ","  или  ";". (","- означает И,";"- означает ИЛИ).

Между телом  и  заголовком стоит символ ":-", который означает ЕСЛИ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]