Úprava 10. a 12. otázky a přidání 7. příkladu z DMA

This commit is contained in:
Filip Znachor 2023-08-14 11:57:15 +02:00
parent b62bdbe3f6
commit 632b68102b
5 changed files with 106 additions and 8 deletions

View file

@ -2,7 +2,7 @@
**Distributivní komplementární svaz** se nazývá **Booleův svaz** nebo **Booleova algebra**.
Operace spojení $\wedge$ se značí symbolem $+$, operace průsek symbolem $\cdot$.
Operace spojení $\vee$ se značí symbolem $+$, operace průsek $\wedge$ symbolem $\cdot$.
Obsahuje $2^n$ prvků. (2, 4, 8, 16, ...)
@ -27,12 +27,16 @@ Nechť $X$ je Booleova algebra, $a, b, c \in X$. Potom platí:
## Atom
Nechť $X$ je Booleova algebra. Nenulový prvek $a \in X$ takový, že pro každý prvek $x \in X, x\neq a$ platí $x \wedge a = 0$ nebo $x \wedge a = a$, se nazývá atom algebry $X$.
- tedy dolní hranice prvku $a$ a libovolného $x$ je tedy $0$ nebo $a$
Atomy existují v každé Booleově algebře. Existovat nemusí pouze v nekonečných Booleových algebrách.
Nechť $X$ je Booleova algebra, $x \in X$. Potom existují prvky $y, z \in X$ takové, že $y\neq x, z\neq x,y \vee z = x$ právě tehdy, když $x$ není ani nulový prvek ani atom $X$.
- prvky $x, y, z$ jsou rozdílné a horní hranice $y, z$ je $x$ tehdy, pokud $x$ není nulový ani atom
Nechť $X$ je konečná Booleova algebra a $x \in X$ je libovolný nenulový prvek, potom platí, že
- $x = a_{1} \vee a_{2} \vee \dots \vee a_{k}$,
kde $a_{1}, \dots, a_{k}$ jsou všechny atomy $X$, pro které $a_{i} \leq x, i =1, \dots, k$.
kde $a_{1}, \dots, a_{k}$ jsou všechny atomy $X$, pro které $a_{i} \leq x, i =1, \dots, k$.
TODO: 5. přednáška

View file

@ -1,7 +1,7 @@
# Booleovské funkce
**Definice**
- Booleovská funkce n proměnných je libovolná funkce $f: B^n_{2} \to B_{2}$.
**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$.
@ -9,6 +9,11 @@ Množina $F_{n}$ všech booleovských funkcí n proměnných s uspořádáním $
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.
@ -28,7 +33,7 @@ Zapisují se do tabulky, kde je jeden řádek pro každou kombinaci hodnot prom
## 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,
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.
@ -46,10 +51,14 @@ Polynomy ve tvaru $y_{1} \vee y_{2} \vee \dots \vee y_{n}$, resp. $y_{1} \wedge
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ě**.
- konstantní Booleova funkce
- 0 ... konjunktivní (kontradikce)
- 1 ... disjunktivní (tautologie)
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)

View file

@ -0,0 +1,17 @@
# Písemná část zkoušky
4 úlohy z témat + 4 definice nebo znění vět (90 minut). (Z pojmové části je nutné získat alespoň jeden bod.)
Homogenní rekurentní rovnice (stanovení řešení)
Modulární počítání (hodnost matice, soustava rovnic, Eukleidův algoritmus, stanovení inverzního prvku)
Relace (vlastnosti, reflexívně-tranzitivní uzávěr)
Uspořádání, svazy, Booleovy algebry (suprema, infima, distributivita, komplementarita, Hasseův diagram)
Počet koster grafu (Laplaceova matice, incidenční matice orientace grafu)
Booleovské funkce (ÚDNF, ÚKNF, Quineho-McCluskeyho algoritmus)
(Vážená) vzdálenost v grafech (mocninná metoda, Dijkstrův algoritmus, Floydův-Warshallův algoritmus)

View file

