Karnaughovy mapy

Karnaughovy mapy se používají pro minimalizaci (zjednodušování) logických funkcí. Práce s nimi je snadná, jejich praktická použitelnost je ale omezená počtem vstupních proměnných.

Karnaughovy mapy jsou tabulky pravoúhlého tvaru do jejichž políček se vypisují hodnoty funkcí pro dané kombinace vstupních proměnných. Kombinace vstupních proměnných jsou vyznačeny po obvodu mapy a jsou navrženy tak, aby se mezi sousedními sloupci a sousedními řádkami měnila vždy pouze jedna proměnná.


Pro dvě, tři a čtyři proměnné:


Minimalizaci funkce provedeme ve třech krocích.

1. Vyplnění Karnaughovy mapy


Kombinacím vstupních proměnných v řádcích tabulky pravdivostních hodnot odpovídají kombinace po obvodu Karnaughovy mapy. Do takto určených políček zapíšeme hodnoty, kterých funkce v daných řádcích nabývá.


Například hodnotu funkce 7. řádku tabulky (0110) vyplníme do sloupce 01 a řádku 10 mapy.



2. Vytvoření smyček v Karnaughově mapě


Poté vytváříme smyčky, které spojují do pravoúhlých ploch o velikosti 2n skupiny sousedních políček s hodnotami log.1. Jako sousední uvažujeme také krajní a rohová políčka mapy. Do smyček musíme zahrnout všechna políčka obsahující log.1. Smyčky vytváříme co největší a v co nejmenším počtu. Jedno políčko může být i ve více smyčkách.


Nezadané hodnoty volíme log.1, pokud nám umožní sjednotit políčka do menšího množství větších smyček. Log.0 volíme, pokud bychom při log.1 museli vytvořit smyčku navíc.


Ukázky sousedních políček:



(Při přechodu mezi sousedními políčky se mění vždy pouze jedna proměnná.)



Ukázky smyček:



(Smyčky nesmí obsahovat jiný počet proměnných než 2n, tj. 1, 2, 4, 8 proměnných, a nesmí ohraničovat jiné než pravoúhlé plochy!).



3. Odečtení součinů funkce


Proměnná, která se ve smyčce nemění, bude v součinu v přímém tvaru, pokud je rovna jedné, v negovaném tvaru, pokud je rovna nule. Proměnná, která se ve smyčce mění, bude ze součinu vyloučena.



Příklad úplně zadané funkce:



Výsledná funkce po minimalizaci je:


Příklad neúplně zadané funkce:                       






Příklady


Majoritní funkce 3 proměnných:





Funkce dvou proměnných:




Protože je v pravdivostní tabulce zadána funkce operátoru logického součinu, vyšel nám i její algebraický tvar. Není minimalizovaný, protože jeho základní součtový tvar již minimální je.



Funkce dvou proměnných:




Vyšel nám v tabulce zadaný operátor logického součtu. Oproti zadání v normálním součtovém tvaru minimalizovaný je. Neminimalizovaný by vypadal takto:




Neúplně zadaná funkce dvou proměnných:




Zde je patrný důvod, proč jsme určení pravdivostní hodnoty ve čtvrtém řádku neúplně zadané funkce odložili až na minimalizaci. Kdybychom unáhleně zvolili hodnotu log.0., získali bychom funkci složitější:




Jedná se o funkci EX-OR. Vzhledem k tomu, že si můžeme zvolit hodnotu x rovnu jedné, vystačíme s jednodušší funkcí OR, která nám při minimalizaci vyšla.