2. Методичні вказівки
Цей розділ самодостатній: він збирає всю теорію теми — досконалі форми, алгебраїчну мінімізацію та карти Карно — разом із прийомами, потрібними для виконання завдань із 3task.md. Наприкінці наведено один повний демонстраційний приклад на власних даних (відмінних від будь-якого варіанта), щоб показати техніку, не розв’язуючи чужого варіанта.
2.1 Булеві функції та таблиці істинності
Булева функція змінних кожній з комбінацій входів (наборів, інтерпретацій) ставить у відповідність значення з ; її таблиця істинності перелічує всі ці набори. Функцію будують зі змінних, констант та зв’язок (заперечення, пишемо ), (кон’юнкція, пишемо підряд ) і (диз’юнкція). Літерал — це змінна або її заперечення ( чи ). Пріоритет: .
Дві похідні зв’язки, які трапляються в умовах, зводяться до базових так:
2.2 Досконалі форми: ДДНФ і ДКНФ
Дві особливі форми читаються прямо з таблиці істинності. (У літературі їх звуть також досконалими або повними; російсько-українські скорочення СДНФ/СКНФ позначають ті самі дві форми. Загальніше, ДНФ — це диз’юнкція елементарних кон’юнкцій, а КНФ — кон’юнкція елементарних диз’юнкцій.)
- Конституента одиниці (мінтерм) рядка — це кон’юнкція всіх змінних, де кожну взято без заперечення, якщо її значення , і з запереченням, якщо ; вона дорівнює рівно на цьому рядку. ДДНФ (досконала ДНФ) — це диз’юнкція мінтермів усіх рядків зі значенням .
- Конституента нуля (макстерм) рядка — це диз’юнкція всіх змінних, де кожну взято без заперечення, якщо її значення , і з запереченням, якщо ; вона дорівнює рівно на цьому рядку. ДКНФ (досконала КНФ) — це кон’юнкція макстермів усіх рядків зі значенням .
Правило полярності. У мінтермі змінну заперечують там, де її значення ; у макстермі — навпаки, там, де її значення . Це «дзеркальне» правило далі діє й для груп на карті Карно.
Наприклад, якщо дорівнює лише на рядках і , то
Досконалі форми єдині, але зазвичай не мінімальні: кожен рядок додає повний терм, і мінімізація прибирає надлишок.
2.3 Закони булевої алгебри
Мінімізація переписує формулу за цими тотожностями (закони йдуть двоїстими парами — заміна і ).
| Закон | Для | Для |
|---|---|---|
| Комутативність | ||
| Асоціативність | ||
| Дистрибутивність | ||
| Ідемпотентність | ||
| Константи | ||
| Доповнення | ||
| Подвійне заперечення | ||
| Поглинання | ||
| Склеювання | ||
| Де Морган |
Корисний наслідок (варіант поглинання): і двоїсто .
2.4 Мінімізація законами (алгебраїчно)
Щоб мінімізувати рівносильними перетвореннями:
- Усуньте імплікацію та еквіваленцію за тотожностями з §2.1 ( тощо).
- Внесіть заперечення всередину за де Морганом і подвійним запереченням, поки кожне не стоятиме над окремою змінною.
- Спрощуйте дистрибутивністю, склеюванням (), поглинанням () та законами доповнення, аж поки жодне правило не застосовне. Результат — МДНФ (двоїсто — МКНФ).
Демонстрація методу. Спростимо (дані навмисно інші, ніж у варіантах):
Слабке місце алгебраїчного методу — легко не помітити можливе спрощення. Карта Карно робить усі допустимі групування видимими.
2.5 Карти Карно
Карта Карно — це таблиця істинності, викладена на ґратці так, щоб фізично сусідні клітини різнилися рівно в одній змінній (упорядкування за кодом Грея). Для чотирьох змінних карта — ґратка : рядки позначено парою , стовпці — парою , обидві в коді Грея . У кожну клітину ставлять значення функції на відповідному наборі.

