Визначення. Диз'юнктивна нормальна форма (ДНФ) - це диз'юнкція кінцевого числа різних членів, кожний з яких являє собою кон'юнкцію кінцевого числа окремих змінних чи їхніх заперечень, що входять у даний член не більше ніж один раз.
Визначення. Кон'юнктивна нормальна форма (КНФ) - це кон'юнкція кінцевого числа різних членів, кожний з Якій являє собою диз'юнкцію кінцевого числа окремих змінних чи їхніх заперечень, що входять у даний член не більше ніж один раз.
Приклад. у=(х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Úх3=х1х2х3Úх1х2`х3Úх1х3Ú`х1х3=х1х2х3Úх1х2`х3Úх1х2х3Úх1`х2х3Ú`х1х2х3Ú`х1`х2х3
у=(х1Úх2)х3=((х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).