88 lines
No EOL
4.4 KiB
Markdown
88 lines
No EOL
4.4 KiB
Markdown
# Nalezení UDNF a UKNF
|
|
|
|
Př.: $f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [\overline{(\overline{x} \cdot y)} \cdot x] + y$
|
|
|
|
## 1. Tabulkou
|
|
|
|
| $x$ | $y$ | $\overline{x} \wedge y$ | $a = \overline{(\overline{x} \wedge y)}$ | $b = a \wedge \overline{x}$ | $b \vee y$ |
|
|
| --- | --- | ----------------------- | ---------------------------------------- | --------------------------- | ---------- |
|
|
| 0 | 0 | 0 | 1 | 1 | **1** |
|
|
| 0 | 1 | 1 | 0 | 0 | **1** |
|
|
| 1 | 0 | 0 | 1 | 0 | 0 |
|
|
| 1 | 1 | 0 | 1 | 0 | **1** |
|
|
|
|
Postup
|
|
1. vybereme řádky, kde funkce vyšla **1** (**ÚDNF**) nebo **0** (**ÚKNF**)
|
|
2. zapisujeme jednotlivé klauzule podle prvků ($x, y, z, \dots$) v řádcích
|
|
- prvek zapíšeme jako komplement, pokud je rovna **0** (**ÚDNF**) nebo **1** (**ÚKNF**)
|
|
- když je výsledek funkce **1**, čáru napíšeme nad prvkem s hodnotou **0**
|
|
|
|
Výsledek
|
|
- ÚDNF: $f_{D}(x, y) = (\overline{x} \wedge \overline{y}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
|
|
- ÚKNF: $f_{K}(x, y) = (\overline{x} \vee y)$
|
|
|
|
## 2. Pomocí Booleovského kalkulusu
|
|
|
|
Využijeme pravidel Booleovského kalkulusu a pokusíme se funkci zjednodušit a roznásobit.
|
|
|
|
$f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [(x \vee \overline{y}) \wedge \overline{x}] \vee y = [(x \wedge \overline{x}) \vee (\overline{y} \wedge \overline{x})] \vee y = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \vee y) \wedge (\overline{x} \vee y) = \overline{x} \vee y$
|
|
- máme jedinou spojovou klauzuli, ve které je spojení, jedná se tedy o ÚKNF
|
|
|
|
Zkusíme získat i ÚDNF:
|
|
|
|
$f(x, y) = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \wedge \overline{x}) \vee (y \wedge 1) = (\overline{y} \wedge \overline{x}) \vee [y \wedge (\overline{x} \vee x)] = (\overline{y} \wedge \overline{x}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
|
|
- máme spojení 3 průsekových klauzulí, jedná se tedy o ÚDNF
|
|
|
|
# Quineho-McCluskeyho metoda
|
|
|
|
- minimální disjunktivní forma, součet co nejmenšího počtu součinů
|
|
|
|
**Příklad**
|
|
|
|
ÚDNF: $\overline{x} \overline{y} \overline{z} + \overline{x} \overline{y} z + x \overline{y} \overline{z} + x \overline{y} z + x y \overline{z}$
|
|
|
|
| $x$ | $y$ | $z$ | $f(x,y,z)$ |
|
|
| --- | --- | --- | ---------- |
|
|
| 0 | 0 | 0 | 1 |
|
|
| 0 | 0 | 1 | 1 |
|
|
| 0 | 1 | 0 | 0 |
|
|
| 0 | 1 | 1 | 0 |
|
|
| 1 | 0 | 0 | 1 |
|
|
| 1 | 0 | 1 | 1 |
|
|
| 1 | 1 | 0 | 1 |
|
|
| 1 | 1 | 1 | 0 |
|
|
|
|
Z tabulky vybereme koeficienty tam, kde vychází funkce $1$:
|
|
1. 0 0 0
|
|
2. 0 0 1
|
|
3. 1 0 0
|
|
4. 1 0 1
|
|
5. 1 1 0
|
|
|
|
Z těchto vybraných kombinací vybereme všechny dvojice, které se liší o jednu pozici a tu nahradíme pomlčkou:
|
|
- 1, 2: **0 0 -**
|
|
- 1, 3: **- 0 0**
|
|
- 2, 4: **- 0 1**
|
|
- 3, 4: **1 0 -**
|
|
- 3, 5: **1 - 0**
|
|
|
|
Pokračujeme stejným způsobem:
|
|
- 1, 2, 3, 4: **- 0 -** ($\overline{y}$)
|
|
- 1, 3, 2, 4: **- 0 -** (máme dvě stejné, jednu vyškrtneme)
|
|
+ pro 3, 5 nezbyla žádná dvojice, přepíšeme tedy do klauzule $x \overline{z}$
|
|
|
|
Výsledek je $f(x, y, z) = x \overline{z} + \overline{y}$ (součet prostých implikantů).
|
|
- vynechání některých součinů, takže výsledek je stále roven funkci $f$
|
|
|
|
Mějme Booleovy polynomy $f, p$. Součin literálů je implikantem funkce $f$, pokud $p \leq f$. Implikant je prostý, pokud součin vzniklý odstraněním libovolných literálů z $p$ přestane být implikantem $f$.
|
|
|
|
## Tabulka pokrytí
|
|
|
|
| | $x$ | $y$ | $z$ | 1 | 2 | 3 | 4 | 5 | výsledek |
|
|
| ---------- | --- | --- | --- | --- | --- | --- | --- | --- | ---------------- |
|
|
| 1, 2, 3, 4 | - | 0 | - | [o] | o | o | o | | $\overline{y}$ |
|
|
| 4, 5 | 1 | - | 0 | | | o | | [o] | $x \overline{z}$ |
|
|
|
|
Každý prvek množiny $\{ 1, 2, 3, 4, 5 \}$ musí být obsažen alespoň v jedné množině vybraných podmnožin.
|
|
- minimalizace počtu pokrývajících podmnožin
|
|
- například jedna množina $\{ 1, 2, 3, 4 \}$ a druhá $\{ 5 \}$, využijeme tedy oba výsledky v tabulce |