Inhaltsverzeichnis

Sprachen

„Sprache entscheidbar“ = Wortproblem entscheidbar

Äquivalent

(formale) Sprache

Menge von Wörtern die als korrekt erachtet werden

$L \subseteq \Sigma$

Typ

Sprache ist vom Typ $x$, wenn Grammatik vom Typ $x$ existiet.

Vom Typ einer Grammatik kann nicht auf Typ der Sprache geschlossen werden.

Chomsky

„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

Typ 3

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.

Grammatik -> DFA

  1. Grammatik → NFA
  2. NFA → DFA

Grammatik -> NFA

Gegeben

$G = (V, \Sigma, P, S)$

Ergebniss

$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$

NFA -> DFA

$M' = (Z', \Sigma, \delta', z_0, E')$ mit

Danach: Aufräumen (alle nicht erreichbaren knoten löschen)

Pumping Leamma

Schlüsse

Typ 3 Sprachen $\subset$ Pumping Lemma $\subset$ Sprachen

„Mehr Sprachen erfüllen das Pumping Leamma als in T3 sind.“

Bedingungen

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
Beweisidee

Mit $x = uvw$ beliebig, aber von $n$ abhängig, einen Widerspruch in den Regeln herbeiführen.

Minimalautomat

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
  1. Alle Paare parkieren wo ein $\in E$ das andere nicht (XOR).
  2. Loop über Tabelle
    • Wenn Ergebnis markiert, markiere auch diese
  3. Unmarkierte zusamenfassen

Typ 2

Chomsky Normalform (CNF)

Nur

⇒ Ableitungsbaum = Binärbaum

  1. $\epsilon$-Produktionen entfernen.
  2. A → a für jede Konstante einfüren
  3. U → XyzU → XYZ
    Konstanten durch Variablen in allen alten Regeln ersetzen
  4. U → XYZU → XV & V → YZ
    Aufsplitten wenn rechte Seite länger als 2
  5. X → Y & Y → X ⇒ Überall X und Y druch Z ersetzen
    Zyklen entfernen
  6. Ketten entfernen (von hinten)

Greibach Normalform (GNF)

Nur

Pumping Leamma

Bedingungen

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
Beweisidee

Mit $x = uvwxy$ beliebig, aber von $n$ abhängig, einen Widerspruch in den Regeln herbeiführen.

Grammatik -> Kellerautomat

$G = (V, \Sigma, \delta, S)$ ⇒ $M = (\{z\}, \Sigma, V \cup \Sigma, \delta, z, S)$

  1. Nur ein Zustand z
  2. Startvariable S der Grammatik wird zu unterstem Kellerelement (entspricht #)
  3. Für jede Produktion A → Xyz ergänze Produktion $(z, \epsilon, A) \rightarrow (u, Xyz)$
    (Mache Variablenableitungen (Auflösungen) im Keller)
  4. Für jedes $a \in \Sigma$ ergänze Produktion $(z, a, a) \rightarrow (z, \epsilon)$
    (Wenn Keller und Wort übereinstimmen, lösche sie)

CYK-Algorithmus

CNF Normalform

Typ 1

Typ(L) = 1 ⇔ Nicht deterministische, linear beschränkte TM

Wort ist akzeptiert wenn TM

Church-Turing-These

Alles was man „intuitiv“ berechnen kann, kann man auch mit einer Turingmaschine berechnen.

Kuroda Normalform

Nur

⇒ Ableitungsbaum = Binärbaum

  1. $\epsilon$-Produktionen entfernen.
  2. A → a für jede Konstante einfüren
  3. U → XyzU → XYZ
    Konstanten durch Variablen in allen alten Regeln ersetzen
  4. $A_1A_2A_3 \rightarrow B_1B_2B_3B_4B_5$
    $\Rightarrow$
    $A_1A_2 \rightarrow B_1X_1$
    $X_1A_3 \rightarrow B_2X_2$
    $X_2 \rightarrow B_3X_3$
    $X_3 \rightarrow B_4B_5$
    Aufsplitten wenn rechte Seite länger als 2 (neu)
  5. U → XYZU → XV & V → YZ
    Aufsplitten wenn rechte Seite länger als 2
  6. X → Y & Y → X ⇒ Überall X und Y druch Z ersetzen
    Zyklen entfernen
  7. Ketten entfernen (von hinten)

Typ

Typ(L) = 0 ⇔ (Nicht) deterministische TM

Wort ist akzeptiert wenn TM

Probleme

Wortproblem (Sprache)

Gefragt

„Ist Wort in Sprache?“

Beweis

Typ 2: CYK

Leerheitsproblem (Sprache)

Gefragt

„Gibt es akkzeptierte Wörter?“

Beweis

Kein Pfad von Start zu Ende.

Endlichkeitsproblem (Sprache)

Gefragt

„Gibt es nur endlich viele Wörter?“

Beweis

Zyklus

Schnittproblem (Sprache)

Gefragt

„Haben zwei Sprachen die selben Wörter?“

Beweis
  1. $L = L_1 \cap L_2$
  2. Leerheitsproblem von $L$

Äquivalenzproblem (Sprache)

Gefragt

„Sind zwei Sprachen gleich?“

Beweis

Typ 3: Isomorphie von Minimalautomaten

(Allgemeines) Halteproblem

Gegeben
Gefragt

„Hält das Programm?“

Entscheidbarkeit

nicht entscheidbar & semi-entscheidbar

Spezielles Halteproblem

Gegeben
Gefragt

„Hält das Programm auf sich selbst angewendet?“

Entscheidbarkeit

nicht entscheidbar & semi-entscheidbar

Leerband TM

Gegeben
Gefragt

„Hält das Programm auf leerem Band?“

Entscheidbarkeit

nicht entscheidbar & semi-entscheidbar

Satz von Rice

Gegeben
Gefragt

„Berechnet die TM $M_w$ mindestens eine Funktion aus S?“

Entscheidbarkeit

nicht entscheidbar (semi-entscheidbar?)

Postsche Korrespondenzproblem (PCP)

Gegeben
Gefragt

„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)?“

