Theo

Teil 1: Formale Sprachen

1. Grundbegriffe:

  • Alphabet
    Σ
    : Endliche Menge
  • Wort / String über
    Σ
    : endliche Folge von Zeichen aus
    Σ
  • |w|: Länge des Wortes w
  • Leeres Wort:
    ϵ
  • u, v: wörter -> uv: Konkatenation
  • w: wort, wn definiert durch: w0 =
    ϵ
    , wn+1 = wwn
  • Σ
    : Menge aller Wörter über
    Σ
  • Teilmenge
    LΣ
    : (formale) Sprache

Operationen auf Sprachen

Seien

A,BΣ

  • Konkatenation: AB =
    {uv|uAvB}
  • Merke: {ab,b}
    ×
    {a,bb} = {(ab,a),(ab,bb),(b,a),(b,bb)}
  • An
    =
    {w1wn|w1,,wnA}
    =
    AA
  • A
    =
    {w1wn|n0w1,,wnA
    } =
    nNAn
  • A+
    =
    AA
    =
    n1An

    Achtung: für alle A:
    ϵA
    ,
    ={ϵ}

Einige Rechenregeln

  • A=
  • {ϵ}A=A
  • A(BC)=ABAC
  • (AB)C=ACBC
  • AA=A

    Achtung: i.A. gilt
    A(BC)=ABAC
    nicht.

1.1 Grammatiken

Eine Grammatik ist ein 4-Tupel G = (V,

Σ, P, S), wobei:

  • V: endliche Menge von Nichtterminalen
  • Σ
    : endliche Menge von Terminalen, disjunkt von V, auch Alphabet genannt
  • P(VΣ)×(VΣ)
    : Endliche Menge von Produktionen
  • S
    V: Startsymbol

Eine Grammatik G = (V,

Σ, P, S) induziert eine Ableitungsrelation
G
auf Wörtern über V
 Σ

αGα
eine Regel
ββ
in P und Wörter
α1,α2
, sodass:
α=α1βα2
und
α=α1βα2

Eine Sequenz
α1GGαn
ist eine Ableitung von
αn
aus
α1

Wenn
α1=S
und
αnΣ
, dann erzeugt G das wort
αn

Sprache von G: L(G): Menge aller wörter, die von G erzeugt werden

1.2 Chomsky-Hierarchie

Eine Grammatik G ist vom
Typ 0: Immer
Typ 1: falls für jede Produktion

αβ außer
Sϵ
gilt:
|α||β|

Typ 2: falls G vom Typ 1 ist und für jede Produktion
αβ
gilt:
αV

Typ 3: falls G vom Typ 2 ist und für jede Produktion
αβ
außer
Sϵ
gilt:
βΣΣV

Offensichtlich: Typ 3
Typ 2
Typ 1
Typ 0

Grammatiken und Sprachklassen:
Typ 3: Rechtslineare Grammatik: Reguläre Sprachen
Typ 2: Kontextfreie Grammatik: Kontextfreie Sprachen
Typ 1: Kontextsensitive Grammatik: Kontextsens. Sprachen
Typ 0: Phasenstrukturgrammatik: Rekursiv aufzählbare Sprachen

L(Typ 3)

L(Typ 2)
L(Typ 1)
L(Typ 0)

2. Reguläre Sprachen

2.1 Deterministische endliche Automaten (DFAs)

Ein DFA

M=(Q,Σ,δ,q0,F) besteht aus:

  • einer endlichen Menge an Zuständen Q
  • einem (endlichen) Eingabealphabet
    Σ
  • einer (totalen) Übergangsfunktion
    δ:Q×ΣQ
  • einem Startzustand
    q0Q
  • einer Menge
    FQ
    von Endzuständen
  • TODO: carlos camino DFA
    Eine Sprache ist regulär gdw. sie von einem DFA akzeptiert wird

2.2 Nichtdeterministische endliche Automaten (NFAs)

Ein NFA ist ein 5-Tupel

N=(Q,Σ,δ,q0,F), so dass:

  • Q,Σ,q0
    und
    F
    sind wie bei einem DFA
  • δ:Q×ΣP(Q)

    P(Q)
    = Menge aller Teilmengen von
    Q=2Q

    Alternative: Relation
    δQ×Σ×Q
  • TODO: carlos camino NFA

2.3 Äquivalenz von NFA und DFA

Für jeden NFA N gibt es einen DFA M mit L(N) = L(M)
Für einen NFA mit n Zuständen kann der entsprechende DFA bis zu 2n Zustände haben

2.4 NFAs mit
ϵ
-Übergängen

  • Diese Erweiterung von NFAs macht sie nicht mächtiger
  • Aber man kann manche Sprachen einfacher beschreiben als nur mit NFAs

Ein NFA mit

ϵ-Übergängen auch
ϵ
-NFA ist ein NFA mit einem speziellen Symbol
ϵΣ
und mit
δ:Q×(Σ{ϵ})P(Q)

Ein
ϵ
-Übergang darf ausgeführt werden, ohne dass ein Eingabezeichen gelesen wird
Formal:
ϵ
-NFA
N=(Q,Σ,δ,q0,F)
als kompakte Repräsentation eines
ϵ
-freien NFA
N=(Q,Σ,δ,q0,F)

Per Definition: Jeder
ϵ
-NFA ist äquivalent zu einem NFA

  • TODO: carlos camino EDFA

Fazit: Die Automatentypen

  • DFA
  • NFA
  • ϵ
    -NFA

sind gleich mächtig

2.5 Rechtslineare Grammatiken

rechtslineare Grammatiken haben nur Produktionen der Form

Aa,AaB und
Sϵ

Für jeden DFA M gibt es eine rechtslineare Grammatik G mit
L(M)=L(G)

Für jede rechtslineare Grammatik G gibt es einen NFA M mit
L(G)=L(M)

das bedeutet auch: für jede rechtslineare Grammatik G gibt es einen DFA M mit
L(G)=L(M)

  • TODO: carlos camino RLG

2.6 Reguläre Ausdrücke

Reguläre Ausdrücke sind eine weitere Notation für die Definition von formalen Sprachen, und sind induktiv definiert:

  • ist ein RE
  • ϵ
    ist ein RE
  • für jedes
    aΣ
    ist a ein regulärer Ausdruck
  • Wenn
    α
    und
    β
    reguläre ausdrücke sind, dann auch:
    • αβ
    • α|β
      , (oft
      α+β
      geschrieben)
    • α

Nichts sonst ist ein regulärer Ausdruck
Notation:

  • Reguläre Ausdrücke können bzw. müssen geklammert werden
  • Bindungsstärke: * stärker als Konkatenation stärker als |
  • ab=a(b)(ab)
  • ab|c=(ab)|ca(b|c)

Sprache

L(γ) eines regulären Ausdrucks
γ
ist rekursiv definiert:

  • L()=
  • L(ϵ)={ϵ}
  • L(a)={a}
  • L(αβ)=L(α)L(β)
  • L(α|β)=L(α)L(β)
  • L(α)=L(α)

Satz von Kleene: Eine Sprache

LΣ ist genau dann durch einen regulären Ausdruck darstellbar, wenn sie regulär ist.

  • TODO: NFA Konstruktion, Carlos Camino Cleene

Konversionen auf einen Blick:

  • ϵ
    -NFA
    NFA: Q ~> Q
  • NFA
    DFA: n Zustände ~> O(2n) Zustände
  • NFA / DFA
    RE: n Zustände ~> RE der Länge O(n4n)
  • RE
    ϵ
    -NFA: RE der Länge n ~> O(n) Zustände

2.7 Abschlusseigenschaften regulärer Sprachen

Seien

R,R1,R2Σ Reguläre Sprachen. Dann sind auch:

  • R1R2
  • R1R2
  • R
  • R
    (:=ΣR)))
  • R1R2
  • R1R2

Reguläre Sprachen.
Bemerkung: Komplementierung

(R) durch vertauschen von Endzuständen und Nicht-Endzuständen funktioniert nur bei DFAs, nicht bei NFAs!

Produkt-Konstruktion: Durchschnitt direkt auf DFAs, ohne Umweg via de Morgan. Beide DFAs laufen synchron parallel, Wort wird akzeptiert wenn beide DFAs akzeptieren.
Parallelismus = Kreuzprodukt der Zustandsräume

Die Umkehrung (Spiegelung) von

w=a1an ist
wR:=ana1

Die Umkehrung einer Sprache
A
ist
AR:={wR|wA}

Ist
A
eine reguläre Sprache, dann auch
AR

2.8 Rechnen mit regulären Ausdrücken

Zwei reguläre Ausdrücke sind äquivalent gdw. sie die gleiche Sprache darstellen:

αβ:L(α)=L(β)

Null und Eins

  • |αα|α
  • αα
  • ϵααϵα
  • ϵ
  • ϵϵ

Assoziativität:

  • (α|β)|γα|(β|γ)
  • (αβ)γα(βγ)

Kommutativität

  • α|ββ|α

Distributivität

  • α(β|γ)αβ|αγ
  • (α|β)γαγ|βγ

Idempotenz:

  • α|αα

Stern:

  • ϵ|ααα
  • αααα
  • (α)α

Satz von Redko: Es gibt keine endliche Menge von gültigen Äquivalenzen aus denen sich alle gültigen Äquivalenzen herleiten lassen.

2.9 Pumping Lemma für Reguläre Sprachen

AKA: Wie zeigt man, dass eine Sprache nicht regulär ist?

Sei

RΣ regulär. Dann gibt es ein n > 0, so dass sich jedes
zR
mit
|z|n
so in
z=uvw
zerlegen lässt, dass:

  • vϵ
  • |uv|n
  • i0. uviwR
  • TODO: understand pumping lemma, carlos camino pumping lemma

Bemerkung:
Es gibt nicht-reguläre Sprachen, für die das Pumping-Lemma gilt!

