„Sprache entscheidbar“ = Wortproblem entscheidbar
Äquivalent
Menge von Wörtern die als korrekt erachtet werden
$L \subseteq \Sigma$
Sprache ist vom Typ $x$, wenn Grammatik vom Typ $x$ existiet.
Vom Typ einer Grammatik kann nicht auf Typ der Sprache geschlossen werden.
„0 hat nix Vorgeschrieben“
Typ 0 | Typ 1 | Typ 2 | Typ 3 | |||
---|---|---|---|---|---|---|
ND | D | |||||
Name | Alle Grammatiken | Kontextsensitiv | Kontextfrei | Regulär | ||
Bedingung $w_1 \rightarrow w_2$ | - | $|w_1| \le |w_2|$ | $|w_1| \le |w_2|$ $w_1$ Exakt eine Variable | $|w_1| \le |w_2|$ $w_1$ Exakt eine Variable $V \rightarrow t$ oder $V \rightarrow tV$ |
||
Produktionsgröße | kann schwanken | monoton Steigend | ||||
Probleme | Wort~ | semi-entscheidbar | entscheidbar O($2^n$) NP-hart | entscheidbar O(n³) | entscheidbar O(n) | entscheidbar O(n) |
Leerheits~ | nicht entscheidbar | entscheidbar | ||||
Endlichkeits~ | nicht entscheidbar | entscheidbar | ||||
Äquivalenz~ | nicht entscheidbar | entscheidbar | entscheidbar NP-hart |
|||
Schnitt~ | nicht entscheidbar | entscheidbar | ||||
Abschluss- Eigenschaften | Vereinigung | Ja | Ja | Ja | Nein | Ja |
Schnitt | Ja | Ja | Nein | Nein | Ja | |
Kompliment | Nein | Ja | Nein | Ja | Ja | |
Produkt | Ja | Ja | Ja | Nein | Ja | |
Stern | Ja | Ja | Ja | Nein | Ja | |
Syntaxbaum | - | Ja | Ja (String nach links/rechts) |
|||
(Extended) BNF | - | Ja |
DFA ⇔ NFA ⇔ Typ(L) =3
Satz von Kleene Die Menge der durch reguläre Ausdrücke beschreibbaren Sprachen ist genau die Menge der regulären Sprachen.
$G = (V, \Sigma, P, S)$
$M = (V \cup \{X\}, \Sigma, \delta, \{S\}, E)$
mit
\[ E = \begin{cases} \{S, X\} & \text{ wenn } S \rightarrow \epsilon \in P \\ \{X\} & \text{ sonst } \end{cases} \]
mit
Grammatik Regel | NFA Produktions- Regel |
---|---|
A → aB | $\delta(A, a) = B$ |
A → a | $\delta(A, a) = X$ |
$M' = (Z', \Sigma, \delta', z_0, E')$ mit
Danach: Aufräumen (alle nicht erreichbaren knoten löschen)
Typ 3 Sprachen $\subset$ Pumping Lemma $\subset$ Sprachen
„Mehr Sprachen erfüllen das Pumping Leamma als in T3 sind.“
Für alle Wörter $x = uvw$, die mindestens $n$ lang sind muss gelten:
$|v| \ge 1$ | uvw muss existieren |
$|uv| \le n$ | uvw mindestens n lang |
$uv^iw \in L \forall i \ge 0$ | uvw pumpbar |
Mit $x = uvw$ beliebig, aber von $n$ abhängig, einen Widerspruch in den Regeln herbeiführen.
Achte auf den Versatz von Zeilen und Spalten!
Unmarkierte Zustände | $\sigma_1$ | $\sigma_2$ | … | Ergebniss |
---|---|---|---|---|
{0,1} | $\{\delta(0, \sigma_1), \delta(1, \sigma_1)\} \times$ | $\{\delta(0, \sigma_2), \delta(1, \sigma_2)\} \checkmark$ | Markieren | |
{0,2} | $\{\delta(0, \sigma_1), \delta(2, \sigma_1)\} \times$ | $\{\delta(0, \sigma_2), \delta(2, \sigma_2)\} \times$ | Zusamenfassen | |
{0,3} | $\{\delta(0, \sigma_1), \delta(3, \sigma_1)\} \checkmark$ | - | Markieren | |
{1,2} | $\{\delta(1, \sigma_1), \delta(2, \sigma_1)\} \checkmark$ | - | Markieren | |
{1,3} | $\{\delta(1, \sigma_1), \delta(3, \sigma_1)\} \times$ | $\{\delta(1, \sigma_2), \delta(3, \sigma_2)\} \times$ | Zusamenfassen | |
{2,3} | $\{\delta(2, \sigma_1), \delta(3, \sigma_1)\} \checkmark$ | - | Markieren |
Nur
⇒ Ableitungsbaum = Binärbaum
A → a
für jede Konstante einfürenU → Xyz
⇒ U → XYZ
U → XYZ
⇒ U → XV
& V → YZ
X → Y
& Y → X
⇒ Überall X
und Y
druch Z
ersetzen Nur
B
)Für alle Wörter $x = uvwxy$, die mindestens $n$ lang sind muss gelten:
$|vx| \ge 1$ | uvwxy eins von beiden muss existieren |
$|vwx| \le n$ | uvwxy mindestens n lang |
$uv^iwx^iy \in L \forall i \ge 0$ | uvwxy pumpbar |
Mit $x = uvwxy$ beliebig, aber von $n$ abhängig, einen Widerspruch in den Regeln herbeiführen.
$G = (V, \Sigma, \delta, S)$ ⇒ $M = (\{z\}, \Sigma, V \cup \Sigma, \delta, z, S)$
z
S
der Grammatik wird zu unterstem Kellerelement (entspricht #)A → Xyz
ergänze Produktion $(z, \epsilon, A) \rightarrow (u, Xyz)$ Typ(L) = 1 ⇔ Nicht deterministische, linear beschränkte TM
Wort ist akzeptiert wenn TM
Alles was man „intuitiv“ berechnen kann, kann man auch mit einer Turingmaschine berechnen.
Nur
⇒ Ableitungsbaum = Binärbaum
A → a
für jede Konstante einfürenU → Xyz
⇒ U → XYZ
U → XYZ
⇒ U → XV
& V → YZ
X → Y
& Y → X
⇒ Überall X
und Y
druch Z
ersetzen Typ(L) = 0 ⇔ (Nicht) deterministische TM
Wort ist akzeptiert wenn TM
„Ist Wort in Sprache?“
Typ 2: CYK
„Gibt es akkzeptierte Wörter?“
Kein Pfad von Start zu Ende.
„Gibt es nur endlich viele Wörter?“
Zyklus
„Haben zwei Sprachen die selben Wörter?“
„Sind zwei Sprachen gleich?“
Typ 3: Isomorphie von Minimalautomaten
„Hält das Programm?“
nicht entscheidbar & semi-entscheidbar
„Hält das Programm auf sich selbst angewendet?“
nicht entscheidbar & semi-entscheidbar
„Hält das Programm auf leerem Band?“
nicht entscheidbar & semi-entscheidbar
„Berechnet die TM $M_w$ mindestens eine Funktion aus S
?“
nicht entscheidbar (semi-entscheidbar?)
n
Tupeln (Dominosteinen) $(x_1, y_1), (x_2, y_2), \dots , (x_n, y_n)$ mit $x_i, y_i \in \Sigma^+$ (Ohne 𝞮)„Gibt es eine Folge $i_1, i_2, \dots i_n$ so dass $x_{i_1} x_{i_2} \dots x_{i_n} = y_{i_1} y_{i_2} \dots y_{i_n}$ (obere Zeile = untere Zeile)?“
nicht entscheidbar und semi-entscheidbar
n
Tupeln (Dominosteinen) $(x_1, y_1), (x_2, y_2), \dots , (x_n, y_n)$ mit $x_i, y_i \in \Sigma^+$ (Ohne 𝞮)
„Gibt es eine Belegung, so das F
erfüllbar ist?“
SAT ∈ NP
Wenn $L_1$ und $L_2$ von Typ $n$. Ist dann auch $L_1 \text{op} L_2$ vom Typ $n$.
$L_1 \cup L_2$
Typ 3: L|K
$L_1 \cap L_2 = C(C(L_1) \cup C(L_2))$
Typ 3: L|K
$C(L) = \Sigma^* \setminus L$
Vertausche Endzustände mit nicht Endzuständen.
Konkatenation
Typ 3: LK
Wiederholung
Typ 3: L*
$G = (V, \Sigma, P, S)$
FZ | Art | Heist | Besteht aus |
---|---|---|---|
$V$ | Menge | Variablen/nicht-Terminalsymbolen | |
$\Sigma$ | Menge | Alphabet/Signatur | Konstanten / Terminalsymbolen |
$P$ | Menge | Produktionsregeln | |
$S$ | Element | Startsymbol | |
$\epsilon$ | Element | leere Sequenz |
$S \in \Sigma$
$L(G) = L$
Ist direkt menge und damit Sprache.
$L = \{a^nb^n | n > 0\}$
???
$ab$ | Konkatination |
$\{a,b\}$ | Auswahl |
$a^n$ | $n$ Mal |
$a^*$ | $0-\infty$ Mal |
$a^+$ | $1-\infty$ Mal |
$a?$ | $0-1$ Mal |
$\epsilon$ | Leeres Wort |
Nur Typ 2 und 3
a|b | Auswahl |
[a] | $0-1$ Mal |
{a} | $0-\infty$ Mal |
Nur Typ 3
$\emptyset$ | Leere Sprache (Menge) |
$\epsilon$ | Leeres Wort (Element) |
$a \in \Sigma$ | Konstante |
$ab$ | Konkatination |
$(a|b)$ | Auswahl |
$(a)^*$ | $0-\infty$ Mal |
= Programm
Nicht deterministisch ⇒ Backtracking
Typ | Äquivalent |
---|---|
3 | Ja |
2 | Nein |
1 | ? |
0 | Ja |
$M = (Z, \Sigma, \delta, z_0,E)$
FZ | Art | Heist | Besteht aus | Bedingung |
---|---|---|---|---|
$Z$ | Menge | Zuständen | $z_0 \in Z$ | |
$\Sigma$ | Menge | Eingabealphabet | Konstanten / Terminalsymbolen | |
$z_0$ | Element | Startzustand | $z_0 \in Z$ | |
$E$ | Menge | Endzustände | $E \subseteq Z$ | |
$\delta$ | Funktion | Überführungsfunktion $\delta: Z \times \Sigma \rightarrow Z$ | total (überall Def.) |
Tupel $(z_i, v)$
$(z_0, \text{foo}) \rightarrow (z_1, \text{oo}) \rightarrow (z_2, \text{o}) \rightarrow (z_2, \epsilon)$
$M = (Z, \Sigma, \delta, S,E)$
FZ | Art | Heist | Besteht aus | Bedingung |
---|---|---|---|---|
$Z$ | Menge | Zuständen | $z_0 \in Z$ | |
$\Sigma$ | Menge | Eingabealphabet | Konstanten / Terminalsymbolen | |
$S$ | Menge | Startzustände | $S \subseteq Z$ | |
$E$ | Menge | Endzustände | $E \subseteq Z$ | |
$\delta$ | Funktion | Überführungsfunktion $\delta: Z \times \Sigma \rightarrow \mathcal P(Z)$ | total (überall Def.) |
Tupel (z, v)
$(z_0, \text{foo}) \rightarrow (z_1, \text{oo}) \rightarrow (z_2, \text{o}) \rightarrow (z_2, \epsilon)$
$\epsilon$-Übergang ⇒ Nichtdeterministisch (es gibt aber auch weitere Fälle)
$M = (Z, \Sigma, \Gamma, \delta, z_0, \#)$
FZ | Art | Heist | Besteht aus | Bedingung |
---|---|---|---|---|
$Z$ | Menge | Zuständen | $z_0 \in Z$ | |
$\Sigma$ | Menge | Eingabealphabet | Konstanten / Terminalsymbolen | |
$\Gamma$ | Menge | Kelleralphabet | $\# \in \Gamma$ Es kann $\Gamma \ne \Sigma$ gelten |
|
$\delta$ | Funktion | Überführungsfunktion $\delta: Z \times \Sigma \rightarrow \mathcal P(Z)$ | total (überall Def.) | |
$z_0$ | Element | Startzustand | $z_0 \in Z$ | |
# | Element | Unterstes Kellerelement | $\# \in \Gamma$ |
(Keine Endzustände)
Keller leer oder #.
Akzeptiert
Nicht Akzeptiert
$(z, \sigma, S_1) \rightarrow (z', S_1'S_2'\ldots)$
$(z, \sigma, S_1) \rightarrow (z', )$ | POP() |
$(z, \sigma, S_1) \rightarrow (z', S_nS_1)$ | PUSH($S_n$) |
$(z, \textbf{$\epsilon$}, S_1) \rightarrow (z', S_1'S_2'\ldots)$ | Restwort bleibt unverändert |
$(z, \sigma, \textbf{$\epsilon$}) \rightarrow (z')$ | Restwort und Keller bleiben unverändert |
Vereinfacht
Tupel (z, v, K)
$(z_0, \text{foo}, (\#)) \rightarrow (z_1, \text{oo}, (x\#)) \rightarrow (z_2, \text{o}, (\#)) \rightarrow (z_2, \epsilon, ())$
Deterministische TM ⇔ Nichtdeterministische TM
$M = (Z, \Sigma, \Gamma, \delta, z_0, \square, E)$
FZ | Art | Heist | Besteht aus | Bedingung |
---|---|---|---|---|
$Z$ | Menge | Zuständen | $z_0 \in Z$ $E \subseteq Z$ |
|
$\Sigma$ | Menge | Eingabealphabet | Konstanten / Terminalsymbolen | $\Sigma \subset \Gamma$ |
$\Gamma$ | Menge | Arbeitsalphabet | $\square \in \Gamma$ $\Sigma \subset \Gamma$ |
|
$\delta$ | Funktion | Überführungsfunktion $\delta: Z \times \Gamma \rightarrow Z \times \Gamma \times \{\text{L}, \text{R}, \text{N}\}$ (D) Überführungsfunktion $\delta: Z \times \Gamma \rightarrow \mathcal P(Z \times \Gamma \times \{\text{L}, \text{R}, \text{N}\})$ (ND) | total (überall Def.) | |
$z_0$ | Element | Startzustand | $z_0 \in Z$ | |
$\square$ | Element | Blank | $\square \in \Gamma$ | |
E | Menge | Endzustände | $E \subseteq Z$ |
$(z, \sigma) \rightarrow (z', \sigma', m)$
Für m
Tupel $(\alpha z \beta)$
Der Lesekopf liest noch nicht mal $\square$
Eigentlicher Bandinhalt | $a_1a_2a_3a_4$ |
---|---|
Markierter Bandinhalt | $a_1a_2a_3a_4\hat a_4$ |