ДМ_л5_2012.ppt
- Количество слайдов: 16
Мінімізація булевих функцій Лекція 5 Булеві функції 1
Індекси простоти булевої функції Оскільки булева функція може бути представлена у вигляді д. н. ф. різними формулами, виникає проблема вибору найкращої реалізації. Для цього вводять функціонал – індекс простоти (L(A)), що характеризує складність д. н. ф. Приклади індексів простоти, що найчастіше використовуються: LЛ(A) – кількість літер змінних, що зустрічаються у запису д. н. ф; LК(A) – кількість елементарних кон'юнкцій, що входять до A; LЗ(A) – кількість символів заперечення, що зустрічаються у запису д. н. ф. Над алфавітом змінних {x 1, x 2, . . . , xn} можна побудувати 3 n різних елементарних кон'юнкцій ("порожній" кон'юнкції зіставимо константу 1). Звідси випливає, що кількість д. н. ф. над цим алфавітом із n змінних дорівнює . Мінімізація булевих функцій 2
Задача мінімізації булевих функцій Означення 2. 17. Д. н. ф. A, що реалізує функцію f(x 1, x 2, . . . , xn) і має мінімальний індекс L(A), називається мінімальною щодо L (м. д. н. ф. щодо L). Означення 2. 18. Мінімальну д. н. ф. щодо індексу LЛ(A) називатимемо мінімальною д. н. ф. функції f(x 1, x 2, . . . , xn). Означення 2. 19. Мінімальну д. н. ф. щодо індексу LК(A) називатимемо найкоротшою д. н. ф. функції f(x 1, x 2, . . . , xn). Побудова для будь-якої функції f(x 1, x 2, . . . , xn) її м. д. н. ф. щодо L називатимемо задачею мінімізації булевих функцій. Існують аналітичні та геометричні методи мінімізації функцій. Мінімізація булевих функцій 3
Аналітичні методи мінімізації Мінімізація булевих функцій 4
Спрощення д. н. ф. і тупикові д. н. ф. Нехай A – довільна д. н. ф. A = A' K, A = A' K', де K – елементарна кон'юнкція у формулі A; A' – д. н. ф. , утворена з решти кон'юнкцій, які входять до A; – деякий співмножник із K; K' – добуток решти співмножників із K. Мінімізація булевих функцій 5
Операції трансформацій д. н. ф. Розглянемо два типи трансформацій д. н. ф. 1. Операція вилучення елементарної кон'юнкції. Перехід від д. н. ф. A до д. н. ф. A' – перетворення, здійснюване шляхом вилучення елементарної кон'юнкції K. Перетворення визначене тоді й тільки тоді, коли A' = A. 2. Операція вилучення співмножника. Перехід від д. н. ф. A до д. н. ф. A' K' – перетворення, здійснюване шляхом вилучення співмножника . Перетворення визначене тоді й тільки тоді, коли A' K' = A. Мінімізація булевих функцій 6
Тупикові д. н. ф. Означення 2. 20. Д. н. ф. A, яку неможливо спростити за допомогою перетворень 1 і 2 (їх застосування неможливе), називають тупиковою д. н. ф. (т. д. н. ф. ) щодо перетворень 1 і 2. На основі перетворень можна сформулювати алгоритм спрощення д. н. ф. , оскільки серед т. д. н. ф. функції f(x 1, x 2, . . . , xn) завжди містяться і мінімальні. Мінімізація булевих функцій 7
Алгоритм спрощення (1) 1. Вибираємо будь-яку д. н. ф. функції f(x 1, x 2, . . . , xn) як вихідну (наприклад, д. д. н. ф. ). 2. Упорядковуємо у вихідній д. н. ф. логічні доданки, а в кожному доданку – логічні співмножники. Упорядкування можна здійснити за допомогою запису д. н. ф. Мінімізація булевих функцій 8
Алгоритм спрощення (2) 3. Переглядаємо запис д. н. ф. зліва направо; для поточної кон'юнкції Ki спробуємо пристосувати операцію її вилучення. Якщо спроба буде невдалою, то переглядаємо співмножники кон'юнкції Ki зліва направо та пристосовуємо операцію вилучення співмножника доки це можливо. Порівнювати можна i-місну кон'юнкцію з j-місною (i j), але не навпаки. Переходимо до наступної елементарної кон'юнкції. 4. Після обробки останньої елементарної кон'юнкції ще раз переглядаємо одержану д. н. ф. зліва направо та робимо спробу пристосувати операцію вилучення елементарної кон'юнкції. По закінченні алгоритму одержуємо шукану д. н. ф. Мінімізація булевих функцій 9
Теорема про тупикову д. н. ф. Має місце наступна Теорема 2. 4. Одержана у результаті застосування алгоритму спрощення д. н. ф. є тупиковою (щодо перетворень 1 і 2). Приклад 2. 6. Для функції f(x 1, x 2, x 3), що задана Мінімізація булевих функцій f 0 0 0 1 1 1 0 0 0 1 1 0 1 1 3. Послідовність кроків при виконанні третього етапу алгоритму подано у таблиці. 4. Крок 4 застосувати неможливо. Одержуємо т. д. н. ф. x 1 x 2 x 3 0 за допомогою таблиці, побудувати т. д. н. ф. 1. Вибираємо д. д. н. ф. 2. Здійснюємо упорядкування доданків у д. д. н. ф. 1 10
Продовження прикладу 2. 6 Для тієї самої функції f(x 1, x 2, x 3) візьмемо іншу впорядкованість її д. д. н. ф. Послідовність кроків при виконанні алгоритму спрощення для нової д. д. н. ф. наведено у іншій таблиці. Одержуємо т. д. н. ф. функції f(x 1, x 2, x 3): Із прикладу випливає, що результат застосування алгоритму спрощення залежить від вибору впорядкування вихідної д. н. ф. Тобто LЛ(A 1) = 8, LЛ(A 2) = 6, LЛ(A 1) LЛ(A 2). Оскільки т. д. н. ф. можуть мати різну складність, зокрема відрізнятися від мінімальних, то виникає питання, чи можна для будь-якої функції f(x 1, x 2, . . . , xn), виходячи із певного впорядкування, одержати м. д. н. ф. шляхом застосування алгоритму спрощення? Мінімізація булевих функцій 11
Зв’язок між т. д. н. ф. і м. д. н. ф. Теорема 2. 5. Нехай f(x 1, x 2, . . . , xn) – довільна булева функція (f(x 1, x 2, . . . , xn) 0) та A – її довільна т. д. н. ф. (щодо операцій 1 і 2). Тоді існує таке впорядкування вихідної д. д. н. ф. , з якого за допомогою алгоритму спрощення можна одержати т. д. н. ф. A. Висновок 2. 5. Оскільки серед т. д. н. ф. обов'язково містяться й мінімальні щодо L (не обов'язково всі), то за певного вибору впорядкування д. д. н. ф. алгоритм спрощення дозволяє знайти й м. д. н. ф. Мінімізація булевих функцій 12
Оцінка складності алгоритму Таким чином, для побудови м. д. н. ф. слід перебрати впорядкування д. д. н. ф. (за природного порядку кон'юнкцій виконувати варіацію тільки порядків співмножників у кон'юнкціях) A', для кожного з них – обчислення за допомогою алгоритму спрощення. Далі необхідно вибрати м. д. н. ф. У цьому випадку кількість перевірок для всіх варіантів не більше, ніж , що значно менше за , тобто цей алгоритм краще за алгоритм повного перебору всіх д. н. ф. Мінімізація булевих функцій 13
Найбільш поширені методи мінімізації булевих функцій Булеві функції, як відомо, можуть бути реалізовані різними формулами, проте для практики найбільше значення мають мінімальні нормальні форми. Для довільних функцій методів знаходження таких форм не існує, мінімізацію проводять лише для певних форм. Задачі знаходження (побудови) мінімальних д. н. ф. (к. н. ф. ) носять назву задач мінімізації. Існує низка аналітичних методів мінімізації. üМетод Квайна - Мак-Класкі. üМетод Блейка - Порецького. üМетод невизначених коефіцієнтів. üМетод Петрика. Мінімізація булевих функцій 14
Мінімізація булевих функцій 15
Мінімізація булевих функцій 16
ДМ_л5_2012.ppt