Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0000a652.doc
Скачиваний:
96
Добавлен:
28.02.2016
Размер:
1.14 Mб
Скачать

2.3. Понятие формулы и свойства операций

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

Например, x1 x2   x1 x2 — формула.

Ясно, что какой бы ни была сложной формула, содержащая n переменных, для нее всегда найдется единственная соответствующая ей функция. Это связано с тем, что математическая логика располагает всеми функциями из конечного множества попарно различных функций. Ниже будет показано, что одной и той же функции можно поставить в соответствие несколько различных формул.

Две различные формулы называются эквивалентными, если соответствующие им функции равны.

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

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

Обозначим x1x2 любую из операций ,  или . Существенно только, чтобы символ «» имел в тождестве везде один и тот же смысл. В этом случае непосредственно проверяется, что имеют место свойства 1) и 2):

1) ассоциативность

((x1 x2)  x3) = (x1  ( x2 x3));

2) коммутативность

(x1 x2) = (x2 x1);

Для дизъюнкции и конъюнкции также выполняются дистрибутивные законы:

((x1 x2)  x3) = (x1 x3)  ( x2 x3));

((x1 x2)  x3) = (x1 x3)  ( x2 x3));

Имеет место закон двойного отрицания

x = x.

Кроме того, выполняются следующие свойства операций математической логики.

Законы де Моргана:

(x1x2 ) = ( x1  x2) ;

(x1x2 ) = (  x1 x2).

Законы идемпотентности:

x x = x ; x x = x.

Законы поглощения

x 0 = x ; x 1 = 1;

x  0 = 0; x 1 = x.

Закон исключенного третьего

x x = 1.

Закон противоречия

x x = 0.

Закон силлогизма

( ( x  у)  (у  z))  (xz).

При тождественных преобразованиях формул исполь­зуются приоритеты операций. Считается, что операция  си­ль­нее, чем . Поэтому, если нет скобок, то вначале вы­полняется , а затем . Остальные бинарные операции име­ют тот же приоритет, что и .

2.4. Разложения булевых функций. Принцип двойственности. Совершенные нормальные формы.

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

Введем обозначения

xσ = x ∙   x ∙,

где  — параметр, равный либо 0, либо 1 и используется обычное умножение. Очевидно, что

x при  = 0,

x =

x при  = 1.

Такое представление выражает следующий факт: x = 1 тогда и только тогда, когда x = .

Введем также следующие обозначения:

(i1.i2….in) xi = x1 x2 … xn;

&(i1,i2,…in) xi = x1 & x2 &… &xn.

Теорема 2.1 Каждую функцию математической логики можно представить в виде

F(x1, x2, …,xn) = (1, 2,,n) x11 & x22 &… & xnn &

& F(1, 2, …, n), (2.1)

где дизъюнкция берется по всевозможным наборам значений переменных x1, x2, …, xn.

Доказательство. Рассмотрим произвольный набор значений 1, 2, …, n и покажем, что левые и правые части (2.1) принимают на нем и только на нем одно и тоже значение. Левая часть (2.1) дает F(1, 2, …, n). Соответственно правая :

(1,2,…,n) 11 & 22 &… & nn & F(1, 2,…, n).

Конъюнкция 11 & 22 &… & nn = 1 тогда и только тогда, когда 1 = 1, 2 = 2, …,n = n. Следовательно, на этом и только на этом наборе 1, 2,…, n имеет место тождество

11& 22 &…& 2n & F(1, 2, …, n) = F(1, 2, …, n).

При этом остальные дизъюнктивные члены в (2.1) обращаются в нуль.

Разложение (2.1) называется совершенной дизъюнктивной нормальной формой (С.Д.Н.Ф.), если оно берется по всем наборам 1, 2, …,n , для которых выполнено

F(1, 2, …,n) = 1.

В силу этого определения С.Д.Н.Ф. записывается в виде

F(x1, x2, …, xn) = (1, 2,…, n) x11 &x2 2 & … & xnn.

Функция [F(x1, x2, …, xn)]*, равная F(x1, x2, …, xn) называется двойственнной функцией по отношению к функции F(x1, x2, …, xn).

