Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b4b01jag [2025/06/07 10:14] – [Příklady] mistrjirkastatnice: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 $\in L$ s $|w\geq n$ lze rozdělit na $= xwy$, kde:\\+Pro každý regulární jazyk $L$ existuje číslo $n$, takže pro každé slovo $\in L$ s $|un$ lze rozdělit na $= 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 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ý automat (PDA)** je sedmice ($Q, \Sigma, \Gamma, \delta, q_0, Z_0, F$), kde: +==== Typy zásobníkových automatů ====
-    * $Q$: konečná množina stavů\\+
  
-    * $\Sigma$: vstupní abeceda\\+  - <WRAP> 
 +**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, \gamma), p \in F \}$
 +    * **Příklad:** Jazyk $L = \{ a^n b^n \mid n \geq 0 \}$. 
 +<tikzjax> 
 +\usepackage{amsmath} 
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta} 
 +\begin{document}
  
-    * $\Gamma$: zásobníková abeceda\+\begin{tikzpicture}[node distance=2cm] 
- +\node[state, initial] (q0) {$q_0$}; 
-    * $\delta: Q \times (\Sigma \cup \{\varepsilon\}\times \Gamma \to \mathcal{P}_f(Q \times \Gamma^*)$: přechodová funkce\\ +\path[->] 
- +(q0edge [loop above] node {\(a, Z_0 \to AZ_0\)} (q0
-    * $q_0$: počáteční stav\\ +(q0edge [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í: **koncovým stavem** $L(A= \{\mid (q_0, w, Z_0\vdash_A^* (p, \varepsilon, \gamma), p \in F\}$ nebo **prázdným zásobníkem** $N(A= \{w \mid (q_0, w, Z_0) \vdash_A^* (p, \varepsilon, \varepsilon)\}$ , . +
-  * **Deterministický zásobníkový automat (DPDA)** má $\delta$ částečně definovanou a pro každé $(qa, X)$ existuje nejvýše jeden přechod. Určuje **deterministické jazyky** . +
- +
-===== 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: $L(G) = N(A)$ , .\+
- +
-    * Konstrukce PDA z gramatiky: +
-      * Stavy: $Q = \{q\}$\\ +
- +
-      * $\Gamma = N \cup \Sigma$, $Z_0 = S$\\ +
- +
-      * $\delta(q, \varepsilon, X) = \{(q, \alpha\mid X \to \alpha \in P\}$\\ +
- +
-      * $\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: Pokud $u \in N(A)$, pak žádné $uv$ ($v \neq \varepsilon$) není přijato , .\\ +
- +
-    * 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,b\}^*\}$ je bezprefixový a přijímaný DPDA prázdným zásobníkem, ale není regulární .+
  
 +\end{document}
 +</tikzjax>
 +    * Na $a$ zásobník naplní symboly $A$.
 +    * Na $b$ zásobník vyprázdní $A$.
 +</WRAP>
 +  - <WRAP>
 +**Deterministický PDA (DPDA):**
 +    * Pro každý stav $q$, symbol $a \in \Sigma \cup \{\varepsilon\}$ a vrchol $X \in \Gamma$ je $|\delta(q,a,X)| \leq 1$.
 +    * Pokud $\delta(q,\varepsilon,X) \neq \emptyset$, pak $\delta(q,a,X) = \emptyset$ pro všechna $a \in \Sigma$.
 +    * **Příklad:** Jazyk $L = \{ a^n b^n c^n \mid n \geq 0 \}$ nelze přijmout deterministicky, ale např. jazyk $L = \{ a^n b^n \mid n \geq 0 \}$ s přísnými přechody:
 <tikzjax> <tikzjax>
- 
 \usepackage{amsmath} \usepackage{amsmath}
 \usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta} \usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 \begin{document} \begin{document}
  
-\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,semithick+\begin{tikzpicture}[node distance=2cm
-\node[state,initial] (q0) {$q_0$}; +\node[state, initial] (q0) {$q_0$}; 
-\node[state,accepting] (q1) [right of=q0] {$q_1$}; +\node[state, right of=q0] (q1) {$q_1$}; 
-\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 belownode {\(bA \to \varepsilon\)} (q1);
-(q0) edge node [above] {$\varepsilonZ_0 / \varepsilon$} (q1); % Přidaná hrana+
 \end{tikzpicture} \end{tikzpicture}
  
 \end{document} \end{document}
 </tikzjax> </tikzjax>
-//Schéma PDA pro $\{a^n b^n\}$ (ijímá i prázdném zásobníku po návratu do $q_0$)//+    * 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 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ý ijímá $N(A= L(B)$ koncovým stavem [1]. 
  
Navigation

Playground

QR Code
QR Code statnice:bakalar:b4b01jag (generated for current page)