V předchozí části byl řešen případ, kdy je známé matematické vyjádření logické funkce. Ve skutečnosti mohou nastat a také velmi často je potřeba řešit případy, kdy je znám výsledek logické funkce a je nutno najít matematické vyjádření. K tomu slouží grafická vyjádření tak zvané mapy. Jednou z nejznámějších a nejpoužívanějších je Karnaughova mapa. Je to jiný způsob vyjádření pravdivostní tabulky, který je použit ke zjednodušování logických výrazů. Pro lepší znázornění problému je uveden následující příklad.
Pravdivostní tabulka je vyjádření výsledků logického výrazu pro všechny kombinace nezávisle proměnných. Příklad pravdivostní tabulky pro tři nezávisle proměnné je uveden v řešeném příkladě 4.1. V prvních třech sloupcích jsou vyjádřeny hodnoty nezávisle proměnných. Poslední sloupec (úplně vpravo) zobrazuje hodnoty závisle proměnné.
V případě Karnaughovy mapy je výsledný sloupec zobrazen jako obdélníkové pole. Na každé straně obdélníka jsou vyjádřeny hodnoty nezávisle proměnných. Je jedno, která nezávisle proměnná ke které straně bude přiřazena. Hodnoty nezávisle proměnných je vhodné vyplňovat tak, aby tyto hodnoty u sousedního sloupce/řádku byly změněny o jeden bit. Na takto vyplněné strany je možné pohlížet jako na souřadnice buněk, které tvoří pole pro hodnoty závisle proměnné. Buňky tohoto pole jsou vyplněny hodnotami závisle proměnné podle kombinace hodnot nezávisle proměnných. Pro lepší pochopení je uveden následující řešený příklad s vysvětlivkami.
Je dáno toto zadání pro funkci požární signalizace. V prostoru jsou umístěny tři nezávislé požární senzory. Když alespoň dva senzory zaznamenají oheň, je nutno vyhlásit požární poplach. Vyjádřeno matematicky: Pro logickou funkci Y tří proměnných platí, že hodnota funkce Y nabývá pravdivých hodnot, když alespoň dvě vstupní proměnné nabývají pravdivých hodnot.
Postup řešení:
Nejprve je provedeno znázornění problému v pravdivostní tabulce. Jedná se o funkci tří nezávisle proměnných „Y = f(X1, X2, X3)“. Počet všech kombinací nezávisle proměnných je vypočten podle vzorce je roven 8. To znamená, že pravdivostní tabulka bude mít mimo hlavičky 8 řádek. V souladu s postupem uvedeným v řešeném příkladu č. 4.1 je provedeno vyplnění hodnot nezávisle proměnných. Sloupec pro závisle proměnnou „Y“ je vyplňován na základě formulace zadání. V zadání je velmi důležité věnovat pozornost výrazu, zda se jedná o: „alespoň dvě“ (náš příklad) nebo „pouze dvě“. V obou případech je jiný výsledek řešení. Vytvořená pravdivostní tabulka pro zadaný příklad je následující:
X1 |
X2 |
X3 |
Y |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Pole pro hodnoty závisle proměnných „Y“ může nabývat různé tvary, např. „2 x 4“ nebo „4 x 2“. Pro pole s osmi buňkami více možností není. V tomto případě byl vybrán tvar Karnaughovy mapy „2 x 4“. K vodorovné straně pole byly přiřazeny nezávisle proměnné „X1“ (horní řádek hlavičky) a „X2“ (spodní řádek hlavičky). Ke svislé straně pole byla přiřazena zbývající nezávisle proměnná „X3“. Přiřazení jednotlivých nezávisle proměnných k jednotlivým stranám záleží pouze na vkusu řešitele a neovlivní výsledek řešení. V dalším kroku postupu jsou vyplněny hodnoty nezávisle proměnných tak, že při posunu k sousednímu sloupci/řádce dochází ke změně o jeden bit (Grayův kód). Výsledek je zobrazen na následující tabulce:
Buňky pole jsou vyplněny hodnotami závisle proměnné tak, aby odpovídaly příslušné kombinaci hodnotám nezávisle proměnných:
Řešení je provedeno následujícím postupem. V mapě se spojují políčka obsahující hodnotu 1 do bloků (těles) podle následujících pravidel:
Logický výraz jednoho bloku se nazývá term a je tvořen konjukcí vstupních proměnných, které nemění svou vstupní hodnotu. Minimální logická funkce je vytvořena disjunktní formou těchto termů. Výsledný matematický výraz logické funkce je:
Karnaughovu mapu je možné také řešit pokrýváním políček s nulami. Výsledná logická funkce je negací disjunkce termů. Výsledek předchozího příkladu by byl následující:
Forma řešení mapy je volena podle toho, kterých políček je méně.