- •1 Теорія множин. Основні операції над множинами
- •Завдання №1
- •Завдання №2
- •2 Задачі оптимізації на графах
- •2.1 Знаходження найкоротшого шляху між двома вершинами графа індексним методом
- •2.2 Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом
- •Завдання №4
- •2.3 Знаходження найкоротшого гамільтонова контуру методом гілок та меж
- •Завдання №5
- •2.4 Задача про максимальний потік у транспортній мережі
- •Завдання №6
- •3 Основи теорії мінімізації булевих функцій: побудова мднф та мкнф методом Квайна-Мак-Класки та за допомогою діаграм Вейча
- •Завдання №7
- •4 Основи алгебри логіки: висловлення, перетворення складних висловів до нормального виду, ведення доказу за допомогою методу резолюцій
- •Завдання № 8
- •Функцію f(x1, x2, x3,x4) записати у вигляді таблиці істинності та у вигляді нормальної та досконалої формах зображення.
- •Методом резолюцій довести, що одна з формул є логічним наслідком деяких висловів або впевнитись у противному. Індивідуальні завдання
- •Список літератури
3 Основи теорії мінімізації булевих функцій: побудова мднф та мкнф методом Квайна-Мак-Класки та за допомогою діаграм Вейча
Функція f, яка залежить від змінних х1, х2,…,хn, називається булевою або перемикальною, якщо функція f та кожен з її арґументів xi (i=1,…,n) набувають значення тільки із множини {0, 1}.
Визначення 1. Конституентою одиниці називають функцію , яка набуває значення 1 тільки на одному двійковому наборі. Конституента одиниці записується як логічний добуток різних змінних, деякі з яких можуть бути із запереченням. Булева функція g(x1, …, xn) називається імплікантою булевої функції f(x1,…,xn), якщо для будь-якого набору змінних, на якому g()=1, правильно f()=1.
Визначення 2. Елементарною кон’юнкцією називається кон’юнкція (логічний добуток ) кінцевого числа змінних, кожна з яких може мати або не мати заперечення. Змінна, що має значення 1, записується в прямій формі, а та, що має значення 0 – в інверсній формі. Також сюди слід віднести тотожну константу 1.
Елементарною диз’юнкцією називається диз’юнкція (логічна сума ) кінцевого числа змінних, кожна з яких може мати або не мати заперечення. Змінна, що має значення 0, записується в прямій формі, а та, що має значення 1 – в інверсній формі. Також сюди слід віднести тотожну константу 0.
Імпліканта g булевої функції f , яка є елементарною кон’юнкцією (елементарною диз`юнкцією), називається простою , якщо ніяка частина імпліканти g не є імплікантою функції f.
Визначення 3. Диз’юнктивною нормальною формою (ДНФ) є диз’юнкція (логічна сума) елементарних кон’юнкцій.
Кон’юнктивною нормальною формою (КНФ) є кон’юнкція (логічний добуток) елементарних диз’юнкцій.
Визначення 4. Досконалою ДНФ є диз’юнкція конституент одиниці , які відповідають одиничним значенням функції.
Досконалою КНФ є кон’юнкція конституент нуля , які відповідають нульовим значенням функції.
Визначення 5. ДНФ (КНФ), отримана з досконалої ДНФ (досконалої КНФ) за допомогою склеювання змінних (наприклад, методами Квайна або Квайна-Мак-Класки), називається скороченою ДНФ (скороченною КНФ).
Визначення 6. Скорочена ДНФ (скорочена КНФ) називається тупіковою, якщо в ній відсутні зайві прості імпліканти.
Визначення 7. Тупікові ДНФ (тупікові КНФ), які містять мінімальну кількість букв є мінімальними. Мінімальних ДНФ (КНФ) функції f(x1,…,xn) може бути декілька.
Розглянемо приклад 3.1 мінімізації булевої функції , яка задана у числовому вигляді (у вигляді множини записано номери конституент одиниці із таблиці істинності даної функції), методом Квайна-Мак-Класки та за допомогою діаграм Вейча. f(, , ,)={2, 4, 6, 8, 15, 16}.
Розв`язання
Будуємо таблицю істинності змінних заданої функції.
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 | |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 | |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 | |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 | |
f() |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
.
Побудуємо МДНФ методом Квайна-Мак-Класки. Згідно з алгоритмом, розіб’ємо всі двійкові набори, які відповідають одиничному значенню функції, на групи так, щоб номери груп ввідповідали кількості одиниць в елементах груп. У подальшому розв`язанні ця умова не змінюється.
1. 0001
2. 0011, 0101
3. 0111, 1110
4. 1111
Виконуємо крок склеювання, який полягає в побудові імплікант, які є результатом склеювання елементів сусідніх груп, що відрізняються тільки в значенні однієї позиції. У результуючій імпліканті на місці відмінності будемо ставити символ ‘-‘. Наприклад, 0001 і 0011 склеюються в 00-1, але 0011 та 1110 склеїти неможливо. Ті імпліканти, що не брали участь у жодному із склеювань залишаються на своєму місці без зміни.
1. 0001* 2. 0011**, 0101** 3. 0111**, 1110* 4. 1111* |
1. 00-1*, 0-01* 2. 0-11*, 01-1* 3. –111, 111- |
1. 0- -1 3. –111, 111-
|
* - імпліканта брала участь у склеюванні з однією сусідньою групою,
** - імпліканта брала участь у склеюванні з двома сусідніми групами.
Отримані після склеювання прості імпліканти складають скорочену ДНФ:
.
Для побудови МДНФ будуємо імплікантну таблицю та виконуємо крок поглинання
Двійкове зображення простих імплікант |
Двійкові номери конституент | |||||
0001 |
0011 |
0101 |
0111 |
1110 |
1111 | |
0 - - 1 |
* |
* |
* |
* |
|
|
- 1 1 1 |
|
|
|
* |
|
* |
1 1 1 - ! |
|
|
|
|
* |
* |
|
|
|
|
|
! |
! |
Вибираємо мінімальну кількість простих імплікант, що поглинають усі конституенти одиниць у таблиці. Такими імплікантами є 0- -1 та 111-.
У результаті отримали .
Для побудови МКНФ методом Квайна-Мак-Класки необхідно виписати всі двійкові набори, які відповідають нульовому значенню функції, розбити їх на групи і виконати кроки склеювання та поглинання.
За допомогою діаграми Вейча визначимо МДНФ та МКНФ заданої функції. Слід зазначити, що діаграма побудована таким чином, що сусідні клітинки відповідають наборам значень арґументів функції, що відрізняються за значенням тільки одного з арґументів. Поєднуючи сусідні клітинки, будуємо можливі імпліканти, тобто виконуємо крок склеювання.
Для детального розгляду запишемо дві діаграми. На одній відтворимо конституенти одиниці, а на другій – конституенти нуля заданої функції.
Визначення 8. Правильною конфіґурацією для булевої функції від n-змінних називається прямокутна область на діаграмі Вейча, що поєднує 2n-i однотипних клітинок.
Тоді мінімізація полягає у виборі мінімальної кількості правильних конфіґурацій за одиницями функції (для побудови МДНФ) або за нулями функції (для побудови МКНФ).
|
|
|
| |||||||||
|
1 |
|
|
0 |
|
0 |
0 | |||||
|
1 |
1 |
1 |
0 |
|
|
| |||||
|
|
1 |
1 |
0 |
0 |
|
| |||||
|
|
|
|
0 |
0 |
0 |
0 | |||||
|
|
|
|
.