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