Kap. 2: Endliche Automaten Myhill–Nerode 2.4
Minimierung eines gegebenen DFA
wie kann man redundante Zust¨ande erkennen/eliminieren?
• zun¨achst eliminiere alle nicht erreichbaren Zust¨ande
• dann: q 6∼q0 wesentlich verschieden, wenn
f¨ur einx ∈Σ∗ nicht(ˆδ(q,x)∈A)↔(ˆδ(q0,x)∈A)
• Zusammenfassung von ∼-Klassen von Zust¨anden liefert minimierten DFA, isomorph zum Minimalautomat algorithmisch: induktive Verfeinerung
Tests f¨urx der L¨angei= 0,1, . . . q 6∼0 q0 gdw. nicht(q ∈A)⇔(q0∈A)
q 6∼i+1 q0 gdw. q6∼i q0 oder (∃a∈Σ)δ(q,a)6∼i δ(q0,a) sobald∼i+1=∼i (=:∼), fasse Zust¨ande in ∼-Klassen zusammen
FGdI I Sommer 2010 M Otto 77/136
Kap. 2: Endliche Automaten pumping lemma 2.5
Das “pumping lemma”
→ Abschnitt 2.5Pumping Lemma (Lemma 2.5.2)
L⊆Σ∗ regul¨ar ⇒
existiertn∈Nsodass sich jedesx ∈Lmit|x|>n zerlegen l¨asst in x =uvw,v 6=ε,|uv|6n und f¨ur allem∈N
u·vm·w =u·v· · ·v
| {z }
mmal
·w ∈L
Beweis: L=L(A), DFAA= (Σ,Q,q0, δ,A), n:=|Q|
|x|>n: existiert Zustandswiederholungqi =qj =q im Lauf auf x: x = a1 . . . ai ai+1 . . . aj aj+1 . . . a`
| {z }
u | {z }
v
l¨asst sich pumpen
| {z }
w
↑ q0
↑ q
↑ q
FGdI I Sommer 2010 M Otto 78/136
Kap. 2: Endliche Automaten pumping lemma 2.5
Beispiele nicht-regul¨ arer Sprachen
L={anbn:n∈N} f¨ura,b ∈Σ,a6=bL={w ∈ {(,)}∗:w korrekte Klammerschachtelung } Palindrom={w ∈Σ∗:w =w−1} f¨ur|Σ|>2
L={u#v#w:u,v,w ∈ {0,1}∗,u+v =w (bin¨are Addition)} Nachweis: Pumping Lemma!
FGdI I Sommer 2010 M Otto 79/136
Kap. 2: Endliche Automaten Effektivit¨at 2.6
Algorithmische Entscheidungsprobleme
→ Abschnitt 2.6 Entscheidungsproblem (ja/nein Problem)spezifiert durch
• Menge von zugelassenen Eingaben x ∈I (Instanzen)
• Teilmenge D⊆I der positiven Instanzen (Antwort “ja”) d.h.: wohldefinierte ja/nein Antwort f¨ur allex ∈I
****
****
****
****
****
**
D
“ja”
I I\D
“nein”
Entscheidungsproblem:
gegebenx ∈I entscheide, ob x ∈D
FGdI I Sommer 2010 M Otto 80/136
Kap. 2: Endliche Automaten Effektivit¨at 2.6
Entscheidungsprobleme f¨ ur regul¨ are Sprachen
Beispiele Wortproblem zu SpracheL⊆Σ∗:f¨ur w ∈Σ∗ entscheide obw ∈L I = Σ∗,D =L
Leerheitsproblem:
f¨ur DFAA entscheide obL(A) =∅ I ={A:A DFA},D ={A:L(A) =∅}
analog mit I =REG(Σ)
Sprachgleichheit/Automaten¨aquivalenz:
f¨ur α, β∈REG(Σ) entscheide ob L(α) =L(β) I = REG(Σ)2
,D ={(α, β)∈(REG(Σ))2:L(α) =L(β)}
analog f¨ur DFA/NFA
FGdI I Sommer 2010 M Otto 81/136
Kap. 2: Endliche Automaten Effektivit¨at 2.6
das Wichtigste aus Kapitel 2
regul¨are SprachenREG DFA NFA
Abschlusseigenschaften / Automatenkonstruktionen Satz von Kleene
Satz von Myhill-Nerode
Pumping Lemma f¨ur regul¨are Sprachen Minimalautomat
FGdI I Sommer 2010 M Otto 82/136
Kapitel 3: Grammatiken
Chomsky Hierarchie: Komplexit¨ atsniveaus f¨ ur formale Sprachen
Noam Chomsky (geb. 1928)
Kap. 3: Grammatiken Grammatiken 3.1
Grammatiken
→ Abschnitt 3.1Idee: Spezifikation einer Sprache durch Erzeugungsprozess G = Σ,V,P,X0
Σ Terminalalphabet,
V endliche Menge vonVariablen,V ∩Σ =∅ X0 ∈V Startvariable/Startsymbol
P endliche Menge vonProduktionen/Regeln P ⊆(V ∪Σ)+×(V ∪Σ)∗
(v,v0)∈P eine Produktion/Regel vonG
Regel
v → v
0linke Seite: v ∈(V ∪Σ)+= (V ∪Σ)∗\ {ε}
rechte Seite: v0 ∈(V ∪Σ)∗ erlaubt in (V ∪Σ)-W¨ortern
Ersetzung von v durch v0 Ubergang von¨ uvw nachuv0w
Kap. 3: Grammatiken Grammatiken 3.1
Ableitbarkeit
zu Produktionenv →v0 inP: uvw →G uv0w
direkter Ableitungsschritt inG zwei Ableitbarkeitsrelationen ¨uber (Σ∪V)∗:
1-Schritt Ableitbarkeit, →G:
x →G x0 :⇔ x =uvw, x0 =uv0w wobei (v,v0)∈P Ableitbarkeit, →∗G:
x →∗G x0 :⇔
es existiert ein→G-Pfad vonx nachx0: x =x1→G x2 →G . . .→G xn =x0.
“endliche Iteration von →G”: reflexiver transitiver Abschluss
• w ∈(Σ∪V)∗ ableitbar in G gdw.X0→∗G w
• L(G) =
w ∈Σ∗:X0→∗G w die von G erzeugteΣ-Sprache
FGdI I Sommer 2010 M Otto 85/136
Kap. 3: Grammatiken Grammatiken 3.1
Beispiel
Beispiel 3.1.3Palindrom (3.1.3) z.B. Σ ={0,1},
G = (Σ,V,P,X) mit V ={X}und Produktionen P : X →ε
X →a f¨ur jedesa∈Σ X →aXa f¨ur jedesa∈Σ
erzeugt die Σ-Sprache der Σ-Palindrome (w ∈Σ∗:w =w−1) beachte: nicht regul¨ar
FGdI I Sommer 2010 M Otto 86/136
Kap. 3: Grammatiken Grammatiken 3.1
Beispiele
Beispiele 3.1.4korrekte Klammerungen (3.1.4)
Σ ={(,)},G = (Σ,V,P,X) mitV ={X} und Produktionen P : X →( )
X →(X) X →XX
erzeugt die Sprache der korrekt geschachtelten
nicht-leeren Klammerw¨orter [Induktionsbeweis!]
beachte: nicht regul¨ar
FGdI I Sommer 2010 M Otto 87/136
Kap. 3: Grammatiken Grammatiken 3.1
Beispiele: regul¨ are Sprachen
Beispiel 3.1.7 jede regul¨are Sprache wird auch von einer Grammatik erzeugt.Trick: ¨ubersetze NFAA= (Σ,Q,q0,∆,A) in Grammatik:
GA:= (Σ,V,P,X0)
V :=
Xq:q∈Q , X0 := Xq0,
P : Xq →aXq0 f¨ur (q,a,q0)∈∆ Xq →ε f¨urq ∈A dann ist
L = L(A) = L(G
A):
Ableitungen inG simulierenakzeptierende Berechnungen vonA
FGdI I Sommer 2010 M Otto 88/136
Kap. 3: Grammatiken Grammatiken 3.1
Beispiel anbn (3.1.10)
Σ ={a,b},G = (Σ,V,P,X),V ={X}, P : X →ε
X →aXb
erzeugt die Sprache
L = {a
nb
n: n ∈ N }.
nicht regul¨arBeispiel anbncn (3.1.11)
Σ ={a,b,c},G = (Σ,V,P,X),V ={X,Y,Z},X0=X,
P : X →ε aY →ab
X →aXYZ bY →bb ZY →YZ bZ →bc cZ →cc
erzeugt die Sprache
L = {a
nb
nc
n: n ∈ N }.
nicht regul¨arFGdI I Sommer 2010 M Otto 89/136
Kap. 3: Grammatiken Grammatiken 3.1
Beispiel
Ubung 3.1.5¨Baumdarstellung von Ableitungsschritten Σ ={+,·,(,),0,1}
G = (Σ,{X},P,X): Baum zu ((0·1) + 1)∈L(G):
P : X →0 (1)
X →1 (2)
X →(X+X) (3) X →(X·X) (4)
X
(3)
(X +X)
xxrrrrrr(4)rr
(2)GGGGGGG##
G
(X ·X)
{{wwwwww(1)w
(2)NNNNNNNN&&
NN 1
0 1
FGdI I Sommer 2010 M Otto 90/136
Kap. 3: Grammatiken Grammatiken 3.1
Backus-Naur Form, BNF
(Kompaktschreibweise) v → v10v20 . . .
vn0 anstelle von v →v10 ... v →vn0 lies “|” als “oder”; oft auch ::= anstelle von →
erweiterte BNF, EBNF weitere eliminierbare Abk¨urzungen z.B. X → u[v]w f¨ur X →uw
uvw
“v kannzwischen u und w eingef¨ugt werden”
z.B.
X → u{v}w f¨ur X → uw
uZw [Z neu!]
Z → ZZ v
“jedes v0 ∈ {v}∗ kann zwischenu undw eingef¨ugt werden”
Kap. 3: Grammatiken Chomsky-Hierarchie 3.2
Chomsky-Hierarchie
→ Abschnitt 3.2Klassifikation von Grammatiken (und Sprachen)
X,Y Variablen inV,a∈Σ,v,v0∈(Σ∪V)∗ regul¨ar, Typ 3
Produktionenrechtslinear: X →ε,X →a ,X →aY kontextfrei, Typ 2
alle Produktionen haben als linke Seite
eine einzelneVariable: X →v
kontextsensitiv, Typ 1
alle Produktionennicht verk¨urzend: v →v0,|v0|>|v| bis auf ggf. eineharmlose ε-Produktion
allgemein, Typ 0
allgemeinste von Grammatik erzeugte Sprachen (!)
Kap. 3: Grammatiken Chomsky-Hierarchie 3.2
regul¨ are Grammatiken – endliche Automaten
Satz 3.2.7 regul¨are Grammatiken charakterisieren regul¨are Sprachen L⊆Σ∗ regul¨ar gdw. L=L(G) f¨ur eine regul¨are Grammatik G. Beweis:“⇐”: NFA aus Typ 3 GrammatikG = (Σ,V,P,X0) mit ProduktionenX →aY undX →ε
(zur Vorbereitung: ersetzeX →adurchX →aZ undZ →ε,Z neu) Ableitung X0→G a1X1 →G · · · →G a1. . .anXn→G a1. . .an simuliert durchA:= Σ,V,X0,∆,A
mit
∆ =
(X,a,X0) :X →aX0∈P , A=
X:X →ε∈P
FGdI I Sommer 2010 M Otto 93/136
Kap. 3: Grammatiken Chomsky-Hierarchie 3.2
regul¨ ar ⇒ kontextfrei ⇒ kontextsensitiv
Beobachtung 3.2.5• offensichtlich: Jede regul¨are Grammatik ist kontextfrei.
• ebenso: G kontextfrei
ohne ε-Produktionen
oder mit harmloserε-Produktion
⇒ G kontextsensitiv.
• kontextfreiesG mit ε-Produktionen
¨
aquivalentzu kontextfreiemG0 mitharmloserε-Produktion.
Begr.: (Lemma 3.2.4) o.B.d.A. hatG X0 nur als Startsymbol.
– f¨ur X →uYv mitY →∗G εnehmeX →uv hinzu – entferne alle ε-Produktionen, bis auf X0→ε
FGdI I Sommer 2010 M Otto 94/136
Kap. 3: Grammatiken Chomsky-Hierarchie 3.2
Chomsky-Hierarchie
regul¨ar ⇒ kontextfrei ⇒ kontextsensitiv
Typ 3 ⊆ Typ 2 ⊆ Typ 1 ⊆ Typ 0 ⊆ beliebige Sprachen wir werden sehen: alle Inklusionen echt / strikte Hierarchie trennende Beispiele (die wir schon kennen):
kontextfrei, nicht-regul¨ar: {anbn:n∈N} Palindrom
korrekte Klammerungen kontextsensitiv, nicht kontextfrei: {anbncn:n∈N}
noch zu zeigen Methoden f¨ur Nachweis der Nicht-Zugeh¨origkeit:
vgl. Pumping Lemma (f¨ur Typ 3; Variante f¨ur Typ 2: siehe unten) allgemein: aus Analyse der einzelnen Klassen
FGdI I Sommer 2010 M Otto 95/136
Kap. 3: Grammatiken Chomsky-Hierarchie 3.2
a
nb
nc
nist kontextsensitiv
Beispiel 3.1.11 modifizieren: anbncn kontextsensitiv Σ ={a,b,c}
G = (Σ,V,P,X) V ={X,Y,Z}
P : X →ε X →aXYZ ZY →YZ
aY →ab bY →bb bZ →bc cZ →cc
G0 = (Σ,V,P,X0) V ={X0,X,Y,Z}
P : X0 →X |ε X →aXYZ |aYZ ZY →YZ
aY →ab bY →bb bZ →bc cZ →cc erzeugen beide die SpracheL={anbncn:n∈N}.
G0 ist kontextsensitiv (nur harmloseε-Produktion!).
FGdI I Sommer 2010 M Otto 96/136
Kap. 3: Grammatiken Kontextfreie 3.3
kontextfreie Sprachen (Typ 2)
→ Abschnitt 3.3• wichtige n¨achste Stufe nach regul¨ar
• zul¨assige Produktionen bei Typ 2,ε6∈L: X →v, v 6=ε Versch¨arfung: Chomsky-Normalform: X →YZ undX →a Satz: jede Typ 2 Grammatik ohneε-Produktionen
ist ¨aquivalent zu Chomsky NF Grammatik
Beweisidee zur Transformation in Chomsky NF (Satz 3.3.2):
– ersetze aauf rechten Seiten durch neues Za neue Produktionen Za→a
– eliminiere X →Y Produktionen (durch shortcuts) – eliminiere X →Y1. . .Yk Produktionen f¨urk >2
FGdI I Sommer 2010 M Otto 97/136
Kap. 3: Grammatiken Kontextfreie 3.3
Chomsky NF und bin¨ are B¨ aume
Ableitungsschritt X →YZ bin¨are Verzweigung X →a keine Verzweigung
X
vvnnnnnnnnnnn
@
@@
@@ Y
~~|||||
A
AA
AA Z
Y0
Z0
a a0 a00
Ableitungsbaum mit innerenKnotenf¨ur X in X →YZ Anwendungen
Lemma 3.3.3
in Chomsky NF GrammatikG:
w ∈L(G) hat Ableitung der L¨ange 2|w| −1.
Beweise induktiv ¨uber L¨ange `
der Ableitung vonw ∈(V ∪Σ)+
|w |
V+ 2|w|
Σ= ` + 1
FGdI I Sommer 2010 M Otto 98/136
Kap. 3: Grammatiken Kontextfreie 3.3
kontextfreie Sprachen: Abschlusseigenschaften
Abschluss unter Vereinigung, Konkatenation, Stern(Satz 3.3.7) Zu gegebenen Typ 2 Grammatiken f¨urL1,L2,Lfinde explizit Typ 2 Grammatiken f¨urL1∪L2, f¨ur L1·L2, bzw. f¨urL∗
z.B.: seien G(i)= (Σ,V(i),P(i),X0(i)) kontextfrei,V(1)∩V(2)=∅ G = (Σ,V,P,X0) mitL(G) =L(G(1))·L(G(2)):
V := V(1)∪V(2)∪ {X0} X0 neu P := {X0→X0(1)X0(2)} ∪ P(1) ∪ P(2) kein Abschluss unter Durchschnitt/Komplement!
→ sp¨ater
Kap. 3: Grammatiken Kontextfreie 3.3
noch ein Pumping Lemma
→ Abschnitt 3.3.3 L⊆Σ∗ kontextfrei ⇒existiertn∈Nsodass sich jedesx ∈Lmit|x|>n zerlegen l¨asst in x =yuvwz,uw 6=ε,|uvw|6n, und f¨ur alle m∈N
y ·um·v ·wm·z =y ·u· · ·u
| {z }
mmal
·v ·w· · ·w
| {z }
mmal
·z ∈L.
Beweis(Satz 3.3.8):
L=L(G),G in Chomsky NF,n:= 2|V|. F¨urx ∈L(G),|x|>n, hat jeder
Ableitungsbaum zwei geschachtelte Vorkommen desselbenX
Findeuvw wie in Skizze
•
//////////////
////////
X
•X
//////
/////
| {z }
u | {z }
v | {z }
w
| {z }
v0
Beispiel: {anbncn:n ∈N}nicht kontextfrei