als PPT - Universität Paderborn

Werbung
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
• 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 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,
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 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
Herunterladen