Ключова властивість — циклічне (тороїдальне) сусідство: сусідять не лише внутрішні клітини, а й перший та останній стовпці ( і ) і так само перший та останній рядки ( і ). Тому групою може бути й «чотири кути» карти, і пара клітин на протилежних краях.
Зчитування МДНФ (по одиницях).
- Групуйте одиниці у прямокутні блоки розміром (степінь двійки), кожен — якомога більший;
- сусідство замикається по колу: крайні стовпці сусідні, крайні рядки сусідні;
- група з клітин вилучає змінних; її терм (елементарна кон’юнкція) — це кон’юнкція літералів, що лишаються сталими в межах групи, за правилом: стала змінна без заперечення, стала з запереченням;
- оберіть найменше число найбільших груп, які разом покривають усі одиниці (перекриття дозволені); МДНФ — диз’юнкція термів усіх груп.
Зчитування МКНФ (по нулях). Ту саму процедуру застосовують до нулів. Групування нулів дає МДНФ функції ; заперечивши її за де Морганом, кожну кон’юнкцію обертають на диз’юнкцію — це й є МКНФ функції . На практиці кожну групу нулів одразу читають як одну елементарну диз’юнкцію за дзеркальним правилом полярності: стала змінна без заперечення, стала з запереченням.
Прості та суттєві імпліканти. Групу, яку не можна збільшити (подвоїти), називають простим імплікантом. Якщо певну одиницю покриває лише один простий імплікант, він суттєвий і мусить увійти до відповіді. Тож систематичне правило таке: спершу візьміть усі суттєві прості імпліканти, а тоді якнайменшою кількістю решти простих імплікантів докрийте одиниці, що ще лишилися.
2.6 Демонстраційний приклад (карта Карно)
Розгляньмо функцію , задану картою (це інші дані, ніж у будь-якому варіанті завдання 2):
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 0 | 0 |
| 01 | 1 | 1 | 0 | 0 |
| 11 | 1 | 1 | 1 | 0 |
| 10 | 1 | 1 | 1 | 0 |
Крок 1. МДНФ — групуємо одиниці. Дві групи покривають усі вісім одиниць:
- блок з клітин — обидва стовпці (де ), усі чотири рядки; сталою лишається тільки , тож терм — ;
- блок з клітин — рядки (де ) і стовпці (де ); сталі та , тож терм — .

Крок 2. МКНФ — групуємо нулі. Нулі стоять у стовпці та у верхній частині стовпця . Дві групи нулів:
- блок з клітин — стовпець (де ), усі рядки; сталі і ; за дзеркальним правилом полярності це диз’юнкція ;
- блок з клітин — рядки (де ) і стовпці (де ); сталі і , звідки диз’юнкція .

Перевірка узгодженості. Розкривши дужки МКНФ, — той самий вираз, що й МДНФ. Обидві форми задають одну функцію; зауважте, що вона не залежить від (змінна не входить до жодного терму), і карта унаочнює це, бо верхня й нижня половини по однакові.
2.7 Робочий чеклист
- Щоб дістати ДДНФ/ДКНФ: складіть таблицю істинності; візьміть диз’юнкцію мінтермів рядків-одиниць (ДДНФ) або кон’юнкцію макстермів рядків-нулів (ДКНФ); стежте за правилом полярності (мінтерм: заперечення там, де ; макстерм: там, де ).
- Алгебраїчно: усуньте ; внесіть заперечення за де Морганом; спрощуйте склеюванням і поглинанням, поки можливо.
- На карті Карно: групуйте у степені двійки, якомога більшими блоками, з урахуванням циклічного сусідства, і покрийте всі одиниці найменшим числом груп; терм групи читайте зі сталих літералів.
- Для МКНФ: групуйте нулі (або переведіть МДНФ функції за де Морганом), застосовуючи дзеркальне правило полярності.