Gottfried 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: