Přidání 1. až 5. cvičení z TI
This commit is contained in:
parent
fe34ba6912
commit
4994338f4a
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.obsidian
|
.obsidian
|
||||||
.trash
|
.trash
|
||||||
|
*.excalidraw.md
|
||||||
|
|
57
KIV TI/Cvičení/Cviceni01.md
Normal file
57
KIV TI/Cvičení/Cviceni01.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
## Rozklad množiny
|
||||||
|
|
||||||
|
Rozklad množin je množina podmnožin, které jsou
|
||||||
|
- neprázdné,
|
||||||
|
- vzájemně disjunktní,
|
||||||
|
- sjednocením je celá množina.
|
||||||
|
|
||||||
|
## Kartézský součin
|
||||||
|
|
||||||
|
- značí se $A \times B$
|
||||||
|
- $\{ (a, b) \mid a \in A \wedge b \in B \}$
|
||||||
|
|
||||||
|
Vlastnosti
|
||||||
|
- není komutativní ($A \times B \neq B \times A$)
|
||||||
|
- je asociativní
|
||||||
|
- $A = \{ 1, 2 \}, B = \{ a, b \}, C = \{ 3, 4 \}$
|
||||||
|
- $(A \times B) \times C = \{ ((1, a), 3), ((1, a), 4), \dots, ((2, b), 4) \}$
|
||||||
|
- $A \times (B \times C) = \{ (1, (a, 3)), (1, (a, 4)), \dots, (2, (b, 4)) \}$
|
||||||
|
- pro nás není podstatná struktura
|
||||||
|
- $A \times B \times C = \{(1, a, 3), (1, a, 4), (2, b, 4)\}$
|
||||||
|
|
||||||
|
## Binární relace
|
||||||
|
|
||||||
|
Binární relace je libovolnou podmnožinou Kartézského součinu.
|
||||||
|
|
||||||
|
Inverzní relace
|
||||||
|
- $b \, R^{-1}\, a \iff a \, R \, b$
|
||||||
|
|
||||||
|
Složená relace (kompozice)
|
||||||
|
- $\alpha \subseteq A \times B$
|
||||||
|
- $\beta \subseteq B \times C$
|
||||||
|
- $\gamma = \alpha \circ \beta \subseteq A \times C$
|
||||||
|
|
||||||
|
## Příklad
|
||||||
|
|
||||||
|
- $A = \{ 1, 2, 3 \}$
|
||||||
|
- $B = \{ 2, -3 \}$
|
||||||
|
- $C = \{ a, b, c \}$
|
||||||
|
|
||||||
|
+ $R \subseteq A \times B = \{ (1, 2), (1, -3), (2, 2), (2, -3) \}$
|
||||||
|
+ $S \subseteq B \times C = \{ (2, a), (-3, c) \}$
|
||||||
|
|
||||||
|
- $R \circ S = \{ (1, a), (2, a), (1, c), (2, c) \}$
|
||||||
|
|
||||||
|
## Relace na množině
|
||||||
|
|
||||||
|
$R \subseteq A \times A$
|
||||||
|
- množina $A = \{ 1, 2, 3 \}$
|
||||||
|
- relace $R = \{ (1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3) \}$
|
||||||
|
|
||||||
|
## Funkce
|
||||||
|
|
||||||
|
$F: A \to B \quad f \subseteq A \times B$
|
||||||
|
- $\forall \, a \in A : \exists! \, b \in B : a \, f \, b$
|
||||||
|
|
||||||
|
Je inverzní relace k funkci také funkcí?
|
||||||
|
- pouze v případě, že je funkce injektní
|
5
KIV TI/Cvičení/Cviceni02.excalidraw.svg
Normal file
5
KIV TI/Cvičení/Cviceni02.excalidraw.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 432 KiB |
67
KIV TI/Cvičení/Cviceni02.md
Normal file
67
KIV TI/Cvičení/Cviceni02.md
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
$\sum = \{ a,b \}$
|
||||||
|
|
||||||
|
$L_{1} = \{ w \mid w \text{ obsahuje lichý počet } a \text{ a sudý počet } b \}$
|
||||||
|
- 4 stavy
|
||||||
|
- sasb - vstupní
|
||||||
|
- salb
|
||||||
|
- lasb - koncový
|
||||||
|
- lalb
|
||||||
|
|
||||||
|
$L_{2} = \{ w \mid w \text{ obsahuje lichý počet } a \text{ a 0 nepovažujeme za sudé číslo} \}$
|
||||||
|
- 3 stavy
|
||||||
|
- 0 - vstupní
|
||||||
|
- l
|
||||||
|
- s - koncový
|
||||||
|
|
||||||
|
$L_{3} = \{ w \mid w \text{ obsahuje právě dva znaky } a \}$
|
||||||
|
- 4 stavy
|
||||||
|
- 0 - vstupní
|
||||||
|
- 1
|
||||||
|
- 2 - koncový
|
||||||
|
- \>2 - absorbční stav (zamítací), nedá se z něj dostat
|
||||||
|
|
||||||
|
$L_{4} = \{ w \mid w \text{ obsahuje alespoň 2 znaky } a \}$
|
||||||
|
- 3 stavy
|
||||||
|
- 0 - vstupní
|
||||||
|
- 1
|
||||||
|
- \>=2 - koncový a absorbční
|
||||||
|
|
||||||
|
$L_{5} = \{ w \mid w \text{ začíná podřetězcem } bba- \}$
|
||||||
|
- 5 stavů
|
||||||
|
- e - vstupní
|
||||||
|
- b
|
||||||
|
- bb
|
||||||
|
- bba - koncový akceptující absorbční
|
||||||
|
- špatný - zamítací absorbční
|
||||||
|
|
||||||
|
$L_{6} = \{ w \mid w \text{ obsahuje méně než 2 znaky } a \}$
|
||||||
|
- opak $L_{4}$, stačí prohodit koncové stavy
|
||||||
|
- 4 stavy
|
||||||
|
- 0 - koncový
|
||||||
|
- 1 - koncový
|
||||||
|
- \>=2
|
||||||
|
- $L = \left( Q, \sum, \delta, q_{0}, F\right)$
|
||||||
|
- $\overline L = \left( Q, \sum, \delta, q_{0}, \overline F\right)$
|
||||||
|
|
||||||
|
$L_{7} = \{ w \mid w \text{ obsahuje podřetězec } -bbab- \}$
|
||||||
|
- 5 stavů
|
||||||
|
- e
|
||||||
|
- b
|
||||||
|
- bb
|
||||||
|
- bba
|
||||||
|
- bbab
|
||||||
|
|
||||||
|
$L_{8} = \{ w \mid w \text{ obsahuje podřetězec } -abba- \}$
|
||||||
|
|
||||||
|
$L_{9} = \{ w \mid w \text{ končí na } -abba \}$
|
||||||
|
|
||||||
|
$L_{10} = \{ w \mid w \text{ současně splňuje} \}$
|
||||||
|
- nezačíná bba-
|
||||||
|
- obsahuje -babb-
|
||||||
|
- nekončí -aa
|
||||||
|
|
||||||
|
$L_{11} = \{ w \mid w \text{ současně splňuje } \}$
|
||||||
|
- obsahuje -aaba-
|
||||||
|
- neobsahuje -bba-
|
||||||
|
- **Kartézský součin automatu**
|
||||||
|
- u zkoušky jsou na tom stavěny příklady!
|
5
KIV TI/Cvičení/Cviceni03.excalidraw.svg
Normal file
5
KIV TI/Cvičení/Cviceni03.excalidraw.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 378 KiB |
84
KIV TI/Cvičení/Cviceni03.md
Normal file
84
KIV TI/Cvičení/Cviceni03.md
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
Příklad z minulého cvičení
|
||||||
|
|
||||||
|
| | 0 | 1 |
|
||||||
|
| ----- | --- | --- |
|
||||||
|
| <-> A | B | A |
|
||||||
|
| <-- B | C | A |
|
||||||
|
| <-- C | C | D |
|
||||||
|
| D | D | D |
|
||||||
|
|
||||||
|
| | 0 | 1 |
|
||||||
|
| ----- | --- | --- |
|
||||||
|
| --> 0 | 0 | 1 |
|
||||||
|
| 1 | 0 | 2 |
|
||||||
|
| 2 | 3 | 2 |
|
||||||
|
| 3 | 0 | 4 |
|
||||||
|
| <-- 4 | 4 | 4 |
|
||||||
|
|
||||||
|
| | 0 | 1 |
|
||||||
|
| ---------- | --- | --- |
|
||||||
|
| **A0** | B0 | A1 |
|
||||||
|
| **B0** | C0 | A1 |
|
||||||
|
| **A1** | B0 | A2 |
|
||||||
|
| **C0** | C0 | D1 |
|
||||||
|
| **A2** | B3 | A2 |
|
||||||
|
| **D1** | D0 | D2 |
|
||||||
|
| **B3** | C0 | A4 |
|
||||||
|
| **D0** | D0 | D1 |
|
||||||
|
| **D2** | D3 | D2 |
|
||||||
|
| <-- **A4** | B4 | A4 |
|
||||||
|
| **D3** | D0 | D4 |
|
||||||
|
| <-- **B4** | C4 | A4 |
|
||||||
|
| **D4** | D4 | D4 |
|
||||||
|
| <-- **C4** | C4 | D4 |
|
||||||
|
|
||||||
|
**Př. 1**: L je množina všech řetězců, které splňují právě jednu z podmínek:
|
||||||
|
- $w$ obsahuje $-babb-$
|
||||||
|
- počet znaků $b$ ve $w$ je dělitelný 3
|
||||||
|
|
||||||
|
viz. excalidraw
|
||||||
|
|
||||||
|
**Př. 2**: Navrhněte konečně automatový model algoritmu pro softwarovou implementaci vstupní konverze textového řetězce reprezentujícího zápis konstanty typu integer do vnitřní reprezentace PC. (formát v pevné řádové čárce)
|
||||||
|
|
||||||
|
| | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
|
||||||
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- | ---- |
|
||||||
|
| MAX | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 127 |
|
||||||
|
| MIN | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -128 |
|
||||||
|
|
||||||
|
314 = 256 + 32 + 16 + 8 + 2
|
||||||
|
|
||||||
|
`0000 0001 0011 1010`
|
||||||
|
|
||||||
|
| číslo | zobrazení |
|
||||||
|
| ----- | ------------- |
|
||||||
|
| 314 | `00 00 01 3A` |
|
||||||
|
| | `33 31 34 20` |
|
||||||
|
| -314 | `FF FF FE C6` |
|
||||||
|
|
||||||
|
**Př. 3**: Navrhněte RKA akceptující syntakticky správné řetězce reprezentující konstantu integer.
|
||||||
|
- správné: 0, 121, -15, +6, ...
|
||||||
|
- nesprávné: +-3
|
||||||
|
- $\sum = \{D, +, -, x\}$
|
||||||
|
- \\ je koncový znak
|
||||||
|
|
||||||
|
Pomocné stavové proměnné
|
||||||
|
|
||||||
|
| | počáteční hodnota |
|
||||||
|
| ----------- | ----------------- |
|
||||||
|
| znam. INT | 1 |
|
||||||
|
| hodnota INT | 0 |
|
||||||
|
|
||||||
|
transformace PSP
|
||||||
|
- 0: nic
|
||||||
|
- 1: $\text{znam} \leftarrow 1$
|
||||||
|
- 2: $\text{hodnota} \leftarrow \text{hodnota} \cdot 10 + \text{cislice}$
|
||||||
|
- znak je v ASCII kódu $\to$ odečíst '0' (30)
|
||||||
|
- 3: $\text{hodnota} \leftarrow \text{znak} \cdot \text{hodnota}$
|
||||||
|
|
||||||
|
$(3x^2 + x + 4) x = 10$
|
||||||
|
- 314
|
||||||
|
|
||||||
|
viz. excalidrawPř. 1
|
||||||
|
|
||||||
|
1: $\text{hodnota} \leftarrow \text{hodnota} \cdot 10 + (\text{vstup} - \text{'0'})$
|
||||||
|
2: $\text{hodnota} \leftarrow \text{hodnota} \cdot 10 - (\text{vstup} - \text{'0'})$
|
5
KIV TI/Cvičení/Cviceni04.excalidraw.svg
Normal file
5
KIV TI/Cvičení/Cviceni04.excalidraw.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 176 KiB |
45
KIV TI/Cvičení/Cviceni04.md
Normal file
45
KIV TI/Cvičení/Cviceni04.md
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
Jedna množina
|
||||||
|
- $A = \{ 0, 1, 2 \}$
|
||||||
|
- $A^2 = A \cdot A = \{ 00, 01, 02, 10, 11, 12, 20, 21, 22 \}$
|
||||||
|
- $A^+ = \{ 0, 1, 2, 00, 01, 02, \dots, 22, 000, 001, \dots, 222, \dots \}$
|
||||||
|
- $A^* = A^+ \cup \{e\}$
|
||||||
|
|
||||||
|
Dvě množiny
|
||||||
|
- $A = \{ 0, 1, 2 \}, \quad B = \{ a, b \}$
|
||||||
|
- $A^* \cup B^* = \{ e, 0, 1, 2, a, b, 00, 01, \dots, 22, aa, ab, ba, bb, \dots \}$
|
||||||
|
- $(A \cup B)^* = \{e, 0, 1, 2, a, b, 00, 01, 02, 0a, 0b, \dots, 2b, ab, bb, \dots\}$
|
||||||
|
- $A \cdot (B \cup B^2) = \{0a, 0b, 0aa, 0ab, 0ba, \dots, 2bb\}$
|
||||||
|
|
||||||
|
### Návrh gramatiky
|
||||||
|
|
||||||
|
**Př. 1**: Nad abecedou $0-9$ vymyslete gramatiku představující sudá čísla. Připouštíme i neplatné nuly na začátku řetězce.
|
||||||
|
- musí končit sudou číslicí $\{ 0, 2, 4, 6, 8 \}$
|
||||||
|
|
||||||
|
Gramatika:
|
||||||
|
- $S \to AB$
|
||||||
|
- $B \to 0|2|4|6|8$
|
||||||
|
- $A \to e|0A|1A|2A|3A|4A|5A|6A|7A|8A|9A$
|
||||||
|
|
||||||
|
316
|
||||||
|
- $S \to AB \to 3AB \to 31AB \to 31B \to 316$
|
||||||
|
|
||||||
|
**Př. 2**: Jako př. 1, ale nepřipouštíme nevýznamné nuly na začátku.
|
||||||
|
- nesmí začínat nulou
|
||||||
|
|
||||||
|
Gramatika:
|
||||||
|
- $S \to CAB | B$
|
||||||
|
- $B \to 0|2|4|6|8$
|
||||||
|
- $A \to e|0A|1A|2A|3A|4A|5A|6A|7A|8A|9A$
|
||||||
|
- $C \to 1|2|3|4|5|6|7|8|9$
|
||||||
|
|
||||||
|
**Př. 3**: Vytvořte gramatiku, která bude generovat všechny řetěze reprezentující korektní identifikační čísla studentů ZČU, kteří zahájili studium v roce 2020/21 a později.
|
||||||
|
|
||||||
|
Gramatika:
|
||||||
|
- $\text{<student>} \to \text{<fak><rok><typ><cislo><forma>}$
|
||||||
|
- $\text{<fak>} \to A|E|K|S|P|F|R|U|Z$
|
||||||
|
- $\text{<rok>} \to 20|21|22|23$
|
||||||
|
- $\text{<typ>} \to B|N|P|M$
|
||||||
|
- $\text{<cislo>} \to \text{<c><c><c><c>}$
|
||||||
|
- $\text{<c>} \to 0|1|2|\dots|9$
|
||||||
|
- $\text{<forma>} \to P|K$
|
||||||
|
|
5
KIV TI/Cvičení/Cviceni05.excalidraw.svg
Normal file
5
KIV TI/Cvičení/Cviceni05.excalidraw.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 360 KiB |
68
KIV TI/Cvičení/Cviceni05.md
Normal file
68
KIV TI/Cvičení/Cviceni05.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
**Př. 1**: Vytvořte gramatiku, která bude nad abecedou $\{0, 1\}$ generovat řetězec obsahující lichý počet 0 a sudý počet 1.
|
||||||
|
- $\{0, 1\} \quad w \dots \text{lichý počet } 0 \text{, sudý počet } 1$
|
||||||
|
- 4 stavy
|
||||||
|
|
||||||
|
**Př. 2**:
|
||||||
|
- $S \to abA \mid bS \mid aa \mid A$
|
||||||
|
- $A \to abA$
|
||||||
|
- $B \to aS \mid baA \mid a$
|
||||||
|
|
||||||
|
a) Najděte $G'$ typu G3R takovou, že $L(G') = L(G)$.
|
||||||
|
+ $S \to bS | aS_{1} | aS_{2} \mid aS | bB_{1} | aB_{2} \mid aA_{1}$
|
||||||
|
+ $A \to aA_{1} \mid aS | bB_{1} | aB_{2}$
|
||||||
|
+ $B \to aS | bB_{1} | aB_{2}$
|
||||||
|
- $S_{1} \to bA$
|
||||||
|
- $B_{1} \to aA$
|
||||||
|
- $A_{1} \to bA$
|
||||||
|
- $S_{2} \to aS_{3}$
|
||||||
|
- $S_{3} \to e$
|
||||||
|
- $B_{2} \to e$
|
||||||
|
|
||||||
|
b) Vytvořte tabulku popisující nedeterministický konečný automat A takový, že platí $L(A) = L(G') = L(G)$.
|
||||||
|
|
||||||
|
| | a | b |
|
||||||
|
| ------------------ | ----------------------------------- | -------------- |
|
||||||
|
| $\to S$ | $\{S, S_{1}, S_{2}, A_{1}, B_{2}\}$ | $\{S, B_{1}\}$ |
|
||||||
|
| $S_{1}$ | - | $\{A\}$ |
|
||||||
|
| $S_{2}$ | $\{S_{3}\}$ | - |
|
||||||
|
| $\leftarrow S_{3}$ | - | - |
|
||||||
|
| $A$ | $\{S, A_{1}, B_{2}\}$ | $\{B_{1}\}$ |
|
||||||
|
| $A_{1}$ | - | $\{A\}$ |
|
||||||
|
| $B$ | $\{S, B_{2}\}$ | $\{B_{1}\}$ |
|
||||||
|
| $B_{1}$ | $\{A\}$ | - |
|
||||||
|
| $\leftarrow B_{2}$ | - | - |
|
||||||
|
|
||||||
|
c) Vytvořte tabulku popisující deterministický konečný automat A' takový, že platí $L(A') = L(G') = L(G)$.
|
||||||
|
|
||||||
|
| | a | b |
|
||||||
|
| -------------------------------------------------------- | ---------------------------------------------- | --------------------- |
|
||||||
|
| $\to S$ (0) | $\{S, S_{1}, S_{2}, A_{1}, B_{2}\}$ (1) | $\{S, B_{1}\}$ (2) |
|
||||||
|
| $\leftarrow \{S, S_{1}, S_{2}, A_{1}, B_{2}\}$ (1) | $\{S, S_{1}, S_{2}, S_{3}, A_{1}, B_{2}\}$ (3) | $\{S, A, B_{1}\}$ (4) |
|
||||||
|
| $\{S, B_{1}\}$ (2) | $\{S, S_{1}, S_{2}, A, A_{1}, B_{2}\}$ (5) | $\{S, B_{1}\}$ (2) |
|
||||||
|
| $\leftarrow\{S, S_{1}, S_{2}, S_{3}, A_{1}, B_{2}\}$ (3) | $\{S, S_{1}, S_{2}, S_{3}, A_{1}, B_{2}\}$ (3) | $\{S, A, B_{1}\}$ (4) |
|
||||||
|
| $\{S, A, B_{1}\}$ (4) | $\{S, S_{1}, S_{2}, A, A_{1}, B_{2}\}$ (5) | $\{S, B_{1}\}$ (2) |
|
||||||
|
| $\leftarrow\{S, S_{1}, S_{2}, A, A_{1}, B_{2}\}$ (5) | $\{S, S_{1}, S_{2}, S_{3}, A_{1}, B_{2}\}$ (3) | $\{S, A, B_{1}\}$ (4) |
|
||||||
|
|
||||||
|
**Př. 3**: Sestrojte NKA $A$, kde platí $L(A) = L(G_{1})^R \cup L(G_{2})$.
|
||||||
|
- $G_{1}$
|
||||||
|
- $S \to aS | bbA$
|
||||||
|
- $A \to aaA | B$
|
||||||
|
- $B \to bbB | e$
|
||||||
|
- $G_{2}$
|
||||||
|
- $S \to Aba | Ab | B$
|
||||||
|
- $A \to Aaa | B$
|
||||||
|
- $B \to Bbb | e$
|
||||||
|
- G3L -> reverze -> G3P -> NKA -> reverze -> NKA
|
||||||
|
|
||||||
|
Plán
|
||||||
|
1) $A_{1} \qquad L(A_{1}) = L(G_{1})$
|
||||||
|
2) $A_{1}^R \qquad L(A_{1}^R) = L(A_{1})^R = L(G_{1})^R$
|
||||||
|
3) $G_{2}^R \qquad L(G_{2}^R) = L(G_{2})^R$
|
||||||
|
4) $A_{2}^R \qquad L(A_{2}^R) = L(G_{2}^R) = L(G_{2})^R$
|
||||||
|
5) $A_{2} \qquad A_{2} = (A_{2}^R)^R \quad L(A_{2}) = \dots = L(G_{2})$
|
||||||
|
6) $A \qquad L(A) = L(A_{1}^R) \cup L(A_{2}) = L(G_{1})^R \cup L(G_{2})$
|
||||||
|
|
||||||
|
$G_{2}^R$
|
||||||
|
- $S \to abA | bA | B$
|
||||||
|
- $A \to aaA | B$
|
||||||
|
- $B \to bbB | e$
|
Loading…
Reference in a new issue