Знаходження мінімальної ДНФ за допомогою карт карно

Цей метод використовується для формул з малим числом змінних. Карта Карно для функції n змінних містить 2 n осередків, кожна з яких відповідає одній з 2 n можливих комбінацій значень n булевих змінних x1, x2, ..., xn. Дві сусідні осередки відрізняються значенням лише однієї змінної. У разі функції трьох змінних карту Карно можна представити в наступному вигляді:

Всі осередки, відмічені дужкою xi (по рядку і стовпцю), представляють набори з xi = 1, а в невідмічених рядках і шпальтах осередки відповідають наборам з xi = 0.


У разі чотирьох змінних карта Карно має наступний вигляд:

Булева функція може бути представлена ​​на карті Карно виділенням на карті осередків, відповідних наборів, на яких функція приймає значення 1. У цих осередках писатимемо 1. Незаповнені осередки відповідають нулях функції.

Приклад 3.14. Заповнимо карту Карно для функції

2 k сусідніх осередків, що містять одиниці, називаються покриттям в тому випадку, якщо вони розташовані у вигляді прямокутника або квадрата. При цьому вважається, що осередки на протилежних кінцях рядків або стовпчиків є сусідніми, як ніби карта розташована на торі. Кожне покриття відповідає импликанте. Покриття, що складається з двох осередків, відповідає твору всіх змінних крім однієї, значенням якої відрізняються ці осередки. Покриття з чотирьох осередків відповідає твору, в якому відсутні дві змінні і т.д. Чим більше осередків в покритті, тим простіше импликанта. Для отримання простої імпліканти вибирається покриття найбільшого розміру.

Для побудови мінімальної ДНФ по карті Карно слідують двом правилам.

1. Вибирають покриття найбільшого розміру, що містять комірки, які не можуть бути ні в якому іншому покритті.

2. Для решти осередків вибирають покриття найбільшого розміру.

Приклад 3.15. Знайдемо мінімальну ДНФ для функції.

Випишемо виконавчі номери всіх K 1:

0000 0001 0010, 0011, 0100, 0110, 0111, 1000, 1001, 1011 1111.

Схожі статті