Sie sind auf Seite 1von 159

Stefan O.

Knapp

Übungsbuch
Automaten und
formale Sprachen
117 Aufgaben und Lösungen
Übungsbuch Automaten und formale Sprachen
Lizenz zum Wissen.
Sichern Sie sich umfassendes Technikwissen mit Sofortzugriff auf
tausende Fachbücher und Fachzeitschriften aus den Bereichen:
Automobiltechnik, Maschinenbau, Energie + Umwelt, E-Technik,
Informatik + IT und Bauwesen.

Exklusiv für Leser von Springer-Fachbüchern: Testen Sie Springer


für Professionals 30 Tage unverbindlich. Nutzen Sie dazu im
Bestellverlauf Ihren persönlichen Aktionscode C0005406 auf
www.springerprofessional.de/buchaktion/

www.ATZonline.de

Automobiltechnische Zeitschrift

03
März 2012 | 114. Jahrgang
03

FormoPtimierung in der
Fahrzeugentwicklung

Leichte und geräuschoptimierte


Festsattelbremse

geräuschwahrnehmung von 11 | 2012


Elektroautos
www.jot-oberflaeche.de

/// BEGEGNUNGEN

Walter Reithmaier
TÜV Süd Automotive
/// INTERVIEW

Claudio Santoni
McLaren

Jetzt
PersPektive Leichtbau
Werkstoffe optimieren
Optimale Energiebilanz
im Lackierprozess
30 Tage
testen!
issn 0001-2785 10810

Springer für Professionals.


Digitale Fachbibliothek. Themen-Scout. Knowledge-Manager.
Zugriff auf tausende von Fachbüchern und Fachzeitschriften
Selektion, Komprimierung und Verknüpfung relevanter Themen
durch Fachredaktionen
Tools zur persönlichen Wissensorganisation und Vernetzung
www.entschieden-intelligenter.de

Springer für Professionals


Stefan O. Knapp

Übungsbuch Automaten
und formale Sprachen
117 Aufgaben und Lösungen
Stefan O. Knapp
Wendlingen, Deutschland

ISBN 978-3-658-22695-4 ISBN 978-3-658-22696-1  (eBook)


https://doi.org/10.1007/978-3-658-22696-1

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detail-
lierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Springer Vieweg
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht
ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags.
Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die
Einspeicherung und Verarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt
auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen-
und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden
dürften.
Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in
diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch
die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des
Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und
Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral.

Springer Vieweg ist ein Imprint der eingetragenen Gesellschaft Springer Fachmedien Wiesbaden GmbH und ist
ein Teil von Springer Nature
Die Anschrift der Gesellschaft ist: Abraham-Lincoln-Str. 46, 65189 Wiesbaden, Germany
Vorwort

„Lies das Buch 100 Mal und der Sinn wird sich dir erschließen.“
(volkstümliche konfuzianische Weisheit)

Vielen Studenten, die Vorlesungen und Übungen zur theoretischen Informatik be-
suchen, dürfte die Situation bekannt vorkommen: Oftmals erhalten sie von Do-
zenten nur sehr wenige Übungsaufgaben mit dem Hinweis, dass die Thematik
„verstanden und nicht eingeübt“ werden soll. Wozu also ein Buch mit Übungsauf-
gaben?

„Übung macht den Meister“ heißt es so schön, und in der theoretischen Informatik
ist wirklich etwas Wahres daran. Selbst wenn man glaubt, etwas gut verstanden
zu haben – sicher kann man erst sein, wenn man Wissen anwendet und Aufga -
ben zu lösen versucht. Der Transfer deckt letzte Lücken und Schwachstellen auf
und natürlich geht es auch in Prüfungen und Klausuren um die Anwendung.

Übungsaufgaben kann man nie genug haben, daher bietet dieses Buch eine Viel-
zahl an Aufgaben, die als Ergänzung zu Vorlesung und Unterricht sowie zur Vor -
bereitung auf Prüfungssituationen verwendet werden können. Sie helfen auch
beim Selbststudium zur Festigung und Überprüfung des angeeigneten Wissens.

Einführung

Klar ist, dass die pure Aneignung von Wissen alleine nicht ausreicht, um reelle
Lern- und Prüfungserfolge zu erzielen. Frisch erworbenes, zunächst „träges“ Wis-
sen muss anwendbar gemacht werden, um praktische, lebensweltliche Heraus-
forderungen – und dazu zählen auch Klausuren und Prüfungen in Schule und
Studium – meistern zu können.1 Dieses Anwendbarmachen kann durch Tun, also
durch die Anwendung selbst, erfolgen, 2 bei eher theoretischem Lernstoff demnach
durch die Beschäftigung mit konkreten Aufgabenstellungen.

Lernen ist ein komplexer Prozess, der sich durch unterschiedliche Strategien be-
einflussen lässt:3 Beispielsweise durch kognitive Strategien, zu denen u. a. die
Elaboration und die Aktivierung von Vorwissen gehören, oder durch metakognitive
Strategien, bei denen im vorliegenden Kontext besonders die Selbstkontrolle von
1 Vgl. Echterhoff & Neumann 2009, S. 76.
2 Vgl. Hänze 2009, S. 51.
3 Vgl. Mandl & Friedrich 2006, S.1.

v
Vorwort

Relevanz ist.4
Die Elaboration an sich ist eine Form der Wiederholung, bei der bereits existie-
rendem Wissen bzw. bereits erlernten Schemata durch neue Verknüpfungen Be-
deutung, d. h. Verständnis, hinzugefügt und somit späteres Erinnern erleichtert
wird. Das kann durch Wiedergeben von Lernstoff in eigenen Worten passieren,
durch eigene Erklärungsversuche oder auch durch Einbringen des Vorwissens in
Problemlösesituationen.5 Diese werden durch die vorliegenden Aufgabenstellun-
gen gegeben, welche so der Genese bzw. dem Ausbau eines Wissensnetzes die-
nen können.
Metakognitive Strategien umfassen Planung, Überwachung und Regulation von
Lernaktivitäten,6 wobei in diesem Rahmen insbesondere Überwachungs- und Re-
gulationsprozesse wesentlich sind. Zu diesen gehören z. B. die Verstehensüber-
prüfung sowie die Identifizierung von Verständnislücken, 7 welche u. a. mittels
Übungsaufgaben vorgenommen werden können und das Gelernte „aufgrund der
wiederholenden Grundstruktur [...] memoriert, die Fertigkeit ausgebildet und die
Fähigkeit verbessert werden“ kann. 8

Bereits dieser kurze Ausflug in die Lerntheorie zeigt die Wichtigkeit des Übens
auf. Über die beschriebenen Aspekte hinaus nimmt das Üben aber auch Einfluss
auf viele weitere Faktoren wie z. B. das Zeitmanagement in der Prüfung, 9 Prü-
fungsängste, Motivation10 oder Konzentration. Besonders motivational-emotionale
Variablen können positiv beeinflusst werden, wenn sich die ersten Erfolge und ein
Gefühl des „Beherrschens“ des Lernstoffs beim Üben einstellen – es entsteht eine
Freude am Tun, die sich gleichermaßen auf Attributionen, Selbstbild, Anstren-
gungsbereitschaft oder Ausdauer auswirken kann. Bezüglich Zeitmanagement
empfiehlt es sich, die Übungen nicht zuerst zu „überfliegen“ bzw. einen kurzen
Blick vorab darauf zu werfen, sondern sich von ihnen überraschen zu lassen. 11 So
kann eine möglichst prüfungsähnliche Situation hergestellt werden, die nicht nur
auf fachliches Üben gemünzt ist, sondern auch autogene Momente der Prüfungs-
vorbereitung beinhaltet.

Über dieses Übungsbuch

Diese Aufgabensammlung enthält 117 Aufgaben und Lösungen zum Themen-


komplex „Automaten und Sprachen“ der theoretischen Informatik. Die Anforderun-

4 Vgl. Mandl & Friedrich 2006, S.1.


5 Vgl. Woolfolk & Schönpflug 2008, S. 325.
6 Vgl. Öchsner, Estner & Kühl 2016, S. 53.
7 Vgl. Streblow & Schiefele 2006, S.354.
8 Vgl. Brinkmann 2012, S. 27.
9 Vgl. Knigge-Illner 2010, S. 46f.
10 Ebd., S. 48ff.
11 Vgl. Jenny 2015, Regel 1.

vi
Vorwort

gen konvergieren mit denen im Informatikunterricht der gymnasialen Oberstufe


und im Haupt- bzw. Masterstudium in struktur- und naturwissenschaftlichen Fä-
chern. Dementsprechend finden Schüler und Studenten in einem gerade für Novi-
zen oftmals schwierigen Gebiet eine große Aufgabenvielfalt vor, die speziell in
Prüfungs- und Klausurvorbereitungsphasen beim Aufbau eines durchdringenden
Verständnisses helfen kann. Zentral ist dabei die Darstellung von detaillierten und
leicht nachvollziehbaren Lösungen, d. h. insbesondere von ausführlichen Lö-
sungswegen. Die vorliegenden Aufgaben sollen damit der Erprobung und Vertie-
fung von theoretischen Inhalten dienen und sind hervorragend zur Vorbereitung
auf Prüfungen und Klausuren geeignet.

Zielgruppe dieses Übungsbuches sind Oberstufenschüler und Studenten der In-


formatik, der Angewandten Informatik und Wirtschaftsinformatik, Mathematik,
Elektro- und Medientechnik, Informationstechnologie bzw. -wissenschaften u. ä.

Zur Bearbeitung der Aufgaben wird empfohlen, im Vorfeld oder parallel korre-
spondierende Lehrveranstaltungen (wie z. B. Übungsveranstaltungen und Vorle-
sungen zu „Automaten und Sprachen“ oder oftmals auch ein- bis zweisemestrige
Module/Vorlesungsreihen zur theoretischen Informatik) zu besuchen und/oder
einschlägige Literatur wie Vorlesungsskripte oder Lehrbücher heranzuziehen. Da-
mit sollte einem guten Lernzuwachs nichts im Wege stehen – allenfalls auch
ohne das Buch volle 100 Mal zu lesen...

Dieses Vorwort abschließend soll noch der kurze Hinweis gegeben werden, dass
die Inhalte dieses Übungsbuchs mit größter Sorgfalt erstellt wurden; trotzdem
können Fehler wie überall im Leben nicht vollständig ausgeschlossen werden.

Viel Freude beim Üben und große Lernfortschritte wünscht Ihnen

Stefan Knapp

vii
Inhaltsverzeichnis

Endliche Automaten............................................................................................... 1

Übungen zu endlichen Automaten..........................................................................2

Grammatiken........................................................................................................ 79

Übungen zu Grammatiken...................................................................................80

Kellerautomaten................................................................................................. 121

Übungen zu Kellerautomaten.............................................................................122

Reguläre Ausdrücke und reguläre Sprachen......................................................135

Übungen zu regulären Ausdrücke und regulären Sprachen...............................136

Stichwortverzeichnis...........................................................................................149

Quellen............................................................................................................... 153

ix
Endliche Automaten

Endliche Automaten sind Zustandsmaschinen, die aus Zuständen und Übergän-


gen zwischen diesen Zuständen bestehen. Da die Anzahl der Zustände begrenzt
ist, werden die Automaten als „endlich“ bezeichnet. Formal besteht ein endlicher
Automat M = (Q,Σ,δ,F,S) aus den folgenden Elementen:1

• Q: Menge der Zustände


• Σ: Eingabealphabet
• δ: Zustandsübergangsfunktion
• F: Menge der Endzustände (Teilmenge von Q)
• S: Startzustand (Teilmenge von Q, kann auch eine Teilmenge von F sein)

Endliche Automaten können einfache Entscheidungsprobleme lösen, d. h., mit ih-


rer Hilfe kann eine Teilklasse von Algorithmen bzw. Programmen formal beschrie-
ben und untersucht werden.2 Sie erhalten eine Eingabe (Input) aus Symbolen, die
als Wort bezeichnet wird, und „entscheiden“ im Wesentlichen, ob dieses Wort be-
stimmten syntaktischen Regeln entspricht und damit zu einer bestimmten Spra-
che bzw. Sprachklasse gehört (Output).3

Konkret beschreiben endliche Automaten die Sprachklasse der regulären Spra-


chen.4 Dementsprechend behandeln die folgenden Aufgaben Zusammenhänge
zwischen endlichen Automaten und regulären Sprachen, wobei zentrale Elemente

• die Automatenkonstruktion und -transformation,


• Überführung von Transitionstabellen in Transitionsdiagramme,
• Zusammenhänge zwischen regulären Grammatiken und endlichen Auto-
maten sowie
• reguläre Ausdrücke als alternative Darstellungsform zu von endlichen Au-
tomaten akzeptierten Sprachen

sind. Kurz gesagt: In diesem Kapitel geht es um die Einordnung von endlichen
Automaten als Darstellungsform für reguläre Sprachen, die Übung beim Operie -
ren mit endlichen Automaten und damit um einen beschleunigten Erkenntnisge-
winn durch Transfer, Wiederholung und Vertiefung von Unterrichts- bzw. Vorle-
sungsinhalten.

1 Vgl. Broy 1998, S. 226.


2 Vgl. Hromkovic 2007, S. 75.
3 Vgl. Asteroth & Baier 2002, S. 194.
4 Vgl. Broy 1998, S. 226.

1
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1_1
Endliche Automaten

Aufgabe 001

Sei M1 = (Q1,Σ,δ1,S1,F1) ein endlicher Automat mit L1 = L(M1) und M2 =


(Q2,Σ,δ2,S2,F2) ein endlicher Automat mit L2 = L(M2). Ohne Beschränkung der All-
gemeinheit gilt
Q1  Q2 = .

Konstruieren Sie einen endlichen Automaten M, für den gilt:


L(M) = L1 o L2.

Lösung:

Gesucht ist M = M1 o M2.

M = (Q,Σ,δ,S,F) mit

Q = Q1  Q2,
Σ, da beide Automaten dasselbe Eingangsalphabet haben,
S = S1,
F = F2,
δ = {δ1  δ2  X→S2 für alle XF1 }

In Worten: Die Zustandsmengen Q1 und Q2 werden vereinigt, neuer Anfangszu-


stand ist S1, die Menge der neuen Endzustände ist F2. Die Mengen der Zustands-
übergänge δ1 und δ2 werden ebenfalls vereinigt, zudem kommen noch -Übergän-
ge von allen Endzuständen von M1, also allen in der Menge F1 enthaltenen Zu-
stände, hin zum Startzustand von M2, also S2, hinzu.

Aufgabe 002

Konstruieren Sie zum folgenden NEA einen äquivalenten DEA und zeichnen Sie
das dazugehörige Transitionsdiagramm.

MNEA = (Q,Σ,δ,S,F) mit

Q = {A,B,C,D},
Σ = {0,1},
S = A,

2
Endliche Automaten

F = {D},
δ:
δ 0 1
A {A,B} A
B C C
C D -
D D D

Lösung:

Potenzmengenkonstruktion:

δ' 0 1 Umbenennung der Zustände


A {A,B} A A := q0, {A,B} := q1
{A,B} {A,B,C} {A,C} {A,B,C} := q2, {A,C} := q3
{A,B,C} {A,B,C,D} {A,C} {A,B,C,D} := q4
{A,C} {A,B,D} A {A,B,D} := q5
{A,B,C,D} {A,B,C,D} {A,C,D} {A,C,D} := q6
{A,B,D} {A,B,C,D} {A,C,D}
{A,C,D} {A,B,D} {A,D} {A,D} := q7
{A,D} {A,B,D} {A,D}

Aufgrund von F = {D} gehören alle Zustände, die D enthalten, zur Menge F' der
neuen Endzustände.

Damit ergibt sich MDEA = (Q',Σ,δ',S',F') mit

Q' = {q0,q1, ...,q7},


Σ = {0,1},
S' = q0,
F' = {q4,q5,q6,q7},

3
Endliche Automaten

δ':

Aufgabe 003

Geben Sie einen deterministischen endlichen Automaten MDEA an, der die folgen-
de Sprache L über dem Alphabet Σ = {0,1} akzeptiert:

L = {w{0,1}* | w enthält drei aufeinander folgende Nullen}

Lösung:

Gesucht wird also MDEA mit L(MDEA) = L.

(In einem fakultativen Hilfsschritt kann die Sprache L zunächst durch den regulä-
ren Ausdruck (0|1)* 000 (0|1)* beschrieben werden.)

MDEA = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3},
Σ = {0,1},
S = q0,
F = {q3},
δ:

4
Endliche Automaten

Aufgabe 004

Gegeben ist ein endlicher Automat M. Zeichnen Sie das zugehörige Transitions-
diagramm und beschreiben Sie die Sprache L(M) durch einen regulären Ausdruck
R.

M = (Q,Σ,δ,S,F) mit

Q = (A,B,C),
Σ = {a,b},
S = A,
F = {C},
δ:
δ a b
A B -
B - C
C B -

Lösung:

• Transitionsdiagramm:

• regulärer Ausdruck: R = ab(ab)* = (ab)*ab = (ab)+

Aufgabe 005

Konstruieren Sie zum folgenden NEA einen äquivalenten DEA und zeichnen Sie
das dazugehörige Transitionsdiagramm.

MNEA = (Q,Σ,δ,S,F) mit

Q = {A,B,C,D},
Σ = {0,1},
S = A,
F = {B,D},

5
Endliche Automaten

δ:
δ 0 1
A {B,D} B
B C {B,C}
C D A
D - A

Lösung:

Der gesuchte DEA M wird mittels Potenzmengenkonstruktion aufgebaut. Für bes-


sere Lesbarkeit werden die Zustände in qn umbenannt.

Potenzmengenkonstruktion:

δ' 0 1
A := q0 {B,D} B
{B,D} := q1 C {B,C,A}
B := q2 C {B,C}
C := q3 D A
{B,C,A} := q4 {B,C,D} {B,C,A}
{B,C} := q5 {C,D} {B,C,A}
D := q6 {} A
{B,C,D} := q7 {C,D} {B,C,A}
{C,D} := q8 D A
{ } qleer {} {}

Aufgrund von F = {B,D} gehören alle Zustände qi, die die alten Zustände B|D ent-
halten, zur Menge F' der neuen Endzustände. Damit ergibt sich MDEA =
(Q',Σ',δ',S',F') mit

Q' = {q0,q1, ...,q8,qleer},


Σ' = {0,1},
S' = q0,

6
Endliche Automaten

F' = {q1,q2,q4,q5,q6,q7,q8},
δ':

Aufgabe 006

Gegeben ist ein endlicher Automat M. Zeichnen Sie das zugehörige Transitions-
diagramm und beschreiben Sie die Sprache L(M) durch einen regulären Ausdruck
R.

M = (Q,Σ,δ,S,F) mit

Q = (A,B),
Σ = {0,1},
S = A,
F = {B},
δ:
δ 0 1
A A B
B A B

Lösung:

Die Zustände und Übergänge des Transitionsdiagramms sind direkt aus der
Übergangstabelle abzulesen:

7
Endliche Automaten

Der reguläre Ausdruck R kann durch systematisches Ausprobieren gefunden wer-


den. Dabei testet man zuerst möglichst kurze Worte, z. B.:

w1 L = {1}, w1 L = {0},


w2 L = {01, 11}, w2 L = {00, 10},
w3 L = {001, 011, 101, 111}, w3 L = {000, 010, 100, 110},
w4 L = {0001, 0011, 0101, 0111, 1001, 1011, 1101, 1111},
w4 L = {0000, 0010, 0100, 0110, 1000, 1010, 1100, 1110},
usw.

Man sieht leicht, dass genau für alle Worte w, die mit einer Eins enden, gilt: w 
L.

Also: R = (0|1)*1

Eine andere Möglichkeit besteht darin, den regulären Ausdruck aus dem Graphen
abzulesen: Am Anfang steht eine beliebige Anzahl an Nullen, gefolgt von genau
einer Eins, der wieder eine beliebige Anzahl Einsen folgt, gefolgt von einer belie-
bigen Anzahl von Zeichenketten, die als Präfix eine beliebige Anzahl >0 an Nullen
und danach eine beliebige Anzahl >0 an Einsen haben.

Also: R2 = 0*11*.(0+1+)*

Ohne farbliche Kennzeichnung: R2 = 0*11*(0+1+)* = 0*1+(0+1+)*

Aufgabe 007

Konstruieren Sie einen zum folgenden regulären Ausdruck R äquivalenten endli-


chen Automaten M = (Q,Σ,δ,S,F). Stellen Sie δ als Transitionsdiagramm sowie als
Zustandsübergangstabelle dar:

R = ab | (b | aa) b*a.

8
Endliche Automaten

Lösung:

Das Transitionsdiagramm kann direkt aus R abgelesen werden.

„offensichtlichere“ Möglichkeit: „elegantere“ Möglichkeit:


M = (Q,Σ,δ,S,F) mit M = (Q,Σ,δ,S,F) mit
Q = {q0,q1,q2,q3,q4}, Q = {q0,q1,q2,q3},
Σ = {a,b}, Σ = {a,b},
S = q0, S = q0,
F = {q2}, F = {q2},

δ als Transitionsdiagramm: δ als Transitionsdiagramm:

δ als Transitionstabelle: δ als Transitionstabelle:

δ a b δ a b
q0 {q1,q4} q3 q0 q1 q3
q1 - q2 q1 q3 q2
q2 - - q2 - -
q3 q2 q3 q3 q2 q3
q4 q3 -

9
Endliche Automaten

Aufgabe 008

a) Konstruieren Sie einen zum folgenden regulären Ausdruck R äquivalenten end-


lichen Automaten M = (Q,Σ,δ,S,F). Stellen Sie δ in einem Transitionsdiagramm
sowie in einer Zustandsübergangstabelle dar.

R = ab(((ba)* | bbb)* | a)*b

b) Konstruieren Sie einen zu M äquivalenten deterministischen Automaten MDEA.

Lösung:

a) Entwicklung des Transitionsgraphen aus dem regulären Ausdruck:

1.) Das Präfix ab führt zu

2.) (((ba)* | bbb)* | a)* ~ ((ba | bbb)* | a)* ~ (ba | bbb | a)*
führt weiter zu

3.) Das Suffix b führt zu

Nun kann die Zustandsübergangstabelle angegeben werden:

10
Endliche Automaten

δ:
δ a b
q0 q1 -
q1 - q2
q2 q2 {q3,q5}
q3 q2 q4
q4 - q2
q5 - -

b) Gesucht ist MDEA = (Q',Σ,δ',S',F').

Q', δ' und F' mittels Potenzmengenkonstruktion für S'=q0:

δ a b
q0 q1 qleer
q1 qleer q2
q2 q2 {q3,q5}
{q3,q5}F' q2 q4
q4 qleer q2
qleer qleer qleer

Dann ist δ' als Transitionsgraph:

Man überprüfe, ob (alle) Worte w, die aus dem regulären Ausdruck R und dem
NEA M abgeleitet werden können, vom Automat MDEA akzeptiert werden.

11
Endliche Automaten

Aufgabe 009

Gegeben sei eine unendliche Zeichenkette w=100100100... Sei M ein endlicher


Automat, der jedes Anfangsstück von w (inkl. dem leeren Wort ) akzeptiert.

a) Geben Sie einen regulären Ausdruck R an, der die Sprache L = L(M) akzep-
tiert.

b) Zeichnen Sie ein Transitionsdiagramm von M.

Lösung:

a) R = (100)* | (100)*1 | (100)*10

Herleitung:
R =  | 1 | 10 | 100 | (100)+1 | (100)+10 | (100)+100 usw.
=  | 10 | 100 | (100)*1 | (100)+10 | (100)+100
=  | 100 | (100)*1 | (100)*10 | (100)+100
=  | (100)*1 | (100)*10 | (100)*100
= (100)*1 | (100)*10 | (100)*

Hinweis: Es wäre auch möglich, zuerst das Transitionsdiagramm zu zeichnen,


um R daraus abzuleiten.

b) M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2},
Σ = {1,0},
S = q0,
F = {q0,q1,q2},
δ:

12
Endliche Automaten

Aufgabe 010

Es sei Σ = {a,b,c,...,z,0,1,...,9}.
Konstruieren Sie einen DEA M, der überprüft, ob eine Zeichenkette z1...znΣ*,
n≥1 eine zulässige (normalisierte) Binärzahl darstellt, d.h. es gilt:
• z1=1 und zi{0,1}, i=2,...,n für n>1
• z1{0,1} für n=1

Lösung:

Hinweis:
• z1=1 und zi{0,1}, i=2,...,n für n>1: falls die Länge der Zeichenkette zwei
oder mehr Zeichen beträgt, ist das erste Zeichen eine Eins (normalisierte
Binärzahl, keine führende Null).
• z1{0,1} für n=1: falls die Länge der Zeichenkette n=1 ist, kann das (erste
und einzige) Zeichen eine Eins oder eine Null sein.

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3},
Σ = {a,b,c,...,z,0,1,...,9},
S = q0,
F = {q1,q2},
δ:

Hinweis: q3 ist ein sogenannter Fangzustand.

Aufgabe 011

Es sei L = {alt, neu} eine Liste von indizierten Worten über dem Alphabet Σ =
{$,a,b,c,...,z}.

13
Endliche Automaten

Konstruieren Sie einen DEA M, der die indizierten Worte registriert, indem er beim
Auftauchen von mindestens einem der Worte in einen akzeptierenden Zustand
übergeht.
Gehen Sie dabei davon aus, dass alle Eingabewörter mit einem Dollarzeichen ($)
beginnen und enden (Bsp.: $alt$). Taucht ein indiziertes Wort als Teil eines länge-
ren Wortes auf, so soll dieses Wort nicht registriert werden (Bsp.: $dfalt$, $altjx$).

Lösung:

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4,q5,q6,q7},
Σ = {$,a,b,c,...,z},
S = q0,
F = {q5},
δ:

Akzeptierende Läufe sind demnach

• für w1=$alt$: (q0,$alt$)→(q1,alt$)→(q2,lt$)→(q3,t$)→(q4,$)→(q5,) und

• für w2=$neu$: (q0,$neu$)→(q1,neu$)→(q6,eu$)→(q7,u$)→(q4,$)→(q5,)

sowie alle Läufe der angegebenen Formen mit beliebigem Präfix.

14
Endliche Automaten

Aufgabe 012

Beim Jahreswechsel 2009-2010 kam es deutschlandweit zu Komplikationen mit


EC-Karten. Ursache hierfür war eine falsch programmierte Software auf dem Chip
der Karten, die die Jahreszahl statt im BCD-Code (dualkodierte Dezimalziffern) im
Hexadezimalsystem speicherte und so z. B. der Buchstabe „A“ anstelle der bi-
nären Zahl „1010“ auftauchte.

Konstruieren Sie einen DEA M, der bei Eingabe einer Binärzahl beliebiger Länge
feststellt, ob die Repräsentation dieser Zahl im Hexadezimalsystem einen Buch-
staben („A“, ..., „F“) enthält. Gehen Sie dabei davon aus, dass die Binärzahl stets
in 4-Tupeln eingelesen wird, wobei diese Bit für Bit eingelesen werden. Beachten
Sie, dass das erste 4-Tupel eventuell führende Nullen enthält.

Lösung:

M muss für jedes 4-Tupel prüfen, ob es eine der Dezimalzahlen 10, 11, 12, 13, 14
oder 15 (die im Hexadezimalsystem als Buchstaben dargestellt werden) als bi-
näre Zahl darstellt. Da pro 4-Tupel 16 Belegungsmöglichkeiten bestehen, sollte
zunächst eine Kategorisierung erfolgen:

hexadezimale Darstel-
gesuchte Binärzahlen
lung
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Es fällt auf:

• alle Binärzahlen mit zwei führenden Einsen gehören zu den gesuchten

• die beiden übrigen gesuchten Binärzahlen beginnen mit 101

Die Menge der gesuchten Binärzahlen ist also die Menge aller vierstelligen Binär-
zahlen, die entweder zwei führende Einsen haben oder mit 101 beginnen. For-
mal:

15
Endliche Automaten

L = {w  {0,1}* | (w=vx mit v=11 und |x|=2)  (w=yz mit y=101 und z{0,1}1) }

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,...,q9},
Σ = {0,1},
S = q0,
F = {q4},
δ:

Aufgabe 013

Konstruieren Sie einen DEA M, der überprüft, ob eine ganzzahlige, nicht negative
Dezimalzahl durch 3 teilbar ist.

Lösung:

Vorüberlegungen:

• Eine Dezimalzahl ist durch 3 teilbar, wenn ihre Quersumme durch 3 teil-
bar ist. Dementsprechend müssen die eingelesen Zeichen jeweils addiert
werden.

• Jede dritte Zahl ist durch 3 teilbar, gefolgt von zwei Zahlen, die nicht
durch 3 teilbar sind. Dementsprechend benötigt M einen akzeptierenden
Zustand und zwei nichtakzeptierende.

16
Endliche Automaten

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2},
Σ = {0,1,2,3,...,9},
S = q0,
F = {q0},
δ:

Beispiel für einen akzeptierenden Lauf mit w=236424:


(q0,236424)→(q2,36424)→(q2,6424)→(q2,424)→(q0,24)→(q2,4)→(q0,)

Aufgabe 014

Gegeben sei folgender DEA M:

Geben Sie eine Grammatik G an, die die gleiche Sprache wie M erzeugt, so dass
gilt: L(G) = L(M).

17
Endliche Automaten

Lösung:

G = (V,Σ,S,P) mit
V = {A,B,C,D,E,F},
Σ = {0,1},
S ist Startsymbol,
A→1B | 0D | 1
B→1C | 0E | 
C→1A | 0F
P=
D→1E | 0A
E→1F | 0B | 0
F→1D | 0C

Aufgabe 015

Gegeben sei die Sprache L = {w{0,1}* : w=x011y10z, x,y,z{0,1}*}.

Konstruieren Sie einen NEA MN mit L(MN) = L.

Lösung:

MN = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4,q5},
Σ = {0,1},
S = q0,
F = {q5},
δ:

18
Endliche Automaten

Aufgabe 016

Gegeben seien L = {w{0,1}* : w=x011y10z, x,y,z{0,1}*} und der folgende NEA


MN = (Q,Σ,δ,S,F) mit L(MN) = L, wobei
Q = {q0,q1,q2,q3,q4,q5},
Σ = {0,1},
S = q0,
F = {q5},
δ:

Konstruieren Sie einen DEA MD mit L(MD) = L(MN) = L.

Lösung:

Potenzmengenkonstruktion:

δ 0 1 Umbenennung der Zustände


q0 {q0,q1} q0 Q0 := q0
{q0,q1} {q0,q1} {q0,q2} Q01 := {q0,q1}
{q0,q2} {q0,q1} {q0,q3} Q02 := {q0,q2}
{q0,q3} {q0,q1,q3} {q0,q3,q4} Q03 := {q0,q3}
{q0,q1,q3} {q0,q1,q3} {q0,q2,q3,q4} Q013 := {q0,q1,q3}
{q0,q3,q4} {q0,q1,q3,q5} {q0,q3,q4} Q034 := {q0,q3,q4}
{q0,q2,q3,q4} {q0,q1,q3,q5} {q0,q3,q4} Q0234 := {q0,q2,q3,q4}
{q0,q1,q3,q5} {q0,q1,q3,q5} {q0,q2,q3,q4,q5} Q0135 := {q0,q1,q3,q5} FD
{q0,q2,q3,q4,q5} {q0,q1,q3,q5} {q0,q3,q4,q5} Q02345 := {q0,q2,q3,q4,q5} FD
{q0,q3,q4,q5} {q0,q1,q3,q5} {q0,q3,q4,q5} Q0345 := {q0,q3,q4,q5} FD

19
Endliche Automaten

Damit ergibt sich MD = (Q',Σ,δ',S',F') mit

Q' = {Q0,Q01,Q02,Q03,Q013,Q034,Q0234,Q0135,Q02345,Q0345},
Σ = {0,1},
S' = Q0,
F' = {Q0135,Q02345,Q0345},
δ':

Aufgabe 017

Geben Sie einen endlichen Automaten M über dem Alphabet Σ = {I,V,X} an, der
genau die römischen Zahlen zwischen 1 und 10 erkennt, also die Menge
{I,II,III,IV,V,VI,VII, VIII,IX,X}. M soll nicht mehr als sieben Zustände haben.

Lösung:

Q = {q0,q1,q2,q3,q4,q5},
Σ = {I,V,X},
S = q0,
F = {q1,q2,q3,q4,q5},
δ:

20
Endliche Automaten

Aufgabe 018

Minimieren Sie den folgenden Automaten M durch eine systematische Konstrukti-


on und geben Sie den daraus resultierenden minimalen DEA M' an.

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4,q5,q6},
Σ = {a,b},
S = q0,
F = {q2,q4},
δ:

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X8
q2 X X
q3 X9 X
q4 X X X3 X
q5 X1 X2 X X5 X
q6 X7 X X4 X X6
q0 q1 q2 q3 q4 q5 q6

21
Endliche Automaten

Vorgehen beim Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

1.) Zunächst können alle Zustände F von den Zuständen F unterschieden wer-
den. Alle entsprechenden Zustandspaare werden mit X markiert.

2.) Prüfung aller weiteren Zustandspaare:

• (q0,q6) mit a: (q1,q5), nicht unterscheidbar,


mit b: (q4,q2), nicht unterscheidbar

• (q0,q5) mit a: (q1,q5), nicht unterscheidbar,


mit b: (q4,q3), unterscheidbar → X1

• (q0,q3) mit a: (q1,q6), nicht unterscheidbar,


mit b: (q4,q4), nicht unterscheidbar

• (q0,q1) mit a: (q1,q5), nicht unterscheidbar,


mit b: (q4,q2), nicht unterscheidbar

• (q1,q6) mit a: (q5,q5), nicht unterscheidbar,


mit b: (q2,q2), nicht unterscheidbar

• (q1,q5) mit a: (q5,q5), nicht unterscheidbar,


mit b: (q2,q3), unterscheidbar → X2

• (q1,q3) mit a: (q5,q6), nicht unterscheidbar,


mit b: (q2,q4), nicht unterscheidbar

• (q2,q4) mit a: (q0,q2), unterscheidbar → X3

• (q3,q6) mit a: (q6,q5), nicht unterscheidbar,


mit b: (q4,q2), unterscheidbar → X4

• (q3,q5) mit a: (q6,q5), nicht unterscheidbar,


mit b: (q4,q3), unterscheidbar → X5

• (q5,q6) mit a: (q5,q3), unterscheidbar → X6

• erneut (q0,q6) mit a: (q1,q5), unterscheidbar → X7

• erneut (q0,q3) mit a: (q1,q6), nicht unterscheidbar,


mit b: (q4,q4), nicht unterscheidbar

22
Endliche Automaten

• erneut (q0,q1) mit a: (q1,q5), unterscheidbar → X8

• erneut (q1,q6) mit a: (q5,q5), nicht unterscheidbar,


mit b: (q2,q2), nicht unterscheidbar

• erneut (q1,q3) mit a: (q5,q6), unterscheidbar → X9

• eine weitere Überprüfung der noch offenen Zustandspaare bringt keine


weiteren Markierungen

3.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q0,q3) und


(q1,q6) zu Äquivalenzklassen:

{q0,q3} := [q0,3] und {q1,q6} := [q1,6]

4.) Betrachtet man die Äquivalenzklassen als Zustände, ergibt sich der minimierte
DEA M' = (Q',Σ,δ',F',S') mit

Q' = {[q0,3],[q1,6],q2,q4,q5},
F' = {q2,q4},
S' = q0,
δ':

23
Endliche Automaten

Aufgabe 019

Gegeben sei eine Grammatik G über dem Alphabet Σ = {a,b} mit den Produktions-
regeln

S→aB | bA
P= A→aS | a
B→bS | b .

a) Welche Sprache wird durch G beschrieben? Von welchem Typ ist G?

b) Geben Sie einen DEA M an, der die von G erzeugte Sprache akzeptiert.

Lösung:

a) L = {w{a,b}* | w=(ab | ba)+}

In Worten: Jedes wL besteht aus mindestens einer und beliebig vielen der Zei-
chenketten ab und ba.

G ist eine reguläre Grammatik (Typ 3).

b) Es wird ein zusätzlicher Zustand C benötigt, da der Zustand S kein akzeptie-


render Zustand sein kann: L.

Für die „fehlenden“ (unzulässigen) Übergänge wird ebenfalls ein zusätzlicher


Fehlerzustand Fehler benötigt.

M = (Q,Σ,δ,F,S) mit

Q = {S,A,B,C,Fehler},
Σ = {a,b},
S ist Startzustand,
F = {C},
δ:

24
Endliche Automaten

Aufgabe 020

a) Welche Sprachen werden von deterministischen endlichen Automaten


erkannt?

b) Geben Sie einen DEA M an, der die Sprache L = {ab, aabb, aaabbb} akzep-
tiert.

c) Gibt es einen deterministischen endlichen Automaten, der die Sprache L =


{anbn | n≥1} erkennt? Begründen Sie Ihre Aussage.

Lösung:

a) reguläre Sprachen

b) M = (Q,Σ,δ,F,S) mit

Q = {q0,q1,...,q7},
Σ = {a,b},
S = q0,
F = {q4},
δ:

Hinweis:
q7 ist Fang- bzw. Fehlerzustand

c) Solch einen DEA gibt es nicht.


Begründung: Für n→∞ würden unendlich viele Zustände benötigt - das wider-
spricht der Definition von endlichen Automaten. Eine Lösung mit Schleifen ist
nicht möglich, da gelesene Zeichen (und somit |bn|) nicht gezählt werden können.

Dieser Beweis kann auch mittels Pumping Lemma für L3 erfolgen: Da L nicht re-
gulär ist, gibt es auch keinen DEA, der L akzeptiert.

25
Endliche Automaten

Aufgabe 021

Gegeben ist die Sprache L = {wΣ* | |w| ist ungerade} über dem Alphabet Σ =
{a,b}.
Geben Sie einen DEA M an, der L erkennt.

Lösung:

M = (Q,Σ,δ,F,S) mit

Q = {q0,q1},
Σ = {a,b},
S = q0,
F = {q1},
δ:

Aufgabe 022

Gegeben ist die Sprache L = {wΣ* | |w|a≥1 und |w|b≥1} über dem Alphabet Σ =
{a,b}.
Geben Sie einen DEA M an, der L erkennt.

Lösung:

M = (Q,Σ,δ,F,S) mit

Q = {q0,q1,q2,q3},
Σ = {a,b},
S = q0,
F = {q3},
δ:

26
Endliche Automaten

Aufgabe 023

Gegeben ist die Sprache L = {wΣ* | |w|b=0 oder |w|b=2} über dem Alphabet Σ =
{a,b}.
Geben Sie einen DEA M an, der L erkennt.

Lösung:

M = (Q,Σ,δ,F,S) mit

Q = {q0,q2,q3,qF},
Σ = {a,b},
S = q0,
F = {q0,q3},
δ:

Aufgabe 024

Gegeben ist die Sprache L = {wΣ* | w enthält nicht ab} über dem Alphabet Σ =
{a,b}.
Geben Sie einen DEA M an, der L erkennt.

Lösung:

M = (Q,Σ,δ,F,S) mit

Q = {q0,q1,q2,q3,qF},
Σ = {a,b},
S = q0,
F = {q0,q1},

27
Endliche Automaten

δ:

Aufgabe 025

Gegeben ist die Sprache L{0,1}* derjenigen Wörter, die 01 als Teilwort enthal-
ten.

a) Geben Sie einen regulären Ausdruck R an mit L(R) = L.

b) Geben Sie einen DEA M mit drei Zuständen und L(M) = L an. Zeichnen Sie δ
als Transitionsdiagramm.

Lösung:

a) R = (0 | 1)* 01 (0 | 1)*

b) M = (Q,Σ,δ,F,S) mit

Q = {q0,q1,q2},
Σ = {0,1},
S = q0,
F = {q2},
δ:

Aufgabe 026

Gegeben sei der NEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,q1,q2}, S = q0, F = {q2}
und der Überführungsfunktion

28
Endliche Automaten

δ: Q×Σ→P(Q):

δ 0 1
q0 {q0,q1} {q0}
q1 {q1,q2} {q1}
q2 {q2} {q2}

a) Zeichnen Sie den Zustandsgraphen von M.

b) Konstruieren Sie mit Hilfe der Potenzmengenkonstruktion einen zu M äquiva-


lenten DEA M'. Geben Sie alle Komponenten des Tupels M' explizit an.

Lösung:

a)

b) Potenzmengenkonstruktion:

δ 0 1 Umbenennung der Zustände


q0 {q0,q1} {q0} q0 := Q0, {q0,q1} := Q01
{q0,q1} {q0,q1,q2} {q0,q1} {q0,q1,q2} := Q012
{q0,q1,q2} {q0,q1,q2} {q0,q1,q2}

Q012F', da q2F.

M' = (Q',Σ,δ',F',S') mit

Q' = {Q0,Q01,Q012},
Σ = {0,1},
S' = Q0,
F' = {Q012},

29
Endliche Automaten

δ':

Aufgabe 027

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,...,q4}, S = q0, F = {q4}
und δ:

Minimieren Sie M.

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X2
q2 X3
q3 X1 X4
q4 X X X X
q0 q1 q2 q3 q4

Vorgehen beim Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

1.) Zunächst können alle Zustände F von den Zuständen F unterschieden wer-
den. Alle entsprechenden Zustandspaare werden mit X markiert.

30
Endliche Automaten

2.) Prüfung aller weiteren Zustandspaare:

• (q0,q3) führt mit 0 zu (q1,q4), dieses Paar ist unterscheidbar (ist bereits
mit X markiert), deshalb ist auch (q0,q3) unterscheidbar und wird mit X1
markiert

• (q0,q2) führt mit 0 zu (q1,q3), offen (noch nicht mit X markiert),


führt mit 1 zu (q2,q2), nicht unterscheidbar, deshalb ist auch (q0,q2)
nicht unterscheidbar und bleibt zunächst unmarkiert

• (q0,q1) führt mit 0 zu (q1,q4), unterscheidbar → Markierung mit X2

• (q1,q3) führt mit 0 zu (q4,q4), offen,


führt mit 1 zu (q2,q0), nicht unterscheidbar, deshalb ist auch (q1,q3)
nicht unterscheidbar und bleibt zunächst unmarkiert

• (q1,q2) führt mit 0 zu (q4,q3), unterscheidbar → Markierung X3

• (q2,q3) führt mit 0 zu (q3,q4), unterscheidbar → Markierung X4

• eine erneute Überprüfung der beiden noch offenen Zustandspaare bringt


keine weiteren Markierungen

3.) Zusammenfassen der nicht unterscheidbaren Zustandspaare in Äquivalenz-


klassen:

{q0,q2} := [q0,2] und {q1,q3} := [q1,3]

4.) Betrachtet man die Äquivalenzklassen als Zustände, ergibt sich der minimierte
DEA M' = (Q',Σ,δ',F',S') mit

Q' = {[q0,2],[q1,3],q4},
F' = {q4},
S' = [q0,2],
δ':

