Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора.Дискретна..docx
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
101.25 Кб
Скачать

37. Постановка задачі мінімізації булевих функцій.

Мінімізацією булевої функції називають відшукання найпростішого її подання у вигляді суперпозиції функції якоїсь функціонально повної системи.

Мінімальною ДНФ булевої функції називають її ДНФ, що складається з найменшої можливої кількості букв. При цьому кожну букву враховують стільки разів, скільки вона зустрічається в ДНФ.

Елементарну кон. k називають простою імплікантою булевої функції f, якщо k – імпліканта функції f, а елементарна кон. одержана з k вилученням довільної букви, - не імпліканта. ДНФ, що складається з усіх простих імплікант булевої функції, називають СДНФ цієї функції.

Т. СДНФ Dскор булевої функції f задає цю функцію, тобто f=Dскор­.

Т. Мінімальну ДНФ булевої функції f можна одержати з її СДНФ вилученням деяких елмент. кон`юнкцій.

Д. Потрібно довести, що мінімальна ДНФ Dмін довільної булевої функції f являє собою диз. Її простих імплікант. Припустимо, що імпліканта k1 із Dмін не проста. Тоді із k1 можна вилучити хоча б одну букву так, щоб отримана елементарна кон. k2 також була імплікантою функції f. Окрім того, імпліканта k набуває значення 1 на всіх тих наборах, на яких набуває значення1 імпліканта k1. Отже у ДНФ Dмін імпліканту k1 можна замінити на k2 й отримати ДНФ D*, яка також подає функцію f. За побудовою D* має менше букв ніж Dмін. Одержали суперечність.

ДНФ Dтуп, яка подає функцію f називають тупиковою ДНФ цієї функції якщо:

  1. кожна елементарна кон з Dтуп – проста імпліканта функції f.

  2. вилучення з формули Dтуп, довільного диз. члена призводить до ДНФ D1* яка не подає f, тобто f≠D

Т. Мінімальна ДНФ булевої функції являє собою її тупикову ДНФ.

38. Методи Квайна та Мак-Класкі.

У методі Квайна до ДДНФ мулевої функції послідовно застосовують такі рівносильності:

Неповне склеювання: ku v ku = k v ku v ku

Поглинання: ku v k = k

k – елементарна кон’юнкція, u – змінна. Склеювання називається неповним, оскільки ku та ku залишаються у правій частині.

Алгоритм Куайна.

Крок 1. Булеву функцію f(x1,…,xn), яку потрібно мінімізувати, записати у ДДНФ, позначити її f0. Виконати і:=0.

Крок 2. Якщо до ДНФ fi не можна застосувати жодного неповного склеювання, то зупинитись: fi – СДНФ. Інакше на однові ДНФ fi побудувати ДНФ fi+1 за таким правилом: у формі fi виконати всі неповні склеювання, які можна застосувати до елементарних кон’юнкції рангу n-i, після цього вилучити всі елементарні кон’юнкції рангу n-i, до яких можна застосувати поглинання.

Крок 3. Виконати і:=і+1 і перейти до кроку 2.

Отже в алгоритмі Куайна, починаючи з ДДНФ f0, будують послідовність ДНФ f0, f1, f2,…, доти, доки не отримають СДНФ.

Алгоритм Куайна обґрунтує така теорема – для будь-якої мулевої функції f результатом застосування алгоритму Куайна до ДДНФ цієї функції є СДНФ функції f.

Алгоритм Мак-Класкі.

Крок 1. Булеву функцію, яку потрібно мінімізувати, записати у досконалій ДНФ.

Крок 2. Упорядкувати змінні та записати їх у кожній елементарній кон’юнкції у вибраному порядку. Після цього зобразити кожну кожну елементарну кон’юнкцію послідовністю з 0, 1, -. На і-тій позиції записати 1, якщо і-та змінна входить до елементарної кон’юнкції без заперечення, 0, якщо входить з запереченням, і риску якщо зовсім не входить.

Крок 3. Розбити двійкові вирази, які відповідають елементарним кон’юнкціям, на класи за кількістю одиниць, і розташувати списки цих класів у порядку зростання к-сті одиниць.

Крок 4. Виконати всі можливі склеювання. Склеювання можна застосовувати лише до елементів списку, які містяться у сусідніх класах. Елементи, які склеюють, знаходять у сусідніх класах за простим порівнянням: ці елементи повинні відрізнятись точно в 1 позиції і в цій позиції не повинна бути риска (-).