2.5 KiB
Minimalizace Booleovských funkcí
K minimalizaci Booleovských funkcí se využívá Quineho-McCluskeyho metoda minimalizace.
Metoda minimalizace
Implikantem Booleovy funkce f
se nazývá každý součin literálů proměnných, který implikuje f
.
f(x, y, z) = x \overline z + \overline y
- cíl: vynechání některých součinů tak, že výsledek je stále roven funkci
f
- součin literálů
p
je implikantem funkcef
, pokudp \leq f
- implikant je prostý, pokud součin vzniklý odstraněním libovolného literálu z
p
přestane být implikantem funkcef
Postup
Mějme Booleovskou funkci f
zadanou tabulkou.
- Vybereme řádky, kde je hodnota
f
rovna 1. - Z těchto řádků vybereme ty, které je možné dát do dvojic, ve kterých se budou lišit pouze v jedné pozici.
- Dvojice vypíšeme a lišící se pozici nahradíme symbolem
-
. - Prosté implikanty nevybrané ve 2. kroce a také ty upravené zapíšeme pod sebe a přiřadíme k nim součinové klauzule podle tabulky níže.
řádek | x | y | z | klauzule |
---|---|---|---|---|
2. | 0 | 1 | 0 | \overline xy\overline z |
1., 5. | - | 0 | 1 | \overline yz |
5., 7. | 1 | - | 1 | xz |
Máme vyjádření f(x, y, z) = \overline xy\overline z + \overline yz + xz
.
Tabulka pokrytí
Hledáme nezkratitelné vyjádření, které stále bude rovno funkci f
.
Sloupce odpovídají jednotlivým původním vstupům, pro něž f
nabývá hodnoty 1, řádky odpovídají získaným prostým implikantům.
x | y | z | 1. | 2. | 5. | 7. |
---|---|---|---|---|---|---|
- | 0 | 1 | [ ] | [ ] | ||
1 | - | 1 | [ ] | [ ] | ||
0 | 1 | 0 | [ ] |
Každý ze sloupců v tabulce musí být pokryt nějakým prostým implikantem. Vybereme nejprve ty sloupce, které jsou pokrytelné pouze jedním prostým implikantem a k nim vždy příslušný implikant.
x | y | z | 1. | 2. | 5. | 7. | implikant |
---|---|---|---|---|---|---|---|
- | 0 | 1 | [x] | [ ] | \overline yz |
||
1 | - | 1 | [ ] | [x] | xz |
||
0 | 1 | 0 | [x] | \overline xy\overline z |
Pokrytí existuje jediné. Celkem máme tak jedno výsledné řešení, minimální
disjunktivní formu f(x, y, z) = \overline xy\overline z + \overline yz + xz
.