31
Endliche Automaten

Aufgabe 028

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {a,b}, Q = {q0,...,q7}, S = q0,


F = {q4,q5,q6,q7} und δ:

Minimieren Sie M.

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X3
q2 X2 X6
q3 X1 X4 X5
q4 X X X X
q5 X X X X
q6 X X X X
q7 X X X X
q0 q1 q2 q3 q4 q5 q6 q7

Vorgehen beim Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

1.) Zunächst können alle Zustände F von den Zuständen F unterschieden wer-
den. Alle entsprechenden Zustandspaare werden mit X markiert.

2.) Prüfung aller weiteren Zustandspaare:

• (q0,q3) mit a: (q1,q4), unterscheidbar (ist bereits mit X markiert), deshalb


ist auch (q0,q3) unterscheidbar und wird mit X1 markiert

• (q0,q2) mit a: (q1,q1), nicht unterscheidbar,


mit b: (q0,q3), unterscheidbar → X2

32
Endliche Automaten

• (q0,q1) mit a: (q1,q1), nicht unterscheidbar,


mit b: (q0,q2). Unterscheidbar → X3

• (q1,q3) mit a: (q1,q4). Unterscheidbar → X4

• (q1,q2) mit a: (q1,q1), nicht unterscheidbar,


mit b: (q2,q3), nicht unterscheidbar

• (q2,q3) mit a: (q1,q4), unterscheidbar → X5

• (q4,q7) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q5,q7), nicht unterscheidbar

• (q4,q6) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q5,q7), nicht unterscheidbar

• (q4,q5) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q5,q6), nicht unterscheidbar

• (q5,q7) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q6,q7), nicht unterscheidbar

• (q5,q6) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q6,q7), nicht unterscheidbar

• (q6,q7) mit a: (q4,q4), nicht unterscheidbar,


mit b: (q7,q7), nicht unterscheidbar

• erneut (q1,q2) mit a: (q1,q1), nicht unterscheidbar,


mit b: (q2,q3), unterscheidbar → X6

• eine erneute Überprüfung der noch offenen Zustandspaare bringt keine


weiteren Markierungen

3.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q4,q7), (q4,q6),


(q4,q5), (q5,q7), (q5,q6), (q6,q7):

Da (q4,q7) und (q4,q6) nicht unterscheidbare Zustandspaare sind, ist auch (q7,q6)
ein nicht unterscheidbares Paar. Dies gilt analog für die anderen nicht unter-
scheidbaren Zustandspaare, sodass eine Äquivalenzklasse genügt:

{q4,q5,q6,q7} := [q4,5,6,7]

33
Endliche Automaten

4.) Betrachtet man die Äquivalenzklasse als Zustand, ergibt sich der minimierte
DEA
M' = (Q',Σ,δ',F',S') mit

Q' = {[q4,5,6,7],q0,q1,q2,q3},
F' = {[q4,5,6,7]},
S' = q0,
δ':

Aufgabe 029

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit

Σ = {0,1},
Q = {A,...,F},
S = A,
F = {A,E,F} und
δ:

Minimieren Sie M.

34
Endliche Automaten

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

A
B X
C X X3
D X X4
E X2 X X X
F X1 X X X
A B C D E F

Vorgehen beim Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

1.) Zunächst können alle Zustände F von den Zuständen F unterschieden wer-
den. Alle entsprechenden Zustandspaare werden mit X markiert.

2.) Prüfung aller weiteren Zustandspaare:

• (A,F) mit 0: (A,D), unterscheidbar (ist bereits mit X markiert), deshalb


ist auch (A,F) unterscheidbar und wird mit X1 markiert

• (A,E) mit 0: (A,B), unterscheidbar → X2

• (B,D) mit 0: (A,A), nicht unterscheidbar,


mit 1: (C,C), nicht unterscheidbar

• (B,C) mit 0: (A,D), unterscheidbar → X3

• (C,D) mit 0: (D,A), unterscheidbar → X4

• (E,F) mit 0: (B,D), nicht unterscheidbar,


mit 1: (F,E), nicht unterscheidbar

3.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (B,D), (E,F) in


Äquivalenzklassen:

{B,D} := [qB,D] und {E,F} := [qE,F]

35
Endliche Automaten

4.) Betrachtet man die Äquivalenzklassen als Zustände, ergibt sich der minimierte
DEA M' = (Q',Σ,δ',F',S') mit

Q' = {[qB,D],[qE,F],A,C},
F' = {[qE,F],A},
S' = A,
δ':

Aufgabe 030

Gegeben sei die Sprache L = {w{0,1}* | der Teil-String 011 ist nicht in w enthal-
ten}.

a) Geben Sie einen DEA M an, der die Sprache L akzeptiert.

Hinweis: Es ist einfacher, zuerst einen Automaten für L anzugeben und diesen
dann so zu ändern, dass er L erkennt.

b) Geben Sie eine reguläre Grammatik G an, die L erzeugt.

Lösung:

a) M = (Q1,Σ,δ1,S1,F1) mit L(M) = L und

Q1 = {A,B,C,D},
Σ = {0,1},
S1 = A,
F1 = {D},
δ1:

36
Endliche Automaten

M = (Q,Σ,δ,S,F) mit L(M) = L und

Q = {A,B,C,D},
Σ = {0,1},
S = A,
F = {A,B,C},
δ:

b) G = (V,Σ,S,P) mit

V = {A,B,C},
Σ = {0,1},
A ist Startsymbol,
A→0B | 1A | 0 |  Regel A→1 erübrigt sich aufgrund der -Regel und Regel A→1A

P= B→0B | 1C | 1 |  Regel B→0 erübrigt sich aufgrund der -Regel und Regel B→0B

C→0B | 0 Regel C→1D erübrigt sich, da ab hier alle wL

Regeln D→0D | 1D erübrigen sich, da wL

Aufgabe 031

Konstruieren Sie einen DEA M für die Sprache L{a,b}*, die alle Wörter enthält,
die eine gerade Anzahl an a und eine gerade Anzahl an b enthalten.

Lösung:

M = (Q,Σ,δ,S,F) mit L(M) = L und

Q = {A,B,C,D},
Σ = {a,b},
S = A,
F = {A},

37
Endliche Automaten

δ:

Hinweis zur Konstruktion:

Anzahl an a ist gerade Anzahl an b ist gerade

Aufgabe 032

Gegeben sei der -NEA M = (Q,Σ,δ,S,F) über Σ = {a,b} mit δ:

Konstruieren Sie einen äquivalenten NEA M-frei ohne -Übergänge.

38
Endliche Automaten

Lösung:

Sei M' = (Q',Σ,δ',S',F').

1.) neuen Startzustand q0N und neuen, eindeutigen Endzustand qF einführen und
q0N mit dem alten Startzustand sowie alle alten Endzustände mit qF durch einen ɛ-
Übergang verbinden:

Q' = Qq0NqF,
S' = q0N,
F' = {qF},
δ':

2.) Eliminierung aller ɛ-Zyklen aus M'


Man erhält M'' mit δ'':

3.) Transformation der ɛ-Übergänge


Resultat ist M''' mit δ''':

39
Endliche Automaten

4.) Bestimmung der Endzustände und Eliminierung der ɛ-Übergänge

M-frei = (Q-frei,Σ,δ-frei,q0N,F-frei) mit L(M) = L(M-frei ) und

Q-frei = {q0N,q014,q3,q2},
Σ = {a,b},
q0N ist Startzustand,
F-frei = {q2,q3},
δ-frei:

Aufgabe 033

Gegeben sei der -NEA M = (Q,Σ,δ,S,F) über Σ = {0,1} mit δ:

Konstruieren Sie einen äquivalenten NEA M-frei ohne -Übergänge.

Lösung:

Sei M' = (Q',Σ,δ',S',F').

1.) neuer Startzustand q0NEU, neuer Endzustand qF, q0NEU mit dem alten Startzu-
stand sowie alle alten Endzustände mit qF durch einen ɛ-Übergang verbinden:

40
Endliche Automaten

Q' = Qq0NEUqF,
S' = q0NEU,
F' = {qF},
δ':

2.) Eliminierung aller ɛ-Zyklen aus M'


Man erhält M'' mit δ'':

3.) Transformation der ɛ-Übergänge


Resultat ist M''' mit δ''':

4.) Bestimmung der Endzustände und Eliminierung der ɛ-Übergänge

M-frei = (Q-frei,Σ,δ-frei,q0N,F-frei) mit L(M) = L(M-frei ) und

Q-frei = {q0NEU,q1,q02},
Σ = {0,1},
q0NEU ist Startzustand,
F-frei = {q0NEU,q02},
δ-frei:

41
Endliche Automaten

Aufgabe 034

Gegeben seien die beiden Sprachen

L1 = {w{a,b}* | |w| mod 2 = 0} und L2 = {w{a,b}* | |w| mod 3 = 0}.

a) Geben Sie für beide Sprachen einen deterministischen endlichen Automaten


an.

b) Sei L = L1L2. Geben Sie für L einen deterministischen endlichen Automaten


M(L) an.

c) Geben Sie für L einen DEA M'(L) an.

Lösung:

a)
M1 = M(L1) = (Q1,Σ,δ1,S1,F1) mit M2 = M(L2) = (Q2,Σ,δ2,S2,F2) mit

Q1 = {q0,q1}, Q2 = {q0,q1,q2},
Σ = {a,b}, Σ = {a,b},
S1 = q0, S2 = q0,
F1 = {q0}, F2 = {q0},
δ1: δ2:

b) M(L) = M(L1L2) = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4,q5},
Σ = {a,b},
S = q0,
F = {q0,q2,q3,q4},
δ:

42
Endliche Automaten

c) M'(L) = (Q',Σ',δ',S',F') mit

Q' = {q0,q1,q2,q3,q4,q5},
Σ' = {a,b},
S' = q0,
F' = {q1,q5},
δ':

Aufgabe 035

Gegeben sei die Sprache L = {w{a,b,c}* | w enthält aa oder bb oder cc}.

a) Geben Sie einen deterministischen endlichen Automaten M für L an.

b) Geben Sie eine reguläre Grammatik für L an.

Lösung:

a) M(L) = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4},
Σ = {a,b,c},
S = q0,
F = {q2},

43
Endliche Automaten

δ:

b) G = (V,Σ,S,P) mit

V = {q0,q1,q2,q3,q4},
Σ = {a,b,c},
S = q0,
q0→aq1 | bq3 | cq4
q1→aq2 | bq3 | cq4 | a
P= q2→aq2 | bq2 | cq3 | a | b | c
q3→aq1 | bq2 | cq4 | b
q4→aq1 | bq3 | cq2 | c

Aufgabe 036

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,...,q4}, S = q0, F =


{q1,q4} und δ:

Minimieren Sie M.

44
Endliche Automaten

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X
q2 X1 X
q3 X X2
q4 X X X
q0 q1 q2 q3 q4

Vorgehen beim Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

1.) Zunächst können alle Zustände F von den Zuständen F unterschieden wer-
den. Alle entsprechenden Zustandspaare werden mit X markiert.

2.) Prüfung aller weiteren Zustandspaare:

• (q0,q3) mit 0: (q1,q4), nicht unterscheidbar


mit 1: (q2,q2), nicht unterscheidbar

• (q0,q2) mit 0: (q1,q0), unterscheidbar → X1

• (q1,q4) mit 0: (q2,q2), nicht unterscheidbar,


mit 1: (q4,q4), nicht unterscheidbar

• (q2,q3) mit 0: (q0,q4), unterscheidbar → X2

• eine erneute Überprüfung der noch offenen Zustandspaare bringt keine


weiteren Markierungen

3.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q0,q3), (q1,q4) in


Äquivalenzklassen:

{q0,q3) := [q0,3] und {q1,q4} := [q1,4]

4.) Betrachtet man die Äquivalenzklassen als Zustände, ergibt sich der minimierte
DEA M' = (Q',Σ,δ',F',S') mit

45
Endliche Automaten

Q' = {[q0,3],[q1,4],q2},
F' = {[q1,4]},
S' = [q0,3],
δ':

Aufgabe 037

Gegeben sei die rechtslineare Grammatik G = ({A,B,C,D}, {a,b,c,d}, P, A) mit

A→aB
B→bB | cC | dD
P=
C→cC | ɛ
D→ɛ .

a) Geben Sie einen endlichen Automaten M an, der die von G erzeugte Sprache
L(G) akzeptiert.

b) Geben Sie einen regulären Ausdruck R an, der die Sprache L(G) beschreibt.

Lösung:

a) M = (Q,Σ,δ,S,F) mit

Q = {A,B,C,D},
Σ = {a,b,c,d},
S = A,
F = {C,D},

46
Endliche Automaten

δ:

b) R = ab*(d|cc*) = ab*(d|c+)

Aufgabe 038

Geben Sie einen endlichen Automaten M an, der genau die folgenden Wortfor-
men mit der Wurzel hör erkennen kann:

hören gehört zuhören aufhören aufzuhören zuzuhören


hört zuhört aufhört aufgehört zugehört

Der Automat soll möglichst minimal sein, d. h. eine möglichst geringe Anzahl an
Zuständen haben. Verwenden Sie Übergänge, die auf Morphemen basieren (also
nicht für jeden Buchstaben einen eigenen Zustandsübergang).

Lösung:

Hinweis:
Kategorisieren der Wörter erleichtert die Aufgabe: w endet entweder mit hört
oder mit hören.

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4,q5},
Σ = {hör, ge, en, t, zu, auf},
S = q0,
F = {q4,q5},

47
Endliche Automaten

δ:

Aufgabe 039

Gegeben sei die Grammatik G = (V,Σ,S,P) mit V = {S,B,C,D}, Σ = {a,b,c,d}, S ist


Startsymbol und
S→aB | aC
B→bB | dD
P=
C→cC | dD
D→ɛ

a) Geben Sie einen endlichen Automaten M an, sodass L(M) = L(G).

b) Geben Sie einen regulären Ausdruck R an, sodass L(R) = L(G).

Lösung:

a) M = (Q,Σ,δ,S,F) mit

Q = {S,B,C,D},
Σ = {a,b,c,d},
S ist Startzustand,
F = {D},

48
Endliche Automaten

δ:

b) R = (ab*d) | (ac*d) = a(b*|c*)d

Aufgabe 040

Gegeben ist das folgende Transitionsdiagramm des endlichen Automaten M:

a) Geben Sie einen regulären Ausdruck R an, sodass L(R) = L(M).

b) Geben Sie eine rechtslineare Grammatik G an, sodass L(G) = L(M).

c) Geben Sie einen endlichen Automaten M' an, sodass L(M') = L(M). Dabei soll
M' einen Zustand weniger besitzen als M. Was ändert sich entsprechend in G?

Lösung:

a) R = a*bb* = a*b+

b) G = (V,Σ,S,P) mit

V = {S,A,B},
Σ = {a,b},
S ist Startsymbol,

49
Endliche Automaten

S→A
P= A→aA | bB
B→bB | ɛ

c) M' = (Q,Σ,δ,S,F) mit

Q = {S,B},
Σ = {a,b},
S ist Startzustand,
F = {B},
δ:

G ändert sich entsprechend:

G = (V,Σ,S,P) mit
V = {S,B},
Σ = {a,b},
S ist Startsymbol,
S→aS | bB
P=
B→bB | ɛ

Aufgabe 041

Gegeben sei ein endlicher Automat M mit dem folgenden Transitionsdiagramm:

50
Endliche Automaten

a) Geben Sie einen regulären Ausdruck R an, sodass L(R) = L(M).

b) Geben Sie eine rechtslineare Grammatik G an, sodass L(G) = L(R).

Lösung:

a) R = (a (a|cb*c)* d) | (aa*c (b|ca*c)* ) | (b (b|ca*c)* ) | (bb*c (a|cb*c)* d)

b) G = (V,Σ,S,P) mit

V = {S,A,B,D},
Σ = {a,b,c,d},
S ist Startsymbol,
S→aA | bB
A→aA | cB | dD
P=
B→bB | cA | ɛ
D→ɛ

Aufgabe 042

Gegeben sei ein NEA MN = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2},
Σ = {a,b},
S = q0,
F = {q0,q2},
δ:

Geben Sie einen äquivalenten DEA MD und dessen Überführungsfunktion als Ta-
belle und als Transitionsdiagramm an.

51
Endliche Automaten

Lösung:

Potenzmengenkonstruktion:

δ a b
q0 := Q0 F {q1} := Q1 { } := Qleer
Q1 {q1,q2} := Q12 Q0
Qleer Qleer Qleer
Q12 F Q12 {q0,q1} := Q01
Q01 F Q12 Q0

Q = {Q0,Q1,Q12,Q01, Qleer},
Σ = {a,b},
S = Q0,
F = {Q0,Q12,Q01},
δ:

Aufgabe 043

Gegeben sei ein NEA MN = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2},
Σ = {a,b},
S = q0,

52
Endliche Automaten

F = {q2},
δ:

Geben Sie einen äquivalenten DEA MD und dessen Überführungsfunktion als Ta-
belle und als Transitionsdiagramm an.

Lösung:

Potenzmengenkonstruktion:

δ a b
q0 := Q0 {q0,q1} := Q01 { } := Qleer
Q01 Q01 {q1,q2} := Q12
Qleer Qleer Qleer
Q12 F Q01 Q12

MD = (Q,Σ,δ,S,F) mit

Q = {Q0,Q01,Q12,Qleer},
Σ = {a,b},
S = Q0,
F = {Q12},
δ:

53
Endliche Automaten

Aufgabe 044

Gegeben sei ein ɛ-NEA Mɛ = (Qɛ,Σ,δɛ,Sɛ,Fɛ) mit

Qɛ = {q0,q1,q2,q3},
Σ = {0,1},
Sɛ = q0,
Fɛ = {q2,q3},
δɛ:

Konstruieren Sie einen äquivalenten Minimal-DEA Mmin.

Lösung:

Lösungsweg: ɛ-NEA→NEA→DEA→DEAmin

• ɛ-NEA→NEA

1.) neue Start- und Endzustände und deren Übergänge definieren:

M1 = (Q1,Σ,δ1,S1,F1) mit

Q1 = Q{q0NEU}{qF1},
Σ = {0,1},
S1 = q0NEU,
F1 = {qF1},
δ1:

2.) Schritt entfällt: ɛ-Zyklen eliminieren

54
Endliche Automaten

3.) weitere ɛ-Übergänge in „echte“ Übergänge umwandeln

M2 = (Q2,Σ,δ2,S2,F2) mit

Q2 = Q1 = {q0NEU,q0,q1,q2,q3,qF1},
Σ = {0,1},
S2 = S1 = q0NEU,
F2 = F1 = {qF1},
δ2:

4.) Endzustände bestimmen und ɛ-Übergänge entfernen

Mɛ-frei = (Qɛ-frei,Σ,δɛ-frei ,Sɛ-frei,Fɛ-frei) mit

Qɛ-frei = {q0NEU,q0,q1,q2,q3}
Σ = {0,1},
Sɛ-frei = q0NEU,
Fɛ-frei = {q3},
δɛ-frei:

• NEA→DEA

Potenzmengenkonstruktion:

0 1
q0NEU := Q0N {q0,q1} := Q01 {q0} := Q0
Q01 F {q0,q1,q3} := Q013 {q0,q2} := Q02
Q0 Q01 Q0
Q013 F Q013 Q02
Q02 F Q013 Q0

55
Endliche Automaten

ergibt MDEA = (QDEA,Σ,δDEA,SDEA,FDEA) mit

QDEA = {Q0N,Q01,Q0,Q013,Q02},
Σ = {0,1},
SDEA = Q0N,
FDEA = {Q01,Q013,Q02},
δDEA:

• DEA→DEAmin

Table-Filling-Algorithmus:

Q0N
Q01 X
Q013 X
Q0 X X
Q02 X X1 X2 X
Q0N Q01 Q013 Q0 Q02

1.) Alle Zustandspaare (qi,qk) mit qiF und qkF oder umgekehrt werden
mit X markiert.

2.) Prüfen aller weiteren Zustandspaare:

• (Q0N,Q0) mit 0: (Q01,Q01),


mit 1: (Q0,Q0), nicht unterscheidbar

• (Q01,Q02) mit 0: (Q013,Q013),


mit 1: (Q02,Q0) → X1

• (Q01,Q013) mit 0: (Q013,Q013),


mit 1: (Q02,Q02), nicht unterscheidbar

• (Q013,Q02) mit 0: (Q013,Q013),


mit 1: (Q02,Q0) → X2

56
Endliche Automaten

• erneute Überprüfung der noch offenen Zustandspaare bringt kei-


ne weiteren Markierungen

3.) Bildung von Äquivalenzklassen und Umbenennung:

[q0N,0] := q0 und [q01,013] := q1

4.)Mmin = (Qmin,Σ,δmin,Fmin,Smin) mit


Qmin = {q0,q1,Q02},
Fmin = {q1,Q02},
Smin = q0,
δmin:

Aufgabe 045

Gegeben sei ein ɛ-NEA Mɛ = (Qɛ,Σ,δɛ,Sɛ,Fɛ) mit

Qɛ = {q0,q1,q2,q3,q4,q5},
Σ = {0,1},
Sɛ = q0,
Fɛ = {q2,q4,q5},
δɛ:

Konstruieren Sie einen äquivalenten DEA M.

57
Endliche Automaten

Lösung:

Lösungsweg: A) ɛ-NEA→NEA, B) NEA→DEA

A) ɛ-NEA→NEA

1.) neue Start- und Endzustände und deren Übergänge definieren:

M1 = (Q1,Σ,δ1,S1,F1) mit

