# 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 funkce $f$, pokud $p \leq f$
- implikant je prostý, pokud součin vzniklý odstraněním libovolného literálu z $p$ přestane být implikantem funkce $f$

## Postup

Mějme Booleovskou funkci $f$ zadanou tabulkou.
1. Vybereme řádky, kde je hodnota $f$ rovna 1.
2. 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.
3. Dvojice vypíšeme a lišící se pozici nahradíme symbolem $-$.
4. 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$.