Для получения двойственной функции достаточно инвертировать в ее таблице значения переменных и значение самой функции. При этом таблица значений функции «перевернется» по отношению к исходной так, как показано на примере в таблице 2.3.

Таблица 2.3 — Пример двойственной функции

x1

x2

F(x1,x2)

x1

x2

[F(x1,x2)]*

0

0

1

1

1

0

0

1

0

1

0

0

1

0

1

0

1

1

1

1

1

0

0

0

Очевидно, если вернуться к старому набору переменных, то получим

[F(x1, x2, …, xn)]* = F* (x1, x2, …, xn).

Из определения двойственности следует, что

F** = (F*)* = F.

Обозначим через x1, x2, …, xn все различные символы переменных, встречающиеся в множествах

(x11, x21, …, xn1), (x12, x22, …, xn2), …, (x1m, x2m, …, xnm).

Следующая теорема определяет принцип двойственности для булевых функций.

Теорема 2.2 Если

Φ(x1, x2, …, xn) = F(F1(x11, x21, …, xn1), F2(x12, x22, …, xn2), …, Fm(x1m, x2m, …, xnm)),

то Φ*(x1, x2, …, xn) =F*( F*1(x1, x2, …, xn), F*2(x12, x22, …, xn2), …, F*m(x1m, x2m, …, xnm)).

Доказательство.

Φ*(x1, x2, …, xn) = Φ(x1, x2, …, xn) =

= F(f1(x11, x21, …, xn1),F2(x12, x22, …, xn2), …,Fm(x1m, x2m, …, xnm)) =

= F(F1*(x11, x21, …, xn1), F2*(x12, x22, …, xn2), …, Fm* (x1m, x2m, …, xnm)) =

= F*(F*1(x1, x2, …, xn), F*2(x12, x22, …, xn2), …, F*m(x1m, x2m, …, xnm)),

что и требовалось.

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

Непосредственно проверяется, что:

  • Функция x двойственна x;

  • Функция x двойственна x.;

  • Функция 0 двойственна1;

  • Функция 1 двойственна 0;

  • Функция x1 x2 двойственна x1 & x2;

  • Функция x1 & x2 двойственна x1 x2 ;

Рассмотрим примеры.

F(x1, x2) = x1 & x2 x1 & x2 ; F*(x1, x2) = x1 x2 & x1  x2 ;

F(x1, x2) = (x1 & x2) ; F*(x1, x2) = x1  x2;

F(x1, x2) = (x1 x2) ; F*(x1, x2) = x1 & x2;

Используя принцип двойственности, можно записать выражение, двойственное С.Д.Н.Ф., в свою очередь, полученной к двойственной функции F* (x1, x2, …, xn). Такое выражение получило название С.К.Н.Ф. — совершенной конъюнктивной нормальной формы. Рассмотрим его подробнее.

По определению С.Д.Н.Ф. имеем

F* (x1, x2, …, xn) = (1, 2,…, n) x11 & x2 2 & … & xnn.

Применим к этой функции принцип двойственности:

F**(x1, x2, …, xn) = &(1, 2,…, n) x11 x2 2  … xnn.

Левая часть есть F(x1, x2, …, xn), а правую можно преобразовать, учитывая, что конъюнкции берутся по всем наборам значений переменных, для которых F*(1, 2, …, n) = 1. Легко заметить, что значения F(x1, x2, …, xn) не изменятся, если взять соответ­ствующие конъюнкции по таким наборам значений переменных, для которых, в силу принципа двойственности, F(1, 2, …, n) = 0. Заменяя в этом выражении 1 на 1 и выполнив обратную замену во всех дизъюнкциях, окончательно получим

F(x1, x2, …, xn) = &(1, 2,…, n) x11 x2 2  … xnn,

где дизъюнкции берутся по всем тем наборам значений переменных, для которых F(1, 2, …, n) = 0.

Пример. Построить С.К.Н.Ф. для функции x1x2.

Имеем x1x2 = x11x20 = x1 x2.

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