Beruflich Dokumente
Kultur Dokumente
DR
AF
Alexander Asteroth
Melanie Ludwig
Jakob Meng
Max Schachtschabel
Sigrid Weil
Hochschule Bonn-Rhein-Sieg
University of Applied Sciences
Grantham-Allee 20
D-53757 Sankt Augustin
INHALTSVERZEICHNIS
9
10
11
12
13
14
0 Mathematische Grundlagen
1 Formale Sprachen
1.1 Grundlegende Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
8
2 Regul
are Sprachen und endliche Automaten
2.1 Regul
are Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Regul
are Ausdr
ucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Deterministische endliche Automaten . . . . . . . . . . . . . . . . . . . .
2.4 Nichtdeterministische endliche Automaten . . . . . . . . . . . . . . . . .
2.5 Aquivalenz
von DEAs und NEAs . . . . . . . . . . . . . . . . . . . . .
2.8 Aquivalenz
von endlichen Automaten, regularen Grammatiken und regul
aren Ausdr
ucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Minimierung deterministischer endlicher Automaten . . . . . . . . . . .
2.10 Ableitung von Automaten aus Sprachdefinitionen und Automatenkorrektheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11 Das Pumping Lemma f
ur regulare Sprachen . . . . . . . . . . . . . . . .
10
10
12
14
18
20
23
25
3 Kontextfreie Sprachen
3.1 Kontextfreie Grammatiken . . . . . . . . . . . . . .
3.1.1 Ableitungsbaume . . . . . . . . . . . . . . . .
3.1.2 Die Chomsky-Normalform . . . . . . . . . . .
3.1.3 Das Wortproblem f
ur kontextfreie Sprachen .
3.1.4 Abschlusseigenschaften und nicht-kontextfreie
3.2 Kellerautomaten . . . . . . . . . . . . . . . . . . . .
3.2.1 Deterministisch kontextfreie Sprachen . . . .
3.2.2 LR(k)-Grammatiken . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
42
42
43
44
51
52
54
59
61
.
.
.
.
76
76
77
78
78
5 Ausblick
5.1 Berechenbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Entscheidbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
81
81
DR
AF
15
Inhaltsverzeichnis
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
4 Die
4.1
4.2
4.3
Chomsky Hierarchie
Typ1 und Typ0 Sprachen . . .
Chomsky Hierachie . . . . . . .
Automatenmodelle f
ur TYP1 4.3.1 Turingmaschinen . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
und TYP0 -Sprachen
. . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Sprachen
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
32
35
38
44
45
46
47
48
49
50
Mathematische Grundlagen
In diesem Kapitel werden mathematische Konzepte beschrieben, die in den folgenden
Kapiteln verwendet werden. Die Darstellung erfolgt in der Regel anhand von Beispielen und nicht formal. Die formale ausf
uhrliche Darstellung erfolgt in den Vorlesungen
mathematische Grundlagen und Algebra.
Vorsicht: Der Inhalt dieses Kapitels wird schrittweise erganzt. Dies geschieht immer
dann, wenn in der VL Konzepte verwendet werden, die noch nicht in der betreffenden
Mathematik-Vorlesung eingef
uhrt werden konnten.
DR
AF
51
Kapitel 0
43
52
53
54
55
56
57
58
Aussagenlogik
Der grundlegende Begriff der Aussagenlogik ist die Aussage. Eine Aussage ist ein aus
W
ortern und/oder mathematischen Zeichen aufgebauter Ausdruck, bei dem es sinnvoll
ist zu sagen, ob dieser Ausdruck wahr oder falsch ist. Aussagen sind damit Ausdr
ucke,
denen man sinnvoll einen Wahrheitswert zuordnen kann.
Aussagen kann man nun zusammensetzen. Wenn wir also Aussagen A und B zusammensetzen, erhalten wir wieder eine Aussage. Daf
ur wird definiert:
59
Negation (Verneinung):
60
Disjunktion (oder):
61
62
Subjunktion (impliziert):
68
Achtung: Die Bedeutung von A B ist, dass wenn bereits die Aussage A gilt, auch
die Aussage B gelten muss. Dabei muss aber kein kausaler Zusammenhang zwischen A
und B vorhanden sein!
Um den Wahrheitswert solcher verkn
upfter Aussagen zu ermitteln, kann man beispielsweise eine Wahrheitstafel aufstellen, wie in der Vorlesung zu den mathematischen
Grundlagen geschehen.
69
Mengenlehre
63
64
65
66
67
70
71
72
73
74
75
Etwas, was in einer Menge M enthalten ist, bezeichnen wir allgemein mit Element. Ist
x Element der Menge M , so schreiben wir x M . Ist x kein Element der Menge M ,
so schreiben wir x
/ M.
Zwei Mengen sind genau dann gleich, wenn sie die selben Elemente enthalten.
Eine Menge, die keine Elemente enthalt, heit leere Menge und wird i.A. mit
oder {} bezeichnet.
78
F
ur zwei Mengen A und B gilt, dass A eine Teilmenge von B ist (A B), wenn
jedes Element von A auch zugleich Element von B ist. Gilt auch die Umkehrung
(d.h. B A), so sind die Mengen gleich (A = B).
79
F
ur zwei Mengen A und B ist folgendes definiert:
76
77
80
Vereinigung: A B = {x | x A x B}
81
Durchschnitt: A B = {x | x A x B}
82
Kreuzprodukt1 : A B = {(x, y) | x A y B}
83
/ A}
Komplement von A: A = {x | x
Man kann sich leicht u
berlegen, dass gilt:
AB AB =B
85
86
Mengenrelationen
87
88
89
DR
AF
90
Im Kontext von Sprachen ist ein Alphabet eine (endliche) Menge, deren Elemente allgemein als Symbole bezeichnet werden. Andere Sprechweisen lernen wir im Laufe der
nachfolgenden Kapitel kennen.
84
91
92
93
94
Aufz
ahlende und
beschreibende
Darstellung von
Mengen
charakteristische
Funktion M
95
96
97
F
ur Mengen nutzen wir zwei verschiedene Notationen: die aufz
ahlende und die beschreibende Form. Bei der aufzahlenden Schreibweise werden alle Elemente der Menge aufgez
ahlt, w
ahrend die beschreibende Darstellung eine formalere Definition darstellt.
Beispiel 0.2: Sei A (informell) die Menge der Quadratzahlen zwischen 1 und 20.
Aufz
ahlende Darstellung: A = {1, 4, 9, 16}
Beschreibende Darstellung: A = {x | 1 x 20 x = n2 , n N}
Definition 0.3: F
ur jede Menge M ist die charakteristische Funktion wie folgt definiert:
(
1 falls x M
M (x) =
0 sonst
98
99
100
101
Kreuzprodukt
Das Kreuzprodukt zweier Mengen A, B ist die Menge aller geordneten Paare, deren
erstes Element aus der ersten Menge, und deren zweites Element aus der zweiten Menge
stammt. Hierbei bildet man jede mogliche Kombination dieser Paare.
Beispiel 0.4: Seien A, B Mengen mit A = {1, 2, 3} und B = {a, b, c}. Dann ist das
Kreuzprodukt gegeben durch
Kreuzprodukt
A B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c), (3, a), (3, b), (3, c)}
102
103
104
105
106
107
Funktion, Relation 108 Beispiel 0.5: Seien A, B Mengen wie eben mit A = {1, 2, 3} und B = {a, b, c}.
109
Die Menge {(a, 1), (b, 2), (c, 3)} B A ist eine Funktion.
110
Die Menge {(a, 1), (b, 1), (c, 3)} B A ist eine Relation.
1 oder
111
abz
ahlbare Menge
Abz
ahlbarkeit
Definition 0.6: Eine Menge M heit abzahlbar, wenn man jedem Element eineindeutig eine nat
urliche Zahl zuordnen kann, wenn es also eine bijektive (total, injektiv,
surjektiv) Abbildung
f : M N,
N N0
112
gibt.
Bemerkung 0.7: Durch die Abbildung f wird jedem Element m von M eine eindeutige Nummer f (m) = i zugeordnen, d.h. der Menge M wird eine Ordnung auferlegt.
Wir schreiben m = mi falls f (m) = i. M kann somit als Folge
mi0 , mi1 , . . . , mit ik < i k + 1
113
notiert werden.
114
116
2. Jede Obermenge u
berabzahlbarer Mengen ist u
berabzahlbar.
117
Beispiel 0.9: Als Beispiele betrachten wir die Beispiele 8.1 a)-d) aus [VW11, S.252254].
DR
AF
118
115
120
121
122
123
124
125
Formale Sprachen
1.1
Grundlegende Konzepte
W
ahrend bei einer nat
urlichen Sprache aus den Wortern Satze gebildet werden und
damit Satzbau, Grammatik, und vieles mehr bedeutsam ist, besteht eine formale Sprache nur aus W
ortern, die aus den Buchstaben eines Alphabets gebildet werden. Zur
Bezeichnung von Sprachen verwendet man u
blicherweise den Buchschaben L (engl.
language) und das Alphabet wird mit dem griechischen Buchstaben (groes Sigma)
bezeichnet.
DR
AF
126
Kapitel 1
119
127
Alphabet, Wort, ,128 Definition 1.1: Sei ein Alphabet, d.h. eine endliche Menge von Zeichen oder
, +
129
Symbolen 1 . Die Elemente eines Alphabetes nennen wir auch Buchstaben.
130
Unter einem Wort u
ber verstehen wir eine endliche Folge w = a1 a2 . . . ar von
131
Buchstaben ai .
132
133
Die L
ange eines Worts w = a1 a2 . . . ar ist die Zahl seiner Buchstaben, also r. Sie
wird auch mit |w| bezeichnet.
136
Das leere Wort entspricht einer leeren Folge von Buchstaben. Es hat die Lange
0 und wird immer mit dem griechischen Zeichen (kleines Epsilon) bezeichnet.
Beachten Sie, dass es sich bei nie um einen Buchstaben der Menge handelt.
137
138
134
135
139
140
141
142
143
144
Konkatenation,
145
Pr
afixe, Suffixe,
146
Teilworte, Inverses 147
Wort, Palindrom 148
Beispiel 1.2: Sei = {a, b, c} und w1 = aab, w2 = . Dann ist |w1 | = 3, |w2 | = 0 und
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, . . . }, d.h. es gibt 3 Worter der Lange 1, 9
W
orter der L
ange 2, 27 Worter der Lange 3 usw.
F
ur L1 = {, a, b, c} (W
orter der Lange max. 1) und L2 = {a, ab, ac, aa, ...} (alle Worter,
die mit a beginnen) gilt: L1 und L2 .
Definition 1.3: Sind w = a1 . . . ar und x = b1 . . . bk Worter u
ber , dann steht w x
oder kurz wx f
ur das Wort a1 . . . ar b1 . . . bk , das sich durch Hintereinanderhangen der
W
orter w und x ergibt. Man bezeichnet w x als die Konkatenation von w und x. Man
beachte, dass w = w = w. Ist x und n N, so ist xn = xx
. . . x} bzw. xn =
| {z
nmal
149
150
151
152
154
155
156
157
158
159
160
161
162
163
Wortfunktionen
Teilwort bzw. Infix eines Wortes y, falls es Worter w1 , w2 gibt, so dass y = w1 xw2 .
Das inverse Wort eines Wortes w = a1 a2 . . . ar1 ar ist das Wort wR = ar ar1 . . . a2 a1 .
Jedes Wort w mit wR = w wird auch Palindrom genannt.
Man beachte, dass die Worter und y stets sowohl Prafix, Infix als auch Suffix von y
sind. x heit echtes Pr
afix von y, wenn x ein Prafix von y ist und x 6= y. Entsprechende
Bedeutung haben die Begriffe echtes Suffix und echtes Teilwort.
Beispiel 1.4: Sei w = Informatikstudium. Dann gibt es neben vielen anderen zum
Beispiel die Pr
afixe Informatik, Informati, Inf, I, . . . , sowie die Suffixe studium, ium, . . . , und die Infixe atikst, . . .
Das k
urzeste Pr
afix, Suffix und Infix ist - dies steht (beliebig oft) vor und zwischen
und hinter jedem Buchstaben.
Notation 1.5: Auf den Wortern u
ber einem Alphabet definieren wir folgende
Funktionen zur Bestimmung. . .
153
. . . der L
ange von W
ortern
l : N0
l() = 0
f
ur w , a
DR
AF
l(wa) = l(w) + 1
(1.1)
anzahl (, a) = 0
(
anzahl (wa, b) =
(1.2)
anzahl (w, b) + 1
anzahl (w, b)
falls a = b
sonst
f
ur a, b , w
. . . der Pr
afixeigenschaft
isPrefix : {0 , 1 }
isPrefix (w, ) = 1,
(1.3)
isPrefix (, x) = 0,
x +
(
isPrefix (w, x) falls a = b
isPrefix (aw, bx) =
, a, b, , w, x
0
sonst
. . . der Suffixeigenschaft
isSuffix : {0 , 1 }
isSuffix (w, ) = 1,
(1.4)
isSuffix (, x) = 0,
x +
(
isSuffix (w, x) falls a = b
isSuffix (wa, xb) =
, a, b, , w, x
0
sonst
. . . der Teilworteigenschaft
isInfix : {0 , 1 }
isInfix (w, ) = 1,
(1.5)
isInfix (, x) = 0,
x +
(
1
falls a = b und isPrefix (w, x)
isInfix (aw, bx) =
isInfix (w, bx) sonst
(1.6)
f
ur a, b
tausche(v, a, b) b falls a = c
tausche(v, a, b) c sonst
f
ur a, b, c , w, v +
rekursive
Funktionen
DR
AF
Formale Sprache,
Operationen auf
Sprachen
164
165
166
167
168
ber .
L bezeichnet das Komplement von L in , also die Sprache \ L.
L1 L2 (oder kurz L1 L2 ) ist die Konkatenation von L1 und L2 , d.h. die Menge
aller W
orter w = w1 w2 , wobei w1 L1 und w2 L2 .
Es gilt
Ln = LL
. . . L},
| {z
n-mal
bzw.
Ln = L Ln1
Dabei ist L1 = L und L0 = {}. Der Kleeneabschlu von L ist die Sprache
[
L =
Ln .
n0
169
170
L+ =
n 1.
n1
Ln steht f
ur die Menge aller Worter w1 . . . wn mit wi L und
1.2. GRAMMATIKEN
L2 = {0, 1}
L3 = {, aa}
L4 = {bb, }
L5 = {}
L6 = beliebig
Es gilt:
L1 L2 = {a0, a1, b0, b1}
L3 L4 = {, bb, , aabb, aa} = {, aa, bb, aabb}
L5 L6 = L6
L31 = L1 L21 = L1 L1 L11 = L1 L1 L1 L01
= L1 L1 L1 {} = L1 L1 L1 = {aa, ab, ba, bb} L1
= {aaa, aba, baa, bba, aab, abb, bab, bbb}
Grammatiken
174
Eine Grammatik gibt Regeln an, nach denen Worter einer Sprache generiert werden.
Dies geschieht in der Art eines Termersetzungsprozesses, bei dem Teile eines Worts
schrittweitse ge
andert werden.
175
172
173
DR
AF
Grammatik
1.2
171
176
177
178
179
einem Alphabet (dessen Elemente im Kontext von Grammatiken Terminalsymbole genannt werden),
einer Relation
180
181
182
(V )+ \ + (V )
einem Startsymbol S V .
P = {(S, 0), (S, 1A), (S, 2A), . . . , (S, 9A), (A, 1A), (A, 2A), . . . , (A, 9A), (A, )}
G = ({a}, {S}, P, S}
Eine Beispielableitung f
ur diese Grammatik ist:
S aS aaS aaa
Bemerkung 1.12: Die Schreibweise u G v oder kurz u v anstelle von (u, v) P
und u 6G v oder kurz u 6 v, falls (u, v)
/ P ist u
blich. Die Schreibweise
u v1 v2 . . . vn
183
184
185
186
187
1.2. GRAMMATIKEN
G und G
Definition 1.14:
Sei G = (, V, P , S) eine Grammatik. Die Relation G (kurz ) ist wie folgt definiert:
Seien x und y zwei W
orter u
ber dem Alphabet V . Dann gilt x y genau dann,
wenn es W
orter u, v, w, z (V ) gibt, so dass
x = wuz,
188
y = wvz,
u v.
w uz
w v z
A 1A P
S 4711
S 4A 4711
S 4A 47A 4711
S 4A 47A 471A 4711
Beispiel 1.16:
DR
AF
Es gilt
x y
gdw.
189
Erzeugte Sprache,
Aquivalenz
von
Grammatiken
L(G) = {w : S w}
190
191
192
193
195
196
197
Regul
are Sprachen und
endliche Automaten
2.1
Regul
are Grammatiken
DR
AF
Regul
are
Grammatik
Kapitel 2
194
198
199
200
201
202
203
Rechts- und
Linkslineare
Grammatiken
204
Hieraus l
asst sich z.B. das Wort 4711 ableiten, vgl. Beispiel 1.16.
205
206
207
Bemerkung 2.4: Bevor wir zeigen, dass es zu jeder rechtslinearen Grammatik eine
linkslineare Grammatik gibt und umgekehrt, zeigen wir, dass man auf Regeln der Form:
A a,
208
A V, a
209
210
211
212
Bemerkung 2.5: F
ur Grammatiken G = (, V, P , S) mit 6 L(G) konnen wir G
in eine a
quivalente Grammatik G0 = (, V, P 0 , S) transformieren, die nur genau eine
Regel der Form T enthalt.
Entwurfsfassung vom 27. September 2016
10
2.1. REGULARE
GRAMMATIKEN
213
A V, A 6= T
215
216
217
218
219
B V, a
enth
alt.
Wir konstruieren ein Produktionssystem P 0 , das zunachst alle Regeln von P enthalt.
F
ur jede Regel der Form V suchen wir alle Vorkommen von V auf der rechten
Seite einer Regel:
A aV
DR
AF
220
Bemerkung 2.6: F
ur Grammatiken G = (, V, P , S) mit 6 L(G) konnen wir G
in eine
aquivalente Grammatik G0 = (, V, P 0 , S) transformieren, die keine Regel der
Form
V
f
ur jede solche Regel f
ugen wir die Regel
Aa
221
222
223
224
225
226
227
228
229
230
231
232
Beweis. Zum Beweis werden wir zu jeder rechtslinearen Grammatik G eine aquivalente
233
234
235
236
237
238
(2.1)
11
2.2. REGULARE
AUSDRUCKE
Umgekehrt ist jede Ableitung eines Wortes w0 in der Grammatik G0 von der Gestalt 2.2.
Damit existiert eine Ableitung der Form 2.1 f
ur w0 auch in G. Also gilt analog
L(G0 ) L(G)
Insgesamt gibt es also f
ur jede rechtslineare Grammatik G eine linkslineare Grammatik
G0 mit
L(G) = L(G0 )
239
240
241
242
243
244
Gilt L(G) f
ugen wir zu P 0 die Regel T hinzu.
Die Transformation von links- zu rechtslinearen Grammatiken erfolgt analog und wird
entsprechend bewiesen.
Beispiel 2.8: Um die praktische Anwendung regularer Grammatiken zu illustrieren
verwenden wir den Lexer-Generator ANTLR. Die Beispielgrammatik f
ur Dezimalzahlen
ohne f
uhrende Nullen wird in ANTLR durch:
250
dargestellt.
246
247
DR
AF
248
249
245
REG , L(REG )
253
254
2.2
251
252
255
256
Syntax regul
arer
Ausdr
ucke
257
258
Regul
are Ausdru
cke
In der Praxis finden zur Formulierung regularer Sprachen neben den Typ 3 Grammatiken insbesondere regul
are Ausdr
ucke Anwendung.
Definition 2.10: Sei ein Alphabet. Die Menge der regularen Ausdr
ucke u
ber
wird mit REXP bezeichnet und ist wie folgt definiert:
259
260
2. F
ur jedes a ist a ein regularer Ausdruck.
261
262
263
264
265
266
267
Semantik regul
arer
Ausdr
ucke
268
269
270
271
L() =
L( ) =
L ( ) =
{}
L() L()
L()
Zwei regul
are Ausdr
ucke 1 , 2 heien
aquivalent (geschrieben als 1 2 ), wenn
L(1 ) = L(2 ).
Die Menge aller durch regulare Ausdr
ucke u
ber definierbaren Sprachen bezeichnen
wir mit L(REXP ).
Entwurfsfassung vom 27. September 2016
12
2.2. REGULARE
AUSDRUCKE
272
273
Beispiel 2.14: Sei = {0, 1, . . . , 9}, dann ist = ((0 | 1) ) regularer Ausdruck und
L() = {, 0, 1, 00, 01, 10, . . . }
Regul
are
274
Bemerkung 2.15:
Grammatiken und 275 In ANTLR wird eine regulare Grammatik G mit dem Schl
usselwort:
regul
are Ausdr
ucke
276
lexer grammar G;
in ANTLR
279
280
281
282
283
284
285
286
287
288
289
lexer grammar G;
S
: aS | bE ;
fragment E : ;
Eine Grammatik-Regel kann auch regulare Ausdr
ucke enthalten, die folgendem Schema
entsprechen m
ussen:
Jeder Buchstabe ist ein regularer Ausdruck und muss in einfache Anf
uhrungszeichen
gesetzt werden.
Beispiel: B : a;
DR
AF
290
277
278
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
Es k
onnen Buchstabenbereiche angegeben werden: [a-c] oder [1-9], in diesem
Fall sind keine Anf
uhrungszeichen zu verwenden:
Beispiel: Ziffer : [0-9];
Regeln und Ausdr
ucke konnen geklammert werden und mit dem Oder-Operator
| verkn
upft werden.
Beispiel:
ZifferOderBuchstabe : Ziffer | Buchstabe;
Ziffer
: [0-9];
Buchstabe : [a-zA-Z];
Mit regul
aren Ausdr
ucken kann gerechnet werden, ahnlich wie man es von Zahlen her
kennt. Dabei nimmt | die Rolle von Plus und die Rolle von Mal ein (mit kleinen
Einschr
ankungen).
Rechenregeln f
ur 308 Satz 2.16: Seien , , REXP , es gilt:
regul
are Ausdr
ucke
309
(i) ist das Einselement des |-Operators und der Annihilator des -Operators.
310
311
312
313
(( (|)) (( )|( ))
13
314
315
Beweis.
316
(i)
L(|) = L() L() = L() = L()
L( ) = L() L() = L() =
(ii)
L( ) = L() L() = L() {} = L()
317
(iii)-(vii) Ubungsaufgabe
1
318
Aufgaben
1 Beweisen Sie die Aussagen (ii)-(vii) aus Satz 2.16.
320
2.3
322
DR
AF
321
( S. ??)
319
q0
q1
0, 1
q2
323
324
325
Deterministischer
endlicher Automat
(DEA)
M = (, Q, , q0 , F )
326
bestehend aus
327
328
329
330
331
332
333
334
335
336
337
338
14
339
Beispiel 2.19:
1
0
q1
q0
341
342
343
344
345
DR
AF
M
ullerscher
Kr
umelmonsterautomat
340
346
M = (, Q, , q0 , F )
={ ,
Q={ ,
q0 =
F ={ }
= {( ,
347
Lauf, akzeptierte
Sprache
348
349
350
), ( ,
Akzeptierte Eingabe:
Nicht akzeptierte Eingabe:
Denn:
), ( ,
( ,
), ( ,
), ( ,
)}
)=
15
351
352
353
354
356
357
358
359
L(DEA )
L(REG )
360
361
Die von M akzeptierte Sprache L(M ) ist die Menge aller Worter w , f
ur die es
einen akzeptierenden Lauf in M gibt.
Die Menge aller Sprachen u
ber , die von einem endlichen Automaten akzeptiert werden, bezeichen wir mit L(DEA )
Satz 2.22: Zu jedem DEA gibt es eine aquivalente regulare Grammatik.
Beweis. F
ur den endlichen Automaten M = (, Q, , q0 , F ) konstruieren wir eine regul
are Grammatik G = (, Q, P , q0 ), die die Zustande des DEA als Variablen und den
Startzustand von M als Startsymbol verwendet. Das Produktionssystem wird wie folgt
definiert:
DR
AF
362
355
363
364
365
Falls q F gilt q .
366
F
ur q 6 F und (p, a) = q gilt p aq.
367
368
q0 a1 q1 a1 a2 q2 . . . a1 a2 . . . an1 an qn a1 a2 . . . an1 an
x L(G).
q0 a1 q1 a1 a2 q2 . . . a1 a2 . . . an2 an qn a1 a2 . . . an1 an
369
Totale
Ubergangsfunktion
370
371
372
16
q1
tot
DR
AF
q1
0, 1
0, 1
q0
0, 1
q0
q2
0, 1
q2
373
374
Konfigurationen 375
und Konfigurati- 376
ons
uberg
ange eines377
DEAs
Definition 2.25: Eine Konfiguration k eines DEAs ist ein Paar (q, v), q Q, v .
Dabei bezeichnet q den aktuellen Zustand des Automaten und v die noch zu verarbeitende Eingabe. Die Menge aller moglichen Konfigurationen ist Q .
Gilt (q, a) = q 0 und beginnt v mit dem Buchstaben a, also v = av 0 , dann f
uhrt der
Automat einen Konfigurations
ubergang von (q, v) nach (q 0 , v 0 ) aus. Wir notieren dies
als
(q, v) ` (q 0 , v 0 )
` ist eine Relation u
ber der Menge der Konfigurationen, also
` (Q ) (Q )
378
379
380
Erweiterte
Ubergangsfunktion
f
ur DEAs,
akzeptierte Sprache
f
ur alle k (Q ) und k1 ` k2 falls es ein k3 gibt mit k1 ` k3 ` k2 (jeweils
ki Q )
Es gilt:
L(M ) = { w | (q0 , w) ` (qF , ), qF F }
Definition 2.26: Sei M = (, Q, , q0 , F ) ein DEA. Wir erweitern zu einer partiellen
Abbildung
: Q Q.
Sei a , x und q Q. Dann ist
( (q, a), x ) : falls (q, a) 6=
(q, ) = q,
(q, ax) =
: sonst.
Es gilt:
L(M ) = {w : (q0 , w) F }
381
17
382
Beispiel 2.27: F
ur einen Automaten mit folgendem Transitionsdiagramm
0
0
1
q0
1
383
385
386
nehmen wir an, dass wir uns im Zustand q1 befinden und das Restwort 1001 gegeben
gdw. (q0 , w) ` (q 0 , )
DR
AF
(q0 , w) = q 0
384
q1
387
2.4
Nichtdeterministischer endlicher
Automat (NEA)
M = (, Q, , Q0 , F )
388
besteht aus
389
390
391
392
393
394
Potenzmenge
395
396
397
398
399
400
401
Notation 2.30: Die Potenzmenge 2Q von Q wird auch mit (Q) oder Pot(Q) bezeichnet.
Ubergangsfunktion
.
404
Q Q verstanden werden. F
ur jeden Ubergang (q, a) = {q1 , . . . , qk } enthalt die
Relation die Tripel (q, a, q1 ), . . . , (q, a, qk ).
405
402
403
18
1
q0
q1
0, 1
0
q2
0, 1
406
407
408
Lauf, akzeptierte
Sprache
409
410
DR
AF
411
412
413
414
415
416
417
Die von M akzeptierte Sprache L(M ) ist die Menge aller Worter w , f
ur die es
einen akzeptierenden Lauf gibt.
Bemerkung 2.35: Im Gegensatz zu DEAs kann ein Wort w unterschiedliche Laufe
in einem NEA haben. Diese konnen akzeptierend oder auch verwerfend sein. F
ur die
Akzeptanz wird beim NEA lediglich gefordert, dass einer der Laufe f
ur w akzeptierend
ist.
Definition 2.36: F
ur einen NEA M = (, Q, , Q0 , F ) erweitern wir die Ubergangsfunktion zu einer Abbildung
: 2Q 2Q .
Erweiterte
Ubergangsfunktion
418
419
F
ur eine Zustandsmenge T Q ist (T, w) die Menge der Zustande, die man mit dem
Wort w von einem beliebigen Zustand p T erreichen kann.
Sei T Q und a , w . F
ur das leere Wort gilt
(T, ) = T
F
ur nichtleere W
orter, die mit dem Buchstaben a beginnen gilt :
[
(T, av) =
( (p, a), v ).
pT
Bemerkung 2.37:
(T, av) =
[
qT
( (q, a), v ) =
(q, a), v
qT
19
2.5. AQUIVALENZ
VON DEAS UND NEAS
Konfigurationen
von NEAs
Definition 2.38: F
ur die Konfigurationen einen NEAs M = (, Q, , Q0 , F ) gilt:
(q, av) ` (q 0 , v) gdw.
q 0 (q, a),
q, q 0 Q, a , v
Aquivalenz
von
endlichen
Automaten
2.5
Aquivalenz
von DEAs und NEAs
422
Definition 2.40: Seien M1 und M2 zwei endliche Automaten mit demselben Alphabet
. M1 und M2 heien
aquivalent, falls
DR
AF
L(M1 ) = L(M2 ).
423
wobei
(q, a) =
{(q, a)}
: falls (q, a) 6=
: sonst.
424
425
426
427
428
429
430
431
432
Die Ubergangsfunktion
dr
uckt wie bei die Erreichbarkeit aus:
[
0 (T, a) =
(q, a) f
ur alle a .
qT
20
2.5. AQUIVALENZ
VON DEAS UND NEAS
435
436
qi Ti , i = 0, 1, . . . , n.
433
434
IV: F
ur jeden Lauf T0 T1 . . . Tn gilt: T0 = Q0 und somit q0 T0 .
IA: Sei qi Ti
IS: Es gilt:
Ti+1 = 0 (Ti , ai+1 )
und
[
0 (Ti , ai+1 ) =
(q, ai+1 )
qTi
DR
AF
438
439
440
441
442
Wir w
ahlen einen beliebigen Zustand qn Tn F .
443
444
445
.
..
446
Beachte: Es gilt
(q, ani+1 ).
qTni
447
448
mit
449
450
452
453
q0
q1
q2
q3
q4
a,b
a,b
451
21
2.5. AQUIVALENZ
VON DEAS UND NEAS
q0
q0
q1
b
q0
q2
455
456
457
458
459
460
461
q1
a
q1
q4
a
q4
a
b
b
a
a
{q0}
{q0,q1}
{q0, q1}
{q0,q2}
{q0,q3}
{q0, q1, q4}
{q0, q1, q4}
DR
AF
462
q3
454
q0
q0
q1
q0
a
q0
463
D
{q0 }
{q0 , q1 }
{q0 , q2 }
{q0 , q3 }
{q0 , q1 , q4 }
{q0 , q2 , q4 }
{q0 , q3 , q4 }
{q0 , q4 }
464
465
a
{q0 , q1 }
{q0 , q1 }
{q0 , q1 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
b
{q0 }
{q0 , q2 }
{q0 , q3 }
{q0 }
{q0 , q2 , q4 }
{q0 , q3 q4 }
{q0 , q4 }
{q0 , q4 }
Die Endzust
ande des deterministischen Automaten sind jene Zustande, die die Endzust
ande des nichtdeterministischen Automaten (hier: q4 ) enthalten.
Der entstehende deterministische Automat ist somit gegeben als
AD = ({a, b},
22
{q0 }
{q0 , q1 }
{q0 , q2 }
{q0 , q3 }
{q0 , q1 , q4 }
DR
AF
{q0 , q4 }
{q0 , q2 , q4 }
{q0 , q3 , q4 }
466
467
468
469
2.6
470
471
472
NEAs mit
-Uberg
angen
-Uberg
ange sind spontane Zustandsver
anderungen, die unabhangig vom Zeichen unter
dem Lesekopf stattfinden und die Position des Lesekopfs unverandert lassen. Zu jedem
Zeitpunkt k
onnen beliebig viele -Uberg
ange stattfinden.
Definition 2.45: Ein -erweiterter NEA ist ein Tupel M = (, Q, , Q0 , F ), dessen Komponenten Q, , Q0 und F wie bei einem NEA definiert sind und dessen
Ubergangsfunktion
eine Funktion des Typs
: Q ( {}) 2Q
473
ist.
474
23
q0
q1
q2
c
Wir formalisieren das Verhalten -erweiterter NEAs durch die Erweiterung der Ubergangsfunktion zu einer Abbildung
: 2Q 2Q .
Sei T Q. Wie in der Mathematik oft u
blich verallgemeinern wir die Abbildung auf
Mengen und setzen
[
(T, ) =
(p, ).
pT
Zun
achst definieren wir den -Abschluss (T ). Dieser enthalt genau diejenigen Zustande,
DR
AF
475
wobei a und x .
Es gilt q (T, a) genau dann, wenn es einen Zustand p T gibt, von dem der Auto
und beliebig vielen -Ubergangen, in den Zustand q wechseln kann. Weiter gilt
q (T, a1 . . . an )
476
477
q0 T und
478
L(M ) = {w : (Q0 , w) F 6= }.
479
480
481
482
Offenbar kann jeder NEA (und damit auch jeder DEA) als -erweiterter NEA interpretiert werden. Das folgende Lemma belegt, dass auch die Umkehrung gilt:
Lemma 2.47: Zu jedem -erweiterten NEA gibt es einen NEA M 0 mit L(M ) =
L(M 0 ).
Beweis. Sei M = (, Q, , Q0 , F ) ein -erweiterter NEA. Wir definieren einen NEA
M 0 = (, Q, 0 , (Q0 ), F )
wie folgt:
0 (q, a) = ({q}, a)
483
f
ur alle q Q und a .
24
0 ( ({q}, a), v)
(Def. 0 )
(Def. )
qT
0 (
qT
s({q})
((q, a), ), v)
0 ( ((q, a), ), v)
(Bem. 2.37)
q(T )
0 ( ((q, a)), v)
(Def. (T, ))
q(T )
(was in der alten Definition bereits enthalten war), dann konnen wir auf das zweite
(. . .) verzichten und erhalten
0 (T, )
(T )
[
DR
AF
486
(T, av)
487
0 ( (q, a))
q(T )
491
Dies ist identisch mit der Definition von . Da die Endzustandsmenge gleich ist, sind
alle akzeptierenden L
aufe von M 0 auch akzeptierende Laufe von M . Da zusatzlich als
Startzustandsmenge (Q0 ) gewahlt wurde gilt dies auch umgekehrt.
Also gilt: L(M ) = L(M 0 ).
492
2.7
488
489
490
Vereinigung von
Automaten M1 M2
Lemma 2.48: F
ur zwei endliche Automaten M1 = (, Q1 , 1 , Q0,1 , F1 ) und M2 =
(, Q2 , 2 , Q0,2 , F2 ) mit disjunkten Zustandsmengen Q1 Q2 = konnen wird den
Automaten M1 M2 definieren, der die Vereinigung der akzeptierten Sprachen von M1
und M2 akzeptiert.
M1 M2 = (, Q1 Q2 , , Q01 Q02 , F1 F2 ),
wobei
(q, a) =
493
494
495
496
497
(q, a) =
498
499
500
501
502
1 (q, a) : falls q Q1
2 (q, a) : sonst.
1 (q, a) : falls q Q1
2 (q, a) : sonst.
25
Da die Zustandsmengen disjunkt sind, ist q0 nur in einer der beiden Anfangszustandsmengen. Sei k {1, 2}, so dass q0 Q0k , dann gilt aufgrund der Definition von , dass qi = k (qi1 , ai ) und mithin, dass alle qi Qk . Da zusatzlich
qn F1 F2 muss gelten qn Fk . Also ist q0 q1 . . . qn ein akzeptierender Lauf in
Mk und damit w L(M1 ) L(M2 ).
503
504
505
506
507
508
509
a
a
q0
q1
s0
M2
s1
s2
510
511
DR
AF
s0
s1
s2
512
Produktautomat
M1 M2
Lemma 2.50: F
ur zwei endliche Automaten
wobei
Es gilt:
F
ur zwei DEAs M1 , M2 entsteht so ein DEA, mit der Ubergangsfunktion
h1 (q1 , a), 2 (q2 , a)i : falls 1 (q1 , a) 6= und 2 (q2 , a) 6=
(hq1 , q2 i, a) =
: sonst.
515
Beweis. Sei w L(M1 ) L(M2 ) und q01 q11 . . . qn1 , q02 q12 . . . qn2 die zugehorigen akzeptierenden L
aufe. Dann ist (q01 , q02 ) . . . (qn1 qn2 ) ein akzeptierender Lauf in M1 M2
und umgekehrt.
516
513
514
b
M1
517
q0
a
a
q1
M2
s0
s1
a
s2
a
26
518
M1 M2
< q0 , s0 >
< q1 , s0 >
a
a
< q0 , s1 >
< q1 , s1 >
a
a
< q0 , s2 >
< q1 , s2 >
519
Komplement M
DR
AF
Es gilt:
L(M ) = L(M ).
520
521
522
523
524
525
526
527
528
529
530
q0
q0
a
531
Vereinigung f
ur
DEAs
532
533
534
535
536
q1
b
a
q1
q2
q2
a
27
Lemma 2.55: Seien M1 = (, Q1 , 1 , Q01 , F1 ) und M2 = (, Q2 , 2 , Q02 , F2 ) zwei endliche Automaten mit disjunkten Zustandsmengen. Wir konstruieren einen -erweiterten
NEA
M1 M2 = (Q1 Q2 , , , Q01 , F2 ).
Dieser verbindet die Endzustande von M1 mit den Anfangszustanden von M2 durch
einen -Ubergang.
Sei a {}, q Q1 Q2 :
538
539
DR
AF
537
M1
542
q0
q1
M2
s0
a
540
541
a
a
b
b
s1
s2
M1 M2
543
q0
a
a
q1
s0
b
s1
a
s2
a
Kleeneabschluss M 544 Lemma 2.57: Sei M = (, Q, , Q0 , F ) ein NEA mit oder ohne -Uberg
angen. Sei
545
q
/ Q.
546
Wir definieren einen -erweiterten NEA
M = (, Q {q }, , Q0 {q }, F {q }),
547
548
dessen Ubergangsfunktion
die Endzustande u
mit den Anfangsber einen -Ubergang
zust
anden verbindet.
gegeben. Aquivalent
l
asst sich auch definieren als:
= {(q, , q 0 ) | q F, q 0 Q0 }.
Entwurfsfassung vom 27. September 2016
28
2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN
550
551
552
q0
q1
q2
a
q0
q1
q2
a
DR
AF
553
554
556
Satz 2.59: Die Klasse der regularen Sprachen ist unter Vereinigung, Konkatenation,
Kleeneabschluss, Komplementbildung und Durchschnitt abgeschlossen.
557
2.8
555
558
559
560
561
L(REG )
L(NEA )
562
563
564
565
Aquivalenz
von endlichen Automaten, regul
aren
Grammatiken und regul
aren Ausdru
cken
Die Aussage, dass es zu jedem DEA M eine aquivalente regulare Grammatik G (mit
L(G) = L(M )) gibt, haben wir bereits in Lemma 2.22 bewiesen. Nun zeigen wir, dass
umgekehrt gilt:
Lemma 2.60: Zu jeder regularen Grammatik G gibt es einen NEA M mit L(G) =
L(M ).
567
F
ur die Zustandsmenge wird die Variablenmenge von G um ein Symbol erweitert:
Q = V {qF }, wobei qF
/ V.
568
566
570
B (A, a)
571
qF (A, a)
572
573
574
gdw. A aB
gdw. A a
f
ur A, B V und a .
Zus
atzlich gilt: (qF , a) = f
ur alle a .
Dann gilt f
ur alle w = a1 a2 . . . an + :
Entwurfsfassung vom 27. September 2016
29
2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN
gdw.
gdw.
gdw.
gdw.
gdw.
577
Weiter gilt:
L(G)
578
579
580
581
gdw. S
gdw. S F
gdw. L(M ).
576
w L(M )
es existiert ein akzeptierender Lauf A0 , A1 , . . . , An von M f
ur w
es gibt eine Folge A0 , A1 , . . . , An1 von Variablen mit A0 = S, qF (An1 , an )
und Ai+1 (Ai , ai+1 ), i = 0, . . . , n 2
es existieren A0 , . . . , An1 V mit A0 = S, An1 an
und Ai ai+1 Ai+1 , i = 0, . . . , n 2,
es existiert eine Ableitung S a1 a2 . . . an = w
w L(G)
582
-frei: P 0 = {S 0 | 1Z | 1, Z 0Z | 1Z | 0 | 1}
583
0,1
DR
AF
0,1
0,1
qF
584
L(REXP )
L(NEA )
585
586
587
588
Lemma 2.62: Zu jedem regularen Ausdruck gibt es einen NEA M mit L() =
L(M ).
Beweis. F
ur die elementaren regularen Ausdr
ucke konnen wir Automaten angeben:
=:
q0
589
590
=:
q0
tot
591
592
=a:
a 6= a0
Ma
q0
q1
a0
tot
a0
593
594
595
596
597
In Abschnitt 2.7 (Seite 25) haben wir gezeigt, dass wir Automaten konstruieren konnen,
die die Vereinigung, die Konkatenation und den Kleene-Abschluss der Sprache von
gegebenen Automaten akzeptieren. Damit konnen wir f
ur jeden gegebenen regularen
Ausdruck einen entsprechenden Automaten konstruieren.
Entwurfsfassung vom 27. September 2016
30
2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN
L(REXP )
599
Lemma 2.63: Zu jedem DEA M gibt es einen regularen Ausdruck mit L() =
L(M ).
600
598
q1
q2
0, 1
1
q3
0, 1
q4
0, 1
601
Informell ist
Lki,j = {w | M kommt von qi nach qj mit Wort w und besucht nur Zustande mit Index k}
604
605
606
607
608
DR
AF
609
Beispielsweise ist
L03,3 = {0, 1, },
L21,4 = {00, 01} ,
L31,4 = {00, 01} ,
L21,3 = {1},
L31,3 = {1w | w },
L11,4 = {},
L32,4 = {0, 1}
602
603
610
611
612
613
614
p0 = qi und
615
616
617
618
619
620
621
622
Wir konstruieren nun eine Familie von Sprachen Lki,j , die jene Worter w = a1 a2 . . . an
enthalten, f
ur die gilt:
(qi , w) = qj und
run i (w) = p0 p1 . . . pn ,
wobei p0 = qi und p1 . . . pn1 {q1 , q2 , . . . , qk } sowie pn = qj
=
=
{a : (qi , a) = qj },
{} {a : (qi , a) = qi }
F
ur k = 0, 1, . . . , n 1 gilt:
Lk+1
= Lki,j Lki,k+1 Lkk+1,k+1
i,j
Lkk+1,j
k
Nun k
onnen wir induktiv regulare Ausdr
ucke i,j
mit
k
Lki,j = L i,j
.
623
624
definieren:
0
F
ur L(i,j
) = L0i,j , i, j = 1, . . . , n gilt:
1 D.h.
31
625
0
Ist L0i,j = und i 6= j, so setzen wir i,j
= .
F
ur k = 0, 1, . . . , n 1 setzen wir
k+1
k
k
k
i,j
= i,j
| i,k+1
k+1,k+1
k
k+1,j
Da F = {qr , . . . , qm } gilt:
m
[
L(M ) =
j=r
n
n
Somit ist = 1,r
| |1,m
ein regularer Ausdruck mit L() = L(M ).
627
Beispiel 2.65: F
ur den Automaten M
DR
AF
626
0, 1
630
631
632
633
634
635
636
637
638
639
Isomorphie
640
641
2.9
Definition 2.66: Zwei DEAs M1 = (, Q1 , 1 , q01 , F1 ), M2 = (, Q2 , 2 , q02 , F2 ) heien isomorph, wenn es eine bijektive Abbildung f : Q1 Q2 gibt, so dass
(i) q02 = f (q01 ),
643
(ii) qf 2 = f (qf 1 )
645
ergibt sich:
0
L011 = {}
11
=
0
0
L12 = {1, 0} 12 = 0 | 1
0
L021 = {0}
21
=0
0
0
L22 = {1, } 22 = 1 |
Und damit
1
0
0
0
0
11
= 11
| 11
(11
) 11
= | =
1
0
0
0
0
12 = 12 | 11 (11 ) 12 = (0 | 1) | (0 | 1) = (0 | 1) | (0 | 1) = 0 | 1
1
0
0
0
0
(11
) 11
= 0 | 0 = 0 | 0 = 0
21
= 21
| 21
1
0
0
0
0
22 = 22 | 21 (11 ) 12 = (1 | ) | 0 (0 | 1) = (1 | ) | 0 (0 | 1)
2
Nun ist = 12
, sodass nur ein Ausdruck 2 berechnet werden muss:
2
1
1
1
1
12
= 12
| 12
(22
) 22
= (0 | 1) | (0 | 1) ((1 | ) | 0 (0 | 1)) ((1 | ) | 0 (0 | 1))
642
644
q2
628
629
q1
f
ur alle qf 1 F1 und qf 2 F2
f
ur alle q Q1 und a
32
646
647
Eigenschaft (iii) kann man sich wie folgt mit einem kommutativen Diagramm veranschaulichen:
Q1
Q1
(f, id)
Q2
f
2
Q2
Abbildung 2.1: Dieses Diagramm kommutiert, wenn M1 und M2 isomorph sind. f ist
der betreffende Isomorphismus. id steht f
ur die identische Abbildung id(x) = x.
648
Offensichtlich gilt:
649
Lemma 2.67: Sind die DEAs M1 und M2 isomorph dann gilt L(M1 ) = L(M2 ).
653
(ohne Beweis). N
aheres hierzu siehe z.B. [AB02, S.260ff].
651
652
Satz 2.68: F
ur jede regulare Sprache L gibt es genau einen bis auf Isomorphie ein
deutigen minimalen deterministischen Automaten ML mit totaler Ubergangsfunktion,
der L akzeptiert.
650
665
Zust
ande des Automaten werden dazu in Aquivalenzklassen
unterteilt, so dass jeweils
Zust
ande zusammengefasst werden, die sich gleich verhalten. Initial ist dies eine Einteilung in nur zwei Klassen (Endzustande und Nicht-Endzustande). Durch schrittweise
Verfeinerung werden die Klassen solange sukzessive aufgeteilt, bis der resultierende Automat nicht weiter verfeinert werden muss und die akzeptierte Sprache die Sprache L
ist. Hintergr
unde hierzu finden Sie z.B. in [AB02, VW11].
666
DR
AF
654
655
656
657
658
659
660
661
662
663
664
667
668
669
670
671
672
673
674
675
Wenn es kein solches Paar (q, q 0 ) Ri gibt, terminiert das Verfahren2 und wir bezeichnen das Ergebnis mit R.
Der folgende Algorithmus wird in der Literatur haufig als table filling algorithm bezeichnet.
Er arbeitet mit einer Tabelle, welche die Zustandspaare verwaltet. Aufgrund der Sym
metrieeigenschaft von Aquivalenzrelationen
kann man die Paare als ungeordnet ansehen
und nur einmal in der Tabelle ablegen.
In der Tabelle ist jedes Zustandspaar (q, q 0 ) markiert, f
ur das bereits nachgewiesen ist,
dass
R((q, a), (q 0 , a))
Alle u
ur die
brigen Paare sind unmarkiert. R besteht genau aus allen Paaren (q, q 0 ), f
nach Terminierung des Algorithmus kein Eintrag in der Tabelle vorhanden ist.
Wenn wir das Ergebnis des Algorithmus mit R bezeichnen, dann sind die Elemente
von R also Mengen
aquivalenter Zustande.
R = {A1 , . . . , Ak }
2 Bei
33
(, R, L , A0L , FL ),
678
A0L
[q0 ]R ,
679
FL
680
L (A, a)
677
= {Ai | Ai F },
=
[(q, a)]R f
ur ein beliebiges q A.
DR
AF
681
682
q0
q1
q2
q4
0, 1
q3
683
684
Eine Minimierung mit dem Table Filling Algorithmus ergibt die folgende Tabelle:
q1
q2
q3
q4
685
686
687
688
689
690
691
692
693
?
?
q0
?
q1
?
?
q2
?
q3
1. Zun
achst wurden hierbei Paare von End- und Nichtendzustanden markiert, d.h.
jede Zelle in der Zeile von q4 erhalt eine Markierung.
2. Anschlieend werden die verbleibenden Zustande paarweise u
uft. Hierbei
berpr
ergibt sich:
(q0 , q1 ) : ((q0 , 0), (q1 , 0)) = (q1 , q4 ), dieser Zustand ist bereits markiert (d.h. q1 und
q4 sind nicht
aquivalent), sodass auch das betrachtete Paar (q0 , q1 ) markiert
wird.
(q0 , q2 ) : ((q0 , 0), (q2 , 0)) = (q1 , q3 ), dieser Zustand ist bislang nicht markiert (d.h.
q1 und q4 sind moglicherweise aquivalent), sodass auch das betrachtete Paar
Entwurfsfassung vom 27. September 2016
34
694
695
696
698
699
700
701
702
703
704
705
706
(q0 , q3 ) : ((q0 , 0), (q3 , 0)) = (q1 , q4 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q0 , q3 ) markiert wird.
(q1 , q2 ) : ((q1 , 0), (q2 , 0)) = (q4 , q3 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q1 , q2 ) markiert wird.
(q1 , q3 ) : ((q1 , 0), (q3 , 0)) = (q4 , q4 ), dieser Zustand ist nicht markiert; ((q1 , 1), (q3 , 1)) =
(q0 , q2 ), dieser Zustand ist ebenfalls nicht markiert, sodass (q1 , q3 ) noch nicht
markiert werden kann.
(q2 , q3 ) : ((q2 , 0), (q3 , 0)) = (q3 , q4 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q2 , q3 ) markiert wird.
3. Beginne f
ur noch nicht markierte Felder erneut:
Es werden erneut (q0 , q2 ) und (q1 , q3 ) untersucht (wie oben). Beide verweisen
707
708
709
710
697
DR
AF
Aus den unmarkierten Zellen lasst sich erkennen, dass q0 aquivalent zu q2 , und q1
aquivalent zu q3 ist. Der minimale Automat ist damit definiert durch
711
wobei wir u
ber das folgende Transitionsdiagramm angeben:
{q0 , q2 }
{q1 , q3 }
{q4 }
0, 1
712
713
714
715
716
717
718
Sprachdefinition
lexical analyzer
2.10
In diesem Abschnitt betrachten wir zwei Beispiele. Zum einen, wie man mit Hilfe der
bisher eingef
uhrten Techniken einen lexical analyzer aus einer Sprachdefinition ableiten kann. Zum anderen, wie es moglich ist, automatisierbar zu beweisen, dass zwei
Automaten die gleiche Sprache akzeptieren.
35
Nachdem wir herausgefunden haben, dass die Sprache vom regularen Ausruck =
a baa erzeugt wird, konvertieren wir diesen nach dem bereits bekannten Verfahren in
einen -erweiterten Automaten, der L akzeptiert. Hierzu konstruieren wir zunachst die
Automaten f
ur die elementaren Ausdr
ucke a und b:
Ma
q0
q1
p0
Mb
a
a, b
723
725
a, b
q2
p2
a, b
a, b
Aus den elementaren Automaten konnen wir nun zunachst den Automaten f
ur den
Teil-Ausdruck a konstruieren:
Ma
q0
b
724
p1
q1
a, b
DR
AF
q2
a, b
q
726
727
Nun k
onnen wir diesem Automaten Mb nachschalten und erhalten:
Ma Mb
q0
q1
p0
a, b
q2
a, b
p1
a, b
p2
a, b
728
729
36
Ma Mb Ma Ma
q0
q1
p0
p1
a, b
b
a
a, b
q2
p2
a, b
a, b
t1
t0
b
t2
r0
a, b
b
r2
a, b
r1
a, b
t
DR
AF
730
a, b
731
732
733
Dieser Automat ist ein -erweiterter endlicher Automat mit 14 Zustanden. Um von
diesem Automaten zu einem lexical analyzer zu gelangen, sind die folgenden Schritte
notwendig:
734
735
Potenzmengenkonstruktion DEA
736
Minimierung ML
737
738
739
740
741
742
Die Minimierung ist insbesondere deshalb notwendig, weil bei der Potenzmengenkonstruktion ein Automat mit bis zu 214 Zustanden entstehen kann.
Um zu pr
ufen, ob zwei Automaten die gleiche Sprache erzeugen, konnte man diese
zun
achst Minimieren und danach einem Isomorphietest unterziehen. Da es sich beim
Isomorphietest f
ur Graphen um ein schwieriges Problem handelt, f
ur das keine effizienten Algorithmen bekannt sind, suchen wir nach einem anderen Weg.
Um zu pr
ufen, ob L(M1 ) = L(M1 ) gilt, konnen wir auch pr
ufen, ob L(M1 ) L(M2 )
und L(M2 ) L(M2 ) gilt. Jede dieser Teilmengenbeziehungen kann wie folgt effizient
bestimmt werden:
L(M1 ) L(M2 ) gdw. L(M1 ) L(M2 ) =
Aquivalenztest
f
ur
Automaten
743
M1
q0
M2
744
745
gdw. L(M1 M2 ) =
p0
M2
p0
q1
p1
p1
0, 1
0, 1
0, 1
37
REGULARE
(q0 , p0 )
M1 M2
(q1 , p0 )
1
(q0 , p1 )
(q1 , p1 )
0, 1
746
748
749
750
751
752
753
Man erkennt, dass der Endzustand nicht vom Anfangszustand aus erreichbar ist. Dies
kann durch eine einfache Erreichbarkeitsanalyse algorithmisch ermittelt werden (Tiefenoder Breitensuche).
Die Pr
ufung, ob umgekehrt auch L(M2 ) L(M1 ) gilt, f
uhrt zu folgendem Ergebnis:
Zun
achst m
ussen wir den Automaten M1 mit einer totalen Ubergangsfunktion
ausstatten damit der danach komplementiert werden kann (Komplementbildung setzt Totalitat
voraus).
M1
q0
M1tot
q0
1
M1tot
DR
AF
747
754
755
q0
q1
q1
q2
q1
q2
0, 1
0, 1
0, 1
0, 1
0, 1
M1tot M2
(q0 , p0 )
(q1 , p0 )
(q0 , p1 )
(q1 , p1 )
0, 1
(q2 , p0 )
1
(q2 , p1 )
0, 1
756
760
Man erkennt leicht, dass der Endzustand (q2 , p1 ) vom Anfangszustand (q0 , p0 ) mit dem
Wort 01 erreicht werden kann (dies kann in einer Erreichbarkeitsanalyse ermittelt werden). Also ist L(M1 M2 ) 6= und L(M2 ) 6 L(M1 ).
Die beiden Automaten M1 und M2 akzeptieren also nicht die gleiche Sprache.
761
2.11
757
758
759
762
763
764
765
766
Es gibt Sprachen, die nicht regular sind. Um dies nachzuweisen nutzt man aus, dass
ein endlicher Automat einen Zustand wiederholt besuchen muss, wenn er ein Wort
akzeptiert, das mehr Buchstaben besitzt als der Automat Zustande hat.
Wenn M = (, Q, , q0 , F ), |Q| = n und x L(M ) mit einer Lange m = |x| n, dann
kann x wie folgt zerlegt werden:
38
REGULARE
Sei x = a1 a2 . . . am und sei q0 , q1 , . . . , qm der zu x gehorende Lauf von M . Wir betrachten den Anfang des Laufs
q0 q1 . . . , qn
767
768
769
770
Da dieses St
uck des Laufs bereits mehr Zustande verwendet als der Automat Zustande
hat muss es zwei Indizes geben f
ur die die Zustande gleich sind. Seien i, j die ersten
zwei Indizees f
ur die dies gilt.
Sei 0 i < j n f
ur die qi = qj gilt.
Wir zerlegen x in drei Teilworte:
x = uvw = a1 . . . ai ai+1 . . . aj aj+1 . . . am
| {z } | {z } | {z }
=u
=v
=w
=v
=v
=v
=w
Satz 2.73: F
ur jede regulare Sprache L gibt es eine ganze Zahl n 1, so dass
es f
ur jedes Wort x L mit |x| n eine Zerlegung gibt mit:
Pumping Lemma
f
ur regul
are
Sprachen
|v| 1,
x = uvw,
|uv| n,
DR
AF
so dass f
ur alle k N0 : uv k w L
u, v, w
771
772
773
=v
=w
wie oben.
774
775
x0 = uv k w
Der zu x0 geh
orende Lauf hat die Form
q0 , . . . , qi , (qi+1 , . . . , qj )k , qj+1 , . . . , qm .
776
777
Pumping Lemma
Beweise
Bemerkung 2.74: Das Pumping Lemma kann nicht verwendet werden, um die Regularit
at von L nachzuweisen (L REG ), weil es sich um eine Folgerung aus dieser
Eigenschaft handelt, die nicht umgekehrt werden kann.
Mit A B gilt nicht B A.
778
779
Im Falle des Pumping Lemmas ist A die Aussage: L ist eine regul
are Sprache. B ist der
ganze Rest des Satzes.
G
ultig ist die folgende Umkehrung:
AB
780
781
782
783
784
gdw. B A
39
REGULARE
F
ur jede ganze Zahl n 1 gibt es ein Wort x L mit |x| n so dass f
ur
jede Zerlegung
x = uvw,
785
786
787
788
789
790
791
792
793
n n
{a b } 6 REG
|uv| n,
u, v, w
794
795
Beweis. Zu zeigen:
PL Beweis durch
Widerspruch
|v| 1,
F
ur jede ganze Zahl n 1 gibt es ein Wort x L mit |x| n so dass f
ur
jede Zerlegung
|v| 1,
|uv| n,
u, v, w
DR
AF
x = uvw,
796
F
ur jede ganze Zahl n 1
W
ahlen wir w = an bn ; f
ur dieses w gilt |w| n.
F
ur jede Zerlegung
x = uvw,
|v| 1,
|uv| n,
u, v, w
. . a} a
. . a} b| .{z
. . }b
x = u v w = (ai ) (aj ) (am bn ) = a
. . a} a
| .{z
| .{z
| .{z
|u| = i |v| = j m-mal n-mal
{z
}
|
|w| = l = m + n
uv k w = uv 0 w = ai am bn ,
797
798
i+m<i+j+m=n
also ist uv k w 6 L.
Folglich ist L nicht regul
ar.
{an bn } 6 REG
799
Beispiel 2.77: Die Sprache L = {an bn | n No } {a, b} ist nicht regular.
durch Widerspruch
Beweis. Angenommen L ware regular, dann gabe es eine ganze Zahl n 1, so dass es
f
ur jedes Wort x L mit |x| n eine Zerlegung gabe mit:
x = uvw,
800
801
802
|v| 1,
|uv| n,
u, v, w
so dass f
ur alle k N0 : uv k w L
Sei n die Zahl, die nach Annahme existieren m
usste. F
ur jedes Wort x mit |x| n
m
usste das PL gelten. Also auch f
ur x = an bn .
40
REGULARE
F
ur dieses gibt es gem
a unserer Annahme eine Zerlegung:
x = uvw,
803
|v| 1,
|uv| n,
so dass f
ur alle k N0 : uv k w L.
Sei i = |u|, j = |v|, l = |w|, da gilt: i + j n,
Zusammensetzung:
u, v, w
|w| = l = m + n
804
805
806
also ist uv k w 6 L
807
808
Beweis.
F
ur jede ganze Zahl n 1
2
W
ahlen wir w = an ; f
ur dieses w gilt |w| n.
F
ur jede Zerlegung
DR
AF
{an } 6 REG
i+m<i+j+m=n
uv k w = uv 0 w = ai am bn ,
x = uvw,
|v| 1,
|uv| n,
u, v, w
i + j + l = n2 .
809
810
811
41
813
814
815
816
817
818
Kontextfreie Sprachen
3.1
Kontextfreie Grammatiken
In Abschnitt 2.11 haben wir gesehen, dass es Sprachen gibt, die nicht regular sind (z.B.
{an bn }). Als n
achstes betrachten wir daher die Klasse der kontextfreien Sprachen. Auch
diese umfasst nicht alle Sprachen die es gibt, aber sie stellt eine weitere sehr wichtige
Sprachklasse dar. Insbesondere die deterministisch kontextfreien Sprachen spielen im
Compilerbau eine groe Rolle und tatsachlich sind alle u
blichen Programmiersprachen
deterministisch kontextfrei.
In Definition 1.10, Abschnitt 1.2, haben wir allgemein definiert, was man unter einer Grammatik f
ur eine Sprache versteht. F
ur kontextfreie Sprachen gilt die folgende
Spezialisierung:
DR
AF
819
Kapitel 3
812
820
821
822
823
Kontextfreie
Grammatik
kfG
P V (V )
kfG f
ur {an bn }
824
kfG f
ur AL
Beispiel 3.3: Die Sprache der Aussagenlogik (AL) besteht aus den syntaktisch korrekten booleschen Ausdr
ucken u
ber der Variablenmenge {x0 , x1 , . . .}. Sie kann durch
die folgende kfG erzeugt werden:
G = (, V, P , S)
= {x, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , , , ), (}
V = {S, X, Y }
P = {S X | (S) | (S S) | (S S),
X x0 | x1Y | x2Y | x3Y | x4Y | x5Y | x6Y | x7Y | x8Y | x9Y,
Y | 0Y | 1Y | 2Y | 3Y | 4Y | 5Y | 6Y | 7Y | 8Y | 9Y }
42
kfG f
ur eine Programmiersprache
Beispiel 3.4: Wir beginnen die Definition einer minimalistischen Programmiersprache, die nur Bin
arzahlen kennt und bei der die Variablen stets mit dem Buchstaben x
beginnen, Funktionen stets mit dem Buchstaben f .
G = (, V, P , S)
= {x, f, 0, 1, }, {, ), (, ; , ., :, =, +, , , /, }
V = {S, Decl, Zahl, X, Y, Zuweisung, Arith}
P = {S S; S | Decl | Zuweisung |
Decl int
X := Zahl
X x Zahl
Zahl 0|1Y | 1Y
Y | 0Y | 1Y
Zuweisung X := Zahl | X := Arith
Arith Zahl | X | (Arith) | (Arith + Arith) | (Arith Arith)
in dieser Grammatik k
onnen wir z.B. das folgende Programm ableiten:
S
x1 := 101;
int
x2 := 0;
DR
AF
int
x1 := 111;
825
826
827
828
829
830
Ableitungsbaum,
parse tree
831
832
3.1.1
Ableitungsb
aume
Betrachten wir die Ableitung aus dem Beispiel 3.3, dann erkennt man schnell, dass es
mehrere m
ogliche Ableitungen des Ausdrucks (((x3 x2) (x1))) gibt. Denn bei
kontextfreien Grammatiken konnen in einer Ableitung mehrere Variabeln auftreten. Es
ist nicht n
aher bestimmt, welche von diesen als nachste abgeleitet werden muss. Dies
f
uhrt uns zu folgender Definition:
Definition 3.5: F
ur eine kontextfreie Sprache L kann die Ableitung eines
Wortes w L durch seinen Ableitungsbaum dargestellt werden.
Dieses Konzept definieren wir etwas allgemeiner f
ur beliebige Worter x { V } , die
w
ahrend des Abeitungsprozesses auftreten konnen:
A x1 x2 . . . xn1 xn = x
833
834
835
836
837
838
839
840
841
842
wird durch seinen Ableitungsbaum (parse tree) dargestellt. Dies ist ein gerichteter Baum,
dessen Knoten mit Variablen oder Buchstaben beschriftet sind, so dass gilt:
Die Wurzel ist mit A markiert.
Jeder innere Knoten v ist mit einem Nichtterminal X V beschriftet; die Verzweigungen in v stellen eine der in der Ableitung A x1 . . . xn = x
angewandten Regeln dar. Genauer:
Wenn die Kindknoten v1 , . . . , vk von v von links nach rechts mit den Symbolen
X1 , . . . , Xk beschriftet sind, dann muss X X1 Xk P gelten.
Die Markierungen der Blatter ergeben von links nach rechts gelesen das Wort
x.
43
DR
AF
Abbildung 3.1: Parse tree der aussagenlogischen Formel: (((x3 x2) (x1)))
Rechtsableitung,
Linksableitung
Definition 3.7: Sei G = (, V, P , S) eine kfG. Wir definieren die Rechtsableitungsrelation R wie folgt. Es gilt
u R u0 ,
845
846
847
848
849
850
851
Eindeutigkeit,
Mehrdeutigkeit
854
855
3.1.2
852
853
856
857
858
859
Die Chomsky-Normalform
Jede kontextfreie Grammatik1 kann in einer standardisierten Art und Weise notiert
werden, der sogenannten Chomsky Normalform2 . Vorbereitend hierzu zeigen wir, dass
eine Grammatik von -Regeln, Kettenregeln und nutzlosen Variablen befreit werden
kann.
-freie kontextfreie 860 Definition 3.9: Eine kontextfreie Grammatik G = (, V, P , S) heit -frei, falls gilt:
Grammatik
861
1. Aus A folgt A = S.
862
863
44
864
865
866
867
870
Der folgende Algorithmus berechnet zunachst die Menge der Variablen, aus denen in
einem einzigen Schritt das leere Wort hergeleitet werden kann. Danach werden alle
Variablen gesucht, aus denen Worter abgeleitet werden konnen, die wiederum nur aus
Variablen bestehen, die zu abgeleitet werden konnen:
868
869
DR
AF
871
872
873
874
Nun entfernen wir alle -Regeln aus der Grammatik G0 . Sei G00 = (, V 0 , P 00 , S 0 ) wobei
V 0 und S 0 wie in G0 gew
ahlt. Das neue Produktionssystem P 00 wird durch folgenden
Algorithmus berechnet:
Algorithmus 3 berechnet das Produktionssystem einer aquivalenten -freien kfG
Require: V := {A V : A } // aus Algorithmus 2
P 00 := P 0 \ {A | A V }
// entferne alle -Regeln
for all B V mit B xAy P 00 und A V , |xy| 1 und B xy 6 P do
P 00 := P 00 {B xy}
end for
return P 00
Offenbar ist die so definierte Grammatik G00 eine -freie Grammatik mit
L(G00 ) = L(G0 ) = L(G).
875
Beispiel 3.11:
G = (, V, P , S)
= {a, b, c}
V = {S, A, B, C, D, E}
P = {S aAb |
A cS | B |
B bB | aA | C
C cC | c | A
D aSb | E
E aE}
45
G0 = (, V 0 , P 0 , S 0 )
= {a, b, c}
V 0 = {S 0 } {S, A, B, C, D, E}
P 0 = {S 0 S |
S aAb |
A cS | B |
B bB | aA | C
C cC | c | A
D aSb | E
E aE}
Algorithmus 2:
Beispiel zu Alg. 2
V = {S, A}
B aA
CA
DR
AF
D aSb
V = {S, A, B, C, D}
Beispiel zu Alg. 3
Algorithmus 3:
G00 = (, V 0 , P 00 , S 0 )
V 0 = {S 0 , S, A, B, C, D, E}
V = {S, A, B, C, D} //R
uckgabe von Algorithmus 2
P 00 = {S 0 S |
S aAb | ab
A cS | B | c
B bB | aA | a | b | C
C cC | c | A
D aSb | E | ab
E aE}
Nutzlose Variablen
876
877
878
879
880
881
882
883
Lemma 3.13: Zur jeder kfG G mit L(G) 6= gibt es eine aquivalente kfG G0 ohne
nutzlose Variablen.
Beweis. Wir k
onnen eine zu G aquivalente Grammatik durch den folgenden Algorithmus 4 berechnen. Dieser berechnet zunachst, aus welchen Variablen in V u
berhaupt
ein Wort aus abgeleitet werden kann (das Ergebnis ist G0 ). Danach wird ermittelt,
welche Variablen und welche Buchstaben innerhalb einer Ableitung auftreten konnen.
Diese werden zur Grammatik G00 hinzugef
ugt.
46
DR
AF
//Teil 2: Elimination aller Variablen und Buchstaben, die nicht abgeleitet werden
k
onnen sowie der entsprechenden Regeln des Produktionssystems
00
:= {S}; 00neu := ; P 00 :=
Vneu
repeat
00
V 00 := Vneu
00
00
:= neu
for all A V 00 do
for all A x P 0 do
00
00
{B V 0 | B kommt in x vor}
Vneu
:= Vneu
00
00
neu := neu {a | a kommt in x vor}
P 00 := P 00 {A x}
end for
end for
00
= V 00 und 00neu = 00
until Vneu
00
return G := (00 , V 00 , P 00 , S)
884
reduzierte kfG
885
886
Definition 3.14: Eine kfG G heit reduziert, wenn sie keine nutzlosen Symbole (Terminale oder Nichtterminale) enthalt.
Beispiel 3.15: Wir betrachten wieder die selbe Grammatik wie zuvor; zur besseren
Lesbarkeit bezeichnen wir die Grammatik in diesem und den folgenden Beispielen aber
stets mit G = (, V, P , S). Achtung: im vorherigen Beispiel war das Startsymbol mit S
bezeichnet; um Verwechslungen zu vermeiden, benennen wir daher das Nichtterminal
S in T um und bezeichnen das Startsymbol S 0 mit S. Es ist also
G = (, V, P , S)
= {a, b, c}
V = {S, T, A, B, C, D, E}
P = {S T | //ehemals S 0
T aAb | ab //ehemals S
A cT | B | c
B bB | aA | a | b | C
C cC | c | A
D aT b | C | ab
E aE}
Beispiel zu Alg. 4
47
00
00
Beginnend mit Vneu
= {S} werden sukzessive alle aus Vneu
erreichbaren Variablen hinzugef
ugt (und analog entsprechende Buchstaben und Regeln des Produktionssystems);
schlielich erhalten wir:
00
Vneu
= {S, T, A, B, C}
00neu = {a, b, c}
P 00 = {S T |
T aAb | ab
A cT | B | c
B bB | aA | a | b | C
C cC | c | A}
887
888
889
890
Definition 3.16: Sei G = (, V, P , S) eine kfG. Eine Regel der Form A B mit
A, B V wird Kettenregel genannt.
Kettenregeln tragen zur Erzeugung eines Worts nicht bei. Sie konnen wie im folgenden
Algorithmus 5 gezeigt in zwei Schritten eliminiert werden:
Kettenregel
DR
AF
Ensure: Aquivalente
kfG G0 ohne Kettenregeln
//Teil 1: Entferne Zyklen
V 0 := V ; P 0 := P
while es gibt A1 , . . . , An V
mit A1 A2 , A2 A3 , . . . , An1 An , An A1 P do
Ersetze in P 0 in allen Regeln A2 , . . . , An durch A1 .
V 0 := V 0 \ {A2 , . . . , An }
P 0 := P 0 \ {A1 A1 }
end while
Numeriere V 0 = A1 , . . . , Ak , so dass gilt: aus Ai Aj folgt i < j.
// Teil 2: Entferne die verbleibenden Kettenregeln
for i = k 1, . . . , 1 do
for j = i + 1, . . . , k do
if Ai Aj then
P 0 := P 0 \ {Ai Aj };
for all Aj x P 0 do
P 0 := P 0 {Ai x}
end for
end if
end for
end for
return G0 := (, V 0 , P 0 , S)
Beispiel 3.17: Wir betrachten wieder die Grammatik
G = (, V, P , S)
V = {S, T, A, B, C}
= {a, b, c}
P = {S T |
T aAb | ab
A cT | B | c
B bB | aA | a | b | C
C cC | c | A}
Beispiel zu Alg. 5
48
B C A:
P 0 = {S T |
T aAb | ab
A cT | A | c
A bA | aA | a | b
A cA | c}
0
V = {S, T, A}
wobei die Ableitungen von A zusammengefasst werden konnen und die Regel A A
gestrichen werden muss. Nun m
ussen im 2. Teil noch verbleibende Kettenregeln (hier:
S T ) entfernt werden. Hierzu werden zunachst die Variablen so numeriert, dass S
vor T liegt;
V 0 = {A1 , A2 , A3 }
A1 = S, A2 = T, A3 = A
DR
AF
T ab | aAb
A cT | c | bA | aA | a | b | cA}
891
892
893
Chomsky
Normalform, CNF
Nach Durchf
uhrung dieses Algorithmus sollte die entstandene Grammatik nochmal auf
nutzlose Variablen gepr
uft und ggf. reduziert werden. In unserem Beispiel ist dies nicht
notwendig, die Grammatik ist weiterhin in reduzierter Form.
894
895
kfG CNF
896
897
898
899
D.h. die rechte Seite von Regeln besteht entweder aus einem Terminal oder aber zwei
Nichtterminalen.
Satz 3.19: Zu jeder kontextfreien Grammatik G mit 6 L(G) gibt es eine aquivalente
kontextfreie Grammatik G0 in Chomsky Normalform.
Beweis. Wir gehen davon aus, dass G bereits -frei ist, keine nutzlosen Variablen besitzt
und Kettenregeln eliminiert wurden.
Zun
achst f
ugen wir der Grammatik f
ur jedes Terminal a ein neues Nichtterminal Xa
und eine Regel Xa a hinzu:
V := V {Xa | a },
P := P {Xa a | a }
Nun modifizieren wir alle Regeln auf deren rechten Seite ein Terminal nicht alleine
steht. Diese haben die Form
A yaz
900
mit
a , y, z ( V ) , |yz| 1.
49
901
902
zu ersetzen. Dabei sind R1 , . . . , Rk2 neue Nichtterminale. Dies liefert der folgende
Algorithmus 6.
DR
AF
Ensure: Aquivalente
Gammatik G0 in CNF
0
V := V {Xa | a }
// Xa neue Variable, d.h. Xa 6 V
P 0 := P {Xa a | a }
for all a do
for all A x P 0 mit |x| 2 do
Ersetze alle a in x durch Xa .
end for
end for
// Jetzt haben alle Regeln die Form A a oder A B1 B2 . . . Bk mit k 2
903
V = {S, T, A}
= {a, b, c}
P = {S aAb | ab,
T aAb | ab,
A cT | c | aA | bA | cA | a | b}
Beispiel zu Alg. 6
50
P 0 = {S Xa R | Xa Xb ,
T Xa R | Xa Xb ,
Da hier nur Regeln mit einer Ableitung von maximal 3 Nichtterminalen auftreten,
ben
otigen wir je solcher Ableitung lediglich ein neues Nichtterminal R (d.h. insbesondere, dass die for -Schleife in diesem Fall nicht durchlaufen werden muss). Da sich die
Ableitung auf 3 Nichtterminale von S Xa AXb und T Xa AXb nicht unterscheidet,
k
onnen wir diese beiden Reste zusatzlich zusammenfassen, sodass auch insgesamt nur
eine neue Variable notwendig ist. Es folgt:
DR
AF
A Xc T | a | b | c | Xa A | Xb A | Xc A,
Xa a,
Xb b,
Xc c,
R AXb }
905
906
3.1.3
904
Wortproblem
907
908
909
910
911
912
913
914
915
916
Das Wortproblem fu
r kontextfreie Sprachen
917
51
918
919
A BC P
B V [i, l]
C V [i + l, j l]
DR
AF
920
in CNF
V [i, j] := V [i, j] A V mit
und
end for
end for
end for
return (S V [1, n])
Beispiel zum
CYK-Alg.
921
Algorithmus 8:
4
3
2
1
922
923
924
925
926
927
928
929
{R, A, S, T }
{A}
{A, S, R, T }
{Xa , A}
a
{R, A}
{A}
{Xb , A}
b
{A, R}
{Xc , A}
c
{Xb , A}
b
Diese Tabelle l
asst sich sukzessive von unten nach oben f
ullen.
Beispielhaft betrachten wir Zelle V [2, 3] genauer: F
ur Zelle V [2, 3] werden diejenigen
Nichtterminale gesucht, die
(1) zu einem Nichtterminal aus Zelle V [2, 1] und einem Nichtterminal aus Zelle V [3, 2]
(in dieser Reihenfolge), oder
(2) zu einem Nichtterminal aus Zelle V [2, 2] und einem Nichtterminal aus Zelle V [4, 1]
(in dieser Reihenfolge) abgeleitet werden konnen;
es ist R AXb aus Fall (1) und A Xb A aus Fall (2).
Es ist S in Zelle V [1, 4] enthalten, d.h. das Wort ist ableitbar in der gegebenen Grammatik, abcb L(G0 ):
S Xa Y Xa AXb Xa Xb AXb abcb
930
Hinweis: Dieser Pfad selbst kann nicht unmittelbar aus der Tabelle abgelesen werden!
931
3.1.4
938
F
ur regul
are Sprachen haben wir durch die Konstruktion entsprechender Automaten
gezeigt, dass diese abgeschlossen sind unter Vereinigung, Durchschnitt, Konkatenation,
Komplement und Kleenestern. Kontextfreie Sprachen sind unter Vereinigung, Konkatenation und Kleenestern abgeschlossen, nicht aber unter Durchschnitt und Komplement.
Seien im folgenden L1 und L2 zwei kfS u
ber dem Alphabet und G1 = (, V1 , P1 , S1 )
und G2 = (, V2 , P2 , S2 ) zwei Grammatiken mit L(G1 ) = L1 , L(G2 ) = L2 . O.B.d.A3
k
onnen wir annehmen, dass V1 V2 = .
939
Lemma 3.23: F
ur zwei kontextfreie Sprachen L1 , L2 ist L1 L2 ebenfalls kontextfrei.
932
933
934
935
936
937
Vereinigung von
kfS
3 Ohne
Beschr
ankung der Allgemeinheit
52
Konkatenation
941
Lemma 3.24: F
ur zwei kontextfreie Sprachen L1 , L2 ist L1 L2 ebenfalls kontextfrei.
Beweis. Wir definieren die Grammatik G1 G2 = (, V, P , S) wie folgt:
wobei S
/ V1 V2 ein neues Startsymbol und
V = V1 V2 {S}
P = P1 P2 {S S1 S2 }.
Offenbar ist L(G1 G2 ) kontextfrei und es gilt:
DR
AF
942
Kleeneabschluss
943
Lemma 3.25: F
ur eine kfS L ist L ebenfalls kontextfrei.
und
P 0 = P {S 0 , S 0 SS 0 }.
944
Pumping Lemma
f
ur kfS
945
946
947
Lemma 3.26: Sei L eine kontextfreie Sprache. Dann gibt es eine nat
urliche Zahl n,
so dass sich jedes Wort z L der Lange |z| n wie folgt zerlegen lasst: z = uvwxy,
wobei
948
(1) |vx| 1
949
(2) |vwx| n
950
(3) uv k wxk y L f
ur alle k N0 .
951
Angenommen L w
are kontextfrei und n die Zahl aus dem Pumping Lemma, dann sei
z = an bn cn .
z kann in z = uvwxy zerlegt werden, so dass die Eigenschaften (1), (2) und (3) aus
dem Pumping Lemma erf
ullt sind. Weil
|vwx| n
952
53
3.2. KELLERAUTOMATEN
v 6= oder x 6=
953
ist die Anzahl der Vorkommen der drei Symbole a, b und c in uv 2 wx2 y unterschiedlich.
Daher ist
uv 2 wx2 y
/ L.
kfS und
Durchschnitt
954
955
Lemma 3.28: Die Klasse der kontextfreien Sprachen ist nicht abgeschlossen unter
Durchschnittsbildung.
Beweis. Die Sprachen
L1 = {an bn cm : n, m 1},
L2 = {an bm cm : n, m 1}
956
957
haben wir jedoch zuvor gezeigt, dass diese nicht kontextfrei ist.
Lemma 3.29: Die Klasse der kontextfreien Sprachen ist nicht abgeschlossen unter
Komplementbildung.
DR
AF
Komplement von
kfS
958
Beweis. Es gilt:
L1 L2 = L1 L2
959
960
961
W
aren kontextfreie Sprachen unter der Vereinigung abgeschlossem, so w
urde aufgrund
der Abgeschlossenheit unter Komplementbildung auch die Abgeschlossenheit unter Durchschnittsbildung gelten. Dass dies nicht gilt, haben wir aber soeben gezeigt.
962
Satz 3.30: Die Klasse der kontextfreien Sprachen ist abgeschlossen unter
Abschlusseigenschaften
Vereinigung,
nicht-kontextfreier 963
Sprachen
964
Konkatenation und
965
Kleeneabschluss
966
967
3.2
Nichtdeterministischer
Kellerautomat
(NKA)
Kellerautomaten
K = (, Q, , , q0 , , F )
968
bestehend aus
969
einem Eingabealphabet ,
970
971
einem Kelleralphabet ,
972
einem Anfangszustand q0 Q,
973
einem Kellerstartsymbol ,
974
975
einer Ubergangsfunktion
: Q ( {}) 2Q .
54
3.2. KELLERAUTOMATEN
Konfiguration
976
bestehend aus
977
978
979
980
981
Konfigurationsrelation
982
1. Aus (p, y) (q, a, X) und a folgt (q, aw, Xz) ` (p, w, yz).
DR
AF
983
984
985
986
akzeptierte Sprache
Dabei sind q, p Q, X , a , z, y .
`K (oder kurz ` ) bezeichnet die transitive, reflexive H
ulle von `.
Definition 3.35: Sei K = (, Q, , , q0 , , F ) ein NKA. Die durch leeren Keller
akzeptierte Sprache ist
L (K ) = w : (q0 , w, ) ` (q, , ) f
ur ein q Q .
Die durch die Endzust
ande akzeptierte Sprache ist
L(K ) = w : (q0 , w, ) ` (q, , z) f
ur ein z , q F .
987
Beispiel 3.36: F
ur die Sprache
L = {an bn | n N0 }
988
989
k
onnen wir einen Kellerautomaten K angeben, der L akzeptiert. K kann wie folgt durch
sein Transitionsdiagramm dargestellt werden:
a
aaa
990
991
992
993
994
995
996
a
a
qa
b
a
b
a
qb
qf
K arbeitet wie folgt: K startet in Zustand q . Ist die Eingabe leer, akzeptiert er. Ist das
55
3.2. KELLERAUTOMATEN
997
998
gelesen, dann ist am Ende des Worts der Keller leer (bis auf ) und K wechselt in den
Akzeptanzzustand qf .
Formal ist K wie folgt definiert:
K = ({a, b}, {q , qa , qb , qf }, {a, }, , q , , {q , qf }),
wobei
(q , a, ) = {(qa , a)}
(qa , b, a) = {(qb , )}
(qb , , ) = {(qF , )}
999
1000
1001
Aquivalenz
der Akzeptanzbedingungen
1005
1003
b
a
DR
AF
a
aaa
1004
1002
q0
a
a
qa
b
a
qb
qf
qleer
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
K 0 verh
alt sich im Allgemeinen wie K , auer wenn K einen akzeptierenden Zustand
(q0 oder qf ) erreicht. Dann wird das -Symbol vom Stack entfernt.
Man erkennt, dass der Automat K die gleiche Sprache bei leerem Stack akzeptiert, wie
K mit Endzust
anden.
F
ur unseren Beispielautomaten ist diese Konstruktion zwar korrekt, aber im allgemeinen Fall treten hierbei zwei Probleme auf:
1. Wenn wir die Funktionsweise des Automaten nicht genau kennen, konnen wir
nicht wissen, was noch auf dem Stack liegt.
2. Wenn w
ahrend der Berechnung in K der Stack zwischendurch leer ist, akzeptiert
K , w
ahrend K eventuell nicht akzeptieren w
urde.
1019
1020
q 6 F
56
3.2. KELLERAUTOMATEN
1021
a
aaa
K0
q00
a
a
q0
b
a
b
a
qa
qb
qf
qleer
1022
1023
f
ur alle X {0 }, d.h. die mit X annotierten Kanten stehen f
ur ||+1 Kanten.
1024
DR
AF
0 = {(q00 , , , q0 , 0 )}
Damit gilt f
ur einen akzeptierenden Lauf (mit Endzustanden) in K
(q0 , w, ) `K (p, , A1 . . . An ),
p F, Ai
Umgekehrt kann jeder akzeptierende Lauf von K in vier Teile zerlegt werden:
(q00 , w, ) `K 0 (q0 , w, 0 )
`K 0
(qf , , ax),
(3.1)
0
qf F, a { }, x ( { })
(3.2)
`K 0 (qleer , , x)
(3.3)
`K 0 (qleer , , )
(3.4)
Der Teilschritt 3.2 endet tatsachlich mit dem leeren Wort in einem Zustand, der ein
Endzustand von K ist, denn alle Kanten zu qleer verarbeiten keine Zeichen der Eingabe.
Auerdem ist der Stack nicht leer (x 6= ), da er mindestens noch das Symbol 0 enthalt.
Damit ist
(q0 , w, 0 ) `K 0 (qf , , ax)
1025
1027
Dass auch die Umkehrung gilt zeigen wir im nachsten Schritt und veranschaulichen es
uns wie zuvor an einem Beispiel:
1028
Beispiel 3.39:
1026
1029
1030
a
a
q0
b
a
q1
b
a
a
aaa
57
3.2. KELLERAUTOMATEN
1031
1032
1033
1034
1035
Der Automat K akzeptiert erneut die Sprache an bn , diesmal bei leerem Stack.
Wir konstruieren einen NKA K 0 mit L(K 0 ) = L (K ). Die Idee hierbei ist, dass sich K
genauso verh
alt wie K ; die Ausnahme hierbei ist, dass bei leerem Keller in einen akzeptierenden Zustand gewechselt wird. Um dies zu erkennen, wird wie im vorangegangenen
Fall zun
achst ein neues Symbol 0 auf den Keller gelegt.
q00
q0
a
a
a
aaa
b
a
b
a
q1
qf
1036
1038
1037
DR
AF
wobei 0
/ , q00 , qf
/Q
0 = {(q00 , , , q0 , 0 )}
{(q, , 0 , qf , ) | q Q}
F
ur den Nachweis, dass L(K 0 ) = L (K ) gilt, ist zu zeigen, dass es zu jeder akzeptierenden Berechnung von K bei leerem Stack eine akzeptierende Berechnung von K 0 mit
Endzust
anden gibt. Sei w L (K )
(q0 , w, ) `K (p, , ).
1039
1040
1041
1042
1043
Parser zu kfG
Bl
umchenautomat
Die umgekehrte Richtung kann auf analoge Weise gezeigt werden, da der Endzustand
qf nur erreicht werden kann, wenn das letzte Symbol 0 vom Stack entfernt wurde und
das zu akzeptierende Wort zuvor bereits vollstandig abgearbeitet worden ist.
Auf Basis dieser Ergebnisse konnen wir nun ein einfaches Verfahren angeben, das zu
jeder kfG G einen NKA K einen Parser erzeugt, f
ur den L (K) = L(G) gilt.
Beispiel 3.41: Gegeben sei die folgende kfG G = (, V, P, S) mit
P = {S AB, A a | AA, B b | BB}.
1044
1045
BBB
AAA
q0
SAB
b
B
1046
58
3.2. KELLERAUTOMATEN
Nichtdet. Parser
1047
1049
f
ur alle a und A V .
Es gilt L (K) = L(G).
Falls L(G) entfernen wir die Epsilon-Regel und transformieren die Grammatik in
eine CNF Grammatik f
ur L(G) \ {}. Abschlieend f
ugen wir dem Produktionssystem
noch die Regel S hinzu. Nun kann die Transformation wie zuvor erfolgen. Dem
1048
:= {(q0 , , q0 , S, )}
1050
Lemma 3.43: Zu jedem NKA K gibt es eine kfG G mit L(K ) = L(G).
1052
DR
AF
1051
exponentielles
Wachstum der
Konfigurationen
eines Parsers
1053
1054
a
0
a
111
...
q0
a
110
1062
1063
3.2.1
1055
1056
1057
1058
1059
1060
1061
1064
1065
1066
1067
1068
F
ur kontextfreie Sprachen haben wir gesehen, dass das Wortproblem mit dem CYKAlgorithmus gel
ost werden kann5 , und dass mit NKA ein Parser f
ur diese Sprachen
existiert. Die Anzahl der moglichen Konfigurationen eines NKA kann exponentiell von
der Gr
oer der Eingabe abhangen (vgl. Bsp. 3.44); daher ware es zu bevorzugen, wenn
man einen deterministischen Parser verwenden konnte.
5 Wobei
59
3.2. KELLERAUTOMATEN
Deterministischer
Kellerautomat
DKA
Deterministisch
kontextfreie
Sprache
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
DR
AF
1080
f
ur alle q Q, A und a .
1069
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
Lemma 3.49: F
ur deterministisch kontextfreie Sprachen gelten die folgenden Abschlusseigenschaften:
1. Ist L deterministisch kontextfrei, dann ist auch das Komplement L deterministisch kontextfrei.
Der in Lemma 3.42 konstruierte Parser verwendete die Akzeptanz bei leerem Keller zur
Sprachdefinition. Man kann sich daher die Frage stellen, ob dies auf f
ur DKAs moglich
ist.
Lemma 3.50: Ist L = L (K) f
ur einen DKA K, dann ist L deterministisch kontextfrei,
d.h. L = L(K 0 ) f
ur einen DKA K 0 .
Beweis. Wir k
onnen die Konstruktion aus Lemma 3.40 anwenden:
Sei K = (, Q, , , q0 , , ) ein NKA, definiere:
K 0 = (, Q {q00 , qf }, {0 }, 0 , q00 , , {qf }),
wobei 0
/ , q00 , qf
/Q
0 = {(q00 , , , q0 , 0 )}
{(q, , 0 , qf , ) | q Q}
1098
1099
1097
1100
1101
Lemma 3.51: Die Menge der Sprachen, die von DKAs bei leerem Keller akzeptiert
werden, ist eine echte Teilmenge der deterministisch kontextfreien Sprachen.
Entwurfsfassung vom 27. September 2016
60
3.2. KELLERAUTOMATEN
1102
1103
1104
1105
1106
1107
1108
1109
Pr
afixeigenschaft
1111
1112
Lemma 3.53: Sei K ein DKA, dann gilt: L (K) hat die Prafixeigenschaft.
1110
(q0 , x, ) ` (q, , )
(q0 , xy, ) ` (q 0 , y, )
1114
Damit w
urde K f
ur die Eingabe w mit dem Restwort y 6= anhalten und somit w = xy
verwerfen.
1115
Umgekehrt gilt:
DR
AF
1113
1117
Lemma 3.54: F
ur jede deterministisch kontextfreie Sprache L mit der Prafixeigenschaft
gibt es einen DKA K mit L (K ) = L.
1118
1116
1119
1120
1121
1122
1123
Lemma 3.55: Die Menge der regularen Sprachen und die Menge der deterministisch
kontextfreien Sprachen mit Prafixeigenschaft ist unvergleichbar.
1125
1126
Beweis. Offensichtlich.
1127
3.2.2
1124
1128
1129
1130
LR(k)-Grammatiken
1131
61
3.2. KELLERAUTOMATEN
Dabei handelt es sich um eine Rechtsableitung, da immer die rechteste Variable als
Erste ersetzt wurde.
Der Ableitungsbaum f
ur w = {d;a; a} sieht wie folgt aus:
S
DR
AF
1135
1136
1137
1138
1139
1140
Dieser repr
asentiert auch die Rechtsableitung des Wortes w aus der Grammatik G.
Die Rechtsableitung kann wie folgt konstruiert werden, wenn das Wort von links nach
rechts Buchstabe f
ur Buchstabe betrachtet wird:
Starte mit dem leeren Wort v =
Nimm so lange einen weiteren Buchstaben von w zu v hinzu (SHIFT), bis ein
innerer Konten k existiert, von dem alle Kinder bereits in v enthalten sind.
1142
Wenn dies der Fall ist, entferne alle Kinder von k und ersetze diese in v durch die
Beschriftung von k (REDUCE).
1143
1141
Abbildung 3.3: Nachdem das Teilwort v = {d gelesen wurde ist der Teilbaum unter
dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden. Das
Wort v wird entsprechend aktualisiert zu v = {D. Diese Operation wird als REDUCEOperation bezeichnet und entspricht einer Anwendung der Regel D d aus dem
Produktionssystem.
1144
1145
Nun kann die Eingabe weiter geshiftet werden, bis die nachste REDUCE-Operation
m
oglich ist:
62
3.2. KELLERAUTOMATEN
Abbildung 3.4: Nachdem das Teilwort v = {D; a bearbeitet wurde ist der Teilbaum
unter dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden.
Das Wort v wird entsprechend aktualisiert zu v = {D; A. Diese Operation entspricht
einer Anwendung der Regel A a aus dem Produktionssystem.
DR
AF
Abbildung 3.5: Nachdem das Teilwort v = {D; A; a bearbeitet wurde ist der Teilbaum
unter dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden.
Das Wort v wird entsprechend aktualisiert zu v = {D; A. Diese Operation entspricht
einer Anwendung der Regel A A; a aus dem Produktionssystem.
1146
1147
1148
1149
Nachdem der letzte Buchstabe } gelesen wurde, sind alle Kinder des Startknoten
vorhanden und das Wort wird akzeptiert. Die Regel, die bei diesem ACCEPT-Schritt
angewendet wird, ist: S {D; A}.
R
uckw
arts ergibt sich durch Anwenden der Regeln die Rechtsableitung:
S R {D;A} R {D;A; a} R {D;a; a} R {d;a; a}
1150
1151
1152
1153
1154
1155
1156
1157
Soll ein Parser, d.h. ein DKA KG , diese Ableitung konstruieren, um zu entscheiden,
ob ein Wort s zu L(G) gehort, dann kann er dabei selbstverstandlich nicht auf den
Syntaxbaum zur
uckgreifen (da dieser ja erst aufgebaut werden soll). Im folgenden wird
die Vorgehensweise dargestellt, wie KG dies umsetzt. Hierzu verwenden wir den Begriff
der sogenannten Items. Ein Item ist eine Regel des Produktionssystems, die mit der
Information kombiniert ist, welche Buchstaben (oder Variablen) der rechten Seite der
Regel am Ende der bereits bearbeiteten Eingabe vorgekommen.
Also z.B. steht
[S { D;A}]
f
ur die Regel S {D;A} und daf
ur, dass aus der Eingabe zuletzt ein { gelesen wurde.
Alle m
oglichen Items, die aus P gebildet werden konnen, sind daher:
Items G = {[S {D;A}], [S {D;A}], [S {D;A}], [S {D;A}],
[S {D;A}], [S {D;A}],
[D D;d], [D D;d], [D D;d], [D D;d],
[D d], [D d],
[A A;a], [A A;a], [A A;a], [A A;a],
[A a], [A a]}
63
3.2. KELLERAUTOMATEN
Je nachdem was zuletzt aus der Eingabe gelesen wurde (und welche Regeln der Ableitung bereits gefunden wurden) konnen unterschiedliche dieser Items aus Items G g
ultig
oder nicht g
ultig sein. Sind zu Beispiel aktuell die Items
[S {D;A}], [D D;d], [D d]
(3.5)
g
ultig und wird als n
achstes aus der Eingabe ein d gelesen, so gibt es nur ein g
ultiges
Nachfolge-Item
[D d]
1159
1160
1161
{
{d
{D
{ D;
restl.
Eingabe
{d;a;a}
d;a;a}
;a;a}
;a;a}
a;a}
{
{
{
{
{
{
;a}
;a}
a}
}
}
1162
a
A
A;
A; a
A
A}
Operation
[S {D;A}]
[S {D;A}], [D D;d], [D d]
[D d]
[S {D;A}], [D D;d]
[S {D;A}], [D D;d], [A A;a],
[A a]
[A a]
[S {D;A}], [A A;a]
[A A;a]
[A A;a]
[S {D;A}][A A;a]
[S {D;A}]
SHIFT
SHIFT
REDUCE
SHIFT
SHIFT
DR
AF
D;
D;
D;
D;
D;
D;
g
ultige Items
1158
1163
1164
1165
1166
1167
REDUCE
SHIFT
SHIFT
REDUCE
SHIFT
ACCEPT
1168
1169
Nun gibt es wieder kein Item, in dem der Punkt ganz rechts vorkommt. Daher
wird SHIFT ausgef
uhrt.
F
ur die Menge der g
ultigen Items ergibt sich nun:
{[D d]}
1170
1171
Es gibt ein g
ultiges Item, bei dem der Punkt ganz rechts ist, also wird eine
REDUCE-Operation durchgef
uhrt.
6 Initial
werden Items genannt, wenn der Punkt auf der rechten Seite der Regel ganz links steht.
64
3.2. KELLERAUTOMATEN
Alle Buchstaben und Variablen, die im betreffenden Item auf der rechten Seite
vorkommen, werden vom Keller genommen, d.h. es wird in der Tabelle in die
entsprechende Zeile zur
uckgesprungen. Damit andern sich auch die g
ultigen Items
entsprechend zu:
{[S {D;A}], [D D;d], [D d]}
Nun wird die Variable D auf der linken Seite des Items auf den Keller gelegt und
die g
ultigen Items
andern sich entsprechend zu:
{[S {D;A}], [D D;d]}
Dieses Vorgehen wird so lange fortgesetzt, bis im letzten Schritt das Item
[S {D;A}]
1173
1174
1175
Die jeweils g
ultigen Items konnen durch einen endlichen Automaten beschrieben werden
DR
AF
1176
g
ultig ist. Da dieses Item den Punkt auf der rechten Seite hat und auf der linken
Seite das Startsymbol besitzt, wird nun ein ACCEPT durchgef
uhrt und der Keller
entleert, was zur Akzeptanz des Worts f
uhrt.
1172
IG = ( V, Items G , I , I0 , )
1177
beschrieben werden7 :
[S {D;A}]
IG
[S {D;A}]
[D d]
[A a]
[S {D;A}]
[A A;a]
A
[D D;d]
[D D;d]
;
[D D;d]
[A A;a]
;
[S {D;A}]
[S {D;A}]
[D d]
[A a]
[D D;d]
[A A;a]
[S {D;A}]
[A A;a]
1178
umgewandelt werden.
7 Die
Ubergangsfunktion,
quasi als Unter-Automat, verwendet wird.
65
3.2. KELLERAUTOMATEN
Ic
G
[S {D;A}]
{
[S {D;A}]
[D D;d]
[D d]
[D d]
D
[S {D;A}]
[D D;d]
[A a]
[S {D;A}]
[D D;d]
[A a]
[A A;a]
[D D;d]
[S {D;A}]
[A A;a]
;
[A A;a]
[S {D;A}]
[A A;a]
DR
AF
1180
1181
1182
1183
1184
Nachdem wir uns die Vorgehensweise beim parsen von LR(0)-Grammatiken beispielhaft
veranschaulicht haben, definieren wir nun formal zunachst wie LR(0)-Grammatiken geparsed werden und leiten danach daraus ab, wie LR(0)-Grammatiken definiert werden
k
onnen.
Sei im folgenden
G = (, V, P, S)
wobei
p 1 = A1 y 1
..
.
Ai V und yi ( V )
pn = An yn
Wir gehen also davon aus, dass die Grammatik G heit und ein Produktionssystem P
mit n Regeln besitzt. Jede der Regeln hat die Form
p i = Ai y i ,
1185
|yi | = ni ,
yi = yi,1 . . . yi,ni
Regel i hat also auf der rechten Seite der Regel ni Buchstaben yi,1 . . . yi,ni .
Definition 3.58: Sei pi = Ai yi eine Regel der Grammatik G. Ein Item Ii,j f
ur G
Item, Items G ,
initiales Item,
vollst
andiges Item
66
3.2. KELLERAUTOMATEN
Beispiel 3.59: F
ur die Regel p2 = S {D;A} existieren sechs Items (|p2 | = n2 = 5):
I2,0 = [S {D;A}]
I2,1 = [S { D;A}]
I2,2 = [S {D ;A}]
I2,3 = [S {D; A}]
I2,4 = [S {D;A }]
I2,5 = [S {D;A}]
1187
1188
1189
Wie wir in Beispiel 3.57 gesehen haben reprasentiert der Punkt innerhalb der Items,
dass die Buchstaben bis zum Punkt am Ende der bisher bearbeiteten Eingabe vorkommen.
g
ultiges Item,
Items(w)
DR
AF
Weil sowohl {D als auch D Suffix von w sind. Auerdem gibt es jeweils eine Ableitung:
S {D ;A} = y 0 y 00 ,
|{z} |{z}
y0
v = ,
z=
y 00
und
S { |{z}
D ;d ;a} = vy 0 y 00 z,
|{z}
0
y
v = {,
z = ;a}
y 00
Bemerkung 3.62: F
ur das leere Wort gilt, Items() enthalt alle Items der Form
[A y 00 ] f
ur die es eine Ableitung
S Az y 00 z
1193
mit z gibt. Offensichtlich sind alle Items der Form [S y 00 ] in Items(). Die
weiteren Items dieser Menge konnen nach der folgenden Regel zur Bestimmung der
g
ultigen Items bestimmt werden.
1194
Lemma 3.63: Sei G wie zuvor. Items(w) kann wie folgt induktiv definiert werden:
1191
1192
1195
1196
1197
1198
1199
IG , Ic
G,
Automat f
ur
g
ultige Items
67
3.2. KELLERAUTOMATEN
F
ur X V
([A y 0 Xy 00 ], ) = {I Items G | I = [X y], y ( V ) }
REDUCE1201
REDUCE-Konflikt1202
SHIFT-REDUCE- 1203
Konflikt
1204
Beispiele zu IG und Ic
G finden sich in Beispiel 3.57.
Definition 3.65: Eine Grammatik G hat einen REDUCE-REDUCE-Konflikt, wenn
zwei vollst
andige Items in einem Zustand von Ic
G vorkommen. Sie hat einen SHIFTREDUCE-Konflikt, wenn in einem Zustand von Ic
andige und unG gleichzeitig vollst
vollst
andige Items vorkommen.
LR(0)-Grammatiken enthalten keine REDUCE-REDUCE- oder SHIFT-REDUCE-Konflikte.
1206
Deterministischer Parser f
ur LR(0)-Grammatiken
1205
Wir geben die Arbeitsweise eines DKA K mit L (K) = L(G) an:
K = ( V, Q, , , q0 , Items(), )
DR
AF
= V 2Items G
1207
1208
Q und geben wir nicht explizit an, sondern beschreiben statt dessen die Arbeitsweise
des Parsers durch Pseudocode:
Algorithmus 8 LR(0)-Parser
1209
1210
1211
Beispiel 3.66: Angewendet auf die Grammatik und das Beispielwort aus Beispiel 3.57
ergibt sich folgendes Ergebnis:
Der DEA Ic
G hat die folgende Gestalt:
68
3.2. KELLERAUTOMATEN
Ic
G
I0
I1
I2
d
I6
I3
d
I7
a
I8
I4
I5
}
I9
a
I10
1212
wobei:
I0 = {[S {D;A}]} = Items()
I1 = {[S {D;A}], [D D;d], [D d]}
I2 = {[S {D;A}], [D D;d]}
I3 = {[S {D;A}], [D D;d], [A a], [A A;a]}
I4 = [S {D;A}], [A A;a]}
I5 = {[A A;a]}
I6 = {[D d]}
I7 = {[D D;d]}
I8 = {[A a]}
I9 = {[S {D;A}]}
DR
AF
1213
F
ur das Eingabewort w = {d;a;a} ergibt sich:
Keller
I0
I0
I0 {
I0 {I1
I1
I0 {I1 d
I0 {I1 dI6
I6
I0 {I1 dI6
I1
I0 {I1 D
I0 {I1 DI2
I2
I0 {I1 DI2 ;
I0 {I1 DI2 ;I3
4
Anweisung
push(I0 )
i := 1
I := top()
push(a1 )
push(bI (I0 , {))
i := i + 1
end loop
I := top()
push(a2 )
push(bI (I1 , d))
i := i + 1
end loop
I := top()
2 pop()
I := top()
push(D)
push(bI (I1 , D))
end loop
I := top()
push(a3 )
push(bI (I2 , ;))
i := i + 1
end loop
69
3.2. KELLERAUTOMATEN
I3
I0 {I1 DI2 ;I3 a
I0 {I1 DI2 ;I3 aI8
5
I8
I0 {I1 DI2 ;I3
I3
I0 {I1 DI2 ;I3 A
I0 {I1 DI2 ;I3 AI4
I4
I0 {I1 DI2 ;I3 AI4 ;
I0 {I1 DI2 ;I3 AI4 ;I5
6
I5
I0 {I1 DI2 ;I3 AI4 ;I5 a
I0 {I1 DI2 ;I3 AI4 ;I5 aI10
DR
AF
Anweisung
I := top()
push(a4 )
push(bI (I3 , a))
i := i + 1
end loop
I := top()
2 pop()
I := top()
push(A)
push(bI (I3 , A))
end loop
I := top()
push(a5 )
push(bI (I4 , ;))
i := i + 1
end loop
I := top()
push(a6 )
push(bI (I5 , a))
i := i + 1
end loop
I := top()
6 pop()
I := top()
push(A)
push(bI (I3 , A))
end loop
I := top()
push(a7 )
push(bI (I4 , }))
i := i + 1
end loop
I := top()
entleere Keller, ACCEPT
Keller
I10
I3
I4
I9
1215
Lemma 3.67: Die Laufzeit des beschriebenen LR(0)-Parser ist linear in der Lange
der Eingabe.
1216
1214
1217
1218
1219
LR(0)-Grammatik
Damit die beschriebene Vorgehensweise moglich ist, muss sich jeder Ableitungsschritt
in der Rechtsableitung jedes Wortes aus L(G) eindeutig aus dem Prafix ergeben, das
die Anwendung der betreffenden Regel ermoglicht. Formal:
Definition 3.68: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der
S nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(0)-Bedingung, wenn
bei Ableitung des jeweils rechtesten Nichtterminals gilt: Falls
S R xAz R xyz,
A V, z , x ( V )
dann gibt es keine andere Rechts-Ableitung des Wortes xyz oder eines anderen Wortes
mit dem gleichen Pr
afix xy. D.h. f
ur alle x0 , y 0 ( V ) , z 0 , z 00 , A0 V gilt
S R x0 A0 z 0 R x0 y 0 z 0 = xyz 00
1220
1221
1222
x = x 0 , A = A0 , y = y 0
Lemma 3.69: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der S
nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(0)-Bedingung gdw. G
weder REDUCE-REDUCE- noch SHIFT-REDUCE-Konflikte besitzt.
Entwurfsfassung vom 27. September 2016
70
3.2. KELLERAUTOMATEN
1223
1224
Lemma 3.70: F
ur eine Sprache L sind folgende Aussagen aquivalent:
1225
L = L (K) f
ur einen DKA K
1226
1227
L = L(G) f
ur eine LR(0)-Grammatik G
1228
1229
1230
(ohne Beweis)s.
Beispiel 3.71: Nicht jede kfG f
ur eine deterministisch kontextfreie Sprache mit Prafixeigenschaft
ist eine LR(0)-Grammatik.
Betrachten wir hierzu erneut die Grammatik mit dem Produktionssystem:
P = {S {D;A},
D D; d | d
A A; a | a}
DR
AF
D d; D | d
A A; a | a}
So gibt es f
ur das gleiche Prafix v = {d Ableitungen zu verschiedenen Wortern
S R {d ;D;a} R {d;d;a}
|{z}
v
und
S R {d ;a} = {d;a}
|{z}
v
1231
1232
LR(k)-Grammatiken
1233
1234
1235
1236
1237
1238
w[k]
Definition 3.72: F
ur w = a1 . . . an , w definieren wir
(
a1 . . . ak falls k n
w[k] =
w
sonst
1239
1240
1241
LR(k)-Grammatik
Wir haben in Lemma 3.56 gesehen, dass sich zu jeder kfS L eine Sprache mit Prafixeigenschaft
L$ angeben l
asst und damit eine LR(0)-Grammatik f
ur L$ angegeben werden kann. Der
hierbei zu konstruierende DEA Ic
kann
dabei
jedoch
gro werden.
G
Verhindern kann man dies, indem man dem Parser erlaubt, k Buchstaben in die Zukunft zu schauen (Lookahead ). In der Praxis wird u
blicherweise ein Lookahead k = 1
verwendet.
Eine LR(k)-Grammatik ist definiert wie eine LR(0)-Grammatik mit der zusatzlichen
Forderung, dass die noch nicht bearbeiteten Suffixe z und z 00 in ihren ersten k Zeichen
u
ussen.
bereinstimmen m
Definition 3.73: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der S
nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(k)-Bedingung, wenn
bei Ableitung des jeweils rechtesten Nichtterminals gilt: Falls
S R xAz R xyz,
8 RR-
A V, z , x, y ( V ) , A y P
und SR-Konfliktfreiheit.
71
3.2. KELLERAUTOMATEN
dann gibt es keine andere Rechts-Ableitung des Wortes xyz oder eines anderen Wortes
mit dem gleichen Pr
afix xy und dem gleichen Lookahead. D.h. f
ur alle x0 , y 0 (
0 00
0
00
V ) , z , z , A V und z[k] = z [k] gilt
S R x0 A0 z 0 R x0 y 0 z 0 = xyz 00
firstk (x),
k-Lookaheadmenge
x = x 0 , A = A0 , y = y 0
Definition 3.74: F
ur eine LR(k)-Grammatik G = (, V, P, S) und ein Wort x
( V ) definieren wir die Menge der aus x ableitbaren Worter deren Lange k nicht
u
berschreitet, bzw. die Prafixe der Lange k von Wortern der Lange groer als k. Formal:
firstk : ( V )
F
ur x gilt
firstk (x) = x[k]
1242
F
ur x ( V ) gilt:
Wenn x w und w , |w| k dann gilt w firstk (x).
1244
1245
1243
F
ur k = 1 und ein Wort x lasst sich firstk (x) wie folgt berechnen:
DR
AF
1246
1247
LR(k)-Item,Items kG
Mit diesen Definitionen kann nun der Begriff der LR(k)-Items sowie die induktive Berechnung der g
ultigen Items angegeben werden:
g
ultiges
LR(k)-Item,
Itemsk (w)
S R xAz R xy 0 y 00 z,
1250
w = xy 0 , z[k] = u
72
3.2. KELLERAUTOMATEN
1252
Wie f
ur LR(0)-Items kann eine induktive Charakterisierung der LR(k)-Item-Mengen
angegeben werden.
1253
Lemma 3.77: Sei G wie zuvor. Items k (w) kann wie folgt induktiv definiert werden:
1251
1254
1255
1256
1257
1258
1262
1263
1264
1265
Error sonst.
1260
k c
k,
IG
, IG
Automat f
ur
g
ultige
LR(k)-Items
1261
Der Parser f
ur LR(k)-Grammatiken kann nun im Wesentlichen wie im LR(0)-Fall konstruiert werden. F
ur die Fallunterscheidung bzgl. der verschiedenen Schritte ergibt sich
(wobei I die aktuell g
ultige Itemmenge und u das aktuelle Lookahead)
1259
Definition 3.78: In Analogie zu Definition 3.64 definieren wir den -erweiterten NEA
DR
AF
k
IG
= ( V, I, Ik , I0 , )
I = Items kG
I0 = Items k ()
F
ur X ( V )
F
ur X V
g
ultige
LR(k)-Items
1266
1267
1268
1269
1270
Bezeichnung
I0
I1
I2
1271
I3
I4
I5
I6
I7
I8
g
ultige Items
{[S {DA}, ]}
{[S {DA}, ],
[D dD, a], [D d, a]}
{[S {DA}, ],
[A Aa, }], [A a, }]
[A Aa, a], [A a, a]}
{[D dD, a], [D d, a],
[D dD, a], [D d, a]}
{[D dD, a]}
{[A a, }], [A a, a]}
{[S {DA}, ], [A Aa, a], [A Aa, }]}
{[S {DA}, ]}
{[A Aa, a], [A Aa, }]}
Entwurfsfassung vom 27. September 2016
Lookahead
73
3.2. KELLERAUTOMATEN
1272
Der zugeh
orige DEA hat folgende Gestalt:
k
Ic
G
I0
I1
d
I3
I2
A
D
I6
a
I8
1274
1275
a
I5
}
I7
I4
1273
Wie im Falle des LR(0)-Parser geben wir die Arbeitsweise des deterministischen Kellerautomaten in Pseudocode an und verzichten auf eine formale Angabe des Automaten.
DR
AF
Algorithmus 10 LR(k)-Parser
Items k
k
k
G , b
Require: w = a1 a2 . . . am , DEA Ic
G = ( V, 2
I , I0 , )
push(I0 )
i := 1
loop
I := top()
u := (ai . . . am )[k]
if [S y, ] I then
// ACCEPT
else if [A y, u] I und A 6= S then
// REDUCE
f
uhre 2 |y| mal pop() aus
I := top()
push(A)
push(bIk (I, A))
else if [A y 0 y 00 , v] I und y 00 6= und u firstk (y 00 v) then
// SHIFT
push(ai )
push(bIk (I, ai ))
i := i+1
else
// ERROR
end if
end loop
LR(1)-Parsing
1276
1277
1278
Beispiel 3.80: Wir betrachten erneut die Grammatik aus Beispiel 3.79. Der Automat
k ur die g
Ic
ultigen Items ist im betreffenden Beispiel beschrieben. Der Algorithmus 10
G f
arbeitet f
ur die Eingabe: w = {da} = a1 . . . a4 wie in der folgenden Tabelle dargestellt:
74
3.2. KELLERAUTOMATEN
1
I0
{
I0 {
I0 {I1
2
I1
d
I0 {I1 d
I0 {I1 dI3
3
I3
a
I0 {I1
I1
Kommentar
loop-Anfang
Shift-Operation ausf
uhren (wg. I, u)
loop-Ende
loop-Anfang
Shift (wg. I, u)
loop-Ende
loop-Anfang
Reduce ([D d, a] I, u = a)
loop-Ende
loop-Anfang
DR
AF
I0 {I1 D
I0 {I1 DI2
Anweisung
push(I0 )
i := 1
I := top()
u := (a1 . . . a4 )[1]
push({)
push(bIk (I, ai ))
i := i + 1
I := top()
u := (a2 . . . a4 )[1]
push(d)
push(bIk (I, ai ))
i := i + 1
I := top()
u := (a3 . . . a4 )[1]
2 pop()
I := top()
push(D)
push(bIk (I, D))
I := top()
u := (a3 . . . a4 )[1]
push(a)
push(bIk (I, a))
i := i + 1
I := top()
u := (a4 . . . a4 )[1]
2 pop()
I := top()
push(A)
push(bIk (I, A))
I := top()
u := (a4 . . . a4 )[1]
push(})
push(bIk (I, }))
i := i + 1
I := top()
u := (a5 . . . a4 )[1]
Keller
I0
I2
I0 {I1 DI2 a
I0 {I1 DI2 aI5
I5
I0 {I1 DI2
I2
I0 {I1 DI2 A
I0 {I1 DI2 AI6
I6
I7
Shift (wg. I, u)
loop-Ende
loop-Anfang
Reduce ([A a, }] I, u = })
loop-Ende
loop-Anfang
Shift (wg. I, u)
loop-Ende
loop-Anfang
Accept ([S {DA}, ] I, u = )
75
1279
1280
Kapitel 4
Sprache vom Typ i1281 Definition 4.1: Sei G = (, V, P , S) eine Grammatik. G heit
vom Typ 0 wenn keine Einschrankungen beim Produktionssystem gemacht werden
1283
1284
1285
regul
ar oder vom Typ 3, wenn P V ({} V ).
DR
AF
1282
1286
1287
1288
1289
1290
1291
4.1
In Abschnitt 1.2 haben wir definiert, dass wir eine Grammatik vom Typ 0 nennen,
wenn keine Einschr
ankungen an das Produktionssystem gemacht werden und wir diese
kontextsensitiv oder vom Typ 1 nennen, wenn f
ur alle Regeln u G v gilt: |u| |v|. F
ur
Typ 1 Grammatiken gilt also, dass die linke Seite der Regeln stets kleiner sein muss als
die rechte.
Beispiel 4.2: Als Beispiel betrachten wir (vgl. [VW11, S.248,249]) die Sprache
L = {an bn cn | n N}
Diese Sprache ist nicht kontextfrei, wie wir in Bsp. 3.27 mit Hilfe des Pumping Lemma
f
ur kontextfreie Sprachen gezeigt haben. F
ur L kann eine Typ 1 Grammatik angegeben
werden. Die Idee ist dabei die folgende: Wir starten mit einer kontextfreien Grammatik
f
ur die Sprache {an (bc)n | n N} diese Grammatik hat das folgende Produktionssystem:
P = {S aSBC | aBC, B b, C c}
Die Buchstaben in jedem ableitbaren Wort sind von der richtigen Anzahl, lediglich die
Reihenfolge der bs und cs ist verkehrt. Mit Hilfe der (kontextsensitiven) Regel
BC CB
k
onnen wir diese Reihenfolge korrigieren. Wir f
ugen diese also zu P hinzu. Nun besteht
nur noch das Problem, dass zwar die Worter von L abgeleitet weren konnen, aber
auch immer noch W
orter, die nicht in L liegen, z.B. aaabccbcb. Indem wir die Regeln
C c, B b durch
aB ab, bB bb, bC bc, cC cc
ersetzen gelangen wir zu einer kontextsensitiven Grammatik f
ur L:
G = ({a, b, c}, {S, A, B, C}, P , S)
P = {S aSBC | aBC,
BC CB
aB ab, bB bb, bC bc, cC cc}
Entwurfsfassung vom 27. September 2016
76
1292
1293
1294
1295
1296
RE
1297
1298
1299
1300
1301
Satz 4.3: Die Menge der kontextfreien Sprachen ist eine echte Teilmenge der Menge
der kontextsensitiven Sprachen.
Beweis. Offensichtlich ist jede kontextfreie Grammatik auch kontextsensitiv und wie
wir in den Beispielen 3.27 und 4.2 gesehen haben, ist L = {an bn cn | n N} kontextsensitiv, aber nicht kontextfrei.
Definition 4.4: Die Menge der Typ0 Sprachen u
ber einem Alphabet wird allgemein
mit RE bezeichnet1 .
Satz 4.5: Die Menge der kontextsensitiven Sprachen ist eine echte Teilmenge der
Typ0 Sprachen.
(ohne Beweis).
1302
Church-TuringThese
1304
1305
1306
1307
DR
AF
1308
Satz 4.6: F
ur jede Typ0 Sprache L gibt es einen Algorithmus, der L akzeptiert.
1303
1309
4.2
Chomsky Hierachie
1310
1314
1315
Satz 4.10: F
ur nichtleere Alphabete || 1 ist 2 u
berabzahlbar.
1311
1312
1313
1316
1317
1318
1319
Sei L = 2 = {L|L } und L = {L1 , L2 , . . .} eine Abzahlung von L. In Beispiel 0.9, 8.1.d) haben wir gesehen, dass die Menge aller Worter u
ber abgezahlt
werden kann. Sei = {w1 , w2 , . . .} diese Abzahlung.
Wir definieren nun eine Menge von booleschen Werten
(
1 falls wj Li
bij =
0 sonst
Sei LD wie folgt definiert:
LD = {wi | bii = 0 }
1320
1321
1322
1323
1324
1325
1326
1327
d.h. wi LD gdw. wi 6 Li .
LD ist wohldefiniert und m
usste eine Nummer k in der Abzahlung L = {L1 , L2 , . . .}
haben. Sei also LD = Lk . Das Wort wk muss entweder zu LD gehoren, oder nicht. Wir
f
uhren beide F
alle zu einem Widerspruch:
wk LD da Lk = LD gilt auch wk Lk , also bkk = 1, also wk 6 LD = Lk = {wi
| bii = 0 }.
wk 6 LD da Lk = LD gilt auch wk 6 Lk , also bkk = 0, also wk LD = Lk = {wi
| bii = 0 }.
1 RE steht f
ur recursive enumerable, da solche Sprachen die Eigenschaft besitzen, rekursiv aufz
ahlbar
zu sein.
77
1328
und somit ein Widerspruch zur Annahme, dass 2 aufgezahlt werden kann.
1329
RE 2
Chomsky
Hierarchie
1331
4.3
1332
4.3.1
Automatenmodelle fu
r TYP1 - und TYP0 -Sprachen
Turingmaschinen
Definition 4.13: Die einfachste Variante der Turingmaschine ist die deterministische
Einband-Turingmaschine (DTM oder kurz TM). Formal ist eine TM ein Tupel:
DR
AF
Deterministische
EinbandTuringmaschine
1330
T = (, Q, , , q0 , , F )
1333
1334
1335
das Eingabealphabet ( )
1336
die Ubergangsfunktion
legt das Verhalten der TM fest ( : Q Q R)
1337
q0 Startzustand (q0 Q)
1338
1339
1340
1341
1342
1343
1344
Konfiguration,
Konfigurationsrelation `
gdw.
(q, w0 )
2 Sonst
78
wobei
v0 . . . vk raw1 . . . wl
v0 . . . vk ar w1 . . . wl
v0 . . . vk q w0 . . . wl `
v0 . . . r vk aw1 . . . wl
: (q, w0 ) = (r, a, )
: (q, w0 ) = (r, a, )
: (q, w0 ) = (r, a, )
1345
Berechnung
Falls f
ur k = vqw kein Ubergang
exisitert, also (q, w0 ) 6 , schreibt man k 6`.
q0 w ` v1 q1 w1 ` v2 q2 w2 ` . . .
1346
1347
DR
AF
1348
1349
T+1
Beispiel 4.16: Die Funktionsweise der Turingmaschine erlautern wir an einem Beispiel. Wir konstruieren eine TM T+1 zur Realisierung des Inkrements. T+1 arbeitet
auf bin
arcodierten Zahlen. Sie setzt das letzte Null-Bit der Zahl auf Eins und alle Bits
dahinter auf Null. Z.B.:
1
1
1
0 0
=41
z }| {
32 + 0 + 8 + 0 + 2 + 1
+
1
32 + 0 + 8 + 4 + 0 + 0
bzw.
r1
X
aj 2j
also:
n+1=
j=0
r1
X
j=k+1
r1
X
aj 2j + 2k
j=k+1
aj 2j + 0 2k +
k1
X
1 2j
j=0
r1
X
j=k+1
aj 2j + 1 2k +
k1
X
0 2j
j=0
| {z }
2k 1
1350
1351
1352
1353
1354
1355
1356
1357
Man erkennt, dass alle Bits hinter ak auf Null gesetzt sind.
Band, Bandalphabet Die Turingmaschine T+1 verf
ugt u
ber ein beidseitig unendliches Band, das in Zellen unterteilt ist, von denen die TM nur jeweils nur eine Zelle
sieht5 . Jede Zelle kann ein Zeichen aus dem Alphabet = {0, 1, } aufnehmen, wobei
alle leeren Zellen mit dem besonderen Zeichen beschrieben sind.
Zust
ande T+1 startet in Zustand q0 und das Band ist initial mit der Eingabe der
Turingmaschine beschrieben. Im vorliegenden Fall ist dies das Wort w = ar1 . . . a1 a0 .
Zur Rechnung verwendet T+1 weitere Zustande: Q = {q0 , q1 , q2 , q3 }.
5 Man spricht hier auch davon, dass die TM einen Schreib-/Lese-Kopf hat, der auf eine bestimmte
Zelle zeigt.
79
Ubergangsfunktion
Das Programm der TM wird durch die Ubergangsfunktion
q0
q1
q2
q3
1358
1359
1
(q0 , 1, )
(q1 , 0, )
(q2 , 1, )
(q1 , , )
(q3 , 1, )
(q3 , , )
Die Tabelle liest sich z.B. so: Wenn die TM in Zustand q1 ist und die aktuell betrachtete
Zelle eine 1 enth
alt, dann bleibt sie in Zustand q1 , u
berschreibt die 1 mit einer 0 und
betrachtet als n
achstes die linke Nachbar-Zelle.
q3 ist der einzige Endzustand, also F = {q3 }.
Beispielrechnung von T+1 f
ur das obige Rechenbeispiel arbeitet T+1 in folgenden Schritten: anfangs befindet sich die TM im Zustand q0 und das Band ist mit
101011 beschrieben. Die aktuell betrachtete Zelle enthalt die f
uhrende 1. Wir notieren
dies q0 101011 , wir notieren also den aktuellen Zustand links von der aktuell
betrachteten Zelle und lassen die unendlich vielen Blanks weg. Nun finden folgende
Uberg
ange (`) statt:
1360
0
(q0 , 0, )
(q2 , 1, )
(q2 , 0, )
DR
AF
akzeptierte Sprache
von T
1361
LT = { w | w ` vn qn wn mit qn F }
1362
L ist eine Sprache aus T yp0 , d.h. es gibt eine Grammatik G mit L = L(G).
1363
1364
LBA, linear
beschr
ankter
Automat
1367
Definition 4.19: Eine Turingmaschine, deren Band durch die Lange der Eingabe
beschr
ankt ist wird LBA genannt. Stot die TM an das Ende des Bandes wird der
Kopf nicht weiter bewegt.
1368
1365
1366
1369
L ist eine Sprache aus T yp1 , d.h. es gibt eine Grammatik G mit L = L(G).
1370
1371
80
1372
1373
Ausblick
5.1
Berechenbarkeit
1374
Kapitel 5
Turing
Berechenbarkeit
DR
AF
v , v 0
wenn
y = f (x1 , . . . , xk )
val(bn . . . b0 ) =
n
X
bi 2i ,
bin = val1
i=0
Church-TuringThese
1376
Satz 5.2: Die Klasse der intuitiv berechenbaren Funktionen, d.h. die f
ur die man einen
Algorithmus angeben kann, ist identisch mit den Turing-berechenbaren Funktionen.
1377
5.2
1375
Entscheidbarkeit
Entscheidbarkeit, 1378
Semientscheidbar- 1379
keit
1380
Definition 5.3: Eine Menge L heit semi-entscheidbar, genau dann wenn es eine
Turingmaschine T gibt mit L(T ) = L.
Eine Menge L heit entscheidbar, wenn L und L semi-entscheidbar sind.
rekursiv aufz
ahlbar1381
81
5.2. ENTSCHEIDBARKEIT
1382
L=
oder wenn es eine berechenbare totale Funktion2 f : N gibt, so dass
L = {f (0), f (1), . . .} = f (N)
1383
1384
1387
1388
1389
universelle
Turingmaschine
1390
1391
1392
Definition 5.8: Es gibt eine Turingmaschine U , die als Eingabe die Nummer einer
Turingmaschine und eine Eingabe f
ur diese Turingmaschine erhalt und diese dann mit
der betreffenden Eingabe simuliert.
Definition 5.9: Das Selbstanwendungsproblem ist definiert als
DR
AF
Selbstanwendungsproblem H 0
1386
1385
1394
1395
1393
1397
Beweis. Man verwendet die universelle Turingmaschine U , um ein Programm mit sich
selbst als Eingabe zu simulieren und erhalt so einen Semientscheider f
ur H 0 .
1398
1396
Beweis. W
are H 0 entscheidbar, dann gabe es eine Turingmaschine T 0 , welche H 0 berechnet.
(
1 falls gilt: p halt bei Eingabe p
fT 0 (p) =
0 falls gilt: p halt nicht bei Eingabe p
Dann kann man aber auch diese Turingmaschine umbauen zu einer Maschine T , so
dass
(
falls fT 0 = 1
(d.h. lauft T endlos)
fT (p) =
0
falls fT 0 = 0
(d.h. T halt)
1399
1400
82
5.2. ENTSCHEIDBARKEIT
1403
1404
1401
1402
1406
1407
Postsches Korrespondenzproblem
1408
uvm.
DR
AF
1405
83
LITERATURVERZEICHNIS
1410
1411
1412
1413
1414
1415
1416
1417
1418
DR
AF
1419
Literaturverzeichnis
1409
84
INDEX
Index
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
Band, 79
Bandalphabet, 78, 79
Berechenbarkeit
Turing, 81
Berechnung
akzeptierend, 79
einer TM, 79
unedlich, 79
verwerfend, 79
charakteristische Funktion, 3
Chomsky Hierarchie, 78
Chomsky Normalform, 49
CNF, 49
DR
AF
1433
F , 78
Conf(T ), 78
, 78
L(K ), 55
L (K ), 55
G , 9
G , 9
, 78
, 5
+ , 5
T+1 , 80
M , 3
, 78
DEA , 17
, 5
`, 78
`, 78
` , 79
bin, 81
bink , 81
val, 81
wr , 6
Aquivalenz
von NEAs, 20
Ubergangsfunktion,
78, 80
NEA, 19
erweiterte f
ur DEAs, 17
1420
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1482
1483
1484
1485
1486
1488
Eingabealphabet, 78
Endzustande, 78
1489
Fangzustand, 16
1487
1490
1491
1492
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
DEA, 14
Deterministisch kontextfreie Sprache, 60
DKA, 60
DTM, 78
Durchschnitt, 26
Grammatik, 8
-Freiheit, 44
kontextfrei, 42, 76
eindeutig, 44
mehrdeutig, 44
kontextsensitiv, 76
LR(0), 70
LR(k), 71
k-Lookaheadmenge, 72
Reduce-Reduce-Konflikt, 68
regular, 10, 76
Shift-Reduce-Konflikt, 68
Ableitung, 9
1493
Links-, 44
1494
Rechts-, 44
1495
Ableitungsbaum, 43
1496
Ableitungsrelationen, 9
1497
abz
ahlbar, 4
1498
Akzeptanz
1499
durch Endzust
ande, 55
1500
durch leeren Keller, 55
1501
akzeptierte Sprache
eines DEAs, 15
1502
Herleitung, 9
Automat
endlich
1503
Infix, 5
nichtdeterministisch (NEA), 18 1504 Isomorphie
85
INDEX
1534
Lauf
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
Suffix, 5
1577
1578
Vereinigung, 25, 27
1568
1569
1570
1571
1572
1573
1574
1575
1576
1583
Wort, 5
inverses, 6
Konkatenation, 7
leeres, 5
Wortproblem, 51
1584
Zustande, 79
1579
1580
1581
1582
DR
AF
1532
1567
1533
Kellerautomaten
deterministisch, 60
Sprache, 60
nichtdeterministisch, 54
Kettenregel, 48
kfG, 42
-Freiheit, 44
eindeutig, 44
mehrdeutig, 44
reduziert, 47
kfS
Konkatenation, 53
Vereinigung, 52
Kleeneabschluss, 53
Kleeneabschlu, 7
Komplement, 7, 27
Konfiguration, 78
eines NKA, 55
Konfigurationsrelation
eines NKA, 55
Konkatenation, 5, 28
1513
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
NEA, 19
eines DEAs, 15
eines NEAs, 19
leeres Wort, 5
Linksableitung, 44
LR(k)-Item
Automat, 73
Markierungsalgorithmus, 45
Menge
abz
ahlbar, 4
NEA, 18
NKA, 54
Nutzlose Variable, 46
Palindrom, 6
parse tree, 43
Pr
afix, 5
Pr
afixeigenschaft, 61
Pumping Lemma
f
ur kontextfreie Sprachen, 53
f
ur regul
are Sprachen, 39
Rechtsableitung, 44
regul
arer Ausdruck
Aquivalenz,
12
Semantik, 12
Syntax, 12
86