Doplnění příkladů z DMA

This commit is contained in:
Filip Znachor 2023-10-04 10:35:27 +02:00
parent 37272a868d
commit fe34ba6912
8 changed files with 187 additions and 7 deletions

View file

@ -2,16 +2,16 @@
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í)
**Homogenní rekurentní rovnice** (stanovení řešení)
Modulární počítání (hodnost matice, soustava rovnic, Eukleidův algoritmus, stanovení inverzního prvku)
**Modulární počítání** (hodnost matice, soustava rovnic, Eukleidův algoritmus, stanovení inverzního prvku)
Relace (vlastnosti, reflexívně-tranzitivní uzávěr)
**Relace** (vlastnosti, reflexívně-tranzitivní uzávěr)
Uspořádání, svazy, Booleovy algebry (suprema, infima, distributivita, komplementarita, Hasseův diagram)
**Uspořádání, svazy, Booleovy algebry** (suprema, infima, distributivita, komplementarita, Hasseův diagram)
Počet koster grafu (Laplaceova matice, incidenční matice orientace grafu)
**Počet koster grafu** (Laplaceova matice, incidenční matice orientace grafu)
Booleovské funkce (ÚDNF, ÚKNF, Quineho-McCluskeyho algoritmus)
**Booleovské funkce** (ÚDNF, ÚKNF, Quineho-McCluskeyho algoritmus)
(Vážená) vzdálenost v grafech (mocninná metoda, Dijkstrův algoritmus, Floydův-Warshallův algoritmus)
**(Vážená) vzdálenost v grafech** (mocninná metoda, Dijkstrův algoritmus, Floydův-Warshallův algoritmus)

View file

@ -0,0 +1,11 @@
# Homogenní rekurentní rovnice
**Příklad**:
- Fibonacciho čísla - $1, 1, 2, 3, 5, 8, 13, ...$
- $F_{n} = F_{n-1} + F_{n-2}$
Jak zjistit 1000. člen?
$F_n$ jako funkce $n$
- $F_{n-1} = F_{n-1}$
- $f_{n} = (F_{n}, F_{n-1})^T, \quad f_{n-1} = (F_{n-1}, F_{n-2})^T$

View file

@ -0,0 +1,89 @@
# Hodnost matice
Počet nenulových řádků matice po provedení GEM (Gaussova eliminační metoda), kterou dostaneme matici s nenulovými čísly nad diagonálou a na ní.
Při použítí GEM můžeme:
- přičíst libovolný nenulový násobek řádku k jinému řádku,
- libovolně násobit jednotlivé řádky (ne nulou).
# Soustava rovnic
Soustava $m$ rovnic pro $n$ neznámých:
$$
\begin{matrix}
a_{11}x_{1} + a_{12}x_{2} + a_{13}x_{3} + \dots + a_{1n}x_{n} = b_{1} \\
a_{21}x_{1} + a_{22}x_{2} + a_{23}x_{3} + \dots + a_{2n}x_{n} = b_{2} \\
\vdots \qquad\qquad\qquad \vdots \\
a_{m1}x_{1} + a_{m2}x_{2} + a_{m3}x_{3} + \dots + a_{mn}x_{n} = b_{n}
\end{matrix}
$$
Soustavu zapíšeme maticově:
$$
A = \begin{bmatrix}
a_{11} & a_{12} & \dots & a_{1n} \\
a_{21} & a_{22} & \dots & a_{2n} \\
\vdots & \vdots & \vdots & \vdots \\
a_{m1} & a_{m2} & \dots & a_{mn}
\end{bmatrix}, \qquad \vec{x} = \begin{bmatrix}
x_{1} \\
x_{2} \\
\vdots \\
x_{n}
\end{bmatrix}, \qquad \vec{b} = \begin{bmatrix}
b_{1} \\
b_{2} \\
\vdots \\
b_{m}
\end{bmatrix}
$$
Potom A je **matice soustavy** (typu $m/n$), $\vec{x}$ je **vektor (sloupec) neznámých** a $\vec{b}$ je **vektor (sloupec) pravých stran**.
Soustavu zapisujeme jako $A\vec{x} = \vec{b}$.
Dvě soustavy se nazývají **ekvivalentní**, jestliže mají stejnou množinu řešení.
### Rozšířená matice soustavy
Zápis soustavy do matice, kde svislá čára značí $=$, značíme ji jako $A^R = [A \mid \vec{b}]$.
### Frobeniova podmínka řešitelnosti
Nehomogenní soustava rovnic $A\vec{x} = \vec{b}$ má řešení právě tehdy, když $hod(A^R) = hod(A)$.
### Typy soustav
- **homogenní**
- s nulovým sloupcem vpravo (nemusí se psát)
- **nehomogenní**
- s čísly vpravo oddělenými svislou čárou (značí $=$)
### Řešení soustavy
1. přepíšu do matice a vyřeším pomocí GEM/GJEM
2. najdu pivoty (první nenulové číslo v řádku) a ke sloupcům bez pivota přiřadím parametry (např.: $x_3 = t, t \in R$)
3. řádky zapíšu jako rovnice (např.: $2x_1 + 3x_2 + x_4 = 0$)
4. z rovnic vyjádřím jednotlivá x
#### Možná řešení
- soustava nemá řešení
- soustava má jedno řešení
- soustava má nekonečně mnoho řešení
# Eukleidův algoritmus
Algoritmus pro nalezení největšího společného dělitele čísel $a$ a $b$. Největšího společného dělitele označíme jako $\gcd(a, b)$.
Mějme $a = 57, b = 27$. Platí, že $c = \gcd(a, b)$ dělí $a$ a rovněž $b$, dělí tedy i rozdíl $a-b = 30$. Pokud nyní najdeme $\gcd(30, 27)$, získáme i $\gcd(57, 27)$. Aplikacím tohoto postupu dostaneme postupně $\gcd(30, 27) = \gcd(3, 27) = 3$, tedy i $\gcd(57, 27) = 3$.
TODO: Rozšířený euklidův algoritmus
# Stanovení inverzního prvku
Prvek $a^{-1}$, pro který platí $a \oplus a^{-1} = 0$.
**Příklad**: Pokud máme modulo 5, tak inverzní prvek k prvku $4$ bude $1$, protože $4 + 1 = 0$.