@ -0,0 +1,34 @@
# Nalezení UDNF a UKNF
Př.: $f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [\overline{(\overline{x} \cdot y)} \cdot x] + y$
## 1. Tabulkou
| $x$ | $y$ | $\overline{x} \wedge y$ | $a = \overline{(\overline{x} \wedge y)}$ | $b = a \wedge \overline{x}$ | $b \vee y$ |
| --- | --- | ----------------------- | ---------------------------------------- | --------------------------- | ---------- |
| 0 | 0 | 0 | 1 | 1 | **1** |
| 0 | 1 | 1 | 0 | 0 | **1** |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | **1** |
Postup
1. vybereme řádky, kde funkce vyšla **1** (**ÚDNF**) nebo **0** (**ÚKNF**)
2. zapisujeme jednotlivé klauzule podle prvků ($x, y, z, \dots$) v řádcích
- prvek zapíšeme jako komplement, pokud je rovna **0** (**ÚDNF**) nebo **1** (**ÚKNF**)
- když je výsledek funkce **1**, čáru napíšeme nad prvkem s hodnotou **0**
Výsledek
- ÚDNF: $f_{D}(x, y) = (\overline{x} \wedge \overline{y}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
- ÚKNF: $f_{K}(x, y) = (\overline{x} \vee y)$
## 2. Pomocí Booleovského kalkulusu
Využijeme pravidel Booleovského kalkulusu a pokusíme se funkci zjednodušit a roznásobit.
$f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [(x \vee \overline{y}) \wedge \overline{x}] \vee y = [(x \wedge \overline{x}) \vee (\overline{y} \wedge \overline{x})] \vee y = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \vee y) \wedge (\overline{x} \vee y) = \overline{x} \vee y$
- máme jedinou spojovou klauzuli, ve které je spojení, jedná se tedy o ÚKNF
Zkusíme získat i ÚDNF:
$f(x, y) = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \wedge \overline{x}) \vee (y \wedge 1) = (\overline{y} \wedge \overline{x}) \vee [y \wedge (\overline{x} \vee x)] = (\overline{y} \wedge \overline{x}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
- máme spojení 3 průsekových klauzulí, jedná se tedy o ÚDNF

View file

@ -0,0 +1,34 @@
# Nalezení UDNF a UKNF
Př.: $f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [\overline{(\overline{x} \cdot y)} \cdot x] + y$
## 1. Tabulkou
| $x$ | $y$ | $\overline{x} \wedge y$ | $a = \overline{(\overline{x} \wedge y)}$ | $b = a \wedge \overline{x}$ | $b \vee y$ |
| --- | --- | ----------------------- | ---------------------------------------- | --------------------------- | ---------- |
| 0 | 0 | 0 | 1 | 1 | **1** |
| 0 | 1 | 1 | 0 | 0 | **1** |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | **1** |
Postup
1. vybereme řádky, kde funkce vyšla **1** (**ÚDNF**) nebo **0** (**ÚKNF**)
2. zapisujeme jednotlivé klauzule podle prvků ($x, y, z, \dots$) v řádcích
- prvek zapíšeme jako komplement, pokud je rovna **0** (**ÚDNF**) nebo **1** (**ÚKNF**)
- když je výsledek funkce **1**, čáru napíšeme nad prvkem s hodnotou **0**
Výsledek
- ÚDNF: $f_{D}(x, y) = (\overline{x} \wedge \overline{y}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
- ÚKNF: $f_{K}(x, y) = (\overline{x} \vee y)$
## 2. Pomocí Booleovského kalkulusu
Využijeme pravidel Booleovského kalkulusu a pokusíme se funkci zjednodušit a roznásobit.
$f(x, y) = [\overline{(\overline{x} \wedge y)} \wedge \overline{x}] \vee y = [(x \vee \overline{y}) \wedge \overline{x}] \vee y = [(x \wedge \overline{x}) \vee (\overline{y} \wedge \overline{x})] \vee y = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \vee y) \wedge (\overline{x} \vee y) = \overline{x} \vee y$
- máme jedinou spojovou klauzuli, ve které je spojení, jedná se tedy o ÚKNF
Zkusíme získat i ÚDNF:
$f(x, y) = (\overline{y} \wedge \overline{x}) \vee y = (\overline{y} \wedge \overline{x}) \vee (y \wedge 1) = (\overline{y} \wedge \overline{x}) \vee [y \wedge (\overline{x} \vee x)] = (\overline{y} \wedge \overline{x}) \vee (\overline{x} \wedge y) \vee (x \wedge y)$
- máme spojení 3 průsekových klauzulí, jedná se tedy o ÚDNF