Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вычислительная математика.pdf
Скачиваний:
3
Добавлен:
24.11.2025
Размер:
3.89 Mб
Скачать

21.

A BA B A B

23.

A B CA (B C)

22.

A B C(A B) (A C)

24.

A BB A

Все эти равносильности вытекают из соответствующих тавтологий. По-другому убедиться в справедливости вышеприведенных (и других) равносильностей можно, сравнив таблицы истинности их левой и правой частей. Кроме того, некоторые равносильности могут быть получены из других путем тождественных преобразований. Например, из 1 и 8 следует

9.

Действительно, в 8 заменим А и В на А и В. Получим ( А ВA BA B, откуда

( A B)(A B) A B(A B) 9.

1.2Булевы функции

1.2.1Понятие булевой функции. Число булевых функций от n переменных

Пусть Z2 =

{0;l} – числовое поле из двух элементов.

Отображение

f : Z2 ×Z2 × ×Z2 Z2

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

функции будем обозначать: x1, x2, , xn . Таким образом, булева функция

f (x1, x2, , xn )

это функция, переменные которой x1, x2, , xn могут принимать только значения 0 или 1; сама булева функция также может принимать только значения 0 или 1.

Булева функция может быть задана с помощью таблицы значений (таблицы истинности), в которой перечисляются все возможные наборы (σ1,σ2, ,σn ) значений переменных и указываются соответствующие им значения функции – f (σ1,σ2, ,σn ).

Пример такого задания функции находится в таблице.

 

 

 

 

 

x1

x2

f (x1, x2 )

 

0

0

0

 

0

1

1

 

1

0

1

 

1

1

0

 

 

Множество наборов (σ1,σ2, ,σn ),

при которых f (σ1,σ2 , ,σn )=1, называется обла-

стью истинности функции

f (x1, x2, , xn ).

 

 

 

Понятно, что две булевы функции равны (имеют одинаковые таблицы значений), если

у них совпадают области истинности.

 

 

 

Теорема 1. Число различных булевых функций от n переменных равно 22n .

 

 

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

Действительно,

число упорядоченных бинарных наборов

(σ ,σ

2

, ,σ

n

) равно 2n. Поэтому таблица значений булевой функции от n переменных имеет

1

 

 

 

 

2n строчек. Поэтому и столбец значений в правой части таблицы также имеет 2n элементов.

13

Можно считать, что порядок перечисления бинарных наборов (σ1,σ2, ,σn ) в левой части таблицы фиксирован для всех булевых функций. Тогда различные булевы функции отличаются лишь столбцами значений, а их количество равно числу различных бинарных столбцов длины 2n, которое очевидно равно 22n .

1.2.2 Элементарные булевы функции. Представление булевых функций пропозиционными формулами

Помимо таблицы истинности булевы функции можно задавать пропозиционными формулами, т.е. формулами, в которых переменные x1, x2, , xn (понимаемые как элементарные высказывания), а также, возможно, числа 1 и 0 («истина», «ложь») связаны логическими операциями. При этом могут использоваться также скобки для указания порядка выполнения операций.

Булевы функции, соответствующие отдельным логическим операциям, называют элементарными. Перечислим некоторые из них:

1.f1(x)= 0 (нуль-функция);

2.f2(x)=1 (один-функция);

3.f3(x)= x (отрицание x; x означает x);

4.f4(x, y)= xy (конъюнкция или произведение; xy = x y );

5.f5(x, y)= x y (дизъюнкция);

6.f6(x, y)= x y (импликация);

7.f7 (x, y)= x y (эквиваленция);

8.f8(x, y)= x y (сумма по модулю 2; таблица истинности этой функции приве-

дена в 1).

С помощью операции композиции функций из элементарных функций можно получать другие более сложные булевы функции. Заметим, в частности, что и сами элементарные функции представляются через другие элементарные. Например, x y = x y , т.е. f8(x, y)= f3(f7 (x, y)).

Теорема 2. Всякая булева функция является композицией элементарных функций: отрицания, конъюнкции и дизъюнкции.

Доказательство. Действительно, нуль-функция представляется следующим образом: 0 = xx . Поэтому пусть далее функция f (x1, x2, , xn ) не тождественно равна 0. Рассмотрим ее область истинности, т. е. все наборы (σ1,σ2, ,σn ) такие, что f (σ1,σ2, ,σn )=1. Для ка-

14

ждого такого набора построим конъюнкцию x1σ1 , x2σ2 , , xnσn , где x1i = xi , а xi0 = x . Соединим все полученные конъюнкции знаком дизъюнкции, т. е. рассмотрим:

 

x1σ1 x2σ2 xnσn .

 

 

 

 

 

 

(*)

(σ1,σ2 , ,σn )|

 

 

 

 

 

 

 

 

f (σ1,σ2 , ,σn )=1

 

 

 

 

 

 

 

 

Поскольку xσi =1 только, если

x

= σ

i

, (проверьте), то и

xσ1 xσ2

xσn

=1 только то-

i

 

i

 

 

1 2

n

 

гда, когда (x1, x2, , xn )= (σ1,σ2, ,σn ). Таким образом, полученная формула (*) принимает

значение 1 в точности на тех наборах (σ1,σ2, ,σn ) значений переменных, что и функция

f (x1, x2, , xn ). Значит,

 

 

f (x1, x2, , xn )=

 

x1σ1 x2σ2 xnσn ,

(σ1,σ2

, ,σn )|

 

f (σ1,σ2 , ,σn )=1

 

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

 

 

Замечание. Из теоремы следует, что всякая булева функция представляется с помо-

щью некоторой пропозиционной формулы, например в форме (*), которая называется со-

вершенной дизъюнктивной нормальной формой (СДНФ) функции f (x1, x2, , xn ). Конъ-

юнкция нескольких переменных (возможно с отрицаниями) называется элементарной конъюнкцией. Дизъюнкция нескольких элементарных конъюнкций называется дизъюнктивной нормальной формой (ДНФ).

На следующем примере по таблице истинности получены представления в виде

СДНФ элементарных функций:

x y,

x y и x y .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

y

 

x y

x y

 

 

x y

 

 

 

0

 

0

 

 

1

 

1

 

 

0

 

 

 

 

0

 

1

 

 

1

 

0

 

 

1

 

 

 

 

1

 

0

 

 

0

 

0

 

 

1

 

 

 

 

1

 

1

 

 

1

 

1

 

 

0

 

x y =

 

xy xy; x y =

 

xy; x y = xy xy .

 

 

xy

xy

 

 

1.2.3 Двойственные функции. Принцип двойственности

 

 

Определение. Функция

f *(x1, x2, , xn )=

 

 

f (x1, x2, , xn ) называется двойственной к

функции f (x1, x2, , xn ).

Из определения следует, что для того, чтобы получить таблицу значений двойственной функции f*, нужно в таблице значений функции f (и в части переменных, и в части значений) заменить все 0 на 1, а все 1 на 0. При этом, правда, порядок следования бина р- ных наборов (σ1,σ2, ,σn ) в левой части таблицы изменится на обратный по сравнению с

15

исходной таблицей. Чтобы его восстановить, нужно перевернуть все столбцы (в том числе и столбец значений). Таким образом, можно сформулировать следующее правило получ е- ния таблицы истинности двойственной функции f*: нужно (не меняя столбцы аргументов) в столбце значений функции f заменить все 0 на 1, а 1 на 0, и перевернуть полученный столбец.

 

 

 

 

 

=

=

 

 

 

Пример. Пусть

f (x, y)= xy , тогда

f *(x, y)=

 

= x y = x y .

Таким

образом,

xy

двойственной функцией к конъюнкции является дизъюнкция.

 

 

 

 

Поскольку для

всех функций, очевидно (f * )* = f , то

обратно:

двойственной к

дизъюнкции является конъюнкция.

 

 

 

 

 

 

 

Кроме того, легко видеть, что 1* = 0, 0* =1; (x y)* = x y, (x y)* = x y; (x)= x .

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

 

 

 

 

 

 

 

Если

 

f (x1, x2, , xn )= F(f1(x1, x2, , xn ), f2 (x1, x2, , xn ), , fs (x1, x2, , xn )),

т. е. f

представляется в виде формулы (композиции) F через другие функции

f1, f2, , fs , то

f *(x1, x2, , xn )= F(f1*(x1, x2, , xn ), f2*(x1, x2, , xn ), , fs*(x1, x2, , xn )), т.

е. двойственная

функция

f*

представляется в виде такой

же формулы через

двойственные

функции

f *, f *, , f

 

* .

 

 

 

 

 

 

 

 

1 2

 

s

 

 

 

 

 

 

 

 

Данный принцип, в частности, означает, что если функция

f (x1, x2, , xn ) представ-

лена в виде ДНФ, т. е. композиции отрицания, конъюнкции, дизъюнкции и (возможно)

констант 0 и 1, то для получения

f *(x , x

2

, , x

n

) необходимо в этой композиции заменить

 

 

 

1

 

 

 

 

 

 

 

конъюнкцию на дизъюнкцию, дизъюнкцию на конъюнкцию, 0 на 1, а 1 на 0.

 

Например, если f (x , x

 

)= x x

x x ,

то f *(x , x

)= (x x

)(x x

2

). Или другой

1 2n

 

1 2

 

 

1 2

 

1 2

1

2 1

 

пример: из закона де Моргана

 

= x y , взяв двойственные функции от обеих частей ра-

xy

венства (что чрезвычайно легко сделать, используя принцип двойственности), получаем другой закон де Моргана: x y = xy .

1.2.4 Совершенные конъюнктивные нормальные формы (СКНФ)

Пусть f

(x , x , , x

)1, тогда f *(x

, x

, , x

)0 . Представим f* в виде СДНФ:

 

1 2

n

 

 

 

 

 

1

2

n

f *(x1, x2

, , xn )=

(σ1

 

 

 

x1σ1 x2σ2 xnσn .

 

 

 

,σ2 , ,σn )|

 

)=1

 

 

 

 

 

