Опубликован: 12.02.2014 | Уровень: для всех | Доступ: платный
Лекция 1:

Определение отношений в программе

Лекция 1: 123456 || Лекция 2 >

1.2. Декларативная семантика логической программы

В классическом случае все A_i в правиле >A_1\&A_2\&\dots \&A_k\to A_0 являются атомарными формулами, так что правило представляет собой хорновский дизъюнкт, т. е. дизъюнкт, содержащий не более одного положительного литерала:

\urcorner A_1\vee \urcorner A_2\vee \dots \vee \urcorner A_k \vee A_0.

Поэтому логическое программирование в узком смысле называют программированием на хорновских дизъюнктах.

Декларативная семантика рассматривает предложения классической логической программы как аксиомы, совокупность аксиом образует теорию. Цель программы — это теорема, которую нужно доказать. Декларативная семантика программы отвечает на вопрос, что делает программа.

Декларативным значением программы называется ее минимальная модель (которая единственна, с точностью до изоморфизма). Перейдем к основным определениям.

Подстановкой термов вместо переменных называется множество \theta пар термов вида x = t, где x — переменная, а t — терм, не содержащий переменную x. Иногда вместо равенств используются обозначения x | t или t | x.

Если A — формула, то выражение A \theta обозначает формулу, полученную из формулы A заменой всех вхождений переменной x на терм t для всех равенств x = t, имеющихся в подстановке \theta.

Например, если A = животное(X), \theta = \{X = слон\}, то A\theta = животное(слон).

Правило B_0:- B_1, B_2, \dots, B_k, которое получается из правила A_0:- A_1, A_2,\dots, A_k с помощью переименования переменных, называется вариантом исходного правила. Оно совпадает с формулой (A_0:- A_1, A_2, \dots, A_k)\theta для некоторой подстановки \theta, состоящей из равенств x = y, где y — переменная, не входящая в исходное правило.

Например, правило животное(A):- млекопитающее(A) является вариантом правила животное(X):- млекопитающее(X).

Правило B_0:- B_1, B_2, \dots, B_k, которое не содержит переменных и получается из правила A_0:- A_1, A_2,\dots, A_k с помощью некоторой подстановки \theta, называется основным примером исходного правила.

Например, правило животное(слон):- млекопитающее(слон) является основным примером правила животное(X):- млекопитающее(X). В этом случае \theta = \{X = слон\}.

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

Для рассматриваемой программы U = \{слон, зебра, страус, уж\}.

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

В нашем примере B = {млекопитающее(слон), млекопитающее(зебра), млекопитающее(страус), млекопитающее(уж), животное(слон), животное(зебра), животное(страус), животное(уж)}.

Интерпретацией логической программы называется непустое подмножество эрбранова базиса, элементам которого сопоставляется значение истина, остальным элементам эрбранова базиса сопоставляется значение ложь.

Моделью I логической программы называется такая интерпретация этой программы, что для каждого основного примера B_0:- B_1, B_2, \dots, B_n,правила A_0:- A_1, A_2,\dots, A_n выполняется: если B_1, \dots, B_n \in I, то B_0 \in I, для всех правил программы.

Например, моделью является сам эрбранов базис.

Модель минимальна, если никакое ее собственное подмножество моделью не является. Очевидно, что пересечение двух моделей является моделью. Минимальная модель является пересечением всех моделей.

Из определения следует, что факты принадлежат произвольной модели. Из правила животное(X):- млекопитающее(X) следует, что в любую модель нашей программы входят цели животное(слон) и животное(зебра). Таким образом, минимальная модель программы имеет вид:

I0 = {млекопитающее(слон), млекопитающее(зебра), животное(страус), 
животное(уж), животное(слон), животное(зебра)}
Лекция 1: 123456 || Лекция 2 >
Жаныл Айкын
Жаныл Айкын
Rustam Inatov
Rustam Inatov

Доброго времени суток, подскажите пожалуйста, visual prolog examples, pie, vip7.5 - это все, где я могу скачать? (в смысле) может быть на сайте есть какой-то архив? Увы я не нашел его.

Подскажите, пожалуйста.

С уважением, Рустам.

Айдана Ахметова
Айдана Ахметова
Россия
Дмитрий Куянов
Дмитрий Куянов
Россия, Омск, ОмГТУ