Q1 = Q{q0NEU}{qF},
Σ = {0,1},
S1 = q0NEU,
F1 = {qF},
δ1:

2.) Schritt entfällt: ɛ-Zyklen eliminieren

3.) weitere ɛ-Übergänge in „echte“ Übergänge umwandeln:

M2 = (Q2,Σ,δ2,S2,F2) mit

Q2 = Q1 = {q0NEU,q0,q1,q2,q3,q4,q5,qF1},
Σ = {0,1},
S2 = S1 = q0NEU,
F2 = F1 = {qF},
δ2:

58
Endliche Automaten

4.) Endzustände bestimmen und ɛ-Übergänge entfernen:

Mɛ-frei = (Qɛ-frei,Σ,δɛ-frei ,Sɛ-frei,Fɛ-frei) mit

Qɛ-frei = {q0NEU,q0,q1,q2,q3}
Σ = {0,1},
Sɛ-frei = q0NEU,
Fɛ-frei = {q3},
δɛ-frei:

B) NEA→DEA

Potenzmengenkonstruktion:

0 1
q0NEU := Q0N {q2,q4} := Q24 {q0,q3} := Q03
Q24 F {q4} := Q4 {q5} := Q5
Q03 Q24 Q03
Q4 F Q4 Q5
Q5 F Q4 { } := Qleer
Qleer Qleer Qleer

MDEA = (QDEA,Σ,δDEA,SDEA,FDEA) mit

QDEA = {Q0N,Q24,Q03,Q4,Q5,Qleer},
Σ = {0,1},
SDEA = Q0N,
FDEA = {Q24,Q4,Q5},

59
Endliche Automaten

δDEA:

Aufgabe 046

Konstruieren Sie einen ɛ-NEA Mɛ, der folgende Sprache akzeptiert:

L(Mɛ) ist die Menge der Worte über {a,b,...,z}, die nur aus den Zeichenketten web
oder cam oder dem leeren Wort bestehen, wobei die Gesamtzahl der Teilworte
web und cam durch 2 teilbar ist, also

L(Mɛ) = {ɛ, webweb, webcam, camweb, camcam, webwebwebweb, webwebweb-


cam, webwebcamcam, webcamcamcam, camcamcamcam, webwebwebwebweb-
cam, …}.

Lösung:

Mɛ = (Q,Σ,δ,S,F) mit

Q = {q0,q1,...,q10},
Σ = {a,b,...,z},
S = q0,
F = {q0},
δ:

60
Endliche Automaten

alternativ:

Mɛ-alt = (Qɛ-alt,Σ,δɛ-alt,S,F) mit

Qɛ-alt = {q0,q1,...,q9},
Σ = {a,b,...,z},
S = q0,
F = {q0},
δɛ-alt:

Aufgabe 047

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,...,q5}, S = q0, F =


{q0,q2} und δ:

Minimieren Sie M.

61
Endliche Automaten

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X
q2 X
q3 X X3 X
q4 X X2 X X4
q5 X X1 X X5
q0 q1 q2 q3 q4 q5

1.) Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

• markiere alle (qi,qk) mit qiF und qkF (oder umgekehrt) mit X
• (q0,q2) mit 0: (q1,q1), offen,
mit 1: (q3,q5), offen
• (q1,q5) mit 0: (q2,q4) → X1
• (q1,q4) mit 0: (q2,q5) → X2
• (q1,q3) mit 0: (q2,q4) → X3
• (q3,q5) mit 0: (q4,q4), offen,
mit 1: (q0,q2), offen
• (q3,q4) mit 0: (q4,q5), offen,
mit 1: (q0,q1) → X4
• (q4,q5) mit 0: (q5,q4), offen,
mit 1: (q1,q2) → X5
• eine erneute Überprüfung der noch offenen Zustandspaare bringt keine
weiteren Markierungen

2.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q0,q3), (q1,q4) in


Äquivalenzklassen:

{q0,q2} := [q0,2] und {q3,q5} := [q3,5]

3.) minimierter DEA M' = (Q',Σ,δ',S',F') mit

Q' = {[q0,2],[q3,5],q1,q4},
S' = {[q0,2]},
F' = {[q0,2]},

62
Endliche Automaten

δ':

Aufgabe 048

Gegeben sei der ɛ-NEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,q1,q2,q3}, S = q0, F =


{q2,q3} und δ:

Konstruieren Sie einen äquivalenten ɛ-freien Minimal-DEA M.

Lösung:

1.) ɛ-NEA→NEA

a) neue Start- und Endzustände und deren Übergänge definieren:

M1 = (Q1,Σ,δ1,S1,F1) mit

Q1 = Q{q0N}{qF},
Σ = {0,1},
S1 = q0N,
F1 = {qF},
δ1:

63
Endliche Automaten

b) Schritt entfällt: ɛ-Zyklen eliminieren

c) weitere ɛ-Übergänge in „echte“ Übergänge umwandeln:

d) Endzustände bestimmen und ɛ-Übergänge entfernen:

M2 = (Q2,Σ,δ2,S2,F2) mit

Q2 = {q0N,q0,q1,q2,q3},
Σ = {0,1},
S2 = S1 = q0N,
F2 = {q1,q2,q3},
δ2:

2.) NEA→DEA

Potenzmengenkonstruktion:

0 1
q0NEU := Q0N {q0,q1} := Q01 {q0} := Q0
Q01 F {q0,q1,q3} := Q013 {q0,q2} := Q02
Q0 Q01 Q0
Q013 F Q013 Q02
Q02 F Q013 Q0

64
Endliche Automaten

MD = (QD,Σ,δD,SD,FD) mit

QD = {Q0N,Q24,Q03,Q4,Q5,Qleer},
Σ = {0,1},
SD = Q0N,
FD = {Q24,Q4,Q5},
δ D:

3.) DEA→DEAmin

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

Q0N
Q0
Q01 X X
Q02 X X X1
Q013 X X X2
Q0N Q0 Q01 Q02 Q013

I.) Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

• markiere alle (Qi,Qk) mit QiF und QkF (oder umgekehrt) mit X
• (Q0N,Q0) mit 0: (Q01,Q01), nicht unterscheidbar
mit 1: (Q0,Q0), nicht unterscheidbar
• (Q01,Q013) mit 0: (Q013,Q013), nicht unterscheidbar
mit 1: (Q02,Q02), nicht unterscheidbar
• (Q01,Q02) mit 0: (Q013,Q013), nicht unterscheidbar
mit 1: (Q02,Q0) → X1

65
Endliche Automaten

• (Q02,Q013) mit 0: (Q013,Q013), nicht unterscheidbar


mit 1: (Q0,Q02) → X2
• eine erneute Überprüfung der noch offenen Zustandspaare bringt keine
weiteren Markierungen

II.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (Q0N,Q0),


(Q01,Q013) in Äquivalenzklassen:

{Q0N,Q0} := [Q0N,0] und {Q01,Q013} := [Q01,013]

III.) minimierter DEA M = (Q,Σ,δ,S,F) mit

Q = {[Q0N,0],[Q01,013],Q02},
S = {[Q0N,0]},
F = {[Q01,013],Q02},
δ:

Aufgabe 049

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,...,q4}, S = q0, F = {q4}
und δ:

Minimieren Sie M.

66
Endliche Automaten

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1 X2
q2 X3
q3 X1 X4
q4 X X X X
q0 q1 q2 q3 q4

1.) Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

• markiere alle (qi,qk) mit qiF und qkF (oder umgekehrt) mit X
• (q0,q3) mit 0: (q1,q4) → X1
• (q0,q2) mit 0: (q1,q3), offen,
mit 1: (q2,q2), nicht unterscheidbar
• (q0,q1) mit 0: (q1,q4) → X2
• (q1,q3) mit 0: (q4,q4), nicht unterscheidbar,
mit 1: (q2,q0), nicht unterscheidbar
• (q1,q2) mit 0: (q4,q3) → X3
• (q2,q3) mit 0: (q3,q4) → X4
• eine erneute Überprüfung der noch offenen Zustandspaare bringt keine
weiteren Markierungen

2.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q0,q3), (q1,q4) in


Äquivalenzklassen:

{q0,q2} := [q0,2] und {q1,q3} := [q1,3]

3.) minimierter DEA M' = (Q',Σ,δ',S',F') mit

Q' = {[q0,2],[q1,3],q4},
S' = {[q0,2]},
F' = {q4},
δ':

67
Endliche Automaten

Aufgabe 050

Gegeben sei der DEA M = (Q,Σ,δ,F,S) mit Σ = {0,1}, Q = {q0,...,q6}, S = q0, F =


{q3,q5} und δ:

Minimieren Sie M.

Lösung:

Halbtabelle zur Markierung aller unterscheidbaren Zustandspaare:

q0
q1
q2 X2 X4
q3 X X X
q4 X1 X3 X
q5 X X X X
q6 X7 X8 X5 X X6 X
q0 q1 q2 q3 q4 q5 q6

1.) Ausfüllen der Halbtabelle („Table-Filling-Algorithmus“):

• markiere alle (qi,qk) mit qiF und qkF (oder umgekehrt) mit X
• (q0,q6) mit 0: (q4,q6), offen,
mit 1: (q1,q6), offen
• (q0,q4) mit 0: (q4,q5) → X1

68
Endliche Automaten

• (q0,q2) mit 0: (q4,q3) → X2


• (q0,q1) mit 0: (q4,q2), offen,
mit 1: (q1,q1), nicht unterscheidbar
• (q1,q6) mit 0: (q2,q6), offen,
mit 1: (q1,q6), offen
• (q1,q4) mit 0: (q2,q5) → X3
• (q1,q2) mit 0: (q2,q3) → X4
• (q2,q6) mit 0: (q3,q6) → X5
• (q2,q4) mit 0: (q3,q5), offen,
mit 1: (q6,q6), nicht unterscheidbar
• (q3,q5) mit 0: (q6,q6), nicht unterscheidbar,
mit 1: (q3,q3), nicht unterscheidbar
• (q4,q6) mit 0: (q5,q6) → X6

erneute Überprüfung der noch offenen Zustandspaare:

• (q0,q6) mit 0: (q4,q6) → X7


• (q1,q6) mit 0: (q2,q6) → X8

2.) Zusammenfassen der nicht unterscheidbaren Zustandspaare (q0,q1), (q2,q4)


und (q3,q5) in Äquivalenzklassen:

{q0,q1} := [q0,1], {q2,q4} := [q2,4] und {q3,q5} := [q3,5]

3.) minimierter DEA M' = (Q',Σ,δ',S',F') mit

Q' = {[q0,1],[q2,4],[q3,5]},
S' = {[q0,1]},
F' = {[q3,5]},
δ':

69
Endliche Automaten

Aufgabe 051

a) Gegeben sei der EA M1 = (Q,Σ,δ,F,S) mit Σ = {a,b}, Q = {1,2,3}, S = 1, F = {2}


und δ:

Geben Sie einen regulären Ausdruck R an, der die Sprache von M1 beschreibt.

b) Gegeben sei der NEA M2 = (Q,Σ,δ,F,S) mit Σ = {a,b}, Q = {1,2,3,4}, S = 1, F =


{4} und δ:

Wandeln Sie M2 in einen DEA MD um.

Lösung:

a) R = a(ba|baa)* = a((b|ba)a)* = a(ba(a|ɛ))*

b) Potenzmengenkonstruktion:

a b
1 := Q1 {2,3} := Q23 Q1
Q23 {4} := Q4 {2,3,1} := Q123
Q4 F { } := Qleer Q4
Q123 {2,3,4} := Q234 Q123
Qleer Qleer Qleer
Q234 F Q4 {2,3,1,4} := Q1234
Q1234 F Q234 Q1234

70
Endliche Automaten

MD = (QD,Σ,δD,SD,FD) mit

QD = {Q1,Q23,Q4,Q123,Qleer,Q234,Q1234},
Σ = {a,b},
SD = Q1,
FD = {Q4,Q234,Q1234},
δ D:

Aufgabe 052

Gegeben sei der EA M = (Q,Σ,δ,F,S) mit

Σ = {a,b,c},
Q = {S,q1,q2,f1,f2},
S ist Startzustand,
F = {f1,f2},
δ:

a) Geben Sie einen regulären Ausdruck R an, der die Sprache von M beschreibt.

b) Konstruieren Sie einen deterministischen endlichen Automaten, der dieselbe


Sprache wie M akzeptiert.

71
Endliche Automaten

Lösung:

a) R = (aa*a | ab*a | ac*)+ = (a+a | ab*a | ac*)+ = (a (a+ | b*a | c*))+

b) Potenzmengenkonstruktion:

a b c
S := Q1 {q1,q2,f1,S} := Q2 { } := Qleer {}
{q1,q2,f1,S} := Q2 F {q1,q2,f1,S,f2} := Q3 {q2} := Q4 {f1,f2,S} := Q5
{ } := Qleer Qleer {} {}
{q1,q2,f1,S,f2} := Q3 F {q1,q2,f1,S,f2} {q2} {f1,S,f2}
{q2} := Q4 {f2,S} := Q6 {q2} {}
{f1,f2,S} := Q5 F {q1,q2,f1,S} {} {f1,S,f2}
{f2,S} := Q6 F {q1,q2,f1,S} {} {}

MD = (QD,Σ,δD,SD,FD) mit

QD = {Q1,Q2,Q3,Q4,Q5,Q6,Qleer},
Σ = {a,b,c},
SD = Q1,
FD = {Q2,Q3,Q5,Q6},
δ D:

72
Endliche Automaten

Aufgabe 053

Gegeben sei ein ɛ-NEA Mɛ = (Qɛ,Σ,δɛ,Sɛ,Fɛ) mit

Qɛ = {q0,q1,q2,q3,q4},
Σ = {0,1},
Sɛ = q0,
Fɛ = {q2,q3},
δɛ:

Konstruieren Sie einen äquivalenten ɛ-freien NEA Mɛ-frei.

Lösung:

1.) neue Start- und Endzustände und deren Übergänge definieren:

M1 = (Q1,Σ,δ1,S1,F1) mit

Q1 = Q{q0N}{qF},
Σ = {0,1},
S1 = q0N,
F1 = {qF},
δ1:

73
Endliche Automaten

2.) ɛ-Zyklen eliminieren:

∃ einen ɛ-Zyklus (q1,q2,q3,q1): ersetzen durch neuen Zustand q123

3.) weitere ɛ-Übergänge in „echte“ Übergänge umwandeln:

M2 = (Q2,Σ,δ2,S2,F2) mit

Q2 = Q1 = {q0N,q0,q1,q2,q3,q4,qF},
Σ = {0,1},
S2 = S1 = q0N,
F2 = F1 = {qF},
δ2:

4.) Endzustände bestimmen und ɛ-Übergänge entfernen:

Mɛ-frei = (Qɛ-frei,Σ,δɛ-frei ,Sɛ-frei,Fɛ-frei) mit

Qɛ-frei = {q0N,q0,q123,q4},
Σ = {0,1},
Sɛ-frei = q0N,
Fɛ-frei = {q123},

74
Endliche Automaten

δɛ-frei: oder δɛ-frei-alternativ:

Aufgabe 054

Geben Sie einen deterministischen endlichen Automaten MDEA an, der die folgen-
de Sprache L über dem Alphabet Σ = {0,1} akzeptiert:

L = {w{0,1}* | w enthält als drittletztes Zeichen eine Null}

Lösung:

Gesucht wird also MDEA mit L(MDEA) = L.

(In einem fakultativen Hilfsschritt kann die Sprache L zunächst durch den regulä-
ren Ausdruck (0|1)* 0 (0|1)(0|1) = (0|1)* 0 (0|1) 2 beschrieben werden.)

Da der DEA MDEA nicht ohne Weiteres abgeleitet werden kann, leiten wir zunächst
folgenden NEA MNEA ab:

MNEA = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3},
Σ = {0,1},
S = q0,
F = {q3},
δ als Graph:

75
Endliche Automaten

δ als Übergangstabelle:

δ 0 1
q0 {q0,q1} q0
q1 q2 q2
q2 q3 q3
q3 - -

Aus MNEA kann der gesuchte MDEA mittels Potenzmengenkonstruktion konstruiert


werden:

Potenzmengenkonstruktion:

δ 0 1
q0 := A {q0,q1} q0
{q0,q1} := B {q0,q1,q2} {q0,q2}
{q0,q1,q2} := C {q0,q1,q2,q3} {q0,q2,q3}
{q0,q2} := D {q0,q1,q3} {q0,q3}
{q0,q1,q2,q3} := E {q0,q1,q2,q3} {q0,q2,q3}
{q0,q2,q3} := F {q0,q1,q3} {q0,q3}
{q0,q1,q3} := G {q0,q1,q2} {q0,q2}
{q0,q3} := H {q0,q1} q0

Aufgrund von F = {q3} gehören alle Zustände, die q3 enthalten, zur Menge F' der
neuen Endzustände.

Damit ergibt sich

MDEA = (Q',Σ',δ',S',F') mit

Q' = {A,B, ...,H},


Σ' = {0,1},
S' = A,
F' = {E,F,G,H},

76
Endliche Automaten

δ':

77
Grammatiken

Grammatiken bilden den Schnittpunkt zwischen Linguistik und Informatik und stel-
len neben den endlichen Automaten eine Möglichkeit zur eindeutigen Beschrei-
bung von Sprachen dar.5 Wie vom allgemeinen Sprachgebrauch her bekannt ge-
ben Grammatiken auch in der theoretischen Informatik Regeln vor, nach denen
eine Sprache aufgebaut ist bzw. Wörter einer Sprache erzeugt werden. 6
Ihr Funktionsprinzip ist ein Ersetzungsmechanismus, 7 das bedeutet, dass ausge-
hend von einem Startsymbol durch Ersetzungen Schritt für Schritt ein Wort gebil-
det werden kann, das einer Sprache zugehörig ist. Jeder Ersetzungsprozess,
auch Ableitung genannt, folgt dabei einer bestimmten Regel. Formal ist eine
Grammatik ein Viertupel und definiert sich wie folgt: 8 G = (V,Σ,S,P) mit

• V: endliche Menge an Variablen („Nonterminale“)


• Σ: endliches Alphabet („Terminale“)
• S: Startvariable (Teilmenge von V)
• P: endliche Menge an Produktionsregeln

Im Gegensatz zu endlichen Automaten können Grammatiken nicht nur reguläre


Sprachen, sondern auch Sprachen aus anderen Chomsky-Sprachklassen be-
schreiben. Je nach Sprachklasse ändern sich dann die Bedingungen für die Re-
gelbildung – an dieser Stelle sei nochmals auf Lehrbücher und einschlägige Lite-
ratur hingewiesen.

Die folgenden Aufgaben behandeln

• Zusammenhänge zwischen Sprachklassen und Grammatiktypen


• die Konstruktion von Grammatiken und die Prüfung von Wörtern hinsicht-
lich ihrer Erzeugbarkeit,
• die Transformation von Grammatiken nach bestimmten Regeln (z. B. Re-
duktion, -Befreiung) sowie
• alternative Darstellungsformen für von Grammatiken erzeugte Wörter
bzw. Sprachen (Bäume, Diagramme)

Kurz gesagt: In diesem Kapitel geht es um die Nutzung von Grammatiken als

5 Vgl. Hromkovic 2007, S. 348.


6 Vgl. Asteroth & Baier 2002, S. 195.
7 Ebd.
8 Vgl. Hoffmann 2009, S. 156.

79
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1_2
Grammatiken

Hilfsmittel zur Überprüfung von Wörtern auf Zugehörigkeit zu einer formalen


Sprache, Klassifizierung von Mengen und Identifizierung von Sprachklassen.

Aufgabe 055

Geben Sie kontextfreie Grammatiken an, die die folgenden Mengen erzeugen.

a) Die Menge der Palindrome über dem Alphabet Σ = {0,1}.


(Ein Palindrom ist eine Zeichenkette, die vorwärts und rückwärts gelesen dassel-
be ergibt.)

b) Die Menge aller korrekten Klammerausdrücke über dem Alphabet Σ = {(,)}.


(Hinweis: Jede öffnende Klammer hat eine entsprechende schließende Klammer
und Paare zusammengehörender Klammern sind richtig eingebettet. Eine solche
Zeichenkette besitzt kein Präfix mit mehr schließenden Klammern als öffnenden.)

Lösung:

a) G = (V,Σ,S,P) mit

V = {S},
Σ = {0,1},
S ist Startsymbol,
P = {S→0S0 | 1S1 | 0 | 1 |  }

b) G = (V,Σ,S,P) mit

V = {S},
Σ = {(,)},
S ist Startsymbol,
P = {S→(S) | SS |  }

Aufgabe 056

Geben Sie eine kontextfreie Grammatik G an, die die Menge aller Zeichenketten
mit doppelt so vielen Einsen wie Nullen erzeugt.

80
Grammatiken

Lösung:

G = (V,Σ,S,P) mit

V = {S},
Σ = {0,1},
S ist Startsymbol,
S→ 110 | 101 | 011 |  |
S110 | 1S10 | 11S0 | 110S |
P=
S101 | 1S01 | 10S1 | 101S |
S011 | 0S11 | 01S1 | 011S

Alternative: G' mit V' = {S,A}, S als Startsymbol, Σ,

S→AA0 | A0A | 0AA | 


P' =
A →1S | S1

Aufgabe 057

Gegeben sei eine Grammatik G mit den folgenden Produktionsregeln:

S→aB | bA
A→a | aS | bAA
B→b | bS | aBB

Geben Sie Folgendes zu G für die Zeichenkette aaabbabbba an.

a) einen Ableitungsbaum b) eine Rechtsableitung

c) eine Linksableitung

81
Grammatiken

Lösung:

a)

