3.4 KiB
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:
- konstanty 0 a 1, a každá proměnná
x_{i}, (i=1,\dots,n)
je Booleův polynom, - jsou-li
a, b
Booleovy polynomy, potom i funkce\overline a, a \vee b
aa \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á klauzulex_{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)