Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булева_алгебра.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
948.22 Кб
Скачать

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

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

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

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

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

  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))   (P(x)  (x) Q(x))] =

на основании закона xy =  x  y

= (x) [ (P(x)   Q(x))   (P(x)  (x) Q(x))] =

= (x) [ ( P(x)   Q(x))   (P(x)  (x) Q(x))] =

вносим отрицание «под скобки»,

применяя законы Де Моргана

= (x) [(P(x)  Q(x))   P(x)  (x) Q(x)] =

= (x) [(P(x)  Q(x))   P(x)  (x)  Q(x)] =

применяем дистрибутивный закон

и закон x   x = 1

= (x) [(P(x)   P(x))  (Q(x)   P(x))  (x)  Q(x)] =

= (x) [(1  (Q(x)   P(x)))  (x)  Q(x)] =

на основании закона x  1 = x

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

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

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

наконец, по закону x  1 = 1, имеем

= (x) [1   P(x)] = 1.