3.2. Алгебраїчний метод
Суть цього методу полягає в послідовному застосуванні основних аксіом і законів булевої алгебри. Найчастіше для спрощення формул використовуються закони: склеювання та поглинання , де – змінна в прямій або інверсній формі.
Приклад 3.1. Мінімізувати функцію
,
де нижні індекси показують номери доданків, які являють собою мінтерми.
Розв’язання. Легко бачити, що можна виконати операцію склеювання таких пар мінтермів: 1 і 2 за змінною А; 2 і 3 за змінною С; 2 і 4 за змінною В; 3 і 5 за змінною В; 4 і 5 за змінною С;
В результаті виконання операцій склеювання отримаємо скорочену формулу , в якій можна провести склеювання доданків: 2 і 5 за змінною В; 3 і 4 за змінною С. При цьому отримаємо формулу , яка містить два одинакові доданки, що дає можливість остаточно записати функцію у вигляді .
Приклад 3.2. Мінімізувати функцію , задану в ДНФ.
Розв’язання. Для розв’язання поставленої задачі доцільно спочатку перетворити до ДДНФ. Скориставшись аксіомою , запишемо:
.
Після розкриття дужок та врахування аксіоми , дістанемо ДДНФ вигляду:
.
Застосовуючи до одержаних мінтермів закон склеювання дістанемо наступні дві мінімальні форми:
якщо склеїмо 2-й з 3-м за змінною С, 1-й з 5-м за змінною А та 4-й з 6-м за змінною В, то ;
якщо склеїмо 2-й з 6-м за змінною А, 1-й з 3-м за змінною В та 4-й з 5-м за змінною С, то .
Одержані мінімальні форми є мінімальними за всіма вище введеними критеріями простоти.
3.3. Метод Квайна
При мінімізації за методом Квайна в базисі вважають, що функція задана в ДНФ і використовується поняття первинної або простої імпліканти .
Метод Квайна полягає в застосуванні до імплікант, які входять в ДНФ функції f закону поглинання .
Використовуючи операцію поглинання вдається знизити ранг термів. Ця процедура продовжується до тих пір, поки не залишиться жодного терму, який допускає поглинання з яким-небудь іншим термом. Терм над яким було здійснено поглинання відмічаються. Не відмічені терми представляють собою первинні імпліканти.
Метод Квайна виконується в декілька етапів.
Продемонструємо метод Квайна на прикладах.
Приклад 3.3. Нехай потрібно мінімізувати функцію
Застосовуючи операцію склеювання дістанемо:
Тут за допомогою нижніх індексів вказані номери імплікант, в результаті склеювання яких, одержується відповідна імпліканта нижчого рангу.
В результаті таких перетворень одержимо скорочену форму .
Оскільки подальше спрощення неможливе, то одержана форма є тупиковою, а отже, і мінімальною.
А тепер приступимо до реалізації методу Квайна.
Етап1. Знаходження первинних імплікант. Перш за все складається таблиця (табл. 1) і знаходяться імпліканти третього і другого рангу, тобто знижується ранг членів, які входять в ДДНФ.
Таблиця 1
-
Початкові терми
+
1
+
1
+
1
+
1
+
1
В табл.1 і нижче символом “+” позначені терми (імпліканти), до яких застосовувався закон поглинання.
Таблиця 2
-
+
1
+
1
1
+
1
+
1
Після цього складається таблиця (табл. 2), яка включає всі терми, які не брали участь у поглинанні (таких немає), а також первинні імпліканти другого рангу. В загальному, складання таблиць продовжується до тих пір, поки можна застосувати закону поглинання.
Складаємо наступну таблицю, яка включає усі терми, які не підлягають поглинанню на попередніх кроках (таким термом в даному випадку є терм ), а також імпліканти 1-го рангу.
У розглядуваному прикладі можна дійти до первинних імплікант першого рангу (табл. 3).
Таблиця 3
-
1
1
В результаті етапу 1 одержуємо дві первинні імпліканти: і .
Етап2. Розставлення міток. Складається таблиця (табл. 4), число рядків, якої дорівнює числу первинних імплікант, а число стовпців співпадає з числом мінтермів (конституент одиниць) ДДНФ функції f. Якщо в деякий мінтерм ДДНФ входить яка-небудь із первинних імплікант, то на перетині відповідного стовпця і рядка ставиться мітка (символ “*”).
Таблиця 4
-
Первинні імпліканти
1
2
3
4
5
*
*
*
*
*
*
Етап 3. Знаходження істотних імплікант. Якщо в деякому стовпці таблиці знаходиться лише одна мітка, то первинна імпліканта у відповідному рядку є істотною, оскільки без неї не буде можливості одержати усю множину заданих мінтермів. У даному випадку такою імплікантою є . Стовпці, які відповідають істотним імплікантам, із таблиці викреслюються. У даному випадку такими імплікантами є і . Завдяки імплікації в табл. 4 можна викреслити стовпці 1,2,3 5, а завдяки імплікації – стовпець 4. Зауважимо, що в першу чергу розглядаємо імплікацію, яка більше покриває конституент одиниці. В результаті такої дії приходимо до результату, коли покриті усі конституент одиниці, а оскільки імпліканти і є первинні, то можна записати мінімальну форму у вигляді
.
У загальному випадку можуть бути наступні етапи.
Етап 4. Викреслювання лишніх стовпців. Після третього етапу в результаті викреслювання стовпців може одержатись таблиця, в якій є два стовпці, в яких є мітки в однакових рядках. Тоді один з них викреслюється. Покриття конституенти одиниці стовпця, який залишився буде здійснювати відкинутий мінтерм. У випадку, якщо таких рядів більше, то викреслюються всі, крім одного.
Етап 5. Викреслювання лишніх первинних імплікант. Якщо після викреслювання стовпців на етапі 4 в таблиці появляються рядки, в яких немає жодної мітки, то первинні імпліканти, які відповідають цим рядкам, вилучаються із подальшого розгляду, оскільки вони не покривають мінтерми, які залишились для розгляду.
Етап 6. Вибір мінімального покриття. В одержаній після попередніх етапів таблиці вибирається така сукупність первинних імплікант, яка включає мітки у всіх стовпцях принаймні по одній мітці в кожному стовпці. При декількох можливих варіантах такого вибору віддається перевага варіанту покриття з мінімальним сумарним числом букв в імплікантах, які здійснюють покриття.
Приклад 3.4. Задану функцію від чотирьох змінних , яка на вказаних наборах дорівнює одиниці, мінімізувати, користуючись методом Квайна.
Етап1. Знаходження первинних імплікант. Складаємо таблиці (табл.5, 6) і знаходяться імпліканти третього і другого рангу, тобто знижується ранг членів, які входять в ДДНФ до 3 і 2.
Таблиця 5
Початкові терми
1
1
1
1
1
1
1
1
Таблиця 6
Первинні імпліканти рангу
3
1
1
– +
1
– +
1
1
– +
1
1
1
– +
1
В результаті етапу 1 одержуємо шість первинних імпліканти: , , , , , . В табл.6 символом “+” позначено імпліканти, які брали участь в операції склеювання.
Етап2. Розставлення міток. Складаємо табл.7, число рядків, якої дорівнює числу первинних імплікант, а число стовпців співпадає з числом мінтермів ДДНФ функції f. Символ “*” ставиться на перетині рядка і стовпця, якщо відповідна первинна імпліканта рядка входить мінтерм стовпця.
Таблиця 7
Первинні імпліканти
1
2
3
4
5
6
7
8
Початкові терми
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Етап 3. Знаходження істотних імплікант. У даному випадку такою імплікантою є . Викресливши стовпці, які відповідають даній імпліканті, (у даному випадку такими стовпцями є 2,3,7 і 8), одержимо табл. 8, за допомогою якої будемо шукати мінімальне покриття.
Таблиця 8
Первинні імпліканти
1
4
5
6
Початкові терми
*
*
*
*
*
*
*
*
Оскільки для даного випадку етапи 4 і 5 відсутні, то переходимо до етапу 6.
Етап 6. Вибір мінімального покриття. Неважко переконатись, що мінімальне покриття дають первинні імплікант і (табл.9).
Таблиця 9
Первинні імпліканти
1
4
5
6
Початкові терми
*
*
*
*
Таким чином, мінімальна форма заданої функції складається з суми істотної імпліканти (етап 3) і первинних імплікант і (етап 6), які покривають мінтерми, що залишилися:
.
Приклад 3.5. Користуючись методом Квайна, мінімізувати функцію, яка задана у досконалій диз’юнктивній нормальній формі
.
В результаті виконання етапу 1 одержимо табл.10, з якої одержуємо чотири первинні імпліканти рангу 2: , , , .
Таблиця 10
Початкові терми
Результат розставлення міток наведено в табл. 11.
Таблиця 11 Таблиця 12
3
2
*
3
*
1
2
3
4
5
1
*
*
2
*
*
3
*
*
4
*
*
Викресливши істотні імпліканти , (етап 3), одержимо результат, який наведено в табл.12.
Оскільки первинні імпліканти і накривають той самий мінтерм , то це дає можливість одержати дві мінімальні форми:
або .
Приклад 3.6. Користуючись методом Квайна, мінімізувати функцію від трьох змінних, яка на наборах 0, 2, 3, 4, 5, 7 приймає значення 1, на інших – 0, тобто .
В результаті виконання етапу 1 одержимо табл.13, з якої одержуємо шість первинні імпліканти рангу 2: , , , , , .
Таблиця 13
Початкові терми
1
1
1
1
1
1
Результат розставлення міток наведено в табл. 14.
Таблиця 14
*
*
*
*
*
*
*
*
*
*
*
*
Неважко переконатись, що мінімальне покриття (етап 6) можна виконати двома способами, наведеними в таблицях 15, 16
Таблиця 15
*
*
*
*
*
*
Таблиця 16
*
*
*
*
*
*
З таблиць 15, 16 можна записати дві мінімальні форми:
і .