Нормальні форми

Визначення. Диз'юнктивна нормальна форма (ДНФ) - це диз'юнкція кінцевого числа різних членів, кожний з яких являє собою кон'юнкцію кінцевого числа окремих змінних чи їхніх заперечень, що входять у даний член не більше ніж один раз.

Визначення. Кон'юнктивна нормальна форма (КНФ) - це кон'юнкція кінцевого числа різних членів, кожний з Якій являє собою диз'юнкцію кінцевого числа окремих змінних чи їхніх заперечень, що входять у даний член не більше ніж один раз.

Приклад. у=(х1`х2)Ú(х2х3`х4) ДНФ, у=(х1Ú`х2)×(х2Ú`х3Úх4) КНФ, у=х1×`х2Úх2×ù3×х4) не ДНФ і не КНФ.

Визначення. Члени ДНФ, що являють собою елементарні кон'юнкції з ²k² букв, називаються мінтермами к-го рангу. Члени КНФ, що являють собою елементарні диз'юнкції з ²k² букв, називаються макстермами к-го рангу.

Приклад. х1×`х2 - мінтерм 2-го рангу, х2×х3×`х4 - мінтерм 3-го рангу, (х1Ú`х2) – макстерм 2-го рангу, (х1Ú`х2) і (х2Ú`х3Úх4) – макстерм 3-го рангу.

Визначення. Якщо в кожнім члені нормальної диз'юнктивної чи кон'юнктивної форми представлені всі ²n² змінних (у прямому чи інверсному вигляд), від яких залежить булева функція, то така форма називається досконалою диз'юнктивною чи кон'юнктивною нормальною формою (СДНФ чи СКНФ – як термін).

Лема: Будь-яка булева функція, яка не є такою, що тотожно дорівнює нулю, має одну і тільки одну СДНФ. Будь-яка булева функція, яка не є такою, що тотожно дорівнює одиниці, має одну і тільки одну СКНФ.

Мінтерми СДНФ називають конституентами ²1². Макстерми СКНФ називають конституентами ²0². Конституента ²1² перетворюється в одиницю тільки при одному відповідному їй наборі значень змінних, котрий виходить, якщо всі змінні конституенти прийняти такими, що дорівнюють одиниці, а для всіх інверсій конституенти змінні прийняти такими, що дорівнюють нулю. Конституента ²0² перетворюється в нуль тільки при одному відповідному їй наборі значень змінних, котрий виходить, якщо всі змінні конституенти прийняти такими, що дорівнюють нулю, а для всіх інверсій конституенти змінні прийняти такими, що дорівнюють одиниці.

Приклад. х1`х2х3`х4=1×`0×1×`0=1, `х1Úх2Úх3Ú`х4=`1Ú0Ú0Ú`1=0

СДНФ є диз'юнкцією конституент ²1², булева функція f(x1, x2,..., xn), що її представляє, перетворюється в одиницю тільки при наборах значень змінних, відповідних хоча б одній одиниці цих конституент. На інших наборах ця функція перетворюється в нуль. СКНФ є кон'юнкціей конституент ²0², її булева функція f(x1, x2,..., xn) перетворюється в нуль тільки при наборах значень змінних, відповідних хоча б одному нулю цих конституент. На інших наборах ця функція перетворюється в одиницю.

Для завдання булевой функції у вигляді СДНФ записують диз'юнкцію конституент “1” для всіх наборів змінних, на яких функція приймає значення одиниці.

Для завдання булевой функції у вигляді СКНФ записують кон'юнкцію конституент ²0² для всіх наборів змінних, на яких функція приймає значення нуля.

Такі представлення булевої функції називають аналітичним представленням у вигляді СДНФ чи СКНФ.

Приклад. Таблиця істинності, СДНФ і СКНФ функції від 3-х змінних

Таблиця 23.2

X1 X2 X3 Y

 

у=(`х1`х2`х3)Ú(`х1х2`х3)Ú(`х1х2х3)Ú(х1`х2`х3) – СДНФ,

у=(х1Úх2Ú`х3)(`х1Úх2Ú`х3)(`х1Ú`х2Úх3)(`х1Ú`х2Ú`х3) - СКНФ

Для скрізь визначеної булевої функції СДНФ і СКНФ рівносильні. Аналітичне завдання можливе й у ДНФ, КНФ, тупикових та інших формах.

23.1.3. Геометричний спосіб

Областю визначення булевих функцій від ²n² змінних є множина потужністю 2n n-вимірних векторів. Якщо поставити у відповідність кожному вектору вершину n-вимірного куба, то область визначення булевої функції представляється у вигляді n-вимірної геометричної фігури.

Булева функція задається на n-вимірному кубі виділенням вершин, що відповідають векторам <х1, х2,..., хn>, на яких функція дорівнює одиниці чи нулю. Кожної з n змінних виділяється своя вісь координат, на якій відкладається одиничний вектор. Початок вектора змінної відповідає значенню «0», кінець вектора – значенню «1».

Приклад.

- n = 1, потужність множини вершин дорівнює 2, приклад функції - у =`х (див. рис.13.1,а);

- n = 2, потужність множини вершин дорівнює 4, фігура виглядає як квадрат з відзначеними для конституент вершинами, приклад функції – y = x1 `x2 Ú x1 x2
(див. рис.13.1,б);

- n = 3, потужність множини вершин дорівнює 8, фігура виглядає як куб з відзначеними для конституент вершинами, приклад функції – y = x3 Ú x1`x2 Ú`x1 x2.(див. рис.13.1,с).

При n ³ 4 графічний спосіб утрачає наочність.

Рис. 23.1. Одномірний а); двовимірний б); тривимірний с) куби для
функцій відповідно від однієї, двох і трьох змінних

23.1.4. Чисельний спосіб

У чисельному вигляді булева функція задається перерахуванням номерів наборів, на яких функція приймає нульові чи одиничні значення.

Приклад. Таблиця істинності і чисельне завдання СДНФ і СКНФ функції від трьох змінних

Таблиця 23.3

X1 X2 X3 Y

у=Ú1 (0, 3, 4, 7) СДНФ, у=Ù0 (1, 2, 5, 6) СКНФ

23.2. Приведення формул булевої алгебри до досконалої форми

Якщо якій-небудь член jj ДНФ не містить змінної хі, то ця змінна вводиться тотожним перетворенням:

jj=jjÙ1=jjÙ(xiÚ`xi)=(jjÙxi)Ú(jjÙ`xi).

Якщо якій-небудь член jj КНФ не містить змінної хі, то ця змінна вводиться тотожним перетворенням:

jj=jjÚ0=jjÚ(xiÙ`xi)=(jjÚxi)Ù(jjÚ`xi).

Приклад.

у=х1х2Úх31х2х3Úх1х2`х3Úх1х3Ú`х1х31х2х3Úх1х2`х3Úх1х2х3Úх1`х2х3Ú`х1х2х3Ú`х1`х2х3

у=(х1Úх23=((х1Úх2)Úх3`х3)((х3Úх1`х1)Úх2`х2)=(х1Úх2)Úх3)×((х1Úх2`х3)×(((х3Úх1)(х3Ú`х1))Úх2)×(((х3Úх1)(х3Ú`х1))Ú`х2)=(х1Úх2Úх3)(х1Úх2Ú
Ú`х3)×(х3Úх1)Úх2)×((х3Ú`х1)Úх2)×((х3Úх1`х2)×((х3Ú`х1`х2)=(х1Úх2Úх3)(х1Úх2Ú`х3)(х1Úх2Úх3)(`х1Úх2Úх3)×(х1Ú`х2Úх3)×(`х1Ú`х2Úх3).