Entscheidbarkeit

nicht entscheidbar und semi-entscheidbar

Erfüllbarkeitsproblem der Aussagenlogik (SAT)

Gegeben
Gefragt

„Gibt es eine Belegung, so das F erfüllbar ist?“

Härte

SAT ∈ NP

Abschlusseigenschaften

Wenn $L_1$ und $L_2$ von Typ $n$. Ist dann auch $L_1 \text{op} L_2$ vom Typ $n$.

Vereinigung

$L_1 \cup L_2$

Typ 3: L|K

Schnitt

$L_1 \cap L_2 = C(C(L_1) \cup C(L_2))$

Typ 3: L|K

Komplement

$C(L) = \Sigma^* \setminus L$

Vertausche Endzustände mit nicht Endzuständen.

Produkt

Konkatenation

Typ 3: LK

Stern

Wiederholung

Typ 3: L*

Notationen

Grammatik

$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$

Mathematische Notation

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

(Extended) Backus-Naur-Form

Nur Typ 2 und 3

a|b Auswahl
[a] $0-1$ Mal
{a} $0-\infty$ Mal

Regulärer Ausdruck

Nur Typ 3

$\emptyset$ Leere Sprache (Menge)
$\epsilon$ Leeres Wort (Element)
$a \in \Sigma$ Konstante
$ab$ Konkatination
$(a|b)$ Auswahl
$(a)^*$ $0-\infty$ Mal

Entscheidungsverfahren

Parser

= Programm

Automaten

Nicht deterministisch ⇒ Backtracking

Typ Äquivalent
3 Ja
2 Nein
1 ?
0 Ja

DFA

$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.)
Konfiguration

Tupel $(z_i, v)$

$(z_0, \text{foo}) \rightarrow (z_1, \text{oo}) \rightarrow (z_2, \text{o}) \rightarrow (z_2, \epsilon)$

NFA

$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.)
Konfiguration

Tupel (z, v)

$(z_0, \text{foo}) \rightarrow (z_1, \text{oo}) \rightarrow (z_2, \text{o}) \rightarrow (z_2, \epsilon)$

Kellerautomat

$\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)

Start

Keller leer oder #.

Ende

Akzeptiert

Nicht Akzeptiert

Übergang

$(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

Konfiguration

Tupel (z, v, K)

$(z_0, \text{foo}, (\#)) \rightarrow (z_1, \text{oo}, (x\#)) \rightarrow (z_2, \text{o}, (\#)) \rightarrow (z_2, \epsilon, ())$

Turingmaschiene

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$
Übergang

$(z, \sigma) \rightarrow (z', \sigma', m)$

Für m

Konfiguration

Tupel $(\alpha z \beta)$

Linear beschränkt

Der Lesekopf liest noch nicht mal $\square$

Eigentlicher Bandinhalt $a_1a_2a_3a_4$
Markierter Bandinhalt $a_1a_2a_3a_4\hat a_4$