RegEx
\(\varepsilon\) - mentesítés
Példa - 1
\(G:\)
\[
\begin{array}{lcll} S & \to & AV & \\ V &\to & \varepsilon&\;|\;aSV \\ A& \to & c &\;|\;bSb\end{array}
\]
\(H=\{V\}\)
\(G':\)
\[
\begin{array}{lcll} S & \to & AV &\;|\;A \\ V &\to & aS&\;|\;aSV \\ A& \to & c &\;|\;bSb\end{array}
\]
Példa - 2
\(G:\)
\[
\begin{array}{lcll} S & \to & BA &\;|\;aa \\ A &\to & BB&\;|\;aAb \\ B& \to & \varepsilon &\;|\;SbA\end{array}
\]
\(H_1=\{B\}\)
\(H_2=H_1\cup\{A\}=\{A,B\}\)
\(H_3=H_2\cup\{S\}=\{S,A,B\}\)
\(G':\)
\[
\begin{array}{rlllll} S & \to & BA &\;|A&\;|B\;&\;|\;aa \\ A &\to & BB&\;|\;B&\;|\;aAb&\;|ab \\ B& \to & SbA &\;|\;bA&\;|\;Sb&\;|\;b \\ S'&\to & S&\;|\;\varepsilon\end{array}
\]
Példa - 3
\(G:\)
\[
\begin{array}{lcll} S & \to & aSb &\;|\;SS &\;|\;\varepsilon\end{array}
\]
\(H:\{S\}\)
\(G':\)
\[
\begin{array}{lcll} S & \to & aSb &\;|\;ab&\\ S'&\to&\varepsilon&\;|\;S\end{array}
\]
(Véges) Automaták
- \(A=(Q,T,\delta,q_0,F)\) rendezett ötös
- \(Q\)
- Az állapotok nem üres véges halmaza
- \(T\)
- Az input szimbólumok halmaza
- \(\delta:\;Q\times T\to Q\)
- leképezés állapot átmeneti függvény
- \(q_0\in Q\)
- Kezdőállapot
- \(F\subseteq Q\)
- Elfogadóállapotok hamlmaza
- \(Q\)
Véges, determinisztikus automata
- \(\delta:\;Q\times T\to Q\)
- Determinisztikus
Automata megadás táblázattal
| \(\delta\) | \(a\) | \(b\) |
|---|---|---|
| \(\underset{\rightarrow}{\leftarrow}\) \(q_0\) | \(q_2\) | \(q_1\) |
| \(q_1\) | \(q_3\) | \(q_0\) |
| \(q_2\) | \(q_0\) | \(q_3\) |
| \(q_3\) | \(q_1\) | \(q_2\) |
Automata megadása gráffal
- sorry :c, but unfinished
- érdemes megjelöli a belépési pontot (kívülrő érkező nyíl)
- Dupla körben vannak a lehetséges megállási pontok
\[
\begin{CD} \textcircled{~\textcircled{\;q_0\;}} @>>> \textcircled{q_1} \\ @VVV @AAA \\ \textcircled{q_2} @<<< \textcircled{q_3} \\ \end{CD}
\]
Szabály alkalmazása (alternatív jelölés)
\(\delta(q,a)=p\quad\) helyett \(\quad qa\to p\)
3-as normálforma
\(A\to aB\quad a\in T\)
\(A\to \varepsilon\)
\(L=\{u\in\{a,b\}^*\;|\;u=awb\;\land\;w\in\{a,b\}^*\}\)
\(S\to aA\) \(A\to aA\;|\;bB\) \(B\to \varepsilon\;|\;bB\;|aA\) \(H\to aH\;|\;bH\)
\[
\begin{CD} \rightarrow S @>{a}>> A @>{b}>> \textcircled{B} \\ @V{b}VV \\ H \\ \end{CD}
\]
Missing connections:
- a->a
- b->b
- b->a
Konfiguráció
\(qu\quad q\in Q,\;u\in T^*\)
\(w= abbab\)
\(Sabbab\)
Automata
- \(Sa\to A\)
- \(Sb\to H\)
- \(Aa \to A\)
- \(Ab \to B\)
- \(Ba \to A\)
- \(Bb \to B\)
\(F=\{B\}\)
Levezetés
\[
Sabbab \to Abbab\to Bbab \to Bab \to Ab \to B
\]
\[
B\in F\implies \text{A szó helyes!}
\]
Példa feladat
Bináris, 4-gyel osztható számok automatája
0|1(0|1)*00
- \(S1\to A\)
- \(A1\to A\)
- \(S0\to D\)
- \(A0\to B\)
- \(B0\to C\)
- \(B1\to A\)
- \(C0\to C\)
- \(C1\to A\)
\(F=\{C,D\}\)
Akár extra lépések (hibának):
- \(D0\to H\)
- \(D1\to H\)
- \(H0\to H\)
- \(H1\to H\)
Példa feladat - 2
(a|b|c)^*páratlan b, és nincs 2 c egymás mellett
- \(Sa \to S\)
- \(Sb \to B\)
-
\(Sc \to C\)
-
\(Ca \to S\)
- \(Cb \to B\)
-
\(Cc \to H\)
-
\(Ba \to B\)
- \(Bb \to S\)
-
\(Bc \to D\)
-
\(Da \to B\)
- \(Db \to S\)
-
\(Dc \to H\)
-
\(Ha \to H\)
- \(Hb \to H\)
- \(Hc \to H\)
\(F=\{B,D\}\)
\[
\begin{array}{rlllll} S & \to & aaB &\;|\;aC \\ B&\to & C&\;|\;b& \\ C& \to & aS &\;|\;\varepsilon\end{array}
\]
\[
\begin{array}{rlllll} S & \to & aZ &\;|\;aB \\ Z&\to & aB&\;|\;b& \\ S& \to & aC \\ B&\to&aS&\;|\;\varepsilon&\;|\;bV \\ V&\to&\varepsilon\\C&\to&aS&\;|\;\varepsilon\end{array}
\]