FAV-ZCU/KMA DMA/Otázky ke zkoušce/12. Booleovské funkce.md

64 lines
3.4 KiB
Markdown

# Booleovské funkce
**Definice**: Booleova funkce $n$ proměnných je libovolná funkce (zobrazení) $f: B^n_{2} \to B_{2}$ pro $n \geq 1$.
Může jí být například Booleovská funkce dvou proměnných $+$ nebo $\cdot$.
Množina $F_{n}$ všech booleovských funkcí n proměnných s uspořádáním $\leq$ daným předpisem $f \leq g$, pokud pro každé $x \in B^n_{2}$ platí $f(x) \leq g(x)$, je Booleova alebra.
Základní booleovské funkce je možné kombinovat do složitějších funkcí.
## Počítání
- $f \vee g \space (x_{1}, x_{2}, \dots, x_{n}) = f(x_{1}, x_{2}, \dots, x_{n}) \vee g(x_{1}, x_{2}, \dots, x_{n})$
- $f \wedge g \space (x_{1}, x_{2}, \dots, x_{n}) = f(x_{1}, x_{2}, \dots, x_{n}) \wedge g(x_{1}, x_{2}, \dots, x_{n})$
- $\overline f (x_{1}, x_{2}, \dots, x_{n}) = \overline{f(x_{1}, x_{2}, \dots, x_{n})}$
## Pravdivostní tabulky
Zapisují se do tabulky, kde je jeden řádek pro každou kombinaci hodnot proměnných.
| $x$ | $y$ | $x+y$ | $x\cdot y$ |
| --- | --- | ----- | ---------- |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 |
| $x$ | $\overline x$ |
| --- | ------------- |
| 0 | 1 |
| 1 | 0 |
## Booleovské polynomy
**Booleův polynom** v proměnných $x_{1}, x_{2}, \dots, x_{n}$ je každá Booleova funkce, v proměnných $x_{1}, x_{2}, \dots, x_{n}$, která vznikne podle následujících pravidel:
1) konstanty 0 a 1, a každá proměnná $x_{i}, (i=1,\dots,n)$ je Booleův polynom,
2) jsou-li $a, b$ Booleovy polynomy, potom i funkce $\overline a, a \vee b$ a $a \wedge b$ jsou Booleovy polynomy.
Dva Booleovy polynomy jsou si **rovny**, pokud definují tutéž Booleovu funkci.
### Klauzule
Polynomy ve tvaru $y_{1} \vee y_{2} \vee \dots \vee y_{n}$, resp. $y_{1} \wedge y_{2} \wedge \dots y_{n}$, kde $y_{i} = x_{i}$ nebo $y_{i} = \overline{x_{i}}$ se nazývají **spojová**, resp. **průseková klauzule v proměnných** $x_{1}, \dots, x_{n}$. Pro každé $i=1,\dots,n$ nazveme $y_{i}$ **literálem** proměnné $x_{i}$.
- $x_{1} \vee x_{2} \vee \overline{x_{3}} \vee x_{4} \vee \overline{x_{5}}$ - spojová klauzule
- $\overline{x_{1}} \wedge x_{2} \wedge x_{3} \wedge x_{4} \wedge \overline{x_{5}}$ - průseková klauzule
- $x_{1} \vee \overline{x_{2}} \wedge x_{3}$ - ani spojová, ani průseková klauzule
### Formy
O Booleově polynomu, který je **spojením průsekových**, resp. **průsekem spojových** klauzulí říkáme, že je zapsán v **disjunktivní (spojové)** resp. **konjunktivní (průsekové)** **normální formě**.
- značíme **DNF**, resp. **KNF**
+ DNF (spojová): $(x_{1} \wedge \overline{x_{2}}) \vee (x_{1} \wedge x_{3}) \vee (x_{1} \wedge x_{2} \wedge x_{3})$
+ KNF (průseková): $(x_{1} \vee x_{3}) \wedge (x_{2} \vee \overline{x_{3}}) \wedge (x_{1} \vee \overline{x_{2}} \vee \overline{x_{3}})$
Jestliže navíc každá klauzule obsahuje literály všech proměnných, potom tyto formy nazýváme úplnými formami.
- značíme **ÚDNF**, resp. **ÚKNF**
Každou nekonstantní Booleovu funkci n proměnných lze vyjádřit Booleovým polynomem n proměnných v **úplné disjunktivní i konjunktivní normální formě**.
Pozn.: Konstantní Booleova funkce znamená, že funkce nabývá stále hodnoty 0 nebo stále hodnoty 1. Potom lze udělat pouze jednu úplnou normální formu:
- pro 0 konjunktivní (kontradikce)
- pro 1 disjunktivní (tautologie)