Pumping-Lemma hinreichend aber nicht notwendig um Nicht-Regularität zu zeigen
regulär
Pumping-Lemma gilt
alle Sprachen

2.10 Entscheidungsverfahren

Entscheidungsprobleme für reguläre Sprachen, d.h. Probleme der Gestalt

  • Eingabe: Ein oder mehrere Objekte, die reguläre Sprachen beschreiben (DFA, NFA, RE, Typ 3 Grammatik, etc.)
  • Frage: Haben diese Objekte die Eigenschaft X?

Ein (Entscheidungs)Problem ist entscheidbar, wenn es einen Algorithmus gibt, der bei jeder Eingabe in endlicher Zeit die richtige Antwort gibt.
Nicht alle Entscheidungsprobleme für Grammatiken sind entscheidbar

Sei D ein DFA, NFA, RE, rechtslineare Grammatik, etc.

  • Wortproblem: Gegeben w und D, gilt
    wL(D)
    ?
    • Entscheidbar in
      O(|w|+|M|)
      für Wort w und DFA M
    • Entscheidbar in
      O(|Q|2|w|+|N|)
      für Wort w und NFA N
  • Leerheitsproblem: Gegeben D, gilt
    L(D)=
    ?
    • Entscheidbar in
      O(|Q||Σ|)/O(|Q2||Σ|)
      für DFAs/NFAs
  • Endlichkeitsproblem: Gegeben D, ist L(D) Endlich?
    • Entscheidbar für DFAs oder NFAs
  • Äquivalenzproblem: Gegeben
    D1,D2
    , gilt
    L(D1)=L(D2)
    ?
    • Entscheidbar für DFAs in Zeit
      O(|Q1||Q2||Σ|)
    • Entscheidbar für NFAs in Zeit
      O(2|Q+1|+|Q2|)
      , bei fixem $\Sigma
    • Entscheidbar für reguläre Ausdrücke

Fazit: Die Kodierung der Eingabe (DFA, NFA, RE, etc.) kann entscheidend für die Komplexität eines Problems sein

2.11 Automaten und Gleichungssysteme

Ardens Lemma:
Sind

A,B und
X
Sprachen mit
ϵA
, so gilt
X=AXBX=AB

Korollar
Sind

α,β und
X
reguläre Ausdrücke mit
ϵL(α)
, so gilt
XαX|βXαβ

Bemerkungen:

  • X=ϵXB
    hat keine eindeutige Lösung: jede Sprache
    XB
    ist Lösung
  • XaXb|ϵ
    hat keine reguläre Lösung

2.12 Minimierung endlicher Automaten

Jede reguläre Sprache hat einen einzigen minimalen DFA

Algorithmus zur Minimierung eines DFA

  • Entferne alle von
    q0
    aus nicht erreichbaren Zustände
  • Berechne die äquivalenten Zustände des Automaten
  • Kollabiere den Automaten durch Zusammenfassung aller äquivalenten Zustände

Zustäde p und q sind unterscheidbar wenn es

wΣ gibt mit
δ^(p,w)F
und
δ^(q,w)F

Zustände sind äquivalent wenn sie nicht unterscheidbar sind, d.h. wenn für alle
wΣ
gilt:
δ^(p,w)Fδ^(q,w)F

  • gilt

    pF und
    qF
    , dann sind p und q unterscheidbar

  • sind

    δ(p,a) und
    δ(q,a)
    unterscheidbar, dann auch p und q
    unterscheidbarkeit pflanzt sich rückwärts fort

  • Todo: Folie 107 tabellendings grafik erstellen, einsetzen, algorithmus U

Eine weitere Anwendung: Äquivalenztest von DFAs

  • Gegeben DFAs A und B, bilde disjunkte Vereinigung. ("Male A und B nebeneinander")
  • Berechne Menge der äquivalenten Zustände
  • L(A) = L(B) gdw. die beiden Startzustände äquivalent sind

Formale Definition des "kollabierten Automaten"

Eine Relation

≈⊆A×A ist eine Äquivalenzrelation falls

  • Reflexivität:
    aA. aa
  • Symmetrie:
    a,bA. abba
  • Transitivität:
    a,b,cA. abbcac

Äquivalenzklasse:

[a]:={b|ab}

Es gilt:

[a]=[b]ab

Quotientenmenge:

A/ :={[a]|aA}

Äquivalenz von Zuständen

Intuition: Zwei Zustände sind äquivalent gwd. sie dieselbe sprache erkennen.
Wir schreiben

statt
M
wenn M klar ist
Einfache Fakten:

  • M
    ist eine Äquivalenzrelation
  • pMqδ(p,a)Mδ(q,a)
  • Algorithmus U liefert die unterscheidbaren Zustände, also
    .

In der weiteren Analyse wird direkt auf

bezogen, nicht mehr auf den Algorithmus

Die "Kollabierung" von M bzgl.

ist der Quotientenautomat:
M/ :=(Q/,Σ,δ,[q0],F/)δ([p],a):=[δ(p,a)]

Die Definition von

δ ist wohlgeformt da unabhängig von der Wahl des Repräsentanten p:
[p]=[p]ppδ(p,a)δ(p,a)[δ(p,a)]=[δ(p,a)]

Lemma:
L(M/)=L(M)

Minimalität des Quotientenautomaten

Jede Sprache

LΣ induziert eine Äquivalenzrelation
LΣ×Σ
:

δ^(q0,u)Mδ^(q0,v)uL(M)v

Achtung:

  • pMq
    ist eine Relation auf Zuständen von M
  • uLv
    ist eine Relation auf Wörtern

Ist M ein DFA ohne unerreichbare Zustände, so ist der von Algorithmus U berechnete Quotientenautomat

M/ ein minimaler DFA für L(M)

Alle Quotientenautomaten

M/M für die gleiche Sprache L(M) haben die gleiche Struktur, d.h. sie unterscheiden sich nur durch eine Umbenennung der Zustände.

Daher werden die Zustände des kanonischen Minimalautomaten für eine Sprache L mit

L Äquivalenzklassen beschriftet.

Satz von Myhill-Nerode

Eine Sprache

LΣ ist genau dann regulär, wenn
L
endlich viele Äquivalenzklassen hat.

Vollständige Methode um Nichtregularität von L zu zeigen:
Gib unendliche Menge

w1,w2 an, mit
wiLwj
falls
ij

Bemerkung: Eindeutigkeit des minimalen Automaten (modulo Umbenennung der Zustände) gilt nur bei DFAs, nicht bei NFAs!

3. Kontextfreie Sprachen

3.1 Kontextfreie Grammatiken

(folie 126 maybe)
Eine Kontextfreie Grammatik

G=(V,Σ,P,S) ist ein 4-Tupel:
V
: endliche Menge, Nichtterminale
Σ
: Alphabet, Terminale, disjunkt von V
PV×(VΣ)
: Endliche Menge, Produktionen
SV
: Startsymbol

Eine Kontextfreie Grammatik

G=(V,Σ,P,S) induziert eine Ableitungsrelation
G
auf wörtern über
VΣ
:

αGβ

gdw es eine Regel

Aγ in P gibt, und Wörter
α1,α2
, sodass
α=α1Aα2
und
β=α1γα2

α1Gα2GGαn

wird als eine Linksableitung bezeichnet, gdw. in jedem Schritt das linkeste Nichtterminal ersetzt wird

Kontextfreie Sprache

Eine kontextfreie Grammatik

G=(V,Σ,P,S) erzeugt die Sprache

L(G):={wΣ|SGw}

Eine Sprache

LΣ ist kontextfrei gdw. es eine kontextfreie Grammatik G gibt mit L = L(G)

Abkürzungen:

  • CFG: Kontextfreie Grammatik (context-free grammar)
  • CFL: Kontextfreie Sprache (context-free language)

Konvention:
Ist G aus dem Kontext eindeutig ersichtlich, so schreibt man auch nur

αβ statt
αGβ

Linearität:

  • Eine CFG ist rechtslinear gdw. jede Produktion der Form
    AaB
    oder
    Aϵ
    ist
  • Eine CFG ist linkslinear gdw. jede Produktion der Form
    ABa
    oder
    Aϵ
    ist
  • Die rechtslinearen und linkslinearen Grammatiken erzeugen jeweils genau die regulären Sprachen.
  • -> Die regulären Sprachen sind somit eine echte Teilklasse der kontextfreien Sprachen

Todo:

  • TODO: Dekompositionslemma folie 134

3.2 Induktive Definitionen, Syntaxbäume und Ableitungen

  • Produktionen (
    ) erzeugen Wörter top-down: von einem Nichtterminal zu einem Wort hin
  • Induktive Definitionen (
    ) erzeugen Wörter bottom-up: von kleineren Wörtern zu größeren
  • Induktive Definition betrachtet nur Wörter aus
    Σ

Definitionen:

  • Präfix:
    uw:v.uv=w
  • Anzahl der Vorkommen:
    #a(w):=
    Anzahl der Vorkommen von a in w

Beweisvarianten:

  • "
    wLG(S)P(w)
    " wird immer schematisch mit Induktion über die Erzeugung von w
  • "
    P(w)wLG(S)
    " wird oft mit Induktion über
    |w|
    bewiesen, erfordert meist Kreativität

TODOs:

  • TODO: Folie 146 idk

Syntaxbaum

Ein Syntaxbaum für eine Ableitung mit einer Grammatik G ist ein Baum, sodass:

  • jedes Blatt mit einem Zeichen aus
    Σ{ϵ}
    beschriftet ist
  • jeder innere Knoten mit einem
    AV
    beschriftet ist, und falls die Nachfolger (von links nach rechts) mit
    X1,,XnVΣ{ϵ}
    , dann ist
    AX1Xn
    eine Produktion in P
  • ein Blatt
    ϵ
    der einzige Nachfolger seines Vorgängers ist

Für eine CFG und ein

