Číslicová technika · Boolova algebra

Problém pokrytia

Minimalizácia logickej funkcie je v skutočnosti problém pokrytia množiny: máme riadky, ktoré musíme pokryť (jednotky pri mintermoch, nuly pri maxtermoch), a množinu prvoimplikantov, z ktorých vyberáme čo najlacnejšiu sadu, ktorá pokryje všetko. Klikaním si to vyskúšajte sami.

Minterm mi — súčin (AND)

Je rovný 1 práve v jednom riadku i. Funkciu skladáme ako súčet súčinov (SOP, ÚSNF) – pokrývame jednotky.

Maxterm Mi — súčet (OR)

Je rovný 0 práve v jednom riadku i. Funkciu skladáme ako súčin súčtov (POS, ÚKNF) – pokrývame nuly.

Premenné:
Pokrývame:
Príklady: 3 premenné
4 premenné
Náhodné

1Pravdivostná tabuľka

Kliknutím na hodnotu f prepínate 0 → 1 → X. Stĺpec Pokrytie ukazuje, či je riadok, ktorý musíme pokryť, už pokrytý vašim výberom.

2Čo treba pokryť (kanonický zápis)

3Karnaughova mapa

Rovnaké riadky tabuľky, ale v mape susedia bunky, ktoré sa líšia v jedinom bite. Zafarbené bunky treba pokryť, farebné bodky ukazujú vybrané prvoimplikanty. Bunku môžete kliknutím prepnúť (0 → 1 → X), prechod myšou po riadku tabuľky pokrytia zvýrazní jeho skupinu.

4Tabuľka pokrytia – vyberajte prvoimplikanty

Riadky sú prvoimplikanty (najväčšie možné zoskupenia), stĺpce riadky, ktoré treba pokryť. Kliknutím na riadok ho pridáte alebo odoberiete. Stĺpec s jedinou bodkou je kritický – jeho prvoimplikant je podstatný (musí byť vo výbere vždy).

5Váš výsledok

Dualita: tá istá funkcia, dve pokrytia

Rovnaká pravdivostná tabuľka sa dá minimalizovať oboma smermi. Optimum nájdené algoritmom (vyčerpávajúce hľadanie):