# Booleovské funkce **Definice** - Booleovská funkce n proměnných je libovolná funkce $f: B^n_{2} \to B_{2}$. 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í. ## 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, 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** 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ě**. - konstantní Booleova funkce - 0 ... konjunktivní (kontradikce) - 1 ... disjunktivní (tautologie)