wΣ sind folgende Bedingungen äquivalent:

  • AGw
  • wLG(A)
    (gemäß induktiver Definition)
  • Es gibt einen Syntaxbaum mit Wurzel A dessen Rand das wort W ist (Rand = Blätter von links nach rechts gelesen)

Mehrdeutigkeit:

  • Ein CFG G ist mehrdeutig gdw. es ein
    wL(G)
    gibt, das zwei verschiedene Syntaxbäume hat, also zwei verschiedene Syntaxbäume mit Wurzel S und Rand w
  • Eine CFL L heißt inhärent mehrdeutig gdw jede CFG G mit
    L(G)=L
    mehrdeutig ist

3.3 Die Chomsky-Normalform

Eine kontextfreie Grammatik G ist in Chomsky-Normalform gdw. alle Produktionen eine der Formen

Aa oder
ABC
haben.

Zu jeder CFG G kann man eine CFG G' in Chomsky-Normalform konstruieren mit

L(G)=L(G){ϵ}
Wer auf
ϵL(G)
nicht verzichten möchte: Füge am Ende wieder
Sϵ
hinzu.
Aϵ
wird auch als
ϵ
-Produktion bezeichnet

Zu jeder CFG

G=(V,Σ,P,S) kann man eine CFG G' konstruieren, die keine
ϵ
-Produktionen enthält, sodass gilt:
L(G)=L(G){ϵ}

AB
wird Kettenproduktion genannt

Zu jeder CFG

G=(V,Σ,P,S) kann man eine CFG G' konstruieren, die keine Kettenproduktionen enthält, sodass gilt
L(G)=L(G)

Konstruktion einer Chomsky-Normalform

Eingabe: Eine kontextfreie Grammatik

G=(V,Σ,P,S)

  • Füge für jedes
    aΣ
    das in einer rechten Seite der Länge
    2 vorkommt ein neues Nichtterminal
    Aa
    zu V hinzu, ersetze a in allen rechten Seiten der Länge
    2 durch
    Aa
    und füge
    Aaa
    zu P hinzu
  • Ersetze jede Produktion der Form
    AB1B2Bk(k3)

    durch
    AB1C2,C2B2C3,,Ck1Bk1Bk

    wobei
    C2,,Ck1
    neue Nichtterminale sind
  • Eliminiere alle
    ϵ
    -Produktionen
  • Eliminiere alle Kettenproduktionen

Greibach-Normalform

Eine CFG ist in Greibach-Normalform falls jede Produktion von der Form

AaA1An

ist

Zu jeder CFG G gibt es eine CFG G' in Greibach-Normalform mit

L(G)=L(G){ϵ}

3.4 Das Pumping-Lemma für kontextfreie Sprachen

Für jede kontextfreie Sprache L gibt es ein n

1, so dass sich jedes Wort
zL
mit
|z|n
zerlegen lässt in

z=uvwxy

mit

  • vxϵ
  • |vwx|n
  • iN. uviwxiyL

Siehe Folie 164

3.5 Algorithmen für kontextfreie Grammatiken

G=(V,Σ,P,S) ist eine CFG
Ein Symbol
XVΣ
ist:

  • Nützlich gdw es eine Ableitung
    SGwΣ
    gibt, in der
    X
    vorkommt
  • erzeugend gdw es eine Ableitung
    XGwΣ
    gibt.
  • erreichbar gdw es eine Ableitung
    SGαXβ
    gibt.

Nützlich: Nützliche Symbole sind erzeugend und erreichbar, aber nicht notwendigerweise umgekehrt.
Folgliches Ziel: Elimination der unnützen Symbole und der Produktionen, in denen sie vorkommen

Eliminiert man aus einer Grammatik

G

  • alle nicht erzeugenden Symbole, mit Resultat
    G1
    und
  • aus
    G1
    alle unerreichbaren Symbole, mit Resultat
    G2
    , dann enthält
    G2
    nur noch nützliche Symbole und
    L(G2)=L(G)

Die Menge der erzeugenden Symbole einer CFG ist berechenbar
Die Menge der erreichbaren Symbole einer CFG ist berechenbar
Das Wortproblem (

wL(G)?) ist für eine CFG G entscheidbar

3.6 Der Cocke-Younger-Kasami-Algorithmus (CYK)

Der CYK-Algorithmus entscheidet das Wortproblem für kontextfreie Grammatiken in Chomsky-Normalform.

Eingabe: Grammatik

G=(V,Σ,P,S) in Chomsky-Normalform,
w=a1anΣ

Vij:={AV|AGaiaj}
für
ij

Damit gilt:
wL(G)SV1n

Der CYK-Algorithmus berechnet die

Vij rekursiv nach wachsendem
ji
:
Vii={AV|(Aai)P}Vij={AV|ikj,BVik,CVk+1,j. (ABC)P}

für
i<j

Der CYK-Algorithmus entscheidet das Wortproblem

wL(G) für eine fixe CFG G in Chomsky-Normalform in Zeit
O(|w|3)

Erweiterung: Der CYK-Algorithmus kann so erweitert werden, dass er nicht nur das Wortproblem entscheidet, sondern auch die Menge der Syntaxbäume für die Eingabe berechnet.
Realisierung:

  • Vij
    ist die Menge der Syntaxbäume mit Rand
    aiaj
  • Statt A enthält
    Vij
    die Syntaxbäume, dessen Wurzel mit A beschriftet ist.

Vorschau:
Für CFGs sind folgende Probleme nicht entscheidbar:

  • Äquivalenz
  • Schnittproblem
  • Regularität
  • Mehrdeutigkeit

3.7 Abschlusseigenschaften

Seien kontextfreie Grammatiken

G1=(V1,Σ1,P1,S1) und
G2=(V2,Σ2,P2,S2)
gegeben. Dann kann man in linearer Zeit CFGs für

  • L(G1)L(G2)
  • L(G1)L(G2)
  • (L(G1))
  • (L(G1))R

    konstruieren. Die Klasse der kontextfreien Sprachen ist also unter Vereinigung, Konkatenation, Stern und Spiegelung abgeschlossen.

Verallgemeinerte kontextfreie Grammatiken mit Produktionen der Gestalt
Xr
, wobei r ein regulärer Ausdruck über
(VT)
ist, erzeugen kontextfreie Sprachen.

Die Menge der kontextfreien Sprachen ist nicht abgeschlossen unter Durchschnitt oder Komplement
Wegen de Morgan können die CFLs daher auch nicht unter Komplement abgeschlossen sein.

3.8 Kellerautomaten

Anwendungsgebiete:

  • Syntaxanalyse von Programmiersprachen
  • Analyse von Programmen mit Rekursion

Definition

Ein (nichtdeterministischer) Kellerautomat (PDA = Pushdown Automaton)

M=(Q,Σ,Γ,q0,Z0,δ,F) besteht aus:

  • Q: Endliche Menge von Zuständen
  • Σ
    endliches Eingabealphabet
  • Γ
    endliches Kelleralphabet
  • q0Q
    Anfangszustand
  • Z0Γ
    initialer Kellerinhalt
  • δ
    : Übergangsfunktion:
    δ:Q×(Σ{ϵ})×ΓPe(Q×Γ)
    ,
    Pe
    = mente aller endlichen Teilmengen
  • FQ
    Endzustände

Intuitive Bedeutung von

(q,α)δ(q,a,Z):
Wenn sich M in Zustand q befindet, das Eingabezeichen a liest und Z das oberste Kellerzeichen ist, so kann M im nächsten Schritt in q' übergehen und Z durch
α
ersetzen

Achtung:

  • α
    kann die Länge 0, 1 und mehr haben
  • Falls a =
    ϵ
    : kein Eingabezeichen wird gelesen

Eine Konfiguration eines Kellerautomaten M ist ein Tripel

(q,w,α) mit
qQ,wΣ
und
αΓ
.
Die Anfangskonfiguration von M für die Eingabe
wΣ
ist
(q0,w,Z0)

Intuitiv stellt eine Konfiguration
(q,w,α)
eine "Momentaufnahme" des Kellerautomaten dar:

  • Der momentane Zustand ist q
  • Der noch zu lesende Teil der Eingabe ist w
  • Der aktuelle Kellerinhalt ist
    α
    (das oberste Kellerzeichen ganz links stehend)

Die Transitionsrelation

M zwischen Konfigurationen:

  • (q,aq,Zα)M(q,w,βα)
    falls
    (q,β)δ(q,a,Z)
  • (q,w,Zα)M(q,w,βα)
    falls
    (q,β)δ(q,ϵ,Z)

Intuitive Bedeuting von

(q,w,α)M(q,w,α):
Wenn M sich in der Konfiguration
(q,w,α)
befindet, dann kann er in einen Schritt in die Nachfolgerkonfiguration
(q,w,α)
übergehen.
Achtung: Eine Konfiguration kann mehrere Nachfolger haben (Nichtdeterminisumus)

Akzeptanz

Ein PDA M akzeptiert

wΣ mit Endzustand gdw

  • (q0,w,Z0)M(f,ϵ,γ)
    für ein
    fF,γΓ
  • LF(M):={w|fF,γΓ. (q0,w,Z0)M(f,ϵ,γ)}

Ein PDA M akzeptiert

wΣ nit leeren Keller gdw

  • (q0,w,Z0)M(q,ϵ,ϵ)
    für ein
    qQ
  • Lϵ(M):={w|qQ. (q0,w,Z0)M(q,ϵ,ϵ)}

Konvention:
Die F-Komponente von M wird ausgeblendet, wenn nur

Lϵ(M) von interesse ist.

Bemerkungen: PDAs und das Wortproblem

  • Mit einem NFA A kann man
    wL(A)
    durch pararllele Verfolgung aller Berechnungspfade entscheiden, da sie alle endlich sind.
  • Bei einem PDA kann es wegen
    ϵ
    -Übergängen auch unendliche Berechnungen
    M
    geben, z.B.
    δ(q,ϵ,Z)=(q,ZZ):

    (q,w,Z)M(q,w,ZZ)M(q,w,ZZZ)M

    Diese sind wegen des möglicherweise wachsenden oder pulsierenden Kellers nicht einfach zu eliminieren.
  • Daher ist es a priori unklar, wie man mit einem PDA das Wortproblem entscheidet.

