Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция2_ МЛиТА.doc
Скачиваний:
18
Добавлен:
17.08.2019
Размер:
738.82 Кб
Скачать

Лекция 2 Двойственность. Класс самодвойственных функций.

Пусть формула А содержит только операции конъюнкции, дизъюнкции и отрицания.

Будем называть операцию конъюнкции двойственной операции дизъюнкции, а операцию дизъюнкции

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

Например, для формулы А  (х y)&z двойственной формулой будет формула А *  (х& у)  z .

Теорема. Если формулы А и В равносильны, то равносильны и им двойственные формулы, то есть

А*  В * .

Предварительно докажем лемму.

Лемма. Если для формулы A(x1 ,x2 ....xn) двойственной формулой является А*( x1 ,x2 ....xn), то справедлива равносильность А*(x1, ..., xn) = ( 1, ..., n).

(Доказательство леммы разбирается студентом самостоятельно см. Лихтарников «МЛ» стр. 28-29)

Пример 1. Покажем с помощью таблицы истинности, что константа 0 двойственна к 1:

x

f

f*

0

0

1

1

0

1

Функции f(x) = x и g(x) = двойственны сами себе:

x

f

f*

g

g*

0

0

0

1

1

1

1

1

0

0

так как f*(0)= (1).

Определение 1. Если f*(x1, ..., xn) = f(x1, ..., xn), то f(x1, ..., xn) называется самодвойственной.

Множество всех самодвойственных функций обозначается через S.

Если f*– самодвойственна, то ( 1, ..., n) = f(x1, ..., xn), т.е. на противоположных наборах функция принимает противоположные значения.

Пример 1. Покажем, что функция х1х2 двойственна к x1&x2, функция х1 х2 двойственна к функции x1|x2.

x1

x2

f=х1х2

f*

g=x1|x2

g*=x1 x2

0

0

0

0

1

1

0

1

1

0

1

0

1

0

1

0

1

0

1

1

1

1

0

0

Пример 2. Построить формулу, реализующую f*, если f = ((x y)  z) (y (xyz)). Покажем, что она эквивалентна формуле N = z(xy).

Найдем (xy)* и (x y)*.

x

y

xy

(xy)*

x y

(x y)*

0

0

0

1

1

0

0

1

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

Из таблиц видно, что

(x y)* = x ~ y = = x y 1, x y = y x ,

(x y)* = y x y = y.

По принципу двойственности:

f* = yz ( (x (y z) 1)) = yz z(x (y z) 1) = z( y( xz )) = z( y (xz1)) = z( y (x )) = z y(z xz ) = z( yx ) = z(xy).

Тогда f = (f*)* = [z(xy)]* = z(x~y).