Einführung in Berechenbarkeit, Formale Sprachen und

Werbung
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Einführung in Berechenbarkeit, Formale
Sprachen und Komplexitätstheorie
Wintersemester 2005/2006
08.11.2005
6. Vorlesung
Christian Schindelhauer
1
HEINZ NIXDORF INS TITUT
Überblick: Kontextfreie Sprachen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Formale Grammatik
– Einführung, Beispiele
– Formale Definition
– Das Wort-Problem
– Chomsky Normalform
– Cocke-Younger-Kasami-Algorithmus
Kellerautomaten
– Formale Definition
– Beispiele
– Äquivalenz zu kontextfreien Sprachen
Nichtkontextfreie Sprachen
– Pumping-Lemma für kontextfreie Sprachen
Berechenbarkeit, Formale Sprachen,
06-2
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Kapitel IV Kontextfreie Sprachen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Kontextfreie
Grammatik
Berechenbarkeit, Formale Sprachen,
06-3
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Beispiele kontextfreier Grammatiken
Kontextfreie Grammatiken sind
“Wortersetzer”
–A → 0A1
–A → B
–B → #
Ableitungsbaum
Ersetzungsregeln bestehen aus
Produktionen
Variablen, Terminalsymbole (Terminale)
Startvariable: A
–A
–0A1
–00A11
–000A111
–000B111
–000#111 .... und Schluss
Das Wort 000#111 ist ein Wort der
Grammatik
Berechenbarkeit, Formale Sprachen,
06-4
Komplexitätstheorie
Formale Definition einer kontextfreien
Grammatik
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Definition
– Eine kontextfreie Grammatik ist ein Vierer-Tupel G=(V,Σ,R,S), wobei
• V ist die endliche Menge der Variablen (Nichtterminale)
• Σ ist die endliche Menge der Terminale (Terminalsymbole)
 V und Σ sind disjunkte Mengen
• R ist eine endliche Menge an Ersetzungsregeln (Regeln/Produktionen)
 Jede Regel besteht aus einer Variable und einer Zeichenkette aus Variablen und
Terminalen,
∗ A → w, mit A ∈ V, w ∈ (V ∪ Σ)*
• S ∈ V ist die Startvariable
 Ableitung
– Falls die Regel A → w in R ist, dann ist uAv ⇒ uwv, d.h.
• uAv kann zu uwv in einem Schritt abgeleitet werden
– Wir sagen das u zu v abgeleitet werden kann oder
u ⇒* v, wenn es ein k ≥ 0 gibt mit
 u ⇒ u1 ⇒ u2 ⇒ ... ⇒ uk ⇒ v
 Sprache der Grammatik G
– L(G) = { w ∈ Σ * | S ⇒* v}
 Die kontextfreien Sprachen werden durch kontextfreie Grammatiken erzeugt.
Berechenbarkeit, Formale Sprachen,
06-5
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Ist ein Wort in der Sprache?
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Die Entscheidung, ob ein Wort in einer kontextfreien Grammatik
abgeleitet werden kann ist nicht trivial:
– Mehrdeutige Ableitung
– Riesige Worte, die aufgrund der Epsilon-Regeln wieder verschwinden
 Die Lösungsstrategie:
– Chomski-Normalform
• Jede Grammatik lässt sich (praktisch) ohne Epsilon-Regeln in einer
einfachen Form darstellen
– Cocke-Younger-Kasami-Algorithms
• Durch dynamische Programmierung lässt sich die Laufzeit reduzieren
Berechenbarkeit, Formale Sprachen,
06-6
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Chomsky-Normalform
Definition
–Eine kontextfreie Grammatik ist in
Chomsky-Normalform, falls jede Regel
die Form
• A → BC oder
• A → a oder
• S → ε hat
–wobei
• A,B,C,S sind Variablen
• a ist ein Terminal
• B,C sind nicht das Startsymbol,
• S ist das Startsymbol.
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Theorem
– Jede kontextfreie Sprache kann in
Chomsky-Normalform dargestellt
werden.
 Beispiel