Ziel: Akzeptanz durch Endzustände und leeren Keller gleich mächtig
Endzustand

Leerer Keller:
Zu jedem PDA
M=(Q,Σ,Γ,q0,Z0,δ,F)
kann man in linearer Zeit einen PDA
M=(Q,Σ,Γ,q0,Z0,δ)
konstruieren mit
LF(M)=Lϵ(M)

(q0,w,Z0)M(f,ϵ,γ)(q0,w,Z0)M(q,ϵ,ϵ)

Leerer Keller
Endzustand
Zu jedem PDA
M=(Q,Σ,Γ,q0,Z0,δ)
kann man in linearer Zeit einen PDA
M=(Q,Σ,Γ,q0,Z0,δ,F)
konstruieren mit
Lϵ(M)=LF(M)

beweishilfen:

Erweiterungslemma:

(q,u,α)Mn(q,u,α)(q,uv,αβ)Mn(q,uv,αβ)
Zerlegungssatz:
Wenn
(q,w,Z1k)Mn(q,ϵ,ϵ)
, dann gibt es
ui,pi,ni
, so dass:
(pi1,ui,Zi)Mni(pi,ϵ,ϵ)     (i=1,,k)

und
w=u1uk,p0=q,pk=q,ni=n
.

3.9: Äquivalenz von PDAs und CFGs

CFG
PDA

Zu jeder CFG G kann man einen PDA M konstruieren, der mit leerem Keller akzeptiert, so dass

Lϵ(M)=L(G)
Konstruktion:
Zuerst werden alle Produktionen G in die Form
AbB1Bk

gebracht, wobei
bΣ{ϵ}

Methode: Für jedes
aΣ

  • füge ein neues
    Aa
    zu V hinzu
  • ersetze a rechts in P durch
    Aa
    (außer am Kopfende)
  • füge eine neue Produktion
    Aaa
    hinzu

Alle Produktionen in

G=(V,Σ,P,S) haben jetzt die Form
AbB1Bk

Der PDA wird wie folgt definiert:

M:=(q,Σ,V,q,S,Δ)

wobei

(Abβ)Pδ(q,b,A)(q,β)

also für alle

bΣ{ϵ} und
AV
:
δ(q,b,A):={(q,β)|(Abβ)P}

Jetzt gilt:

  • Für alle
    u,vΣ
    und
    γV
    und
    AV
    gilt:
    AGnuγ
    mit Linksableitung gdw
    (q,uv,A)Mn(q,v,γ)
  • L(G)=Lϵ(M)

PDA
CFG

Zu jedem PDA

M=(Q,Σ,Γ,q0,Z0,δ,F), der mit leerem Keller akzeptiert, kann man eine CFG G konstruieren mit
L(G)=Lϵ(M)

Konstruktion:
G:=(V,Σ,P,S)
mit
V:=Q×Γ×Q{S}
, wobei die Tripel mit [., ., .] notiert werden und P die folgenden Produktionene enthält:

  • S[q0,Z0,q]
    für alle
    qQ
  • Für alle
    δ(q,b,Z)(r0,Z1Zk)
    und für alle
    r1,,rkQ
    :
    [q,Z,rk]b[r0,Z1,r1][r1,Z2,r2][rk1,Zk,rk]

idee:

[q,Z,rk]Gw gdw.
(q,w,Z)M(rk,ϵ,ϵ)

Die
r1rk
sind potenzielle Zwischenzustände beim Akzeptieren der Teilwörter von
bu1uk=w
, die zu
Z1Zk
gehören. (Zerlegungssatz)

Lemma:

[q,Z,p]Gnw gdw
(q,w,Z)Mn(p,ϵ,ϵ)

Eine Sprache ist kontextfrei gdw. sie von einem Kellerautomaten akzeptiert wird.

3.10 Deterministische Kellerautomaten

Ein PDA ist deterministisch (DPDA) gdw. für alle

qQ,aΣ und
ZΓ

|δ(q,a,Z)|+|δ(q,ϵ,Z)|1

Eine CFL ist deterministisch (DCFL) gdw. sie von einem DPDA akzeptiert wird.
Man kann zeigen: Die CFL

{wwR|w{0,1}} ist nicht deterministisch, da man jeden DFA leicht mit einem DPDA simulieren kann:
fakt: jede reguläre Sprache ist eine DCFL

Eine Sprache erfüllt die Präfix-Bedingung gdw sie keine zwei Wörter enthält, so dass eine ein echtes präfix eines anderen ist.

Lemma:

DPDA M. L=Lϵ(M)DPDA M. L=LF(M) und L erfüllt die präfix-bedingung

Weitere Eigenschaften

  • Die Klasse der DCFLs ist unter Komplement abgeschlossen.
    -> Da die CFLs nicht unter Komplement abgeschlossen sind sind DCFLs eine echte Teilklasse der CFLs
  • Die Klasse der DCFLs ist weder unter Schnitt noch unter Vereinigung abgeschlossen.
  • Jede DCFL ist nicht inhärent mehrdeutig, d.h. sie wird von einer nicht-mehrdeutigen Grammatik erzeugt.
  • Das Wortproblem ist für DCFLs in linearer Zeit lösbar.

3.11 Tabellarischer überblick

Abschlusseigenschaften

Schnitt Vereinigung Komplement Produkt Stern
Regulär ja ja ja ja ja
DCFL nein nein ja nein nein
CFL nein ja nein ja ja

Entscheidbarkeit

Wortproblem Leerheit Äquivalenz Column 3
DFA
O(n)
ja ja ja
DPDA
O(n)
ja ja nein
()
CFG
O(n3)
ja nein
()
nein
()

Teil 2: Berechenbarkeit, Entscheidbarkeit, Komplexität

4. Berechenbarkeit, Entscheidbarkeit

Überblick:

  • Was kann man berechnen?
    • Welche Funktionen kann man in endlicher Zeit berechnen?
    • Welche Eigenschaften von Objekten können in endlicher Zeit entschieden werden?
  • Mit welchen Sprachen / Maschinen?
  • Was kann man in polynomieller Zeit berechnen?

4.1 Der Begriff der Berechenbarkeit

Eine Funktion

f:NkN ist intuitiv berechenbar, wenn es einen Algorithmus gibt, der bei Eingabe
(n1,,nk)Nk

  • nach endlich vielen Schritten mit Ergebnis
    f(n1,,nk)
    hält, falls
    f(n1,,nk)
    definiert ist,
  • und nicht terminiert, falls
    f(n1,,nk)
    nicht definiert ist.

Achtung: Berechenbarkeit setzt zwei verschiedene Dinge in Beziehung:

  • Algorithmen, d.h. endliche Wörter
  • Mathematische Funktionen, d.h. Mengen von Paaren.

Terminologie: Eine Funktion

f:AB ist

  • Total gdw.
    f(a)
    für alle
    aA
    definiert ist.
  • partiell gdw.
    f(a)
    auch undefiniert sein kann
  • echt partiell gdw
    f(a)
    nicht total ist

Es gibt nicht-berechenbare Funktionen

N{0,1}

Erinnerung: Eine Menge

M ist abzählbar, falls es eine injektive Funktion
MN
gibt.
Äquivalente Definitionen:

  • Entweder gibt es eine Bijektion
    M{0,,n}
    für ein
    nN
    , oder eine Bijektion
    MN
  • Es gibt eine Nummerierung der Elemente von M.

Eine Menge ist Überabzählbar wenn sie nicht abzählbar ist

Abzählbarkeiten:

  • Σ
    ist abzählbar, falls
    Σ
    endlich ist.
  • Die Menge der Algorithmen ist Abzählbar
  • Die Menge aller Funktionen
    N{0,1}
    ist überabzählbar
  • Wenn Algorithmen als endliche Wörter kodiert werden können, dann gibt es nicht-berechenbare Funktionen
    N{0,1}

Church-Turing-These

Der formale Begriff der Berechenbarkeit mit Turing-Maschinen (bzw.

λ-Kalkül, etc.) stimmt mit dem intuitiven Berechenbarkeitsbegriff überein.
Dies ist keine formale Aussage und nicht beweisbar, wird aber allgemein akzeptiert.

4.2 Turingmaschinen

Definition

Eine Turingmaschine ist ein 7-Tupel

M=(Q,Σ,Γ,δ,q0,,F) mit:

  • Q
    : Endliche Menge an Zuständen
  • Σ
    : Endliche menge des Eingabealphabets
  • Γ
    : Endliche Menge des Bandalphabets mit
    ΣΓ
  • δ:Q×ΓQ×Γ×{L,R,N}
    ist die Übergangsfunktion.
    δ
    darf partiell sein.
  • q0Q
    ist der Startzustand
  • ΓΣ
    ist das Leerzeichen
  • FQ
    ist die Menge der akzeptierenden oder endzustände

Annahme:

δ(q,a) ist nicht definiert für alle
qF
und
aΓ

Eine nichtdeterministische Turingmaschine hat eine Übergangsfunktion
δ:Q×ΓP(Q×Γ×{L,R,N})

Intuitive Bedeutung:

δ(q,a)=(q,b,D):

  • Wenn sich M im Zustand q befindet
  • und auf dem Band a liest
  • so geht M im nächsten Schritt in den Zustand q' über
  • überschreibt a mit b
  • und bewegt danach den Schreib-/Lesekopf nach rechts (falls D = R), nach links (falls D = L) oder nicht (falls D = N)

Konfiguration:

Eine Konfiguration einer Turingmaschine ist ein Tripel

(α,q,β)Γ×Q×Γ, welches modelliert:

  • Bandinhalt:
    αβ
  • Zustand: q
  • Kopf auf dem ersten Zeichen von
    β