b)
S→aB→aaBB→aaBbS→aaBbbA→aaBbba→aaaBBbba→aaaBbbba
→aaabSbbba→aaabbAbbba→aaabbabbba

c)
S→aB→aaBB→aaaBBB→aaabSBB→aaabbABB→aaabbaBB→aaabbabB
→aaabbabbS→aaabbabbbA→aaabbabbba

Aufgabe 058

Gegeben sei eine Grammatik G = (V,Σ,S,P) mit

V = {X,Y},
Σ = {a,b},
S = X,
Y→a | Ya
P=
X→Xb | Yb .

82
Grammatiken

a) Welche Sprache L(G) beschreibt G?

b) Von welchem Typ ist G?

c) Geben Sie einen endlichen Automaten M an, sodass L(M) = L(G).

Lösung:

a) L(G) = {w  {a,b}* | anbm mit n,m ℕ}

In Worten: G beschreibt die Sprache über dem Alphabet Σ = {a,b}, deren Worte w
im Präfix ein oder mehrere a und im Suffix ein oder mehrere b haben.

b) G ist vom Typ 3 (regulär, linksregulär).

c) L(G) = {w  {a,b}* | anbm mit n,m ℕ} kann auch durch den regulären Ausdruck
R = a+b+ beschrieben werden, aus dem man den EA ableiten kann:

M = (Q,Σ,δ,S,F) mit

Q = {S,A,B},
Σ = {a,b},
S ist Startzustand,
F = {B},
δ:

Aufgabe 059

a) Geben Sie eine kontextfreie Grammatik G = (V,Σ,S,P) über dem Alphabet Σ =


{a,b} an, sodass L(G) alle Worte wΣ* beschreibt, für die |w| durch 3 teilbar ist.

b) Geben Sie einen regulären Ausdruck R an, der die Sprache L(G) beschreibt.

c) Von welchem Sprachtyp ist L(G)?

d) Geben Sie einen endlichen Automaten M an, sodass L(M) = L(G) gilt.

83
Grammatiken

Lösung:

a) G = (V,Σ,S,P) mit

V = {S,A},
Σ = {0,1},
S ist Startsymbol,
S→AAAS | 
P=
A→a | b

b) R = ((a | b)(a | b)(a | b))*

c) L(G) ist eine reguläre Sprache (Typ 3).

Zum einen ist das am regulären Ausdruck R zu erkennen, an dem man sieht,
dass jedes Terminal einzeln produziert wird (was der Definition von Typ 3-Spra -
chen entspricht) – bei Anwendung der ersten Regel wird jeweils genau drei Mal
entweder ein a oder ein b produziert.
Zum anderen kann mittels R sofort ein endlicher Automat (Teilaufgabe d)) ange-
geben werden, aus dem in einem weiteren Schritt die folgenden regulären Pro-
duktionsregeln abgeleitet werden können:

S→aA | bA | 
P= A→aB | bB
B→aS | bS

d) M = (Q,Σ,δ,S,F) mit

Q = {S,A,B},
Σ = {a,b},
S ist Startzustand,
F = {S},
δ:

84
Grammatiken

Aufgabe 060

Geben Sie für Σ = {a,b} und V = {A,B,C} mindestens zwei Grammatiken G =


(V,Σ,S,P) und G' = (V,Σ,S,P') an, sodass alle Worte der Sprache L(G) gleich viele
a und b enthalten.

Lösung:

G = (V,Σ,S,P) mit G' = (V,Σ,S,P') mit


V = {A,B,C}, V = {A,B,C},
Σ = {a,b}, Σ = {a,b},
S = C, S = C,
C→AB | BA | ABC | ACB | C→AB | BA | 
CAB | BAC | BCA |
P' = A→a | Ca | aC
CBA | 
P=
B→b | Cb | bC
A→a
B→b

weitere Alternative:
P'' = {C→ab | ba | CC | aCb | bCa |  } mit V'' = {C}

Aufgabe 061

Gegeben sei die Grammatik G = (V,Σ,S,P) mit

V = {S,A},
Σ = {a,b},
S ist Startzustand,
P = {S→Sab | ab}.

a) Geben Sie die Sprache L(G) an.

b) Von welchem Typ ist L(G)?

c) Gibt es eine äquivalente Grammatik G' von Typ 3?

85
Grammatiken

Lösung:

a) L(G) = {w{a,b}* | w=(ab)+}

In Worten: L(G) ist die Sprache, deren Worte w aus einer beliebigen Anzahl >0 an
Wiederholungen der Zeichenkette ab bestehen.

b) G ist vom Typ 2, also kontextfrei.

Begründung: Da die rechten Seiten der Regeln jeweils schwach monoton wach-
send sind – Bedingung für Typ 1 – und auf den linken Seiten der Regeln jeweils
nur ein Nichtterminal steht – Bedingung für Typ 2 – und die Form der Regeln nicht
Typ 3 entspricht, ist G kontextfrei.

c) Ja: G' mit

S→aB
P' =
B→bS | b

ist regulär und rechtslinear.

Aufgabe 062

Gegeben sei die Grammatik G = (V,Σ,S,P) mit

V = {S,B,C},
Σ = {a,b,c},
S ist Startzustand,
S→aBC | aSBC
B→b
P=
C→c
CB→BC .

a) Bestimmen Sie die Sprache L(G).

b) Von welchem Typ ist G?

86
Grammatiken

Lösung:

a) L(G) ist die Sprache, deren Worte vw aus genau gleich vielen a, b und c beste-
hen, ein Präfix v der Form a1a2a3...an-1anb1...bn haben (dem letzten a folgt mindes-
tens ein b) und das letzte Zeichen ein c ist: L(G) = {w{a,b,c}* | w=anbncn, nℕ}.

b) G ist vom Typ 1, also kontextsensitiv.

Begründung: Da die Beträge der Sätze auf den rechten Seiten der Regeln
schwach monoton wachsend sind, ist die Bedingung für Typ 1-Grammatiken er-
füllt. Die Bedingung für Typ 2- bzw. Typ 3-Grammatiken, dass auf jeder linken Sei-
te nur genau ein Nichtterminal stehen darf, ist nicht erfüllt. Deshalb ist G kontext-
sensitiv.

Aufgabe 063

Gegeben sei eine Grammatik G = ({S,A,B},{0,1},P,S) mit

S→0S | 1S | 0A
P= A→0B | 1B
B→0 | 1 .

Geben Sie die von G erzeugte Sprache L = L(G) und den Typ von L(G) an.

Lösung:

L = {w {0,1}* | w=(0 | 1)*0(0 | 1)(0 | 1)}


= {w {0,1}* | w=(0 | 1)*0(0 | 1)2}

In Worten:
L ist die Sprache aller Worte, deren drittletztes Zeichen eine Null ist. G und L(G)
sind regulär (Typ 3).

87
Grammatiken

Aufgabe 064

Geben Sie eine Grammatik G mit L(G) = {w {0,1}* | w=0k1i0k, kℕ, iℕ0} an.

Lösung:

G = (V,Σ,S,P) mit

V = {S,A}
Σ = {0,1}
S ist Startsymbol
S→0S0 | 0A0
P=
A→A1 | 

Aufgabe 065

Gegeben sei eine kontextsensitive Grammatik G = (V,Σ,S,P) mit

V = {S,B,C},
Σ = {a,b,c},
S als Startsymbol,
S→aSBC | aBC
CB→BC
aB→ab
P=
bB→bb
bC→bc
cC→cc .

Bestimmen Sie die Sprache L(G).

88
Grammatiken

Lösung:

• a bzw. A, b bzw. B und c bzw. C werden jeweils zusammen erzeugt, d. h.


alle Worte wL(G) enthalten gleich viele a, b und c.

• Es muss also nur noch die Reihenfolge der Symbole in w bestimmt wer-
den. Anhand der Startregeln S→aSBC | aBC erkennt man, dass zunächst
alle a führend sind. In keiner der weiteren Regeln wird ein a nach rechts
verschoben, d. h. alle Worte haben ein Präfix x=a1...an mit n≥1.

• Den Startregeln entsprechend hat w ein C bzw. c als letztes Zeichen, und
auf das Präfix x=a1...an folgt ein B bzw. b, sodass sich Worte der Form
w=a1...anB1C1B2C2B3...BnCn erzeugen lassen.

• Mit der Regel CB→BC werden B und C getauscht, sodass sich Worte der
Form w=a1...anB1B2B3...BnC1C2...Cn erzeugen lassen, bevor schließlich die
Ersetzung mit den restlichen Terminalzeichen erfolgt.

Also: L(G) = {w{a,b,c}* | w=anbncn mit nℕ}

Aufgabe 066

Konstruieren Sie eine äquivalente -freie kontextfreie Grammatik G' zur Gramma-
tik G = ({A,B,C,D,E,F,S}, {a,b,(,),+,*} ,P, S) mit

S→A
A→BAC | D | AFA | E
B→(
P= C→)
D→A | 
E→a | b
F→+ | * .

89
Grammatiken

Lösung:

1.) Markierungsalgorithmus

VD, da ∃ D→
VD,A, da ∃ A→D
VD,A,S, da ∃ S→A

Feststellung: SV⇔ L(G)

2.) Setze
V' := V{S' }, wobei S' neues Startsymbol ist und
P' := PS'→S | weil L(G))

3.) Konstruktionsalgorithmus

Initialisierung: Entferne alle -Regeln aus P'

Damit ist
S'→S | 
S→A
A→BAC | D | AFA | E
B→(
P' =
C→)
D→A
E→a | b
F→+ | *

∃ A→BAC mit φ1=B, φ2=C: neue Regel A→BC,


∃ A→AFA mit φ1=, φ2=FA: neue Regel A→FA,
∃ A→AFA mit φ1=AF, φ2=: neue Regel A→AF,
∃ A→FA mit φ1=F, φ2=: neue Regel A→F,
∃ A→AF mit φ1=, φ2=F: keine neue Regel

Resultat ist die -freie Grammatik

G' = ({S',A,B,C,D,E,F,S},{a,b,(,),+,*},P',S') mit

90
Grammatiken

S'→S | 
S→A
A→BAC | D | AFA | E | BC | FA | AF | F
B→(
P' =
C→)
D→A
E→a | b
F→+ | *

Aufgabe 067

Konstruieren Sie eine äquivalente -freie kontextfreie Grammatik G' zu

G = ({S,A,B,C},{a,b,c},P,S) mit

S→ACA
A→aAa | B | C
P=
B→bB | b
C→Cc |  .

Lösung:

1.) Markierungsalgorithmus

VC, da ∃ C→
VC,A, da ∃ A→C
VC,A,S, da ∃ S→ACA

Feststellung: SV⇔ L(G)

91
Grammatiken

2.) Setze
V' := V{S' }, wobei S' neues Startsymbol ist und
P' := PS'→S | weil L(G))

3.) Konstruktionsalgorithmus

Initialisierung: Entferne alle -Regeln aus P'


Damit ist
S'→S | 
S→ACA
P' = A→aAa | B | C
B→bB | b
C→Cc

∃ S→ACA mit φ1=, φ2=CA: neue Regel S→CA,


∃ S→ACA mit φ1=A, φ2=A: neue Regel S→AA,
∃ S→ACA mit φ1=AC, φ2=: neue Regel S→AC,
∃ S→CA mit φ1=, φ2=A: neue Regel S→A,
∃ S→CA mit φ1=C, φ2=: neue Regel S→C,
∃ S→AA mit φ1=A, φ2=: keine neue Regel,
∃ S→AC mit φ1=A, φ2=: keine neue Regel,
∃ S→AC mit φ1=:, φ2=C: keine neue Regel,
∃ A→aAa mit φ1=a, φ2=a: neue Regel A→aa,
∃ C→Cc mit φ1=, φ2=c: neue Regel C→c.

Resultat ist die -freie Grammatik G' = ({S',S,A,B,C},{a,b,c},P',S') mit

S'→S | 
S→ACA | CA | AA | AC | A | C
P' = A→aAa | B | C | aa
B→bB | b
C→Cc | c .

92
Grammatiken

Aufgabe 068

Gegeben sei G = ({S,A}, {a,*,+,(,)}, {S→A | S+S | S*S | (S), A→a}, S).

Geben Sie für w=a*a+a zwei unterschiedliche Ableitungsbäume an.

Lösung:

S S

S * S S + S

A S + S S * S A

a A A A A a

a a a a

Aufgabe 069

Gegeben sei folgender DEA M:

Geben Sie eine Grammatik G an, die die von M akzeptierte Sprache erzeugt.

93
Grammatiken

Lösung:

G = (V,Σ,S,P) mit

V = {A,B,C,D,E,F},
Σ = {0,1},
A ist Startsymbol und
A→1B | 0D | 
B→1C | 0E
C→1A | 1 | 0F
P=
D→1E | 0A | 0
E→1F | 0B
F→1D | 0C

Aufgabe 070

Konstruieren Sie eine zur Grammatik G = ({S,A,B,C,D},{a,b},P,S) mit

S→AD
A→a
P= B→b | 
C→B
D→ CBa | CB

äquivalente kontextfreie und -freie Grammatik G'.

Lösung:

1.) Markierungsalgorithmus:

VB, da ∃ B→
VB,C, da ∃ C→B
VB,C,D, da ∃ D→CB Feststellung: SV⇔ L(G)

94
Grammatiken

2.) Setze
V' := V{S' }, wobei S' neues Startsymbol ist und
P' := PS'→S Regel S'→P', weil L(G))

3.) Konstruktionsalgorithmus

Initialisierung: Entferne alle -Regeln aus P'


Damit ist

S'→S
S→AD
A→a
P' =
B→b
C→B
D→ CBa | CB

∃ S→AD mit φ1=, φ2=D: neue Regel S→A,


∃ D→CBa mit φ1=, φ2=Ba: neue Regel D→Ba,
∃ D→CBa mit φ1=C, φ2=a: neue Regel D→Ca,
∃ D→CB mit φ1=, φ2=B: neue Regel D→B,
∃ D→CB mit φ1=C, φ2=: neue Regel D→C,
∃ D→Ba mit φ1=, φ2=a: neue Regel D→a,
∃ D→Ca mit φ1=, φ2=a: keine neue Regel

Resultat ist die -freie Grammatik G' = ({S',S,A,B,C,D},{a,b},P',S') mit

S'→S
S→AD | A
A→a
P' =
B→b
C→B
D→ CBa | CB | Ba | Ca | B | C | a

95
Grammatiken

Aufgabe 071

Konstruieren Sie eine -freie kontextfreie Grammatik G' mit

L(G') = {w{0,1}* : w=0i1k0i, i, kℕ0}

Lösung:

Die folgende Grammatik erzeugt L(G), ist aber nicht -frei:

G = (V,Σ,S,P) mit V = {S,A}, Σ = {0,1}, S ist Startsymbol und

S→0S0 | A | 
P=
A→1A | 1

G muss nun von  befreit werden:

1.) Markierungsalgorithmus: VS, da ∃ S→ Feststellung: SV⇔ L(G)

2.) Setze
V' := V{S' }, wobei S' neues Startsymbol ist und
P' := PS'→S |  Regel S'→P', weil L(G))

3.) Konstruktionsalgorithmus

Initialisierung: Entferne alle -Regeln aus P'.


Durchführung:
∃ S→0S0 mit φ1=0, φ2=0, SV: neue Regel S→00

4.) Resultat ist die -freie Grammatik G' = ({S',S, A},{0,1},P',S') mit

S'→S |  Anmerkung:
P' = S→0S0 | A | 00 Die Definition für -freie Grammatiken erlaubt die Re-
gel S'→, wenn S' auf keiner rechten Regelseite vor-
A→1A | 1 kommt.

96
Grammatiken

Aufgabe 072

Folgende vier Grammatiken seien gegeben:

1.) G1 = ({S},{0,1},P1,S) mit 3.) G3 = ({S,A,B},{0,1},P3,S) mit

P1 = {S→0S | 1S | 1} S→ASB | AB
AB→BA
P3 =
A→0
B→1
2.) G2 = ({S,A,B},{0,1},P2,S) mit 4.) G4 = ({S,A},{0,1},P4,S) mit

S→A | B S→AA | AAS


P4 =
P2 = A→1 | 1A | 1B AAA→1
B→0 | 0A

a) Geben Sie für jede Grammatik jeweils zwei ableitbare und zwei nicht ableitbare
Wörter an.

b) Geben Sie verbal für jede Grammatik Gi die erzeugte Sprache L(Gi) an.

c) Geben Sie für jede Grammatik den Chomsky-Typ an.

Lösung:

a)
w1L(G1) = 1, w2L(G1) = 011,
w3L(G1) = , w4L(G1) = 000,

w5L(G2) = 1101, w6L(G2) = 1011,


w7L(G2) = , w8L(G2) = 11001,

w9L(G3) = 0011, w10L(G3) = 0101,


w11L(G3) = , w12L(G3) = 11100,

97
Grammatiken

w13L(G4) = 111111 = 16, w14L(G4) = 111111111111 = 112,


w15L(G4) = , w16L(G4) = 1111,

b)
L(G1) = {w{0,1}* | w endet mit einer Eins}

L(G2) = {w{0,1}* | w besteht aus beliebig langen Zeichenketten aus Einsen, die
jeweils von genau einer Null getrennt werden}

L(G3) = {w{0,1}* | w besteht aus genau gleich vielen Nullen und Einsen}

L(G4) = {w{1}* | w besteht aus einer geraden und durch 3 teilbaren Anzahl von
Einsen}

c)
G1 ist vom Typ 3 (regulär).

G2 ist vom Typ 2 (kontextfrei), da die Startregeln nicht regulär sind.

G3 ist vom Typ 1 (kontextsensitiv), da in der Regel AB→BA zwei Nichtterminalzei-


chen auf der linken Seite stehen.

G4 ist vom Typ 0, da in der letzten Produktionsregel keine Monotonie gegeben ist
(für x→y ist |x|>|y|).

Aufgabe 073

Geben Sie kontextfreie Grammatiken an, die die folgenden Mengen erzeugen.

a) die Sprache L(G) = {0n1n, nℕ0}

b) die Sprache aller Wörter über Σ = {0,1}, die mit 111 beginnen

98
Grammatiken

Lösung:

a)
G1 = (V1,Σ,S1,P1) mit

V1 = {S,A,B},
Σ = {0,1},
S1 ist Startsymbol,
S→ASB | 
P1= A→0
B→1

b)
G2 = (V2,Σ,S2,P2) mit

V2 = {S,A},
Σ = {0,1},
S2 ist Startsymbol,
S→111A
P2 =
A→0A | 1A | 

Aufgabe 074

Konstruieren Sie eine Grammatik vom Typ 3 über dem Alphabet Σ = {a,b,c}, die
die folgende Sprache erzeugt.

L1 = {w{a,b,c}* | w enthält das Teilwort abcb}

Lösung:

G = (V,Σ,S,P) mit

Σ = {a,b,c},
S ist Startsymbol,
Vorgehen zur Erstellung der Regelmenge P und Ermittlung der Zustände V:

99
Grammatiken

1.) Regeln, die für das Teilwort abcb benötigt werden, sind

S→aB, B→bC, C→cD, D→b.

2.) Das Teilwort abcb kann beliebige Präfixe haben:

S→aS | bS | cS

3.) Das Teilwort abcb kann beliebige Suffixe X haben:

X→aX | bX | cX | a | b | c

4.) Als Überleitung vom Wort abcb zum Suffix wird eine weitere Regel benötigt:

D→bX
1.) bis 4.) ergeben zusammen: V = {S,B,C,D,X} und

S→aS | bS | cS | aB
B→bC
P= C→cD
D→ b | bX
X→aX | bX | cX | a | b | c

Aufgabe 075

Konstruieren Sie eine Grammatik vom Typ 3 über dem Alphabet Σ = {a,b,c}, die
die folgende Sprache erzeugt.

L1 = {w{a,b,c}* | w beginnt mit a(abc)k für ein k≥1}

Lösung:

Vorgehen zur Erstellung der Regelmenge:

1.) Regeln, die für das Präfix a(abc)k benötigt werden, sind

S→aA, A→aB, B→bC, C→cA | c.

100
Grammatiken

2.) Regeln, die für das (beliebige) Suffix benötigt werden, sind

X→aX | bX | cX | a | b | c.

3.) Eine Regel, die für die Überleitung vom Präfix zum Suffix benötigt wird, ist

C→cX.

1.) bis 3.) ergeben zusammen:

G = (V,Σ,S,P) mit

V = {S,A,B,C,X},
Σ,
S ist Startsymbol,
S→aA
A→aB
P= B→bC
C→cA | c | cX
X→aX | bX | cX | a | b | c

Aufgabe 076

Konstruieren Sie eine Grammatik vom Typ 3 über dem Alphabet Σ = {a,b,c}, die
die folgende Sprache erzeugt.

L1 = {w{a,b,c}* | w endet mit a(abc)k für ein k≥1}

Lösung:

Vorgehen zur Erstellung der Regelmenge:

1.) Regeln, die für das Suffix (abc)k benötigt werden, sind

A→aB, B→bC, C→cA | c.

101
Grammatiken

2.) Regeln, die für das (beliebige) Präfix benötigt werden, sind

S→aS | bS | cS.

3.) Eine Regel, die für die Überleitung vom Präfix zum Suffix benötigt wird (produ -
ziert auch das im Suffix führende a), ist

S→aA.

1.) bis 3.) ergeben zusammen:

G = (V,Σ,S,P) mit

V = {S,A,B,C},
Σ,
S ist Startsymbol,
S→aS | bS | cS | aA
A→aB
P=
B→bC
C→cA | c

Aufgabe 077

Gegeben ist das Transitionsdiagramm eines DEA M:

