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

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:

  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)