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
|
||||
.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