2.2
Minimalizace logických funkcí pomocí Karnaughových map
Postup minimalizace logické funkce pomocí Karnaughovy mapy můžeme shrnout do několika kroků, respektive několika pravidel pomocí kterých minimální formu v mapě určíme.
Souhrn
- Nakreslíme Karnaughovu mapu pro daný počet nezávisle proměnných, očíslujeme její políčka v souladu s pravidly Grayova kódu a vepíšeme do mapy funkční hodnoty zadané funkce.
- Postupně v mapě vytváříme smyčky (podmapy) podle těchto pravidel:
- Pomocí těchto pravidel postupujeme tak, aby:
- Každou smyčku v mapě následně vyjádříme jako součinový term nezávisle proměnných, jejichž hodnoty se v rámci dané smyčky nemění (k tomu nám jako pomůcka slouží oblasti pokrytí proměnnými v mapě vyznačené pomocí svislých a vodorovných čar po okrajích mapy).
- Výsledné MNDF řešení získáme jako logický součet jednotlivých součinových termů vzniklých pomocí smyček z logických 1 a neurčitých stavů, MNKF řešení je pak rovno NEGACI logického součtu jednotlivých součinových termů vytvořených ze smyček logických 0 a neurčitých stavů
- V některých případech může existovat více rovnocenně minimálních řešení.
Zajímavost
Z definice uvedené v předchozí kapitole, že v mapě pro n proměnných existuje ke každému jejímu políčku právě n sousedních políček, vyplývá s ohledem na velikost smyček, že v případě mapy s n nezávisle proměnnými obsahuje součinový term vzniklý ze smyčky o velikosti:
- 1 políčko – term obsahuje n proměnných,
- 2 políčka – term obsahuje n-1 proměnných,
- 4 políčka – term obsahuje n-2 proměnných,
- 8 políček – term obsahuje n-3 proměnných,
- 16 políček – term obsahuje n-4 proměnných,
- …
Obecně označme počet nezávisle proměnných v mapě jako n a počet políček, která tvoří danou smyčku, jako p, pak součinový term vzniklý z dané smyčky bude obsahovat právě počet proměnných x, kde x můžeme vyjádřit jako:
.
Uvedený postup minimalizace logické funkce pomocí hledání smyček v mapě si předvedeme na několika příkladech.
Příklad
Příklad:
Nalezněte MNDF a MNKF formy funkce f čtyř nezávisle proměnných a, b, c, d zadané pomocí zkráceného seznamu stavových indexů. MNDF formu realizujte pomocí hradel NAND, MNKF formu pomocí hradel NOR.
f = 0, 2, 4, 6, 7, 8, 10, (11), (15).
Zobrazit řešení
Řešení
Řešení:
Nakreslíme Karnaughovu mapu pro 4 proměnné, očíslujeme její políčka a vyplníme hodnoty zadané funkce, jak ukazuje obrázek 6.
+
Obr. 6. Karnaughova mapa zadané funkce čtyř proměnných
1. Nejprve nalezneme MNDF formu funkce f a realizujeme ji pomocí hradel NAND.
V mapě nás tak budou nyní zajímat pouze políčka obsahující logické 1 a neurčité stavy. Pomocí pravidel uvedených výše nalezneme a v mapě vyznačíme příslušné smyčky, jak ukazuje obrázek 7.
+
Obr. 7. Dvě rovnocenně minimální řešení MNDF formy zadané funkce
Zadaný příklad má dvě rovnocenně minimální řešení, viz dále.
V mapě jsme nalezli tyto smyčky:
- červená smyčka – je tvořena políčky 0, 2, 8 a 10, pokud mapu stočíme seshora dolů i zleva doprava, dostanou se všechny 4 rohy mapy navzájem k sobě a můžeme z nich vytvořit jednu smyčku sousedních políček,
- modrá smyčka – políčka s indexy 0, 2, 4 a 6 jsou navzájem sousední přes okraj mapy,
- zelená smyčka – protože z políček obsahujících logickou 1 zbývá nepokryté políčko 7, je potřeba ještě jedna smyčka k jeho pokrytí. Zde se nabízí dvě možnosti, dvě rovnocenně minimální řešení. První řešení představuje smyčka políčka 7 s políčkem 15, které obsahuje neurčitý stav. Druhé řešení je vytvořit smyčku z políčka 7 a již pokrytého políčka 6.
Políčko s indexem 11 obsahující neurčitý stav se nám nehodilo do žádné ze smyček, abychom pomocí něho vytvořili některou smyčku větší. Necháme jej tedy nepokryté.
Zapíšeme nyní součinové termy pro jednotlivé smyčky:
- červená smyčka – ,
- modrá smyčka – ,
- zelená smyčka – 1. řešení: , 2. řešení: .
Dvě řešení MNDF – fD1, fD2 – pak zapíšeme jako logické součty jednotlivých součinových termů:
Obě dvě řešení bychom nyní realizovali pomocí hradel NAND. MNDF formu je však nutno nejprve upravit do tvaru negovaných logických součinů. Použijeme tedy stejný postup jako v předchozím příkladu v kapitole 1.2, tedy nejprve aplikujeme zákon dvojité negace a následně zákon o negaci logického součtu. Upravíme postupně obě řešení:
Jejich realizaci pomocí hradel NAND pak ilustruje následující obrázek 8.
+
Obr. 8. Realizace obou MNDF řešení funkce z příkladu pomocí hradel NAND
Negace vstupních proměnných tam, kde je potřeba, jsme pro lepší přehlednost v obrázku vyznačili pouze kroužkem na vstupu hradla a nerozkreslovali jsme hradla NAND pro vytvoření negace dle obrázku 2.
2. Nyní se zaměříme na MNKF formu funkce f a její realizaci pomocí hradel NOR.
Do mapy proto vyplníme políčka s hodnotou funkce logická 0 nebo neurčitý stav. Opět pomocí pravidel pro hledání smyček v mapě nalezneme MNKF pomocí smyček přes nulové body a/nebo neurčité stavy, výsledek je zobrazen na obrázku 9.
+
Obr. 9. Vytvoření smyček v mapě zadané funkce f pro hledání MNKF formy
Pro pokrytí všech nulových bodů funkce pomocí co nejmenšího počtu co největších smyček jsme potřebovali celkem 3 smyčky:
- červená smyčka – tvořená políčky 1, 5, 9 a 13, která jsou všechna navzájem sousední,
- modrá smyčka – složená z políček s indexy 12, 13, 14 a 15, ve které jsme využili i neurčitý stav v políčku číslo 15,
- zelená smyčka – obsahující políčka s indexy 1, 3, 9 a 11, která vznikne po stočení mapy seshora dolů, kdy spodní hrana mapy a horní hrana mapy spolu sousedí. Ve smyčce jsme opět s výhodou použili neurčitý stav v políčku 11, políčka 1 a 9 patří do červené smyčky i zelené smyčky (smyčky se překrývají).
V případě určení MNKF formy jsme vhodně využili oba neurčité stavy. Na rozdíl od předchozí MNDF formy funkce f, je minimální řešení pro MNKF formu pouze jedno. Zapíšeme jej tedy takto:
- červená smyčka – ,
- modrá smyčka – ,
- zelená smyčka – .
Výsledná MNKF forma fK je negací logického součtu výše uvedených součinových termů. Upravíme negaci na základě zákonů o negaci logického součtu a součinu postupně v krocích:
.
Pro realizaci MNKF formy dle fK zvolíme hradla NOR. Opět je ale potřeba nejprve výraz upravit do podoby negovaných logických součtů. S výhodou opět použijeme zákon dvojité negace a zákon o negaci logického součinu, získáme tak výraz:
který již můžeme snadno realizovat pomocí hradel NOR, jak ukazuje obrázek 10. V něm jsme opět pro lepší přehlednost zakreslili kroužkem na vstupech hradel negace nezávisle proměnných.
+
Obr. 10. Realizace MNKF formy z příkladu pomocí hradel NOR
Příklad
Příklad:
Nalezněte MNDF a MNKF formy funkce f pěti proměnných a, b, c, d, e zadané pomocí zkráceného seznamu stavových indexů. Realizujte MNDF formu pomocí hradel NAND, MNKF formu pomocí hradel NOR. Pro každou z forem stačí nalézt jedno libovolné minimální řešení (pokud existuje více rovnocenně minimálních, postačí jedno libovolné z nich). Funkce f je zadána indexy:
f = 0, (1), 2, 4, 5, (6), 9, 11, 13, 14, (15), 16, 18, 20, 22, (25), 27, 29, (30), 31.
Zobrazit řešení
Řešení
Řešení.
Jedná se o funkci pěti proměnných, nejprve nakreslíme příslušnou Karnaughovu mapu, očíslujeme její políčka a vyplníme do ní hodnoty zadané funkce f, jak ukazuje obrázek 11. Nezapomeneme na osu symetrie, která prochází vertikálně středem mapy.
+
Obr. 11. Vyplněná Karnaughova mapa funkce f pěti proměnných z příkladu
Postup nalezení formy MNDF i formy MNKF přehledně ukazuje následující animace 1.
Animace 1. Animace řešení nalezení forem MNDF i MNKF zadané funkce f pěti proměnných
Výsledkem minimalizace jsou MNDF a MNKF formy:
V případě MNDF formy se v mapě nabízí více rovnocenně minimálních řešení (celkem 4 možná řešení) – dokážete je nalézt?
Pro realizace MNDF a MNKF forem pomocí hradel je opět potřeba upravit jejich vyjádření pomocí zákona dvojité negace a zákonů o negaci logického součtu a součinu do vhodných tvarů:
Realizaci MNDF formy provedeme opět pomocí hradel NAND, výsledek je uveden na obrázku 12.
+
Obr. 12. Realizace získané MNDF formy pomocí hradel NAND
A stejným způsobem pak realizujeme i MNKF formu, tu však pomocí hradel NOR, jak ukazuje obrázek 13.
+
Obr. 13. Realizace získané MNKF formy pomocí hradel NOR
Výhody
Při porovnání metod minimalizace logických funkcí pomocí algebraických úprav a pomocí Karnaughových map je zřejmé, že Karnaughovy mapy nabízí rychlý, přehledný a relativně jednouchý způsob pro hledání minimálních forem funkcí. Mapy lze navíc výhodně použit i pro převody forem funkcí, viz další kapitola.
Nevýhody
Mezi hlavní nevýhody použití Karnaughových map pro minimalizaci logických funkcí patří skutečnost, že hledání smyček v mapě je značně intuitivní záležitost, která vyžaduje dostatečné zkušenosti a představivost při hledání co nejmenšího počtu co největších smyček v mapách. Z tohoto důvodu nelze jednoduše realizovat metodu minimalizace logických funkcí prostřednictvím Karnaughových map pomocí počítačového (programátorského) řešení, např. vhodným algoritmem. Nevýhodou Karnaughových map rovněž je, že do počtu proměnných 6 nabízí ještě dostatečnou přehlednost, se zvyšujícím se počtem proměnných (7 a více) jsou mapy značně složité, nepřehledné a pracné na zakreslení.
Zajímavost
Na internetu lze nalézt množství online i offline nástrojů Karnaughových map pro minimalizaci logických funkcí, namátkou např.:
Základem těchto programů je však minimalizace logické funkce pomocí algoritmu Quine-Mc Cluskey (viz navazující text), Karnaughova mapa pak slouží jen jako grafické zobrazení výsledku minimalizace.