3.9 Мінімізація систем булевих функцій
На практиці часто необхідно реалізовувати сукупності булевих функцій. Якщо зробити мінімізацію булевих функцій, які входять в систему незалежно одна від одної, то загальна схема буде складатися з ізольованих підсхем. Для того, щоб спростити отриману схему, використовують метод мінімізації булевих функцій, який грунтується на методі Квайна.
Нехай задано систему повністю визначених булевих функцій, які подані в ДНФ:
Всі різні елементарні кон’юнкції системи об’єднуємо в множину А, яку назвемо повною множиною елементарних кон’юнкцій системи функцій.
Сума рангів (число букв) елементарних кон’юнкцій множини А є зручним критерієм для оцінювання складності заданої системи.
Означення. Система ДНФ булевих функцій називається мінімальною, якщо її повна множина елементарних кон’юнкцій має мінімальну кількість букв, а кожна ДНФ булевої функції системи містить мінімальне число елементарних кон’юнкцій найбільшого рангу.
Алгоритм мінімізації систем булевих функцій
1. Побудувати повну множину А елементарних кон’юнкцій системи, яку мінімізуємо, враховуючи, що спочатку кожна з функцій системи подана в ДДНФ. Кожній конституенті одиниці множини А присвоїти ознаку, що містить номери функцій системи, в яку входить розглядувана конституента.
2. Виконати мінімізацію ДДНФ функції , конституентами якої є всі елементи множини А. При цьому:
а) при склеюванні двох конституент одиниці кожній одержаній елементарній кон’юнкції присвоїти ознаку, що складається з номерів функцій, загальних для двох склеюваних конституент одиниці;
б) якщо ознаки не мають спільних номерів, то склеювання не відбувається;
в) поглинання відбувається тільки для елементарних кон’юнкцій з однаковими ознаками. Одержані в результаті склеювання і поглинання кон’юнкції називаються простими імплікантами системи функцій.
3. Побудувати таблицю імплікант функції , аналогічно до методу Квайна, тільки для кожної конституенти одиниці виділяється стільки стовпців, скільки різних номерів функцій має її ознака.
Приклад.
Система булевих функцій задана таблицею істинності.
Таблиця 3.15 – Таблиця істинності
|
|
|
|
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
0
|
Подамо кожну з функцій в ДДНФ:
1. Побудуємо повну множину елементарних кон’юнкцій системи, яку отримали, приписуючи кожній конституенті ознаку входження до функцій і :
.
2. Будуємо ДДНФ функції :
.
1 2 3 4 5 6
Пронумеруємо конституенти для зручності склеювання.
1-2 :
2-3 :
4-6 :
5-6 :
Після проведення поглинань (), з урахуванням ознаки, маємо:
.
Таким чином отримано прості імпліканти вихідної системи булевих функцій
3. Будуємо імплікантну матрицю. Стовпці – конституенти одиниці з ДДНФ фунції . Для кожної конституенти виділяємо стільки стовпців, скільки різних номерів функцій мають ознаку конституенти.
Рядки матриці – прості імпліканти системи.
Заповнення матриці аналогічно до методу Квайна. Отримане ядро покриває всі конституенти одиниці з ДДНФ функції .
Таблиця 3.16
|
Конституенти одиниці функції
|
|
|
|
|
|
|
1
|
2
|
2
|
2
|
1
|
2
|
|
1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
Виділяємо для функції імпліканти з ознакою, що містить ознаку і, отримаємо таку мінімальну диз’юнктивну нормальну форму системи.
Недолік: велика громіздкість проведення операцій склеювання та поглинання з ознакою.
|