a) Geben Sie eine Grammatik G an mit L(G) = L(M).

b) Beschreiben Sie L(M).

102
Grammatiken

Lösung:

a) G = (V,Σ,S,P) mit
V = {q0,q1,q2},
Σ = {a,b},
S = q0,
q0→bq0 | b | aq1
P= q1→bq1 | aq2 | a
q2→bq2 | b | aq0 | a

b) Jedes wL(M) besteht aus einer beliebigen Folge aus a und b, wobei die An-
zahl der a entweder genau 2+3i oder genau 3i für iℕ0 beträgt.

Formal: L(M) = {w{a,b}* | |w|a={2+3i}{3i}, iℕ0}

Aufgabe 078

Gegeben sei das folgende Transitionsdiagramm eines endlichen Automaten M:

a) Geben Sie eine reguläre Grammatik G an mit L(G) = L(M).

b) Beschreiben Sie L(M) verbal und geben Sie einen regulären Ausdruck R an,
sodass L(R) = L(M) = L(G).

103
Grammatiken

Lösung:

a) G = (V,Σ,S,P) mit

V = {A,B,C,D},
Σ = {0,1},
S = A,
A→0A | 1C | 
B→0A | 1C
P=
C→0B | 1D
D→0B | 1D | 

b) Jedes wL(M) endet mit mindestens zwei Einsen oder mindestens zwei Nullen
oder w ist das leere Wort oder w=0.

R = ((0|1)* (11 | 00)) | 0 | 

Aufgabe 079

Gegeben sei der reguläre Ausdruck R = (ab* (ac))*.

Geben Sie eine rechtslineare Grammatik G an, sodass L(R) = L(G).

Lösung:

R = (ab* (ac))* = (ab* (a|c))*

G = (V,Σ,S,P) mit

V = {S,A},
Σ = {a,b,c},
S ist Startsymbol,
S→aA | 
P=
A→bA | aS | cS

104
Grammatiken

Aufgabe 080

Gegeben sei die rechtslineare Grammatik G = (V,Σ,S,P) mit

V = {S,A,B,C},
Σ = {a,b,c,d},
S ist Startsymbol,
S→aA | ɛ
A→aA | bB | cC
P=
B→bB | cC | ɛ
C→cC | dS

a) Bilden Sie eine Ableitung des Wortes aabccd.

b) Geben Sie einen regulären Ausdruck R an, sodass L(R) = L(G).

Lösung:

a) S→aA→aaA→aabB→aabcC→aabccC→aabccdS→aabccdɛ = aabccd

b) R = (aa*b*cc*d)* | (aa*bb*) = (a+b*c+d)* | (a+b+)

Aufgabe 081

Gegeben ist die kontextfreie Grammatik G = (V,Σ,S,P) mit


S→NP VP
VP→V | V PP
PP→PREP NP
NP→N | DET N
P= Geben Sie eine Ableitung für die Eingabe
V→lacht Hans lacht über den Witz an.
PREP→über
N→Hans | Witz
DET→den .

105
Grammatiken

Lösung:

S→NP VP→NP V PP→NP V PREP NP→NP V PREP DET N


→N V PREP DET N→Hans lacht über den Witz

Aufgabe 082

Gegeben sei das folgende Transitionsdiagramm eines DEA M:

a) Geben Sie L(M) an.

b) Geben Sie eine Grammatik G an, sodass L(G) = L(M).

Lösung:

a) L(M) = {w{0,1}* | w enthält eine durch 4 teilbare Anzahl an Nullen und eine
gerade Zahl an Einsen}

b) G = (V,Σ,S,P) mit

V = {A,B,C,D,E,F,G,H},
Σ = {0,1},
S = A,

106
Grammatiken

A→0B | 1E | 
B→0C | 1F
C→0D | 1G
D→0A | 1H | 0
P=
E→0F | 1A | 1
F→0G | 1B
G→0H | 1C
H→0E | 1D

Aufgabe 083

Gegeben sei die Grammatik G = (V,Σ,S,P) mit V = {S,A,B,C}, Σ = {a,b,c}, S ist


Startsymbol,

S→ACA
A→aAa | B | C
P=
B→bB | b
C→Cc | ɛ .

Konstruieren Sie eine zu G äquivalente ɛ-freie Grammatik G'.

Lösung:

1.) Markierungsalgorithmus

V = {C}, da ∃ C→ɛ
V = {A,C}, da ∃ A→C
V = {S,A,C}, da ∃ S→ACA Feststellung: SV⇔ ɛL(G)

107
Grammatiken

2.) setze
V' := V{S' }, wobei S' neues Startsymbol ist und
P' := PS'→S | ɛ Regel S'→ɛP', weil ɛL(G)

3.) Konstruktionsalgorithmus

Initialisierung: Entferne alle ɛ-Regeln aus P'


Damit ist

S'→S | ɛ
S→ACA
P' = A→aAa | B | C
B→bB | b
C→Cc .

∃ S→ACA mit φ1=ɛ, φ2=CA: neue Regel S→CA,


∃ S→ACA mit φ1=A, φ2=A: neue Regel S→AA,
∃ S→ACA mit φ1=AC, φ2=ɛ: neue Regel S→AC,
∃ S→CA mit φ1=C, φ2=ɛ: neue Regel S→C,
∃ S→CA mit φ1=ɛ, φ2=A: neue Regel S→A,
∃ S→AA mit φ1=A, φ2=ɛ: keine neue Regel,
∃ S→AA mit φ1=ɛ, φ2=A: keine neue Regel,
∃ S→AC mit φ1=A, φ2=ɛ: keine neue Regel,
∃ S→AC mit φ1=ɛ, φ2=C: keine neue Regel,
∃ A→aAa mit φ1=a, φ2=a: neue Regel A→aa,
∃ C→Cc mit φ1=ɛ, φ2=c: neue Regel C→c.

Resultat ist die ɛ-freie Grammatik G' = ({S',S,A,B,C},{a,b,c},P',S') mit

S'→S | ɛ
S→ACA | CA | AA | AC | C | A
P' = A→aAa | B | C | aa
B→bB | b
C→Cc | c ,

...oder kürzer:

108
Grammatiken

S→ACA | CA | AA | AC | C | A | ɛ
A→aAa | B | C | aa
P' =
B→bB | b
C→Cc | c .

Aufgabe 084

Gegeben sei die kontextfreie Grammatik G = (V,Σ,S,P) mit V = {S,A,B}, Σ =


{a,b,0,1}, S ist Startsymbol,

S→A | B
P= A→aAb | 0
B→aBbb | 1 .

a) Beschreiben Sie L(G) verbal.

b) Beschreiben Sie L(G) mit einem regulären Ausdruck R.

Lösung:

a) L(G) enthält alle Wörter, die entweder


• beliebig viele (auch keine) a am Anfang haben, gefolgt von genau einer
Null und dann genau so vielen b wie a am Anfang des Worts, oder
• beliebig viele (auch keine) a am Anfang haben, gefolgt von genau einer
Eins und dann doppelt so vielen b wie a am Anfang des Worts.

b) R = an0bn | an1b2n für n≥0

Aufgabe 085

Geben Sie eine kontextfreie Grammatik G an, die die Sprache L = {w=an(bc)n-1,
n≥1} erzeugt.

109
Grammatiken

Lösung:

G = (V,Σ,S,P) mit

V = {S,A,B},
Σ = {a,b},
S ist Startsymbol,
S→ASB | a | aAB
P= A→a
B→bc

Anmerkungen:
• S→a tritt im Fall n=1 auf, sonst (n>1):
• S→ASB stellt sicher, dass identisch viele A bzw. a und B bzw. bc im Wort
vorkommen
• S→aAB fügt das noch fehlende a hinzu

Aufgabe 086

Gegeben sei die Grammatik G = ({S,A,B},{a,b},S,P) mit

S→aA | Bb | ɛ
P= A→Sb
B→aS .

a) Sind die vier folgenden Aussagen korrekt?

1. w1=ab L(G) 2. w2=abab L(G)

3. w3=abba L(G) 4. w4=aabb L(G)

b) Von welchem Typ ist L(G)?

c) Ist G eine eindeutige Grammatik?

110
Grammatiken

Lösung:

a) 1. ja: S→ aA→aSb→ab

2. nein, G kann w2 nicht erzeugen

3. nein, G kann w3 nicht erzeugen

4. ja: S→ aA→aSb→aaAb→aaSbb→aabb

b) Da mit den Regeln S→aA | Bb rechts- und linkslineare Regeln zu P gehören,


ist die Sprache nicht regulär. Anhand der formalen Beschreibung L(G) = {w{a,b}*
| w=anbn, nℕ0} kann das auch mittels Pumping Lemma nachgewiesen werden.

Da auf der linken Seite aller Regeln jeweils nur einzelne Nichtterminalzeichen ste-
hen, ist L(G) kontextfrei.

c) Nein, denn bspw. das Wort w=ab lässt sich auf verschiedene Weisen erzeu-
gen, nämlich durch S→aA→aSb→ab und S→Bb→aSb→ab.

Aufgabe 087

Gegeben sei eine kontextfreie Grammatik G = (V,Σ,S,P) mit

V = {S,A,B,C,D},
Σ = {a,b,c,d},
S als Startsymbol und den Produktionsregeln

S→CB
A→a | CD
P= B→b
C→DA | AaDC | c
D→C | d | ɛ .

Zeigen oder widerlegen Sie die folgende Aussage: Die Grammatik G ist eindeutig.

111
Grammatiken

Lösung:

Die Grammatik G ist nicht eindeutig. Begründung: Es gibt verschiedene Ableitun-


gen für z. B. w=cb. Beweis:

S S

C B C B

c b D A b

ɛ C D

c ɛ

Aufgabe 088

a) Geben Sie eine kontextfreie Grammatik G an, die die Sprache

L = {w{a,b}* : |w|a ≥ 3|w|b}

erzeugt. Dabei sei |w|x die Häufigkeit des Zeichens x{a,b} im Wort w.

b) Zeigen Sie, dass L maximal vom Chomsky-Typ 2 ist, also dass L nicht regulär
ist.

112
Grammatiken

Lösung:

a) G = (V,Σ,S,P) mit

V = {S},
Σ = {a,b},
S ist Startsymbol,
P = {S→Sa | ɛ | SS | bSaSaSa | aSbSaSa | aSaSbSa | aSaSaSb}

b) Beweis per Pumping Lemma:

1.) wähle z. B. w=bna3n L

2.) prüfe alle Zerlegungen w=xyz mit |xy|≤n und |y|≥1:

• x=ɛ, y=bk, z=bn-ka3n: für i=2 ist w=xyiz=b2k bn-ka3n=bn+ka3n L

⇒ LL3

Aufgabe 089

Gegeben sei eine Grammatik G = (V,Σ,S,P) mit V = {S,A,B,C}, Σ = {a,b}, S ist


Startsymbol und

S→A | C
A→aA
P=
B→A | ab
C→aSb | ab

Bestimmen Sie eine zu G äquivalente reduzierte Grammatik G'.

113
Grammatiken

Lösung:

1.) Unproduktive Variablen entfernen

• Initialisierung: ∃ B→ab und ∃ C→ab: V' := {B,C}


• ∃ S→C: V' := {S,B,C}

ergibt
S→A | C
P= B→A | ab
C→aSb | ab

• streiche aus P alle Regeln, auf deren rechter Seite ein XV \V' vorkommt,
also S→A und B→A

Resultat ist die Grammatik G' mit V' = {S,B,C}, Σ = {a,b}, S als Startsym-
bol und

S→C
P' = B→ab
C→aSb | ab

2.) aus S ableitbare Variablen und genutztes Teilalphabet bestimmen

• Initialisierung: V'' := {S}, Σ := 


• wähle S: ∃ S→C: V'' = {S,C}, Σ = 
• wähle C: ∃ C→aSb: V'' = {S,C}, Σ = {a,b}
• wähle C: ∃ C→ab: V'' = {S,C}, Σ = {a,b}

Ergebnis: Grammatik G'' mit V'' = {S,C}, Σ = {a,b}, S ist Startsymbol und

S→C
P'' =
C→aSb | ab

3.) Kettenregeln entfernen: ∃ S→C, setze C := S und entferne C→C

Ergebnis: Reduzierte Grammatik G'' mit V'' = {S,C}, Σ = {a,b}, S ist Startsymbol
und
P'' = {S→aSb | ab}

114
Grammatiken

Aufgabe 090

Gegeben sei eine Grammatik G = (V,Σ,S,P) mit V = {S,A,B,C,D}, Σ = {a,c,d}, S ist


Startsymbol und

S→A | aB | aC
A→B | C | cAd
P= B→S | Ba
C→D | c
D→d | dDD

Entfernen Sie alle Zyklen und Kettenregeln aus G.

Lösung:

1.) Zyklen entfernen

• Initialisierung: P' := P, V' :=V


• ∃ einen Zyklus S→A→B→S: setze A:=S, B:=S, entferne S→S aus P',
entferne A sowie B aus V'. Somit ist V' = {S,C,D} und
S→aS | aC
S→C | cSd
P' = S→Sa
C→D | c
D→d | dDD

• Regeln durchnummerieren:

A1→aA1 | aA2 | A2 | cA1d | A1a


P' = A2→A3 | c
A3→d | dA3A3

115
Grammatiken

2.) Kettenregeln entfernen

• streiche A2→A3, füge A2→d | dA3A3 hinzu


• streiche A1→A2, füge A1→c | d | dA3A3 hinzu

Ergebnis: Zyklen- und kettenregelfreie Grammatik G' mit V' = {A1,A2,A3},


Σ = {a,c,d}, A1 ist Startsymbol und

A1→aA1 | aA2 | cA1d | A1a | c | d | dA3A3


P' = A2→c | d | dA3A3
A3→d | dA3A3

• nach Rückbenennung der Variablennamen ergibt sich G' mit V' = {S,C,D},
Σ = {a,c,d}, S ist Startsymbol und

S→aS | aC | cSd | Sa | c | d | dDD


P' = C→c | d | dDD
D→d | dDD

Aufgabe 091

Gegeben sei G mit V = {S,C,D,}, Σ = {a,c,d}, S ist Startsymbol und

S→aS | aC | cSd | Sa | c | d | dDD


P= C→c | d | dDD
D→d | dDD .

Transformieren Sie G in Chomsky-Normalform.

Lösung:

1.) Einführung neuer Variablen Aa, Ac und Ad und entsprechender Regeln:

V := {S,C,D,Aa,Ac,Ad} und P := P{Aa→a,Ac→c,Ad→d}

116
Grammatiken

2.) Anschließend werden Regeln des Typs A→φeψ mit |φψ|≥1 und eΣ durch
A→φAeψ ersetzt:

S→AaS | AaC | AcSAd | SAa | c | d | AdDD


C→c | d | AdDD
D→d | AdDD
P=
Aa→a,
Ac→c,
Ad→d

3.) Zuletzt müssen Regeln der Form A→B1...Bk mit k≥3 (oben fett) behandelt wer-
den. Dafür werden für jede derartige rechte Seite weitere paarweise Variablen Xi
eingeführt und die Regeln wie folgt ersetzt:

S→AaS | AaC | AcX1 | SAa | c | d | AdX2


C→c | d | AdX2
D→d | AdX2
Aa→a,
P=
Ac→c,
Ad→d
X1→SAd
X2→DD

Aufgabe 092

Gegeben sei die Sprache L = {wwR | w{0,1}+}, wobei wR das Wort w mit umge-
kehrter Reihenfolge der Zeichen repräsentiert, z. B. 011 R=110.

a) Geben Sie eine kontextfreie Grammatik G für die Sprache L an.

b) Transformieren Sie G in Chomsky-Normalform.

117
Grammatiken

Lösung:

a) G = (V,Σ,S,P) mit

V = {S},
Σ = {0,1},
S ist Startsymbol,
P = {S→0S0 | 1S1 | 00 | 11}

b)
1.) Einführung neuer Variablen A0 und A1 und entsprechender Regeln:

V := {S,C,D,A0,A1} und P := P{A0→0,A1→1}

2.) Anschließend werden Regeln des Typs A→φeψ (eΣ) mit |φψ|≥1 durch
A→φAeψ ersetzt:

S→ A0SA0 | A1SA1 | A0A0 | A1A1


P= A0→0
A1→1

3.) Nun müssen Regeln der Form A→B1...Bk mit k≥3 (oben fett) behandelt wer-
den. Dafür werden für jede derartige rechte Seite weitere paarweise Variablen Xi
eingeführt und die Regeln wie folgt ersetzt:

S→ A0X0 | A1X1 | A0A0 | A1A1


A0→0
P= A1→1
X0→SA0
X1→SA1

Damit ist G in CNF.

118
Grammatiken

Aufgabe 093

Gegeben sei die Sprache der korrekten Klammerungen über dem Alphabet Σ =
{(,)}.

a) Wiederholung: Geben Sie eine kontextfreie Grammatik G für die Sprache L an.

b) Transformieren Sie G in Chomsky-Normalform.

Lösung:

a)
G = (V,Σ,S,P) mit

V = {S},
Σ = {(,)},
S ist Startsymbol,
P = {S→() | (S) | SS}

b)
1.) Einführung neuer Variablen A( und A) und entsprechender Regeln:

V := {S,A(,A)} und P := P{A(→(, A)→)}

2.) Anschließend werden Regeln des Typs A→φeψ (eΣ) mit |φψ|≥1 durch
A→φAeψ ersetzt:

S→A(A) | A(SA) | SS
P= A(→(
A)→)

3.) Nun müssen Regeln der Form A→B1...Bk mit k≥3 behandelt werden. Dafür
werden für jede derartige rechte Seite weitere paarweise Variablen Xi eingeführt
und die Regeln wie folgt ersetzt:

119
Grammatiken

S→A(A) | A(X0| SS
A(→(
P=
A)→)
X0→SA)

Damit ist G in CNF.

120
Kellerautomaten

Das Prinzip von Kellerautomaten ähnelt bezüglich Eingabemechanismus dem der


endlichen Automaten (Lesen vom Band). Allerdings kommt als wesentliches Ele-
ment ein Speicher - der Keller - hinzu. Der Keller hat eine FILO-Struktur („first in
last out“), die in der praktischen Informatik einem Stack entspricht: Es kann immer
nur das oberste Symbol entfernt werden.9
Zusammen mit der endlichen Kontrolle von nichtdeterministischen endlichen Au-
tomaten kann ein solches Modell dazu genutzt werden, kontextfreie Sprachen zu
erkennen.10 Wörter akzeptiert ein Kellerautomat auf zwei verschiedene Weisen:
über finale Zustände oder über einen leeren Keller. Die Zustandsübergänge eines
Kellerautomaten entsprechen denen eines -NEA: Es kann Verarbeitungsschritte
geben, bei denen kein Zeichen gelesen wird (es gibt -Übergänge).11
Formal ist der Kellerautomat wie folgt definiert: 12 M = (Q,Σ,Γ,δ,S,γ0,F) mit

• Q: endliche Menge von Zuständen


• Σ: Eingabe- oder Bandalphabet
• Γ: Kelleralphabet
• δ: Übergangs- bzw. Transitionsfunktion
• S: Anfangszustand (Teilmenge von Q)
• γ0: Kellerstartsymbol
• F: Menge von Endzuständen (Teilmenge von Q).

Die folgenden Aufgaben beinhalten

• die Konstruktion von deterministischen und nichtdeterministischen Keller-


automaten,
• die Überprüfung von Sprachen auf Zugehörigkeit zur Klasse der kontext-
freien Sprachen anhand von Kellerautomaten sowie Übungen zur
• Selbstkontrolle des Lernenden durch Angabe von konkreten Läufen.

Kurz gesagt: In diesem Kapitel geht es darum, Kellerautomaten als Erweiterung


von endlichen Automaten im Zusammenhang mit kontextfreien Sprachen zu be-
greifen sowie mit Blick auf Prüfungssituationen den aufgabenbezogenen Umgang
damit einzuüben und zu vertiefen.

9 Vgl. Hopcroft & Ullman (1979), S. 107.


10 Ebd., S. 108.
11 Vgl. Hoffmann (2009), S. 213.
12 Vgl. Asteroth & Baier 2002, S. 300.

121
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1_3
Kellerautomaten

Aufgabe 094

a) Geben Sie einen DKA an, der für Σ = {0,1,c} die Sprache

L = {wΣ* : w=vcvR, v{0,1}*}

akzeptiert.

b) Geben Sie einen akzeptierenden Lauf für das Wort w=0010c0100 an.

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,q2},
Σ = {0,1,c},
Γ = {0,1,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {q2},
δ:
(q0,0,γ0) →(q0,0γ0 ) (1)

(q0,1,γ0) →(q0,1γ0 ) (2)

(q0,0,0) →(q0,00) (3)


q0: v einlesen und Zeichen jeweils im Keller speichern
(q0,0,1) →(q0,01) (4)

(q0,1,0) →(q0,10) (5)

(q0,1,1) →(q0,11) (6)

(q0,c,γ0) →(q1,γ0) (7)

(q0,c,0) →(q1,0) (8) c einlesen: Mitte erreicht; Keller bleibt unverändert

(q0,c,1) →(q1,1) (9)

(q1,0,0) →(q1,ɛ) (10) q1: für jede eingelesene 0 wird eine 0 gelöscht

(q1,1,1) →(q1,ɛ) (11) q1: für jede eingelesene 1 wird eine 1 gelöscht

(q1,ɛ,γ0) →(q2,γ0) (12) kein Zeichen mehr: in Finalzustand q2 wechseln

122
Kellerautomaten

b) akzeptierender Lauf für w=0010c0100:

(q0,0010c0100,γ0) ⊢(1) (q0,010c0100,0γ0) ⊢(3) (q0,10c0100,00γ0)