View file

@ -0,0 +1,17 @@
# Relace
## Určení vlastností
TODO
## Reflexívně-tranzitivní uzávěr
Nechť $R$ je relace na množině $X$. Pro reflexivní uzávěr $R^x$ relace $R$ platí
- $R^x = R \cup E_{x}$ ($E_{x}$ je identická relace na $X$)
- $R^x$ je nejmenší nadrelace $R$, takže $R^x$ je reflexivní
**Příklad**: Mějme relaci $R$ na množině $X = \{ a, b \}$.
- $R = (b, a)$
- $E_{x} = \{ (a, a), (b, b) \}$
- $R^x = R \cup E_{x}$
- přidají se reflexivní relace všech prvků $X$

View file

@ -0,0 +1,4 @@
# Uspořádání, svazy, Booleovy algebry
suprema, infima, distributivita, komplementarita, Hasseův diagram
- viz příslušné otázky

View file

@ -0,0 +1,5 @@
# Počet koster grafu
Počet koster grafu je roven determinantu matice $L' = M_{R}(G) \cdot M_{R}(G)^T$.
Je tedy potřeba sestavit buď incidenční matici nebo Laplaceovu matici grafu $G$ a z ní vytvořit redukovanou incidenční matici (vyškrtnutím posledního řádku) nebo matici $L'$ (vyškrtnutím posledního řádku a sloupce).

View file

@ -32,3 +32,57 @@ 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
# Quineho-McCluskeyho metoda
- minimální disjunktivní forma, součet co nejmenšího počtu součinů
**Příklad**
ÚDNF: $\overline{x} \overline{y} \overline{z} + \overline{x} \overline{y} z + x \overline{y} \overline{z} + x \overline{y} z + x y \overline{z}$
| $x$ | $y$ | $z$ | $f(x,y,z)$ |
| --- | --- | --- | ---------- |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
Z tabulky vybereme koeficienty tam, kde vychází funkce $1$:
1. 0 0 0
2. 0 0 1
3. 1 0 0
4. 1 0 1
5. 1 1 0
Z těchto vybraných kombinací vybereme všechny dvojice, které se liší o jednu pozici a tu nahradíme pomlčkou:
- 1, 2: **0 0 -**
- 1, 3: **- 0 0**
- 2, 4: **- 0 1**
- 3, 4: **1 0 -**
- 3, 5: **1 - 0**
Pokračujeme stejným způsobem:
- 1, 2, 3, 4: **- 0 -** ($\overline{y}$)
- 1, 3, 2, 4: **- 0 -** (máme dvě stejné, jednu vyškrtneme)
+ pro 3, 5 nezbyla žádná dvojice, přepíšeme tedy do klauzule $x \overline{z}$
Výsledek je $f(x, y, z) = x \overline{z} + \overline{y}$ (součet prostých implikantů).
- vynechání některých součinů, takže výsledek je stále roven funkci $f$
Mějme Booleovy polynomy $f, p$. Součin literálů je implikantem funkce $f$, pokud $p \leq f$. Implikant je prostý, pokud součin vzniklý odstraněním libovolných literálů z $p$ přestane být implikantem $f$.
## Tabulka pokrytí
| | $x$ | $y$ | $z$ | 1 | 2 | 3 | 4 | 5 | výsledek |
| ---------- | --- | --- | --- | --- | --- | --- | --- | --- | ---------------- |
| 1, 2, 3, 4 | - | 0 | - | [o] | o | o | o | | $\overline{y}$ |
| 4, 5 | 1 | - | 0 | | | o | | [o] | $x \overline{z}$ |
Každý prvek množiny $\{ 1, 2, 3, 4, 5 \}$ musí být obsažen alespoň v jedné množině vybraných podmnožin.
- minimalizace počtu pokrývajících podmnožin
- například jedna množina $\{ 1, 2, 3, 4 \}$ a druhá $\{ 5 \}$, využijeme tedy oba výsledky v tabulce