Сибирский университет потребительской кооперации
Опубликован: 04.05.2005 | Доступ: свободный | Студентов: 4321 / 1347 | Оценка: 4.45 / 4.22 | Длительность: 12:28:00
ISBN: 978-5-9556-0034-5
Лекция 2:

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: Хорновские дизъюнкты. Принцип резолюций. Алгоритм унификации.Процедура доказательства теорем методом резолюций для хорновских дизъюнктов. Особенности работы с негативными знаниями в Прологе.

Эта лекция будет посвящена теоретическим основам языка Пролог. В принципе, вполне можно писать хорошие программы на языке Пролог, не вдаваясь в глубины математической логики. И в этом смысле можно считать эту главу необязательной, факультативной. Однако тем, кому интересно узнать, "как она вертится", мы попробуем объяснить, как устроен Пролог, на чем он основывается.

Давайте начнем с самого начала или почти с самого начала, раз уж мы договорились, что никаких предварительных навыков от слушателей не требуется. Нам придется попытаться разобраться с понятиями логики первого порядка, которая лежит в основе Пролога; они обычно изучаются в курсе математической логики. Конечно, для того чтобы изучить даже самые начала математической логики, одной лекции недостаточно. Поэтому мы попытаемся пробежаться только по тому кусочку, который имеет отношение к языку Пролог. Часть используемых нами понятий все-таки останется "за кадром".

Говорят, что задана некая формальная система F, если определены:

  1. алфавит системы — счетное множество символов;
  2. формулы системы — некоторое подмножество всех слов, которые можно образовать из символов, входящих в алфавит (обычно задается процедура, позволяющая составлять формулы из символов алфавита системы);
  3. аксиомы системы — выделенное множество формул системы;
  4. правила вывода системы — конечное множество отношений между формулами системы.

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

Алфавит логики первого порядка составляют следующие символы:

  1. переменные (будем обозначать их последними буквами английского алфавита u, v, x, y, z );
  2. константы (будем обозначать их первыми буквами английского алфавита a, b, c, d );
  3. функциональные символы (используем для их обозначения ближние буквы f и g );
  4. предикатные символы (обозначим их дальними буквами p, q и r );
  5. пропозициональные константы истина и ложь ( true и false );
  6. логические связки \neg (отрицание), \wedge (конъюнкция), \vee (дизъюнкция), \to (импликация);
  7. кванторы: \exists (существования), \forall (всеобщности);
  8. вспомогательные символы (, ), ,.

Всякий предикатный и функциональный символ имеет определенное число аргументов. Если предикатный (функциональный) символ имеет n аргументов, он называется n -местным предикатным (функциональным) символом.

Термом будем называть выражение, образованное из переменных и констант, возможно, с применением функций, а точнее:

  1. всякая переменная или константа есть терм;
  2. если t1,...,tn — термы, а fn -местный функциональный символ,то f(t1,...,tn) — терм;
  3. других термов нет.

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

Если терм не содержит переменных, то он называется основным или константным термом.

Атомарная или элементарная формула получается путем применения предиката к термам, точнее, это выражение p(t1,...,tn), где p — n -местный предикатный символ, а t1,...,tn — термы.

Формулы логики первого порядка получаются следующим образом:

  1. всякая атомарная формула есть формула;
  2. если A и B — формулы, а x — переменная, то выражения \neg A (читается "не A" или "отрицание A"), A  \wedge   B (читается "A и B"), A  \vee   B (читается "A или B"), A -> B (читается "A влечет B"), \exists хA (читается "для некоторого x" или "существует x") и \forall xA (читается "для любого x" или "для всякого x")– формулы;
  3. других формул нет.

В случае, если формула имеет вид \forall xA или \exists хA, ее подформула A называется областью действия квантора \forall x или \exists х соответственно. Если вхождение переменной x в формулу находится в области действия квантора \forall x или \exists х, то оно называется связанным вхождением. В противном случае, вхождение переменной в формулу называется свободным.

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

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

Дизъюнкт — это дизъюнкция конечного числа литералов. Если дизъюнкт не содержит литералов, его называют пустым дизъюнктом и обозначают посредством символа \aleph.

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

Говорят, что формула находится в конъюнктивной нормальной форме,если это конъюнкция конечного числа дизъюнктов. Имеет место теорема о том, что для любой бескванторной формулы существует формула, логически эквивалентная исходной и находящаяся в конъюнктивной нормальной форме.

Формула находится в предваренной (или префиксной ) нормальной форме, если она представлена в виде Q1x1,..., QnxnA, где Qi — это квантор \forall или \exists, а формула A не содержит кванторов. Выражение Q1x1,..., Qnxn называют префиксом, а формулу Aматрицей.

Формула находится в сколемовской нормальной форме, если она находится в предваренной нормальной форме и не содержит кванторов существования.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Виктор Бондарь
Виктор Бондарь

После приведения формулы вида ПНФ к виду ССФ вы получаете формулу, в безквантовой матрице которой дизъюнкт содержит оба контранрных атома:. Как тогда проводить его унификацию, если в случае замены x на f(x) весь дизъюнкт обратится в единицу?

Ольга Потапенко
Ольга Потапенко

никак не могу увидеть тексты самих лекций.