f * (σ

,σ

2

, ,σ

n

 

 

 

 

 

 

1

 

 

 

 

 

 

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

16

принцип двойственности и учитывая, что f** = f, получим

f (x1, x2

, , xn )=

 

 

 

 

(x1σ1 x2σ2 xnσn ).

 

 

 

 

(σ1,σ2 , ,σn )|

 

)=1

 

 

 

 

f *

(σ

,σ

2

, ,σ

n

 

 

 

 

 

1

 

 

 

 

 

 

(σ1, σ2, , σn )=1 f (σ1, σ2, , σn )= 0 ,

то последнее равенство можно

Поскольку f

переписать в виде:

 

 

 

 

 

(x1σ1 x2σ2 xnσn ).

 

f (x1, x2

, , xn )=

,σ2

 

 

 

 

 

 

(σ1

, ,σn )|

 

 

 

 

 

 

f (σ1,σ2 , ,σn )=0

 

Наконец, переобозначив везде в формуле σi ↔ σi , окончательно получим

f (x1, x2

, , xn )=

,σ2

 

 

(x1σ1 x2σ2 xnσn ).

(**)

 

 

 

(σ1

, ,σn )|

 

 

 

 

 

 

f (σ1,σ2 , ,σn )=0

 

Правая часть равенства (**) называется совершенной конъюнктивной нормальной формой (СКНФ) функции f (x1, x2, , xn ).

Таким образом, выше доказано, что всякая булева функция, отличная от константы 1, представима в виде СКНФ.

Элементарной дизъюнкцией называется дизъюнкция нескольких переменных (возможно, с отрицаниями). Конъюнкция нескольких элементарных дизъюнкций называется конъюнктивной нормальной формой (КНФ).

Пример. Пусть дана таблица значений функции

f (x, y, z).

 

 

 

 

 

 

 

x

y

z

 

f (x, y, z)

 

0

0

0

 

1

 

0

0

1

 

0

 

0

1

0

 

0

 

0

1

1

 

1

 

1

0

0

 

1

 

1

0

1

 

0

 

1

1

0

 

1

 

1

1

1

 

0

Просматривая все «единичные» наборы переменных (при которых функция принимает значение 1), получим представление f (x, y, z) в виде СДНФ:

f (x, y, z)= xyz xyz xyz xyz .

А просматривая все «нулевые наборы», получим СКНФ: f (x, y, z)= (x y z)(x y z)(x y z)(x y z).

17

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