Скачиваний:
70
Добавлен:
09.05.2014
Размер:
935.42 Кб
Скачать

Применение вывода для получения новой информации.

Пример:

F­1­: дляx,y,z

Если x– отецy, иz– отецx,тоz– дедy

F­2­: у каждогоyесть отецx

yx(F(x,y))

G: Кто является дедомy?

y z D(z,y)

F­1­: F(x,y)F(z,x)D(z,y)

F­2­:F(f(y),y) –x=f(y) – подстановкаxотецy

F­3:D(z,a)

Вывод: F(x,y)F(z,x)D(f(y),y) F(f(y),y)

F(z,f(y))D(z,y) D(z,a)

F(z,f(a)) F(f(y),y)

1.z=f(y)

z(f(y),f(y),y)

2.y=f(a)

F(f(y),f(a))

F(f(f(a)),f(a))

результат унификации

Z=f(f(a)) “отец отца а - дед”

Логическое программирование – не опирающееся на теорию логического вывода. Практическая реализация и формализация в виде языка Пролог.

Формализация опирается на:

1.упрощении и ограничении логических формул;

2.конкретизации области интерпретации;

3.расширении интерпретации.

Введены встроенные исполняемые предикаты, к ним относят:

1.вычисления;

2.ввод/вывод;

3.графика;

4.интерактивный интерфейс.

Можно работать в режимах:

  • интерпретации;

  • компиляции.

Общие принципы логических программ. Выполнение программ.

Структура программы:

1.DOMAINS– вводятся новые типы переменных (область интерпретации);

Пример:

Name=char

Birthday=data (int,char,int)

2.PREDICATES– определение предикат;

Пример:

Person(name,phone)

3.СLAUSES– логические утверждения (факты, база данных);

Пример:

Person(Сидоров,2345678)

4.GOAL– цель – логическое утверждение.

Указанные цели опровергаются логическим выводом, включающим применение:

  • резолюции;

  • унификации;

  • интерпретации.

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

Пример:

1.если a, тоb

ab

ab

На Прологе: b:-a b

- граф интерпретации

голова условиеa

Факты: - А(а)xA(x)A(x)

A(a)

2. если а, то b&cbc

ab&c

ab&c a

(ab)&(ac)

3.если c&b, тоaa

cbaграф «И»

Пролог: a:-c,bbc

4.если cb, тоa

b&ca a

(ba)&(ca) граф «ИЛИ»

a:-bbc

a:-c

5.abcзапрещено (не Хорновские)

abc

6.отрицательный дизъюнкт

a (a&b) (ab)

:-a:-a,b:-a

:-b

Пример: применение Пролога для доказательства теорем в Хорновских дизъюнктах

a(x)p(x)&q(x,y) 1.a(x)p(x) «И»

a(x)q(y,x)&r(y) 2.a(x)q(x,y) «ИЛИ»

p(d) 3.a(x)r(y) «И»

q(b,c) 4.a(x)q(y,x)

r(d) 5.p(d)

r(b)6.q(b,c)

a(z) 7.r(d) «ИЛИ»

8.r(b)

a(z)

a(x)

и­1 или­1 и­2

p(x)q(x,y)r(y)q(y,x)

или­2

p(d) q(b,c) r(d) r(b) q(b,c)

1. a(x) a(x)p(x)

x=z- по правилу резолюций

p(x)

2.p(d)

z=d

продолжение по «И»

3.a(d) a(x)q(x,y)

x=d

q(d,y)

4.q(b,c)

нет унификации

1. переход по «ИЛИ­1»

a(z) a(x)r(y)

x=z

r(y)

2.r(d)

y=d

переход по ИЛИ­2

3.r(b)r(y)

y=b

переход по И­2

4.a(z) a(x)q(y,x)

x=z

q(y,z) – y=d

5.q(b,c)q(y,z)

нет унификации

переход по «ИЛИ­2»

q(b,c)q(y,z)

y=d

z=c

Вывод закончен, так как пройдены все «И» и «ИЛИ» правила, получен пустой дизъюнкт. Формула общезначима.

Вывод по правилу резолюций упорядочен обходом «И» «ИЛИ» графов.Эта процедура называется Backtracing.

38