
- •Застосування логіки висловлювань в програмній інженерії методичні вказівки
- •Теоретичні відомості.
- •Нормальні форми логіки висловлювань
- •Карти Карно
- •Кодистійкі до перешкод
- •Логічні побітові операції
- •Завдання до виконання
- •Контрольні запитання.
- •Список літератури
- •Застосування логіки висловлювань в програмній інженерії методичні вказівки
Карти Карно
Означення 3.1. Диз’юнкція всіх простих імплікант називаєтьсяскороченоюДНФ функції.
Скорочені ДНФ є ще одним способом однозначного уявлення булевих функцій, яке у багатьох випадках може виявитися більш простим, ніж подання за допомогою досконалих ДНФ.
Прикладом скороченої ДНФ є
.
Означення 3.2. Найкоротша (мінімальна) диз’юнктивна нормальна форма – це ДНФ, що має найменшу довжину серед всіх еквівалентних їй ДНФ.
Скорочену ДНФ можна отримати з довільної ДНФ, використовуючи процедуру, що називається методом Блейка:
Застосовувати, скільки можливо, закон поглинання
зліва
направо за умови, що кон'юнкція ()
несуперечлива, тобто не містить одночасно
деяку змінну та її заперечення. (Зауважимо,
що на цьому етапі число елементарних
кон'юнкція в ДНФ, взагалі кажучи,
збільшується).
Застосовувати, скільки можливо, правило поглинання
Потім видалити повторні входження кон'юнкцій.
ТЕОРЕМА 3.1. У результаті використання методу Блейка для довільної ДНФ через скінченне число кроків буде отримана еквівалентна їй скорочена ДНФ.
Приклад 3.1. Використовуючи метод Блейка для досконалої ДНФ функції f(p,q,r), що приймає значення TRUE для (F,F,T), (F,T,F), (F,T,T), (T,F,T), побудувати скорочену.
Досконала ДНФ:
.
Застосуємо закон поглинання:
Застосуємо правило поглинання:
.
Отже,
скороченою ДНФ для функції f
є.
Означення 3.3. Тупикова диз’юнктивна нормальна форма – це ДНФ, у якій відкидання будь-якої кон’юнкції приводить до нееквівалентної ДНФ. Мінімальна ДНФ є тупиковою, але не всяка тупикова є мінімальною.
Карти
Карно використовуються для знаходження
тупикових ДНФ від невеликого числа
змінних ().
Карта Карно для ДНФ є аналогом таблиці
істинності, представленої в спеціальній
формі.
Картою
Карно є матриця розмірності
(n=k+l)
з 2n
клітинками, у якій кожен рядок
однозначно відповідає деякій елементарній
кон’юнкції перших k
змінних, а кожний стовпчик –
елементарній кон’юнкції решти l
змінних, таким чином, що сусідні елементи
(мають спільну границю, перший і останній
рядки (стовпці) вважаються сусідніми)
в кожному рядку та в кожному стовпчику
відрізняються лише одним літералом.
Кожна клітинка відповідає деякій
елементарній кон’юнкції. Нуль або
одиниця у клітинці таблиці визначає
значення функції на даній інтерпретації.
Приклад 3.2.Структура карт Карно для функцій від двох n=2, k=1, l=1 (табл.3.1) і трьох n=3, k=1, l=2 (табл. 3.2) змінних наведена нижче.
Таблиця 3.1
Карта Карно для функції двох змінних
p q |
0 |
1 |
0 |
|
|
1 |
|
|
Таблиця 3.2
Карта Карно для функції троьх змінних
pq r |
00 |
01 |
11 |
10 |
0 |
|
|
|
|
1 |
|
|
|
|
Правило склеювання клітинок і запису мінімальної ДНФ.
1. Будується карта Карно, яка відповідає даній формулі.
2. Клітинки об'єднуються в групи, що позначають операції склеювання. У об'єднанні беруть участь тільки сусідні клітинки, в яких знаходяться одиниці.
3. У групу можна об'єднати тільки кількість клітинок, яка дорівнює числу 2n, де n = 1,2,3,... При цьому група може мати тільки прямокутну або квадратну форму.
4. Завдання склеювання полягає в знаходженні набору максимальних груп клітинок. Максимальна група – це група, яка не входить цілком ні в яку іншу групу і відповідає простій імпліканті формули. Кількість груп в такому наборі має бути мінімальною, оскільки група відповідає мінімальній тупиковій ДНФ. Кожна одиниця карти Карно повинна входити хоч би до однієї групи, це забезпечує покриття функції отриманим набором імплікант.
5. Кожна група клітинок, отримана після склеювання, відповідає тій імпліканті формулі, реальні змінні якої мають однакове значення для всіх клітинок групи. Змінні беруться без заперечення, якщо їм відповідає одиничне значення, та із запереченням в протилежному випадку.
6. Диз'юнкція всіх отриманих простих імплікант є результатом мінімізації формули і приводить до мінімальної ДНФ.
Приклад 3.3. Побудувати мінімальну ДНФ для формули:
(для
спрощення запису формули знак кон’юнкції
упущений).
Карта Карно для цієї функції має вигляд:
Імпліканти для цієї формули мають вигляд:
А –
,
B –.
Отже, мінімальна ДНФ заданої функції
– f=
.▲
Приклад 3.4. Побудувати мінімальну ДНФ для формули:
Імпліканти для цієї формули мають вигляд:
А –
;
B –;
C –.
Отже, мінімальна ДНФ заданої функції
– f=
.▲
Приклад 3.5. Побудувати мінімальну ДНФ для формули:
Імпліканти для цієї формули мають вигляд:
А –
;
B –;
C –.
Отже, мінімальна ДНФ заданої функції
– f=
.▲
Аналогічно, з використанням карт Карно, можна побудувати мінімальну кон’юктивну нормальну форму, але склеювання проводити не по одиницях, а по нулях.