⊢(5) (q0,0c0100,100γ0) ⊢(4) (q0,c0100,0100γ0) ⊢(8) (q1,0100,0100γ0)
⊢(10) (q1,100,100γ0) ⊢(11) (q1,00,00γ0) ⊢(10) (q1,0,0γ0) ⊢(10) (q1,ɛ,γ0)
⊢(12) (q2,ɛ,γ0)

Hinweis: Die den Konfigurationen in Klammern vorangestellten Zahlen geben


die Nummer der jeweils angewandten Regel an.

Aufgabe 095

a) Konstruieren Sie einen NKA, der die Sprache

L = {ambnanbm : n,m ℕ0}

akzeptiert.

b) Geben Sie jeweils einen akzeptierenden Lauf für die Worte w1=aabbbaaabb,
w2=bbaa, w3=aabb, und w4=ɛ an.

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,q2,q3,q4},
Σ = {a,b},
Γ = {a,b,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {q4},

123
Kellerautomaten

δ:
m≠0 und n≠0:
(q0,a,γ0) →(q0,aγ0 ) (1)
q0: am einlesen und in den Keller schreiben
(q0,a,a) →(q0,aa) (2)

(q0,b,a) →(q1,ba) (3)


q1: bn einlesen und in den Keller schreiben
(q1,b,b) →(q1,bb) (4)

(q1,a,b) →(q2,ɛ) (5)


q2: an einlesen, bn aus Keller löschen
(q2,a,b) →(q2,ɛ) (6)

(q2,b,a) →(q3,ɛ) (7)


q3: bm einlesen, am aus Keller löschen
(q3,b,a) →(q3,ɛ) (8)

(q3,ɛ,γ0) →(q4,γ0) (9)

m=0 und n≠0:


(q0,b,γ0) →(q1,bγ0 ) (10) zuerst ein b einlesen und in den Keller schreiben

(q2,ɛ,γ0) →(q4,γ0) (11)

m≠0 und n=0:


(q0,b,a) →(q3,ɛ) (12) Beachte Nichtdeterminismus für (q0,b,a)!

m=0 und n=0:


(q0,ɛ,γ0) →(q4,γ0) (13)

b)
• akzeptierender Lauf für w1=aabbbaaabb:

(q0,aabbbaaabb,γ0) ⊢(1) (q0,abbbaaabb,aγ0) ⊢(2) (q0,bbbaaabb,aaγ0)


⊢(3) (q1,bbaaabb,baaγ0) ⊢(4) (q1,baaabb,bbaaγ0) ⊢(4) (q1,aaabb,bbbaaγ0)
⊢(5) (q2,aabb,bbaaγ0) ⊢(6) (q2,abb,baaγ0) ⊢(6) (q2,bb,aaγ0) ⊢(7) (q3,b,aγ0)
⊢(8) (q3,ɛ,γ0) ⊢(9) (q4,ɛ,γ0)

• akzeptierender Lauf für w2=bbaa:

(q0,bbaa,γ0) ⊢(10) (q1,baa,bγ0) ⊢(4) (q1,aa,bbγ0) ⊢(5) (q2,a,bγ0)


⊢(6) (q2,ɛ,γ0) ⊢(11) (q4,ɛ,γ0)

124
Kellerautomaten

• akzeptierender Lauf für w3=aabb:

(q0,aabb,γ0) ⊢(1) (q0,abb,aγ0) ⊢(2) (q0,bb,aaγ0) ⊢(12) (q3,b,aγ0)


⊢(8) (q3,ɛ,γ0) ⊢(9) (q4,ɛ,γ0)

• akzeptierender Lauf für w4=ɛ:

(q0,ɛ,γ0) ⊢(13) (q4,ɛ,γ0)

Aufgabe 096

a) Konstruieren Sie einen NKA, der die Sprache

L = {w=vvR | v{0,1}*}

akzeptiert.

b) Geben Sie einen Lauf für das Wort w=110011 an.

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,qF},
Σ = {0,1},
Γ = {0,1,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF}

sowie

125
Kellerautomaten

δ:
(q0,ɛ,γ0) →(qF,γ0) (1) falls w=ɛ

(q0,1,γ0) →(q0,1γ0 ) (2)

(q0,0,γ0) →(q0,0γ0 ) (3)

(q0,0,0) →(q0,00) (4)


v einlesen und Zeichen in den Keller schreiben
(q0,0,1) →(q0,01) (5)

(q0,1,0) →(q0,10) (6)

(q0,1,1) →(q0,11) (7)

(q0,0,0) →(q1,ɛ) (8) Mitte von w erreicht


(Nichtdeterminismus: hier muss M einmal richtig „raten“)
(q0,1,1) →(q1,ɛ) (9)

(q1,0,0) →(q1,ɛ) (12)


vR einlesen und Kellerzeichen löschen
(q1,1,1) →(q1,ɛ) (13)

(q1,ɛ,γ0) →(qF,ɛ) (14)

b) akzeptierender Lauf für w=110011:

(q0,110011,γ0) ⊢(2) (q0,10011,1γ0) ⊢(7) (q0,0011,11γ0)


⊢(5) (q0,011,011γ0) ⊢(8) (q1,11,11γ0) ⊢(13) (q1,1,1γ0) ⊢(13) (q1,ɛ,γ0)
⊢(14) (qF,ɛ,γ0)

Aufgabe 097

Konstruieren Sie einen Kellerautomaten M, der die Sprache

L = {w=anbcn, n≥0}

akzeptiert.

126
Kellerautomaten

Lösung:

M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,qF},
Σ = {a,b,c},
Γ = {a,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF},
δ:
(q0,b,γ0) →(qF,γ0) (1) n=0

(q0,a,γ0) →(q0,aγ0) (2)


a einlesen und in Keller schreiben
(q0,a,a) →(q0,aa) (3)

(q0,b,a) →(q1,a) (4) Mitte erreicht: genau ein b einlesen

(q1,c,a) →(q1,ɛ) (5) c einlesen und a aus Keller löschen

(q1,ɛ,γ0) →(qF,γ0) (6)

Aufgabe 098

a) Konstruieren Sie einen Kellerautomaten M, der die Sprache L = {w=an(bc)n-1,


n≥1} akzeptiert.

b) Geben Sie einen akzeptierenden Lauf für das Wort w=aaabcbc an.

Lösung:

a)
M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,qF},
Σ = {a,b,c},
Γ = {a,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF},

127
Kellerautomaten

δ:
(q0,a,γ0) →(q0,aγ0) (1) erstes a einlesen und in den Keller schreiben

falls n=1:
(q0,ɛ,a) →(q0,ɛ) (2) ɛ ((bc)0) einlesen, einziges/letztes a aus Keller löschen

falls n>1:
(q0,a,a) →(q0,aa) (3) a einlesen und in den Keller schreiben

(q0,b,a) →(q0,a) (4) b einlesen, Keller bleibt unverändert

(q0,c,a) →(q0,ɛ) (5) c einlesen und jeweils ein a aus dem Keller löschen

(q0,ɛ,a) →(q0,ɛ) (2) (letztes) a löschen: w enthält genau ein a mehr als (bc)

(q0,ɛ,γ0) →(qF,γ0) (6) in Finalzustand wechseln

Beachte: M ist ein NKA; ein DKA mit einem Zustand mehr könnte L ebenso be-
schreiben.

b) akzeptierender Lauf für w=aaabcbc:

(q0,aaabcbc,γ0) ⊢(1) (q0,aabcbc,aγ0) ⊢(3) (q0,abcbc,aaγ0)


⊢(3) (q0,bcbc,aaaγ0) ⊢(4) (q0,cbc,aaaγ0) ⊢(5) (q0,bc,aaγ0)
⊢(4) (q0,c,aaγ0) ⊢(5) (q0,ɛ,aγ0) ⊢(2) (q0,ɛ,γ0) ⊢(6) (qF,ɛ,γ0)

Aufgabe 099

Gegeben sei der nichtdeterministische Kellerautomat M = (Q,Σ,Γ,δ,q0,#) mit

Q = {q0,q1,qF},
Σ = {0,1}
Γ = {B,G,#},
δ:
(q0,0,#) →{(q0,B#)} (1)

(q0,1,#) →{(q0,G#)} (2)

(q0,0,B) →{(q0,BB), (q1,ɛ)} (3a), (3b)

(q0,0,G) →{(q0,BG)} (4)

(q0,1,B) →{(q0,GB)} (5)

(q0,1,G) →{(q0,GG), (q1,ɛ)} (6a), (6b)

128
Kellerautomaten

(q1,0,B) →{(q1,ɛ)} (7)

(q1,1,G) →{(q1,ɛ)} (8)

(q0,ɛ,#) →{(qF,ɛ)} (9)

(q1,ɛ,#) →{(qF,ɛ)} (10)

a) Berechnen Sie den Konfigurationsbaum von M für die Eingabe des Wortes
w=001100.

b) Welche Sprache erkennt M?

Lösung:

a) Konfigurationsbaum für w=001100:

δ(q0,001100,#)
⊢(1) δ(q0,01100,B#)
⊢(3a) δ(q0,1100,BB#)
⊢(5) δ(q0,100,GBB#)
⊢(6b) δ(q1,00,BB#)
⊢(7) δ(q1,0,B#)
⊢(7) δ(q1,ɛ,#)
⊢(10) δ(qF,ɛ,#)

b) M erkennt die Sprache der Palindrome mit gerader Anzahl an Zeichen über
dem Alphabet Σ = {0,1}, also L = {w{0,1}* : w=vvR, v{0,1}*}.

Aufgabe 100

a) Konstruieren Sie einen NKA, der die Sprache

L = {w=akb2k | kℕ}

akzeptiert.

b) Geben Sie einen Lauf für das Wort w=aabbbb an.

129
Kellerautomaten

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,q2,qF},
Σ = {a,b},
Γ = {a,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF},
δ:
(q0,a,γ0) →(q0,aγ0 ) (1) erstes a einlesen

(q0,a,a) →(q0,aa) (2) weitere a einlesen

(q0,b,a) →(q1,a) (3) erstes b einlesen

(q1,b,a) →(q2,ɛ) (4) jeweils zweites b einlesen, a aus Keller löschen

(q2,b,a) →(q1,a) (5) jeweils weiteres erstes b der Paare aus b einlesen

(q2,ɛ,γ0) →(qF,γ0 ) (6)

b) akzeptierender Lauf für w=aabbbb:

(q0,aabbbb,γ0) ⊢(1) (q0,abbbb,aγ0) ⊢(2) (q0,bbbb,aaγ0) ⊢(3) (q1,bbb,aaγ0)


⊢(4) (q2,bb,aγ0) ⊢(5) (q1,b,aγ0) ⊢(4) (q2,ɛ,γ0) ⊢(6) (qF,ɛ,γ0)

Aufgabe 101

a) Konstruieren Sie einen NKA, der die Sprache

L = {0k1l0l1k : k,lℕ0}

akzeptiert.

b) Geben Sie jeweils einen Lauf für die Worte w1=011001 (k=1, l=2), w2=1100
(k=0, l=2) und w3=0011 (k=2, l=0) an.

130
Kellerautomaten

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,q1,q2,q3,qF},
Σ = {0,1},
Γ = {0,1,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF},
δ:
k=0 und l=0:
(q0,ɛ,γ0) →(qF,γ0) (1) falls w=ɛ

k>0 und l>0:


(q0,0,γ0) →(q0,0γ0) (2) erste Null einlesen und im Keller speichern

(q0,0,0) →(q0,00) (3) weitere Nullen einlesen und im Keller speichern

(q0,1,0) →(q1,10) (4) erste Eins einlesen und im Keller speichern

(q1,1,1) →(q1,11) (5) weitere Einsen einlesen und im Keller speichern

(q1,0,1) →(q2,ɛ) (6) Mitte von w erreicht: erste Null (der zweiten Serie Nullen) einle-
sen und das oberste Zeichen aus dem Keller löschen

(q2,0,1) →(q2,ɛ) (7) weitere Nullen der zweiten Serie einlesen und jeweils das
oberste Zeichen aus dem Keller löschen

(q2,1,0) →(q3,ɛ) (8) erste Eins (der zweiten Serie Einsen) einlesen und das oberste
Zeichen aus dem Keller löschen

(q3,1,0) →(q3,ɛ) (9) weitere Einsen der zweiten Serie einlesen und jeweils das
oberste Zeichen aus dem Keller löschen

(q3,ɛ,γ0) →(qF,γ0) (10) kein weiteres Zeichen mehr einzulesen: Keller bleibt unverän-
dert, Wechsel in Finalzustand

k=0 und l>0:


(q0,1,γ0) →(q1,1γ0) (11) als erstes Zeichen eine Eins einlesen und im Keller speichern

(q2,ɛ,γ0) →(qF,γ0) (12) kein weiteres Zeichen mehr einzulesen: Keller bleibt unverän-
dert, Wechsel in Finalzustand

k>0 und l=0:


(q0,1,0) →(q3,ɛ) (13) Mitte erreicht: erste Eins einlesen und das oberste Zeichen aus
dem Keller löschen

Nichtdeterminismus: Regeln (4) und (13)

131
Kellerautomaten

b)
• akzeptierender Lauf für w1=011001:
(q0,011001,γ0) ⊢(2) (q0,11001,0γ0) ⊢(4) (q1,1001,10γ0)
⊢(5) (q1,001,110γ0) ⊢(6) (q2,01,10γ0) ⊢(7) (q2,1,0γ0) ⊢(8) (q3,ɛ,γ0)
⊢(10) (qF,ɛ,γ0)

• akzeptierender Lauf für w2=1100:


(q0,1100,γ0) ⊢(11) (q1,100,1γ0) ⊢(5) (q1,00,11γ0) ⊢(6) (q2,0,1γ0)
⊢(7) (q2,ɛ,γ0) ⊢(12) (qF,ɛ,γ0)

• akzeptierender Lauf für w3=0011:


(q0,0011,γ0) ⊢(2) (q0,011,0γ0) ⊢(3) (q0,11,00γ0) ⊢(13) (q3,1,0γ0)
⊢(9) (q3,ɛ,γ0) ⊢(10) (qF,ɛ,γ0)

Aufgabe 102

a) Konstruieren Sie einen NKA, der die Sprache

L = {w{0,1}* : w enthält genau so viele Einsen wie Nullen}

akzeptiert.

b) Geben Sie einen Lauf für das Wort w=011001 an.

Lösung:

a) M = (Q,Σ,Γ,δ,S,γ0,F) mit

Q = {q0,qF},
Σ = {0,1},
Γ = {0,1,γ0},
S = q0,
γ0 ist Kellerstartsymbol,
F = {qF},

132
Kellerautomaten

δ:
(q0,ɛ,γ0) (qF,γ0) (1)

(q0,0,γ0) (q0,0γ0) (2)


Zeichen einlesen und im Keller speichern
(q0,1,γ0) (q0,1γ0) (3)

(q0,0,0) (q0,00) (4)


weitere Zeichen einlesen und im Keller speichern
(q0,1,1) (q0,11) (5)

(q0,0,1) (q0,ɛ) (6) für jede 0 eine 1 aus Keller löschen, für jede 1 eine 0 aus Kel-
ler löschen
(q0,1,0) (q0,ɛ) (7)

b)
• Lauf für das Wort w=011001:
(q0,011001,γ0) ⊢(2) (q0,11001,0γ0) ⊢(7) (q0,1001,γ0)
⊢(3) (q0,001,1γ0) ⊢(6) (q0,01,γ0) ⊢(2) (q0,1,0γ0) ⊢(7) (q0,ɛ,γ0)
⊢(1) (qF,ɛ,γ0)

133
Reguläre Ausdrücke und reguläre Sprachen

Neben endlichen Automaten und regulären Grammatiken können reguläre Spra-


chen durch eine weitere Systematik dargestellt werden: durch reguläre Aus-
drücke.13 (Beachte: Grammatiken erzeugen Wörter einer Sprache, Automaten
prüfen sie.)
Nicht nur mit Blick auf Prüfungssituationen sind reguläre Ausdrücke im vorliegen-
den Kontext ein wichtiges Mittel. Typ-3-Sprachen, die in der Automatenschreib-
weise oder als Grammatik dargestellt werden, sind leicht als solche einzuordnen.
Sind sie jedoch in der Mengenschreibweise angegeben, ist der Chomsky-Typ be-
sonders aus der Perspektive von Lernenden in manchen Fällen nicht sofort zu er-
kennen. Dann können reguläre Ausdrücke helfen, Mengen mit wenig Aufwand als
reguläre Sprachen zu identifizieren. Geht man vom Modell verschiedener Lernty-
pen aus, können reguläre Ausdrücke als alternative Darstellungsform bestimmte
Mengen für manchen Lerner verständlicher, anschaulicher, greifbarer machen. In-
sofern wird der geübte Umgang mit regulären Ausdrücken die Handhabung regu-
lärer Sprachen und auch die Differenzierung zu kontextfreien Sprachen erleich-
tern. Formal sind reguläre Ausdrücke wie folgt definiert:

Sei Σ ein beliebiges Alphabet. Dann wird die Menge aller regulären Ausdrücke RΣ
über Σ durch die folgenden Regeln gebildet:14

• und  sind reguläre Ausdrücke.


• Für jedes Σ ist  ein regulärer Ausdruck.
• Mit Σ und Σ sind auch (), (+) und (*) reguläre Ausdrücke.

Eine alternative Definition für reguläre Ausdrücke kann durch die folgende kon-
textfreie Grammatik vorgenommen werden, die reguläre Ausdrücke erzeugt: 15

 → *

Die folgenden Aufgaben beinhalten

• Übungen zum grundsätzlichen Verständnis für reguläre Ausdrücke als


Mengenangaben, d. h. als Darstellungsform für formale Sprachen
• Transformation der Darstellungen von formalen Sprachen von der Auto-

13 Vgl. Broy 1998, S. 224.


14 Vgl. Hopcroft & Ullman 1979, S. 28.
15 Vgl. Asteroth & Baier 2002, S. 252.

135
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1_4
Reguläre Ausdrücke und reguläre Sprachen

maten- bzw. Mengenschreibweise in reguläre Ausdrücke


• Nutzung regulärer Ausdrücke zur Identifizierung regulärer Sprachen
• Nutzung des Pumping Lemma zur Identifizierung nichtregulärer Sprachen

Kurz gesagt: In diesem Kapitel soll das Verständnis für reguläre Sprachen an-
hand einer weiteren Darstellungsform, dem regulären Ausdruck, vertieft werden.
Ziel ist dabei, die Systematik regulärer Ausdrücke als Hilfsmittel für die Konstrukti-
on und Transformation von regulären Mengenangaben zu nutzen.

Aufgabe 103

Beschreiben Sie verbal die von den folgenden regulären Ausdrücken bezeichne-
ten Mengen.

a) (11 | 0)*(00 | 1)*

b) (1 | 01 | 001)*( | 0 | 00)

Lösung:

a) Der reguläre Ausdruck beschreibt die Sprache aller Worte w, die im Präfix Zei-
chenketten aus Nullen enthalten, die von Zeichenketten aus geraden Anzahlen
von Einsen unterbrochen werden, und im Suffix Zeichenketten aus Einsen ent-
hält, die von geraden Anzahlen von Nullen unterbrochen werden, wobei die An-
zahl der Zeichen gleich 0 sein kann (leeres Wort).

b) Der reguläre Ausdruck beschreibt die Sprache aller Worte w, die im Präfix eine
beliebige Anzahl (oder auch keine) der Zeichenketten 1, 01 oder 001 enthalten
und im Präfix entweder das leere Wort, genau eine Null oder genau zwei Nullen
enthalten.

Aufgabe 104

Gegeben sei die Sprache L = {banb | n≥0} {anba | n>0}.

Ist L eine reguläre Menge? Falls nein, begründen Sie; andernfalls geben Sie
einen L entsprechenden regulären Ausdruck R und einen endlichen Automaten M
mit L(M) = L an.

136
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

L ist eine reguläre Sprache, da sie durch den regulären Ausdruck

R = (ba*b) | (a+ba)

beschrieben werden kann. (Vereinigung der gegebenen Mengen: „Jedes wL ge-
hört mindestens einer der beiden Mengen an.“)

M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3,q4},
Σ = {a,b},
S = q0,
F = {q2},
δ:

Aufgabe 105

Beschreiben Sie die folgenden Sprachen Li (i{1,2}) durch einen regulären Aus-
druck Ri:

a) L1 = {w{0,1}* | w enthält als k-letztes Zeichen eine Null}

b) L2 = {w{a,b}* | w enthält mindestens zwei aufeinanderfolgende a}

Lösung:

a) R1 = (0|1)*0(0|1)k-1

b) R2 = (a|b)*aa(a|b)*

137
Reguläre Ausdrücke und reguläre Sprachen

Aufgabe 106

Gegeben sei ein DEA M mit der folgenden Übergangsfunktion δ:

Geben Sie einen regulären Ausdruck  mit L() = L(M) an.

Lösung:

Aus dem Graphen kann abgelesen werden, dass zwei Zyklen existieren (die bei-
de nicht zwangsweise durchlaufen werden) und das letzte Zeichen aller wL(M)
ein a ist.

 = (Zyklus 1 | Zyklus 2)* · a

Zyklus 1:

ergibt Zyklus 1 = (a(a|b))*

Zyklus 2:

ergibt Zyklus 2 = (bb*aa*b)* = (b+a+b)*

138
Reguläre Ausdrücke und reguläre Sprachen

Resultat:  = ( Zyklus 1 | Zyklus 2)* · a

= ( (a(a|b))* | (b+a+b)* )* a

