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

1. Логические основы Пролога

1.1 Факты, правила, дизъюнкт Хорна

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

Особенность логического программирования - это простая возможность перехода от высказываний естественного языка к предложени­ям программы на языке логики предикатов первого порядка. С дру­гой стороны, программа, записанная в виде предложений языка логики, может быть достаточно легко переведена на естественный язык.

Рассмотрим формулу исчисления предикатов первого порядка.

Она может быть представлена в виде дизъюнкций конъюнкции положительных или отрицательных литералов:

L1 L2 ...  Lk

где каждое Li представляет собой или формулу F от некого количества термов Fi(t1, t2 ,…, tp) или формулу со знаком отрицания Fj (t1, t2, ..., tp), причем под термом ti понимается или логическая константа, или логическая переменная, или результат применения логической функции к терму.

Следовательно, формулу исчисления предикатов первого порядка с учетом этого замечания может иметь вид:

А1A2 ...  Аn B1 B2  ...  Bm

Но такая дизъюнкция может быть записана в виде импликации.

А1 A2 ... Аn В1 & В2 & ... & Вт

Здесь посылка импликации записана справа, а заключение — слева от знака операции. Такая запись принята в языке Пролог.

1.1.1 Напоминание

Напомним логическую операцию импликации.

  • Если B то A

  • Когда B тогда и A

Или в виде формулы: А  В  А В

Таблица Кэли для нее такова

A

B



А В

0

0

1

1

1

0

1

1

0

1

0

0

1

1

0

1

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

А1, А2, ..., Аn В1, В2 ,…, Вm (n 0, m 0) (С)

Выражение в таком виде называют клаузой или клозом (от англ. clause).

При этом, если клауза содержит переменные Х1, Х2, ..., Хr то предполагается наличие квантора всеобщности по каждой из этих переменных, т.е.

X1X2, …, Xr ( A1 A2 ... Аn В1& В2& ... & Вm )

Читается: для всех Х1, Х2, ..., Хr выполняется А1, или А2, или ..., или Аn,

если выполнены В1, и В2, и ..., и Вm.

При n = 1 из (С) получается формула, называемая клаузом Хорна (или хорновским предложением, хорновским клозом, хорновским дизъюнктом, в англоязычной лите­ратуре используется также название definite clause, которое можно перевести как од­нозначное предложение):

А В1, В2, ..., Вm

При n 1 и m1 , что означает обязательное присутствие обеих частей, эту формулу называют правилом.

При n = 1 и т = 0, т.е., отсутствие правой части, эту формулу называют фактом (при этом знак им­пликации иногда опускают),

A или просто А

В случае, когда левая часть предложения пуста, т. е. при п = 0, но т > 0 — запросом, целью или целевым утверждением.

В1 В2, ..., Вт

Множество фактов, правил вместе с запросом представляют собой логическую про­грамму (definite program).

Факты задают отношения, имеющие место среди объектов данной предметной области. Правила определяют одни отношения через другие.

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

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