Die Startkonfiguration der Turingmaschine bei Eingabe

wΣ ist
(ϵ,q0,w)

  • TODO: slide 232???

Akzeptanz

Eine Turingmaschine M akzeptiert die Sprache

L(M)={wΣ|qF,α,βΓ. (ϵ,q0,w)M(α,q,β)}

Eine Funktion

f:ΣΣ ist Turing-berechenbar gdw es eine Turingmaschine M gibt, so dass für alle
u,vΣ
gilt
f(u)=vrF.(ϵ,q0,u)M(,r,v)

Eine Funktion

f:NkN ist Turing-berechenbar gdw. es eine Turingmaschine M gibt, so dass für alle
n1,,nk,mN
gilt
f(n1,,nk)=mrF. (ϵ,q0,bin(n1)#bin(n2)##bin(nk))M(,r,bin(m))

wobei bin(n) die binärdarstellung der Zahl n ist.

Satz:
Die von Turingmaschinen akzeptierten Sprachen sind genau die Typ-0-Sprachen der Chomsky-Hierarchie.

Halten/Terminieren

Eine TM hält wenn sie eine Konfiguration

(α,q,αβ) erreicht und
δ(q,a)
nicht definiert oder (bei einer nichtdeterministischen TM)
δ(q,a)=
.
Nach Annahme hält eine TM immer, wenn sie einen Endzustand erreicht. Damit ist die von einer TM berechnete Funktion wohldefiniert.
Eine TM kann auch halten, bevor sie einen Endzustand erreicht.

Weiteres

Nichtdeterministische TMs
Zu jeder nichtdeterministischen TM N gibt es eine deterministische TM M mit

L(N)=L(M)

Mehrband-TMs / K-Band-TMs
Jede k-Band-TM kann effektiv durch eine 1-Band-TM simuliert werden

4.3 Programmieren mit Turingmaschinen

Die folgenden Basismaschinen sind leicht programmierbar:

  • Band i := Band i+1
  • Band i := Band i-1
  • Band i = 0
  • Band i = Band j

Seien

Mi=(Qi,Σ,Γi,δi,qi,,Fi), i=1,2
Die sequentielle Komposition (hintereinanderschaltung) von
M1
und
M2
wird wie folgt bezeichnet
M1M2

Sie ist wie folgt definiert:

M:=(Q1Q2,Σ,Γ1Γ2,δ,q1,,F2)

wobei (oE)

Q1Q2= und
δ:=δ1δ2{(f1,a)(q2,a,N)|f1F1,aΓ1}

Fallunterscheidung
Sind

f1 und
f2
Endzustände von M so bezeichnet

eine Fallunterscheidung, d.h. eine TM, die vom Endzustand
f1
von
M
nach
M1
übergeht, und von
f2
aus nach
M2

"Band = 0?"
Die Folgende TM wird "Band=0?" bzw. "Band i = 0?" genannt:

δ(q0,0)=(q0,0,R)δ(q0,)=(ja,,L)δ(q0,a)=(nein,a,N) für a0

wobei ja und nein Endzustände sind.

Schleife
Analog zur Fallunterscheidung kann man auch eine TM für eine Schleife konstruieren


die sich wie while Band
i0
do
M
verhält.

Fazit:
Mit TM kann man imperativ programmieren:

  • :=
  • ;
  • if
  • while

4.4 WHILE- und GOTO-Berechenbarkeit

WHILE

strukturierte Programme mit while-Schleifen
GOTO
Assembler

WHILE- und GOTO-Berechenbarkeit werden definiert und dessen Äquivalenz mit Turing-berechenbarkeit wird gezeigt.

WHILE-Programme:

Syntax von WHILE-Programmen:


wobei
X
eine der Variablen
x0,x1,
und C eine der Konstanten
0,1,
sein kann.

Die modifizierte Differenz ist

m˙n:={mnfalls mn0sonst 

Semantik von WHILE-Programmen (informell):

  • xi:=xj+n
    : Neuer Wert von
    xi
    ist
    xj+n
  • xi:=xjn
    : Neuer Wert von
    xi
    ist
    xj˙n
  • P1;P2
    : Führe zuerst
    P1
    und dann
    P2
    aus
  • WHILE
    xi0
    DO
    P
    END: Führe
    P
    aus bis die Variable
    xi
    (wenn je) den Wert 0 annimmt.

Syntaktische Abkürzungen:

  • xi:=xjxi:=xj+0
  • xi:=nxi:=xj+n
    (wobei
    xj
    nirgends zugewiesen wird)
  • TODO: finish

While-Berechenbarkeit

Eine Funktion

f:NkN ist WHILE-berechenbar gdw. es ein WHILE-Programm P gibt, sodass für alle
n1,,nkN
:
P, gestartet mit
n1,,nk
in
x1,,xk
(0 in den anderen Variablen)

  • Terminiert mit
    f(n1,,nk)
    in
    x0
    , falls
    f(n1,,nk)
    definiert ist,
  • terminiert nicht, falls
    f(n1,,nk)
    undefiniert ist.

Turingmaschinen können WHILE-Programme simulieren:

WHILE
TM

Jede WHILE-berechenbare Funktion ist auch Turing-berechenbar, da:

  • jede Programmvariable auf 1 Band speichern
  • alle Konstrukte der WHILE-Sprache sind von Mehrband-TMs simulierbar
  • Mehrband-TMs sind von einband-TMs simulierbar.

GOTO-Programme:

Ein GOTO-Programm ist eine Sequenz von markierten Anweisungen:

M1:A1; M2:A2; ; Mk:Ak

(wobei alle Marken verschieden und Optional sind)

Mögliche Anweisungen

Ai sind:

  • xi:=xj+n
  • xi:=xjn
  • GOTO
    Mi
  • IF
    xi=n
    GOTO
    Mj
  • HALT

Die Semantik ist wie erwartet.

WHILE
GOTO

Jedes WHILE-Programm kann durch ein GOTO-Programm simuliert werden.

GOTO
WHILE

Jedes GOTO-Programm kann durch ein WHILE-Programm simuliert werden.
Für beweis: siehe Slide 253

Korollar:
WHILE- und GOTO-Berechenbarkeit sind äquivalent
Kleensche Normalform:
Jedes WHILE-Programm ist zu einem WHILE-Programm mit genau einer WHILE-Schleife äquivalent

TM
GOTO

Jede TM kann durch ein GOTO-Programm simuliert werden.
Übersetzung siehe Folien 256,257

LOOP-Berechenbarkeit / LOOP-Programme

Statt while-Schleifen werden nun for-Schleifen betrachtet.
LOOP-Programme haben die gleiche Syntax wie WHILE-Programme, aber statt der WHILE-Schleifen gibt es nur LOOP-Schleifen mit folgender Syntax:

LOOP X DO P END
Semantik: Führe P genau n mal aus, wobei n der Anfangswert von X ist.
Zuweisungin an X in P ändern die Anzahl n der Schleifendurchläufe nicht.

Loop-berechenbarkeit

Eine Funktion

f:NkN ist LOOP-berechenbar gdw. es ein LOOP-Programm P gibt, so dass für alle
n1,,nkN
:
P, gestartet mit
n1,,nk
in
x1,,xk
(0 in den anderen Variablen) terminiert mit
f(n1,,nk)
in
x0

Alle LOOP-berechenbaren Funktionen sind total, beweis via Induktion über die Syntax der LOOP-Programme.

FAKT: WHILE-Schleifen können LOOP-Schleifen simulieren, aber LOOP-Schleifen können WHILE-Schleifen nicht simulieren

4.5 Unentscheidbarkeit des Halteproblems

Ziel: Es ist unentscheidbar, ob ein Programm terminiert.

Definition:

Eine Menge

A(N oder Σ) ist entscheidbar gdw ihre charakteristische Funktion
χA(x):={1falls xA0falls xA

berechenbar ist.

Eine Eigenschaft/Problem P(x) ist entscheidbar gdw.

{x|P(x)} entscheidbar ist.

Komplement:
Die entscheidbaren Mengen sind abgeschlossen unter Komplement: Ist

A entscheidbar, so auch
A

Kodierung einer TM als Wort über

Σ={0,1}:
Siehe Folie 300

Nicht jedes Wort über

{0,1} kodiert eine TM.
Sei
M^
eine beliebige feste TM:
Die zu einem Wort
w{0,1}
gehörige TM
Mw
ist
Mw:={Mfalls w Kodierung von M istM^sonst

Die Kondierung von syntaktischen Objekten (Programmen, Formeln, etc.) als Zahlen wird Gödelisierung genannt. Die Zahlen werden als Gödelnummern bezeichnet.

Definitionen:

  • M[w]
    ist abgekürzt für "Maschine
    M
    mit Eingabe
    w
    "
  • M[w]
    bedeutet, dass
    M[w]
    terminiert/hält

Spezielles Halteproblem

Gegeben: Ein Wort

w{0,1}
Problem: Hält
Mw
bei Eingabe w?
Als Menge:
K:={w{0,1}|Mw[w]}

Das Spezielle Halteproblem K ist nicht entscheidbar.
Beweis: Folie 303, 304

(Allgemeines) Halteproblem

Gegeben: Wörter

w,x{0,1}
Problem: Hält
Mw
bei Eingabe x?
Als Menge:
H:={w#x|Mw[x]}

Das Halteproblem H ist nicht entscheidbar.
Beweis: Wäre H entscheidbar, dann trivialerweise auch K:

χK(w)=χH(w,w)

Reduktion

Eine Menge

AΣ ist reduzierbar auf eine Menge
BΓ
gdw. es eine totale und berechenbare Funktion
f:ΣΓ
gibt mit
wΣ. wAf(w)B

Es wird dann

AB geschrieben
Intuition:

  • B
    ist mindestens so schwer zu lösen wie
    A
    .
  • ist
    A
    unlösbar, dann auch
    B
    .
  • Ist
    B
    lösbar, dann erst recht A.

Lemma:
Falls

AB und
B
ist entscheidbar, so ist auch
A
entscheidbar.
Falls
AB
und
A
ist unentscheidbar, so ist
B
auch unentscheidbar.

Halteproblem auf leerem Band

Das Halteproblem auf leerem Band,

H0, ist unentscheidbar.
H0:={w{0,1}|Mw[ϵ]}

Fazit:

Es gibt keine allgemeine algorithmische Methode, um zu entscheiden, ob ein Programm terminiert.
Die Unentscheidbarkeit vieler Fragen über die Ausführung von Programmen folgt durch Reduktion des Halteproblems:

  • Kann ein WHILE-Programm mit einer bestimmten Eingabe einen bestimmten Programmpunkt erreichen?
    Der Spezialfall Programmpunkt = Programmende ist das Halteproblem
  • Kann Variable
    x7
    bei einer bestimmten Eingabe je den Wert
    232
    erreichen?
    Redunktion: Ein Programm P hält gdw während der ausführung von
    P;x7:=232

    Variable
    x7
    den Wert
    232
    erreicht.
    (OE:
    x7
    kommt in P nicht vor)

Hilberts 10. Problem:
Es ist unentscheidbar, ob ein Polynom in n Variablen mit ganzzahligen Koeffizienten eine ganzzahlige Nullstelle hat

(Zn)
Beweis:
HH10

-> Es müssen nicht immer TMs sein

Bemerkungen

  • Nicht alle unentscheidbaren Probleme sind gleich schwer
  • Z.B. gilt: Das Äquivalenzproblem
    Eq:={u#v|Mu berechnet die gleiche Funktion wie Mv}

    ist schwerer als das Halteproblem:

4.6 Semi-Entscheidbarkeit

Definition

Eine Menge

A(N oder Σ) ist semi-entscheidbar (s-e) gdw.
χa(x):={1falls xAfalls xA

berechenbar ist.

Entscheidbarkeit:
Eine Menge

A ist entscheidbar gdw. sowohl
A
als auch
A
s-e sind.

Rekursiv Aufzählbar

Eine Menge A ist rekursiv aufzählbar (recursively enumerable) gdw.

A= oder es eine berechenbare totale Funktion
f:NA
gibt, so dass
A={f(0),f(1),f(2),}

Bemerkung:

  • Es dürfen Elemente doppelt auftreten
    (f(i)=f(j) für ij)
  • Die Reihenfolge ist beliebig

Warnung:

  • Rekursiv aufzählbar
    Abzählbar
  • Aber: Rekursiv aufzählbar
    abzählbar
  • Aber nicht umgekehrt: Jede Sprache ist abzählbar, aber nicht jede Sprache ist rekursiv aufzählbar (siehe unten)

Lemma:
Eine Menge

A ist rekursiv aufzählbar gdw. sie semi-entscheidbar ist.
Beweis: 317, 318

Äquivalente Aussagen

  • A
    ist Semi-entscheidbar
  • A
    ist rekursiv aufzählbar
  • χA
    ist berechenbar
  • A=L(M)
    für eine TM
    M
  • A
    ist Definitionsbereich einer berechenbaren Funktion
  • A
    ist Wertebereich einer berechenbaren Funktion

K ist Semi-entscheidbar
Die Menge

K={w|Mw[w]} ist semi-entscheidbar.
Beweis:
Die funktion
χk
ist wie folgt Turing-berechenbar:
Bei Eingabe w simuliere die Ausführung von
Mw[w]
; gib 1 aus

Komplement

K ist nicht semi-entscheidbar.
Semi-entscheidbarkeit ist nicht abgeschlossen unter Komplement

4.7: Die Sätze von Rice und Shapiro

Die von der TM

Mw berechnete Funktion wird als
φw
bezeichnet.
Es werden implizit nur einstellige Funktionen betrachtet.

Der Satz von Rice

Sei F eine Menge berechenbarer Funktionen.
Es gelte weder

F= noch
F=alle berechenbaren Funktionen
("F nicht trivial")
Dann ist unentscheidbar, ob die von einer gegebenen TM
Mw
berechnete Funktion Element F ist, d.h. ob
φwF

Alle nicht-trivialen semantischen Eigenschaften von Programmen sind unentscheidbar.

Warnung:
Im Satz von Rice geht es um die von einem Programm berechnete Funktion (Semantik), nicht um den Programmtext (Syntax). Beispielsweise ist es entscheidbar, ob ein Programm

  • länger als 5 Zeilen ist
  • Eine Zuweisung an die Variable
    x17
    enthält.

Der Satz von Rice-Shapiro

Sei

F eine Menge berechenbarer Funktionen.
Ist
CF:=w|φwF
semi-entscheidbar,
so gilt für alle berechenbaren
f
:
fF
es gibt eine endliche Teilfunktion
gf
mit
gf

Terminierend:

Ein Programm ist terminierend gdw. es für alle eingaben hält.

  • Die Menge der terminierenden Programme ist nicht semi-entscheidbar
  • Die Menge der nicht-terminierenden Programme ist nicht semi-entscheidbar

Grenzen automatischer Terminationsanalyse von Programmen

  • Termination ist unentscheidbar (Rice): Klare Ja/Nein Antwort unmöglich.
  • Termination ist nicht semi-entscheidbar (Rice-Shapiro) Es gibt kein Zertifizierungs-programm das alle terminierenden Programme erkennt.
  • Nicht-Termination ist nicht semi-entscheidbar (Rice-Shapiro): Es gibt keinen perfekten bug finder der alle nicht-terminierenden Programme erkennt.

Aber es gibt mächtige heuristische Verfahren, die für relativ viele Programme aus der Praxis (Gerätetreiber)

  • Termination beweisen können, oder
  • Gegenbeispiele finden können.

4.8: Das Postsche Korrespondenzproblem

Definition

Postsche Korrespondenzproblem, Post's Correspondence Problem, PCP:
Gegeben: Eine endliche Folge

(x1,y1),,(xk,yk), wobei
xi,yiΣ+

Problem: Gibt es eine Folge von Indizes
ii,,in{1,,k}
,
n>0
, mit
xi1xin=yi1yin
?
Dann wird
i1,,in
als eine Lösung der Instanz
(x1,y1),,(xk,yk)
des PCP Problems bezeichnet.

Entscheidbarkeit des PCP

Das PCP ist semi-entscheidbar
Beweis:
Die möglichen Lösungen werden der Länge nach aufgezählt und auf korrektheit überprüft.

Modifiziertes PCP, MPCP

Gegeben: wie beim PCP
Problem: Gibt es eine Lösung

i1,,in mit
i1=1
?

Reduzierbarkeit des MPCP

MPCPPCP
HMPCP

Unentscheidbarkeit des PCP
Aus

HPCP folgt direkt, dass das PCP unentscheidbar ist
Das PCP ist auch für
Σ={0,1}
unentscheidbar.

Weitere bemerkungen:

  • Das PCP ist entscheidbar falls
    |Σ|=1
  • Das PCP ist entscheidbar falls
    k2
  • Das PCP ist unentscheidbar falls
    k5
  • Für
    k=3,4
    ist noch offen, ob das PCP unentscheidbar ist.

4.9 Unentscheidbare CFG-Probleme

  • Für DFAs ist fast alles entscheidbar:
    L(A)=,L(A)=L(B),
  • Für TMs ist fast nichts entscheidbar:
    L(M)=,L(M1)=L(M2),
  • Für CFGs ist manches entscheidbar
    (L(G)=,wL(G))
    , und manches unentscheidbar

Unentscheidbare Probleme:

Für CFGs

G1,G2 sind folgende Probleme unentscheidbar:

  • P1
    : ist
    L(G1)L(G2)=
    ? -> Beweis: Folie 340
  • P2
    : ist
    |L(G1)L(G2)|=
    ? -> Beweis: Folie 343
  • P3
    : ist
    L(G1)L(G2)
    kontextfrei? -> Beweis: Folie 343
  • P4
    : ist
    L(G1)L(G2)
    ? -> Beweis: Folie 344
  • P5
    : ist
    L(G1)=L(G2)
    ? -> Beweis: Folie 344

Da

L(G1) und
L(G2)
aus dem Beweis zu
P1
DCFL sind, gilt sogar, dass die Probleme
P1
bis
P4
bereits für DCFLs unentscheidbar sind.

Für zwei DPDAs

M1 und
M2
ist
L(M1)=L(M2)
jedoch entscheidbar.

Weitere unentscheidbare Probleme:

Für eine CFG

G sind folgende Probleme unentscheidbar:

  • Ist
    G
    mehrdeutig?
  • Ist
    L(G)
    regulär?
  • Ist
    L(G)
    deterministisch (DCFL)?

Für eine CFG

G und einen RE
α
ist
L(G)=L(α)
unentscheidbar

4.10 Primitiv Rekursive Funktionen

Es werden Funktionen

NkN,k0 betrachtet.
N0N
wird mit
N
identifiziert,
c()
mit
c
.
Definition der primitiv rekursiven Funktionen

  • Fixe Basisfunktion: z.B.
    s(x)=x+1
  • Funktionskomposition: z.B.
    f(x,y)=g(x,h(x,y))
  • Fixe Art der Rekursion: z.B.
    f(0)=1f(n+1)=nf(n)

Basisfunktionen

  • Die konstante Funktion 0
  • Die Nachfolgerfunktion
    s(n)=n+1
  • Die Projektionsfunktionen
    πik:NkN,1ik:

    πik(x1,,xk)=xi

Komposition

Die Komposition von

g und
h1,,hk
erzeugt die Funktion
f

f(x¯)=g(h1(x¯),,hk(x¯))

wobei

x¯=(x1,,xn) und
f:NnNg:NkNhi:NnN(i=1,,k)

Primitive Rekursion

Das Schema der primitiven Rekursion erzeugt aus

g und
h
die Funktion
f

f(0,x¯)=g(x¯)f(m+1,x¯)=h(f(m,x¯),m,x¯)

wobei

x¯=(x1,,xn) und
f:Nn+1Ng:NnNh:Nn+2N

Primitiv Rekursive Funktionen

Die Menge PR der primitiv rekursiven Funktionen ist die folgende induktiv definierte Teilmenge aller Funktionen

NkN,k0:

  • Die Basisfunktinen 0,
    s
    , und
    πik
    sind primitiv rekursiv
  • Sind
    g
    und
    hi
    primitiv rekursiv, dann auch ihre Komposition
    f(x¯)=g(h1(x¯),,hk(x¯))
  • Sind
    g
    und
    h
    primitiv rekursiv, dann auch die mit primitver Rekursion definierte Funktion
    f(0,x¯)=g(x¯)f(m+1,x¯)=h(f(m,x¯),m,x¯)

Jede primitiv-rekursive Funktion ist total

Erweiterte Komposition

f ist eine erweiterte Komposition der Funktionen
g1,,gk
falls
f(x1,,xn)=t

so dass
t
ein Ausdruck ist, der nur aus den Funktionen
g1,,gk
und den Variablen
x1,,xn
besteht.
Eine erweiterte Komposition von PR Funktionen ist wieder PR

Das erweiterte Schema der primitiven Rekursion erlaubt

f(0,x¯)=t0f(m+1,x¯)=t

wobei

  • t0
    enthält nur PR Funktionen und die
    xi
  • t
    enthält nur
    f(m,x¯)
    , PR Funktionen,
    m
    und die
    xi

Das erweiterte Schema der primitiven Rekursion führt nicht aus PR hinaus.

Moral:
Primitive Rekursion erlaubt

f(m+1,x¯)=f(m,x¯)

Prädikate

Sei

P(x) ein Prädikat, d.h. ein logischer Ausdruck, der in Abhängigkeit von
xN0
den Wert true oder false liefert.
Dann kann P in natürlicher Weise eine Funktion
P^:N{0,1}

zugeordnet werden:
P^(x)=1
gdw.
P(x)=
true

P ist primitiv rekursiv genau dann, wenn
P^
primitiv rekursiv ist.

Ist

P primitiv rekursiv, dann auch der beschränkte max-Operator
max{xn|P(x)}=:q(n)

wobei
max:=0

Ist

P primitiv rekursiv, dann auch der beschränkte Existenzquantor
xn.P(x)=:Q(x)

4.11 PR = LOOP

Hauptproblem bei LOOP

PR:
Kodierung aller Variablen eines LOOP-Programms in einer Zahl

Cantorsche Paarungsfunktion

Die Cantorsche Paarungsfunktion

c(x,y):=(x+y+12)+x=(x+y)(x+y+1)/2+x

ist eine Bijektion zwischen

N2 und
N

Die funktion

x(x2) ist PR:
(02)=0(n+12)=(n2)+n

Mit Komposition ist auch

c PR:
c(x,y)=(x+y+12)+x

Mit

c kodiert man
k+1
Tupel:
n0,n1,,nk:=c(n0,c(n1,,c(nk,0)))

Die umkehrfunktionen

p1 und
p2
von c werden gebraucht:
p1(c(x,y))=xp2(c(x,y))=y

Damit können Projektionsfunktionen auf Tupeln definiert werden

d0(n):=p1(n)d1(n):=p1(p2(n))dk(n):=p1(p2p2(n)),k-mal p2

Sind

p1,p2 PR, so auch
d0,,dk

Die Umkehrfunktionen von

c sind PR definierbar:
p1(n)=max{xn|yn.c(x,y)=n}p2(n)=max{yn|xn.c(x,y)=n}

PR = LOOP:
Die Primitiv rekursiven sind genau die LOOP-berechenbaren Funktionen.

Reversible Kodierung von Zahlenfolgen als Zahlen

  • {0,,k}
    : Kodiere
    (i1,,in)
    als Zahl
    i1in
    zur Basis
    k+1
  • Nn
    : Mit iterierter Paarfunktion
    c:i1,,in

    NB: n muss beim Dekodieren bekannt sein, denn z.B.
    1=c(0,1)=c(0,c(0,1))
  • N
    : Auch mit
    reversibel kodierbar
  • N
    : Kodiere
    (i1,,in)
    als
    2i13i2pnin
    , wobei
    pn
    die n-te Primzahl ist. Dekodierung = Primzahlzerlegung

4.12 Die
μ
-rekursiven Funktionen

  • Mit PR kann man nur beschränkt suchen:
    n,,0
  • Die unbeschränkte Suche
    0,
    erfordert so etwas wie
    f(n)=f(n+1)
  • Der
    μ
    -Operator formalisiert diese Art der Suche
  • Damit erhält man alle berechenbaren Funktionen
  • Andere Such- byw. Rekursionsschemata sind (im Prinzip!) nicht notwendig.

Notation:

f(n)= bedeutet "
f(n)
ist undefiniert"

μ
-Operator

Sei

f:Nk+1N eine (nicht notwendigerweise totale) Funktion. Die durch Anwendung des
μ
-Operators entstehende Funktion
μf:NkN
ist definiert durch:
x{min{nN|f(n,x)=0 falls ein solches n existiert und f(m,x)für alle mnsonst

Intuitiv:

μf(x)=find(0,x)find(n,x)=if f(n,x)=0 then n else find(n+1,x)

μ
-rekursiv

Die Menge der

μ-rekursiven Funktionen ist induktiv wie folgt definiert:

  • Die Basisfunktionen
    0,+1,πik
    sind
    μ
    -rekursiv/
  • Wenn eine Funktion durch Komposition, primitive Rekursion oder den
    μ
    -Operator aus
    μ
    -rekursiven Funktionen definiert werden kann, ist sie
    μ
    -rekursiv

μ
R=WHILE

Die

μ-rekursiven sind genau die WHILE-berechenbaren Funktionen.

Kleene:
Für jede n-stellige

μ-rekursive Funktion
f
gibt es zwei
n+1
-stellige PR Funktionen
h
und
h
, so dass
f(x)=h(μh(x),x)

4.12 Die Ackermann-Funktion

a(0,n)=n+1a(m+1,0)=a(m,1)a(m+1,n+1)=a(m,a(m+1,n))

  • Dies ist keine PR Definition
  • Aber:
    a
    ist nicht PR
  • Ziel: a ist berechenbar, total, aber nicht PR

Fakt:
Die Ackermann-Funktion ist (OCaml-)berechenbar.

Lemma:
Die Ackermann-Funktion ist total.

Lexikographische Ordnung

(m,n)>(m,n):⇔m>m(m=mn>n)

Die lexikographische Ordnung auf

N×N terminiert

Warnung: Kein Beweise der Totalität einer rekursiven Funktion:
"denn in jedem rekursiven Aufruf wird eines der Argumente kleiner"

Lemma:
Für jede PR-Funktion

f:NkN gibt es ein
tN
, so dass
xNk.f(x)<a(t,maxx)

Satz:
Die Ackermann-Funktion ist nicht PR

Oberflächlich intuitiv: Die Ackermann-Funktion wächst schneller als alle PR-Funktionen
Genauer: Die Funktion

na(n,n) wächst schneller als alle PR funktionen
Intuitiver Grund:

  • Für fixes
    t
    ist
    na(t,n)
    PR, denn dies ist
    At
  • At
    bracht aber eien PR Definition der Länge
    O(t)
  • Um
    na(n,n)
    PR zu berechnen, müsste die Länge der PR Definition dynamisch mit der Eingabe wachsen

Da die Ackermann-Funktion total, berechenbar und nicht PR ist wurde gezeigt, dass die PR Funktionen eine echte Teilklasse der berechenbaren totalen funktionen ist.

5. Komplexitätstheorie

  • Was ist mit beschränkten Mitteln (zeit & platz) berechenbar?
  • Wieviel Zeit&Platz braucht man, um ein bestimmtes Problem / Sprache zu entscheiden?
  • Komplexität eines Problems, nicht eines Algorithmus

Zentrale Frage:
Für welche Probleme gibt es / gibt es keine polynomielle Algorithmen?

Komplexitätsklasse P:
P = die von DTM in polynomieller Zeit lösbaren Probleme, = die "leichten" Probleme (feasible problems)

  • AP
    wird durch Angabe eines Algorithmus bewiesen, z.B. CYK beweist:
    {(G,w)|GCFG,wL(G)}P
  • AP
    zu zeigen ist viel schwieriger! Für sehr viele Probleme ist es nicht bekannt, ob sie zu P gehören oder nicht.

Viele der wichtigsten Probleme der Informatik sind der Gestalt:

Gegeben X, gibt es Y mit R(X,Y)?

  • SAT:
    X
    = Boole'sche Formel,
    Y
    = Belegung der Variablen von
    X
    ,
    R(X,Y):="Y erfüllt X"
  • HAMILTONKREIS:
    X
    = Graph,
    Y
    = Kreis von
    X
    ,
    R(X,Y):="Y besucht alle Knoten von X genau einmal"
  • EULERKREIS:
    X
    = Graph,
    Y
    = Kreis von
    X
    ,
    R(X,Y):="Y besucht alle Kanten von X genau einmal"

Die

Y sind "Lösungskandidaten". In allen diesen Problemen:

  • Prüfen ob ein Kandidat tatsächlich eine Lösung ist, ist in P.
  • Es gibt jedoche exponentiell viele Kandidaten.
  • Deshalb hat ein naiver Suchalgorithmus, der alle Kandidaten aufzählt und prüft, exponentielle Laufzeit.

Für kein solches Problem ist es bewiesen worden, dass es nicht in P liegt.
Die Frage, ob alle solche Probleme in P liegen, ist die wichtigste offene Frage der Informatik.

Äquivalente Formulierung
Diese Probleme können nichtdeterministisch in polynomieller Zeit gelöst werden: Wähle einen Kandidaten und prüfe, ob er eine Lösung ist.

Komplexitätsklasse NP:
NP = die von NTM in polynomieller Zeit lösbaren Probleme

Zentrale Frage:
P = NP ?

5.1 Die Komplexitätsklasse P

Berechnungsmodell:
DTM: deterministische Mehrband-TM

Definition:

timeM(w):= Anzahl der Schritte bis die DTM
M[w]
hält
N{}

Sei
f:NN
eine totale Funktion.
Klasse in der Zeit
f(n)
entscheidbaren Sprachen:
TIME(f(n)):={AΣ| DTM M. A=L(M)wΣ. timeM(w)f(|w|)}

Merke:

  • n
    ist implizit die Länge der Eingabe
  • Die DTM entscheidet die Sprache
    A
    in
    f(n)
    Schritten

Es werden nun Polynome mit Koeffizienten

ak,,a0N betrachtet:
p(n)=aknk++a1n+a0

Definition:
P:=p PolynomTIME(p(n))

Damit gilt auch

P=k0TIME(O(nk))

wobei

TIME(O(f)):=gO(f)TIME(g)

Bemerkungen

  • O(nlogn)O(n2)
  • nlogn,2nO(nk)
    für alle
    k

Analog zu Sprachen nennen wir eine Funktion

f:NN in polynomieller Zeit berechenbar, gdw. es eine DTM
M
gibt, die
f
berechnet und
timem(w)p(|w|)
für ein Polynom
p

  • Warum P und nicht (z.B.)
    O(n17)
    ?
    Um robust bzgl. Maschinenmodell zu sein:
    1-Band DTM braucht
    O(t2)
    Schritte um t schritte einer k-Band DTM zu simulieren.
    fast alle bekannten "vernünftigen" Maschinenmodelle lassen sich von einer DTM in polynomieller Zeit simulieren.
    Offen: Quantencomputer
  • Warum TM?
    Historisch. Ebenfalls möglich: (z.B.) WHILE.
    Aber zwei mögliche Kostenmodelle:
    • Uniform:
      xi:=xj+n
      kostet 1 Zeiteinheit
    • Logarithmisch:
      xi:=xj+n
      kostet
      logxj
      Zeiteinheiten

5.2 Die Komplexitätsklasse NP

Berechnungsmodell:
NTM = nichtdeterministische Mehrband-TM

  • NP ist die Klasse der Sprachen, die von einer NTM in polynomieller Zeit akzeptiert werden
  • D.h. Eine Sprache A liegt in NP gdw. es ein Polynom
    p(n)
    und eine NTM M gibt sodass:
    • L(M)=A
      und
    • für alle
      wA
      kann
      M[w]
      in
      p(|w|)
      Schritten akzeptieren, d.h. einen Endzustand erreichen.

Definition

ntimem(w):={minimale Anzahl der Schritte bis NTM M[w] akzeptiertfalls wL(M)0falls wL(M)

Sei

f:NN eine totale Funktion
NTIME(f(n)):={AΣ|NTM M. A=L(M)wΣ. ntimeM(w)f(|w|)}NP:=p PolynomNTIME(p(n))

bemerkungen:

  • PNP
  • Seit etwa 1970 ist offen ob P = NP.

Weitere Bemerkungen zur Definition von NP:
Akzeptierende NTM

M

  • braucht für
    wL(M)
    nicht zu halten
  • kann für
    wL(M)
    auch beliebig lange berechnungsfolgen haben.

Äquivalente Definition NP' von NP
Die NTM

M[w] muss nach maximal
p(|w|)
schritten halten.
NP'
NP: Klar
NP
NP': falls
A
NP mit Polynom
p
und NTM
M
, so kann ein NTM
M
konstruiert werden mit
L(M)=A
, so dass
M[w]
immer innerhalb von polynomieller Zeit hält.

  • Eingabe
    w
  • Schreibe
    p(|w|)
    auf ein getrenntes Band ("timer")
  • Simuliere
    M[w]
    , aber dekrementiere timer nach jedem Schritt
  • Wird timer = 0, ohne dass
    M
    gehalten hat, halte in einem nicht-Endzustand ("timeout")

Erinnerung:
Viele Probleme sind von der Art, dass

  • schwer ist, zu entscheiden, ob sie lösbar sind,
  • leicht ist, zu entscheiden, ob ein Lösungsvorschlag eine Lösung ist.

Formalisierung:
Definition:
Sei

M eine DTM mit
L(M){w#c|wΣ,cΔ}

  • Falls
    w#cL(M)
    , so heißt
    c
    Zertifikat für
    w
  • M
    ist ein polynomiell beschränkter Verifikator für die Sprache
    {wΣ|cΔ. w#cL(M)}
    falls es ein Polynom
    p
    gibt, so dass
    timeM(w#c)p(|w|)

NB (merke):
In Zeit

p(n) kann M maximal die ersten p(n) Zeichen von
c
lesen. Daher genügt für
w
ein Zertifikat der Länge
p(w)

Satz:

A NP gdw. es einen polynomiell beschränkten Verifikator für A gibt

Fazit:

  • P sind die Sprachen, bei denen
    wL
    schnell entschieden werden kann
  • NP sind die Sprachen, bei denen ein Zertifikat für
    wL
    schnell verifiziert/überprüft werden kann.

Intuition:
Es ist leichter, eine Lösung zu verifizieren als zu finden.
Aber:
Noch wurde von keiner Sprache bewiesen, dass sie in NP\P liegt

5.3 NP-Vollständigkeit

  • Polynomielle Reduzierbarkeit
    p
  • NP-vollständige Probleme = härteste Probleme in NP, alle anderen Probleme in NP darauf polznomiell reduzierbar
  • SAT ist NP-vollständig

Definition

Sei

AΣ und
BΓ

Dann ist
A
polynomiell reduzierbar auf
B
,
ApB
, gdw. es eine totale und von einer DTM in polynomieller Zeit berechenbare Funktion
f:ΣΓ
gibt, so dass für alle
wΣ

wAf(w)B

Die Relation

p ist transitiv, da $p_2(p_1(n)) ein Polynom ist falls
p1
und
p2
polynome sind.

Die Klassen P und NP sind unter polynomieller Reduzierbarkeit nach unten abgeschlossen:

ApBP/NPAP/NP

NP-Schwer:
Ein Problem ist NP-Schwer, wenn es mindestens so schwer wie alles in NP ist:

  • Eine Sprache
    L
    ist NP-Schwer gdw.
    ApL
    für alle
    ANP
  • Eine Sprache
    L
    ist NP-Vollständig gdw.
    L
    NP-schwer ist und
    LNP
  • NP-Vollständige Probleme sind die schwierigsten Probleme in NP: alle Probleme in NP sind polynomiell auf sie reduzierbar

Lemma:
Es gilt P=NP gdw. ein NP-vollständiges Problem in P liegt.

Starke vermutung:

  • P
    NP
  • d.h. kein NP-vollständiges Problem ist in P

Aussagenlogik

Syntax der Aussagenlogik:

  • Variablen:
    X  x|y|z|
  • Formeln:
    F  X|¬F|(FF)|(FF)|X

Man darf einige Klammern weglassen:

  • Äußerste Klammern:
    (xy)z
    statt
    ((xy)z)
  • Assoziativität:
    (xyz)¬x
    statt
    ((xy)z)¬x

Abkürzungen

  • F1F2¬F1F2
  • i=1nFiF1Fn

Semantik der Aussagenlogik:

  • Eine Belegung ist eine Funktion von Variablen auf
    {0,1}
    .
    Bsp:
    σ={x0,y1,z0,}
  • Belegungen werden mittels Wahrheitstabellen auf Formeln erweitert.
    Bsp:
    σ((¬xy)(x¬z))=1
  • Eine Formel F ist erfüllbar gdw. es eine Belegung
    σ
    gibt mit
    σ(F)=1

SAT

Gegeben: Eine aussagenlogische Formel F
Problem: ist F erfüllbar?

Lemma:
SAT

NP

Satz: (Cook, 1971)
SAT ist NP-vollständig

Von der Lösbarkeit zur Lösung

Die Berechnung einer erfüllenden Belegung kann auf SAT "reduziert" werden.
Sei

F eine Formel mit den Variablen
x1,,xk
:

wobei
F[x:=b]=F
mit
x
ersetzt durch
b

Entscheidung von SAT in Zeit

O(f(n))
Berechnung einer erf. Bel. in Zeit
O(n(f(n)+n))
, falls es eine gibt.
f(n) polynomiell n(f(n)+n) polynomiellf(n) exponentiell n(f(n)+n) exponentiell

Bemerkungen:

  • Die Redunktion der Lösungsberechnung auf SAT ist eine rein theoretische Konstruktion
  • Sie zeigt, dass man sich auf SAT beschränken kann, wenn man nur an polynomiell/exponentiell interessiert ist
  • Alle bekannten Entscheidungsverfahren für SAT berechnen auch eine Lösung

Von NP-schwer zu "NP-leicht"

  • Bis vor ca. 20 Jahren: NP-vollständig -> Todesurteil
  • in den letzten 15 jahren: Spektakuläre fortschritte bei der implementierung von SAT-Lösern
    Stand der Kunst: Erfüllbar bis 105 variablen, Unerfüllbar bis 103 variablen
  • Jetzt: NP-vollständig -> Hoffnung durch SAT
  • Paradigma: SAT (Logik!) als universelle Sprache zur Kodierung kombinatorischer Probleme
    Reduktion auf SAT manchmal schneller als problemspezifische Löser, und fast immer einfacher.

doc todos

  • TODO: Folien 98-103 verstehen
  • vorherige TODOs machen
  • TODO: Folie 97: keine reguläre Lösung???
  • TODO: bei Problemen nochmal die Beweise anschauen
  • TODO: Pumping-Lemma again
  • TODO: 261-299: Primitiv-Rekursive Funktionen bis Ackerman-Funktion
tags: Theo