= ( a(a|b) | b+a+b )* a

Aufgabe 107

Beschreiben Sie in Worten die Sprachen L(Ri), die für i{1,2} von den folgenden
regulären Ausdrücken beschrieben werden.

a) R1 = a*(a|b)b*

b) R2 = (a|bbb)(a|b)*

Lösung:

a) Die Sprache umfasst alle Worte, bei denen am Anfang beliebig viele a stehen,
gefolgt von genau einem a oder einem b, gefolgt von beliebig vielen b.

b) Die Sprache umfasst alle Worte mit einer der Zeichenketten a bzw. bbb im Prä-
fix und beliebig vielen a oder b im Suffix.

Aufgabe 108

Geben Sie reguläre Ausdrücke R1 und R2 an, sodass für gegebene Sprachen L1
bzw. L2 gilt: L(R1) = L1 bzw. L(R2) = L2.

a) L1 = {w{a,b}* | w enthält mindestens zwei a}

b) L2 = {w{0,1,2}* | w enthält mindestens eine 2, die weder am Anfang noch am


Ende von w steht}

139
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

a) R1 = (a|b)*a(a|b)*a(a|b)*

b) R2 = (0|1)(0|1|2)*2(0|1|2)*(0|1)

Aufgabe 109

Gegeben sei die Sprache L = {w{a,b}* | w=aibi, iℕ}.

Beweisen Sie mit dem Pumping Lemma für L3, dass L nicht regulär ist.

Lösung:

• sei n beliebig, dazu geeignetes wL mit |w|≥n wählen: bspw. w=anbn

• Zerlegungen w=xyz mit |xy|≤n und |y|≥1 untersuchen:


◦ wegen |xy|≤n ist xy{a}n, also bspw. w=xyz=an-kakbn
◦ wegen |y|≥1 gilt auch: |ak|≥1 ⇔ k≥1

• Gilt xyizL für i=0,1,2,...?


◦ für i=0: w=xy0z=xz mit x=an-k und z=bn: w=an-kbn L
⇒ LL3, d. h. L ist nicht regulär.

Aufgabe 110

Gegeben sei die Sprache L = {w{a,b}* | w=vvR, v{0,1}*}, wobei vR die Zeichen-
folge von v{0,1}* in umgekehrter Reihenfolge darstellt.

Beweisen Sie mit dem Pumping Lemma für L3, dass L nicht regulär ist.

140
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

• sei n beliebig, dazu geeignetes wL mit |w|≥n wählen: bspw. w=0n110n

• Zerlegungen w=xyz mit |xy|≤n und |y|≥1 untersuchen:


◦ wegen |xy|≤n ist xy{0}n, also w=xyz=0n-k0k110n für x=0n-k und y=0k
◦ wegen |y|≥1 gilt auch: |0k|≥1 ⇔ k≥1

• Gilt xyizL für i=0,1,2,...?


◦ für i=0: w=xy0z=xz mit x=0n-k und z=110n: w=0n-k110n L
◦ ⇒ LL3, d. h. L ist nicht regulär.

Aufgabe 111

Zeigen Sie für die Sprache L = {1m0l1 : m,l≥0}, dass die im Pumping Lemma for-
mulierte notwendige Bedingung für Regularität gegeben ist.

Lösung:

• wähle wL mit |w|≥n: w=1n0l1 (n=m)

• Zerlegungen w=xyz mit |xy|≤n und |y|≥1 untersuchen:


◦ w=xyz=1k1n-k0l1 für x=, y=1k, z=1n-k0l1 (0<k≤n)

• Gilt xyizL für i=0,1,2,...?


◦ für i=0: w=xy0z=xz mit x= und z=1n-k0l1: w=1n-k0l1 L


⇒ die im Pumping Lemma formulierte notwendige Bedingung für Regularität ist
gegeben.

141
Reguläre Ausdrücke und reguläre Sprachen

Aufgabe 112

Welche der folgenden Sprachen sind regulär, welche nicht? Geben Sie jeweils
eine Begründung an.

a) L1 = {x | x enthält beliebig viele a und eine gerade Anzahl an b, jedoch mindes-


tens zwei}

Wörter der Sprache sind bb, abb, bab, bba, ababa, bbbb, abbbb, babbb,
bbabb, ...

b) L2 = {x | x enthält im Präfix beliebig viele a, dann genau drei b und dann genau
so viele a wie am Anfang}

Wörter der Sprache sind bbb, abbba, aabbbaa, aaabbbaaa, ...

c) L3 = L1L2

Lösung:

a) L1 ist regulär, da man einen endlichen Automaten M und einen regulären Aus-
druck R konstruieren kann, die beide L1 beschreiben.

• Transitionsdiagramm von M:

• R = (a*ba*ba*)+

b) Mittels Konstruktion von Produktionsregeln einer Grammatik G mit L(G) = L1 ist


zu sehen, dass es sich hier um eine kontextfreie Sprache handelt:

P = { S→ aSa | bbb }

Der Beweis kann auch mittels Pumping Lemma erfolgen:

• wähle beliebiges n, dazu geeignetes wL mit |w|≥n wählen: bspw.


w=anbbban

142
Reguläre Ausdrücke und reguläre Sprachen

• Zerlegungen w=xyz mit |xy|≤n und |y|≥1 untersuchen:


◦ z. B. w=xyz=an-kakbbban für x=an-k, y=ak, z=bbban

• Gilt xyizL für i=0,1,2,...?


◦ für i=0: w=xy0z=xz mit x=an-k und z=bbban: w=an-k bbban L

⇒ LL3, d. h. L ist nicht regulär.

Alternativ kann auch verbal argumentiert werden: Alle Worte von L2 haben die
Form w=anbbban für 0≤n≤∞. w kann also unendlich viele a beinhalten. Das lässt
sich in einem endlichen Automaten (d. h., mit endlich vielen Zuständen) nur mit-
tels Schleife modellieren. Da sich ein endlicher Automat außer dem Zustand, in
dem er sich gerade befindet, nichts „merken“ kann, kann er nicht zählen, wie oft
eine Schleife bereits durchlaufen wurde. Es gibt also keine Möglichkeit, sicherzu-
stellen, dass die zweite Zeichenkette (Suffix von w) bestehend aus a genau so
lang ist wie die erste (Präfix).

c) L3 ist nicht regulär (aufgrund der Abschlusseigenschaften der Vereinigung):

Da L2 nicht regulär ist, ist die Vereinigungsmenge von L2 mit einer weiteren forma-
len Sprache (dabei ist unerheblich, ob regulär oder nicht) ebenfalls nicht regulär.

Aufgabe 113

Gegeben sei L = {w{a,b}* | w beginnt mit beliebig vielen a und endet mit beliebig
vielen b}.

Wörter der Sprache L sind z. B. a, aaaa, ab, aab, aaabb, b...

a) Finden Sie eine Zahl n und ein Wort wL, sodass sich w mit n≤|w| zerlegen
lässt in w=xyz mit |y|≥1, |xy|≤n und für alle k=0,1,2,3,... gilt: xykz L.

b) Folgt daraus, dass L eine reguläre Sprache ist? Begründen Sie Ihre Antwort.

143
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

a) w = xyz = anbm mit x=ɛ, y=ax, z=an-xbm

b)
Pumping Lemma:

Sei L eine reguläre Sprache. Dann gibt es eine Zahl n, so dass sich alle
Wörter wL mit n≤|w| zerlegen lassen in w=xyz, so dass folgende Eigen-
schaften erfüllt sind:
1. |y|≥1
2. |xy|≤n
3. für alle k=0,1,2,3,... gilt: xykz L

Es ist allerdings möglich, dass diese Kriterien auch von nicht-regulären Sprachen
erfüllt werden. Ein Beispiel dafür ist die Sprache L2 = {{cmajbj | m,j≥1}{a,b}*},
denn sie erfüllt die Behauptung des Pumping Lemmas:

1.) {a,b}*:
- wähle w=xyz=anb mit x=ɛ, y=ag und z=an-gb
dann ist für k=0: xykz=xy0z=xz=an-gb L
k=2: xykz=xy2z=a2gan-gb=an+gb L

2.) {cmajbj | m,j≥1}:


- wähle w=xyz=cmajbj mit x=ɛ, y=ch und z=cm-hajbj
dann ist für k=0: xykz=xy0z=xz=cm-hajbj L
k=2: xykz=xy2z=c2hcm-hajbj=cm+hajbj L

Man kann (ganz allgemein) schließen:


• eine Sprache L erfüllt die Bedingungen des Pumping Lemmas ↔ L kann
regulär oder nicht-regulär sein
• eine Sprache L erfüllt die Bedingungen des Pumping Lemmas nicht ↔ L
kann nur nicht-regulär sein

Mit dem Pumping Lemma kann also nur der Nachweis erbracht werden, dass
eine Sprache nicht regulär ist.

Aus Aufgabenteil a) folgt also nicht, dass L regulär ist.

144
Reguläre Ausdrücke und reguläre Sprachen

Aufgabe 114

a) Gegeben sind die Sprachen L1 = aab*cc und L2 = a*bc*. Bestimmen Sie

1. L1L2
2. L1-L2 bzw. L1\L2

b) Gegeben sind die Sprachen L1 = a*bc* und L2 = a*bcc. Bestimmen Sie

1. L1L2
2. L1-L2 bzw. L1\L2

Lösung:

a)
1. Durchschnitt:
aab*cca*bc* = aabcc, also genau ein Wort

2. Differenz:
L1\L2 = L1\(L1L2) = aab*cc\aabcc = aacc | aabb+cc

b)
1. Durchschnitt:
a*bc*a*bcc = a*bcc (L2 ist also Teilmenge von L1)

2. Differenz:
L1\L2 = a*bc*\a*bcc = a*b | a*bc | a*bccc+

Aufgabe 115

Beweisen Sie:
L = {w{a}* : |w| ist prim} L3.

145
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

Wenn die Aussage des Pumping Lemmas nicht für L gilt, ist LL3.

1.) wähle z. B. w=aq, q>n ist prim (lt. Def. in L enthalten)


• aus w=xyz mit |xy|≤n und |y|>0 folgt: y=ak mit 0<k≤n

2.) Ist xyizL für jedes i=0,1,2,... ?


• mit i=q+1: xyq+1z L, demnach wäre |xyq+1z| eine Primzahl
• Widerspruch: |xyq+1z| = |xyz|+q·|y| = q+q·k = q·(1+k) ist Produkt zweier
Zahlen >1 und kann damit nicht prim sein ⇒ wL ⇒ LL3

Aufgabe 116

Beweisen Sie:
L = {w{a}* : w=ak∙k, k>1} L3.

Lösung:

Wenn die Aussage des Pumping Lemmas nicht für L gilt, ist LL3.

1.) wähle z. B. w=an, n ist Quadratzahl

2.) prüfe alle Zerlegungen w=xyz mit |xy|≤n und |y|≥1:


• x=ɛ, y=a, z=an-1: für i=0 ist w=xyiz=xz=an-1
• wenn |an| (n>1) eine Quadratzahl ist, kann |an-1| keine Quadratzahl sein
• es folgt: wL (für alle n>1) ⇒ LL3

Aufgabe 117

Geben Sie zu den folgenden regulären Ausdrücken äquivalente ɛ-NEAs an:

a) R1 = (a|b)*c(a|b)* b) R2 = ac*(a|b|c)* | (aaa)*

146
Reguläre Ausdrücke und reguläre Sprachen

Lösung:

a) M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,},
Σ = {a,b,c},
S = q0,
F = {q1},
δ:

b) M = (Q,Σ,δ,S,F) mit

Q = {q0,q1,q2,q3},
Σ = {a,b,c},
S = q0,
F = {q0,q2,q3},
δ:

147
Stichwortverzeichnis

-frei 38, 40, 55, 59, 63, 73-75, 88-91, 93-95, 106, 107
-NEA 38, 40, 54, 57, 58, 60, 63, 73, 120, 144
-Übergang 2, 38-41, 55, 58, 59, 64, 74, 120
-Zyklus 39, 41, 54, 58, 64, 74
Ableitung 78, 104, 111
Ableitungsbaum 80, 92
Alphabet 1, 2, 4, 13, 20, 24, 26, 27, 75, 78, 79, 82, 98-100, 113, 118, 120, 128,
133
akzeptierender Lauf 17, 121-127, 129, 131
Äquivalenzklasse 23, 31, 33-36, 45, 57, 62, 66, 67, 69
Automatenschreibweise 133
Binärzahl 13, 15
CNF, Chomsky-Normalform 115, 116-119
DEA, deterministischer endlicher Automat 2-6, 10, 11, 13-17, 19, 21, 23-32, 34-
37, 42-45, 51, 53-71, 75, 76, 92, 101, 105, 120, 136
Differenz 143
DKA, deterministischer Kellerautomat 120, 121, 127
Durchschnitt 143
Ersetzung, Ersetzungsmechanismus 78, 88
Fang-, Fehlerzustand 13, 25
FILO, First-in-last-out 120
Grammatik 1, 17, 24, 36, 43, 46, 48, 49, 51, 78-82, 84-116, 118, 133, 140
Grammatiktyp 78
Halbtabelle 21, 22, 30, 32, 35, 45, 62, 65, 67, 68
Hexadezimalsystem 15
Kategorisieren, Kategorisierung 15, 47
Keller, Kellerspeicher 120, 121, 123, 125-127, 129, 130, 132
Kelleralphabet 120
Kellerautomat 120, 125-127
Kellerstartsymbol 120-122, 124, 126, 129-131
Kettenregel 113-115
Klammerausdruck 79
Klammerung 118
Konfigurationsbaum 128
Konstruktion 1, 21, 38, 78, 120, 134, 140
Konstruktionsalgorithmus 89, 91, 94, 95, 107
kontextfrei 79, 82, 85, 88, 90, 93, 95, 97, 104, 108, 110, 111, 116, 118, 120, 133,
140

149
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1
Stichwortverzeichnis

kontextfreie Grammatik 79, 82, 88, 90, 95, 97, 104, 108, 110, 111, 116, 118, 133
kontextfreie Sprache 120, 140
kontextsensitiv, kontextsensitive Grammatik 86, 87, 97
Linksableitung 80
linkslinear 110
Markierungsalgorithmus 89, 90, 93, 95, 106
Mengenangabe 133, 134
Mengenschreibweise 133, 134
minimal 21, 47, 54, 63
Minimierung, minimieren 20, 30, 32, 34, 44, 61, 66, 68
Monotonie, monoton 85, 86, 97
Morphem 47
Nichtdeterminismus, nichtdeterministisch 120, 123, 125, 127, 130
Nichtterminal, Nichtterminalzeichen 78, 85, 86, 97, 110
normalisiert 13
NEA, nichtdeterministischer endlicher Automat 2, 5, 11, 18, 19, 28, 38, 40, 51, 52,
54, 55, 57-60, 63, 64, 70, 73, 75, 76, 120, 144
NKA, nichtdeterministischer Kellerautomat 122, 124, 127-129, 131
Palindrom 79, 128
Potenzmengenkonstruktion 3, 6, 11, 19, 29, 52, 53, 55, 59, 64, 70, 72, 76
Präfix 8, 10, 14, 79, 82, 86, 88, 99-101, 134, 137, 140, 141
Primzahl, prim 143, 144
Produkt 144
Produktionsregel 24, 78, 80, 83, 97, 110, 140
Pumping Lemma 25, 110, 112, 134, 138-140, 142
Quadratzahl 144
Rechtsableitung 80
rechtslinear 46, 49, 51, 85, 103, 104
reduziert, Reduktion 78, 112, 113
Regel: siehe Produktionsregel
Regularität, regulär 1, 4, 5, 7, 8, 10-12, 24, 25, 28, 36, 43, 46, 48, 49, 51, 70, 71,
75, 78, 82, 83, 85, 86, 97, 102-104, 108, 110, 111, 133-142, 144
regulärer Ausdruck 4, 5, 7, 8, 10-12, 28, 46, 48, 49, 51, 70, 71, 75, 82, 83, 102,
104, 108, 133, 134-136, 140
reguläre Grammatik 1, 24, 36, 43, 102, 133
reguläre Sprache 1, 25, 78, 83, 133-135, 141, 142
römische Zahlen 20
Schleife: siehe Zyklus
Speicher, speichern 15, 120, 121, 130, 132
Sprache 17, 18, 24-28, 36, 37, 42, 43, 46, 60, 70, 71, 75, 78, 82-87, 92, 96-100,
108, 110, 111, 116, 118, 120-122, 124-126, 128, 129, 131, 133-135, 137-143
Sprachklasse, Sprachtyp 1, 78, 79, 82
Stack 120
Startregel 88, 97

150
Stichwortverzeichnis

Startsymbol 18, 37, 48-51, 78-80, 83, 87, 89, 91, 93-95, 98, 100, 101, 103, 104,
106-110, 112-115, 117, 118, 120
Startzustand 1, 2, 24, 39-41, 48, 50, 71, 82-84
Suffix 10, 82, 99-101, 134, 137, 141
Symbol 1, 88, 120
Table-Filling-Algorithmus 22, 30, 32, 35, 45, 56, 62, 65, 67, 68
Teilalphabet 113
Teilwort, Teil-String 28, 36, 60, 98, 99
Terminal, Terminalzeichen 78, 83, 88
Transformation 1, 39, 41, 78, 133, 134
Transition: siehe Übergang
Transitionsdiagramm 1, 2, 5, 7-12, 29, 50, 51, 53, 101, 102, 105, 140
Transitionsfunktion: siehe Übergangsfunktion
Transitionsgraph: siehe Transitionsdiagramm
Transitionstabelle 1, 7-10, 76
Übergang
Übergangs-, Überführungsfunktion 1, 120, 136
Übergangstabelle: siehe Transitionstabelle
Überleitung 99-101
unproduktiv 113
Vereinigung 135, 141
Wort 1, 2, 8, 1-14, 24, 47, 60, 78, 82, 84-86, 88, 99, 103, 104, 108-111, 116, 121,
122, 124, 126, 128, 129, 131, 132, 134, 137, 141, 143
Wurzel 47
Zeichenkette 8, 12, 13, 24, 60, 79, 80, 85, 97, 134, 137, 141
Zustand 1, 2, 3, 6, 7, 14, 16, 19, 20, 22-25, 28-32, 34-36, 45, 47, 49, 74, 76, 98,
120, 127, 141
Zustandsgraph: siehe Transitionsdiagramm
Zustandsmaschine 1
Zustandsmenge 2
Zustandsübergang 2, 47, 120
Zustandsübergangsfunktion: siehe Übergangsfunktion
Zustandsübergangstabelle: siehe Transitionstabelle
Zyklus 25, 39, 41, 54, 58, 64, 74, 114, 115, 136, 137, 141

151
Quellen

Asteroth, A. & Baier, C. (2002): Theoretische Informatik – Eine Einführung in Be-


rechenbarkeit, Komplexität und formale Sprachen mit 101 Beispielen. München:
Pearson Education Deutschland GmbH

Brinkmann, M. (2012): Pädagogische Übung – Praxis und Theorie einer elemen-


taren Grundform. Paderborn: Verlag Ferdinand Schöningh GmbH & Co. KG

Broy, M. (2. Aufl. 1998): Informatik – Eine grundlegende Einführung – Band 2:


Systemstrukturen und Theoretische Informatik. Berlin und Heidelberg: Springer-
Verlag Berlin Heidelberg

Echterhoff, G. & Neumann, B. (4. Aufl. 2009): Projekt- und Zeitmanagement –


Strategien für ein erfolgreiches Studium. Stuttgart: Klett Lernen und Wissen
GmbH

Hänze, M. (2009): Denken und Gefühl – Wechselwirkung zwischen Emotion und


Kognition im Unterricht. Weinheim und Basel: Beltz Verlag

Hoffmann, D. W. (2009): Theoretische Informatik. München: Carl Hanser Verlag

Hopcroft, J. E. & Ullman, J. D. (1979): Introduction to Automata Theory, Langua-


ges and Computation. Reading (USA), Menlo Park (USA), London, Amsterdam,
Don Mills (USA), Sydney: Addison-Wesley Publishing Company

Hromkovic, J. (3. Aufl. 2007): Theoretische Informatik – Formale Sprachen, Bere-


chenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Krypto-
graphie. Wiesbaden: Teubner Verlag/GWV Fachverlage GmbH

Jenny, B. (2. Aufl. 2015): Prüfungsvorbereitung – aber richtig! Zürich: Hochschul-


verlag AG an der ETH Zürich

Mandl, H. & Friedrich, H. F. (2006): Lernstrategien: Zur Strukturierung des For-


schungsfeldes. In: Friedrich, H. F. & Mandl, H. (Hrsg.): „Handbuch Lernstrategi-
en“. Göttingen: Hogrefe Verlag GmbH & Co. KG

Öchsner, W., Estner, C. & Kühl, S. (2016): Prüfungen erfolgreich bestehen in den
Life Sciences – ein Leitfaden für Studierende. Stuttgart: Verlag Eugen Ulmer

Priese, L. & Erk, K. (3. Aufl. 2008): Theoretische Informatik – Eine umfassende

153
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2018
S. O. Knapp, Übungsbuch Automaten und formale Sprachen,
https://doi.org/10.1007/978-3-658-22696-1
Quellen

Einführung. Berlin, Heidelberg: Springer-Verlag

Streblow, L. & Schiefele, U. (2006): Lernstrategien im Studium. In: Friedrich, H. F.


& Mandl, H. (Hrsg.): „Handbuch Lernstrategien“. Göttingen: Hogrefe Verlag
GmbH & Co. KG

Woolfolk, H. & Schönpflug, U. (2008): Pädagogische Psychologie. München:


Pearson Studium

154