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

Переход от естественного языка к языку логики предикатов

Рассмотрим пример. Предположим, что наши знания о птицах выражены в виде следующих предложений:

  • Если существо имеет крылья, то это существо – птица.

  • Если существо летает и несет яйца, то это существо – птица.

Для представления знаний на языке логики предикатов следует выполнить следующие шаги:

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

  2. Определить свойства объектов. Сопоставить свойствам предикатные символы.

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

Таким образом, на языке логики предикатов эти знания могут быть выражены в виде формул:

  • имеет_крылья(существо)птица(существо)

  • летает(существо)несет_яйца(существо)птица(существо)

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

Предваренная нормальная форма

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

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

(x1) (x2) … (xn) A(x1, x2, …, xm), nm,

где под символом понимается один из кванторов:или.

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

Примеры

Одной из задач логики предикатов является поиск областей истинности предикатов – множества значений аргументов, на которых предикат принимает истинные значения. Пусть, к примеру, даны предикаты: P(x): «x– четное число» иQ(x): «xкратно 3», определенные на множестве натуральных чиселN. Областями истинностиP(x) иQ(x) соответственно являютсяIP= {2, 4, 6, …, 2n…},IQ= {3, 6, 9, …, 3n…}. Найдем области истинности для следующих предикатов:

  1. P(x)Q(x): множеством истинности конъюнкции будет пересечение множеств истинности конъюнктов –IPQ=IPIQ= {6, 12, …, 6n…}

  2. P(x)Q(x): множеством истинности дизъюнкции будет объединение множеств истинности дизъюнктов –IPQ=IPIQ= {2, 3, 4, 6, …, 2n, 3n…}

  3. P(x): множеством истинности отрицания будет исключение множества истинности предиката из множества его определения –IP=N\IP= {1, 3, 5, …, 2n- 1,…}

  4. P(x)Q(x): множеством истинности импликации (логического следствия) будет объединение множества истинности отрицания первого дизъюнкта и множества истинности второго дизъюнкта (так какab=ab) –IPQ=IPIQ= {1, 3, 5, …, 2n- 1,…}{3, 6, 9, …, 3n…}

Следующий пример показывает, как с помощью логики предикатов можно отыскать утверждение, противоположное заданному, или, иначе говоря, отрицание заданной формулы. Найдем отрицание формулы (x)(y)R(x,y)L(x,y):

 ((x) (y) R(x, y)  L(x, y)) = (x)  ((y) R(x, y)  L(x, y)) =

= (x) (y) (R(x, y)  L(x, y)) = (x) (y) (R(x, y)  L(x, y)) =

= (x) (y) (R(x, y)  L(x, y)).

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

Докажем общезначимость формулы A=(x) (P(x)Q(x))((x) P(x)(x)Q(x)).

Считая, что формула Aопределена на любой области определения проведем равносильные преобразования:

A = (x) (P(x)  Q(x))  ((x) P(x)  (x) Q(x)) =

= ((x) (P(x)  Q(x)))  ((x) P(x)  (x) Q(x)) =

= (x) (P(x)  Q(x))  (x) P(x)  (x) Q(x) =

= (x) (P(x)  Q(x))  (x) P(x)  (x) Q(x) =

= (x) ((P(x)  Q(x)  Q(x))  (x) P(x) =

= (x) ((P(x)  Q(x))  (x) P(x) =

= ((x) P(x)  (x) P(x))  (x) Q(x) = 1  (x) Q(x) = 1