Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b4b01jag [2025/06/06 22:05] – [Bezkontextové gramatiky] mistrjirka | statnice:bakalar:b4b01jag [2025/06/09 18:56] (current) – [Regulární jazyky] tehlajak | ||
---|---|---|---|
Line 99: | Line 99: | ||
**Lemma o vkládání (Pumping lemma):**\\ | **Lemma o vkládání (Pumping lemma):**\\ | ||
- | Pro každý regulární jazyk $L$ existuje číslo $n$, takže pro každé slovo $w \in L$ s $|w| \geq n$ lze rozdělit na $w = xwy$, kde:\\ | + | Pro každý regulární jazyk $L$ existuje číslo $n$, takže pro každé slovo $u \in L$ s $|u| > n$ lze rozdělit na $u = xwy$, kde:\\ |
- $|xw| \leq n$,\\ | - $|xw| \leq n$,\\ | ||
- $w \neq \varepsilon$, | - $w \neq \varepsilon$, | ||
Line 206: | Line 206: | ||
- Pokud $vwx$ obsahuje dva druhy symbolů, pumpováním porušíme pořadí\\ | - Pokud $vwx$ obsahuje dva druhy symbolů, pumpováním porušíme pořadí\\ | ||
- Pokud obsahuje jeden symbol, pumpováním změníme počet jen u jednoho písmena | - Pokud obsahuje jeden symbol, pumpováním změníme počet jen u jednoho písmena | ||
- | |||
===== Zásobníkové automaty ===== | ===== Zásobníkové automaty ===== | ||
- | **Zásobníkové automaty (nedeterministické i deterministické ) a jejich vztah k bezkontextovým jazykům.** | + | |
+ | **Zásobníkové automaty (nedeterministické i deterministické) a jejich vztah k bezkontextovým jazykům.** | ||
+ | |||
+ | ==== Definice ==== | ||
+ | |||
+ | Zásobníkový automat (PDA) je sedmice $A = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$, kde: - $Q$: konečná množina stavů. - $\Sigma$: vstupní abeceda. - $\Gamma$: zásobníkové symboly. - $\delta$: přechodová funkce $\delta: Q \times (\Sigma \cup \{\varepsilon\}) \times \Gamma \to \mathcal{P}(Q \times \Gamma^*)$. - $q_0$: počáteční stav. - $Z_0$: počáteční zásobníkový symbol. - $F \subseteq Q$: koncové stavy. | ||
+ | |||
+ | ==== Typy zásobníkových automatů ==== | ||
+ | |||
+ | - < | ||
+ | **Nedeterministický PDA (NPDA):** | ||
+ | * Přechody mohou být více možností. | ||
+ | * Přijímá jazyk $L(A) = \{ w \mid (q_0, w, Z_0) \vdash_A^* (p, \varepsilon, | ||
+ | * **Příklad: | ||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture}[node distance=2cm] | ||
+ | \node[state, | ||
+ | \path[-> | ||
+ | (q0) edge [loop above] node {\(a, Z_0 \to AZ_0\)} (q0) | ||
+ | (q0) edge [loop below] node {\(b, A \to \varepsilon\)} (q0); | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | * Na $a$ zásobník naplní symboly $A$. | ||
+ | * Na $b$ zásobník vyprázdní $A$. | ||
+ | </ | ||
+ | - < | ||
+ | **Deterministický PDA (DPDA):** | ||
+ | * Pro každý stav $q$, symbol $a \in \Sigma \cup \{\varepsilon\}$ a vrchol $X \in \Gamma$ je $|\delta(q, | ||
+ | * Pokud $\delta(q, | ||
+ | * **Příklad: | ||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture}[node distance=2cm] | ||
+ | \node[state, | ||
+ | \node[state, | ||
+ | \path[-> | ||
+ | (q0) edge [loop above] node {\(a, Z_0 \to AZ_0\)} (q0) | ||
+ | (q0) edge node {\(b, A \to \varepsilon\)} (q1) | ||
+ | (q1) edge [loop below] node {\(b, A \to \varepsilon\)} (q1); | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | * Determinismus vyžaduje, aby přechody na $a$ a $b$ byly navzájem vyloučené. | ||
+ | </ | ||
+ | |||
+ | ==== Vztah k bezkontextovým jazykům ==== | ||
+ | |||
+ | * **Věta 0.4.9:** Každá bezkontextová gramatika $G$ lze převést na NPDA $A$, takže $L(G) = N(A)$. | ||
+ | * **Podstatné rozdíly: | ||
+ | * NPDA přijímají všechny bezkontextové jazyky. | ||
+ | * DPDA přijímají podmnožinu (deterministické jazyky). Například jazyk $\{ a^n b^n c^n \}$ není deterministický. | ||
+ | |||
+ | ==== Bezprefixové jazyky ==== | ||
+ | |||
+ | * Jazyk přijatý DPDA prázdným zásobníkem je **bezprefixový** (neobsahuje slovo jako prefix jiného slova). | ||
+ | * Pro každý DPDA $A$ existuje DPDA $B$, který přijímá $N(A) = L(B)$ koncovým stavem [1]. | ||
+ |