Table Of ContentGottfried Vossen
Kurt-Ulrich Witt
Grundlagen der Theoretischen
Informatik mit Anwendungen
Die Reihe "Lehrbuchu, orientiert an den Lehrinhalten des Studiums an Fach
hochschulen und UniversiUiten, bietet didaktisch gut ausgearbeitetes
Know-how nach dem State-of-the-Art des Faches rur Studenten und Dozen
ten gleichermaBen.
Unter anderem sind erschienen:
Neuronale Netze PASCAL
und Fuzzy-$ysteme von Doug Cooper und
von D. auck, F. Klawonn Michael Clancy
und R. Kruse
Programmleren mit JAVA
Interaktlve Systeme
von Andreas Solymosi
von Christian Stary
und lise Schmiedecke
Evolutlonire Algorlthmen
Baustelnbaslerte Software
von Volker issen
von Gunther Bauer
Stochastlk
Anwendungsorlentlerte
von Gerhard Hubner
Wlrtschaftslnformatlk
von Paul Alpar, Heinz Lothar Grob,
Neuronale Netze
Peter Weimann und Robert Winter
von Andreas Scherer
Software Engineering
Rechnerverblndungs
von Reiner Dumke
strukturen
von Bernhard Schurmann
Grundlagen der Theoretlschen
Informatlk mit Anwendungen
Rechnerarchltektur
von Gottfried Vossen und
von Paul Herrmann
Kurt-Ulrich Witt
Termersetzungssysteme
Grundlagen und Konzepte
von Reinhard BUndgen
der Informatlk
Konstruktlon von Hartmut Ernst
dlgltaler Systeme
Von Pascal zu Assembler
von Fritz Mayer-Lindenberg
von Peter Kammerer
Theorle der Medlzlnlschen
Vertellte Systeme
Informatlk
von GUnther Bengel
von Hans-Jurgen Seelos
SPSS fur Windows
von Wolf-Michael Kahler
Gottfried Vossen
Kurt-Ulrich Witt
Grundlagen der
Theoretischen Informatik
mit Anwendungen
Eine Einfiihrung fiir Studierende der Informatik,
Wirtschaftsinformatik und Technischen Informatik
2., iiberarbeitete und aktualisierte Auflage
~
vleweg
Die Deutsche Bibliothek - CIP-Einheitsaufnahme
Ein Titeldatensatz fiir diese Publikation ist bei
Der Deutschen Bibliothek erhliltlich.
Prof. Dr. Gottfried Vossen Prof. Dr. Kurt-Ulrich Witt
WestfaIische Wilhelms-Universitlit Munster Fachhochschule Bonn-Rbein-Sieg
Institut fiir Wirtschaftsinformatik Fachbereich Angewandte Informatik
Leonardo-Campus 3 Grantham-Allee 20
48149 Munster 53757 St. Augustin
[email protected] [email protected]
1. Auflage April 2000
2., uberarbeitete und aktualisierte Auflage April 2002
AIle Rechte vorbehalten
© Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden, 2002
Der Vieweg Verlag ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer.
www.vieweg.de
Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. lede
Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne
Zustimmung des Verlags unzuliissig und strafbar. Das gilt insbesondere fiir
Vervielfiiltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeiche
rung und Verarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in dies em 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 diirften.
Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de
Gedruckt auf siiurefreiem und chlorfrei gebleichtem Papier
ISBN 978-3-528-13147-0 ISBN 978-3-322-96901-9 (eBook)
DOI 10.1007-978-3-322-96901-9
Inhaltsverzeichnis
Vorwort zur 1. Auflage x
Vorwort zur 2. Auflage xii
1 Einfiihrung und Ubersicht 1
1.1 Ausgangspunkte fiir das Themengebiet . 1
1.2 Anwendungen theoretischer Erkenntnisse . 3
1.3 Stoffiibersicht und -abgrenzung . . . . 4
1.4 Externe Lernhilfen und Web-Seiten .. 5
1.5 Allgemeine Bibliographische Hinweise 6
I Endliche A utomaten und regulare Sprachen 9
2 Endliche Automaten 11
2.1 Deterministische endliche Automaten. . . . . . . 11
2.1.1 Beispiel: Der Schwimmbadautomat Aswim 12
2.1.2 Alphabete, Worter, Sprachen . . . . . . . 16
2.1.3 Zustande und Zustandsiibergange. . . . . 21
2.1.4 Deterministische endliche Automaten und regulare Sprachen 22
2.1.5 Vollstandige Automaten . . . . . . 27
2.1.6 Zusammenfassung . . . . . . . . . 28
2.2 Nichtdeterministische endliche Automaten 29
2.2.1 Definitionen............. 29
2.2.2 Aquivalenz von deterministischen und nichtdeterministischen
endlichen Automaten ...... 33
2.2.3 Zusammenfassung . . . . . . . . 38
2.3 Endliche Automaten mit c-Ubergangen 39
2.3.1 Definitionen............ 39
2.3.2 Aquivalenz von c-Automaten zu nichtdeterministischen endli-
chen Automaten . . . . . . . . 40
2.3.3 Zusammenfassung .. . . . . . 46
2.4 Verallgemeinerte endliche Automaten . 46
2.4.1 Definitionen........... 46
2.4.2 Aquivalenz von verallgemeinerten und endlichen Automaten . 47
2.5 Minimierung endlicher Automaten . . . . . . . . . . . . . . . . . .. 48
vi InhaIt
2.5.1 Isomorphie endlicher Automaten ........... . 48
2.5.2 Ein Verfahren zur Minimierung endlicher Automaten . 49
2.6 Anwendungen endlicher Automaten ......... . 52
2.6.1 Rechnersysteme und Systemprogrammierung 52
2.6.2 Teilworterkennung .............. . 53
2.6.3 Suchmaschinen im Internet . . . . . . . . . . 56
2.6.4 Objektorientierte Modellierung. Interaktionsdiagramme 58
2.7 Bibliographische Hinweise und Erganzungen . 60
2.8 Ubungen..................... 62
3 ReguHire Sprachen 65
3.1 Regulare AusdrUcke ........... 65
3.1.1 Definitionen und Eigenschaften . 66
3.1.2 Anwendung regularer AusdrUcke 72
3.1.3 Aquivalenz von endlichen Automaten und reguHiren Ausdrucken 74
3.1.4 Scanner-Generatoren. 81
3.1.5 Zusammenfassung .. . . . 82
3.2 Typ-3-Grammatiken . . . . . . . . 83
3.2.1 Rechtslineare Grammatiken 83
3.2.2 Linkslineare Grammatiken . 86
3.2.3 Aquivalenz rechtslinearer und linkslinearer Grammatiken 87
3.2.4 Verallgemeinerte Typ-3-Grammatiken . . . . . . . . . . . 89
3.2.5 Aquivalenz von endlichen Automaten und Typ-3-Grammatiken 90
3.2.6 Zusammenfassung .. . . . . . . . 92
3.3 Eigenschaften regularer Sprachen . . . . . . . . . . 92
3.3.1 Abschlusseigenschaften von REGr:, . . . . . 93
3.3.2 Das Pumping-Lemma fUr regulare Sprachen 102
3.3.3 Entscheidbarkeitsprobleme ...... 104
3.3.4 Grenzen endlicher Automaten . . . . . 106
3.4 Bibliographische Hinweise und Erganzungen . 108
3.5 Ubungen...... ............. . 109
4 Endliche Maschinen und Automatennetze 111
4.1 Endliche Maschinen .................. 111
4.1.1 Erweiterung des endlichen Automaten Aswim 112
4.1.2 Mealy-Maschinen................ 114
4.1.3 Ein formales Vorgehensmodell bei der ProblemlOsung 121
4.1.4 Gegenseitige Simulation von Mealy-Maschinen und endlichen
Automaten . . . . . . . . . . . . . . . . . . . . 123
4.1.5 Moore-Maschinen ................ . 125
4.1.6 Aquivalenz von Mealy- und Moore-Maschinen . 129
4.1.7 Grenzen endlicher Maschinen 133
4.2 Endliche Transducer . . . . . . . . . . . . . . . .. . 136
4.3 Beispiele fur Automatennetze ............ . 138
4.3.1 Synchrone Automaten: Zellulare Automaten . 138
4.3.2 Asynchrone Automaten: Petri-Netze ..... 143
4.3.3 Anwendungen und Varianten von Petri-Netzen 152
Inhalt vii
4.4 Anwendungen endlicher Maschinen . . . . . . . . 157
4.4.1 Software- und Systementwurf. Statecharts 159
4.4.2 Workflow-Management......... 161
4.4.3 Elektronischer Handel . . . . . . . . . 162
4.5 Bibliographische Hinweise und Erganzungen . 164
4.6 Ubungen..................... 164
II Kontextfreie Sprachen und Kellerautomaten 169
5 Kontextfreie Sprachen 171
5.1 Kontextfreie Grammatiken 171
5.1.1 Beispiele und Definitionen . 171
5.1.2 Normalformen ....... 174
5.2 Eigenschaften kontextfreier Sprachen . 180
5.2.1 Mehrdeutigkeit......... 180
5.2.2 Das Pumping-Lemma fur kontextfreie Sprachen . 183
5.2.3 Abschlusseigenschaften. 186
5.3 Ubungen........................... 188
6 Kellerautomaten 191
6.1 Nichtdeterministische Kellerautomaten . 191
6.1.1 Grundlegende Definitionen ... 191
6.1.2 Akzeptieren mit leerem Keller. . 197
6.2 Aquivalenz von kontextfreien Grammatiken und Kellerautomaten . 198
6.3 Deterministische Kellerautomaten. 200
6.4 Ubungen................................. 202
7 Anwendungen kontextfreier Sprachen 203
7.1 Ableitungs- und Syntaxbaume. . . 203
7.2 Compilerbau .............. 207
7.3 Syntax von Programmiersprachen. . . 216
7.3.1 Erweiterte Backus-Naur-Form . 216
7.3.2 Syntaxdiagramme 220
7.4 Regulare Definitionen 222
7.4.1 SADT....... 224
7.4.2 XML........ 226
7.5 Bibliographische Hinweise 229
7.6 Ubungen.......... 230
III Berechenbarkeit und Komplexitat 233
8 Typ-l- und Typ-O-Sprachen 235
8.1 Die Chomsky-Hierarchie ................. . 235
8.1.1 Typ-1-Sprachen (kontextsensitive Sprachen) .. . 236
8.1.2 Typ-O-Sprachen (rekursiv-aufzahlbare Sprachen) 238
8.1.3 Die Hierarchie .................. . 244
viii Inhalt
8.1.4 Das Wortproblem ..... . 246
8.2 Turingautomaten.......... 248
8.2.1 Definitionen und Beispiele . 248
8.2.2 Varianten von Turingautomaten 251
8.2.3 Aquivalenz von deterministischen und nichtdeterministischen
Turingautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . 253
8.2.4 Linear beschrankte Automaten . . . . . . . . . . . . . . . . . . 254
8.2.5 Aquivalenz zwischen linear beschrankten Automaten und Typ-
1-Grammatiken ........................... 254
8.2.6 Aquivalenz zwischen Turingautomaten und Typ-O-Grammatiken 256
8.3 Zusammenfassung .... 257
8.4 Bibliographische Hinweise 259
8.5 Ubungen.......... 259
9 Berechenbarkeit 261
9.1 Turing-Berechenbarkeit ......... . 261
9.1.1 Definition und Beispiele ..... . 262
9.1.2 Die Programmiersprache TURING. 266
9.2 Loop-, While- und Goto-Berechenbarkeit . 271
9.2.1 Loop-Berechenbarkeit . 271
9.2.2 While-Berechenbarkeit. 278
9.2.3 Goto-Berechenbarkeit . 279
9.2.4 Die Churchsche These . 284
9.2.5 Die Ackermannfunktion 285
9.3 Universelle Turingmaschinen . 289
9.3.1 Codierung von Turingmaschinen 290
9.3.2 Das utm-Theorem 293
9.3.3 Das smn-Theorem 294
9.4 Bibliographische Hinweise 296
9.5 Ubungen ......... . 296
10 Entscheidbarkeit 299
10.1 Existenz unentscheidbarer Probleme ..... . 299
10.2 Entscheidbare und semi-entscheidbare Mengen 300
10.3 Reduzierbarkeit von Mengen 304
10.4 Unentscheidbare Mengen .... . 305
10.4.1 Das Halteproblem ... . 305
10.4.2 Das Korrektheitsproblem 307
10.4.3 Das Aquivalenzproblem . 308
10.4.4 Der Satz von Rice . . . . 308
10.4.5 Das Postsche Korrespondenzproblem . 309
10.4.6 Anwendungen des Postschen Korrespondenzproblems . 311
10.5 Ubungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Inhalt ix
11 Komplexitat 317
11.1 Die O-Notation 317
11.2 Komplexitat von Algorithmen . 320
11.3 Wichtige Komplexitatsklassen . 322
11.4 Die Klassen P und NP 324
11.4.1 Die Klasse P ... . 324
11.4.2 Die Klasse N P .. . 324
11.4.3 Das P-NP -Problem 325
11.4.4 N P-Vollstandigkeit . 326
11.5 Konkrete N P-vollstandige Probleme 328
11.5.1 Das Erfiillbarkeitsproblem der Aussagenlogik 329
11.5.2 Weitere N P-vollstandige Probleme ..... . 332
11.6 Heuristiken zur Behandlung NP-vollstandiger Probleme 336
11.6.1 Eine Heuristik fiir TSP ......... . 337
11.6.2 Untere Schranken fiir das Approximieren 339
11.7 Zusammenfassung .............. . 340
11.8 Bibliographische Hinweise und Erganzungen . 341
11.9 Ubungen .................... . 342
Literaturverzeichnis 343
Index 349
Vorwort zur 1. A uftage
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 Threr 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 Thre Systemlosung
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 diesen 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: Speziell
hat der eine von uns diesen Stoff uber Jahre im Rahmen einer anwendungsorien
tierten Informatik-Ausbildung gelehrt sowie Fernstudienmaterialien zu dies em The
ma fUr die wissenschaftliche Informatik-Weiterbildung Berufstatiger entwickelt und
entsprechende Fernstudiengange betreut. Der andere von uns ist an der Universita.t
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 Bescha.ftigung 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 Komplexita.ts- und Berechenbarkeitstheorie) weniger als eine Theorie, von der
sich mehr oder weniger zufa.llig gezeigt hat, dass sie ganz brauchbar ist, sondern wir
verstehen sie als eine Art "Baukasten", in welchem sich fur eine Reihe von Fragestel-
Description:Dieses Buch gibt eine anwendungsorientierte Einf?hrung in Grundlagen der Theoretischen Informatik, und es vermittelt Kompetenzen zur L?sung von Problemen mit Hilfe formaler Konzepte. Es richtet sich an Studierende der Informatik aller Hochschularten, und es ist wegen seiner inhaltlichen und didaktis