Table Of ContentGottfried Vossen
Kurt-Ulrich Witt
Grundlagen der Theoretischen
Informatik mit Anwendungen
Die Reihe "Lehrbuch", orientiert an den Lehrinhalten des Studiums an Fach
hochschulen und Universitiiten, bietet didaktisch gut ausgearbeitetes
Know-how nach dem State-of-the-Art des Paches fUr Studenten und Dozen
ten gleicherma8en.
Unter anderem sind erschienen:
Neuronale Netze Von Pascal zu As ..m bler
und Fuzzy-8yateme von Peter Kammerer
von D. Nauck, F. Klawonn
Theorle der Medlzlnlschen
und R. Kruse
Infonnatlk
Interaktlve Syateme von Hans-lurgen Seelos
von Christian Stary
SPSS fOr Windows
Evolutloni,. Alprtthmen von Wolf-Michael Kahler
von Volker Nissen
SMALLTALK
Neuronale Netze von Peter P. Bothner und
von Andreas Scherer Wolf-Michael Kahler
ObJektorientlertes PI ... PASCAL
and Play von Doug Cooper und
von Andreas Solymosi Michael Clancy
Rechnerverblndunp
Programmleren mit JAVA
strukturen
von Andreas Solymosi und
von Bernhard Schurmann
I1se Schmiedecke
Rechnerarch1tektur
Bauatelnbaslerte Software
von Paul Herrmann
von Gunther Bauer
Terme,.etzunpayateme
von Reinhard Bundgen Anwendunporlentlerte
WlrtKhaftalnformatlk
Konatruktlon
von Paul Alpar, Heinz Lothar Grob,
dlgltaler Systeme
Peter Weimann und Robert Winter
von Fritz Mayet-Lindenberg
Grundlagen und Konzepte
Grundla,en der Theoretlachen
der Informatlk
Informatlk mit Anwendungen
von Hartmut Ernst
von Gottfried Vossen und
Kurt-Ulrich Witt Software Englneerln,
von Reiner Dumke
Gottfried Vossen
Kurt-Ulrich Witt
Grundlagen der
Theoretischen Informatik
mit An\Nendungen
Eine Einfiihrung fiir Studierende der Informatik,
Wirtschaftsinformatik und Technischen Informatik
~
vleweg
Die Deutsche Bibliothek - CIP-Einheitsaufnahme
Ein Titeldatensatz fUr diese Publikation ist bei
der Deutschen Bibliothek erhaltlich.
Prof. Dr. Gottfried Vossen
Westfalische Wilhelms-Universitat Munster
Institut fUr Wirtschaftsinformatik
Steinfurter Str. 109
48149 Munster
[email protected]
Prof. Dr. Kurt-Ulrich Witt
Fachhochschule Rhein-Sieg
Fachbereich Angewandte Informatik
Grantham-Allee 20
53757 St. Augustin
kurt-ulrich. [email protected]
Aile Rechte vorbehalten
© Springer Fachmedien Wiesbaden 2000
UrspIiinglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweiglWieshaden, 2000
Der Verlag Vieweg ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer.
Das Werk einschlieBlich aller seiner reile ist urheberrechtlich geschutzt. Jede
Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist
ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere
fUr Vervielfiiltigungen, Ubersetzungen, Mikroverfilmungen und die Ein
speicherung und Verarbeitung in elektronischen Systemen.
http//www.vieweg.de
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 waren und daher
von jedermann benutzt werden durften.
Hochste inhaltliche und technische Qualitat unserer Produkte ist unser Zie!. Bei der Produktion
und Auslieferung unserer Bucher wollen wir die Umwelt schonen: Dieses Buch istauf saurefreiem
und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit
aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe
freisetzen.
Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de
Gedruckt auf saurefreiem Papier
ISBN 978-3-528-03147-3 ISBN 978-3-322-96838-8 (eBook)
DOI 10.1007/978-3-322-96838-8
Inhaltsverzeichnis
Vorwort x
1 Einfiihrung und Ubersicht 1
1.1 Ausgangspunkte fur das Themengebiet . 1
1.2 Anwendungen theoretischer Erkenntnisse . 3
1.3 StofIiibersicht und -abgrenzung . . . . 4
1.4 Externe Lernhilfen und Web-Seiten .. 5
1.5 Allgemeine Bibliographische Hinweise 6
I Endliche Automaten und reguUire Sprachen 7
2 Endliche Automaten 9
2.1 Deterministische endliche Automaten. . . . . . . 9
2.1.1 Beispiel: Der Schwimmbadautomat Aswim 10
2.1.2 Alphabete, W6rter, Sprachen . . . . . . . 14
2.1.3 Zustande und Zustandsubergange. . . . . 19
2.1.4 Deterministische endliche Automaten und regulare Sprachen 20
2.1.5 Vollstandige Automaten . . . . . . 25
2.1.6 Zusammenfassung .. . . . . . . . 26
2.2 Nichtdeterministische endliche Automaten 27
2.2.1 Definitionen............. 27
2.2.2 Aquivalenz von determinist is chen und nichtdeterministischen
endlichen Automaten ...... 31
2.2.3 Zusammenfassung .. . . . . . . 36
2.3 Endliche Automaten mit c:-Ubergangen 37
2.3.1 Definitionen............ 37
2.3.2 Aquivalenz von c:-Automaten zu nichtdeterministischen endli-
chen Automaten . . . . . . . . 38
2.3.3 Zusammenfassung . . . . . . . 44
2.4 Verallgemeinerte endliche Automaten . 44
2.4.1 Definitionen........... 44
2.4.2 Aquivalenz von verallgemeinerten und endlichen Automaten . 45
2.5 Minimierung endlicher Automaten . . . . . . . . . . . . . . . 46
2.5.1 Isomorphie endlicher Automaten . . . . . . . . . . . . 46
2.5.2 Ein Verfahren zur Minimierung endlicher Automaten . 47
2.6 Anwendungen endlicher Automaten. . . . . . . . . . . . . . . 50
vi Inhalt
2.6.1 Rechnersysteme und Systemprogrammierung 50
2.6.2 Teilworterkennung............... 51
2.6.3 Suchmaschinen im Internet . . . . . . . . . . 54
2.6.4 Objektorientierte Modellierung. Interaktionsdiagramme 56
2.7 Bibliographische Hinweise und Erganzungen . 58
2.8 Ubungen............................... 60
3 ReguUire Sprachen 63
3.1 ReguUire Ausdrucke ........... 63
3.1.1 Definitionen und Eigenschaften . 64
3.1.2 Anwendung reguUirer Ausdrucke 70
3.1.3 Aquivalenz von endlichen Automaten und regularen Ausdrucken 72
3.1.4 Scanner-Generatoren. 79
3.1.5 Zusammenfassung . . . . . 80
3.2 Typ-3-Grammatiken . . . . . . . . 81
3.2.1 Rechtslineare Grammatiken 81
3.2.2 Linkslineare Grammatiken . 84
3.2.3 Aquivalenz rechtslinearer und linkslinearer Grammatiken 85
3.2.4 Verallgemeinerte Typ-3-Grammatiken . . . . . . . . . . . 87
3.2.5 Aquivalenz von endlichen Automaten und Typ-3-Grammatiken 88
3.2.6 Zusammenfassung .. . . . . . . . 90
3.3 Eigenschaften reguUirer Sprachen . . . . . . . . . . . 91
3.3.1 Abschlusseigenschaften von REGE . . . . . . 91
3.3.2 Das Pumping-Lemma fUr regulare Sprachen . 101
3.3.3 Entscheidbarkeitsprobleme ...... 102
3.3.4 Grenzen endlicher Automaten. . . . . 105
3.4 Bibliographische Hinweise und Erganzungen . 106
3.5 Ubungen.................... 107
4 Endliche Maschinen und Automatennetze 109
4.1 Endliche Maschinen .................. 109
4.1.1 Erweiterung des endlichen Automaten Aswim 110
4.1.2 Mealy-Maschinen................ 112
4.1.3 Ein formales Vorgehensmodell bei der Problemlosung 119
4.1.4 Gegenseitige Simulation von Mealy-Maschinen und endlichen
Automaten . . . . . . . . . . . . . . . . . . . . 121
4.1.5 Moore-Maschinen ................ . 123
4.1.6 Aquivalenz von Mealy- und Moore-Maschinen . 127
4.1.7 Grenzen endlicher Maschinen 131
4.2 Endliche Transducer . . . . . . . . . . . . . . . . . . 134
4.3 Beispiele fur Automatennetze . . . . . . . . . . . . . 136
4.3.1 Synchrone Automaten: Zellulare Automaten . 136
4.3.2 Asynchrone Automaten: Petri-Netze . . . . . 141
4.3.3 Anwendungen und Varianten von Petri-Netzen 150
4.4 Anwendungen endlicher Maschinen . . . . . . . . 155
4.4.1 Software- und Systementwurf. Statecharts 157
4.4.2 Workflow-Management .......... . 159
InhaIt vii
4.4.3 Elektronischer Handel . . . . . . . . . 160
4.5 Bibliographische Hinweise und Erganzungen . 162
4.6 Ubungen .................... . 162
II Kontextfreie Sprachen und Kellerautomaten 167
5 Kontextfreie Sprachen 169
5.1 Kontextfreie Grammatiken 169
5.1.1 Beispiele und Definitionen . 169
5.1.2 Normalformen ....... 172
5.2 Eigenschaften kontextfreier Sprachen . 178
5.2.1 Mehrdeutigkeit......... 178
5.2.2 Das Pumping-Lemma fUr kontextfreie Sprachen . 181
5.2.3 Abschlusseigenschaften. 184
5.3 Ubungen........................... 186
6 Kellerautomaten 189
6.1 Nichtdeterministische Kellerautomaten . 189
6.1.1 Grundlegende Definitionen ... 189
6.1.2 Akzeptieren mit leerem Keller. . 195
6.2 A.quivalenz von kontextfreien Grammatiken und Kellerautomaten . 196
6.3 Deterministische Kellerautomaten . 198
6.4 Ubungen................................. 200
7 Anwendungen kontextfreier Sprachen 201
7.1 Ableitungs- und Syntaxbaume. . . 201
7.2 Compilerbau .............. 205
7.3 Syntax von Programmiersprachen. . . 214
7.3.1 Erweiterte Backus-Naur-Form . 214
7.3.2 Syntaxdiagramme 218
7.4 Regulare Definitionen 220
7.4.1 SADT....... 222
7.4.2 XML........ 224
7.5 Bibliographische Hinweise 227
7.6 Ubungen.......... 227
III Berechenbarkeit und Komplexitat 229
8 Typ-1- und Typ-O-Sprachen 231
8.1 Die Chomsky-Hierarchie ................. . 231
8.1.1 Typ-1-Sprachen (kontextsensitive Sprachen) .. . 232
8.1.2 Typ-O-Sprachen (rekursiv-aufzahlbare Sprachen) 234
8.1.3 Die Hierarchie .. 240
8.1.4 Das Wortproblem ..... . 242
8.2 Turingautomaten ......... . 244
8.2.1 Definitionen und Beispiele . 244
viii Inhalt
8.2.2 Varianten von Turingautomaten ................. 247
8.2.3 Aquivalenz von deterministischen und nichtdeterministischen
Turingautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . 249
8.2.4 Linear beschrankte Automaten . . . . . . . . . . . . . . . . . . 250
8.2.5 Aquivalenz zwischen linear beschrankten Automaten und Typ-
1-Grammatiken ........................... 250
8.2.6 Aquivalenz zwischen Turingautomaten und Typ-O-Grammatiken 252
8.3 Zusammenfassung .... 253
8.4 Bibliographische Hinweise 255
8.5 Ubungen.......... 255
9 Berechenbarkeit 257
9.1 Turing-Berechenbarkeit ......... . 257
9.l.1 Definition und Beispiele ..... . 258
9.l.2 Die Programmiersprache TURING. 262
9.2 Loop-, While- und Goto-Berechenbarkeit . 267
9.2.1 Loop-Berechenbarkeit . 267
9.2.2 While-Berechenbarkeit. 274
9.2.3 Goto-Berechenbarkeit . 275
9.2.4 Die Churchsche These . 280
9.2.5 Die Ackermannfunktion 281
9.3 Universelle Turingmaschinen . 285
9.3.1 Codierung von Turingmaschinen 286
9.3.2 Das utm-Theorem 289
9.3.3 Das smn-Theorem 290
9.4 Bibliographische Hinweise 292
9.5 Ubungen.......... 292
10 Entscheidbarkeit 295
10.1 Existenz unentscheidbarer Probleme 295
10.2 Entscheidbare und semi-entscheidbare Mengen 296
10.3 Reduzierbarkeit von Mengen 300
10.4 Unentscheidbare Mengen. . . . . 301
10.4.1 Das Halteproblem .... 301
10.4.2 Das Korrektheitsproblem 303
10.4.3 Das Aquivalenzproblem . 304
10.4.4 Der Satz von Rice .. . . 304
10.4.5 Das Postsche Korrespondenzproblem . 305
10.4.6 Anwendungen des Postschen Korrespondenzproblems. 307
10.5 Ubungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
11 Komplexitat 313
1l.1 Die O-Notation 313
1l.2 Komplexitat von Algorithmen . 316
1l.3 Wichtige Komplexitatsklassen . 318
','
11.4 Die Klassen P und N P 320
11.4.1 Die Klasse P . 320
11.4.2 Die Klasse N P . 320
Inhalt ix
11.4.3 Das P-NP -Problem .... . 321
11.4.4 N P-Vollstandigkeit ..... . 322
11.5 Konkrete N P-vollsUindige Probleme 324
11.5.1 Das Erfullbarkeitsproblem der Aussagenlogik 325
11.5.2 Weitere N P-vollstandige Probleme ..... . 328
11.6 Heuristiken zur Behandlung NP-vollstandiger Probleme 332
11.6.1 Eine Heuristik fur TSP ......... . 333
11.6.2 Untere Schranken fur das Approximieren 335
11.7 Zusammenfassung .............. . 336
11.8 Bibliographische Hinweise und Erganzungen . 337
11.9 Ubungen .................... . 338
Literaturverzeichnis 339
Index 345
Vorwort
Wie gehen Sie vor, wenn Sie die Aufgabe bekommen, einen Fahrkartenautomaten
zu realisieren, den Verbindungsaufbau zwischen vernetzten Rechnern zu spezifizie
ren, ein Bestellformular fur eine Electronic Commerce-Anwendung festzulegen oder
Geschaftsablaufe in Ihrer Unternehmung zu beschreiben? Setzen Sie sich gleich an
einen Rechner und implementieren eine Software mit einem (mehr oder weniger ge
eigneten) Werkzeug (z.B. C++, Java, HTML) mit der Folge, dass Ihre System16sung
vom Werkzeug abhangt und damit bei Versionen-, Release- oder Systemwechseln
moglicherweise unbrauchbar wird, oder sind Sie an zeitinvarianten Konzepten zum
Entwurf, zur Realisierung und zur Anwendung von Systemen interessiert, insbeson
dere an Anwendungssystem-unabhangigen und zeitinvarianten Methoden, Techniken
und Werkzeugen fUr die Entwicklung von Systemen? Dann bietet Ihnen dieses Buch
einen reichhaltigen Fundus. Es stellt namlich nicht nur Grundelemente der Theore
tischen Informatik vor, sondern es motiviert die Beschaftigung mit dies en Grundele
menten durch praktische Problemstellungen und zeigt auf, wie diese mit Hilfsmitteln
der Theorie gelost werden konnen.
Dieser Ansatz unterscheidet das vorliegende Buch wesentlich von anderen Einfuh
rungen in die Grundlagen der Theoretischen Informatik, und wir Autoren, die sich
eigentlich mit anderen Themenstellungen der Informatik befassen, glauben, in die
ses Buch unsere Erfahrung im Lehren dieses Stoffes eingebracht zu haben: SpezieU
hat der eine von uns diesen Stoff uber Jahre im Rahmen einer anwendungsorien
tierten Informatik-Ausbildung gelehrt sowie Fernstudienmaterialien zu diesem The
rna fur die wissenschaftliche Informatik-Weiterbildung Berufstatiger entwickelt und
entsprechende Fernstudiengange betreut. Der andere von uns ist an der Universitat
Munster an der Informatik-Ausbildung von Studierenden der Wirtschaftsinformatik
beteiligt, die in der Regel wenig an theoretischen Grundlagen interessiert sind und
die hauptsachlich die Anwendbarkeit abstrakter formaler Konzepte interessiert. Die
Erfahrungen, die bei der Motivation dieser Klientel fur die Beschaftigung mit diesem
Stoff und fUr das Aufzeigen seiner praktischen Anwendbarkeit entstanden sind, sind
in die Darstellungen dieses Buches eingeflossen.
Wir versuchen hier also nicht, einen aktuellen Abriss der neuesten Entwicklun
gen auf dem Gebiet der Theoretischen Informatik zu geben, sondern wir versuchen,
ihren Gebrauch und damit die von ihr hevorgebrachten Entwicklungen angemessen
durch konkrete Anwendungen zu motivieren und auch an diesen aufzuzeigen. Wir
verstehen Automatentheorie (zusammen mit der Theorie der formalen Sprachen und
der Komplexitats- und Berechenbarkeitstheorie) weniger als eine Theorie, von der
sich mehr oder weniger zufallig gezeigt hat, dass sie ganz brauchbar ist, sondern wir
verstehen sie als eine Art "Baukasten", in welchem sich fur eine Reihe von Fragestel-