64 lines
No EOL
3.4 KiB
Markdown
64 lines
No EOL
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) |