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/07 10:07] – [Příklady] 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 jsou nedeterministické nebo deterministické stroje rozpoznávající bezkontextové jazyky. Nedeterministické přijímají všechny bezkontextové jazyky, zatímco deterministické pouze jejich podmnožinu (deterministické bezkontextové jazyky).** | + | ==== Definice ==== |
- | ===== 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. |
- | * **Nedeterministický zásobníkový | + | ==== Typy zásobníkových |
- | * $Q$: konečná množina stavů\\ | + | |
- | | + | - < |
+ | **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:** Jazyk $L = \{ a^n b^n \mid n \geq 0 \}$. | ||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
- | * $\Gamma$: zásobníková abeceda\\ | + | \begin{tikzpicture}[node distance=2cm] |
- | + | \node[state, initial] | |
- | * $\delta: Q \times | + | \path[->] |
- | + | (q0) edge [loop above] node {\(a, Z_0 \to AZ_0\)} (q0) | |
- | * $q_0$: počáteční stav\\ | + | (q0) edge [loop below] node {\(b, A \to \varepsilon\)} (q0); |
- | + | \end{tikzpicture} | |
- | * $Z_0$: počáteční symbol zásobníku\\ | + | |
- | + | ||
- | * $F$: koncové stavy\\ | + | |
- | Přijímání: | + | |
- | * **Deterministický zásobníkový automat | + | |
- | + | ||
- | ===== Vztah k bezkontextovým jazykům ===== | + | |
- | + | ||
- | - **Ekvivalence PDA a bezkontextových gramatik**: | + | |
- | * Každý jazyk generovaný bezkontextovou gramatikou $G$ je přijímán nějakým PDA prázdným zásobníkem: | + | |
- | + | ||
- | * Konstrukce PDA z gramatiky: | + | |
- | * Stavy: $Q = \{q\}$\\ | + | |
- | + | ||
- | * $\Gamma = N \cup \Sigma$, $Z_0 = S$\\ | + | |
- | + | ||
- | * $\delta(q, | + | |
- | + | ||
- | * $\delta(q, a, a) = \{(q, \varepsilon)\}$ pro $a \in \Sigma$ . | + | |
- | - **Omezení deterministických automatů**: | + | |
- | * DPDA přijímají pouze **bezprefixové jazyky** prázdným zásobníkem: | + | |
- | + | ||
- | * Ne všechny bezkontextové jazyky jsou deterministické (např. $L = \{a^n b^n \mid n \geq 0\} \cup \{a^n b^{2n} \mid n \geq 0\}$). | + | |
- | + | ||
- | ===== Příklady ===== | + | |
- | + | ||
- | - **Nedeterministický PDA pro $L = \{a^n b^n \mid n \geq 0\}$**: | + | |
- | * Při čtení $a$ ukládá $A$ na zásobník.\\ | + | |
- | + | ||
- | * Při čtení $b$ odebírá $A$ ze zásobníku.\\ | + | |
- | + | ||
- | * Přijímá prázdným zásobníkem. | + | |
- | - **Deterministický jazyk**: | + | |
- | * $L = \{wcw^R \mid w \in \{a, | + | |
+ | \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} | \usepackage{amsmath} | ||
\usetikzlibrary{automata, | \usetikzlibrary{automata, | ||
\begin{document} | \begin{document} | ||
- | \begin{tikzpicture}[->,> | + | \begin{tikzpicture}[node distance=2cm] |
- | \node[state, | + | \node[state, |
- | \node[state, | + | \node[state, |
- | \path (q0) edge [loop above] node { | + | \path[->] |
- | $a, \varepsilon/A$ \\ | + | (q0) edge [loop above] node {\(a, Z_0 \to AZ_0\)} (q0) |
- | $b, A/\varepsilon$ | + | (q0) edge node {\(b, A \to \varepsilon\)} (q1) |
- | } (q0); | + | (q1) edge [loop below] node {\(b, A \to \varepsilon\)} (q1); |
\end{tikzpicture} | \end{tikzpicture} | ||
\end{document} | \end{document} | ||
</ | </ | ||
- | //Schéma PDA pro $\{a^n b^n\}$ | + | * Determinismus vyžaduje, aby přechody na $a$ a $b$ byly navzájem vyloučené. |
+ | </WRAP> | ||
+ | |||
+ | ==== 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ý | ||