– Kontextfreie Grammatik
• G = ({A,B}, {0,1,#}, R, A}
• R = {A → 0A1, A → B, B → #}
– Grammatik mit gleicher Sprache in
Chomski-Normalform
• G’= ({A,B,C,N,E}, {0,1,#}, R, S}
•R={
S → NC, N→ 0,
S → #,
A → NC, C → AE, E →1,
A→#}
Berechenbarkeit, Formale Sprachen,
06-7
Komplexitätstheorie
Der Cocke-Younger-Kasami-Algorithmus
(CYK-Algorithmus)
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge der Teilfolge
i = Startindex der Teilfolge
j = Schlussindex der Teilfolge
Berechenbarkeit, Formale Sprachen,
06-8
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-9
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-10
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-11
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-12
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-13
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-14
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-15
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-16
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-17
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-18
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-19
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-20
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-21
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-22
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-23
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-24
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-25
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-26
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-27
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-28
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
C → AB,
A → a, B → b, C → a }
Berechenbarkeit, Formale Sprachen,
06-29
Komplexitätstheorie
Cocke-Younger-Kasami-Algorithmus
Beispiel
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
l = Länge
i = Startindex
j = Schlussindex
G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}.
P={
S → AB, S → BC,
A → BA
B → CC,
baaba
C → AB,
A → a, B → b, C → a }
ist in der Sprache
Berechenbarkeit, Formale Sprachen,
06-30
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Kapitel IV Kontextfreie Sprachen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Kellerautomaten
Berechenbarkeit, Formale Sprachen,
06-31
Komplexitätstheorie
Prinzip des Kellerautomats
Push-Down-Automaton (PDA)
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Ein Kellerautomat vereinigt einen
– NFA mit einem
– Keller (Stack)
 Der Keller kann potenziell beliebig viel
Zeichen speichern
 Zugriff ist eingeschränkt:
– Pop: Auslesen des obersten
Zeichens (inklusive Entfernen)
– Push: Hineinlegen eines Zeichens
 Auf den Übergängen des NFA wird der
Zugriff auf den Keller festgelegt
– zusätzlich zum aktuellen Zeichen der
Eingabe,
– die weiterhin von links nach rechts
gelesen wird.
Berechenbarkeit, Formale Sprachen,
06-32
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Keller-Automat: Formale Definition
 Definition
– Ein Kellerautomat (pushdown
automaton - PDA) wird durch ein
Sechser-Tupel (Q, Σ,Γ,δ,q0,F),
wobei Q, Σ,Γ,F endliche Mengen
sind und
1. Q ist die Menge der Zustände
2. Σ ist das Eingabealphabet
3. Γ ist das Kelleralphabet
4. δ : Q × Σε × Γε → P(Q × Γε) ist die
Übergangsfunktion
5. q0 ist der Startzustand
6. F ⊆ Q ist die Menge der
akzeptierenden Zustände
 Ein PDA akzeptiert die Eingabe w,
– wenn es eine Darstellung
w= w1 w2 ...wm mit wi ∈ Σε gibt
– wenn es eine Zustandsfolge
q = r0 r2 ...rm mit si ∈ Q gibt
– wenn es Zeichenketten
s0,s1 , ... , sm ∈ Γε* gibt, so dass
1. r0 = q0 und s0 =ε
− Startzustand mit leeren Keller
2. Für i = 0, ..., m-1 gilt:
− (ri+1,b) ∈ δ(ri,wi+1,a), wobei
− si = at und si+1 = bt
für passende a,b ∈ Γε, t ∈ Γε*
− Übergang mit Kellerverhalten:
− Lies a, Schreibe b
3. rm ∈ F
•
Ein akzeptierender Zustand
erscheint als Endzustand
Berechenbarkeit, Formale Sprachen,
06-33
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Der PDA M = (Q, Σ,Γ,δ,q1,F) akzeptiert die
Sprache {0n1n | n≥0}
 Q = {q1,q2,q3,q4}
 Σ = {0,1}
 Γ = {0,$}
 F = {q1, q4}
 δ:
– δ(q1 , ε, ε) = {(q2,$)}
• q1: Push $, Gehe zu q2
– δ(q2 , 0, ε) = {(q2,0)}
• q2: Falls Lese = 0: Push 0; Gehe zu q2
– δ(q2 , 1, 0) = {(q3,ε)}
• q2: Falls Lese=1 und Pop=0 gehe zu q3
– δ(q3 , 1,0) = {(q3,ε)}
• q3: Falls Lese=1 gehe zu q3
– δ(q3 , ε, $) = {(q4,ε)}
• q3: Falls Pop=$ gehe zu q4
– δ(q , a) = {}, für alle anderen
Kombinationen q ∈ Q,a ∈ Σε
Berechenbarkeit, Formale Sprachen,
06-34
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-35
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-36
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-37
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-38
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-39
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-40
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-41
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-42
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-43
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-44
Komplexitätstheorie
Keller-Automat: Beispielberechnung
Automat akzeptiert!
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-45
Komplexitätstheorie
Keller-Automaten beschreiben genau die
kontextfreien Sprachen
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem 6.1
– Eine Sprache ist genau dann kontextfrei, wenn ein Kellerautomat sie erkennt
Lemma 6.1
– Ist eine Sprache kontextfrei, dann erkennt Sie ein Kellerautomat.
Beweisidee
– Die Mehrdeutigkeit der kontextfreien Sprache wird durch den
Nichtdeterminismus des PDA gelöst
– Die Ableitung der Worte steht im Keller
– Im Keller werden die möglichen Übergänge der Ableitung geraten
– Oben im Keller = Links, Unten im Keller = Rechts.
– Sobald oben im Keller ein Terminal steht, wird es mit der Eingabe verglichen
und jeweils gestrichen
– Sobald oben im Keller eine Variable steht, wird eine mögliche Ersetzung im
Keller durchgeführt.
Berechenbarkeit, Formale Sprachen,
06-46
Komplexitätstheorie
Jede kontextfreie Sprache kann von einem
PDA erkannt werden
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Lemma 6.1
– Ist eine Sprache kontextfrei, dann gibt es einen Kellerautomat für sie.
 Konstruktion des Kellerautomaten
– Wir können davon ausgehen, dass die Sprache als kontextfreie Grammatik
G=(V,Σ,R,S) in Chomsky-Normalform vorliegt.
– Ist S → ε in der Grammatik so gibt es einen ist der Startzustand des PDA akzeptierend
– Zuerst wird der Stack mit den Symbolen $S initialisiert
– Sei q der Zustand nach der Initialisierung
– Für jede Regel der Form
• A → BC
• wird ein Übergang von q zu Zustand q[BC] hergestellt, der A vom Keller geholt, ε
von der Eingabe liest und C auf den Keller legt
• Der Übergang von q[BC] nach q liest ε von der Eingabe und legt B auf den Keller
ablegt.
– Für jede Regel der Form
• A→a
• wird ein Übergang von q zu q anglegt, der von der Eingabe a liest und A vom
Keller holt
– Eine weitere Regel liest $ vom Keller und geht in den einzigen akzeptierenden
Zustand q[akz]
Berechenbarkeit, Formale Sprachen,
06-47
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Beispielkonstruktion
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Grammatik: G=(V,Σ,R,S) mit
–V={S,,A,B}
–Σ={a,b,c}
R = {
S → AB,
A → BB,
A → a,
A → c,
B→b}
Beispiel:
–
S
⇒ AB
⇒ cB
⇒ cb
Keller: $S
Keller: $BA
Keller: $B
Keller: $
Eingabe: cb
Eingabe: cb
Eingabe: b
Eingabe: -
Berechenbarkeit, Formale Sprachen,
06-48
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Miniklausur
Termin:
Anmeldung:
Thema:
MORGEN, 09.11.2005, 13-14 (s.t.)
Keine
Reguläre Sprachen
Inhalt:
4 Aufgaben (je 10 Punkte)
Hilfsmittel:
Keine - außer Schreibmaterial - Papier wird gestellt
Bitte:
Pünktlich erscheinen
Mit Sicherheitsabstand hinsetzen
(möglichst zwei Sitze zum Nachbarn)
Punkteverteilung
Abschreiben
Abschreiben lassen
Unterhalten
= 0 Punkte
= 0 Punkte
= 0 Punkte.
Berechenbarkeit, Formale Sprachen,
06-49
Komplexitätstheorie
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 5. Vorlesung
Nächste Vorlesung:
Nächste Miniklausur:
Nächste Zentralübung:
Mo. 14.11.2005
Mi. 09.11.2005
Mi. 16.11.2005
Heinz Nixdorf Institut
& Institut für Informatik
Universität Paderborn
Fürstenallee 11
33102 Paderborn
Tel.: 0 52 51/60 66 92
Fax: 0 52 51/62 64 82
E-Mail: [email protected]
http://www.upb.de/cs/schindel.html
50
Herunterladen