
5.4. Мінімальна Шефферовська нормальна форма (мшнф)
Операція штрих Шеффера або операція І-НІ являється функціонально-повним базисом. Тому за допомогою операції штрих Шеффера може бути подана будь-яка булева функція.
Для отримання МШНФ необхідно виконати такі дії:
- заносимо одиничні значення функції в карту Карно;
- створюємо ПК за одиничними значеннями. Одиниці, які ввійшли на попередніх кроках в одну із кон’юнкцій, вважаємо покритими. Із непокритих і покритих одиниць створюємо наступну ПК, покриваючи максимальну кількість непокритих одиниць. Процес завершується, коли покриті всі одиниці;
- описуємо всі ПК за допомогою таблиці;
- змінні, від яких залежить ПК об’єднуємо за допомогою операції штрих Шеффера. Якщо змінна для даної ПК приймає одиничне значення, то вона береться в прямому вигляді, а інакше – в інверсному:
Виняткові ситуації:
якщо ПК має максимальний ранг (тобто описується тільки однією змінною), то змінна, яка описує ПК, береться в інверсному вигляді;
якщо має місце тільки одна ПК, то береться загальна інверсія над усіма змінними, які описують цю ПК.
Об’єднуємо за допомогою операції штрих Шеффера всі описані ПК:
і отримуємо мінімальну Шефферовську нормальну форму.
Приклад 5. Задана функція f5 (x1, x2, x3, х4) = ( 0, 4, 5, 6, 7, 8, 12, 13, 14, 15)1. Побудувати МШНФ.
Заносимо одиничні значення функції f5 в карту Карно.
Об’єднуємо клітинки 0, 4 , 8 і 12 в ПК12 , а клітинки 4, 5, 6, 7, 12, 13, 14 і 15 в ПК23
ПК12
х1
-
x2
1
12
1
14
1
6
1
4
1
13
1
15
1
7
1
5
х4
9
11
3
2
1
8
10
1
1
0
ПК23 х3
Правильні конфігурації описуємо за допомогою табл. 5.11.
Таблиця 5.11 – Опис значень змінних для правильних конфігурацій за одиничними значеннями функції f5
Правильні конфігурації |
Значення змінних | |||
х1 |
х2 |
х3 |
х4 | |
ПК12 |
– |
– |
0 |
0 |
ПК23 |
– |
1 |
– |
– |
ПК12
описується
як –
.
Для ПК23
має місце виняткова ситуація. Тому ПК23
описується
як
.
Об’єднавши за допомогою операції штрих
Шеффера отримані описи ПК, отримаємо
МШНФ:
f5мшнф
=()
/
.
5.5. Мінімальна Пірсовська нормальна форма (мпнф)
Операція стрілка Пірса або операція АБО-НІ являється функціонально-повним базисом. Тому за допомогою операції стрілка Пірса може бути подана будь-яка булева функція.
Для отримання МПНФ необхідно виконати такі дії:
- заносимо нульові значення функції в карту Карно;
- створюємо ПК за нульовими значеннями. Нулі, які ввійшли на попередніх кроках в одну із ПК, вважаємо покритими. Із непокритих і покритих нулів створюємо наступну ПК, стараючись при цьому покрити максимальну кількість непокритих нулів. Нову ПК тільки із покритих нулів створювати не треба. Процес завершується, коли покриті всі нулі;
- описуємо всі ПК за допомогою таблиці;
- змінні, від яких залежить ПК, об’єднуємо за допомогою операції стрілка Пірса. Якщо змінна для даної ПК приймає одиничне значення, то вона береться в інверсному вигляді, інакше – в прямому:
Виняткові ситуації:
якщо ПК має максимальний ранг (тобто описується тільки однією змінною), то змінна, яка описує ПК, береться в інверсному вигляді;
якщо має місце тільки одна ПК, то береться загальна інверсія над усіма змінними, які описують цю ПК.
Об’єднуємо за допомогою операції стрілка Пірса всі описані ПК:
і отримуємо мінімальну Пірсовську нормальну форму.
Приклад 6. Функція f6 задана таблицею істинності (табл. 5.12). Побудувати МПНФ.
Таблиця 5.12 – Таблиця істинності функції f6
x1 |
х2 |
х3 |
f6 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Заносимо нульові значення функції f6 в карту Карно.
х1 ПК12
-
х2
6
7
0
3
0
2
4
5
0
1
0
0
х3
Об’єднуємо клітинки 0, 1, 2 і 3 в ПК12. Правильна конфігурація ПК12 описується за допомогою табл. 5.15.
Таблиця 5.13 – Опис значень змінних для правильної конфігурації за нульовими значеннями функції f6
Правильна Конфігурація |
Значення змінних | ||
х1 |
х2 |
х3 | |
ПК12 |
0 |
– |
– |
В даному випадку мають місце одночасно дві виняткові ситуації. Тому
f6
мпнф
=
=
.
Контрольні запитання
Які мінімальні нормальні форми булевих функцій ви можете назвати?
Які особливості використання карт Карно для отримання мінімальних нормальних форм булевих функцій?
Що являють собою правильні конфігурації (ПК)?
Як отримуються порядкові набори клітин карти Карно?
Які клітини карти Карно є сусідніми?
Що таке ранг правильної конфігурації?
Як обчислюється кількість змінних які описують ПК.
Як описуються правильні конфігурації?
Які дії треба виконати, щоб отримати такі мінімальні нормальні форми булевих функцій: диз’юнктивну, кон’юнктивну, Шефферовську і Пірсовську?
Побудувати МДНФ, МКНФ, МПНФ, МШНФ для наступної функції:
f5 (x1, x2, x3, х4) = ( 1, 2, 3, 4, 7, 8, 12, 13, 14, 15)1.