HEINZ NIXDORF INSTITUT
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 INSTITUT
Ü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 INSTITUT
Kapitel IV Kontextfreie Sprachen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Kontextfreie
Grammatik
Berechenbarkeit, Formale Sprachen,
06-3
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Beispiele kontextfreier Grammatiken
Kontextfreie Grammatiken sind
“Wortersetzer”
–A 0A1
–A B
–B #
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
Ableitungsbaum
Berechenbarkeit, Formale Sprachen,
06-4
Komplexitätstheorie
Formale Definition einer kontextfreien
Grammatik
HEINZ NIXDORF INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
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 INSTITUT
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 INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-35
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-36
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-37
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-38
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-39
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-40
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-41
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-42
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Keller-Automat: Beispielberechnung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
06-43
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
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 INSTITUT
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 INSTITUT
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 INSTITUT
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
• Aa
• 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 INSTITUT
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,
Bb}
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 INSTITUT
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 INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 5. Vorlesung
Nächste Vorlesung:
Miniklausur:
Nächste Zentralübung:
Mo. 14.11.2005 Nächste
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