Leitfäden der Informatik Juraj Hromkovicˇ
Theoretische Informatik
Leitfäden der Informatik Herausgegeben von Prof. Dr. Bernd Becker Prof. Dr. Friedemann Mattern Prof. Dr. Heinrich Müller Prof. Dr. Wilhelm Schäfer Prof. Dr. Dorothea Wagner Prof. Dr. Ingo Wegener
Die Leitfäden der Informatik behandeln Themen aus der Theoretischen, Praktischen und Technischen Informatik entsprechend dem aktuellen Stand der Wissenschaft in einer systematischen und fundierten Darstellung des jeweiligen Gebietes Methoden und Ergebnisse der Informatik, ausgearbeitet und dargestellt aus der Sicht der Anwendung in einer für Anwender verständlichen, exakten und präzisen Form. Die Bände der Reihe wenden sich zum einen als Grundlage und Ergänzung zu Vorlesungen der Informatik an Studierende und Lehrende in Informatik-Studiengängen an Hochschulen, zum anderen an „Praktiker“, die sich einen Überblick über die Anwendungen der Informatik (-Methoden) verschaffen wollen; sie dienen aber auch in Wirtschaft, Industrie und Verwaltung tätigen Informatikern und Informatikerinnen zur Fortbildung in praxisrelevanten Fragestellungen ihres Faches.
Juraj Hromkovicˇ
Theoretische Informatik Formale Sprachen, Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Kryptographie 3., überarbeitete und erweiterte Auflage
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Prof. Dr. Juraj Hromkovicˇ Geboren 1958 in Bratislava, Slowakei. Studium der Mathematischen Informatik an der Komenský Universität, Bratislava. Promotion (1986) und Habilitation (1989) in Informatik an der Komenský Universität. 1990 – 1994 Gastprofessor an der Universität Paderborn, 1994 – 1997 Professor für Parallelität an der CAU Kiel. 1997 – 2003 Professor für Algorithmen und Komplexität an der RWTH Aachen. Seit 2001 Mitglied der Slowakischen Gesellschaft. Seit Januar 2004 Professor für Informatik an der ETH Zürich. Das Buch ist in der ersten Auflage unter dem Titel „Algorithmische Konzepte der Informatik“ erschienen.
1. Auflage 2001 2. Auflage 2004 3., überarbeitete und erweiterte Auflage Juni 2007
Alle Rechte vorbehalten © B.G. Teubner Verlag / GWV Fachverlage GmbH, Wiesbaden 2007 Lektorat: Ulrich Sandten / Kerstin Hoffmann
Der B.G. Teubner Verlag ist ein Unternehmen von Springer Science+Business Media. www.teubner.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Ü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. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Druck und buchbinderische Verarbeitung: Strauss Offsetdruck, Mörlenbach Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Printed in Germany
ISBN 978-3-8351-0043-5
Mit einer Weisheit, die keine Trgne kennt, mit einer Philosophie, die nicht zu lachen versteht,
J
(k. r"
und einer Gr6t3e, die sich nicht vor Kindern verneigt, will ich nichts zu tun haben. Khalil Gibran
Meinen Eltern
~
"
~
~--
Vorwort
Dieses Buch ist eine einfache Einfiihrung in algorithmische Grundkonzepte der Theoretischen Informatik. Die Theoretische Informatik ist weltweit ein fester Bestandteil des Informatikstudiums. Im Unterschied zu den ingenieursmgfiig geprggten Gebieten der Praktischen und der Technischen Informatik hebt die Theoretische Informatik mehr die naturwissenschaftlichen und mathematischen Aspekte der Informatik hervor. Gerade die mathematische Prggung ist oft ein Grund daffir, dass die Theoretische Informatik fiir zu schwer gehalten wird und dadurch ein nicht gerade beliebter Teil der Ausbildung ist. Der Schwierigkeitsgrad der Theoretischen Informatik ist aber meiner Meinung nach nicht der einzige Grund ihrer Unbeliebtheit, insbesondere wenn die Studierenden in ihrer Beurteilung ausserdem noch das Pr~dikat ,,schwach motiviert" oder sogar ,,langweilig" verwenden. Das k6nnte auch damit zusammenh~ngen, dass sich die Einfiihrung in die Theoretische Informatik im Grundstudium an vielen deutschen Hochschulen auf den klassischen Stoff der Berechenbarkeit, der Theorie der formalen Sprachen und der abstrakten Komplexit~tstheorie beschr~nkt. Dass man dabei iiberwiegend nur die Konzepte und Ansichten, die vor dem Jahr 1970 entstanden sind, vermittelt, diirfte alleine nicht schlimm sein. Es fiihrt aber oft dazu, dass man mit einer einzigen Motivation zu viele Vorlesungen der Art Definition- S a t z - Beweis absolvieren muff und so halbiert sich die Wichtigkeit dieser Motivation in den Augen der Studierenden mit jeder weiteren Vorlesung, die ankniipft, ohne eine eigene Motivation zu bringen. Um Abhilfe yon diesem Zustand zu schaffen, muff man sich die Entwicklung der Theoretischen Informatik in den letzten 30 Jahren ansehen. Es geht dabei nicht nur datum, dass man in dieser Zeit tiefere Resultate und viele neue Konzepte entwickelt hat, sondern insbesondere darum, dass die Theorie immer mehr auf die Bediirfnisse der Praxis eingegangen ist. Dadurch sind die Anwendungen
6
Vorwort
der Theorie direkter geworden und die Anschaulichkeit der Motivationen ist stark gestiegen. Die Theoretische Informatik liefert nicht-triviales Know-How, das in vielen FS~llen faszinierende und iiberraschende Anwendungen erm6glicht. Es ist nicht m6glich, in einem Einfiihrungskurs alle derartigen spektakulS~ren Erkenntnisse zu prS~sentieren, weil einige ein zu tiefes VerstS~ndnis der Materie fordern, als dass sie im Vordiplom als Ziel gestellt werden k6nnen. Aber es gibt geniigend Ideen, die in einer Einfiihrung darstellbar sind, und die wesentlich die Denkweise eines Informatikers prS~gen k6nnen und sollten. Dieses Buch ist ein Versuch des Autors, zumindest teilweise seine Vision einer modernen Einfiihrung in die algorithmischen Gebiete der Theoretischen Informatik zu realisieren. Dabei folgt er der Richtung, die in der englischsprachigen Literatur Mike Sipser und in der deutschsprachigen Literatur Ingo Wegener eingeschlagen haben, und die im Wesentlichen auf den oben prgsentierten Gedanken basiert. Die klassischen Teile der Berechenbarkeit und KomplexitS~tstheorie sind hier reduziert und dafiir einige wichtige Konzepte aus dem Bereich der Algorithmik, Randomisierung, Kommunikation und Kryptographie eingesetzt. Die Strategien dieses Buches heifien ,,Einfachheit" und ,,Weniger ist manchmal mehr". Fiir uns ist die PrS~gung des intuitiven, informellen VerstS~ndnisses der Materie genau so wichtig wie prS~zise Formalisierung, detaillierte Beweisfiihrungen und Begriindungen. Didaktisch geht das Buch immer langsam yore Einfachen zum Komplizierten vor. Wir versuchen, die Anzahl der Begriffe und Definitionen zu minimieren, auch wenn wir dadurch auf die PrS~sentation einiger wichtiger Konzepte und Resultate verzichten miissen. Die Idee dahinter ist, dass es wichtiger ist, die unterschiedlichen konzeptuellen Denkweisen und Methoden zu prS~sentieren, als ein ,,vollstS~ndiges" Bild einer abgeschlossenen mathematischen Theorie zu zeichnen. Da die Argumentation in diesem Buch nicht nur auf der formalen mathematischen Ebene gefiihrt wird, sondern insbesondere auf das intuitive Verst~ndnis der Materie baut, ist das Buch auch als Lehrmaterial fiir Fachhochschulen und Studierende, die Informatik nicht als Hauptfach studieren, gut geeignet. Hilfreiche Unterstiitzung Anderer hat zu der Entstehung dieses Lehrbuches wesentlich beigetragen. Besonderer Dank gilt Dirk Bongartz, Hans-Joachim B6ckenhauer und Alexander Ferrein fiir sorgfSJtiges Korrekturlesen und zahlreiche VerbesserungsvorschlS~ge. Herzlicher Dank geht an Dietmar Berwanger, Volker Claus, Georg Schnitger, Erich Valkema und Peter Widmayer fiir Bemerkungen und anregende Diskussionen. Alexander Ferrein und Manuel Wahle danke ich fiir die sorgfS~ltige Einbettung des Manuskripts in I_4TEX. Mein tiefster Dank gilt Frau Stefanie Laux vom Teubner Verlag fiir die hervorragende und konstruktive Zusammenarbeit. Herzlichst danke ich Ingrid Z~me~nfkov~
Vorwort
7
fiir die Illustrationen, den einzigen vollkommenen Teil des Buches, und Tanja fiir ihre Zitatensammlung. Aachen, 2001.
Juraj Hromkovi~
Die K6pfe von Menschen soll man nicht _ mit Fakten, Namen und Formeln fiillen. Um so etwas zu lernen, braucht man nicht in die Schule zu gehen. Der Zweck der Erziehung ist, dem Menschen das Denken beizubringen, und so eine Ausbildung, die keine Lehrbiicher ersetzen k6nnen. A. Einstein
~._Jtttt tt
Vorwort zur zweiten Auflage
Es freut mich sehr, dass diese alternative Einfiihrung in die Theoretische Informatik so gut yon Kollegen und Studenten angenommen wurde. Ich m6chte hier zun~tchst allen denen herzlich danken, die Zeit gefunden haben, ihre Meinungen fiber das Buch sowie einige Verbesserungswiinsche und Erweiterungsvorschl~ge zu 5~ufiern. Ich habe dieses Buch mit Sorgfalt geschrieben, weil ich wusste, dass der Inhalt des Buches den Rahmen der traditionellen Vorstellung der Grundlagen der Theoretischen Informatik sprengt. Deshalb habe ich befiirchtet, dass es viele Kollegen als einen Verstofi gegen iiberwiegend akzeptierte Darstellung e n d e r Informatikgrundlagen im Grundstudium bewerten wiirden. Auger den vielen positiven Kommentaren, die meine Sorgen schrumpfen liefien, fand ich am Erfreulichsten (als eine echte BestS~tigung des Buchkonzeptes), dass die Leser sich/iberwiegend gerade die Erweiterung der nicht-klassischen Gebiete wie Randomisierung und Kommunikation gewiinscht haben. Ich nahm diese Herausforderung mit Freude an und habe versucht, gleich die erste M6glichkeit zu nutzen, fiir die zweite Auflage das Buch sorgfS~ltig zu iiberarbeiten und zu erweitern. Das Kapitel Randomisierung wurde um einen neuen Abschnitt erggnzt, der die Methode der Fingerabdriicke zum Entwurf yon zufallsgesteuerten Algorithmen als einen wichtigen Spezialfall der Anwendung der Methode der hS~ufigen Zeugen prS~sentiert. Die Methode der Fingerabdr/icke wurde an dem randomisierten Aquivalenztest fiir zwei Polynome illustriert. Im Kapitel Kommunikation und Kryptographie kamen zwei neue Abschnitte dazu. Der Abschnitt Digitale Unterschriften zeigt eine sehr wichtige kommerzielle Anwendung des vorgestellten Konzeptes der Public-Key-Kryptosysteme. Dabei machen wir darauf aufmerksam, dass im Rahmen der klassischen Kryp-
Vorwort zur zweiten Auflage tographie keine M6glichkeit besteht, digitale UnterschriRen ohne hohes FS~Ischungsrisiko zu leisten. Damit ist das kryptographische Konzept der 6ffentlichen Schliissel eine Basis, ohne die man sich heute den sich dynamisch entwickelnden Bereich des E-Commerce gar nicht vorstellen kann. Der zweite neue Abschnitt zeigt einen Entwurf eines effizienten Telefonnetzes. Die Zielsetzung ist dabei, die Problemstellungen und geeignete Methoden zur L6sung der gestellten Probleme im Bereich der Kommunikation in Netzen am Beispiel eines eleganten Netzentwurfes zu illustrieren. Einige Kollegen haben sich gewiinscht, in diesem Lehrmaterial auch den Beweis des Satzes von Cook zu lesen. Obwohl es sich um eines der grundlegensten Resultate der Informatik handelt, vertrete ich weiter die Meinung, dass dieses Resultat einen zu schweren Beweis fiir das Grundstudium besitzt. Trotzdem habe ich reich entschieden, den Beweis einzufiigen, um dem besonders interessierten Studierenden die M6glichkeit zu geben, diese grunds~Rzlich wichtige Beweistechnik kennenzulernen. Da ich diesen Beweis nun einbetten wollte, habe ich versucht, durch eine langsame Entwicklung der Beweisidee den Schwierigkeitsgrad des Beweises zu abzumildern. Deswegen entstanden drei Seiten fiber die Beschreibung yon Texten und Spielkonfigurationen durch Boole'sche Formeln, die als eine Vorbereitung fiir den Beweis des Satzes yon Cook diehen sollen. Nach dieser Einfiihrung konzentriert sich der Beweis nur auf eines, und zwar wie man die Semantik der Berechnungen durch die Formeln effizient ausdr/icken kann. Auger den drei oben beschriebenen Erweiterungen wurden an vielen Stellen Korrekturen und Verbesserungen eingearbeitet, um die Anschaulichkeit und die Verst~ndlichkeit der Beweise zu erh6hen. Nennenswert sind die neuen graphischen Darstellungen zu den Beweisen des Satzes von Rice und der S~ttze fiber die Anwendung der Kolmogorov-KomplexitS~t in der Theorie der Berechenbarkeit. Eine umfangreiche Liste yon 0bungsaufgaben mit ausgearbeiteten Musterl6sungen findet man unter http://www-i 1. infor mat ik. rwt h-aachen, de /Vero effent lichungen / AK dI/. Aachen, Oktober 2003.
Juraj Hromkovi~
Wenn du nicht auf das Unerwartete wartest, findest du nichts Edles, nichts, was schwer zu finden ist. H e r a k ~ IL
"
Vorwort zur dritten Auflage
Gleich am Anfang m6chte ich reich bei den zahlreichen Kollegen bedanken, die sich Zeit fiir das Lesen und Kommentieren der zweiten Auflage genommen haben. Dabei war der am hSoufigsten geS~ut3erte Wunsch, zusS~tzlich das Thema Grammatiken zu behandeln. Obwohl dieses Thema bereits sehr gut in mehreren Lehrbiichern behandelt wurde, 1 enthglt die dritte Auflage nun ein neues Kapitel fiber Grammatiken und die Chomsky-Hierarchie. Somit bietet dieses Lehrbuch den Dozenten ein fast vollstgndiges Angebot an klassischen Themen, das durch einige neuere Konzepte bereichert wird. Auf diese Weise ist dieses Material sowohl fiir die Kollegen geeignet, die sich auf die klassischen Grundlagen der Informatik konzentrieren, als auch fiir diejenigen, die in der Einfiihrungsveranstaltung fiber ,,Theoretische Informatik" nicht-klassische Gebiete vorstellen wollen. Das neue Kapitel stellt Grammatiken als Mechanismen zur Erzeugung von W6rtern vor, und somit als eine Alternative zur endlichen Darstellung von Sprachen. Die Schwerpunkte liegen auf dem Studium von kontextfreien Sprachen, die von zentralem Interesse fiir den Compilerbau sind, und auf der Aquivalenz zwischen Grammatiken und Turingmaschinen. Das Kapitel fiber Grammatiken steht ganz am Ende des Buches, aber dies bedeutet nicht, dass man dieses Thema am Ende der Veranstaltung prS~sentieren mtisste. Die Teile fiber regul~re und kontextfreie Grammatiken k6nnen direkt im Anschluss an Kapitel 3 fiber endliche Automaten behandelt werden. Nach Kapitel 4 fiber Turingmaschinen hat man schon alle notwendigen Vorkenntnisse, um das ganze neue Kapitel zu meistern. Wir sind der Meinung, dass es ftir eine erfolgreiche Vorbereitung auf eine Priifung notwendig ist, beliebige Teile des Lerntextes inhaltlich korrekt widergeben zu k6nnen und leichte Abwandlungen der im Buch vorkommenden 1Dies war auch der Hauptgrund, warum wir auf die Darstellung dieser Thematik in den ersten zwei Auflagen verzichtet haben.
Vorwort zur dritten Auflage
11
Aufgaben 16sen zu k6nnen. Um die wichtigsten Grundkenntnisse hervorzuheben und dem Studierenden eine Selbstkontrolle zu erm6glichen, haben wir die Zusammenfassungen am Ende der Kapitel um eine Liste yon Kontrollfragen erweitert. Wir empfehlen allen Dozenten zusS~tzlich, die genauen Anforderungen fiir das Studium gem~if3 ihrer eigene Zielsetzungen schriRlich festzuhalten. Auger der oben beschriebenen Erweiterung wurden an einigen Stellen Korrekturen und verbesserte ErklSxungen eingearbeitet. In diesem Zusammenhang m6chte ich reich bei Christoph Zimmerli und Laurent Zimmerli fiir ausfiihrliches Korrekturlesen der zweiten Auflage herzlich bedanken. Bester Dank geht an Hans-Joachim B6ckenhauer und Julian Tschannen fiir sorgf~tltige Korrekturen des neuen Kapitels und an Martin Jaggi und Philipp Zumstein fiir einige VerbesserungsvorschlS~ge. Bei Nicolas Born und Manuel Wahle bedanke ich reich fiir ihre Unterstiitzung bei der [4TEX-Bearbeitung der dritten Auflage. Besonderer Dank geht an Ulrich Sandten vom Teubner Verlag fiir eine sehr gute und konstruktive Zusammenarbeit, in der keine Tabus fiir neue Wege gegolten haben. Mein herzlichster Dank geht an Karl Frey. Seine didaktischen Konzepte waren fiir reich die interessanteste fachdidaktische Auseinandersetzung und die gr6f3te didaktische Bereicherung in den letzten drei Jahren. Ziirich, im Juni 2007
Juraj Hromkovi~
Inhalt
Einleitung
17
1.1
I n f o r m a t i k als w i s s e n s c h a R l i c h e D i s z i p l i n . . . . . . . . . . . .
17
1.2
Eine faszinierende Theorie . . . . . . . . . . . . . . . . . . . .
22
1.3
Fiir die S t u d i e r e n d e n . . . . . . . . . . . . . . . . . . . . . . .
26
1.4
A u f b a u des L e h r m a t e r i a l s
29
. . . . . . . . . . . . . . . . . . . .
Alphabete, WSrter, Sprachen und Aufgaben
32
2.1
Zielsetzung
32
2.2
Alphabete, WSrter und Sprachen
2.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
Algorithmische Probleme
. . . . . . . . . . . . . . . . . . . .
45
2.4
K o l m o g o r o v - K o m p l e x i t 5~t
. . . . . . . . . . . . . . . . . . . .
56
2.5
Zusammenfassung und Ausblick . . . . . . . . . . . . . . . . .
71
Endliche Automaten
75
3.1
Zielsetzung
75
3.2
Die D a r s t e l l u n g e n d e r e n d l i c h e n A u t o m a t e n
3.3
Simulationen
3.4
Beweise der Nichtexistenz
3.5
Nichtdeterminismus
3.6
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
. . . . . . . . . . . . . . . . . . . . . . . . . . .
93
. . . . . . . . . . . . . . . . . . . .
99
. . . . . . . . . . . . . . . . . . . . . . .
108
. . . . . . . . . . . . . . . . . . . . . . . .
121
Turingmaschinen
125
4.1
Zielsetzung
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
4.2
Das Modell der T u r i n g m a s c h i n e . . . . . . . . . . . . . . . . .
126
14
Inhalt
4.3
Mehrband-Turingmaschinen
und Church'sche These ......
4.4
Nichtdeterministische Turingmaschinen
4.5
Kodierung von Turingmaschinen
4.6
Zusammenfassung
137
. . . . . . . . . . . . .
148
. . . . . . . . . . . . . . . .
154
. . . . . . . . . . . . . . . . . . . . . . . .
157
B erechenbarkeit
161
5.1
Zielsetzung
161
5.2
Die M e t h o d e d e r D i a g o n a l i s i e r u n g
5.3
Die M e t h o d e d e r R e d u k t i o n
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
162
. . . . . . . . . . . . . . . . . . .
172
5.4
Satz von Rice . . . . . . . . . . . . . . . . . . . . . . . . . . .
185
5.5
Das Post'sche Korrespondenzproblem
190
5.6
Die M e t h o d e d e r K o l m o g o r o v - K o m p l e x i t S ~ t . . . . . . . . . . .
199
5.7
Zusammenfassung
203
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
Komplexit~itstheorie
206
6.1
Zielsetzung
206
6.2
KomplexitS~tsmaf3e
6.3
Komplexits
. . . . . . . . . . . . .
215
6.4
N i c h t d e t e r m i n i s t i s c h e KomplexitS~tsmat3e . . . . . . . . . . . .
224
6.5
Die K l a s s e N P u n d B e w e i s v e r i f i k a t i o n
231
6.6
NP-VollstS~ndigkeit
. . . . . . . . . . . . . . . . . . . . . . . .
236
6.7
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . .
259
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u n d die K l a s s e P
. . . . . . . . . . . . .
208
Algorithmik fiir schwere Probleme
262
7.1
Zielsetzung
262
7.2
Pseudopolynomielle Algorithmen
7.3
Approximationsalgorithmen
7.4
Lokale Suche
7.5
Simulated Annealing
7.6
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
264
. . . . . . . . . . . . . . . . . . .
271
. . . . . . . . . . . . . . . . . . . . . . . . . . .
279
. . . . . . . . . . . . . . . . . . . . . . .
285
. . . . . . . . . . . . . . . . . . . . . . . .
289
15
Inhalt
8
Randomisierung
292
8.1
Zielsetzung
292
8.2
Elementare Wahrscheinlichkeitstheorie
8.3
Ein r a n d o m i s i e r t e s K o m m u n i k a t i o n s p r o t o k o l l
8.4
Die M e t h o d e der h~ufigen Z e u g e n u n d der r a n d o m i s i e r t e P r i m zahltest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
302
Die M e t h o d e der F i n g e r a b d r i i c k e u n d die A q u i v a l e n z von zwei Polynomen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
308
8.6
Zusammenfassung
315
9
Kommunikation und Kryptographie
318
9.1
Zielsetzung
318
9.2
Klassische K r y p t o s y s t e m e
9.3
Public-Key-Kryptosysteme und RSA
. . . . . . . . . . . . . .
321
9.4
Digitale Unterschriften . . . . . . . . . . . . . . . . . . . . . .
327
9.5
Interaktive Beweissysteme und Zero-Knowledge-Beweise
331
9.6
E n t w u r f eines K o m m u n i k a t i o n s n e t z e s . . . . . . . . . . . . . .
336
9.7
Zusammenfassung
346
10
Grammatiken und Chomsky-Hierarchie
348
10.1
Zielsetzung
348
10.2
D a s K o n z e p t der G r a m m a t i k e n
10.3
R e g u l ~ r e G r a m m a t i k e n u n d endliche A u t o m a t e n
.......
362
10.4
Kontextfreie Grammatiken und Kellerautomaten
.......
376
10.5
Allgemeine G r a m m a t i k e n und Turingmaschinen
10.6
Zusammenfassung
8.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .........
294 298
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
. . . . . . . . . . . . . . . . . . . . . . . .
319
350
402 405
Literaturverzeichnis
408
S achverzeichnis
413
Wenn du ein Schiff bauen willst, so trommle nicht M~nner zusammen, um Holz zu beschaffen,
Auftr/~ge zu vergeben oder Arbeit zu verteilen, sondern wecke in ihnen die Sehnsucht nach dem weiten, endlosen Meer! A. de Saint-Exup6ry
1
Einleitung
1.1
Informatik als wissenschaftliche Disziplin
Jeder, der Informatik studiert oder ausfibt, sollte sich yon Zeit zu Zeit die Frage stellen, wie er die Informatik definieren wfirde, und wie er die Rolle der Informatik im Kontext aller Wissenschaft, allgemeiner Bildung und der tgglichen Praxis sieht. Wichtig ist dabei, dass sich mit tieferem Verst~ndnis der Natur der Informatik auch unsere Vorstellung fiber die Informatik weiterentwickelt. Deswegen ist es insbesondere ffir die Studierenden im Grundstudium sehr wichtig, dass sie sich nach jedem Semester mit ihrer eigenen Vorstellung fiber Informatik besch~ftigen. Eine Hilfe zu einer solchen Auseinandersetzung zwischen eigener Vorstellung und neu erworbenen Kenntnissen soll diese Einleitung bieten. I Versuchen wir zuerst die Frage ,, Was ist Informatik?" zu b e a n t w o r t e n . Eine genaue Spezifikation einer wissenschaftlichen Disziplin zu geben, ist eine schwierige Aufgabe, die m a n selten vollstgndig erfiillen kann. /Jblicherweise versucht man, I n f o r m a t i k mit der folgenden allgemeinen Aussage zu beschreiben.
,,Informatik ist die Wissenschaft von der algorithmischen Darstellung, Verarbeitung, Speicherung und Obertragung von Information.
1Man beachte, dass das Folgende nur den pers6nlichen Ansichten und dem Wissensstand
des Autors entspricht und keinen Anspruch auf absolute Wahrheit erhebt.
18
1 Einleitung
Obwohl diese meist akzeptierte Definition der Informatik die Information und die Algorithmen als die Hauptobjekte der Untersuchung der Informatik lestlegt, und den Umgang mit diesen als Ziel der Untersuchung formuliert, sagt sie nicht genug fiber die Natur der Informatik und fiber die in der Informatik benutzten Methoden aus. Eine weiterfiihrende Frage fiir die K15~rung der Substanz der Informatik ist die folgende:
,,Zu welchen Wissenschaften kann man die Informatik zuordnen? Ist sie Metawissenschaft (wie Philosophie und Mathematik), Gelsteswissenschaft, Naturwissenschaft oder Ingenieurwissenschaft ?" Die Antwort auf diese Frage klgrt nicht nur das Objekt der Untersuchung, sondern sie legt auch die Methodik und die Beitrgge der Informatik fest. Die Antwort ist, dass die Informatik keiner dieser Wissenschaftsgruppen vollstS~ndig zugeordnet werden kann. Die Informatik besitzt sowohl Aspekte einer Metawissenschaft, einer Naturwissenschaft als auch einer Ingenieurwissenschaft. Wir geben hier eine kurze Begriindung fiir diese Behauptung. Wie die Philosophie und die Mathematik studiert die Informatik allgemeine Kategorien wie
Determinismus, Nichtdeterminismus, Zufall, Information, Wahrheit, Unwahrheit, Komplexitiit, Sprache, Beweis, Wissen, Kommunikation, Approximation, Algorithmus, Simulation usw. und tr/~gt zu ihrem Verst/~ndnis bei. Mehreren dieser Kategorien hat die Informatik einen neuen Inhalt und eine neue Bedeutung gegeben. Eine Naturwissenschaft (ira Unterschied zur Philosophie und Mathematik) studiert konkrete nat/irliche Objekte und Prozesse, bestimmt die Grenze zwischen M6glichem und Unm6glichem und erforscht die quantitativen Gesetze der Naturprozesse. Sie modelliert, analysiert und iiberpriift die Glaubwiirdigkeit erzeugter Modelle durch Experimente. Alle diese Aspekte einer Naturwissenschaft finden sich auch in der Informatik. Die Objekte sind Information und Algorithmen (Programme, Rechner) und die Prozesse sind die physikalisch existierenden Prozesse der Informationsverarbeitung. Versuchen wir dies an der Entwicklung der Informatik zu dokumentieren. Die historisch erste wichtige Forschungsfrage der Informatik war die folgende Frage von philosophischer Bedeutung:
1.1 Informatik als wissenschaftliche Disziplin
19
Existieren wohldefinierte Aufgaben, die man automatisch (dutch einen Rechner, fernab von der Leistungsfiihigkeit heutiger oder zukiinftiger Rechner) nicht 15sen kann ? Die Bemiihungen, diese Frage zu beantworten, f~hrten zur Grtindung der Informatik als eigenstgndige Wissenschaft. Die Antwort auf diese Frage ist positiv, und wir kennen heute vide praktisch relevante Aufgaben, die man gerne algorithmisch (automatisch) 16sen m6chte, die man aber algorithmisch nicht 16sen kann. Das liegt aber nicht daran, dass bisher niemand einen Algorithmus (ein Programm) zur L6sung dieser Aufgaben entwickelt hat, sondern dass man solche Programme nie entwickeln wird, weft ihre Nichtexistenz mathematisch bewiesen wurde. Nachdem man Methoden entwickelt hat, um die Aufgaben danach zu klassifizieren, ob f~r sie ein Programm als algorithmische L6sung existiert oder nicht, stellt man sich folgende naturwissenschaftliche Frage. Wie schwer sind konkrete algorithmische A ufgaben? Die Schwierigkeit einer Aufgabe misst man aber nicht darin, wie schwer ein Programm f~r die Aufgabe zu entwickeln ist, oder wie umfangreich das Programm ist. Die Schwierigkeit einer Aufgabe misst man als den Aufwand, den man leisten muss, um die Aufgabe f/ir konkrete Eingaben algorithmisch zu 16sen. Man stellte lest, dass es beliebig schwere Aufgaben gibt, sogar solche, f~r deren L6sung man mehr Energie braucht, als im ganzen bekannten Universum zur Verfiigung steht. Es existieren also Aufgaben, f~r deren L6sung man zwar Programme schreiben kann, was aber nichts hilft, weil ein Lauf eines solchen Programms mehr Zeit ben6tigt, als seit dem Urknall bis heute vergangen ist. Die blot3e Existenz eines Programms f/ir eine untersuchte Aufgabe bedeutet also nicht, dass diese Aufgabe praktisch algorithmisch 16sbar ist. Die Bemiihungen, die Aufgaben in praktisch 15sbare und praktisch unlSsbare zu unterteilen, ffihrten zu einigen der faszinierendsten mathematisch-naturwissenschaRlichen Erkenntnissen, die in der Informatik entdeckt worden sind. Als ein Beispiel solcher Resultate k6nnen wir zufallsgesteuerte Algorithmen betrachten. Die Programme (Algorithmen), wie wir sie benutzen, sind deterministisch. Die Bedeutung des Wortes ,,deterministisch" ist, dass das Programm und die Problemeingabe vollstgndig die Arbeit des Programms determinieren. In jedem Augenblick ist in Abhgngigkeit von den aktuellen Daten eindeutig, was die nS~chste Aktion des Programms sein wird. Zufallsgesteuerte Programme diirfen mehrere M6glichkeiten fiir die Umsetzung ihrer Arbeit haben; welche M6glichkeit ausgewghlt wird, wird zufS~llig entschieden. Es sieht so aus, als ob ein zufallsgesteuertes Programm von Zeit zu Zeit eine Miinze wirft und
20
1 Einleitung
abhS~ngig davon, ob Kopf oder Zahl gefallen ist, eine entsprechende Strategie fiir die Suche nach dem richtigen Resultat wghlt. Ein zufallsgesteuertes Programm hat daher mehrere unterschiedliche Berechnungen fiir eine Eingabe. Im Unterschied zu deterministischen Programmen, die immer eine zuverlgssige Berechnung des richtigen Resultats liefern, d~rfen einige Berechnungen des zufallsgesteuerten Programms auch falsche Resultate liefern. Das Ziel ist, die Wahrscheinlichkeit einer falschen Berechnung nach unten zu driicken, was in gewissem Sinne bedeuten k6nnte, dass man versucht, den proportionalen Anteil der Berechnungen mit falschem Resultat klein zu halten. Auf den ersten Blick sieht ein zufallsgesteuertes Programm unzuverlgssig gegeniiber deterministischen Programmen aus, und man kann fragen, wozu es gut sein sollte. Es existieren abet Probleme von grofier praktischer Bedeutung, bei denen der schnellste deterministische Algorithmus auf dem schnellsten heutigen Rechner mehr Zeit zur Berechnung der L6sung brauchen w~rde als die Zeit, die seit dem Urknall bis heute vergangen ist. Die Aufgabe scheint also praktisch unl6sbar zu sein. Und dann passiert ein ,,Wunder": ein zufallsgesteuerter Algorithmus, der die Aufgabe in ein paar Minuten auf einem gew6hnlichen Personalcomputer mit einer Fehlerwahrscheinlichkeit von 1 durch Tausend Milliarden 16st. Kann man ein solches Programm ftir unzuverlgssig halten? Ein deterministisches Programm, das eine Aufgabe in einem Tag berechnet, ist unzuverl~ssiger als unser zufallsgesteuertes Programm, weil die Wahrscheinlichkeit des Auftretens eines Hardwarefehlers wghrend einer 24sttindigen Arbeit viel h6her ist als die Wahrscheinlichkeit einer fehlerhaften Ausgabe des schnellen zufallsgesteuerten Programms. Ein konkretes Beispiel von hoher praktischer Bedeutung ist das Problem des Primzahltests. In der alltS~glichen Anwendung von kryptographischen Public-Key Protokollen muss man grofie Primzahlen generieren, wobei grog rund 400 Dezimalziffern bedeutet. Alle deterministischen Algorithmen fiir den Primzahltest basieren auf der /Jberprtifung der Teilbarkeit der gegebenen Zahl n. Aber schon die Anzahl der Primzahlen kleiner als v ~ f~r eine so grofie Zahl n ist gr6fier als die Anzahl der Protonen im bekannten Universum und deshalb sind solche Algorithmen praktisch uninteressant. Aber es gibt mehrere zufallsgesteuerte Algorithmen, die den Primzahltest in einigen Minuten auf einem PC realisieren. Ein anderes spektakulS~res Beispiel ist ein Kommunikationsprotokoll ftir den Vergleich der Inhalte zweier Datenbanken, die bei zwei weit entfernten Rechnern gespeichert sind. Man kann mathematisch beweisen, dass jedes deterministische Kommunikationsprotokoll, das die Aquivalenz der Inhalte iiberpriift, ungefS~hr so viele Bits bei der Kommunikation zwischen beiden Rechnern austauschen muss, wie die Datenbank enthglt. Betrachten wir jetzt den Fall, dass die Datenbanken
1.1 Informatik als wissenschaftliche Disziplin
21
eine Gr6fienordnung yon 1012 Bits haben. So viele Bits zu versenden ist ein grofier Aufwand. Ein zufallsgesteuertes Kommunikationsprotokoll kann diesen Aquivalenztest mit der Versendung einer Nachricht, die kiirzer als 2000 Bits ist, realisieren. Die Fehlerwahrscheinlichkeit des Tests ist dabei kleiner als 1 zu 1000 Milliarden. Warum so etwas iiberhaupt mSglich ist, ist ohne Informatikvorkenntnisse nur schwer zu erklS~ren. Die Suche nach den wahren Griinden f/Jr die StS~rke der Zufallssteuerung ist aber eine faszinierende mathematisch-naturwissenschaRliche Forschungsaufgabe. Wichtig zu bemerken ist aber, dass auch hier die Natur unser bester Lehrmeister sein kann, weil in der Natur mehr zufallsgesteuert ablS~uft als man glauben wiirde. Informatiker k6nnen viele Beispiele f/Jr Systeme geben, bei denen die gew/inschten Eigenschaften und Verhaltensweisen nur durch das Konzept der Zufallssteuerung erreicht werden kSnnen. In solchen Beispielen muss jedes deterministische ,,hundert Prozent zuverl~ssige" System mit dem erwiinschten Verhalten aus Milliarden Teilsystemen bestehen, die alle richtig miteinander kooperieren miissen. Ein solch komplexes System, bei dem viele Teilsysteme immer korrekt arbeiten, kann praktisch nicht realisiert werden, und falls ein Fehler auftritt, ist es eine fast unlSsbare Aufgabe, ihn zu finden. Man braucht gar nicht dariiber nachzudenken, wie hoch die Entwicklungsund Herstellungskosten eines solchen Systems sein wiirden. Auf der anderen Seite kann man ein solches System zu geringen Kosten mit dem gewiinschten Verhalten durch ein kleines zufallsgesteuertes System realisieren, bei dem alle Funktionen jederzeit iiberpriifbar sind und die Wahrscheinlichkeit eines fehlerhaften Verhaltens so klein ist, dass man sich in der Anwendung keine Sorgen dariiber machen muss. Trotz der naturwissenschaRlichen Aspekte der Informatik, die wir gerade illustriert haben, ist die Informatik fiir die meisten Informatiker eine typische anwendungs- und problemorientierte Ingenieurwissenschaft. Die Informatik umfasst nicht nur die technischen Aspekte des Engineering, wie
Organisation des Entwicklungsprozesses (Phasen, Meilensteine, Dokumentation), Formulierung von strategischen Zielen und Grenzen, Modellierung, Beschreibung, Spezifikation, Qualitiitssicherung, Testen, Einbettung in existierende Systeme, Wiederverwendung und Werkzeugunterstiitzung, sondern auch die Managementaspekte wie z.B.
Teamorganisation und-leitung, Kostenvoranschlag und Kostenaufschliisselung, Planung, Produktivit~t, Qualitiitsmanagement,
22
1 Einleitung
A bschiitzung von Zeitrahmen und Fristen, Zeit zur Markteinfiihrung, Vertragsabschluss und Marketing. Eine Informatikerin oder ein Informatiker sollte auch ein echter pragmatischer Praktiker sein. Bei der Konstruktion von sehr komplexen Software- oder Hardwaresystemen muss man oft die Entscheidung gefiihlsm~i3ig beztiglich eigener Erfahrung treffen, weil man keine Chance hat, die komplexe RealitS~t vollstS~ndig zu modellieren und zu analysieren. Wenn man sich das, was wir bisher fiber die Informatik geschildert haben, durch den Kopf gehen 15~sst, k6nnte man den Eindruck bekommen, dass das Studium der Informatik zu schwer ist. Mathematikkenntnisse sind erforderlich und die naturwissenschaftlichen sowie die ingenieurm~i3igen Aspekte des Denkens sind gleichermat3en erwiinscht. Das mag stimmen, aber das ist auch der grSfite Vorteil dieser Ausbildung. Die grSftte Schwgche heutiger Wissenschaft ist eine zu enge Spezialisierung, die dazu f/ihrt, dass sich viele Wissenschaften zu unabh~ngig voneinander entwickelt haben. Die Wissenschaften entwickelten eigene Sprachen, die oft sogar ftir benachbarte Wissenschaften nicht mehr verst~ndlich sind. Es geht so weit, dass die standardisierte Art der Argumentation in einer Wissenschaft in einer anderen Wissenschaft als eine oberflS~chliche und unzulS~ssige Begrtindung eingestuft wird. Das macht die propagierte interdisziplin~re Forschung ziemlich schwierig. Die Informatik ist in ihrem Kern interdisziplin~r. Sie orientiert sich an der Suche nach ProblemlSsungen in allen Bereichen des wissenschaftlichen und allt~iglichen Lebens, bei denen man Rechner anwendet oder anwenden k6nnte, und bedient sich dabei eines breiten Spektrums yon Verfahren, das yon prS~zisen formalen Methoden der Mathematik bis hin zum erfahrungsmS~tJigem ,,Know-How" der Ingenieurdisziplinen variiert. Die M6glichkeit, gleichzeitig unterschiedliche Wissenschaftssprachen und Arten des Denkens zusammenh~ingend in einer Disziplin zu erlernen, ist das Wichtigste, was die Informatikabsolventen in ihrer Ausbildung bekommen sollen.
1.2
Eine faszinierende Theorie
Dieses Buch ist der elementaren Einfiihrung in die algorithmischen Gebiete der Theoretischen Informatik gewidmet. Die Theoretische Informatik ist eine faszinierende Wissenschaftsdisziplin, die durch spektakulSze Ergebnisse und hohe InterdisziplinaritS~t wesentlich zur Entwicklung unserer Weltanschauung beigetragen hat. Statistisch gesehen gehSrt aber die Theoretische Informatik nicht
1.2 Eine faszinierende Theorie
23
gerade zu den LieblingsfS~chern der Studierenden.Viele Studierende bezeichnen die Theoretische Informatik sogar als eine Htirde, die man tiberwinden muss, um ein Diplom-Informatiker zu werden. Ftir diese Einstellung gibt es sicherlich mehrere Griinde. Ein Grund dafiir ist, dass die Theoretische Informatik von allen Informatikbereichen am stS~rksten mathematisch geprS~gt ist, und so einen h6heren Schwierigkeitsgrad besitzt. Dazu kommt oft noch, dass die Studierenden mit einer falschen Vorstellung fiber das Informatikstudium angetreten sind und dass wir, die Dozenten der Informatik, nicht immer die theoretischen Veranstaltungen attraktiv genug verkaufen. Zuviel Druck auf eine saubere Darstellung der kleinsten technischen Details von mathematischen Beweisen und zu wenig Raum ftir Motivationen, Zusammenhgnge, informelle Ideenentwicklung in geschichtlichem Rahmen und direkten Anwendungsm6glichkeiten k6nnen das Studium auch der faszinierendsten Wissenschaftsgebiete versguern. In der obigen Beschreibung der Informatik als einer Wissenschaft mit vielen Gesichtern haben wir schon indirekt die Wichtigkeit der Theoretischen Informatik dargestellt. Weil es aber noch weitere wichtige Gr/inde fiir die Unverzichtbarkeit des Studiums der Theoretischen Informatik in der Informatikausbildung gibt, m6chten wir die wichtigsten systematisch auflisten.
1. Philosophische Tiefe Die Theoretische Informatik erforscht Kenntnisse und bildet neue Konzepte und Begriffe, die die ganze WissenschaR in ihren tiefsten Grundlagen beeinttusst. Die Theoretische Informatik gibt partielle oder vollst~ndige Antworten auf Fragen philosophischer Tiefe wie 9 Existieren Probleme, die nicht automatisch (algorithmisch) 16sbar sind? Falls ja, wo liegt die Grenze zwischen automatisch L6sbarem und automatisch Unl6sbarem? 9 Wie kann man ein zuf~lliges Objekt definieren? 9 K6nnen nichtdeterministische und zufallsgesteuerte Prozesse etwas, was die deterministischen nicht k6nnen? Ist Nichtdeterminismus und Zufall starker (etIizienter) als Determinismus? 9 Wie kann man die Schwierigkeit von Aufgaben definieren? 9 Wo ist die Grenze der ,,praktischen" automatischen L6sbarkeit? 9 Was ist ein mathematischer Beweis, und ist es schwerer, mathematische Beweise algorithmisch zu finden, als gegebene Beweise algorithmisch auf Korrektheit zu tiberprtifen? Wichtig ist dabei zu bemerken, dass viele dieser Fragestellungen eigentlich ohne die formalen Konzepte der Algorithmen und Berechnungen nicht formulierbar
24
1 Einleitung
waren. So hat die Theoretische Informatik die Sprache der Wissenschaften auch urn neue Begriffe bereichert und dadurch zur Entwicklung der WissenschaRssprache beigetragen. Mehrere bekannte Grundkategorien der Wissenschaft wie Determinismus, Zufall und Nichtdeterminismus haben neue Bedeutung gewonhen, und so wurden unsere allgemeinen Ansichten tiber die Welt beeinflusst. 2. Praxisniihe und spektakul~re Ergebnisse Die Theoretische Informatik ist praxisrelevant. Auf der einen SeRe liefert sie Erkenntnisse methodologischer Natur, die unsere erste grobe Entscheidung bei der Bearbeitung von algorithmischen Aufgaben steuern. Auf der anderen Seite liefert sie Konzepte und Methoden, die direkt praktisch umsetzbar sind, und ohne die viele Anwendungen unmSglich w~ren. Neben dem schon erw~hnten Konzept des zufallsgesteuerten Algorithmus existieren noch viele andere ,,Wunder", die in der Theoretischen Informatik entstanden sind. Es gibt schwere Optimierungsprobleme, bei denen man durch eine AbschwS~chung der Forderung, eine optimale LSsung zu liefern, einen gewaltigen Sprung von einer unrealisierbaren Menge von Rechnerarbeit zu einer Angelegenheit von ein paar Minuten springen kann. Dabei braucht die Abmilderung der Forderung oft nicht grog zu sein. Wir diirfen die Berechnung einer LSsung fordern, deren Qualitgt nur sehr wenig yon der Qualit~t einer optimalen LSsung abweicht. Wiirden Sie glauben, dass es mSglich ist, jemanden vom Besitz eines Geheimnisses (z.B. eines Passwortes) zu tiberzeugen, ohne ein einziges Bit der Information fiber dieses Geheimnis zu verraten? Wiirden Sie glauben, dass zwei Personen in einero GesprS~ch bestimmen k6nnen, wet von ihnen 5~lter ist, ohne dem anderen das eigene Alter zu verraten? W/irden Sie glauben, dass man mathematische Beweise von mehreren tausend Seiten Lgnge fast mit hundertprozentiger Zuverl~ssigkeit auf Korrektheit tiberpr~fen kann, obwohl man diese gar nicht liest und nut einige wenige zufS~llig ausgewS~hlte Bits (Buchstaben) des Beweises ansieht? Alles das, was wit oben erwS~hnt haben, ist m6glich. Dies zeigt nicht nur, dass man dank der Theorie Dinge realisieren kann, die man vorher vielleicht fiir unm6glich gehalten hat, sondern auch, dass die Forschung in der Theoretischen Informatik voller Spannung und Uberraschungen ist, und dass man auch mit Theoretischer Informatik begeistern kann. 3. Lebensdauer von Kenntnissen Durch die schnelle Entwicklung der Technologien 5~ndert sich die Welt der berufs-praktischen Informatik stS~ndig. Die HS~lfte der dort erworbenen Kenntnisse fiber Produkte ist in fiinf Jahren so veraltet, dass man mit ihnen nichts mehr anfangen kann. Daher gS~be ein Studium, das sich iiberproportional dem Wissen fiber Produkte widmet, keine hinreichende Berufsperspektive. Auf der anderen Seite haben die Konzepte und Methoden der Theoretischen Informatik im Durchschnitt eine wesentlich l~ngere Lebensdauer von mehreren Jahrzehn-
1.2 Eine faszinierende Theorie
25
ten. Ein Absolvent der Informatik kann auf dieses Know-How lange aufbauen. 4. Intevdisziplinaritiit Die Theoretische Informatik ist stark interdisziplinSz und kann sich in vielen spannenden Gebieten an Forschung und Entwicklung beteiligen. Genomprojekte, medizinische Diagnostik, Optimierung in allen Gebieten der Wirtschaft und technischen Wissenschaften, automatische Spracherkennung und Weltraumforschung sind nur einige Beispiele eines grofien Spektrums von M6glichkeiten. Neben diesen wesentlichen BeitrS~gen der Informatik fiir andere Wissenschaften gibt es auch M6glichkeiten yon faszinierenden BeitrS~gen anderer WissenschaRen f/Jr die Informatik. Das Studium der Berechnungen auf der Ebene der Mikroteilchen, die den Gesetzen der Quantenmechanik folgen, hat als Hauptthema die Fragestellung, ob man in der Mikrowelt gewisse Berechnungen (AufgabenlSsungen) effizient realisieren kann, die in der Makrowelt nicht effizient realisierbar sind. Das theoretische Modell eines Quantenrechners ist bereits ausgearbeitet, aber die M6glichkeit einer praktischen Realisierung ist fiir Physiker eine grot3e Herausforderung mit unbekanntem Ausgang. Unabh~tngig davon, ob dieses Projekt Erfolg haben wird, sind die Gesetze der Mikrowelt so tiberraschend und so kontraintuitiv fiir die Menschen, die ihre Erfahrungen in der Makrowelt gesammelt haben, dass man noch mit vielen ,,Wundern" durch die Anwendung der Kenntnisse der Quantentheorie rechnen muss. Schon heute ist klar, dass man in der Mikrowelt sicher kommunizieren kann, da jeder Versuch, die Kommunikation abzuhSren, sofort vom Sender entdeckt und abgewehrt werden kann. Ein anderes spannendes Gebiet ist das Rechnen mit DNS-Molekiilen. DNS-Molek/ile sind InformationstrS~ger und daher sollte es nicht iiberraschen, dass man sie zur Informationsspeicherung und -iibertragung benutzen kann. Heute wissen wir schon, dass man durch chemische Operationen auf DNS-Molekiilen die Arbeit von Rechnern nachahmen kann. Dies ist nicht nur theoretisch klar, mehrere solcher Simulationen yon Berechnungen durch DNS-Molekiile wurden schon in Laboratorien realisiert. Es ist nicht auszuschliefien, dass eines Tages einige DNS-Molekiile die ganze Arbeit eines Rechners iibernehmen kSnnen. 5. Denkweise Die Mathematiker begr/inden die Sonderrolle der Mathematik in der Ausbildung mit der Entwicklung, Bereicherung und PrS~gung einer Denkweise, die der allgemeinen Entwicklung einer PersSnlichkeit zugute kommen sollte. Falls dieser Beitrag der Mathematik anerkannt wird, dann muss man die Wichtigkeit der Informatik fiir die allgemeine Bildung und die Bereicherung um neue Denkweisen in gleichem Mage akzeptieren. WS~hrend sich in letzter Zeit die Mathematikausbildung leider zu stark auf das Erlernen yon korrekter Beweisfiihrung reduziert hat, fSrdert die Theoretische Informatik auch die Modellierung der
26
1 Einleitung
RealitS~t und die Suche nach Konzepten und Methoden zur L6sung konkreter Probleme. In Verbindung mit dem pragmatischen Denken eines guten Praktikers ist dies das Wesentliche, was das Studium den Informatikern bieten kann.
1.3
Fiir die Studierenden
Dieses Buch ist in erster Linie fiir Sie bestimmt. Der Sinn des Buches ist nicht nur, Ihnen einige grundlegende Konzepte der Informatik zu vermitteln, sondern es ist auch ein Versuch, Sie ftir die Informatik zu begeistern. Wie weit diese Zielsetzungen erfiillt werden, bleibt Ihnen zu beurteilen. In den ersten Teilen dieses Kapitels habe ich versucht, Sie davon zu iiberzeugen, dass Informatik eine faszinierende Wissenschaft ist, eine Wissenschaft, die einem sehr viel Spar3, Spannung und Freude bereiten kann. Dass es viele Leute gibt, die die Arbeit in der Theoretischen Informatik richtig genief3en, m6chte ich an einigen miindlich iiberlieferten (m6glichen) Ausschnitten aus den Lehrund Forschungsveranstaltungen eines meiner Freunde illustrieren. 9 ,,Und wenn sich dieser verdammte Fehlerfaktor dann immer noch nicht unter 0, 5 dr/icken 15~sst, dann werden wir andere Saiten aufziehen. Der wird es noch bereuen, sich in mein Lernmodell getraut zu haben." 9 ,,Also heute haben wir so ein Epsilon in die Knie gezwungen. Da war was am Dampfen, sag ich Euch. Erst haben wir eine Approximation draufgehetzt. Erst hat es ja noch ein bisschen gezuckt. Aber dann haben w i r e s mit einer semidefiniten Matrix stumpf erschlagen. Es war herrlich!" 9 ,,Ihr sagt es, kein popliges, dahergelaufenes Lambda vergreift sich an unserein My, ohne dafiir zu bezahlen. Wir machen es so richtig fertig. Es wird gar nicht wissen, wie ihm geschieht." Halten Sie solche Emotionen zu einem mathematisch geprS~gten Thema fiir iibertrieben? Ich nicht. Es ist ein riesiger Spat3, in einer solchen Vorlesung sitzen zu dtirfen, und man begreift gleich, wo die Schwierigkeiten, mit denen man zu kS~mpfen hat, liegen. Die Emotionen in Lehre und Forschung sind der Hauptantrieb. Wenn Sie eine emotionale Beziehung zu einem Lehrthema entwickeln k6nnen, sind sie schon auf der Erfolgstour. Wenn Sie bisher noch keine emotionale Beziehung zu irgendeinem Gebiet der Informatik gefunden haben, ist es h6chste Zeit, sich auf die Suche zu begeben. Falls die Suche erfolglos bleiben sollte, wS~re es angemessen, die Suche auf Wissenschaftsdisziplinen oder Aktivit~ten aut3erhalb der Informatik zu erweitern.
1.3 Fiir die Studierenden
27
Dieses Buch ist einigen Teilen der Theoretischen Informatik gewidmet. Warum hglt man das Studium der Theoretischen Informatik fiir schwer? Es existiert kein leichter Weg zu einem tieferen VerstS~ndnis und zur Beherrschung von Methoden, die eindrucksvolle Anwendungen haben. Das sollte aber niemanden iiberraschen. Wenn jemand 100 Meter unter 10 Sekunden laufen oder fiber 8 Meter weit springen mSchte, muss er auch lange Jahre ein ziemlich hartes Training absolvieren. Immer wenn man etwas Besonderes erreichen will, muss man etwas Besonderes dafiir tun. Eine Wissenschaft zu erlernen ist keine Ausnahme, und vielleicht haben Sie noch zusS~tzlich die Motivationsschwierigkeit, dass Sie das Ziel wS~hrend der Bemiihung noch nicht genau sehen und seinen Wert nicht abschgtzen kSnnen. Es wird also viel Ausdauer gefordert und insbesondere Bereitschaft, jedes Thema viele Male zu iterieren, um ein immer tiefer gehendes Verst~ndnis fiir die Zusammenhgnge zu entwickeln. Dieses Buch soll Ihnen helfen, den Einstieg in die algorithmischen Teile der Theoretischen Informatik zu erleichtern. Dazu benutzen wir folgende drei Konzepte: 1. Einfachheit und Anschaulichkeit Wir erkl~ren alles, was einfach zu erkl~tren ist, auch einfach. Wir vermeiden unn6tige mathematische Abstraktionen, wit versuchen also so konkret zu sein, wie es nur geht. Dadurch schaffen wit den Einstieg mit elementaren Kenntnissen der Mathematik. Bei allen komplizierteren Uberlegungen und Beweisen erkl~tren wit zuerst die Zusammenh~tnge und Ideen auf eine anschauliche und informelle Weise und gehen erst dann zu formalen Begriindungen fiber. An mit 9 gekennzeichneten Stellen empfehlen wit den Fachhochschulstudenten und Nicht-Informatikern, auf die formalen Beweise zu verzichten. Aufierdem kSnnen diese Gruppen zum Beispiel auf den technischen Umgang mit dem formalen Modell der Turing-Maschine im Teil Berechenbarkeit verzichten, und das Verst~tndnis der Grundlagen der Theorie der Berechenbarkeit fiber die Argumentation auf der Ebene von Programmen (in beliebiger Programmiersprache) erreichen. Die Anschaulichkeit ist uns wichtiger als die Presentation der besten bekannten Ergebnisse. Wenn wit die Methoden und Beweisideen leichter mit schw~cheren Resultaten erkl~tren k6nnen, dann ziehen wit die Darstellung solcher Resultate der technischen und schwer durchschaubaren Presentation st~rkerer Resultate vor. Im ganzen Buch folgen wir der Linie, stufenweise mit kleinen Schritten vom Einfachen zum Komplizierten zu gehen, und vermeiden so Gedankenspriinge. 2. ,, Weniger ist manchmal mehr" oder eine kontextsensitive Darstellung Viele Studienplgne und Lehrbiicher gehen von der falschen Vorstellung aus, .o
28
1 Einleitung
dem Leser in erster Linie ein gewisses Quantum an Information liefern zu mfissen. In der Vorlesung oder in den Lehrmaterialien spielt man dann ein falsches Optimierungsspiel- in minimaler Zeit so viele Kenntnisse und Resultate wie m6glich zu vermitteln. Dies fiihrt oft zur Pr/~sentation einer grofJen Menge von einzelnen Resultaten, die zu isoliert wirken. Dabei geht der Kontext der ganzen Veranstaltung verloren. Die Philosophie dieses Buches ist eine andere. Wit wollen die Denkweise der Studierenden prggen. Deswegen ist uns die Anzahl der prgsentierten Resultate nicht so wichtig. Wit konzentrieren uns auf die historische Entwicklung der informatischen Konzepte und Denkweisen, und die Prgsentation von Definitionen, Resultaten, Beweisen und Methoden ist nur ein Mittel, um dieses Ziel zu erreichen. Deswegen nehmen wit gerne die Reduktion der Masse des Lernstoffes urn 2 0 - 30% im Vergleich zu standardisierten Vorlesungen in Kauf. Darer widmen wit mehr Zeit den Motivationen, Zielsetzungen und Zusammenhgngen zwischen der Praxis und den theoretischen Konzepten und insbesondere dem inneren Kontext der entwickelten Theorie. ginen besonderen Schwerpunkt legen wit auf die Bildung neuer Begriffe. Es ist nicht so, wie es vielleicht in einigen Vorlesungen mathematischer Natur aussehen k6nnte, dass die Terminologie vom Himmel gefallen ist. Die formal definierten Terme sind immer eine Approximation oder eine Abstraktion intuitiver Begriffe, deren Formalisierung wir brauchen, urn iiberhaupt exakte Aussagen fiber gewisse Objekte und grscheinungen formulieren zu k6nnen, und um die Realisierung einer formal sauberen und eindeutigen Argumentation (Beweisfiihrung) zu erm6glichen. Wit bemiihen uns hier, die Griinde zu erlgutern, warum man die Begriffe so wie hier und nicht anders formalisiert hat und wo die Grenzen ihres Nutzens liegen.
3. Unterstiitzung iterativer Arbeitsweise An diese Strategie ist auch der Aufbau des Buches angepasst, die wiederholtes Nachdenken fiber prS~sentierte Konzepte fSrdert. Jedes Kapitel fS~ngt mit dem Unterkapitel ,,Zielsetzungen" an, in dem das Lernziel des Kapitels in allen Zusammenh~ngen erl~utert wird. Der Kern des Kapitels ist dann der Formalisierung der Ideen durch theoretische Konzepte und dem Studium im Rahmen dieser Konzepte gewidmet. Bei jedem wesentlichen neuen Schritt wird auf die wichtigsten ZusammenhS~nge mit deren Zielsetzungen aufmerksam gemacht. Jedes Kapitel endet mit einer kurzen Zusammenfassung und einem Ausblick. Dort werden noch einmal die wichtigsten Kenntnisse des Kapitels informell wiederholt und in Zusammenhang mit anderen Teilen der Theorie gebracht. Hier werden auch weitere Entwicklungen der theoretischen Konzepte und aus der Literatur bekannte tiefgreifende Resultate kurz erwS~hnt. Die Entfernung des Wissenstandes von den angestrebten Forschungszielen wird auch diskutiert.
1.4 Aufbau des Lehrmaterials
29
Wie iiblich wird das Erlernen des Buchinhaltes durch (~bungen unterst/itzt. Die (Jbungen befinden sich hier nicht in einem gesonderten Kapitel, sondern sind direkt an den Stellen des Textes eingefiigt, wo es am passendsten ist, fiber sie nachzudenken. Sie dienen zur (Jbung der Anwendungen der prgsentierten Methoden sowie zur Vertiefung des Verstgndnisses des Lernstoffes. Das Ziel des Autors ist nicht nur, die Informatik als eine faszinierende Wissenschaft vorzustellen, sondern Ihnen auch eine preiswerte Eintrittskarte in die algorithmischen Gebiete der Informatik anzubieten. Die Voraussetzungen fiir die Anwendung dieser Karte sind minimal. Erfahrungen mit der Programmierung im Umfang eines Semesters und elementare Kenntnisse der Mathematik sind hinreichend. Die Kenntnisse von Standardvorlesungen wie Rechnerstrukturen und Algorithmen und Datenstrukturen sind zwar nicht notwendig, aber sehr hilfreich fiir das VerstSmdnis konzeptueller Zusammenhgnge.
1.4
Aufbau des Lehrmaterials
Auger dieser Einleitung umfasst das Buch acht weitere Kapitel. Kapitel 2 und 3 dienen als Einstieg. In ihnen lernt man die Sprache und Ausdrucksweisen der Theoretischen Informatik. Das Resultat der Arbeit eines Rechners kann man immer als eine Transformation eines Textes in einen anderen Text verstehen, weil wir die Eingaben und Ausgaben als Texte darstellen. Kapitel 2 legt die Grundlagen fiir den Umgang mit Texten und benutzt sie, um die formale Spezifikation algorithmischer Aufgaben zu entwickeln. Aufierdem beschgftigt sich Kapitel 2 mit der Frage, wie man die Menge des Informationsgehaltes eines Textes messen kann, und wann man einen Text (ein Objekt) als zufgllig betrachten kann. Kapitel 3 stellt die endlichen Automaten als das einfachste Modell von Berechnung vor. Das Ziel ist dabei nicht der Einstieg in die Automatentheorie, sondern nur eine Vorbereitung fiir die Definition eines formalen Modells yon Algorithmen (Programmen). Wir nutzen endliche Automaten, um eine erste einfache Vorstellung der Kernbegriffe der Informatik wie Zustand und Konfiguration eines Berechnungsmodells, Berechnung, Berechnungsschritt, Determinismus, Nichtdeterminismus, BeschreibungskomplexitS~t und Simulation zu vermitteln. Diese erleichtert es uns spS~ter, das Verstgndnis dieser Begriffe fiir das allgemeine Modell der Turing-Maschine zu gewinnen. Kapitel 4 ist der Turing-Maschine als dem theoretischen Grundmodell des intuitiven Begriffes Algorithmus gewidmet. Weil der technische Umgang mit
30
1 Einleitung
Turing-Maschinen einer Programmierung im Maschinencode eines Rechners entspricht, versuchen wir diesen Teil auf das Notwendigste ftir das Verst~ndnis und den Umgang mit den oben erwSohnten Grundbegriffen zu beschrS~nken. Kapitel 5 beschgftigt sich mit der Theorie der Berechenbarkeit. Hier stellen wir uns die Frage, welche A ufgaben man algorithmisch (automatisch) 15sen kann und welche nicht, und prS~sentieren einige Methoden, mit deren Hilfe wir diese Frage ffir einige konkrete Aufgaben beantworten. Hier arbeiten wir auf zwei Ebenen. Die erste Ebene f/ihrt die Argumentation nut anhand eines intuitiven VerstSondnisses des Begriffes Programm, die zweite Ebene argumentiert formal fiber Turing-Maschinen. Kapitel 6 ist der Komplexitgtstheorie gewidmet. Hier stellt man sich die Frage, wie man die Schwierigkeit algorithmischer A ufgaben misst, und ob es beliebig schwere algorithmisch 15sbare Aufgaben gibt. Die Schwierigkeit (Berechnungskornplezitiit) messen wit als die zur LSsung algorithmischer Aufgaben notwendige Menge der Rechnerarbeit. Zuerst prS~sentieren wit einige wichtige Grundkenntnisse, auf deren formale Beweise wir wegen ihres Schwierigkeitsgrades in diesem Kurs verzichten. Danach zeigen wir das Konzept der NP-VollstS~ndigkeit als eine Methode zur Klassifizierung algorithmischer Aufgaben in einfache (praktisch 16sbare) und schwere Aufgaben. Das Konzept basiert auf dem Studium der Beziehung zwischen nichtdeterministischen und deterministischen Berechnungen, welches eines der Kernforschungsthemen der Theoretischen Informatik ist. In gewissem Rahmen zeigen wir, dass die Schwierigkeit (KomplexitS~t), etwas nichtdeterministisch zu 16sen, der Schwierigkeit einer Korrektheitspriifung (Verifikation) eines mathematischen Beweises und die deterministische Art, L6sungen zu suchen, der Erzeugung mathematischer Beweise entspricht. Daher ist die Frage, ob nichtdeterministische Berechnungen effizienter als deterministische sein k6nnen, ~quivalent zu der Frage, ob es einfacher ist, einen gegebenen Beweis zu verifizieren, als ihn zu erzeugen. Kapitel 7 beschSfftigt sich mit der Algorithmentheorie. 2 Dieses Kapitel ist eine Fortsetzung des Kapitels 6 und stellt folgende Frage: Was kann man mit Aufgaben machen, die so schwer sind, dass der beste Algorithmus Jahre brS~uchte, um diese zu 16sen? Hier prS~sentieren wit AnsS~tze wie pseudopolynornielle Algorithrnen, lokale Suche, Approzirnationsalgorithrnen und Heuristiken wie Sirnulated Annealing, die in der Praxis solche Probleme oft bewgltigen. Wit erklgren die methodologischen Grundlagen solcher Methoden, die darauf basieren, dass man durch kleine Anderungen der L6sungsanforderungen oder Aufgabenspezi2Dabei handelt es sich nicht um die Teile der Vorlesung Algorithmen nnd Datenstrnktnren oder der klassischen Vorlesung tiber Algorithmen.
1.4 Aufbau des Lehrmaterials
31
fikation einen gewaltigen Sprung yon einer physikalisch unrealisierbaren Menge von Arbeit zu einer Angelegenheit von ein paar Minuten macht. Zum Beispiel k6nnen Approximationsalgorithmen gewaltige KomplexitS~tsspriinge erm6glichen. Dort weicht man vonder Forderung ab, eine optimale L6sung zu berechnen, und geht fiber zur Berechnung einer L6sung, deren Qualits~t sich vonder Qualitgt einer optimalen L6sung nicht allzu viel unterscheidet. Im Fall der schon in Abschnitt 1.1 erwghnten zufallsgesteuerten Algorithmen ist man von der Forderung nach richtigen L6sungen mit hundertprozentiger Sicherheit zu der schwgcheren Forderungen der Korrektheit mit grofier Wahrscheinlichkeit iibergegangen. Das Konzept der Randomisierung (Zufallssteuerung) geh6rt zweifellos zu den Basiskonzepten der in Kapitel 7 prgsentierten Algorithmik. Weil es heute von essentieller Bedeutung f/Jr viele theoretische und praktische Kernbereiche der Informatik ist, widmen wir diesem Konzept aber ein eigenes Kapitel 8. Hier beschrgnken wir uns aber nicht nur auf die PrS~sentation einiger eindrucksvoller Beispiele von effizienten zufallsgesteuerten Algorithmen wie z.B. den randomisierten Primzahltest. Wir versuchen dem Leser auch die Griinde fiir den Erfolg der zufallsgesteuerten Algorithmen wenigstens teilweise zu erlgutern. In diesem Rahmen stellen wir die Methode der hgufigen Zeugen und die Methode der Fingerabdrticke als grundlegende Paradigmen des Entwurfes von zufallsgesteuerten Algorithmen vor. Das Kapitel 9 ist Kommunikationsaufgaben gewidmet. Besonders in den letzten Jahren hat die Entwicklung der Technologie die Ubertragung von riesigen Mengen von Daten und Gesprgchen erm6glicht. Deswegen sind die algorithmischen Ansgtze zur L6sung von Kommunikationsaufgaben ein fester und sich dynamisch entwickelnder Bestandteil der Informatik geworden. Das Kapitel 9 bietet zungchst einen Ausblick auf die Thematik der sicheren Kommunikation. Wir beginnen mit ein paar Beispielen von Kryptosystemen und stellen das Konzept der Public-Key-Kryptosysteme vor. Wir verwenden dieses Konzept, um zu zeigen, wie man ohne FSJschungsrisiko digitale Unterschriften leisten kann. Dann pr~sentieren wir das Konzept der Zero_Knowledge_Beweissysteme, das auch eine wichtige Rolle in kryptographischen Anwendungen spielt. Wir schliefien dieses Kapitel mit dem Entwurf eines leistungsfS~higen Telefonnetzes ab, um die Problemstellungen in dem Bereich der Netzwerkkommunikation zu illustrieren. Wie im Vorwort zu dieser dritten Auflage schon vorgestellt wurde, ist das letzte Kapitel Grammatiken als Generierungsmechanismen von Sprachen gewidmet. Die Typen von Grammatiken werden wir nach Chomsky klassifizieren und mit den entsprechenden Maschinenmodellen in Verbindung setzen.
Oas
ief te das wir erf hren k nnen
sind die Offenbarungen der Mystik. Sie sind das fundamentalste Gefiihl, das an der Wiege aller wahren Kunst und Wissenschaft steht. Wer es nicht kennt, kann sich nicht mehr wundern; er erlebt das tiefe Staunen nicht mehr: Er ist so gut wie tot ... Wie eine erloschene Kerze ... A. Einstein
~ ~ ,
2
Alphabete, WSrter, Sprachen und Aufgaben
2.1
Zielsetzung
Die Rechner arbeiten im Prinzip mit Texten, die nichts anderes sind als Folgen yon Symbolen aus einem bestimmten Alphabet. Die Programme sind Texte fiber dem Alphabet der Rechnertastatur, alle Informationen sind im Rechner als Folgen yon Nullen und Einsen gespeichert, Eingaben und Ausgaben sind im Wesentlichen auch Texte (oder k6nnen zumindest als Texte dargestellt werden) fiber einem geeignet gew~thlten Alphabet. Aus dieser Sicht realisiert jedes P r o g r a m m eine Transformation von Eingabetexten in Ausgabetexte. Das erste Ziel des Kapitels 2 ist, den Formalismus fiir den Umgang mit Texten als Informationstr~tger einzufiihren. Dieser liefert die notwendige Grundlage, um tiberhaupt formal die Grundbegriffe der Informatik wie algorithmisches Problem (Aufgabe), Algorithmus (Programm), Rechner, Berechnung, Eingabe, Ausgabe usw. definieren zu k6nnen. Die Grundbegriffe, die hier eingefiihrt werden, sind A l p h a b e t , W o r t und S p r a c h e . Ein Teil unserer Aufgabe hier ist es, auch den Umgang mit diesen Begriffen zu iiben und so einige grundlegende Operationen auf Texten zu erlernen. Das zweite Ziel dieses Kapitels ist zu lernen, wie der eingefiihrte Formalismus zur formalen Darstellung yon algorithmischen Aufgaben genutzt werden kann. Dabei betrachten wir iiberwiegend zwei Klassen yon Aufgaben, E n t s c h e i d u n g s p r o b l e m e und O p t i m i e r u n g s p r o b l e m e . Das dritte und letzte Ziel dieses Kapitels ist, sich mit der Komprimierbarkeit von Texten zu beschgftigen. Wir fiihren hier den Begriff der Kolmogorov-
2.2 Alphabete, W6rter und Sprachen
33
K o m p l e x i t ~ i t ein. Dank diesem k6nnen wir nicht nur fiber die kiirzeste Darstellung von Objekten (Texten) und Komprimierbarkeit von Darstellungen sprechen, sondern auch den Informationsinhalt von Texten messen und eine sinnvolle Definition des Adjektivs zufiillig fiir Texte geben. Dies ist ein Beitrag der Informatik auf der philosophischen Ebene, weft er sinnvoll erklS~rt, wann ein Objekt oder eine Erscheinung als zufS~llig eingeordnet werden kann. Ein anderer wichtiger Punkt ist, dass die Kolmogorov-Komplexit~t ein wertvolles Instrument zur Untersuchung von Berechnungen ist, was auch an mehreren Stellen in diesem Buch deutlich gemacht wird.
2.2
Alphabete, WSrter und Spraehen
Bei der algorithmischen Datenverarbeitung reprgsentieren wir die Daten und betrachteten Objekte durch Folgen von Symbolen. Genau wie bei der Entwicklung von natiirlichen Sprachen fangen wir mit der Festlegung von Symbolen an, die wir zur Darstellung der Daten verwenden wollen. Im Folgenden bezeichnet IN = {0, 1, 2 , . . . } die Menge der natiirlichen Zahlen. D e f i n i t i o n 2.1. Eine endliche nichtleere Menge E heiflt A l p h a b e t . Die Elemente eines Alphabets werden B u c h s t a b e n ( Z e i c h e n , S y m b o l e ) genannt. Die Bedeutung ist die gleiche wie bei natiirlichen Sprachen: Das Alphabetwird verwendet, um eine schriftliche Darstellung einer Sprache zu erzeugen. F/Jr uns ist nur wichtig zu wissen, dass wir uns beliebige, aber nur endlich viele Symbole aussuchen diirfen, um eine Darstellung untersuchter Objekte zu realisieren. Wir prgsentieren jetzt einige der hier am hgufigsten benutzten Alphabete.
}-]bool- {0, 1} ist das Boole'sche Alphabet, mit dem die Rechner arbeiten. 9 Elat -- {a, b, c , . . . , z} ist das lateinische Alphabet. 9 2T~statur = 21~t O {A, B , . . . , Z,u, >, 1 ist ein Alphabet fiir die rn-adische Darstellung yon Zahlen. 9 s - {0, 1, z, (,), A, V, ~} ist ein Alphabet, in dem man Boole'sche Formeln gut darstellen kann. 9
Im Folgenden definieren wir W6rter als Folgen von Buchstaben. Man bemerke, dass der Begriff W o r t in der Fachsprache der Informatik einem beliebigen
2 Alphabete, W6rter, Sprachen und Aufgaben
34
Text entspricht und nicht nur der B e d e u t u n g des Begriffs Wort in natiirlichen Sprachen. D e f i n i t i o n 2.2. Sei E ein Alphabet. Ein W o r t iiber E ist eine endliche (eventuell leere) Folge von Buchstaben aus E. Das l e e r e W o r t ,k ist die leere Buchstabenfolge. (Manchmal benutzt man c start A.)
Die L~inge Iwl eines Wortes w ist die Liinge des Wortes als Folge, d.h. die Anzahl der Vorkommen von Buchstaben in w. E* ist die Menge aller WSrter iiber E, E + - E* - {A}. Die Folge 0, 1, 0, 0, 1, 1 ist ein Wort fiber Ebool und fiber ETastatur, 10, 1, 0, 0, 1, 11 = 6. A ist ein Wort fiber jedem Alphabet, - 0. Verabredung. Wir werden W 6 r t e r ohne K o m m a schreiben, d.h. start der Folge z~, z 2 , . . . , z~ schreiben wir z ~ z 2 . . , z~. Also s t a t t 0, 1, 0, 0, 1, 1 benutzen wir im Folgenden die Darstellung 010011. Das Leersymbol u fiber ET~statur ist unterschiedlich yon A, es gilt lul = 1. Somit kann der Inhalt eines Buches oder ein P r o g r a m m als ein Wort fiber ETastatu~ betrachtet werden.
(}--]bool)*
{A, 0, 1, 00, 01, 10, 11,000,001,010, 1 0 0 , 0 1 1 , . . . } {,~} ~ {XlX2... xi l i E IN, xj E }-]bool fiir j -- 1 , . . . , i}.
Wir sehen an diesem Beispiel, dass eine MOglichkeit, alle WOrter fiber einem A l p h a b e t aufzuzghlen, darin besteht, alle W a r t e r der Lgnge i - 0, 1 , 2 , . . . hintereinander zu schreiben. Aufgabe 2.1. Bestimme ffir jedes i c IN, wie viele WSrter der L~nge i fiber einem Alphabet E existieren. Aufgabe 2.2. Gegeben sei ein Alphabet E - {0, 1, r mit k K n .
Seinen k, n positive ganze Zahlen
(i) Bestimme die Anzahl der verschiedenen W6rter der Lgnge n mit genau k Vorkommen des Symbols #. (ii) Bestimme die Anzahl der verschiedenen W6rter der Lgnge n mit h6chstens k Vorkommen des Symbols #.
2.2 Alphabete, W6rter und Sprachen
35
W6rter kSnnen wir benutzen, um unterschiedliche Objekte wie z.B. Zahlen, Formeln, Graphen und Programme darzustellen. Ein Wort x - X l X 2 . . . x ~ E (Eboo~)*, xi E P'bool fiir i -- 1 , . . . , n, kann als die bin/~re Darstellung der Zahl n
-
2
i=1
betrachtet werden. Fiir eine nat/irliche Zahl m bezeichnen wir durch B i n ( m ) E E~oo~ die kiirzeste I bingre Darstellung von m, also N u m m e r ( B i n ( m ) ) m. A u f g a b e 2.3. Eine bingre Darstellung jeder positiven Zahl beginnt mit einer 1. Wie lang ist Bin(m) bei einer gegebenen Zahl m?
A u f g a b e 2.4. Sei x r (E,~)* fiir ein m _> 1. Betrachte x als m-adische Darstellung einer Zahl Nummer.~(x). Wie berechnet man Nummer.~(x)?
Eine Zahlenfolge al, a 2 , . . . , a,~, m E IN, ai E IN fiir i - 1 , . . . , m, kann man als Bin(al)#Bin(a2)#
. . . #Bin(a,~)
E {0, 1, #}*
darstellen. Sei G - (V, E) ein gerichteter Graph mit der Knotenmenge V und der Kantenmenge E c_ {(u, v) l u , v E 17, u r v } . Sei I V I - n die Kardinalitgt von V. Wir wissen, dass wir G durch eine Adjazenzmatrix Ma reprgsentieren kSnnen. Ma[aij] hat die GrSf3e n x n und
a~j- 1 ~
(v~, vj) e E.
Daher bedeutet aij - 1, dass die Kante (vi, vj) in G vorhanden ist, und aij - 0 bedeutet, dass die Kante (vi, vj) in G nicht vorhanden ist. Eine Matrix k6nnen wir als ein Wort fiber dem Alphabet E - {0, 1, # } reprgsentieren. Wir schreiben einfach die Zeilen von Ma hintereinander und das Symbol # benutzen wir, um das Ende einer Zeile zu markieren. Man betrachte den Graphen in Fig. 2.1. 1Die Forderung, dass Bin(m) das kiirzeste Wort mit Nummer(Bin(m)) - m ist, bedeutet nur, dass das erste Symbol yon Bin(m) 1 ist.
2 Alphabete, W6rter, Sprachen und Aufgaben
36
V2
Vl(
C, V3
~-V4
Fig. 2.1 Die entsprechende Adjazenzmatrix ist 0 0 1 1 001 1 0101 0 0 0 0
"
Die vorgeschlagene Kodierung als Wort fiber {0, 1, ~ } ist 0011#0011#0101#0000#. Es ist Mar, dass diese Darstellung eindeutig ist, was bedeutet, dass m a n aus der gegebenen Darstellung den Graphen eindeutig b e s t i m m e n kann. Aufgabe 2.5. Die vorgeschlagene Darstellung eines Graphen als Wort fiber {0, 1, r hat die L~nge n(n + 1) fiir einen Graphen mit n Knoten. Uberlegen Sie sich eine kfirzere eindeutige Darstellung yon Graphen fiber dem Alphabet {0, 1, r Aufgabe 2.6. Entwerfen Sie eine Darstellung ffir Graphen tiber dem Alphabet Ebool. Bei algorithmischen Aufgaben sind die Eingaben oft gewichtete Graphen G = (V, E, h), wobei h e i n e Funktion von E nach I N - {0} ist. Informell bedeutet dies, dass jeder Kante e E E ein Gewicht (manchmal auch Kosten genannt) h(e) zugeordnet ist. Wir wissen, dass auch solche Graphen durch Adjazenzmatrizen darstellbar sind. Auch in diesem Fall bedeutet aij - 0 , dass die Kante 2 {vi, vj} nicht vorhanden ist. Falls {vi, vj} E E, dann ist aij = h({vi, vj}) das Gewicht der Kante {vi, vj}. In diesem Fall k6nnen wir die Gewichte aij = h{vi, vj} bingr darstellen und durch r abtrennen. Urn das Ende einer Zeile zu bezeichnen, kann 2Die ungerichtete Kante zwischen u und v bezeichnen wir hier als {u, v}. Ffir eine gerichtete Kante yon u nach v benutzen wir die iibliche Bezeichnung (u, v).
2.2 Alphabete, W6rter und Sprachen
37
man zwei # hintereinander benutzen. Damit hat der gewichtete Graph in Fig. 2.2 mit der Adjazenzmatrix 0 7 0 6 1
7 0 1 1 0
0 1 0 6 0
6 1 6 0 5
1 0 0 5 0
die folgende Darstellung fiber {0, 1, #}"
0#111#0#110#1##111#0#1#1#0##0#1#0#110#0##110#1#110# 0#101##1#0#0#101#0 Vl
1
7 V2
V5
V4
V3
Fig. 2.2 Weil der betrachtete Graph ungerichtet ist, gilt ai] = a j i f/Jr alle i, j. In unserer Darstellung bedeutet dies, dass die Information fiber das Gewicht jeder Kante in dem Wort doppelt vorkommt. Deswegen reicht es aus, nur die Matrixelemente oberhalb der Hauptdiagonalen zu betrachten. Das resultierende Wort fiber {0, 1, # } ist dann 111#0#110#1##1#1#0##110#0##101. Als letztes Beispiel betrachten wir die Darstellung yon Boole'schen Formeln, die nur die Boole'schen Operationen Negation (=), Disjunktion (V) und Konjunktion (A) benutzen. Im Folgenden bezeichnen wir Boole'sche Variablen in Formeln als X l , X 2 , . . . . Die Anzahl der m6glichen Variablen ist unendlich und deswegen k6nnen wir X l , X 2 , . . . nicht als Buchstaben unseres Alphabets benutzen. Wir benutzen daher das Alphabet Elogic = {0, 1, x, (,), A, V, =} und kodieren die Boole'sche Variable xi als das Wort x B i n ( i ) fiir jedes i E IN. Die
2 Alphabete, W6rter, Sprachen und Aufgaben
38
restlichen Symbole der Formel iibernehmen wir eins zu eins. Damit hat die Formel
(X 1 V X7) A re(X12 ) A (x 4 V
2; 8
V ~(X2) )
die folgende Darstellung (xl V x111) A ~(x1100) A (xl00 V xl000 V ~(xl0)). Eine niitzliche Operation fiber W6rter ist die einfache Verkettung zweier W6rter hintereinander. D e f i n i t i o n 2.3. D i e eine Abbildung K:E*
fiir alle x, y E
Verkettung (Konkatenation) f i i r
ein Alphabet
E ist
x E* ~ E*, s o d a s s
E*.
Sei E = {0, 1, a,b} und seien x = O a a l b b und y = 111b. Dann ist K ( x , y )
=
x . y = Oaalbblllb.
B e m e r k u n g 2.1. Die Verkettung K fiber E ist eine assoziative Operation fiber E*, weil
K ( ~ , K(~, ~ ) ) = ~ . ( ~ ~ ) = ~
= (~ ~)~
= K ( K ( ~ , ~), ~ )
fiir alle u, v, w E E*. Ferner gilt fiir jedes x E E*: x . )~ = )~ . x = x .
Also ist (E*, K, A) eine Halbgruppe (Monoid) mit dem neutralen Element A. Es ist klar, dass die Konkatenation nur f/Jr ein einelementiges Alphabet kommutativ ist. Bemerkung
2.2. Fiir alle x, y E E* gilt:
I~yl = I ~ yl = I~1 + lyl. Im Folgenden werden wir die einfache Notation xy statt der Notation K ( x , y) und x . y bevorzugen.
2.2 Alphabete, WSrter und Sprachen
39
D e f i n i t i o n 2.4. Sei E ein Alphabet. Fiir alle x E E* u n d alle i E IN definieren wir die i-re I t e r a t i o n x i von x als X 0 --
)~,
X 1 --
X
und
xi
-
xx
i-1.
So ist z u m Beispiel t ( ( a a b b a , aaaaa) - a a b b a a a a a a - a2b2a 6 - a2b2(aa) 3. W i r sehen, dass uns die eingefiihrte N o t a t i o n eine kiirzere D a r s t e l l u n g von W S r t e r n ermSglicht. Im F o l g e n d e n definieren wir TeilwSrter eines W o r t e s x als z u s a m m e n h ~ n g e n d e Teile yon x (Fig. 2.3).
a, Teilwort
PrS~fix
,a Suffix
Fig. 2.3 Definition
9 9 9 9
v v v v v
2.5. S e i e n v, w E E* fiir ein Alphabet E.
heiflt ein T e i l w o r t von w e , 3x, y E E* " w - x v y . heiflteinSuffix vonw ev3xEE*:w=xv. heiflteinPr~ifixvonw ev3yEE*:w=vy. # / ~ heiflt t i n e c h t e s Tcilwort (Suffix, Priifix) von w g e n a u dann, w e n n r w, u n d v ist ein Teilwort (Suffix, Priifix) yon w.
Es gilt (abc) a - abcabcabc, u n d das W o r t abc ist ein echtes PrSofix von (abc) 3. Das W o r t bc ist ein echtes Suffix yon (abc) 3. A u f g a b e 2.7. Sei E ein Alphabet und sei x c E ~ fiir ein n C I N - {0}. Wie viele unterschiedliche TeilwSrter kann x hSchstens haben? Zghle alle unterschiedlichen TeilwSrter des Wortes abbcbbab auf. D e f i n i t i o n 2.6. Sei x E E* u n d a E E. D a n n ist IXla definiert als die A n z a h l der V o r k o m m e n von a in x.
Fiir jede M e n g e A bezeichnet IAI die Kardinalitiit yon A u n d 7:' ( A ) S c A } die P o t e n z m e n g e yon A. Also ist I(abbab)la -- ~, I(11bb0) 10 -- 1. Fiir alle x E E* gilt
Ixl-
Ix a aEE
{S I
2 Alphabete, WSrter, Sprachen und Aufgaben
40
In diesem Buch brauchen wir oft eine feste Ordnung von allen W6rtern fiber einem gegebenen Alphabet. Die giinstigste M6glichkeit fiir uns ist, die folgende kanonische Ordnung zu betrachten. D e f i n i t i o n 2.7. Sei E - {Sl, s 2 , . . . , s,~}, m >_ 1, ein Alphabet und sei Sl < s2 < . . . < s,~ eine Ordnung auf E. Wir definieren die k a n o n i s c h e O r d n u n g auf E* fiir u, v E E* wie folgt: u < v r
ul -
Ivl/~u-
x
. si
. u'
/~ v
-
x
. sj
. v'
fiir irgendwelche x, u ~, v ~ E E* und i < j.
Unter dem Begriff Sprache verstehen wir jede Menge yon W6rtern fiber einem festen Alphabet. D e f i n i t i o n 2.8. Eine S p r a c h e L iiber einem Alphabet E ist eine Teilmenge yon E*. Das K o m p l e m e n t L c der Sprache L beziiglich E ist die Sprache E * - L . Lo = 0 ist die leere S p r a c h e .
L~ = {A} ist die einelementige Sprache, die nur aus dem leeren Wort besteht. Sind L 1 und L2 Sprachen iiber E, so ist L 1 9 L 2 = ElL
2 = {vw
I v C L 1 ~tTtd w C L2}
die K o n k a t e n a t i o n von L1 und L2. Ist L eine Sprache iiber E, so definieren wir
L ~ := La und L i+l = L i. L fiir alle i E IN,
L*- [JL
[J
L
-L L *
L* n e n n t m a n den K l e e n e ' s c h e n S t e r n .
Die Folgenden Mengen sind Sprachen fiber dem Alphabet E = {a, b}: L1 = 0, L2 = {)~}, L3 = {A, ab, abab}, L 4 = ~ * = {)~, a, b, aa, . . .}, L5 = E + = {a,b, a a , . . . } , L6 = {a}* = {A,a, aa, a a a , . . . } = { a i [ i E IN}, L7 = {a; [p ist eine Primzahl}, Ls = {aib2ia~[i E IN}, L9 = E, Llo = E* = {aaa, aab, aba, abb, baa, bab, bba, bbb},
die Menge aller grammatisch korrekten Texte im Deutschen ist eine Sprache fiber ETastatur ~ und
2.2 Alphabete, W6rter und Sprachen
41
die Menge aller syntaktisch korrekten Programme in C + + ist eine Sprache fiber }--]Tastatur 9 Man bemerke, dass E i Lx.L-L.
{x e E* I I x l -
i}, und dass LoL -
Lo -
O,
Aufgabe 2.8. Sei L1 - {A, ab, b3a4} und L2 - {ab, b, ab2, b4}. Welche W6rter liegen in der Sprache L1L2? Unser n~chstes Ziel ist, den Umgang mit Sprachen ein wenig zu tiben. Weil Sprachen Mengen sind, haben die tiblichen Operationen Vereinigung (U) und Schnitt (N) eine klare Bedeutung. Zu diesen Operationen haben wir die Konkatenation und den Kleene'schen Stern hinzugefiigt. Die erste Frage, die wir uns stellen, ist, ob Distributivgesetze beztiglich U und Konkatenation bzw. beztiglich N und Konkatenation gelten. F/Jr die Konkatenation und U gibt uns das nS~chste Lemma 2.1 eine positive Antwort. Um den Beweis der Gleichheit yon zwei Mengen (Sprachen) A und B zu fiihren, benutzen wir die iiblichen Methoden der Mengentheorie. Wir zeigen nacheinander A C_ B und B C_ A, was A - B impliziert. Um A C_ B zu zeigen, reicht es zu beweisen, dass fiir jedes Element x E A gilt, dass x E B. L e m m a 2.1. Seien L1, L2 und L3 Sprachen iiber einem Alphabet E. Dann gilt L1L2 U L1L3 - L1 (L2 U L3).
Beweis. Zuerst zeigen wir LIL2 U LIL3 C_ LI(L2 U L3). Die Bemerkungen in geschweiften Klammern sind die Begrtindung fiir den vorangegangenen Schritt. Es gilt" LIL2 C_ LI(L2 U L3), weil
L1L2
- { x y [ x E L1 A y E L2} {Definition der Konkatenation} c_ L1 A y u {wei c_ U L1. (L2 U Ls).
{Definition der Konkatenation}
Ebenso zeigt man LIL3 c_ LI(L2UL3). Daraus folgt LIL2ULIL3 c_ LI(L2UL3). Jetzt zeigen wit die Inklusion LI(L2 U L3) C_ LIL2 U LIL3. Sei x E LI(L2 U L3). Dann
x E { y z l y E L I A Z E L2UL3} {Definition der Konkatenation} 3yEL~A3zEL2ULs,
sodat3x=yz
42
2 Alphabete, W6rter, Sprachen und Aufgaben =:> 3y E L1 A (3z E L2 V 3z E La), so daft x - yz {Definition von t2} (3y E L 1 A 3z E L2 " x - - y z )
V (3y E LI A 3Z E L3 " x - y z )
{Distributivgesetz fiir A, V}
(X E {yz I Y E L1 f z E L2})V (X E {yz I Y E L1 f z E f3}) LIL2
LIL3
{Definition der Konkatenation} x E L1L2 U L1L3.
{Definition yon U}
Jetzt wollen wir uns mit der Frage nach der Giiltigkeit des Distributivgesetzes fiir die Konkatenation und den Schnitt beschS~ftigen. Vielleicht ist es auf den ersten Blick iiberraschend, dass hier die Antwort im allgemeinen negativ ist. Es gilt nur eine Inklusion, die wir zuerst zeigen. L e m m a 2.2. Seien L1, L2, L3 Sprachen iiber einem Alphabet E. Dann gilt
LI (L2 A L3) C_ LI L2 N LI L3. Beweis.
Sei x E LI(L2 N L3). Dies ist 5~quivalent zu x E {yz]y
E L1 A z E L2 A L3}
{D efinition der Konkatenation} v:~ 3y, z E E*, y E L1 A (z E L2 A z E L3), so dass x = y z {Definition yon A} r
3y, z E r * , ( y E L 1 A z E L2)A (y E L 1 A z E L3): x = y z
=~ 3y, z e E*, (yz e LIL2) A (yz e L I L 3 ) : x = yz {Definition der Konkatenation} e=> x E LIL2 A LIL3.
{Definition yon A}
Um zu zeigen, dass LI(L2 N L3) D_ LIL2 N LIL3 nicht im allgemeinen gilt, reicht es, drei konkrete Sprachen U1, [/2 und [/3 zu finden, so daft U1([/2 N U2) C UIU2 A UIU3. Die Idee fiir die Suche nach solchen U1, [/2, [/3 beruht auf der Tatsache, dass die einzige Implikation in dem Beweis von Lemma 2.2 nicht umgekehrt werden kann. Wenn ein Wort x in LIL2 und auch in LIL3 liegt, bedeutet das noch nicht x = yz, wobei x E L1 und z E L2 N L3. Es
2.2 Alphabete, W6rter und Sprachen
43
kann passieren, dass es zwei verschiedene Zerlegungen von x gibt, so dass gilt X - YlZl --Y2Z2 mit Yl r Y2 und Yl E L1, Z1 E L2 und Y2 E L1, z2 E L3. L e m m a 2.3. Es ezistieren U1, U2, U3 E (Ebool)*, so dass
Ul(U2 n u3)
UlU2 n UlU3
13eweis. Zuerst wS~hlen wir U2 = {0} und U3 = {10}. Damit ist U2 N U3 = 0 und damit auch UI(U2 A U3) = 0 fiir jede Sprache U1. Jetzt reicht es aus, U1 so zu wS~hlen, dass U1 U2 ffl U1U3 nicht leer wird. Wir setzen U1 = {A, 1}. Dann ist U1U2= { 0 , 10}, U1U3= {10,110} und damit U~U2 A UIU3 = {10}. D A u f g a b e 2.9. Seien L1, L2 und L3 Sprachen fiber dem Alphabet {0}. Gilt LI(L2 N L3) - LIL2 A LIL3 7. A u f g a b e 2.10. Seien L1 c_ E~ und L2,L3 c E~ fiir zwei Alphabete E1 und E2 mit E1 N
E2 - 0. Gilt LI(L2 N L3) - LIL2 V?LIL3? A u f g a b e 2.11. Existieren Sprachen L1, L2 und L3, so dass LI(L2AL3) endlich und LIL2A LIL3 unendlich ist?
Im Folgenden tiben wir noch den Umgang mit dem Kleene'schen Stern. B e i s p i e l 2.1. Es ist {a}*{b}* - {a~Yl i, j ~ IN}.
13eweis. Zuerst zeigen wir {a}*{b}* C_ { a i t C [ i , j E IN}. Sei x E {a}*{b}*. Dann x-
yz, wobei y E {a}*A z E {b}* {Definition der Konkatenation}
=~
x-
yz, wobei (3k E l N ' y E {a} k) A (3m E I N ' z E {b} "~) {Definition des Kleene'schen Stern}
x-
yz, wobei (3k E l N ' y -
3k, rn E IN, so dass x =~
akb "~
x E {aibdli, j E IN}.
Jetzt zeigen wir {a~tCl i, j E IN} c_ {a}*{b}*.
a ~) A (3rn E l N ' z -
b"~)
44
2 Alphabete, W6rter, Sprachen und Aufgaben
Sei z E
{a~lC l i, j
~ IN}. D a n n
x=~
a~bl fiir irgendwelche Zahlen r, 1 E IN
z E {a}*{b}*, weil a ~ E {a}*, b1 E {b}*.
Aufgabe 2.12. Seweisen oder widerlegen Sie: ({a}*{b}*)* = {a,b}* D e f i n i t i o n 2.9. Seien E1 und E2 zwei beliebige Alphabete. Ein Hornornorphismus von E1 nach E2 ist jede Funktion h " E~ ~ E~ mit den folgenden Eigenschaften: h(A) = A und
(//)
=
r?
W i r b e o b a c h t e n leicht, dass es zur Spezifikation eines H o m o m o r p h i s m u s reicht, h(a) fiir alle B u c h s t a b e n a E E1 festzulegen.
Aufgabe 2.13. Sei h ein Homomorphismus yon E1 nach E2. Beweisen Sie mit HiKe der Induktion, dass fiir jedes Wort x = xlx2...z,~, zi E E1 fiir i = 1,..., m,
h(~) = h(~l)h(~).., h ( ~ ) . B e t r a c h t e n wir h ( # ) = 10, h(0) = 00 u n d h(1) = 11. Es ist klar, dass h ein H o m o m o r p h i s m u s yon {0, 1, r nach Ebool ist. h (011:ff: 101:if:)
h(O)h(1)h(1)h(~)h(1)h(O)h(1)h(~) 0011111011001110.
W i r k 6 n n e n h b e n u t z e n , u m jede eindeutige D a r s t e l l u n g von irgendwelchen O b j e k t e n tiber {0, 1, r in eine neue eindeutige D a r s t e l l u n g dieser O b j e k t e fiber Ebool zu iiberfiihren.
Aufgabe 2.14. Definieren Sie einen Homomorphismus von {0, 1, r nach Ebool, der unendlich viele unterschiedliche W6rter aus {0, 1, 4P}* auf das gleiche Wort aus (Ebool)* abbildet. Aufgabe 2.15. Definieren Sie einen injektiven Homomorphismus yon Elogic nach Ebool, um eine eindeutige Darstellung von Boole'schen Formeln fiber Ebool zu erzeugen.
2.3 Algorithmische Probleme
45
Aufgabe 2.16. Seien E1 und E2 zwei Alphabete. Sei h ein Homomorphismus yon E1 nach
E2. Fiir jede Sprache L c_ E~ definieren wir h(L)-{h(w) wcL}. Seien L1, L2 C_E~. Beweisen oder widerlegen Sie die foglende Aussage: h(L1)h(L2) - h(L1L2).
2.3
Algorithmische Probleme
Bevor wir den intuitiven Begriff Algorithmus durch das Modell der Turingmaschine formal definieren, werden wir statt Algorithmus den Begriff Programm benutzen. Wir setzen voraus, dass der Leser weifi, was ein Programm ist. In welcher Programmiersprache es geschrieben ist, spielt hier keine Rolle. Wenn wir Programme als Algorithmen betrachten, fordern wir jedoch, dass ein solches Programm f/Jr jede zulS~ssige Eingabe hS~lt und eine Ausgabe liefert. Daher ist es fiir einen Algorithmus unzulS~ssig, in eine Endlosschleife zu laufen. Mit dieser Voraussetzung realisiert ein Programm (Algorithmus) A typischerweise eine Abbildung A~I
----~~2
fiir irgendwelche Alphabete
E1
und E2. Dies bedeutet, dass
(i) die Eingaben als W6rter kodiert sind, (ii) die Ausgaben als W6rter kodiert sind und (iii) A fiir jede Eingabe eine eindeutige Ausgabe bestimmt. Fiir jeden Algorithmus A und jede Eingabe x bezeichnen wir mit A ( x ) die Ausgabe des Algorithmus A fiir die Eingabe x. Wir sagen, dass zwei Algorithmen (Programme) A und B ~ q u i v a l e n t sind, falls beide iiber dem gleichen Eingabealphabet E arbeiten und A ( x ) = B ( x ) fiir alle x E E*. Im Folgenden prgsentieren wir einige grundlegende Klassen von algorithmischen Problemen. Wir beginnen mit den Entscheidungsproblemen, die man iiblicherweise benutzt, um die Theorie der Berechenbarkeit und die Komplexitgtstheorie aufzubauen.
2 Alphabete, W6rter, Sprachen und Aufgaben
46
D e f i n i t i o n 2.10. Das E n t s c h e i d u n g s p r o b l e m (E, L) fiir ein gegebenes Alphabet E und eine gegebene Sprache L c_ E* ist, fiir jedes x E E* zu entscheiden, ob
x E L oder x C L. Ein Algorithmus A 15st das Entscheidungsproblem (L, E), falls fiir alle x E E* gilt:
A(x) -
1, falls x E L , O, falls x C L.
Wit sagen auch, dass A die Sprache L e r k e n n t . Wenn fiir eine Sprache L ein Algorithmus existiert, der L erkennt, werden wir sagen, dass L r e k u r s i v ist. 3 Wir benutzen hgufig eine Sprache L C_ E*, um eine gewisse Eigenschaff von W6rtern aus E* (oder von Objekten, die durch die WSrter dargestellt sind) zu spezifizieren. Die WSrter, die in L sind, haben diese Eigenschaft und alle W6rter aus L C - E * - L haben diese Eigenschaft nicht. Ublicherweise stellen wit ein Entscheidungsproblem (E, L) wie folgt dar"
Eingabe: x E E*.
A~tsgabe: d(x) E rbool- {0, 1}, wobei ( 1 falls x E L (J a, x hat die Eigenschaft), 1
[ 0,
falls x ~ L (Nein, x hat die Eigenschaft nicht).
Beispielsweise ist ({a, b}, { a ~ b ~ l n E IN}) ein Entscheidungsproblem, das man auch folgendermagen darstellen kann:
Eingabe: x E {a, b}*. Ausgabe: Ja, x - a~b~ ffir ein n E IN. Nein, sonst. B e i s p i e l 2.2. Ein bekanntes und praktisch wichtiges Entscheidungsproblem ist der P r i m z a h l t e s t (Eboo~, {x E (Eboo~)*lNummer(x)ist eine Primzahl}). Die iibliche Darstellung ist aDie Rekursivitgt ist ein wichtiger Begriff und deswegen geben wir spgter mit dem formalen Modell der Berechnung eine formal prgzise Definition dieses Begriffes.
2.3 Algorithmische Probleme
47
Eingabe: x E (Y~%ool)*. Ausgabe: Ja, falls Nummer(x) eine Primzahl ist, Nein, sonst.
Beispiel 2.3. Sei L = {x E (}--]Tastatur)* I x ist ein syntaktisch korrektes Programm in C++}. Wir k6nnen folgendes Problem betrachten, das eine Teilaufgabe des Compilers ist. Eingabe: x ~ (ETastatur)*Ausgabe: Ja, falls x E L, Nein, sonst.
Beispiel 2.4. Das P r o b l e m des H a m i l t o n s c h e n Kreises ( H K ) i s t (E, HK), wobei E = {0, 1, #} und HK
=
{x E E* I x kodiert einen ungerichteten Graphen, der einen Hamiltonschen Kreis enthglt.4}.
Beispiel 2.5. Das E r f f i l l b a r k e i t s p r o b l e m von a u s s a g e n l o g i s c h e n Form e l n ( E R F ) i s t (Elogi~, E R F ) m i t El~F = {X E (}--]~logic)* I x kodiert eine erfiillbare Formel}.
Eine wichtige Teilklasse von Entscheidungsproblemen ist die Klasse der Aquivalenzprobleme. Das Aquivalenzproblem fiir Programme besteht z.B. darin, fiir zwei Programme A und B in irgendeiner festen Programmiersprache (also fiir die Eing~be (A, B) E (ET~st~tur)*)zu entscheiden, ob A und B ~quivalent sind. Ein anderes Beispiel ist, fiir zwei Boole'sche Formeln zu entscheiden, ob beide Formeln die gleiche Boole'sche Funktion darstellen. Definition 2.11. Seien E und F zwei Alphabete. Wit sagen, daft ein Algorithmus A eine F u n k t i o n ( T r a n s f o r m a t i o n ) f : E* ---+ F* b e r e c h n e t (realisiert), falls A(x) = f (x) fiir alle x E E*. 4Zur Erinnerung, ein Hamiltonscher Kreis eines Graphen G ist ein geschlossener Weg (Kreis), der jeden Knoten von G genau einmal enth/~lt.
2 Alphabete, WSrter, Sprachen und Aufgaben
48
Die Entscheidungsprobleme sind spezielle FS~lle von Funktionsberechnungen, weil das LSsen eines Entscheidungsproblems bedeutet, die charakteristische Funktion 5 einer Sprache zu berechnen. Auf den ersten Blick kSnnte man den Eindruck bekommen, dass die Berechnung von Funktionen die allgemeinste Darstellung von algorithmischen Problemen ist. Die folgende Definition zeigt, dass das nicht der Fall ist. D e f i n i t i o n 2.12. Seien E und F zwei Alphabete, und sei R c_ E* x F* eine Relation in E* und F*. Ein Algorithmus A b e r e c h n e t R (oder 16st d a s R e l a t i o n s p r o b l e m R), falls fiir jedes x E E* gilt:
(x,A(x)) E R. Man bemerke, dass es hinreichend ist, ffir jedes gegebene x eins yon potenziell unendlich vielen y mit (x, y) E R zu finden, um ein Relationsproblem zu 15sen. Die folgenden Beispiele zeigen, dass die Relationsprobleme nicht nur eine mathematische Verallgemeinerung der Berechnung von Funktionen darstellen, sondern dass wit viele derartige Probleme in der Praxis haben. Sei /~fac ~ (}-]bool)* X (}-]bool)*, wobei (x, y) e ~fac g e n a u d a n n , w e n n entweder Nummer(y) ein Faktor 6 yon N u m m e r ( x ) i s t oder = 1, wenn Nummer(x) eine Primzahl ist. Eine anschauliche Darstellung dieses Relationsproblems kSnnte wie folgt aussehen.
Eingabe: x E (Ebool)*. Ausgabe: y E (Ebool)*, wobei y - 1 ist, falls Nummer(x) eine Primzahl ist, r
Ein
anderes
schweres
Problem
ktor
ist
i t.
die
Beweisherstellung.
Es
sei
/~Beweis ~ (~Tastatur) * X (}--]Tastatur)*~ w o b e i (x~ y) E /~Beweis~ weIlI1 e I l t w e d e r x
eine wahre Aussage in einer bestimmten mathematischen Theorie kodiert und y einen Beweis der durch , kodierten Aussage darstellt oder y - u, w e n n , keine wahre Aussage darstellt. Fiir uns sind aber die Optimierungsprobleme, die einen Spezialfall von Relationsproblemen darstellen, von zentralem Interesse. Um die Struktur der Optimierungsprobleme anschaulich darzustellen, benutzen wir folgende Beschreibung statt der Relationsdarstellung. Informell bestimmt eine Eingabe m eines 5Die charakteristische Funktion fL einer Sprache L C_ E* ist eine Funktion aus E* nach {0, 1} mit fL(x) -- 1 genau dann, wenn x C L. 6Eine Zahl a ist ein Faktor einer Zahl b, falls a die Zahl b teilt und a 6 {1, b}.
2.3 Algorithmische Probleme
49
Optimierungsproblems eine Menge M ( x ) yon zulS~ssigen L6sungen f/Jr x. Damit bekommen wir auch eine Relation R mit (x, y) E R, wenn y eine zul~tssige L6sung yon x ist. Aber dieses R ist nicht das zu 16sende Relationsproblem. Die Eingabe x bestimmt zusS~tzlich noch den Preis fiir jedes y mit der Eigenschaft (x, y) E _R. Die Ausgabe zu x muss eine zulS~ssige L6sung mit dem giinstigsten (je nach Aufgabenspezifizierung minimMen oder maximalen) Preis sein. D e f i n i t i o n 2.13. Ein O p t i m i e r u n g s p r o b l e m ist ein 6-Tupel L t - (EI, Eo, L, Ad, cost, goal), wobei:
(i) (~) (~)
E1 ist ein Alphabet (genannt E i n g a b e a l p h a b e t ) , Eo ist ein Alphabet (genannt A u s g a b e a l p h a b e t ) , L c E~ ist die Sprache der zul~issigen E i n g a b e n (als Eingaben kommen nur WSrter in Frage, die eine sinnvolle Bedeutung haben). Ein x E L wird ein P r o b l e m f a l l ( I n s t a n z ) von U, genannt. M ist eine Funktion yon L nach 7)(E~)), und fiir jedes x E L i s t M ( x ) die M e n g e der zul~issigen L S s u n g e n fiir x, cost ist eine Funktion, cost" [_Jx~L(M(x ) • {x}) -~ IR+, genannt P r e i s funktion, goal E {Minimum, Maximum} ist das Optimierungsziel.
Eine zulSssige LSsung (~ E M ( x ) heiflt o p t i m a l fiir den Problemfall x des Optimierungsproblems U, falls cost(~,x) - O p t u ( x ) - goal{cost(/3, x) l /3 E M ( x ) } . Ein Algorithmus A 15st 14, falls fiir jedes x E L
(i) (~)
A(x) E M ( x ) (A(x) ist eine zuliissige LSsung des Problemfalls x yon Lt), ~o~t(d(~),~) - go~l{~o~t(Z,~) l ~ e M(~)}
Falls g o a l - Minimum, ist Lt ein M i n i m i e r u n g s p r o b l e m ; falls g o a l - Maximum, ist Lt ein M a x i m i e r u n g s p r o b l e m . In der Definition eines Optimierungsproblems als 6-Tupel hat das Eingabealphabet E1 die gleiche Bedeutung wie das Alphabet von Entscheidungsproblemen, d.h. E1 benutzt man, um die Instanzen von b/ darzustellen. Analog benutzt man das Ausgabealphabet Eo fiir die Darstellung von Ausgaben (zulgssigen L6sungen). Die Sprache L C E} ist die Menge der Darstellungen von Problemf~llen. Dies bedeutet, dass wir uns auf das Optimierungsproblem
2 Alphabete, W6rter, Sprachen und Aufgaben
50
und nicht auf das Entscheidungsproblem (Ez, L) konzentrieren und dass wir voraussetzen, dass eine Eingabe aus E~ - L nie vorkommen wird. Ein Problemfall z E L formuliert meistens eine Menge von EinschrS~nkungen und A4(z) ist die Menge yon Objekten (zulS~ssigen L6sungen zu z), die diese EinschrS~nkungen erfiillen. In der Regel bestimmt der Problemfall z auch, wie hoch die Kosten cost(c~,z) fiir jedes ct E Ad(z) sind. Die aufgabe ist, in der Menge der zulS~ssigen L6sungen A/t(z) zu z eine optimale zu finden. Die typische Schwierigkeit ist, dass die Menge Ad(z) eine so grot3e MS~chtigkeit hat, dass es unm6glich ist, alle zulS~ssigen L6sungen aus Ad(z) zu generieren und deren Kosten zu vergleichen. Um die Spezifikation von konkreten Optimierungsproblemen zu veranschaulichen, lassen wir oft die Spezifikation von EI, Eo und die Darstellung von Daten fiber E1 und Eo aus. Wir setzen einfach voraus, dass die typischen Daten wie Zahlen, Graphen oder Formeln in der oben prgsentierten Darstellung vorkommen. Dadurch reduzieren wir die Definition eines Optimierungsproblems auf die Spezifikation folgender vier Objekte: 9 die Menge der Problemf~lle L, also die zulgssigen Eingaben, 9 die Menge der EinschrS~nkungen, gegeben durch jeden Problemfall z E L, und damit Ad(z) fiir jedes z E L, 9 die Kostenfunktion, 9 das Optimierungsziel.
Beispiel 2.6. Traveling Salesman Problem (TSP)
Eingabe:
Ein gewichteter vollstS~ndiger Graph (G, c), wobei G = (IF, E), V = {Vl,...,v~} fiir ein n E IN - {0}, und c: E ~ IN - {0}. {Strikt formal ist die Eingabe jedes Wort z E {0, 1, r so dass z einen gewichteten, vollstSmdigen Graphen (G, c) darstellt}. Einschv~nkungen: Far jeden Problemfall (G, c) ist A4(G, c) die Menge aller Hamiltonscher Kreise yon G mit der Kostenfunktion e. Jeder Hamiltonsche Kreis 15~sst sich durch ein (n + 1)-Tupel yon Knoten vii, vi~,..., vi~, vi~ darstellen, wobei ( i l , . . . , i~) eine Permutation yon {1, 2 , . . . , n} ist. Man beachte, dass diese Darstellung nicht eindeutig ist. {Eine streng formale Darstellung yon Ad(G, c) ware die Menge aller W6rter y l # y 2 C P . . . # y ~ E {0,1,r = E b mit Yi E {0,1} + fiir i = 1, 2 , . . . , n und {N~f/zf/zef(~]l), N~f/zf/zef(~]2),... , N~tTrtTrtef(~jn)} {1, 2, =
...,
2.3 Algorithmische Probleme
51
K o s t e n : Fiir jeden Hamiltonschen Kreis H = vi~ , vi~, . . . , Vin, Vi~ E A/t(G, c),
n
CO~t((Vil,... ,Vin,Vil), (G,C)) - ~ C ({Vij,Vi( j modn)+l}) ' j=l
d.h., die Kosten jedes Hamiltonschen Kreises ist die Summe der Gewichte aller seiner Kanten. Ziel: M i n i m u m . Fiir den Problemfall von TSP aus Fig. 2.4 gilt: c o s t ( ( v l , v2, v3, va, v5, vl), (G, c))
=
8+1+7+2+1=19
c o s t ( ( v l , v5, v3, v2, v4, Vl), (G, c))
:
1 + 1 + 1 + 1 + 1 = 5.
Der Hamiltonsche Kreis Vl, v5, v3, v2, v4, V 1 ist die einzige optimale LSsung zu diesem Problemfall yon TSP. V1
1
v5
1 V2
V4
V3
Fig. 2.4
Das TSP ist ein schweres Optimierungsproblem. In der Anwendung erscheihen aber oft nur ProblemfSJle, die gewisse gute Eigenschaften haben und ftir die man bei der Suche nach einer guten L6sung bessere Chancen hat. Wir sagen, dass ein Optimierungsproblem ~/~1 -- (~I, ~ 0 , L/, J~/{, cost, goal) ein Tellp r o b l e m des Optimierungsproblems b/2 - (EI, E o , L, 3 4 , cost, goal) ist, falls L ~ C_ L ist. Auf diese Weise definieren wir auch das m e t r i s c h e T S P ( A - T S P ) als ein Teilproblem yon TSP. Das bedeutet, dass die EinschrS~nkungen, die Kosten und das Ziel genauso definiert sind wie bei TSP, nur die Menge der Eingaben (Problemf~lle) wird folgendermagen eingeschr~nkt" Jeder Problemfall
2 Alphabete, WSrter, Sprachen und Aufgaben
52
(G, c) von A - T S P erfiillt die sogenannte D r e i e c k s u n g l e i c h u n g , tet, dass
_
2.
(n-
Eigenschaft, die besagt, teurer sein darf als beM a n bemerke, dass der erfiillt.
1)!/2, wenn G ein Graph mit n
Eine K n o t e n i i b e r d e c k u n g eines G r a p h e n G - (V, E) ist jede K n o t e n m e n g e U C_ V, so dass jede K a n t e aus E mit mindestens einem K n o t e n aus U inzident 7 ist. Die Menge {v2, v4, vs} ist z.B. eine K n o t e n t i b e r d e c k u n g des G r a p h e n aus Fig. 2.5, weil jede K a n t e mindestens mit einem dieser drei K n o t e n inzident ist. Die Menge {vl, v2, va} ist keine K n o t e n i i b e r d e c k u n g des G r a p h e n aus Fig. 2.5, weil die K a n t e {v4, vs} durch keinen der K n o t e n vl, v2 und va bedeckt wird. Aufgabe 2.18. Das Knotenfiberdeckungsproblem (minimum vertex cover problem, kurz M I N - V C P ) ist ein Minimierungsproblem, bei dem man ffir einen gegebenen (ungerichteten) Graphen G eine Knotenfiberdeckung mit minimaler Kardinalitgt sucht. (i) Bestimmen Sie die Menge aller Knotenfiberdeckungen des Graphen aus Fig. 2.5. (ii) Geben Sie die formale Beschreibung des MIN-VCP an. Spezifizieren Sie dabei die Darstellung der Eingaben und der Ausgaben fiber dem Alphabet {0, 1, ~:}. Vl
V5
V2
v4
v3
Fig. 2.5 7Eine Kante {u, v} ist inzident zu ihren Endpunkten u und v.
2.3 Algorithmische Probleme
53
B e i s p i e l 2.7. Das Problem der m a x i m a l e n Clique ( M A X - C L ) Eine Clique eines G r a p h e n G = (V, E) ist jede Teilmenge U c V, so dass {{u, v} l u, v E U, u r v} c_ E (die K n o t e n von U bilden einen vollstandigen Teilgraph yon G). Das Problem der m a x i m a l e n Clique ist, eine Clique mit maximaler Kardinalit~t zu finden.
Eingabe: Ein (ungerichteter) G r a p h C -
(If, E).
Kosten: Ftir jedes S E ]td(G) ist cost(S, G) - I s l . Ziel: Maximum. Aufgabe 2.19. Ein Graph T - (V, E') heif3t Spannbaum eines Graphen G - (V, E), falls T ein Baum (ein kreisfreier zusammenh~ngender Graph) und E' C_E ist. Das Gewicht eines Spannbaumes T - (V, E') eines gewichteten Graphen (G, c) entspricht der Summe ~-~-e~z,c(e) aller Gewichte der Kanten in E'. Das Problem des minimalen Spannbaumes ist, fiir einen gewichteten Graphen (G, c) einen Spannbaum mit dem minimalen Gewicht zu bestimmen. Geben Sie die formale Darstellung des Problems des minimalen Spannbaumes als Optimierungsproblem an. B e i s p i e l 2.8. Maximale Erfiillbarkeit ( M A X - S A T ) Sei X = {Xl,X2,...} die Menge der Boole'schen Variablen. Die Menge der Literale fiber X ist Litx = { x , ~ I x E X } , wobei ~ die Negation von x bezeichnet. Eine Klausel ist eine beliebige endliche Disjunktion von Literalen (z.B. Xl V~3Vx4V~7). Eine Formel ist in k o n j u n k t i v e r N o r m a l f o r m ( K N F ) , wenn sie eine K o n j u n k t i o n von Klauseln ist. Ein Beispiel einer Formel fiber X in K N F ist
r - ( ~ v ~ ) A (~, v ~ v ~ ) A ~ A ( ~ v ~ ) A ~ A (~, v ~ ) . Das Problem der m a x i m a l e n Erfiillbarkeit ist, fiir eine gegebene Formel (I) in K N F eine Belegung ihrer Variablen zu finden, die die m a x i m a l m6gliche Anzahl von Klauseln von (I) erftillt.
Eingabe: Eine Formel q) = F1 A F2 A . . . A F,~ fiber X in KNF, wobei Fi eine Klausel ftir i = 1 , . . . , m i s t , m E I N - {0}. Einschriinkungen: Fiir jede Formel (I) fiber {xi~, xi2,..., Xin} ist a4(~)
= {0,1} ~
{Jedes c~ = c~1.., c~, E ]t4(q)), c~j E {0, 1} fiir j = 1 , . . . , n, stellt eine Belegung dar, die xi~ den Wert c~j zuordnet.} Kosten: Fiir jedes (I) und jedes c~ C A4((I)) ist cost(c~, ep) die Anzahl der Klauseln, die durch c~ erfiillt werden.
2 Alphabete, WSrter, Sprachen und Aufgaben
54
Ziel: Maximum. Zu der oben gegebenen Formel (I) k6nnen wir in der Tabelle 2.1 alle 8 Belegungen der Variablen Xl, x2, x3 b e t r a c h t e n u n d d a d u r c h die optimale L6sung bestimmen. Tab. 2.1 xl
x2
X3
Xl V x2
N1 V N2 V x3
X2
X2 V x 3
x3
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0
0
1
0
1 1 1 1 1 1
1 1 0 0 1 1
0 1 1 1 0 1
0 1 0 1 0 1
0
1
1
1
0
1
1
1
x l v x3 1 1 1 1 1 0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
r erfiill. Klauseln
Die o p t i m a l e n L6sungen sind die Belegungen 0 0 1 , 0 1 1 u n d 101, die 5 Klauseln von (I) erfiillen. B e i s p i e l 2.9. Ganzzahlige Lineare P r o g r a m m i e r u n g (integer linear p r o g r a m ming I L P ) Hier besteht die Aufgabe darin, fiir ein gegebenes S y s t e m yon linearen Gleichungen u n d eine lineare F u n k t i o n yon U n b e k a n n t e n des linearen Systems eine L6sung dieses Systems zu berechnen, die m i n i m a l beziiglich der linearen Funktion ist.
Eingabe: Eine m • n M a t r i x A = [aij]i=l,...m,j=l,...,n u n d zwei Vektoren b = ( b l , . . . , bin)T u n d c - ( c l , . . . , Cn) fiir n, m E I N - {0}, wobei a~j, b~, cj ganze Zahlen fiir i = 1 , . . . , m u n d
j = 1 , . . . , n sind.
Einschriinkungen: Ad(A, b, c ) - { X - ( X l , . . . , Xn) T E I N ' l A X b}. {Ad(A,b,c) ist die Menge aller L a s u n g s v e k t o r e n des linearen System A X = b, deren Elemente nur aus natiirlichen Zahlen bestehen.} Kosten: Fiir jedes X = ( x ~ , . . . , x~) r 2t4(A, b, c) ist n
o t(x, (A, b,
-
CiXi. i=1
Ziel: Minimum.
2.3 Algorithmische Probleme
55
AuBer Entscheidungsproblemen und Optimierungproblemen betrachten wir auch algorithmische Probleme anderer Natur. Diese haben keine Eingabe, sondern die Aufgabe ist, ein Wort oder eine unendliche Reihenfolge yon Symbolen zu generieren. D e f i n i t i o n 2.14. Sei E ein Alphabet, u n d sei x c E*. W i t sagen, dass ein A l g o r i t h m u s A das W o r t x g e n e r i e r t , falls A fiir die Eingabe ;~ die Ausgabe x liefert.
Das folgende Progamm A generiert das Wort 100111. A:
begin write(100111) end
Das folgende Programm An :
;
An generiert das Wort (01) n fiir jedes n E IN - {0}.
begin f ori--i rondo write(01) ; end
Ein Programm, das x generiert, kann man als eine alternative Darstellung yon x betrachten. Damit kann man einige W6rter im Rechner als Programme, die diese W6rter generieren, speichern.
D e f i n i t i o n 2.15. Sei E ein Alphabet, u n d sei L C_ E*. A ist ein Aufz~ihlungsa l g o r i t h m u s ffir L , falls A fiir jede Eingabe n E I N - {0} die Wortfolge x l , x 2 , . . . , x ~ ausgibt, wobei x l , x 2 , . . . , x ~ die k a n o n i s c h n ersten W S r t e r in L sind.
B e i s p i e l 2.10. Seien E - {0} und L -
{0p I P ist eine Primzahl}.
Eingabe: n Ausgabe" 02, 03, 0 ~, 0 7 , . . . , 0p~, wobei p~ die n-te kleinste Primzahl ist. Aufgabe 2.20. Beweisen Sie, dass eine Sprache L rekursiv ist genau dann, wenn ein Aufzghlungsalgorithmus fiir L existiert.
2 Alphabete, W6rter, Sprachen und Aufgaben
56
2.4
K o l m o g o r ov- K o m p lexit ~it
In diesem Abschnitt wollen wir W 6 r t e r als Informationstr~tger betrachten und einen sinnvollen Weg zur Messung des Informationsgehaltes von W 6 r t e r n finden. Wir beschrS~nken uns dabei auf W 6 r t e r fiber dem Alphabet Ebool. Die intuitive Grundidee k6nnte sein, einem Wort einen kleinen Informationsgehalt zuzuordnen, falls das Wort eine kurze Darstellung hat (komprimierbar ist), und einen grof3en Informationsgehalt, wenn es so unregelm~tf3ig (irregul~tr) aussieht, dass m a n keine kiirzere Darstellung des Wortes finden kann. So scheint das Wort 011011011011011011011011 mit der Darstellung (011) s einen kleineren Informationsgehalt als 0101101000101101001110110010 zu haben. Die Erzeugung einer kiirzeren Darstellung eines Wortes x nennen wir eine Kornprirnierung von x. Die erste Idee w~re, sich eine feste K o m p r i m i e r u n g s m e t h o d e zu iiberlegen und dann die L~tnge des resultierenden komprimierten Wortes als Mar3 fiir den Informationsgehalt zu nehmen. Natiirlich muss dabei gefordert werden, dass die resultierende Darstellung wieder ein Wort fiber Ebool ist, weil es sicherlich keine Kunst ist, mit m~chtigeren Alphabeten kiirzere Darstellungen zu erzeugen. Aufgabe 2.21. Finden
Sie {0, 1, 2, 3, 4}* - E;, so d ass
Ixl ~
eine
injektive
Abbildung
H
von
(~bool)*
nach
2. IH(~)l- 1
fiir jedes x C (~bool)*, Ixl _) 4. Was fiir einen Komprimierungsfaktor kann man erreichen, wenn man statt 25 das Alphabet G,~ fiir ein rn > 5 nimmt? Wenn wir als m6gliche K o m p r i m i e r u n g die Ausnutzung der Wiederholungen der Teilw6rter betrachten wollen, b e k o m m e n wir zuerst W 6 r t e r fiber dem Alp h a b e t {0, 1, (,)} wie z.B. (011)1000 fiir (011) s oder
(o)1olO;OlO)1;Ol)11Ol f~r (o/1~
1~.
2.4 Kolmogorov-Komplexit~t
57
Um diese wieder fiber Ebool z u kodieren, k6nnen wir einen Homomorphismus yon {0, 1, (,)} nach Ebool wie folgt definieren: h(0)=00,
h(1)=11,
h(()=10,
undh())=01.
So bekommt das Wort (011) s die Darstellung 100011110111000000. Das Problem ist, dass man unendlich viele mSgliche Komprimierungsmechanismen betrachten kann. Welcher soll dann aber der richtige sein? Wir kSnnen z.B. die vorgestellte Komprimierung noch so verbessern, dass wir die Darstellung yon Potenzen noch komprimieren. So kann ein Wort (011) 1~ kiirzer als (011) 2~~ dargestellt werden. Diese Strategie kann man natiirlich beliebig fortsetzen, um kurze Darstellungen fiir W6rter wie (01)12~, (01)2~2n, ... ZU generieren. Dies bedeutet, dass, egal welche dieser Komprimierungen wir nehmen, immer eine weitere Komprimierung existiert, die fiir unendliche viele W6rter bessere Resultate liefert. Daher kSnnen wir, um ein objektives Mat3 fiir den Informationsgehalt von WSrtern zu bekommen, keine dieser Strategien verfolgen. Es kommt noch schlimmer. Betrachten wir folgende Komprimierungsmethode. Fiir jedes x E (Ebool)* k6nnen wir rung ;i 1 .;;2 9
"
.....
Nummer(x)
eindeutig als seine Faktorisie-
ik
fiir Primzahlen P l < P2 < " ' " < Pk, i l , i 2 , . . . , i~ E IN {0} fiir j = 1, 2 , . . . , k ausdrticken. Eine Darstellung von p~l. p~ . . . . . p~ fiber {0, 1, (,), } kSnnte 9
Bin(pl)(Bin(il))Bin(p2)(Bin(i2))
"
/k
. . . Bin(pk)(Bin(ik))
sein. Mit der Anwendung des Homomorphismus h bekommen wir wieder eine bingre Darstellung. Die schlechte Nachricht ist, dass diese Komprimierungsmethode unvergleichbar mit der vorherigen Methode der W6rterpotenzen ist. Also komprimiert die erste Methode fiir einige W6rter besser als die zweite und umgekehrt. Aufgabe 2.22. Finden Sie zwei WSrter x, y E (~bool)*, SOdass (i) die Komprimierungsmethode der Teilw6rterpotenzen eine wesentlich kiirzere Darstellung fiir x als die Methode der Primzahlzerlegung liefert und
58
2 Alphabete, W6rter, Sprachen und Aufgaben
(ii) die Komprimierungsmethode der Primzahlzerlegung fiir y zu einer wesentlich kiirzeren Darstellung fiihrt als die Methode der TeilwSrterpotenzen. Eine Definition des Komplexitgtsmat3es muss robust sein in dem Sinne, dass die gemessene KomplexitS~t eine breite Giiltigkeit hat und daher unter unterschiedlichen Rahmenbedingungen genutzt werden kann. Bei einer Variierung der Komplexitgt in Abhgngigkeit yon der Komprimierungsmethode wiirde eine Festlegung auf eine Methode keine M6glichkeit zu allgemeinen Aussagen fiber den Informationsgehalt von W6rtern geben. Ein Ausweg aus dieser scheinbaren Sackgasse hat Kolmogorov durch folgende Definition gefunden. Es ist dabei wichtig zu beobachten, dass die L6sung unseres Komprimierungsproblems ohne die vorherige Einfiihrung des Begriffs Algorithmus (Programm) nicht mSglich gewesen wgre. D e f i n i t i o n 2.16. Fiir jedes Wort x E (Ebool)* ist die K o l m o g o r o v - K o m plexit~it K ( x ) des W o r t e s x die biniire Liinge des kiirzesten Pascal-Programms, das x generiert. Wir wissen, dass uns ein/Jbersetzer fiir Pascal zu jedem Pascal-Programm seihen Maschinencode generiert, der ein Wort fiber (Ebool)* ist. Fiir jedes Wort x betrachten wir also alle (unendlich vielen) Maschinencodes yon Programmen, die x generieren und die LS~nge eines k/irzesten ist die Kolmogorov-KomplexitS~t yon x. Ist K ( x ) ein guter Kandidat fiir die Definition des Informationsgehaltes von x? Wenn es um die Einbeziehung aller m6glichen Komprimierungsmethoden geht, sicherlich ja. Wir k6nnen zu jeder Komprimierungsmethode, die zu x eine komprimierte Darstellung y produziert, ein Programm schreiben, das y als Parameter (Konstante des Programms) beinhaltet, und das x aus y (basierend auf der Komprimierungsmethode) erzeugt. Bevor wir uns aber in diese Definition vertiefen, zeigen wir ein paar grundlegende Resultate fiber die Kolmogorov-KomplexitS~t, um mehr VerstS~ndnis fiir dieses KomplexitS~tsmaf3 zu gewinnen. Das erste Resultat sichert, dass K ( x ) nicht wesentlich 15~nger sein darf als was nat/irlich erw/inscht ist.
Izl,
L e m m a 2.4. Es existiert eine Konstante d, so dass fiir jedes x E (Ebool)*
Beweis. Fiir jedes x E (Ebool)* nehmen wir folgendes Programm s Ax: SZur Vereinfachung benutzen wir im Folgenden eine Pascal-/ihnliche Programmiersprache, die z.B. ohne Variablendeklaration auskommt.
2.4 Kolmogorov-Komplexit~t
59
begin write(x); end Die Teile begin, write, end und K o m m a t a des Programms Ax sind gleich ffir jedes x E (Ebool)* und die Linge ihrer Kodierung im Maschinencode bestimmt die (nicht zu grofie) Konstante d. Das Wort x ist im P r o g r a m m als x binir dargestellt und leistet deswegen zur biniren Darstellung von Ax nur den Beitrag Die letzte Frage, die noch zu beantworten bleibt, ist die folgende: "Wie erkennt man in der binS~ren Darstellung des Programmes A, den Teil, der x entspricht?" Das Problem liegt darin, dass wir zum Beispiel die Symbole des benutzten Alphabets 2Tastatur durch Folgen von 8 Nullen und Einsen bingr darstellen. Das gilt natiirlich auch ffir die Darstellung der Symbole 0 und 1 aus EWastatur. Wenn wir aber die Nullen und Einsen von x so reprgsentieren wiirden, wS~re die Lgnge yon A, 8. Ixl + d. Um x eins zu eins in A, darzustellen, geben wir am Anfang der binS~ren Kodierung yon A, zwei Zahlen k und 1 an. Die Zahl k gibt die Lgnge des Prgfixes der Kodierung bis zu der Stelle an, an der x geschrieben wird. Die Zahl 1 gibt die Lgnge des Suffixes der bingren Kodierung yon Ax ab der Stelle an, an der dass Wort x steht. Damit ist k die LS~nge der Kodierung von
begin write( und 1 ist die LS~nge der Kodierung yon ) ; end Bemerken wir, dass die Angabe yon 1 und h erforderlich ist. Es reicht nicht, x durch Sondersymbole vom Rest des Programmes zu trennen, weil die bingre Darstellung dieser Sondersymbole auch in x mehrmals vorkommen k6nnte und dadurch wgre nicht eindeutig zu erkennen, wo sich x in Ax befindet. Wichtig ist noch zu beobachten, dass die Zahlen k und 1 unabhS~ngig yon x sind. Deswegen diirfen wir nicht statt 1 die Lgnge Ixl von x am Anfang der Kodierung angeben, weil Bi~(I~I) die LS~nge [log 2 ( B i ~ ( I ~ I ) + 1)] hat, die yon x abhS~ngig ist. D RegelmS~fiige W6rter haben natiirlich eine kleinere Kolmogorov-Komplexit~tt. Sei y~ = 0 ~ E {0, 1}* fiir jedes n E I N - {0}. Das folgende P r o g r a m m Y~ generiert y~.
begin for I = 1 to n d o
2 Alphabete, WSrter, Sprachen und Aufgaben
60 write(0); end
Alle P r o g r a m m e Y~ sind gleich bis auf das n. Die Kosten fiir die bingre Kodierung Bin(n) yon n sind [log2(n § 1)]. Daher kann m a n b e h a u p t e n , class eine K o n s t a n t e c existiert, so dass
ftir a l l e n E IN
-
{0}.
B e t r a c h t e n wir jetzt z~ - 0 ~ E {0, 1}* fiir jedes n E I N - {0}. Das folgende P r o g r a m m Z~ generiert das Wort z~. begin M "-n;
M:=M• f o r I = 1 t o M do write(0); end Alle P r o g r a m m e Z~ sind gleich bis auf das n. Beobachte, dass n die einzige Zahl (Konstante) ist, die im A~ vorkommt. Die Symbole M und I bezeichnen die Variablen und fiir die K o d i e r u n g des P r o g r a m m s spielt es keine Rolle, wie grog die Zahlen sind, die den Variablen w g h r e n d der Ausfiihrung des P r o g r a m m s zugeordnet werden. Wenn d die GrSi3e der K o d i e r u n g e n von Z~ his auf das n ist, erhalten wir
K(z~) ~ - i. Aufgabe 2.28. [log 2 m] - 1.
B e w e i s e n Sie, dass es u n e n d l i c h viele Z a h l e n m gibt, so dass
K(m) >_
Kehren wir jetzt zuriick zur Frage, ob die Kolmogorov-Komplexit/R ein geniigend robustes Marl fiir den Informationsgehalt von W6rtern ist. Statt einet spezifischen Komprimierungsmethode haben wir ein formales Modell von Programmen genommen, das in sich alle m6glichen KomprimierungsansS~tze implizit beinhaltet. Man kann aber die Festlegung auf eine Programmiersprache als zu groi3e Einschr~nkung sehen. W~re es fiir die Komprimierung einiger WSrter nicht giinstiger, C + + oder Java statt Pascal zu betrachten? Spielt nicht die Festlegung einer Programmiersprache in der Definition der Kolmogorov Komplexit~tt eine ~hnlich negative Rolle ftir die Robustheit der Messung des Informationsgehaltes wie die Festlegung einer Komprimierungmethode? Die Antworten auf diese Fragen sind negativ. Wir zeigen im Folgenden einen Satz, der aussagt, dass die Festlegung auf eine Programmiersprache nur einen beschrSmkten Einttuss auf die KolmogorovKomplexitS~t von WSrtern hat und daher unsere Festlegung auf Pascal in der Formalisierung des intuitiven Begriffs des Informationsgehalts akzeptiert werden kann. Sei, fiir jedes Wort x fiber Ebool und jede Programmiersprache A, KA(X) die Kolmogorov-Komplexit~it yon x beziiglich der Programmiersprache A (die Ltinge des kiirzesten Maschinencodes eines Programmes in A, das x generiert). S a t z 2.1. Seien A und B Programmiersprachen. Es existiert eine Konstante
2.4 Kolmogorov-Komplexitgt
63
CA,B, die n u t von A und B abhiingt, so dass
fiir alle w E
(}--]bool)*.
Beweis. Wir wissen, dass wir fiir beliebige Programmiersprachen A und /3 einen Interpreter als ein Programm UA--,B in /? erstellen k6nnen, das jedes Programm aus A in ein 5~quivalentes Programm in/3 umschreibt und dann auf einer aktuellen Eingabe arbeiten 15~sst. Fiir die Vereinfachung kann man sich fiir die Wortgenerierung die Situation so vorstellen, dass UA--,B ein Programm P in A als einen Eingabeparameter bekommt und die gleiche Arbeit wie P realisiert. Sei CA~B die binS~re LS~nge des Programms UA~B. Sei P~ ein Programm in A, das z generiert. Dann generiert das Programm UA~B mit Eingabe P~ das Wort z. Weil UA~B mit Eingabe P~ ein Programm in der Programmiersprache /3 ist, gilt
(2.1) Wenn man einen Ubersetzer UB~A yon B nach A mit einer binS~ren LS~nge CB~A nimmt, bekommt man fiir jedes Wort x E (Ebool)*
(2.2) Wenn wir CA,B als das Maximum von CA~B und cB-,a nehmen, implizieren (2.1) und (2.2)
_
_ Eine Zahl n heiflt zuf~illig, falls K ( n ) = K ( B i n ( n ) ) >_ [log2(n + 1)] - 1.
I 1.
Die n/~chste Anwendung zeigt, dass die Existenz eines Programmes, das ein Entscheidungsproblem (Ebool, L) 16st, zu gewissen Aussagen fiber die Kolmogorov-Komplexit/~t der W6rter in L fiihren kann. Wenn L zum Beispiel keine zwei W6rter gleicher Lgnge enthglt, dann ist die Kolmogorov-Komplexitgt jedes Wortes x aus L nicht viel gr6i3er als log 2 Ixl. S a t z 2.2. Sei L vine Sprache iiber Y]bool. Sei, fiir jedes n E I N - {0}, z~ das n-re Wort in L beziiglich der kanonischen Ordnung. Wenn ein Programm AL existiert, das das Entscheidungsproblem (Ebool, L) 15st, dann gilt fiir alle
_< [aog ( + 1)] + wobei c vine von n unabhiingige Konstante ist. Beweis. Fiir jedes n entwerfen wir ein Programm C~, das z~ generiert. Jedes C~ enthglt AL als Teilprogramm. Die Beschreibung von C~ folgt.
begin i--0; x'--~; while i _ [log2 n~]/2 fiir alle i E IN. D
2 Alphabete, W6rter, Sprachen und Aufgaben
68
Aufgabe 2.31. In Lemma 2.6 setzen wir eine unendliche steigende Folge von natiirlichen Zahlen hi, n2,n3,.., mit der Eigenschaft K(ni) >_ [log2 ni~/2 voraus. Wie weit kann man diese Voraussetzung abschw~tchen (d.h. ~log2 ni~/2 verkleinern), ohne die Aussage des Lemmas 2.6 zu verletzen? L e m m a 2.6 zeigt nicht nur, dass es unendlich viele Primzahlen geben muss, sondern sogar, dass die Menge der gr6f3ten Primzahlfaktoren einer beliebigen unendlichen Folge von natiirlichen Zahlen mit nichttrivialer KolmogorovKomplexitS~t unendlich ist. Wir werden dieses Resultat im Beweis folgender unterer Schranken f/Jr Prim (n) benutzen. S a t z 2.4.*
Fiir unendlich viele k E IN gilt
Prim (k) > -
k 64 log 2 k . (log 2 log 2 k )
2"
Beweis.
Sei pj die j - t e kleinste Primzahl fiir j - 1, 2, .... Betrachten wir ein beliebiges n _> 2. Sei p,~ der gr66te Primfaktor von n. Es ist klar, dass m a n aus p,~ und n/p,~ durch Multiplikation die Zahl n generieren kann. Es geht auch mit noch weniger Information, n~mlich m u n d n/p,~, weil m a n ftir ein gegebenes rn einfach p,~ mit einem P r o g r a m m , das Primzahlen aufzghlt, b e s t i m m e n kann. ()berlegen wir uns jetzt eine eindeutige und dabei kurze Darstellung des Paares (rn, n/p,~) als ein Wort fiber Ebool. Wir k6nnen nicht einfach Bin(m) und Bin(n/p,~) konkatenieren, weil m a n dann nicht weif3, wo das Wort Bin(m) in Bin(rn)Bin(n/p,~)endet, und somit die Darstellung nicht eindeutig wird. Versuchen wir jetzt, m anders zu kodieren. Sei Bin(m) - ala2.., a[log2(m+l)? fiir ai E Ebool ftir i = 1, 2 , . . . , [log2(m + 1)]. Dann setzen wir
Bin(m) -- alOa2Oa30 . . . a[log2(m+l)]_lOa[log2(m+l)]1. Das Wort B i n ( m ) B i n ( n / p ~ ) kodiert eindeutig (m, n/p,~), weil das Ende der Kodierung von rn eindeutig durch die erste 1 an einer geraden Stelle b e s t i m m t ist. Die Lange dieser Darstellung ist 2. [log2(rn + 1)1 + [log2(1 + (n/p,~))]. Das ist uns aber noch zu lang und deswegen kodieren wir (m, n/p,~) als
Bin(~log2(m + 1 ) l ) B i n ( m ) B i n ( n / p ~ ) . Diese Darstellung ist eindeutig, weil das Ende von Bin( Flog2(m+ 1)1) eindeutig zu erkennen ist und Bin( ~log2(m+ 1)1 ) aussagt, dass die nachsten [log2(m+ 1)~
2.4 Kolmogorov-Komplexit~t Bits zum Teilwort
69
Bin(m) gehAren.
Die LA~nge dieser Kodierung ist
2 F1og,~ F1og2(m + 1)ll + F]og,~(m + 1)I + Flog2(1 + ( ~ / p ~ ) ) l 9 Auf diesem Prinzip aufbauend kann m a n unendlich viele Verbesserungen durchfiihren, fiir den Satz reicht eine weitere. Wir reprA~sentieren definitiv das Paar (,~, n / p ~ ) als
Wo~t(.~, ~/p~) = Bin(Flog2Flog2(m + 1)]])Bin(Flog2(m + 1)])Bin(m)Bin(n/p.~). Damit ist offenbar
IWort(m, ~/p~)l
2.
r,o,~:~r,o,~ r,o,~(~
+
1)Ill (2.8)
+ [log 2 []og 2 (m + 1)ll
+[1og2(m
1)]
+
+
Flog2(1 + (n/p~))].
Das Wort(m, n/p.~) betrachten wir jetzt als die K o m p r i m i e r u n g yon Bin(n). Weil wir eine feste Komprimierungsstrategie betrachten, b e k o m m e n wir mit demselben Argument wie in L e m m a 2.5 und in Aufgabe 2.27, dass fiir alle i E I N - {0} f/Jr mehr als die Halfte aller Zahlen n aus {2 ~, 2~+ 1 , . . . , 2 ~+1- 1} die LA~nge yon Wort(m,n/p,~) mindestens Flog(n + 1)] - 1 ist. Analog hat mehr als die HAJfte der Zahlen aus {2 i, 2 i + 1 , . . . , 2 i+1 - 1} die KolmogorovKomplexitA~t von mindestens [log2(n + 1)] - 2. Damit erhalten wir, dass fiir alle i E IN - {0} eine Zahl hi, 2 i _< ni _< 2 i+1 - 1, mit
IWont (~, ~/p~) ~ I ~ i ~ ( ~ ) l - 1
=
Flog2 (hi + 1)]
-
1
und
K(n~) >_[log2(n~ + 1)]
- 2
existiert. Also gibt es unendlich viele n mit den Eigenschaften
I Wo~t(m, ~/p~)l ~ F]-og~('~ + 1)] -
1
(2.4)
und
K ( ~ ) _> [iog2(~ + l)l - 2
(2.5)
2 Alphabete, WSrter, Sprachen und Aufgaben
70
W e n n wir (2.4) f/Jr ein solches n in (2.3) einsetzen, erhalten wir
Flog2(~ +
1)l -
1
_
2, daher gilt die Induktionsannahme ftir alle WSrter aus (Ebool)*. Sei w ein beliebiges Wort a u s (}-]%ool)i+1. Dann ist w -- z a , wobei z E E i und a E E. Wir unterscheiden vier M6glichkeiten beztiglich der ParitS~ten yon Iz o und ]Z]I. (a) Seien beide I~1o und ]Z]l gerade. Weil die Induktionsannahme 3(qo, z) - qo f/Jr z impliziert (daher ist z E Kl[qo]), erhalten wir
~(qo, za) -- (~(~(qo, z), a) -- (~(qo, a) -- ~ ql, •
falls a - -
1,
[ q2, falls a -- 0.
Weil Izllo gerade ist und Izlll ungerade ist, entspricht (~(qo, zl) - ql der Induktionsannahme zl E Kl[ql]. Weil Iz0o ungerade ist und Iz0ll gerade ist, stimmt das Resultat (~(qo, z0) - q2 mit der Induktionsannahme z0 E Kl[q2] iiberein.
3.2 Die Darstellungen der endlichen Automaten
(b)
85
Seien beide I~10 und IZll ungerade. Weil 5(q0, z) - qa (daher ist z E Kl[qa]) beziiglich der I n d u k t i o n s a n n a h m e fiir z, erhalten wir
5(qo, za) -- 5(5(qo, z), a) - 5(q3, a) -- { q2, falls a -- 1, Ind. ,, ql, falls a 0. Dies entspricht der I n d u k t i o n s a n n a h m e , dass z0 E Kl[ql] und z l E Kl[q2]. -
Die FS~lle (c) und (d) sind analog und wir iiberlassen diese dem Leser als Ubung.
Aufgabe 3.1. Vervollst~ndigen Die den Beweis der Induktionsannahme aus Lemma 3.1 (Fttlle (c)und (d)). Aufgabe 3.2. Sei L = {w E (Ebool)* ]]W]o ist ungerade}. Entwerfen Die einen EA M mit L(M) = L und beweisen Die L(M) = L. Aufgabe 3.3. Entwerfen Die endliche Automaten fiir die Sprachen 0, E* und E + fiir ein beliebiges Alphabet E. Geben Die die formale Darstellung der Automaten als Quintupel, sowie die graphische Darstellung an. Wenn ein EA A geniigend anschaulich und s t r u k t u r i e r t dargestellt wird, kann m a n die Sprache L ( A ) auch ohne eine Beweisfiihrung b e s t i m m e n . In den meisten FS~llen verzichtet m a n also auf einen formalen Beweis, wie er in L e m m a 3.1 gef/ihrt wurde. 5 Aus L e m m a 3.1 h a b e n wir aber etwas Wichtiges f/Jr den E n t w u r f eines EA gelernt. Eine gute Entwurfsstrategie ist es, die Menge aller W 6 r t e r aus E* in Teilklassen von W 6 r t e r n mit gewissen Eigenschaften zu zerlegen und ,,UbergS~nge" zwischen diesen Klassen beziiglich der K o n k a t e n a tion eines Symbols aus E zu definieren. B e t r a c h t e n wir diese Strategie fiir den E n t w u r f eines EA fiir die Sprache
U = {W E (}-]bool)* I IWl0 = 3 und (IWll ~ 2 oder IWll = 0)}. U m IWlo = 3 verifizieren zu k6nnen, muss jeder EA t3 mit L ( B ) = U fiir die a n z a h l der bisher gelesenen Nullen die Falle IWlo = 0, Iwl0 = 1, IWlo = 2, I 10 - 3 und I 10 _ 4 unterscheiden k6nnen. Gleichzeitig muss B auch die Anzahl der bisher gelesenen Einsen z~thlen, u m mindestens die F~tlle Iwll = 0, I 11 - 1 und I~11 - 2 unterscheiden zu k6nnen. D a r a u s resultiert die Idee, die Zustandsmenge
Q =
I i e {0,1, 2, 3, 4},j e {0, 1,2}}
5Man bemerke, dass dies der Situation entspricht, in der man gewShnlicherweise des Aufwandes wegen auf den formalen Beweis der Korrektheit eines entworfenen Programms verzichtet.
3 Endliche Automaten
86 zu w~hlen. Die Bedeutung sollte folgende sein" Ftir alle j E {0, 1} und alle i E {0, 1,2, 3} Kl[qi,j]- {w E (}-~%ool)* I I w I 0 - i llild I w l l - j}. F iir alle i E {0, 1, 2, 3} Kl[qi,2]- {w E (Y]bool)* I w I 0 - i lind IWll ~ 2} F i i r j e {0,1} Kl[q4,j]- {w E (Ebool)* I Iw]0 > 4 und I w I 1 - j}. Kl[q4,2]- {w E (Ebool)* I wI0_> 4 u n d
wI1 > 2}.
Es ist Mar, dass q0,o der Anfangszustand ist. Die Ubergangsfunktion von B kann man direkt aus der Bedeutung der Zustgnde qi,j bestimmen, wie in Fig. 3.5 gezeigt. Wir bemerken, dass U - Kl[qa,o] U Kl[qa,2] und setzen daher F - {q3,0, q3,2}. qo,o
0
__
ql,o
0
..a"-h 1
q2,o ~
1
~ 1
q0,1 0 - - --
ql,1 0
1
9
q2,1 0
q1'2 0 1
0
0 1
1 ~
q3,1 0
q4, ~
0
1
220 1
q4,o
_)) 1
1
qO'2 0
q3,o >
0
3,2 0 1
q4,5 0,1
Fig. 3.5 Aufgabe 3.4. (a) Beweisen Sie L ( B ) - U fiir den EA B aus Fig. 3.5. (b) Entwerfen Sie einen EA A mit L ( A ) - U, so dass A weniger Zustgnde als B hat, und geben Sie zu jedem Zustand q dieses Automaten die Klasse Kl[q] an.
3.2 Die Darstellungen der endlichen Automaten
87
Die Methode zum Automatenentwurf, die auf der B e s t i m m u n g der Bedeutung der Zust~nde basiert, ist die grundlegendste Entwurfsstrategie f~r endliche A u t o m a t e n . Deswegen prS~sentieren wir noch zwei anschauliche Anwendungen dieser Methode. B e i s p i e l 3.1. Unsere nS~chste Aufgabe ist einen EA ftir die Sprache L(0010) = { x 0 0 1 0 y l x ,y C {0, 1}*} zu entwerfen. Hier ist der Entwurf ein bischen schwerer als bei einer Sprache, wo alle W b r t e r mit 0010 anfangen miissen. Wir brauchen festzustellen, ob 0010 irgendwo in dem Eingabewort liegt. Die erste Idee ist so zu sagen, dass jeder EA sich vormerken muss, wie langen PrS~fix von 0010 er gerade in den zuletzt gelesenen Buchstaben gefunden hat. Zum Beispiel, wenn das bisher gelesene Wort 011001 war, dann muss er sich merken, dass er schon 001 als K a n d i d a t e n gefunden hat und wenn jetzt das nS~chste Symbol 0 ist, dann muss er akzeptieren. Wenn der EA den PrS~fix 1100 einer Eingabe gelesen hat, muss er sich vormerken, dass die letzten zwei Symbole 00 passend waren 6. Damit ergeben sich 5 mSgliche Zust~nde entsprechend der 5 Pr~fixen von 0010. Wir ziehen jetzt vor, deren Bedeutung anschaulich halb formal statt genau formal zu beschreiben. Kl[p0] Kl[pl]
K][p2] KI[p3] KI[p4]
kein PrS~fix yon 0010 ist ein nicht leeres Suffix yon dem bisher gelesenen Wort x(z.B, x = A oder x endet mit 11). die W 6 r t e r enden mit 0 und enthalten keinen 15ngeren PrS~fix von 0010 als ein Suffix (z.B. sie enden mit 110). die W 6 r t e r enden mit 00 und enthalten keinen 15~ngeren Prefix von 0010 als ihr Suffix. die W 6 r t e r enden mit 001. die W 6 r t e r enden mit 0010 oder beinhalten 0010 als Teilwort.
Dieses Konzept ergibt uns direkt die folgende Teilstruktur (Fig. 3.6) des zu konstruierenden EA. Dass die Folge 0010 gelesen werden muss um den einzigen akzeptierenden Zustand p4 zu erreichen, ist offensichtlich. Wenn m a n P4 erreicht hat, hat der EA 6Im Prizip reicht es die Zahl 2 zu speichern, weil das Wort 0010 bekannt ist undes ist klar, dass 00 der PrS~fix der L~nge 2 ist.
3 Endliche Automaten
88 1
0,1
0
,@
0
,@
1
,@
0
,~
Fig. 3.6 schon 0010 in der Eingabe gefunden und so bleiben wir in dem akzeptierenden Zustand (5(q4, 0) = 5(q4, 1) = q4), egal was noch kommt. Das Lesen einer Eins in q0 5~ndert gar nichts darauf, dass wir noch keinen PrS~fix yon 0010 in den letzten Buchstaben gesehen haben. Um den EA zu vervollstgndigen, fehlen uns drei Pfeile aus den ZustS~nden pl, p2 und Pa fiir das Lesen yon 1 aus Pl und Pa und das Lesen von 0 aus P2. Es gibt nur eine eindeutige M6glichkeit es korrekt zu machen (urn L(0010) zu erkennen) und die ist in Fig. 3.7 gezeichnet. 1
0
0,1
1 Fig. 3.7 Wenn wir 1 in pl lesen, miissen wir unsere Suche nach 0010 neu anfangen, weil 0 der l~tngste Suffix des gelesenen Wortes ist den einen Pr~tfix von 0010 entspricht und somit eine Eins am Ende bedeutet, dass wir keinen Prefix von 0010 aktuell haben. Damit ist ~(pl, 1) =P0. Wenn man aber in p2 eine 0 liest, gndert sich nichts an der Tatsache, dass 00 der Suffix des gerade gelesenen Wortes ist und somit bleiben wir in p2, also 6 (p2, o) = p2.
Wenn in p3 eine 1 kommt, endet das gelesene Wort mit zwei Einsen 11 und somit kann d~s Wort am Ende keinen nichleeren Suffix yon 0010 enthalten.
3.2 Die Darstellungen der endlichen Automaten
89
Der einzige m6gliche Schluss ist (p2, 1) = P0. Damit ist der EA vervollstS~ndigt. D Aufgabe 3.5. Geben Sie eine genaue formale Beschreibung der Klassen der ZustSmde des EA in Fig. 3.7. In dem Beispiel 3.1 haben wir einen EA in Fig. 3.7 entworfen, der genau die W6rter akzeptiert, die das Wort 0010 als Teilwort enthalten. Der anstrengenste Teil des Entwurfes bestand in der Bestimmung der Kanten (Transitionen), wenn die Suche nach 0010 wegen einer Unstimmigkeit unterbrochen wurde. Dann musste man entscheiden, ob man die Suche von neu anfangen soll oder ob der zuletzt gelesene Suffix noch ein kiirzeres PrS~fix yon 0010 enthS~lt und die weitere Suche mtisste dann von entsprechender Stelle fortgesetzt werden. Dass man da wirklich aufpassen muss, zeigt die Schwierigkeit der Klassenbeschreibung in Aufgabe 3.5. Man kann das Risiko in diesem Entwurfsprozess vermeiden, in dem man sich entscheidet, einfach mehr Informationen fiber das gelesene Wort zu speichern. Eine Idee wS~re, durch den Namen eines Zustandes die komplete Suffixe der LS~nge 4 zu speichern. Zum Beispiel, ein Zustand q0110 sollte alle W6rter enthalten, die mit 0110 enden. In dem Augenblick ist alles iibersichtlich und die Beschreibung der Zustandsklassen einfach, aber wir bezahlen diese Transparenz mit der Automatengr6i3e. Wit haben 2 4 = 16 ZustSmde um alle Suffixe der LS~nge 4 fiber {0, 1} zu speichern. Das ist noch nicht alles. Es gibt auch k/irzere W6rter, die nattirlich keinen PrS~fix der LS~nge 4 enthalten. Alle W6rter kiirzer als 4 brauchen dann eigene Zustgnde, was ergibt 23 + 22 +
21
-~- 1 = 15
weitere Zust/~nde. Weil einem EA mit 16 + 15 = 31 Zust/~nden zu zeichnen zu viel Arbeit ergibt, stellen wir eine Anwendung dieser Idee fiir die Suche nach einem kiirzeren Teilwort vor. B e i s p i e l 3.2. Betrachten wir die Sprache L = { z 1 1 0 y l z , y E {0, 1}*}. Wie oben angedeutet, fiihren wir die Zust/fnde p~b~ ein, wobei in Pabc die W6rter landen, die mit dem Suffix abc fiir a, b, c E {0, 1} enden. Dies ist noch nicht ganz
3 Endliche Automaten
90
genau, weil f/Jr abc ~ 110 nehmen wir ein Wort mit Suffix abc in Klasse[p~b~] nur dann, wenn das Wort das Teilwort 110 nicht enthglt (in einem solchen Fall m~sste aber die Akzeptanz eines solchen Wortes lgngst entschieden werden). Wir beschreiben jetzt genau die Bedeutung aller Zust/~nde:
Kl[pllO] = L KI[Pooo] = Kl[Pool] = Kl[Polo] =
Kl[PlOO] = Kl[Po11] = Kl[PlOl] = Kl[p111] =
enth~ilt das Teilwort 110}, ={zE{0,1}*Iz {z000 z C { 0 , 1 } * und z000 enthtilt das Teilwort 1 10 nicht }, {x001 x e {0, 1}* und z001 enthtilt das Teilwort 1 10 nicht }, {z010 z ~ {0, 1}* und z010 enth~lt das Teilwort 1 10 nicht }, {xl00 x e {0, 1}* und zl00 enthtilt das Teilwort 1 10 nicht }, { z o l l z ~ {o, 1}* und z011 enth~lt das Teilwort 1 10 nicht }, { z l o l z ~ {o, 1}* und z 101 enth~lt das Teilwort 1 10 nicht }, {z111 z E {0, 1}* und z 111 enth/~lt das Teilwort 1 11 nicht }.
Dann brauchen wir die ZustS~nde P~, P0, P l , P00, P01, P l 0
und
Pll
fiir kiirzere W6rter, daher Kl[pa] = {At, Kl[po] = {0}, Kl[pl] = {1}, Kl[Poo] = {00}, Kl[Pol] = {01}, Kl[plo] = {10} und Kl[p11] = {11}. Der Startzustand ist offensichtlich der Zustand p~ und p11o ist der einzige akzeptierende Zustand. Der resultierende EA ist in Fig. 3.8 gezeichnet. Die Verzweigungsstruktur (Baumstruktur in der Informatik genannt) oben gibt jedem Wort der L/~nge k/irzer gleich 3 einen anderen Zustand. Alle anderen Kanten (Transitionen) fiihren zu den untersten Zust/~nden p~b~. Zum Beispiel, wenn ein Wort z001 um eine Null zum z0010 verlS~ngert wird, dann muss man aus pool in polo iibergehen (d.h. 6(pool, 0) = poxo).
3.2 Die Darstellungen der endlichen Automaten
O/
0/~1
OI
91
\1
O/
0/~1
(Poook---z---~Pool)-- z-------~Polo)
10/~1
(POll)
(Ploo)
\1
0/~1
(PlOl)
((Pllo)~P111)
)1
1,0
Fig. 3.8
Deswegen sind die Kanten immer so gelegt, dass durch das Lesen eines weiteren Symbols immer der dem neuen Suffix der Lgnge 3 entsprechende Zustand erreicht wird. Die einzige Ausnahme ist der Zustand p110. Da bleiben wir, unabhgngig davon, welche Symbole noch gelesen werden, weil wir schon das Teilwort 110 in der Eingabe festgestellt haben und alle solche Eingaben akzeptiert werden mtissen. Der Entwurf des EA in Fig. 3.8 riecht auch nach viel Arbeit, aber die k6nnte lohnenswert sein, wenn man auf eine tibersichtliche Weise einen EA f/Jr eine Sprache wie
L
__
{z E {0, 1 } * l z enthglt mindestens eines der W6rter 000, 001 oder 110 als Teilw6rter}.
3 Endliche Automaten
92
entwerfen m6chte. D a reicht es, den E A aus Fig. 3.8 zu n e h m e n , die aus Pooo u n d P011 a u s g e h e n d e K a n t e n d u r c h (~(pooo, 0) = (~(pooo, 1) = pooo u n d (~(P011, 0)
=
(~(P011, 1) = P011
zu ersetzen u n d F = {Pooo, Po11, P11o} zu w~thlen. D A u f g a b e 3.6. Modifiziere den Automaten aus Fig. 3.8, um folgende Sprachen zu akzeptieren: (a) {xyz C {0, 1}* l y c {OOl, OlO, lOO}, x, z c {o, 1}*}, (b)* {xyz 6 {o, 1}* l y 6 {Ol, lOO, l l l } , x , z 6 {o, 1}*}, (c) {x011 I x c {0, 1}*}, (d) {xz c {0,1}* I x c {0, 1}*,z c {001,010,100}}. A u f g a b e 3.7. Entwerfe EA fiir folgende Sprachen:
(~) (b) (~) (d) (+) (f)
(g) (h)*
(i) (J) (k) (1)
y C {0, 1,2}*}, {zll0110y I z,y E {0,1,2}*}, {x010101y I x, y C {0, 1}*}, {xOy l x, y C {0, 1}*}, {z0ylz I x,y,~ 9 {0, 1}*}, {zE{O, 1}* l lzlo _> 3}, { x c {0,1}'13 _< Ixl~ _ 5}, {zOOlylOlz I z, y , z E {0,1}*}, {xOOlll x c {0,1}*}, {zlO011 1z c {0,1}*}, {lzllO01l z c {0,1}*}, {xllOOlyO I x, y ~ {0,1}*}. {zllllylz,
A u f g a b e 3.8. Wende die Entwurfsstrategie aus Fig. 3.8 an, um einen EA fiir folgende Sprachen zu entwerfen: (a) {x c {0, 1}*Ix enthSJt 11 als Teilwort oder endet mit dem Suffix 10}, (b) {A,0, ll,z000 I z C {0, 1}*}, (c) {z C {0, 1}*Ix enthalt 00 oder 11 als Teilw6rter}. Bestimme die entsprechenden Zustandsklassen ftir alle entworfenen Automaten. A u f g a b e 3.9. Entwerfen Sie fiir jede der folgenden Sprachen einen EA: (a) {w c {0, 1,2}*lw = 002122x, x c (Ebool)*}, (b) {w E {a, b, c}* I w = yabcabc, y E {a, b, c}*},
3.3 Simulationen (c) (d) (e) (f) (g) (h)
93
{w C {a,b,c}* l w : xaabby, x,y c {a,b,c}*, {w E {0,1}* I Iwl0 - 1 (rood3) und w=x111yfflr x,y E {0,1}*}, {abbxb3y ] x,y 9 {a,b}*}, {w 9 {a,b}*]w : abbz fiir ein z 9 {a,b}* und w : ub3v mit u,v 9 {a,b}*}. {xy 9 {0, 1}* I YY 9 {000,010,100,101}}, und {xyz 9 {0, 1}* l YY 9 {001,010,101,110}}.
Die graphische Darstellung der Automaten ist zur L6sung der Aufgabe ausreichend. Geben Sie dazu zu jedem Zustand q dieser Automaten die Klasse Kl[q] an.
3.3
Simulationen
Die Simulation ist einer der meist benutzten Begriffe der Informatik. Trotzdem wurde dieser Begriff nie durch eine formale Definition festgelegt. Der Grund dafiir ist, dass m a n in unterschiedlichen Bereichen den Begriff der Simulation unterschiedlich auslegt. Die engste Interpretation dieses Begriffes fordert, dass jeder elementare Schritt der simulierten Berechnung durch einen Schritt der simulierenden Berechnung nachgemacht wird. Eine etwas schwS~chere Forderung ist, dass man einen Schritt der simulierten Berechnung durch mehrere Schritte simulieren daft. Eine noch schwgchere Form verzichtet auf die Simulation einzelner Schritte und fordert nur, dass m a n gewisse wichtige Teile der Berechnung nachahmt. Die allgemeinste Definition fordert nur das gleiche Eingabe-Ausgabe-Verhalten und verzichtet vollstSmdig auf die Simulation der Wege, die von den Eingaben zur entsprechenden Ausgabe fiihren. In diesem Teilkapitel zeigen wir eine Simulation im engen Sinne. Wir zeigen, wie m a n die Berechnung von zwei endlichen A u t o m a t e n mit einem EA simultan Schritt fiir Schritt nachahmen kann. L e m m a 3.2. Sei E ein Alphabet und seien M~ = (Q~ E, 6~ qo~ F~) und M2 = (Q2, E, 62, qo2, F2) zwei EA. Fiir jede Mengenoperation 1, und entweder { y x k z I k E IN} C_ L oder { y x k z I k E IN} A L - O.
Beweis. Sei L C_ E* regulgr. D a n n existiert ein EA A - (Q, E, 5A, qo, F ) , so dass L ( A ) - L. Wir setzen no - IQI. s~i w ~ ~* mit Iwl ___ ~o. D a n n ist w - W l W 2 . . . W ~ o U , wobei w~ E E fiir i - 1 , . . . , no und u E E*. B e t r a c h t e n wir die Berechnung
(qo, ~ ~ ~
~o) @ (q~,~ ~
(q~,~ ~o)~
~o)
~ (q~o ~,~o)~ (q~o,a)
(3.2)
yon A auf W l W 2 . . . Who. In den no + 1 Konfigurationen dieser Berechnung k o m m e n no + 1 Zust~nde qo, ql, q2,...,q~o vor. Weil IQI - no, existieren
3.4 Beweise der Nichtexistenz
103
i, j E {0, 1 , . . . , no}, i < j, so dass qi = qj. Daher l~tsst sich (3.2) als
(qo, ~ . . . ~o) G- (q~,~+~... ~o) G- (q~,~J+~... ~o) G- (q~o,a)
(3.3)
darstellen. Wir setzen jetzt y ~ Wl...
Wi~ X ~ W i + l . . .
Wj u n d z
=
Wj+l...
WnoU.
Es ist klar, dass w = yxz. Wir iiberpriifen die Eigenschaften (i), (ii) und (iii). (i) y x = W l . . . W i W i + l . . . Wj und daher lyxl = j G no. (ii) W e i l i < j u n d Ixl = j - i , i s t x - C A (Ixl_> 1). (iii) Wenn man die Notation y und x statt W l . . . wi und Wi+l... wj in (3.3) verwendet, sieht die Berechnung von A auf yx wie folgt aus:
(qo, y~)G-(q~, ~)G-(q~, ~).
(3.4)
Die Berechnung (3.3) impliziert
(q~,~) G- (q~,~) fiir alle k E IN. Dann ist ftir alle k E IN
die Berechnung yon A auf yx~z. Wir sehen, dass fiir alle k E IN, die Berechnungen im gleichen Zustand 5a(q~, z) enden. Falls also 5A(q~, z) E F, dann akzeptiert A alle W6rter aus {yx~z ] k E IN}. Falls 5A(q~, z) ~ F, dann akzeptiert A kein Wort aus { y x k z l k E IN}.
Wie wendet man Lemma 3.4 an, um zu zeigen, dass eine Sprache nicht regulSx ist? Fiihren wir dies wieder am Beispiel der Sprache L = {0~1~ I n E IN} vor. Wir fiihren den Beweis indirekt. Sei L regul~tr. Dann existiert eine Konstante no mit den in Lemma 3.4 beschrieben Eigenschaften, also muss jedes Wort mit einer LSmge von mindestens no eine Zerlegung besitzen, die die Eigenschaften (i), (ii) und (iii) erfiillt. Um zu zeigen, dass L r s reicht es ein hinreichend langes Wort zu finden, f/Jr das keine seiner Zerlegungen die Eigenschaften (i), (ii) und (iii)erfiillt. Wir wahlen jetzt w = 0 ~~1~~
104
3 Endliche Automaten
Es ist Mar, dass Iwl - 2no _> no. Es muss eine Zerlegung w - y x z yon w mit den Eigenschaften (i), (ii) und (iii) geben. Weil nach ( i ) l y x l 3}, {x 6 {0,1}*13 _< Ixl0 _< 5}, {z001yl01zlz, p, zE{0,1}*},
(ix) {x0011lx c {0,1}*}, (x) {xl00111x c {0,1}*}, (xi) { l x l l 0 0 1 l x ~ {0,1}*}, (xii) {xll001y0 I x, y c {0, 1}*}. W~hlen Sie sich drei dieser Sprachen aus und beweisen Sie mit Induktion die Korrektheit der von Ihnen entworfenen Automaten. 5. Entwerfen Sie Automaten fiir die folgenden Sprachen. (i) {x c {0, 1}*Ix enthalt 11 als Teilwort oder endet mit dem Suffix 10},
(ii) {A,0,11, x00Ix ~ {0,1}*}, (iii) {z C {0, 1}*ix enthalt 00 oder 11 als Teilwort }. 6. Erkl~ren Sie, wie ein EA simultan mehrere endliche Automaten simulieren kann. Wenden Sie diese Simulationstechnik an, um den modularen Entwurf von endlichen Automaten fiir folgende Sprachen zu realisieren. (i) {x E {0, 1}* I Ixll ist gerade und x enthalt das Teilwort 001}, (ii) {x E {0, 1}*ix e n t h a l t das Teilwort 000 u n d x e n t h a l t das Teilwort 111}, (iii) {x C {0, 1, 2}*Ix enthalt die Teilworte 021 und 2110}, (iv) {x c {0,1}* I IXll (rood 3)= 1 und x endet mit dem Suffix 0011}. 7. Erkl~ren Sie die drei Methoden zum Beweisen, dass eine Sprache keine regul~re Sprache ist. 8. Beweisen Sie, dass folgende Sprachen nichtregul~tr sind. Wenden Sie dabei jede der drei gelernten Methoden mindestens einmal an.
(i) {o~ I~ ~ ~}, (ii) {0~12~0~ I n c IN}, (iii) { z y C {0, 1}*ix ist ein prafix yon y}, (iv) { x 2 y l x , y E {0, 1}*, Ixll lYlo}, =
(v) {o~ I~ c ~}. 9. Erkl~tren Sie das Konzept von nichtdeterministischen endlichen Automaten. Geben Sie ein Beispiel eines NEA an, der auf jeder Eingabe der L~nge n exponentiell viele unterschiedliche Berechnungen hat.
3 Endliche Automaten
124
10. Erkl~tren Sie, warum deterministische endliche Automaten nichtdeterministische endliche Automaten (trotz der M6glichkeit vieler Berechnungen auf einer Aufgabe) simulieren k6nnen. 11. Fiir welche Sprachen ist es wesentlich einfacher einen NEA als einen EA zu entwerfen? 12. Entwerfen Sie nichtdeterministische endliche Automaten fiir folgende Sprachen: (i) {zl010yl z , y c {0,1}*} O {z010l z c {0, 1}*}, (ii) {z c {0, 1 } * I x enthalt 001 oder 110 als ein Teilwort}, (iii) {z E {0, 1}* I lzl~ (rood 3) = 0 oder z = yl01z fiir y,z E {0,1}*},
(iv) {z ~ {0,1, 2}*lz enthalt eines der W6rter 012, 00, 22, 111 als Teilwort}. Wenden Sie die Potenzmengenkonstruktion fiir mindestens einen der entworfenen NEAs an, um einen/~quivalenten EA zu bauen. 13. Beweisen Sie, dass jeder EA fiir eine der folgenden Sprachen mindestens 4 Zust/~nde hat. (i) {z E {0, 1 } * l l z I ( m o d 4 ) = 2},
(ii) {z0011y I z, y C {0, 1}*}, (iii) {01zl0 I z C {0, 1}}, (iv) {z C {0, 1, 2}* I IZlo ist gerade und IXll ist teilbar durch 3}. KOnnen Sie fiir einige dieser Sprachen sogar eine h6here untere Schranke fiir die Anzahl der Zustgnde beweisen?
Die Menschen, die die Geduld haben, auch einfache Sachen vollkommen zu machen, gewinnen die F~thigkeit, auch schwere Sachen einfach zu meistern. F. Schiller
4
Turingmaschinen
4.1
Zielsetzung
Wenn man ursprtinglich in der Mathematik einen Ansatz zur L6sung gewisser Probleme vermitteln wollte, hat man ihn als eine mathematische Methode formal genau beschrieben. Eine sorgfSJtige Beschreibung einer Methode hatte die Eigenschaft, dass ein Anwender gar nicht verstehen brauchte, warum die Methode funktioniert, und trotzdem die Methode erfolgreich zur L6sung seiner Probleminstanz verwenden konnte. Die einzige Voraussetzung fiir eine erfolgreiche Anwendung war das Verst~ndnis des mathematischen Formalismus, in dem die Methode dargestellt wurde. Die Entwicklung des Rechners fiihrte dazu, dass man Methoden zur L6sung von Problemen dutch Programme beschreibt. Der mathematische Formalismus ist hier durch die benutzte Programmiersprache gegeben. Das wichtigste Merkmal aber bleibt. Der Rechner, der keinen Intellekt besitzt und daher kein Verst~ndnis fiir das Problem sowie fiir die Methode zu seiner L6sung besitzt, kann das Programm ausfiihren und dadurch das Problem 16sen. Deswegen k6nnen wit fiber automatische oder algorithmische L6sbarkeit von Problemen sprechen. Um zu zeigen, dass ein Problem automatisch 16sbar ist, reicht es aus, eine Methode zu seiner L6sung zu finden und diese in Form eines Programms (Algorithmus) darzustellen. Deswegen kommen positive Aussagen fiber algorithmische (automatische) Probleml6sbarkeit gut ohne eine Festlegung auf eine Formalisierung des Begriffs Algorithmus aus. Es reicht oft, eine Methode halb informell und grob zu beschreiben, und jedem wird klar, dass sich die Methode in die Form eines Programms umsetzen l~tsst. Daher ist es nicht verwunderlich, dass die Mathematik schon lange vor der Existenz von Rechnern die L6sbarkeit mathematischer Probleme mit der Existenz allgemeiner L6sungsmethoden I im Sinne von ,,automatischer L6sbarkeit" verkniipft hat. 1Heute wiirden wir Algorithmen sagen.
126
4 Turingmaschinen
Die Notwendigkeit der Formalisierung des Begriffs Algorithmus (L6sungsmethode) kam erst mit dem Gedanken, mathematisch die automatische Unl6sbarkeit von konkreten Problemen zu beweisen. Zu diesem Zweck hat man mehrere Formalismen entwickelt, die sich alle als gquivalent beziiglich des Begriffs ,,automatische (algorithmische) L6sbarkeit" erwiesen haben. Auch jede verntinftige Programmiersprache ist eine zul/~ssige Formalisierung der automatischen L6sbarkeit. Aber solche Formalisierungen sind nicht so gut geeignet ffir Beweise der Nichtexistenz von Algorithmen fiir konkrete Probleme, weil sie wegen der Anwendungsfreundlichkeit eine Menge komplexer Operationen (Befehle) enthalten. Daher braucht man sehr einfache Modelle, die nur ein paar elementare Operationen erlauben und trotzdem die volle Berechnungsstgrke von Programmen beliebiger Programmiersprachen besitzen. Ein solches Modell, das sich in der Theorie zum Standard entwickelt hat, ist die Turingmaschine. Die Zielsetzung dieses Kapitels ist, dieses Modell vorzustellen und so die Basis fiir die Theorie der Berechenbarkeit (der algorithmischen L6sbarkeit) und f~r die KomplexitS~tstheorie im ngchsten Kapitel zu legen. Der Stoff dieses Kapitels ist in vier Abschnitte unterteilt. Abschnitt 4.2 stellt das grundlegende Modell der Turingmaschine vor und iibt den Umgang mit Turingmaschinen. Abschnitt 4.3 prgsentiert die Mehrband-Varianten von Turingmaschinen, die das grundlegende Modell der abstrakten KomplexitS~tstheorie sind. In diesem Abschnitt wird auch die Aquivalenz zwischen Programmen in einer beliebigen Programmiersprache und Turingmaschinen diskutiert. Abschnitt 4.4 fiihrt die nichtdeterministische Turingmaschine ein und untersucht die M6glichkeiten der Simulation von nichtdeterministischen Turingmaschinen durch (deterministische) Turingmaschinen. Abschnitt 4.5 prgsentiert eine m6gliche Kodierung von Turingmaschinen als W6rter fiber dem Alphabet
~bool"
4.2
Das Modell der Turingmaschine
Eine Turingmaschine kann als eine Verallgemeinerung eines EA gesehen werden. Informell besteht sie (Fig. 4.1) aus (i) einer endlichen Kontrolle, die das Programm enthglt, (ii) einem unendlichem Band, das als Eingabeband, abet auch als Speicher (Arbeitsband) zur Verftigung steht, und
127
4.2 Das Modell der Turingmaschine
(iii) einem Lese-/Schreibkopf, der sich in beiden Richtungen auf dem Band bewegen kann. Die Ahnlichkeit zu einem EA besteht in der Kontrolle fiber einer endlichen Zustandsmenge und dem Band, das am Anfang das Eingabewort enthglt. Der Hauptunterschied zwischen Turingmaschinen und endlichen Automaten besteht darin, dass eine Turingmaschine das Band auch als Speicher benutzen kann und dass dieses Band unendlich lang ist. Das erreicht man dadurch, dass der Lesekopf des EA mit einem Lese-/Schreibkopf vertauscht wird und dass man diesem Kopf auch die Bewegung nach links erlaubt. Eine elementare Operation von Turingmaschinen kann also als folgende Aktion beschrieben werden. Die Argumente sind (i) der Zustand, in dem sich die Maschine befindet, und (ii) das Symbol auf dem Feld des Bandes, auf dem sich gerade der Lese/Schreibkopf befindet. Abhgngig yon diesen Argumenten macht die Turingmaschine folgendes. Sie (i) gndert den Zustand, (ii) schreibt ein Symbol auf das Feld des Bandes, yon dem gerade gelesen wurde 2 (dieses kann man also als ein Ersetzen des gelesenen Symbols durch ein neues Symbol sehen), und (iii) bewegt den Lese-/Schreibkopf ein Feld nach links oder rechts oder sie bewegt ihn gar nicht.
0 1 2 3 I r I Xl I X2 I X3 I unendliches Band
i-1
"~
i
i+1
I Lese-/Schreibkopf
endliche Kontrolle (Programm) Fig. 4.1
2Wo sich der Lese-/Schreibkopf gerade befindet.
n
n+l
n+2
128
4 Turingmaschinen
Wichtig dabei ist, dass I. das Band auf der linken Seite das Randsymbol r enth~it, fiber das die Turingmaschine nach links nicht weiter gehen und welches nie durch ein anderes Symbol ersetzt werden darf (Die Einfiihrung eines linken Randes ermSglicht die Nummerierung der Felder des Bandes von links nach rechts, wobei wir dem Bandfeld mit Symbol r die Nummer 0 zuordnen.), und 2. das Band nach rechts unendlich ist3, wobei die nicht beschrifteten Felder die Symbole u enthalten. Jetzt geben wir die formale Beschreibung einer Turingmaschine in der Weise an, wie wit es bei der Definition yon endlichen Automaten gelernt haben. Zuerst beschreiben wir die Komponenten und die elementaren Operationen. Dann w/~hlen wir eine Darstellung yon Konfigurationen und definieren den Berechnungsschritt als eine Relation auf Konfigurationen. Danach folgen die Definitionen yon Berechnung und der vonder Turingmaschine akzeptierten Sprache. Definition
4 . 1 . Eine
Turingmaschine
(kurz,
TM)
ist
ein
7- Tupel
M - (Q, E, F, 6, q0, qaccept~ qreject). D abei ist
(i) Q eine endliche Menge, die Z u s t a n d s m e n g e v o n M genannt wird, (~) E das E i n g a b e a l p h a b e t , wobei r und das Blanksymbol u nicht in E sind {E dient genau wie bei EA zur Darstellung der Eingabe.}, E F, (iii) F ein Alphabet, A r b e i t s a l p h a b e t genannt, wobei E c_ F, r
rnQ-0 {F enthiilt alle Symbole, die in Feldern des Bandes auftreten diirfen, d.h. die Symbole, die M als Speicherinhalte (variable Werte) benutzt.}, 5" (Q - {qaccept~ qreject}) X F --+ Q x P x {L~ R~ N} r162 Abbild~Ttg, Wberg a n g s f u n k t i o n v o n M genannt, mit der Eigenschaft
5(q,r
Q •
{r • {R, N}
fiir alle q E Q {6 beschreibt die elementave Operation von M. M kann eine Aktion (q. x . z ) e Q • r • {L. R. N} ~ ~ . ~ ~ k t ~ l l ~ Z ~ t ~ d p b~.~ L ~ ~ 3Man bemerke, dass man in endlicher Zeit h6chstens endlich viele Felder des Bandes beschriften kann und damit die aktuelle SpeichergrSfie (die Anzahl der Nicht-u-Felder) immer endlich ist. Der Sinn der Forderung eines unbeschr/inkten Speichers ist nur, dass man nach Bedarf einen beliebig grofien endlichen Speicher zur Verfiigung hat.
4.2 Das Modell der Turingmaschine
129
. .
( ii)
tet den Ubergang von p nach q, das Ersetzen von Y dutch X und die Bewegung des Kopfes entsprechend Z. Z = L bedeutet die Bewegung des Kopfes nach links, Z = R nach rechts und Z = N bedeutet keine Bewegung. Die Eigenschaft 5(q, r E Q • {r • {R, N} verbietet das Ersetzen des Symbols r dutch ein anderes Symbol und die Bewegung des Kopfes nach links iiber die Randbezeichnung r qo C Q der A n f a n g s z u s t a n d , qaccept E Q der a k z e p t i e r e n d e Zustand { M hat genau einen akzeptierenden Zustand. Wenn M den Zustand qaccept erreicht, akzeptiert M die Eingabe, egal wo sich dabei der Kopf auf dem Band befindet. Aus qaccept ist keine Aktion von M mehr mSglich.}, qreject E Q -- {qaccept} der v e r w e r f e n d e Zustand { Wenn M den Zustand qreject erreicht, dann endet damit die Berechnung und M verwirft die Eingabe. Das heiflt insbesondere auch, dass M nicht die komplette Eingabe lesen muss, urn sie zu akzeptiern bzw. zu
Eine K o n f i g u r a t i o n
C von M i s t ein Element aus
Konf(M) = (r
F*. Q. F + U Q. { r
F*.
{Eine Konfiguration wlqaw2, wl C {r w2 E F*, a C F, q E Q (Fig. ~.2), ist eine vollstiindige Beschreibung folgender Situation. M ist im Zustand q, der Inhalt des Bandes ist r und der Kopf steht auf dem ([Wl[ + 1)ten Feld des Bandes und liest das Symbol a. Eine Konfiguration pr p E Q, w E F*, beschreibt die Situation, in der der Inhalt des Bandes r ist und der Kopf auf dem O-ten Feld des Bandes steht und das Randsymbol r liest. 4} W1
a
w2
uu 9 9 9
t
q
Fig. 4.2 4Man bemerke, dass man fiir die Darstellung der Konfigurationen zwischen mehreren guten M6glichkeiten wghlen kann. Z.B. k6nnte man die Darstellung (q, w, i) c Q x F* x IN verwenden, um die Situation zu beschreiben, in der M im Zustand q ist, Wuuu... auf dem Band steht und der Kopf auf dem/-ten Feld des Bandes steht.
130
Eine Ein
(--K-
4 Turingmaschinen
Startkonfiguration Schritt
von
fiir
M
C Konf(M)
ist
eine
Eingabewort
Relation
• Konf(M))
xlx2
ein
---j--
definiert
9 .. xi-lqxixi+l
x
auf
der
ist
qor
Menge
der
Konfigurationen
durch
9 .. Xn
--if- X l X 2
9 .. Xi-lpyxi+l
9 .. Xn~
f~ll~ ~(q~ ~ ) : (;~ y~ N) (Fig. ~.J(~))~ XlX2 9 9 9 X i - l q x i x i + l
9 9 9Xn
--M--
XlX2 9 9 9 X i - 2 p X i - l Y X i + l
9 9 9Xnv
f~ll~ 5(q, ~ ) = (p, y, L) (rig. 4.J(b)), xlx2
. . . xi-lqxixi+l
xlx2
...
x~_lqx~
9 9 9Xn
--K- x l x 2
~
XlX2
...
x~-lypu
9 9 9Xi-lypxi+l
9 9 9 Xn~
f~ll~ 5(q~ ~ ) = (p~ y~ R) (Fig ~ J(d))
Xl
x2
...
xi-1
xi
xi-}-i
...
Xn
...
xl
x2
9 9 9
xi--1
y
xi§
9 9 9
Xn
9 9 9
Xl
x2
9 9 9
xi-1
y
Xi§
9 9 9
Xn
9 9 9
Xi§
9 9 9
Xn
9 9 9
(a) xl
x2
...
xi-1
xi
xi-J-1
...
xn
...
-~
(b)
Xl
x2
...
xi-1
xi
xi-}-i
...
xn
...
Xl
X2
9 9 9
Xi--1
y
) f
Xl
Fig. 4.3
X2
9 9 9
Xn--1
Xn
9 9 9
Xl
X2
...
Xn--1
y
U
"'"
4.2 Das Modell der Turingmaschine
131
Eine Berechnung yon M ist eine (potentiell unendliche) Folge von Konfigurationen Co, C1, C2,..., so dass Ci ~ Ci+l fiir alle i - O, 1, 2, .... Wenn Co ~ C1 ~ ... ~ Ci fiir ein i E IN, dann Co - ~ Ci. Die Berechnung yon M auf einer Eingabe x ist eine Berechnung, die mit der Startkonfiguration Co - qor beginnt und entweder unendlich ist oder in einer Konfiguration w l q w 2 endet, wobei q E {qaccept, qreject}Die Berechnung von M auf x heiflt akzeptierend, falls sie in einer akzeptierenden Konfiguration wlqacceptW2 endet. Die Berechnung yon M auf x heiflt verwerfend, wenn sie in einer verwerfenden Konfiguration WlqrejectW2 endet. Eine nicht-akzeptierende Berechnung von M auf x ist entweder eine vetwerfende oder eine unendliche Berechnung von M auf x. Die v o n d e r T u r i n g m a s c h i n e L(M)
M akzeptierte Sprache ist
- {w E E* I qor
-~-yqaccept Z, fiir iFgeTtdwelche y , z E P*}.
Wit sagen, dass M eine Funktion F " E* --+ F* berechnet, falls f{
J t h e n g o t o 1 e l s e goto 2 nur mit Hilfe von Operationen +1, - 1 und dem Test auf 0 realisiert. A m Ende kSnnen wir auch noch auf A d d i t i o n u n d S u b t r a k t i o n verzichten. Aufgabe 4.15. Schreiben Sie Programme, die fiir zwei gegebene Zahlen a, b E IN die Addition a + b und die Subtraktion a - b nur mit Hilfe der Operationen + 1, - 1 und dem Test auf 0 berechnen. Die Aufgabe, die P r o g r a m m e mit O p e r a t i o n e n + 1 , - 1 u n d if I = 0 t h e n . . . e l s e . . . auf M e h r b a n d - T u r i n g m a s c h i n e n zu simulieren, ist nicht mehr so schwer. Die Variablen werden auf den A r b e i t s b ~ n d e r n in der F o r m xC~y gespeichert, wobei x die bin~re K o d i e r u n g des N a m e n s der Variablen Ix u n d y die bin~re K o d i e r u n g des Wertes yon Ix ist. Die O p e r a t i o n e n + 1 , - 1 u n d den Test y = 0 kann eine M T M einfach realisieren. Der einzige grSf3ere Aufwand entsteht, wenn ein B a n d z.B. CxC~YC~C~zC~ur162 enth~lt u n d der Platz zur
4.3 Mehrband-Turingmaschinen und Church'sche These
147
Speicherung des Wertes yon Ix in y nicht mehr reicht (mehr Felder fiir y werden gebraucht). In einem solchen Fall muss die M e h r b a n d - T M den Inhalt ~z~u~... rechts yon y nach rechts verschieben, u m mehr Platz fiir die Speicherung von y zu gewinnen. In der Theoretischen Informatik hat man Hunderte von formellen Modellen (nicht nur in Form von Maschinenmodellen) zur Spezifikation der algorithmischen LSsbarkeit entwickelt. Alle verntinftigen Modelle sind ~quivalent zu Turingmaschinen. Dies fiihrte zu der Formulierung der sogenannten Church'schen These:
Church'sche These
Die Turingmaschinen sind die Formalisierung des Begriffes ,,Algorithmus", d.h. die Klasse der rekursiven Sprachen (der entscheidbaren Entscheidungsprobleme) stimmt mit der Klasse der algorithmisch (automatisch) erkennbaren Sprachen iiberein. Die Church'sche These ist nicht beweisbar, weil sie einer Formalisierung des intuitiven Begriffes Algorithmus entspricht. Es ist nicht m6glich zu beweisen, dass keine andere formale Modellierung des intuitiven Begriffes Algorithmus existiert, die (i) unserer Intuition fiber diesen Begriff entspricht, und (ii) die algorithmische LSsung von Entscheidungsproblemen ermSglicht, die m a n mit der Hilfe von Turingmaschinen nicht entscheiden kann. Das einzige, was passieren k6nnte, ist, dass jemand ein solches stS~rkeres Modell findet. In diesem Fall wS~ren die Grundlagen der Theoretischen Informatik zu revidieren. Die Suche nach einem solchen Modell war aber bisher vergeblich, und wir wissen heute, dass sogar das physikalische Modell des Quantenrechhers ~~ zu Turingmaschinen 5~quivalent ist. Die Situation ist also 5~hnlich wie in der M a t h e m a t i k und Physik. Wir akzeptieren die Church'sche These, weil sie unserer Erfahrung entspricht, und postulieren sie als ein Axiom. Wie wir schon bemerkt haben, hat sie die Eigenschaften yon mathematischen A x i o m e n - sie kann nicht bewiesen werden, aber m a n kann nicht ausschliefien, dass sie eines Tages widerlegt wird. 11 Die l~ arbeiten nach dem Prinzip der Quantenmechanik. 11Die Widerlegung eines Axioms oder einer These sollte man nicht als ,,Katastrophe" betrachten. Solche Resultate gehSren zur Entwicklung der Wissenschaften dazu. Die bisherigen Resultate und Kenntnisse muss man deswegen nicht verwerfen, nur relativieren. Sie gelten einfach weiter unter der Voraussetzung, dass das Axiom gilt.
148
4 Turingmaschinen
Church'sche These ist das einzige informatikspezifische Axiom auf welchem die Theoretische Informatik aufgebaut wird. Alle anderen benutzten Axiome sind die Axiome der Mathematik.
4.4
Nichtdeterministische Turingmaschinen
Den Nichtdeterminismus kann man in das Modell der Turingmaschinen auf gleichem Wege einfiihren wie wir den Nichtdeterminismus bei den endlichen Automaten eingefiihrt haben. Fiir jedes Argument besteht die M6glichkeit einer Auswahl aus endlich vielen Aktionen. Auf der Ebene der Transitionsregeln bedeutet dies, dass die Transitionsfunktion 5 nicht yon Q • F nach Q x F x { L, R, N } geht, sondern von Q x F nach 7)(Q • F x { L, R, N }). Eine andere formale M6glichkeit ist, 5 als eine Relation auf (Q x F) • (Q • F • {L, R, N}) zu betrachten. Eine nichtdeterministische Turingmaschine M akzeptiert ein Eingabewort w genau dann, wenn es mindestens eine akzeptierende Berechnung yon M auf w gibt. Die formale Definition einer nichtdeterministischen Turingmaschine folgt.
Definition 4.3. Eine nichtdeterministische Turingmaschine (NTM) ist ein 7-Tupel M = (Q, E, F, 6, q0, qaccept, qreject), wobei
(/) Q, E, F, q0, qaccept, qreject die gleiche Bedeutung wie bei einer TM haben, und 5"(Q-
{qaccept, qreject}) X r --+ ~P(Q X r X {g, 1~, N)) die Ubergangs-
funktion von M ist und die folgende Eigenschaft hat:
5(p, r c {(q,r
Iq c Q,x
{R, N}}
fiir alle q E Q. {Das Randsymbol darf nicht dutch ein anderes Symbol ersetzt werden, und der Kopf darf sich nicht von r aus nach links bewegen.} Eine Konfiguration von M i s t ein Element aus
Konf(M) = ({r
F*. Q. F*) O (Q. {r
F*)
{mit der gleichen Bedeutung wie bei einer TM}. Die Konfiguration qoCw ist die A nfangskonfiguration fiir das Wort w E E*. Eine Konfiguration heiflt akzeptierend, falls sie den Zustand qaccept enthiilt. Eine Konfiguration heiflt verwerfend, falls sie den Zustand qreject enthiilt.
4.4 Nichtdeterministische Turingmaschinen
149
Ein S c h r i t t von M ist eine Relation ---M-, die auf der Menge der Konfigurationen ( --~ C_ Konf(M) • Konf(M)) wie folgt definiert ist. Fiir alle p, q E Q und alle X l , X 2 , . . . , x ~ , y E F, XlX2
9 9 9 Xi-lqXiXi+l
9 9 9 Xn
~
XlX2
9 9 9 Xi-lPyXi+l
9 9 9 Xn~
(p, y, N) XlX2
9 9 9 Xi-2~
Xi-lqxixi+l
9 9 9 Xn
~
XlX2
9 9 9 Xi-2pXi-lyxi+l
9 9 9 Xn~
falls (p, XlX2
9 9 9
x~_~qx~x~+~ . . . x~ ~
x~xe . . . x~_~ypx~+~ . . . x~,
falls (p, XlX 2 . . . x~_lqx~ ~ falls (p, y, R) e
Die Relation - ~
xlx2 . . . x ~ - l y p u ,
ist die reflexive und transitive Hiille von
M 9
Eine B e r e c h n u n g y o n M ist eine Folge von Konfigurationen Co, C 1 , . . . so dass Ci ~ C~+1 fiir i - O, 1, 2, .... Eine B e r e c h n u n g v o n M a u f e i n e r E i n g a b e x ist cine Bcrcchnung, die mit dcr Anfangskonfiguration qor beginnt und die entweder unendlich ist, oder in einer Konfiguration wlqw2 endet, wobei q E {qaccept, qreject}. Eine Berechnung von M auf x heiflt a k z e p t i e r e n d , falls sie in einer akzeptierenden Konfiguration endet. Eine Berechnung von M auf x heiflt v e r w e r f e n d , falls sie in einer verwerfenden Konfiguration endet. Die v o n d e r N T M L(M)
M a k z e p t i e r t e S p r a c h e ist
- {w E E* I qor
~
yq~eptZ fiir irgendwelche y, z E F*}.
A u f g a b e 4.16. Beschreiben und definieren Sie formal eine nichtdeterministische k-BandTuringmaschine far jedes k E IN - {0}. A u f g a b e 4.17. Sei M eine nichtdeterministische Mehrband-Turingmaschine. Beschreiben Sie eine N T M M', so dass L ( M ) L(M').
Ahnlich wie im Fall der endlichen Automaten k6nnen auch bei Turingmaschinen nichtdeterministische Strategien die Berechnungen vereinfachen. Betrachten wir die Sprache Lungleich --
{X~=~YlX~
Y
E
(~bool)*~ X ~ A~ X ~A y } .
Eine (deterministische) TM miisste Buchstabe fiir Buchstabe x und y vergleichen, um den Unterschied feststellen zu k6nnen. Eine NTM kann die Position i, an der sich x = X l . . . x ~ und y = y l . . . y,~ unterscheiden, nichtdeterministisch raten und dann die Korrektheit des Ratens durch den Vergleich von xi
150
4 Turingmaschinen
und yi verifizieren. Im Folgenden beschreiben wir eine nichtdeterministische l-Band-TM A, die Lungleich akzeptiert (die formale Darstellung findet sich in Fig. 4.12). A arbeitet auf einer Eingabe w wie folgt: 1. A iiberprtift deterministisch mit einem Lauf des Lesekopfes fiber das Eingabeband, ob w genau ein Symbol ~ enthS~lt (ZustS~nde q0, ql, qr~j~ct in Fig. 4.12). Falls das nicht der Fall ist, verwirft A die Eingabe w. Falls w = z--#y fiir z, y E (Ebool)*, setzt A die Arbeit mit Phase 2 fort (ira Zustand q2 in Fig.
4.12). 2. A stellt die K6pfe auf beiden B~ndern auf # (Zustand qs in Fig. 4.12). 3. A bewegt beide K6pfe simultan nach rechts (dabei ersetzt der Kopf auf dem Arbeitsband die Symbole u durch die Symbole a) und in jedem Schritt trifft sie nichtdeterministisch die Entscheidung, ob der Unterschied in der Position des gelesenen Feldes vorkommt oder nicht (Zustand qg~ess in Fig. 4.12). Falls b E {0, 1} auf dem Eingabeband gelesen wird und A r~tt, dass der Unterschied an dieser Position auftritt, speichert A das Symbol b in seinem Zustand und geht zur Phase 4 fiber (A geht in Zustand pb fiber in Fig. 4.12). Falls A das Symbol # liest (Ixl < lYl rS~t), geht A in p# fiber. 4. Jetzt ist die Entfernung des Kopfes von # auf dem Arbeitsband gleich der Position des gespeicherten Symboles b E {0, 1, r in xCp. A geht zuerst mit dem Lesekopf auf 4P ohne den Kopf auf dem Arbeitsband zu bewegen (Zustgnde p0 und Pl in Fig. 4.12). Danach bewegt sich in jedem weiteren Schritt der Lesekopf nach rechts, und der Kopf auf dem Arbeitsband nach links (Zustgnde So und Sl in Fig. 4.12). Wenn der Kopf auf dem Arbeitsband # erreicht, steht der Kopf des Eingabebandes auf der geratenen Position von y. Falls das gespeicherte Symbol b in sb ungleich dem gelesenen Symbol des Eingabebandes ist, akzeptiert A das Eingabewort w = x--#y. A akzeptiert w auch, wenn < lyl ((qaccop, N, r N) 6(p#, c,N) fiir alle c E {0, 1} in Fig. 4.12) oder wenn > lyl (~(~b, $, d) {(qacc~pt, N, d, N)} fiir alle b E {0, 1}, d E {a, r in Fig. 4.12). Die Strategie des nichtdeterministischen Ratens und nachfolgenden deterministischen Verifizieren der Korrektheit des Geratenen ist typisch fiir nichtdeterministische Berechnungen. 12 Ein anderes Beispiel ist das Akzeptieren der Sprache
Lquad - {a~21 ~ E IN} 12Wie stark man dadurch den Nichtdeterminismus charakterisieren kann, erfahren wir in Kapitel 6.
4.4 Nichtdeterministische Turingmaschinen
151
r162162 0,r ~ R,r 1,r ~ R,r
1,r ~ R,r 0,r ~ R,r
T
$ r ~ N,r
$, r --+ L,r
I, r --+ L,r
#,r
L ,N
r r --+ R, r R
1, u ~ R , a , R / 0, u ~ R , a , R 0, u ~ R,a,N
~ ( 1, a --~ R,a,N 0, a --~ R,a,N
~
~
~
~ , a ~ R,u,L
1, a ~ R,u,L 0, a --~ R,u,L
1, r ---~N, ~, N~.... $,a ~ N,a,N $, r --+ N, r Fig. 4.12
~
~
/
1, u ~ R,a,N
~ , u ---~R,N a, ~
( ~ ~
(
~
~
1, a --~ R,u,L 0, a --~ R,u,L
~ , a ~ R,u,L
1, a ~ R,u,L 0, a ~ R,u,L
0,r ~ N,C,N 1, r --+ N,r
/
1, a --~ R, a, N 0, a ~ R,a,N
o,r ~ N,r $, a --+ N,r
152
4 Turingmaschinen
yon einer nichtdeterministischen 2-Band-TM B. B kann zuerst fiir jede Eingabe w eine Zahl n raten (n kann durch die Positionen der KSpfe auf den ArbeitsbS~ndern gespeichert werden) und dann Iwl = n 2 iiberpriifen. Aufgabe 4.18. Beschreiben Sie die Berechnungsstrategie einer nichtdeterministischen 2Band-TM, die Lquad akzeptiert und implementieren Sie ihre Strategie in der Form eines Diagramms. Die wichtigste Frage ist nun, ob die nichtdeterministischen Turingmaschinen Sprachen akzeptieren, die man mit (deterministischen) Turingmaschinen nicht akzeptieren kann. ]~hnlich wie bei endlichen A u t o m a t e n ist die Antwort auf diese Frage negativ, und die Simulationsstrategie basiert auf der Breitensuche in den Berechnungsbgumen der nichtdeterministischen TM. D e f i n i t i o n 4.4. Sei M = (Q, E, F, 6, q0, qaccept, qreject) sine NTM und sei x sin Wort iiber dem Eingabealphabet E von M. Ein B e r e c h n u n g s b a u m TM, x y o n M a u f x ist ein (potentiell unendlicher) gerichteter Baum mit einer Wurzel, der wie folgt definiert wird.
(/) (ii)
Jeder Knoten von TM,x ist mit einer Konfiguration beschriftet. Die Wurzel ist der einzige Knoten von TM,x rnit dern Eingrad 0 und ist rnit der Ausgangskonfiguration qoCx beschriftet. Jeder Knoten des Baurnes, d e r m i t einer Konfiguration C beschriftet ist, hat genauso viele SShne wie C Nachfolgekonfigurationen hat, und diese SShne sind rnit diesen Nachfolgekonfigurationen von C markiert.
Die Definition von Berechnungsbgumen kann man natiirlich deterministische Mehrband-Turingmaschine verwenden.
auch fiir nicht-
Aufgabe 4.19. Zeichnen Sie die Berechnungsb~ume der nichtdeterministischen l-BandTM aus Fig. 4.12 fiir die Eingaben 01~p01r und 01~p0. Es gibt zwei wesentliche Unterschiede zwischen den BerechnungsbS~umen eines NEA und einer NTM. Die Berechnungsbgume von nichtdeterministischen endlichen A u t o m a t e n sind immer endlich, was bei nichtdeterministischen Turingmaschinen nicht immer der Fall sein muss. Zweitens miissen die Konfigurationen in der gleichen Entfernung zur Wurzel eines Berechnungsbaumes T~,x einer NTM M auf x keine Ahnlichkeiten haben und deshalb kSnnen im Unterschied zu nichtdeterministischen endlichen A u t o m a t e n die Positionen der KSpfe auf dem Eingabeband unterschiedlich sein. S a t z 4.2. Sei M sine NTM. Dann existiert sine TM A, so dass
4.4 Nichtdeterministische Turingmaschinen
153
L ( M ) = L(A), und falls M keine unendlichen Berechnungen auf WSrtern aus (L(M)) C hat, dann hiilt A immer. Beweis. Nach Lemma 4.2 geniigt es, eine 2-Band TM A mit den EigenschaRen (i) und (ii) zu konstruieren. Wir beschrS~nken uns auf eine Beschreibung der Arbeit von A und verzichten auf die formale Konstruktion. Die Strategie von A heit3t Breitensuche in den Berechnungsbgumen von M. Eingabe: ein Wort w Phase 1: A kopiert die Anfangskonfiguration qoCw auf das erste Arbeitsband. Phase 2: A iiberprtift, ob das erste Band eine akzeptierende Konfiguration enthglt. Falls ja, hglt A und akzeptiert w. Sonst setzt A die Berechnung mit Phase 3 fort. Phase 3: A schreibt alle Nachfolgekonfigurationen der Konfigurationen aus dem ersten Arbeitsband auf das zweite Arbeitsband (man beachte, dass eine NTM nur endlich viele Aktionen fiir ein gegebenes Argument zur Wahl hat und A somit immer alle MSglichkeiten realisieren kann). Falls es keine Nachfolgekonfigurationen gibt (das zweite Arbeitband leer bleibt), hS~lt A i m Zustand qreject. Phase 4: A 15scht den Inhalt des ersten Arbeitsbandes und kopiert den Inhalt des zweiten Arbeitsbandes auf das erste. Danach 15scht A den Inhalt des zweiten Bandes und fS~hrt mit Phase 2 fort. Wir bemerken, dass nach d e m / - t e n Durchlauf der Phasen 3 und 4 das erste Arbeitsband alle Konfigurationen des Berechnungsbaumes TM,w mit der Entfernung i von der Wurzel (alle in i Schritten erreichbaren Konfigurationen) enthS~lt. Falls w E L ( M ) , dann existiert eine akzeptierende Berechnung von M auf w von einer L~nge j ftir ein j E IN, und somit wird w nach j Durchlgufen der Phasen 3 und 4 in der Phase 2 akzeptiert. Falls w ~ L ( M ) , wird w bei A nicht akzeptiert. Falls TM,x endlich ist, hS~lt A i m Zustand qreject[-1 A u f g a b e 4.20. Sei A die NTM aus Fig. 4.13. (i) Geben Sic der ersten sechs Ebenen (alle Konfigurationen nach hSchstens fiinf Berech-
nungsschritten) der Berechnungsbaume TA(X) far x = 01 und mr x = 0010 an. (ii) Bestimmen Sie die Sprache
L(A).
154
4 Turingmaschinen r
0 -+ 0, R r R.~@ ~ ( q ~ , 2 1 --+ 1,L
r
r
@
0 --+ 0, N 1--+ 1, N
0 --+ 0, R (
1,N
Q
0 -+ 0, N 1-+ 1, N @ . ~ !L
1-+1
Fig. 4.13
4.5
Kodierung von Turingmaschinen
Jedes Programm hat eine bin~re Darstellung in Form des Maschinencodes. Fiir die Transformation eines Programms, das fiber dem Alphabet ETastatur entsprechend der Syntax der Programmiersprache gegeben ist, in den Maschinencode sorgen Ubersetzer (Compiler). Das Ziel dieses Kapitels ist, eine einfache binSze Kodierung von Turingmaschinen zu entwickeln. Wir beginnen zun~chst damit, dass wir eine Kodierung von Turingmaschinen fiber {0, 1, r entwickeln. Sei M = (Q, E, F, ~, q0, qaccept, qreject) eine TM, wobei Q = {q0~ql~...~qm~qaccept~qreject} u n d P = { A I ~ A 2 ~ . . . ~Ar}.
Wir definieren zuerst die Kodierung der einzelnen Symbole wie folgt: Code(qi)
-
10i+11 fiir i - 0, 1 , . . . , m ,
Code(qaccept)
-
10"~+21, 10"~+31, 110Jll fiir j 1110111, 11102111, 11103111.
Code(qreject) Code(Aj) Code(N) = Code(R)Code(L)-
1,...,r,
Diese Kodierung von Symbolen nutzen wir zu folgender Darstellung einzelner Transitionen. Code(6(p, A1) : (q, A,~, c~))
4.5 Kodierung von Turingmaschinen
155
fi]r jede Transition 5(p, Al) = (q, A,~, c~), p E {q0, q l , . . . , qm}, q E Q, l, ~7t E { 1 , . . . ,r}, c~ E {N, L, R}. Die Kodierung der Turingmaschine M gibt zuerst die globalen D a t e n - die Anzahl der Zustande (IQI) und die a n z a h l der Symbole aus dem a r b e i t s a l p h a b e t (Irl). Danach folgt die Liste aller Transitionen. Daher Code(M) = #0"~+3#0~##Code(
TfaTtsitioTt1)#COde( Transition2)#... i-~ I,R -
v\ a --~ a,N \
-
/~
0 -~ O,R
(
o -~ o,R
/ / r --~ r --~ u,L
b --~ b,N
r
a~
Fig. 4.14 Aufgabe 4.21. Sei M die TM aus Fig. 4.14. (i) Geben Sie Code(M) von M an. Gliedern Sie iibersichtlich den Code mittels Kommentaren. (ii) Geben Sie die Sprache L(M) an. (iii) Ist L(M) regular oder nicht? Beweisen Sie Ihre Behauptung. U m eine Kodierung fiber Ebool zu erhalten, benutzen wir folgenden Homomorphismus h : {0, 1, # } * --~ (Ebool)*: h ( # ) = Ol,
h(o) = oo,
....
= 11.
D e f i n i t i o n 4.5. Fiir jede Turingmaschine M wird Kod(M)
die K o d i e r u n g
= h(Code(M))
d e r T M M genannt.
KodTM
: (Kod(M) I Mist
eine TM}
bezeichnet die Menge der Kodierungen aller Turingmaschinen.
156
4 Turingmaschinen
Es ist klar, dass die Abbildung von M auf Kod(M) injektiv ist und daher determiniert Kod(M) eindeutig eine Turingmaschine. Aufgabe 4 . 2 2 . Beschreiben Sie ein Programm, dass jede formale Beschreibung einer TM M nach Definition 4.5 in Code(M) umwandelt. Aufgabe 4.23. Beschreiben Sie ein Programm, das fiir jedes Wort x c {0, 1}* entscheidet, ob x = Kod(M) fiir eine TM M. Im Folgenden bezeichnet Aver ein Programm (eine TM), das fiir jedes x E (Ebool)* entscheidet, ob x die Kodierung einer TM ist. Die wichtigste Beobachtung ist, dass die Festlegung auf eine Kodierung Kod(M) von Turingmaschinen eine lineare Ordnung auf den Turingmaschinen wie folgt definiert. D e f i n i t i o n 4.6. Sei x E die K o d i e r u n g d e r / - t e n
(Y]bool)*. /b~F jedes
i E I N - {0} sagen wir, dass x
T M ist, falls
x = Kod(M) fiir eine TM M und die Menge {y E (Eboo])* I Y ist vor x in kanonischer Ordnung} enth~lt genau i - 1 WSrter, die Kodierungen von Turingmaschinen sind.
Falls x = Kod(M) die Kodierung der i-ten TM ist, dann ist M die i - t e T u r i n g m a s c h i n e M i . Die Zahl i ist die O r d n u n g d e r T M M i . Wir beobachten, dass es nicht schwer ist, fiir eine gegebene Zahl i die Kodierung Kod(Mi) d e r / - t e n Turing Maschine zu berechnen. Sei Gen eine Funktion aus I N - {0} nach (2bool)* definiert durch G e n ( i ) = Kod(M~). L e m m a 4.3. Die Funktion Gen ist total rekursiv, d.h., es existiert eine Turingmaschine (Programm) Aar die fiir eine gegebene Zahl i die Kodierung Kod (Mi) berechnet.
Beweis. Ein Programm, das Gen berechnet, kann wie folgt arbeiten. Eingabe: ein i E I N - {0} Schritt 1: x := 1 {x ist ein Wort fiber (Ebool)*} I:=0 Schritt 2: while I < i do b e g i n benutze Aver um zu entscheiden, ob x E KodTM; if x C KodTM
I:=I+1;
then begin
4.6 Zusammenfassung
157
y:zX
end; x :=Nachfolger yon x in kanonischer 0 r d n u n g auf end Schritt 3:
(}-]bool)*
output(y).
Schreiben Sie ein Programm, das fiir eine gegebene Kodierung Kod(M) C (Ebool)* die Ordnung der TM M berechnet.
Aufgabe 4.24.
4.6
Zusammenfassung
Die Turingmaschine ist ein abstraktes Rechnermodell mit der BerechnungsstS~rke realer Rechner. Die Komponenten einer TM sind ein unendliches Band, eine endliche Kontrolle und ein Lese-/Schreibkopf. Das Band ist aufgeteilt in Felder. Jedes Feld enth~lt ein Symbol des Arbeitsalphabets (ein Computerwort). Das Band wird als das Eingabemedium der TM sowie als der Speicher der TM benutzt. Die elementaren Aktionen (Transitionen) einer TM hgngen vom aktuellen Zustand der TM und dem Symbol ab, das der Kopf auf dem Band liest. In einer Aktion darf die TM den Zustand 5mdern, das gelesene Symbol durch ein neues ersetzen und den Kopf um ein Feld auf dem Band bewegen. Eine Berechnung entsteht durch eine Folge von elementaren Aktionen. Eine TM akzeptiert (verwirft) ein Wort x, wenn sie in einem Sonderzustand qaccept (qreject) die Berechnung auf x beendet. Ein Wort x wird vonder TM nicht akzeptiert, wenn x verworfen wird oder wenn die Berechnung der TM auf x unendlich ist. Die von einer TM M akzeptierte Sprache L(M) ist die Menge aller W6rter, die M akzeptiert. Eine Sprache L heif3t rekursiv aufz~hlbar, falls L = L(M) fiir eine TM M. Eine Sprache L heifit rekursiv (oder entscheidbar), falls L = L(M) fiir eine TM M, die keine unendliche Berechnung hat (d.h. alle Berechnungen enden entweder in qaccept oder in qreject). Das Modell der Mehrband-TM hat statt einem unendlichen Band (das f/Jr die Eingabe sowie fiir die Speicherung yon Daten bei einer TM dient) ein endliches Band, das nur die Eingabe enthglt, und eine endliche Anzahl von unendlichen ArbeitsbSmdern. Die Modelle der Turingmaschinen und MehrbandTuringmaschinen sind 5~quivalent in dem Sinne, dass jede TM durch eine MTM simuliert werden kann und umgekehrt. Diese Turingmaschinenmodelle sind ~quivalent zu Programmen in jeder gelgufigen Programmiersprache.
158
4 Turingmaschinen
Die Church'sche These besagt, dass eine Turingmaschine, die keine unendliche Berechnung ausfiihrt, die Formalisierung des intuitiven Begriffs ,,Algorithmus" ist. Daher sind alle Probleme, die man mit Hilfe yon Turingmaschinen 16sen kann, algorithmisch (automatisch) 16sbar und alle Probleme, die auf Turingmaschinen nicht 16sbar sind, sind algorithmisch (automatisch) unl6sbar. Die Church'sche These ist ein Axiom der Informatik, daher kann sie nie bewiesen werden. Es besteht nur die M6glichkeit, sie zu widerlegen. Auf die gleiche Art wie bei endlichen Automaten kann man Turingmaschinen zu nichtdeterministischen Turingmaschinen verallgemeinern. Eine nichtdeterministische TM kann mehrere Berechnungen auf einer Eingabe haben. Die Eingabe wird akzeptiert, falls mindestens eine dieser Berechnungen in qaccept endet. Durch eine Breitensuche der Berechnungsb~tume (dies entspricht der Potenzmengenkonstruktion bei endlichen Automaten) k6nnen nichtdeterministische Turingmaschinen durch deterministische Turingmaschinen simuliert werden. Wie Programme k6nnen auch Turingmaschinen eindeutig als W6rter fiber Ebool dargestellt werden. Weil die W6rter fiber Ebool durch die kanonische Ordnung linear geordnet sind, gewinnt man durch diese Darstellung eine lineare Ordnung fiir die Menge der Turingmaschinen. Fiir eine gegebene Zahl i kann man die Kodierung der/-ten TM berechnen. Ebenfalls kann man zu einer gegebenen TM ihre Ordnung berechnen. Die Einfiihrung eines formalen Modells von Algorithmen war der erste Schritt, der zur Griindung der Theoretischen Informatik fiihrte. Diesen Fortschritt hat Kurt G6del mit seiner grundlegenden Arbeit [G6d 31] initiiert. In dieser Arbeit wurde erstmals bewiesen, dass es mathematische Probleme gibt, die man nicht ,,automatisch" 16sen kann. Dies motivierte Church [Chu 36], Kleene [Kle 36], Post [Pos 36] und Turing [Tur 36] zum Entwurf formaler Modelle des algorithmischen Rechnens. Alle diese Modelle und auch viele andere, die spS~ter definiert wurden, sind ~tquivalent. Die Folge dieser Aquivalenzen ist die Church'sche These. Das Modell der Turingmaschine aus [Tur 36] wurde zum Basismodell des Rechners in der Theoretischen Informatik, obwohl die urspr/inglichen Gedanken yon Turing nicht gerade mit einem Rechner verkniipft waren. Turing wollte die Verfahren (Algorithmen) zur Symbolmanipulation prS~zise formalisieren. Statt an einen Rechner dachte er an einen Menschen (menschlichen Rechner), der ein Rechenverfahren mit einem Stift auf einem Blatt Papier ausfiihrt. Das eindimensionale Band als Speichermedium ist dadurch motiviert, dass man auf einem Blatt zeilenweise schreibt. Die endlich vielen Symbole, die man benutzen darf, bestimmen dann das Arbeitsalphabet. Um das alles systematisch zu machen, teilte Turing das Bands in Felder
4.6 Zusammenfassung
159
ein, wobei jedes Feld g e n a u ein S y m b o l b e i n h a l t e n durfte. Der I n h a l t des ganzen B a n d e s m u s s t e i m m e r endlich sein, a b e r die Lgnge des B a n d e s (die Gr6fie des Papiers) war u n b e s c h r ~ n k t . T u r i n g setzte voraus, dass der R e c h n e r (das menschliche Gehirn) endlich grog ist, u n d sich somit nur in einem yon endlich vielen m6glichen ZustSmde befinden kann. D a h e r s t a m m t die endliche Zus t a n d s m e n g e fiir das Modell der T u r i n g m a s c h i n e . Aus einem 5~hnlichen G r u n d setzte T u r i n g voraus, dass eine A k t i o n eines R e c h n e r s in einem Augenblick nur d u r c h einen Anteil des B a n d e s yon beschrS~nkter ( k o n s t a n t e r ) Gr6fie beeinflusst w e r d e n kann. Weil m a n jede solche A k t i o n d u r c h eine Folge yon e l e m e n t a r e n O p e r a t i o n e n , bei d e n e n nur ein S y m b o l des B a n d e s b e t r a c h t e t wird, simulieren kann, fiihrte T u r i n g die F e s t l e g u n g der B e r e c h n u n g s s c h r i t t e d u r c h die in A b s c h n i t t 4.2 vorgestellte T r a n s i t i o n s f u n k t i o n ein. Die M e h r b a n d - T u r i n g m a s c h i n e w u r d e yon H a r t m a n i s u n d S t e a r n s [HS 65] eingefiihrt. M e h r b a n d - T u r i n g m a s c h i n e n w u r d e n z u m B a s i s m o d e l l fiir B e r e c h n u n gen in der KomplexitS~tstheorie. Eine hinreii3ende Diskussion zu d e m T h e m a dieses K a p i t e l s k a n n m a n bei Harel [Har 93] finden.
Kontrollaufgaben 1. Beschreiben Sie das Modell der Turingmaschine. Was sind die wesentlichen Unterschiede zu einem endlichen Automaten? 2. Definieren Sie die Begriffe ,,Konfiguration", ,,Berechnungssschritt" und ,,Berechnung" einer Turingmaschine. Wie definiert man die von einer TM M akzeptierte Sprache L(M)? 3. Was sind rekursive Sprachen und was sind rekursiv aufzS~hlbare Sprachen? 4. Entwerfen Sie eine Turingmaschine fiir die Sprache {a~b~c ~ In c IN} und stellen sie die TM in der Form eines Diagramms dar. 5. Was wiirde sich an der Berechnungssttirke der Turingmaschine 5mdern, wenn wit mehrere akzeptierende Zust~inde erlauben? 6. ErklS~renSie das Konzept von Mehrband-Turingmaschinen. Warum fiihren wit dieses Konzept ein? 7. Wie definiert man die _~quivalenz von zwei Maschinen und die _~quivalenz von zwei Maschinenmodellen? 8. Wie wiirden Sie vorgehen, um die Aquivalenz zwischen Java und Turingmaschinen zu zeigen? 9. Was sagt die Church'sche These aus? Warum betrachten wit die Church'sche These als ein Axiom? Warum glauben wir an dieses Axiom? 10. Erkl~iren Sie das Konzept von nichtdeterministischen Turingmaschinen! Wieviele unterschiedliche Berechnungen kann eine NTM auf einer Eingabe der L~inge n haben? 11. Geben Sie ein Beispiel einer Sprache an, fiir die es einfacher ist, eine NTM anstatt einer TM zu entwerfen. 12. Wie kann man zu jeder NTM ein ~iquivalente TM bauen?
160 13.
14. 15.
4 Turingmaschinen Wie kann man Turingmaschinen durch W/Srter fiber {0, 1} kodieren? Entwerfen Sie eine eigene Kodierung fiir Turingmaschinen und schreiben Sie ein Programm, das aus Ihrer Kodierung eine konkrete TM erstellt. Wie kann man Turingmaschinen linear ordnen? Kann man ffir eine gegebene natfirliche Zahl i algorithmisch die i-te TM konstruieren? Kann man ffir eine gegebene TM ihre Ordnung algorithmisch bestimmen?
H u n d e r t e von Talenten zeigen die Gr6fie ihrer Epoche, aber nur ein Genie ahnt, was ihr fehlt.
5
j
Berechenbarkeit 3(..
5.1 Zielsetzung Die Theorie der Berechenbarkeit ist die erste Theorie, die in der Informatik entstanden ist. Sie entwickelte Methoden zur Klassifizierung von Problemen in algorithmisch 16sbare und algorithmisch unl6sbare. Dies bedeutet, dass diese Theorie uns Techniken zum Beweisen der Nichtexistenz von Algorithmen zur L6sung konkreter Probleme liefert. Das Erlernen dieser Techniken ist das Hauptziel dieses Kapitels. Wir beschrgnken uns in diesem Kapitel auf Entscheidungsprobleme. Unser erstes Ziel ist es zu zeigen, dass es Sprachen gibt, die von keiner Turingmaschine akzeptiert werden. Dies ist einfach einzusehen, wenn man begreift, dass es viel mehr Sprachen gibt als Turingmaschinen. Aber von beiden gibt es unendlich vide, d.h. wir miissen lernen, wie man beweisen kann, dass eine unendliche Zahl gr6fier ist als eine andere. Dazu prgsentieren wir im Abschnitt 5.2 die Diagonalisierungstechnik aus der Mengenlehre. Die Methode der Diagonalisierung erm6glicht es uns, auch ftir eine konkrete Sprache, Diagonalsprache genannt, ihre Nichtzugeh6rigkeit zu ERE zu zeigen. Unser zweites Ziel ist es, die Methode der Reduktion vorzustellen. Diese Methode erm6glicht, ausgehend von einer nichtentscheidbaren Sprache die Unentscheidbarkeit weiterer Sprachen zu beweisen, und stellt das Hauptinstrument zur Klassifizierung der Sprachen beziiglich ihrer Entscheidbarkeit dar. Wir wenden diese Methode an, um die Unentscheidbarkeit einiger Entscheidungsprobleme fiber Turingmaschinen (Programmen) in Abschnitt 5.3 zu beweisen. Dabei lernen wir, dass die praktisch relevante Aufgabe der Korrektheitsiiberpriifung (des Testens) von Programmen ein algorithmisch unl6sbares Problem darstellt. In Abschnitt 5.4 stellen wir den Satz von Rice vor, der besagt, dass fast alle nicht-trivialen Probleme fiber Turingmaschinen (Pro-
162
5 Berechenbarkeit
grammen) unentscheidbar sind. In Abschnitt 5.5 zeigen wir, dass man die Methode der Reduktion auch zum Beweis der Unentscheidbarkeit anderer als nur turingmaschinen-bezogener Probleme benutzen kann. Als ein Beispiel beweisen wir die Unentscheidbarkeit eines Entscheidungsproblems fiber einer Art von Dominospiel, das als Post'sches Korrespondenzproblem bezeichnet wird. Im Abschnitt 5.6 zeigen wir eine andere Methode zum Beweisen der algorithmischen Unl6sbarkeit konkreter Probleme. Diese Methode basiert auf der Kolmogorov-KomplexitS~t und kann als eine Alternative zur Diagonalisierungstechnik in dem Sinne gesehen werden, dass man mittels der KolmogorovKomplexitS~t die Unl6sbarkeit eines konkreten Problems beweisen und dadurch den Startpunkt fiir die Anwendung der Reduktionsmethode erhalten kann.
5.2
Die Methode der Diagonalisierung
Unser erstes Ziel ist es zu zeigen, dass es nicht rekursiv aufzS~hlbare Sprachen gibt. Dazu wollen wir folgendes quantitative Argument benutzen. Wir wollen zeigen, dass
die Miichtigkeit IKodTM[ der Menge aller Turingmaschinen kleiner als die M6chtigkeit aller Sprachen iiber Ebool ist. Dabei bezeichnet KodTM die Menge der binS~ren Kodierungen aller Turingmaschinen wie im Abschnitt 4.5 definiert. Die Anzahl aller Turingmaschinen ist unendlich und kann von oben durch I(Ebool)*l beschrS~nkt werden, weil KodTM C_ (Ebool)*. Die KardinalitS~t aller Sprachen fiber Ebool ist 79((Ebool)*)l, was offensichtlich auch eine unendliche Zahl ist. Um zu beweisen, dass
I(Y]bool)*l < I~]')((~bool)*))l, ben6tigen wir eine Methode zum Vergleich der Gr6fien von unendlichen Zahlen (yon MS~chtigkeiten unendlicher Mengen). Das folgende Konzept von Cantor zum Vergleich der M/ichtigkeiten von zwei (unendlichen) Mengen ber/ihrt die philosophischen und axiomatischen Wurzeln der Mathematik und ist die Grundlage der modernen Mengenlehre. Die Idee des Konzeptes yon Cantor ist wie folgt. Ein Hirte hat ein Herde weifier Schafe und eine Herde schwarzer Schafe. Er will feststellen, welche der Herden zahlreicher ist, also ob er mehr schwarze als weifie Schafe hat oder umgekehrt.
5.2 Die Methode der Diagonalisierung
163
Das P r o b l e m ist, er kann nur bis 5 zS~hlen, was nicht ausreichend ist. Was kann er tun? Er n i m m t ein weifies uns ein schwarzes Schaf u n d fiihrt dieses P a a r auf eine andere Wiese Dies macht er so lange, bis eine der beiden urspriingliche Herden aufgel6st ist. Die Sorte, deren Herde noch nicht ausgesch6pft ist, ist zahlreicher. G e n a u diese Idee setzen wir in folgender Definition urn. D e f i n i t i o n 5.1. Seien A und t3 zwei Mengen. W i t sagen, dass
IAI ~ IBI, falls eine injektive Funktion f von A nach t3 existiert. Wir sagen, dass
IAI = IBI, fall~ IAI ~ IBI ~ d IBI t3). W i t sagen, dass
~ IAI
(d.h. ~ existiert eine Bijektion I zwischen A und
IAI < IBI, falls IA[ < IB[ und es existiert keine injektive Abbildung yon B nach A. Zuerst b e o b a c h t e n wir, dass fiir endliche Mengen Definition 5.1 exakt mit unserem Verstgndnis fiir den Vergleich der M~chtigkeiten von A und B iibereins t i m m t (Fig. 5.1). W e n n fiir alle x, y E A mit x # y auch f (x) # f (y) gilt, d a n n muss B mindestens so viele Elemente wie A haben. W e n n { f ( x ) I x E A} = B, d a n n ist f eine Bijektion und IAI = IBI.
A
B
Fig. 5.1 Nach Definition 5.1 reicht es daher aus zu beweisen, dass keine injektive Abbildung v o n d e r Menge aller Sprachen fiber Ebool in die Menge aller Turingma1Der Satz von Cantor und Bernstein sagt, dass aus der Existenz von injektiven Abbildungen F1 : A ~ B und F2 : B ~ A die Existenz einer Bijektion zwischen A und B folgt.
164
5 Berechenbarkeit
schinen existiert. Das heifit, es existiert keine Abbildung y o n ~]P((}-]bool)*) n a c h KodTM, die jeder Sprache L eine TM M mit L ( M ) - L zuordnet. 2 A u f g a b e 5.1. Seien A, B und C Mengen. Beweisen Sie, dass IB _< IAI und C I _< B die Relation C _< A impliziert. A u f g a b e 5.2. Seien A und B Mengen. Beweisen Sie, dass A c_ B die Ungleichung IA _< B I impliziert.
Definition 5.1 hat aber auch ihre paradoxe SeRe. Sei ]Ngerad e Nach Definition 5.1 gilt
{2ili e
weil die Funktion f : IN ~ ]Ngerad e m i t f ( i ) = 2i fiir alle i E IN offensichtlich eine Bijektion ist. So haben IN und ]Ngerad e gleiche M~chtigkeiten, obwohl ]Ngerad e eine echte Teilmenge yon IN ist. Dies ist ein Paradoxon, das beim Vergleich der Mgchtigkeiten von endlichen Mengen nicht auftreten kann. Dieses Paradoxon widerspricht der Erfahrung aus der endlichen Welt, wo das Ganze immer gr6fier ist als eines seiner Teile. Dies zeigt aber nicht, dass das Cantor'sche Konzept zum Vergleich der M~chtigkeit von Mengen falsch ist, sondern nur, dass die Welt unendlicher Mengen und Zahlen Gesetzen unterliegen k6nnte, die den Erfahrungen aus der Behandlung endlicher Objekte nicht entsprechen. Der Schluss IINI = IINgeradel scheint in der ,,unendlichen Welt" richtig zu sein, weil die Bijektion f ( i ) = 2i die Elemente aus IN und INgerade paart, und so erscheinen beide Mengen gleich m~chtig zu sein. Vielleicht ist es wichtig, an dieser Stelle zu bemerken, dass dieses Konzept auf der axiomatischen Ebene liegt. Daher kann man nicht beweisen, dass dies die einzige sinnvolle (korrekte) M6glichkeit zum Vergleich der MSochtigkeit unendlicher Mengen ist. Definition 5.1 ist nur ein Versuch, das intuitive Verstgndnis der Mathematiker fiir den Mgchtigkeitsvergleich zu formalisieren. Es ist nicht auszuschliefien, dass jemand noch eine andere, geeignetere Formalisierung a findet. Ftir uns ist aber nur wichtig, dass das Konzept aus Definition 5.1 dazu geeignet ist, die Existenz yon nicht rekursiv aufzS~hlbaren Sprachen zu beweisen. A u f g a b e 5.3. Das Hilbert'sche Hotel besteht aus unendlich vielen Zimmern, die mit den natfirliche Zahlen 1, 2, 3 , . . . nummeriert sind. Das Hotel ist besetzt, also in jedem Zimmer verweilt ein Gast. Jetzt kommt ein neuer Gast und fragt, ob er ein Zimmer bekommen kann. Der Portier sagt locker ,,Kein Problem". Er 15~sst ffir alle i = 1, 2, 3 , . . . den Gast aus dem Zimmer i in das Zimmer i + 1 umziehen und gibt Zimmer 1 dem neuen Gast. 2Weil jede solche Abbildung injektiv sein muss. aDies ghnelt unserer Diskussion fiber die Church'sche These.
5.2 Die Methode der Diagonalisierung
165
(i) Gibt es auch ein L6sung, wenn der Gast unbedingt das Zimmer 7 haben wollte? (ii) Es kommen 32 neue G~ste. Was macht der Portier jetzt? (iii) Es kommt ein voll besetzter, unendlich grof3er Bus an. Die Pl~tze sind mit positiven ganzen Zahlen 1, 2, 3,... nummeriert. Kann der Portier alle unterbringen? Im Folgenden b e t r a c h t e n wir IN als die ,,kleinste" unendliche Menge u n d stellen die Frage, welche unendlichen Mengen die gleiche M~chtigkeit wie IN haben, u n d ob eine unendliche Menge A mit IA > existiert. D e f i n i t i o n 5.2. Eine Menge A heiflt a b z ~ i h l b a r 4, falls A endlich ist oder
IAI-
Die intuitive B e d e u t u n g der Abz~hlbarkeit einer Menge A ist, dass m a n die Elemente aus A als erstes, zweites, drittes, . . . n u m m e r i e r e n kann. Dies ist offensichtlich, weil jede injektive F u n k t i o n f : A ~ IN eine lineare O r d n u n g auf A b e s t i m m t , die eine N u m m e r i e r u n g 5 ist, (ein O b j e k t a E A ist vor d e m O b j e k t b E A 4=~ f(a) < f(b)). Deswegen iiberrascht es nicht, dass (Ebool)* u n d K o d T M abz~thlbar sind. Lemma
5.1. Sei E ein beliebiges Alphabet. Dann ist E* abziihlbar.
Beweis. Sei E = { a l , . . . , am} eine beliebige endliche Menge. M a n definiere eine lineare O r d n u n g al < a2 < --- < am auf E. Diese lineare O r d n u n g b e s t i m m t die kanonische O r d n u n g auf E* (vgl. Definition 2.7). Die kanonische O r d n u n g auf E* ist eine N u m m e r i e r u n g u n d b e s t i m m t daher eine injektive F u n k t i o n yon E* nach IN. D S a t z 5.1. Die Menge K o d T M der Turingmaschinenkodierungen ist abziihlbar.
Beweis.
Satz 5.1 ist eine direkte Folge von L e m m a 5.1 u n d der Tatsache K o d T M C_ (Ebool)*. [-1 Aufgabe 5.4. Geben Sie explizit die Nummerierung yon (Ebool)* an, die der kanonischen Ordnung auf (Ebool)* entspricht. 4Eine ~iquivalente Definition der Abz~hlbarkeit einer Menge A ist folgende. A ist abz~hlbar 4=~ es existiert eine injektive Funktion f : A ---, IN Dies beseutet, dass keine unendliche Menge B mit IBI < IINI existiert. Auf den Beweis dieses Fakts verzichten wit hier. SEine Nummerierung auf einer Menge A determiniert eine lineare Ordnung, in der zwischen zwei beliebigen Elementen h6chstens endlich viele Elemente aus A liegen. Umgekehrt ist eine lineare Ordnung mit dieser Eigenschaft eine Nummerierung.
5 Berechenbarkeit
166
Aufgabe 5.5. Beweisen Sie, dass die Menge 77 der ganzen Zahlen abz~hlbar ist. Aufgabe 5.6. Sei A eine abz~hlbare Menge und a ein Element mit a ~ A. Beweisen Sie, dass A U {a} auch abz~hlbar ist. Aufgabe 5.7. Seien A und B zwei abz~ihlbare Mengen. Beweisen Sie, dass A OB abz~hlbar ist. Das nS~chste Resultat kann ein bisschen iiberraschend wirken. Wir beweisen, dass die Mgchtigkeit der Menge Q+ der positiven rationalen Zahlen der Mgchtigkeit yon [IN[ entspricht. Dabei weiss man, dass die rationalen Zahlen sehr dicht nebeneinander auf der reellen Achse liegen (zwischen beliebigen rationalen Zahlen a und b m i t a < b liegen unendlich viele rationale Zahlen c mit der Eigenschaft a < c < b), und dass die nattirlichen Zahlen auf der reellen Achse den Abstand 1 besitzen. Weil man die positiven rationalen Zahlen als Pq mit p, q E IN - {0} darstellen kann, w/irde man erwarten, dass IQ+I ungefS~hr IIN x IN I ist, was nach ,,unendlich real unendlich" aussieht. In der endlichen Welt wtirde man fiber den Vergleich von n 2 mit n sprechen. Trotzdem ist IQ+I- I~1, w~il die Elemente aus IN x IN sich nummerieren lassen. Die folgende Methode zur Nummerierung yon rationalen Zahlen ist einfach und elegant und findet auch Anwendung in der Theorie der Berechenbarkeit. 1
2
3
4
5
6
(1, 1) (2,1) (3, 1) (4,1) (5,1) (6,1)
(1, 2) (2,2) (3, 2) (4,2) (5, 2) (6,2)
(1, 3) (2,3) (3, 3) (4,3) (5, 3) (6,3)
(1,4) (2,4) (3, 4) (4,4) (5, 4) (6,4)
(1, 5) (2,5) (3, 5) (4,5) (5, 5) (6,5)
(1, 6) (2,6) (3, 6) (4,6) (5, 6) (6,6)
Fig. 5.2 L e m m a 5.2. ( I N - { 0 } ) x ( I N - { 0 } ) i s t abziihlbar. Beweis. Wir konstruieren eine unendliche Matrix M ~ • wie in Fig. 5.2. Die Matrix hat unendlich viele Zeilen und unendlich viele Spalten, die durch nattirliche Zahlen 1, 2, 3 , . . . nummeriert sind. An der Kreuzung d e r / - t e n Zeile und der j - t e n SpaRe befindet sich das Element (i, j) E ( I N - {0}) x ( I N - { 0 } ) . Es ist offensichtlich, dass M ~ x ~ alle Elemente aus ( I N - {0}) x ( I N - {0}) enthglt.
5.2 Die M e t h o d e der Diagonalisierung
167
Der Versuch, die Elemente aus ( I N - {0}) x ( I N - {0}) so zu ordnen, dass man mit den Elementen der ersten Zeile beginnt und danach die Elemente weiterer Zeilen nummeriert, muss scheitern, weil man wegen der Unendlichkeit der ersten Zeile hie zu der Nummerierung der zweiten Zeile gelangt. Eine passende M6glichkeit, die Elemente der Matrix M ~ • zu nummerieren, ist durch die Zick-Zack-Linie in Fig. 5.3 gegeben. Auf diese Weise nimmt man eine endliche Nebendiagonale nach der anderen, und es ist offensichtlich, dass jedes Element von M ~ • eine Nummer bekommt. Die resultierende Folge ist al = (1, 1), a2 = (2, 1), a3 = (1, 2), a4 = (3, 1), a5 = (2,2), a6 = (1, 3), a 7 : (4, 1), ....
1
2
3
4
5
6
..-
Fig. 5.3
Formal definiert man dabei die lineare Ordnung (a,b)_ n. Wir beschreiben nun einen Algorithmus B~, n E IN - {0}, der
(i)
A als ein Teilprogramm benutzt, und
(ii) fiir die leere Eingabe A das Wort x~ generiert. B~ arbeitet wie folgt. B~
begin x := A Berechne K(x) mit dem Algorithmus A; w h i l e K(x) < n do b e g i n x := Nachfolger von x in kanonischer O r d n u n g ; Berechne K(x) mit dem Algorithmus A end; output(z) end
Offensichtlich berechnet B~ das Wort x~ fiir a l l e n E IN. Wir beobachten, dass alle Algorithmen B~ bis auf die Zahl n identisch sind. Sei c die L~nge des Maschinencodes yon B~ bis auf n. D a n n ist die bin~re LS~nge von B~ h6chstens [log 2 n] + c fiir alle n E IN und fiir eine Konstante c unabh~ngig von n, da der Algorithmus A eine konstante Gr6f3e hat. Well B~ das Wort z~ generiert, gilt
fiir alle n E I N - {0}. Nach der Definition von x~ gilt aber
9Wenn man K als eine Funktion von (Xbool)* nach (Y]bool)* start als Funktion von (Xbool)* nach IN betrachtet (dies bedeutet, dass K(z) die bin~tre Kodierung der KolmogorovKomplexit~t von z w~re), dann besagt Satz 5.11, dass die Funktion K nicht total rekursiv ist.
5.6 Die Methode der Kolmogorov-Komplexit~t
201
fiir a l l e n E I N - {0}. Die Ungleichung
[log
+
>
>
kann hSchstens ftir endlich viele Zahlen n E I N - {0} gelten und somit haben wir einen Widerspruch zu der Voraussetzung, dass ein Algorithmus A zur Berechnung von K(x) existiert. D Aufgabe 5.31. Beweisen Sie, dass das Problem, fiir jede Zahl n E IN- {0} das erste Wort xn mit K(xn) >_n zu generieren, ein algorithmisch unlSsbares Problem ist. Um zu zeigen, dass m a n mittels der Reduktionsmethode zum Beweis der Unentscheidbarkeit der grundlegenden Sprachen wie Lu, LH, Lempty usw. iibergehen kann, reduzieren wir die Berechnung der Funktion K auf das Halteproblem. Das folgende L e m m a bietet einen alternativen Beweis der Tatsache LH ~ Z;R aus dem Satz 5.8. 5.12. Falls LH E s dann existiert ein Algorithmus zur Berechnung der Kolmogorov-Komplexitiit K(x) fiir jedes x E (Ebool)*.
Lemma
Beweis. Sei LH E Z;R und sei H ein Algorithmus, der LH entscheidet. Der folgende Algorithmus A (Fig. 5.22) berechnet K ( x ) fiir jedes x E (Ebool)*. A generiert in kanonischer Folge die WSrter Wl, w2, w3, .... Fiir jedes i fiberpriift A, ob wi die binSze Kodierung eines Pascal-Programmes M ist (Fig. 5.22). Falls wi = K o d ( M ) fiir ein Pascal-Programm M, wendet A das Teilprog r a m m H an, um festzustellen, ob M auf dem Wort A hS~lt. Falls M auf dem Wort A h~lt, simuliert A die Arbeit von M auf A (Fig. 5.22). Falls M mit der Ausgabe u = M(A) endet, iiberpriift A, ob u = x. Falls u = x, dann gibt A die Ausgabe K ( x ) = Iw~I aus. Wenn Iwil die Ausgabe yon A ftir die Eingabe x ist, dann ist wi das kiirzeste Wort mit der Eigenschaft wi = K o d ( M ) fiir ein Pascal-Programm M, und M generiert x. Damit hat A die Kolmogorov-Komplexitgt von x tats~chlich bestimmt. D Aufgabe 5.32. Beweisen Sie folgende Aussagen: (i) Falls Lu c s X C (Y]bool)*" (ii) Falls Lempty E s x E (2bool)*.
dann existiert ein Algorithmus zur Berechnung von K(x) fiir jedes dann existiert ein Algorithmus zur Berechnung von K(x) ftir jedes
202
5
Algorithmus A mit A(x) - K ( x ) fiir alle x E {0, 1}*
Berechenbarkeit
x E {0,1}*
Ir x
Ir
ein Generator ftir W l ~ W2~ W3~ 9 9 9
i-i+1
wi
Ir NEIN
F
Testen, ob wi = K o d ( M ) ftir ein Pascal-Programm M Ir
A
K o d ( M ) = wi
Ir
TM H L ( H ) = LH
NEIN
JA
M hS~lt nicht auf A Simulation von M auf A
~(~) Testen, ob
~(~)-~ NEIN
JA
IKod(M)l Fig. 5.22
5.7 Zusammenfassung
5.7
203
Zusammenfassung
Die beweistechnischen Grundlagen der Theorie der Berechenbarkeit liegen in der Mengenlehre. Die grundlegenden Konzepte sind 9 der Vergleich von unendlichen Zahlen, 9 die Methode der Diagonalisierung und 9 die Methode der Reduktion. Eine Menge A hat eine M~chtigkeit, die mindestens so grog ist wie die Mgchtigkeit einer Menge B, wenn eine injektive Abbildung von B nach A existiert. Fiir jede unendliche Menge A gilt I A I - IA • A und daher IINI - I Q + I . Die kleinste unendliche Menge ist IN, und jede Menge 6' mit 16'1 _< IINI heii3t abzghlbar. Jede Menge B mit IBI > IINI heit3t nicht aufghlbar. Die Menge aller Turingmaschinen (Programme) ist abzghlbar, und die Menge aller Sprachen (Probleme) ist nicht abz/~hlbar. Damit sind die meisten Probleme nicht algorithmisch 16sbar. Falls IAI < IBI ffir zwei unendliche Mengen A und B gilt, erm6glicht uns die Diagonalisierungstechnik, ein Element aus B - A zu konstruieren. Eine Sprache L, die von einer Turingmaschine akzeptiert wird, heit3t rekursiv aufzghlbar. Eine Sprache L mit L = L(M) ftir eine TM M, die auf jeder Eingabe in qaccept oder qrej~ct hglt, heif3t rekursiv oder auch entscheidbar. Die Diagonalisierungsmethode erm6glicht es uns, eine Sprache Ldiag , Diagonalsprache genannt, zu konstruieren, die nicht rekursiv aufzghlbar ist. Mit Hilfe der Methode der Reduktion kann man zeigen, dass einige Probleme beztiglich Rekursivitgt mindestens so schwer wie Ldiag und damit nicht rekursiv sind. Die wichtigsten Beispiele nichtrekursiver Entscheidungsprobleme sind die universelle Sprache und das Halteproblem. Die universelle Sprache enthglt alle W6rter, die eine TM M und ein Wort w kodieren und w E L(M). Das Halteproblem ist zu entscheiden, ob ftir eine TM M und ein Wort w die TM M auf w hglt. Der Satz von Rice besagt, dass jedes nichttriviale Entscheidungsproblem nicht rekursiv ist. Daher gibt es keine Algorithmen zum Testen von Programmen auf Korrektheit und Terminierung. Mit der Methode der Reduktion kann man Beweise der Unentscheidbarkeit auch aut3erhalb der Welt der Probleme fiber Turingmaschinen f/ihren. Ein Beispiel hierf/ir ist das Post'sche Korrespondenzproblem.
204
5 Berechenbarkeit
Die Motivation, die Entscheidbarkeit und Unentscheidbarkeit zu studieren, s t a m m t urspriinglich von dem bekannten Mathematiker David Hilbert. Anfang des 19. Jahrhunderts formulierte er einen Forschungsplan, dessen Ziel die Entwicklung eines Formalismus war, in dem man alle mathematischen Probleme 16sen k6nnte. Kurt G6del [G6d 31] bewies 1931, dass der Hilbert'sche Plan nicht realisierbar ist, weil jede mathematische Theorie, die mindestens die Prgdikatenlogik erster Stufe enthglt, unentscheidbar ist. Diese fundamentale Arbeit [GSd 31] fiihrte zur Formalisierung des Begriffs Algorithmus und legte die Grundlage der Theorie der Berechenbarkeit. Die Unentscheidbarkeit der universellen Sprache hat Turing in [Tur 36] bewiesen. In [Ric 53] verSffentliche Rice den nach ihm benannten Satz. Die Unentscheidbarkeit des Post'schen Korrespondenzproblems wurde von Post in [Pos 46] gezeigt. Als weiterfiihrende Literatur fiber die elementaren Grundlagen der Theorie der Berechenbarkeit hinaus empfehlen wir w~rmstens die entsprechenden Kapitel in [HU 79, HMU 01, Sip 97]. Wenn m a n die EE-Reduktion benutzt, um die Aquivalenz zwischen Problemen beztiglich der RekursivitS~t zu definieren, zerf~llt die Menge der nichtrekursiven Sprachen in unendlich viele Klassen s i = 1, 2, .... Wenn eine Sprache L in/2i ist, bedeutet dies, dass L nicht entscheidbar bleiben wiirde, auch wenn wir fiir alle unentscheidbaren Probleme aus den Klassen s s s Algorithmen hS~tten. Interessanterweise gibt es praktische Probleme, die in h6here Klassen dieser Hierarchie geh6ren. Fiir eine Vertiefung der Theorie der Berechenbarkeit empfehlen wir die klassischen B/icher yon Trakhtenbrot [Tra 63] und Rogers [Rog 67].
Kontrollaufgaben 1. Erkl~ren Sie das Cantor'sche Konzept zum Vergleich der M~chtigkeiten zweier Mengen. Warum betrachten wir dieses Konzept als natiirlich? 2. Was ist der Hauptunterschied zwischen endlichen und unendlichen Mengen? (Oder wie wfirden Sic eine unendliche Menge definieren?) 3. Wann ist eine Menge abz~hlbar? Geben Sie mehrere Beispiele von abz~hlbaren Mengen an. Wann ist ein Sprache rekursiv und wann ist sie rekursiv aufz~hlbar? 4. Warum ergibt das kartesische Produkt zweier abzS~hlbarer Mengen eine abzS~hlbare Menge? 5. Erkl~ren Sie die Diagonalisierungsmethode. Beweisen Sie, dass es Sprachen gibt, die keine endliche Darstellung haben. 6. Die reellen sowie die rationalen Zahlen liegen auf der Zahlenachse. Beide Zahlenmengen Q und IR haben die Eigenschaft, dass zwischen zwei beliebigen Zahlen unendlich
5.7 Zusammenfassung
10.
11. 12.
13.
205
viele Zahlen aus dieser entsprechenden Menge liegen. Trotzdem gibt es mehr reelle Zahlen als rationale Zahlen (IQI < IIRI) 9 Wie ist das mOglich? Was ist der Hauptunterschied zwischen rationalen und reellen Zahlen bez/iglich ihrer Darstellungsm6glichkeiten? Wann sagen wit, dass eine Sprache L1 auf eine Sprache L2 reduzierbar ist? Wie wendet man das Konzept der Reduzierbarkeit an, um zu zeigen, dass eine Sprache nicht rekursiv ist? Sei f ( x ) = c eine konstante Funktion yon IN nach IN fiir eine Konstante c E IN. Beweisen Sie, dass es fiir eine gegebene TM (ein gegebenes Programm) nicht entscheidbar ist, ob sie (es) die Funktion f berechnet. Wie baut man eine Instanz des modifizierten Post'schen Korrespondenzproblems f/it eine gegebene Turingmaschine? Um das erste nichtrekursive Problem zu finden, wendet man iiblicherweise die Diagonalisierungsmethode an. Wie kann man dies ohne die Diagonalisierungsmethode schaffen? Die Kolmogorov-Komplexitgt eines Wortes ist wohl definiert. Warum kann man sie nicht algorithmisch fiir jedes Wort bestimmen? Beweisen Sie folgende Aussagen. (i) Wenn man f/ir jede Zahl n E IN die Kolmogorov-Komplexitgt K(n) bestimmen k6nnte, dann w/~re LH E /ZR. (ii) Falls K(n) f~r jede Zahl n E IN algorithmisch berechenbar ist, dann ist Lu rekursiv (entscheidbar). Betrachten Sie die Sprache LKol =
{(w,x) I K(w) ~ - g ( n ) } .
Fiir jede Funktion s C f~(g(n)) sagen wit, dass s a s y m p t o t i s c h m i n d e s t e n s so schnell w~ichst wie g.
212
6 Komplexit~tstheorie
Fiir jede Funktion h" IN ~ IR + definieren wit O(h(n))
-
{q" IN ~ IR + [ 3c, d, no E IN, so dass fiir a l l e n >_ no " 1
_
g E ft(f). (iii) f c (~(g) e=> g c O ( f ) e=~ O ( f ) = O(g). B e t r a c h t e n wir jetzt die T M M aus Fig. 4.5, die die Sprache LMitte akzeptiert. M 15~uft v o m linken his z u m rechten R a n d des B a n d e s u n d zuriick u n d bewegt dabei den linken R a n d ein Feld nach rechts u n d den rechten R a n d ein Feld nach links. Auf diese Weise b e s t i m m t M das m i t t l e r e Feld. Die Z e i t k o m p l e x i t g t von TimeM von M ist offensichtlich in O(n2). Aufgabe 6.4. Bestimmen Sie fiir die TM aus Fig. 4.5 TimeM(n) genau. Aufgabe 6.5. Entwerfen Sie eine 1-Band-Turingmaschine B mit L(B)
-
-
LMitte und Time. (n) E
o(~) Aufgabe 6.6. Analysieren Sie asymptotisch die Zeitkomplexit~t der TM A aus Fig. 4.6, die die Sprache L7) akzeptiert.
6.2 Komplexitgtsmafie
213
Die 1-Band-Turingmaschine A aus Fig. 4.10 akzeptiert die Sprache Lgleich = {wCpw I w E (Eboo~)*}, indem das Prefix des Eingabewortes his zum # auf das Arbeitsband kopiert und dann der Inhalt des Arbeitsbandes mit dem Suffix des Eingabewortes nach dem # verglichen wird. Offensichtlich ist TimeA(n) _
n existiert eine gquivalente TM B, so dass TimeB(n) C O((TimeA(n))2).
6.4
Nichtdeterministische Komplexit
itsmaBe
Die nichtdeterministischen Turingmaschinen (Algorithmen) k6nnen viele 5 unterschiedliche Berechnungen auf einer Eingabe machen. Diese k6nnen alle sehr unterschiedliche Komplexitgten haben. Was ist dann die Komplexitgt der Arbeit einer nichtdeterministischen Maschine (eines nichtdeterministischen Algorithmus) M auf einer Eingabe w? Wir betrachten bei nichtdeterministischen Berechnungsmodellen die optimistische Ansicht, die besagt, dass eine nichtdeterministische Maschine immer die beste MSglichkeit aus einer bestehenden Auswahl wghlt. Die ,,beste Wahl" bedeutet nicht nur die richtige Wahl, die zu dem richtigen Resultat ftihrt, sondern auch die effizienteste Wahl, die mit minimaler Komplexitgt zu dem richtigen Resultat ftihrt. Deswegen definiert man die nichtdeterministische Komplexitgt einer Maschine M auf einer Eingabe x als die Komplexitgt der effizientesten Berechnung yon M auf x mit dem richtigen Resultat. Im Falle der Sprachenerkennung (der Entscheidungsprobleme) betrachtet man nur die Komplexitgt von Berechnungen auf WSrtern, die in der Sprache liegen. D e f i n i t i o n 6.7. Sei M eine NTM oder eine nichtdeterministische MTM. Sei x E L ( M ) c_ E*. Die Z e i t k o m p l e x i t ~ i t v o n m a u f x, T i m e M ( x ) , ist die 5Sogar unendlich (aber aufzghlbar) viele.
6.4 Nichtdeterministische Komplexit~tsmage
225
Liinge der kiirzesten akzeptierenden Berechnung von M auf x. Die Z e i t k o m plexit~it v o n M ist die Funktion TimeM" IN --+ IN, definiert dutch T i m e M ( n ) -- max{TimeM(x) i x E L ( M ) n E~}.
Sei C - C I ~ C 2 ~ . . . ~ C m eine akzeptierende Berechnung von M auf x. Sei SpaceM(C~ ) die Speicherplatzkomplexitgt der Konfiguration C~. Wit definieFen
SpaceM(C)
-
-
max{SpaceM(Ci) I i - 1, 2 , . . . ,
Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n M a u f x ist S p a c e M ( x ) -- min{SpaceM(C )
C ist eine akzeptierende Berechnung yon M auf x.}.
Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n M i s t definiert dutch
die Funktion Space M 9 IN --+ IN
S p a c e M ( n ) -- max{SpaceM(z) I z E L ( M ) n E~}. D e f i n i t i o n 6.8. Fiir alle Funktionen f, g" IN ~ IR + definieren wit
NTIME(f) NSPACE(g)
=
{ L ( M ) I M ist eine nichtdeterministische MTM
=
mit TimeM(n) E O ( f ( n ) ) } , { L ( M ) I M ist eine nichtdeterministische MTM
NLOG = NP
-
mit SpaceM(n ) r O(g(n))}, NSPACE(log 2 n), U NTIME(nC)' und cEIN
NPSPACE -
U NSPACE(n~)" cr
Zuerst zeigen wir analog zu Lemma 6.3 und Satz 6.2 die Relation zwischen der Zeitkomplexit~t und der Speicherplatzkomplexit~t yon nichtdeterministischen Turingmaschinen. L e m m a 6.6. Fiir alle Funktionen t und s mit s(n) >_ log 2 n gilt
(i) NTIME(t)c_ NSPACE(t)
226
6 Komplexit~tstheorie
(ii) NSPACE(s)c_ U NTIME(c~(~)) cEIN
Beweis. Wir beweisen zuerst (i) und dann (ii). (i) Sei L E NTIME(t). Dann existiert eine nichtdeterministische MTM M mit L ( M ) - L und TimeM(n) n, interpretiert A die ersten n Bits von x als eine Belegung der Variablen in (I)~ und iiberpriift, ob diese Belegung die Formel (P~ erfiillt. Beispiel 6.2. Eine k-Clique eines Graphen G mit n Knoten, k _< n, ist ein vollstS~ndiger Teilgraph von k Knoten in G. Sei
CLIQUE
{ x # y l x , y E {0, 1}*, x kodiert einen Graphen G,, der eine Nummer (y)-Clique enthglt}.
Ein Polynomialzeit-Verifizierer B fiir CLIQUE arbeitet wie folgt. Ftir jede Eingabe (w, z) tiberprtift B, ob w = x--/Cy, wobei x die Kodierung eines Graphen Gx und y E (Eboo~)* ist. Falls nicht, verwirft B seine Eingabe. Falls ja und G, n Knoten V l , . . . , V n hat, iiberpriift B, ob Nummer(y) ~log2(n + 1)1. Nummer(y) gelten. Falls nicht, verwirft B seine Eingabe (w, z). Falls ja, interpretiert B das P r a f i x y o n z der Lgnge ~log2(n + 1)1. Nummer(y)
6.5 Die Klasse NP und Beweisverifikation
235
als eine Kodierung yon Nummer(y) Zahlen aus { 1, 2 , . . . , n}. B verifiziert, ob es sich u m Nummer(y) unterschiedliche Zahlen il, i2,..., iNummer(y) handelt und ob die Knoten vii, vi2,. 9 9 viN. . . . . (~) einen vollstgndigen G r a p h e n in Gx bilden. Falls ja, akzeptiert B die Eingabe (w, z), ansonsten verwirft B die Eingabe. Aufgabe 6.17. Beschreiben Sie einen Polynomialzeit-Verifizierer fiir die Sprache COMPOSITE- {x c (Ebool)* Nummer(x) ist keine Primzahl }. Aufgabe 6.18. Beschreiben Sie einen Polynomialzeit-Verifizierer und eine polynomielle NTM fiir die Sprache HK (das Problem der Hamiltonschen Kreises aus Beispiel 2.4). Die folgende B e h a u p t u n g zeigt, dass m a n jede polynomielle N T M in eine gquivalente N T M umwandeln kann, die alle nichtdeterministischen Entscheidungen am Anfang macht und dann nur die Richtigkeit des Geratenen verifiziert. S a t z 6.8.
VP-
NP.
Beweis. Wir beweisen VP - NP durch die zwei Inklusionen NP C VP und VP c NP. (i) Zuerst zeigen wir NP c_ VP. Sei L E NP, L G E* fiir ein Alphabet E. Damit ist L - L(M) fiir eine polynomielle N T M M mit TimeM(n) C O(n k) ffir ein k C IN {0}. Ohne Einschrgnkung der Allgemeinheit dfirfen wit voraussetzen, dass M fiir jedes Argument eine Wahl aus h6chstens zwei M6glichkeiten hat. W i t beschreiben jetzt einen Verifizierer A, der fiir eine Eingabe (x, c) E E* x (Eboo~)* wie folgt arbeitet" (a) A interpretiert c als einen Navigator ffir die Simulation der nichtdeterministischen Entscheidungen von M. A simuliert schrittweise die Arbeit yon M auf x. Falls M eine Wahl zwischen zwei M6glichkeiten hat, dann wghlt A die erste M6glichkeit, falls das ngchste Bit von c eine 0 ist, und A n i m m t die zweite M6glichkeit, wenn das ngchste Bit von c eine 1 ist. (Dies ist eine Strategie, u m eine Berechnung von M auf x eindeutig dutch ein Wort zu bestimmen, die ghnlich zu der Strategie im Beweis des Satzes 6.5 ist.) (b) Falls M noch eine nichtdeterministische Wahl hat, abet schon alle Bits von c verbraucht sind, dann h~lt A und verwirff die Eingabe (x, c). (c) Falls A es schafft, die durch c b e s t i m m t e Berechnung yon M auf x vollstSmdig zu simulieren, dann akzeptiert A seine Eingabe (x, c) genau dann, wenn M das Wort x in der durch c b e s t i m m t e n Berechnung akzeptiert.
6 Komplexit~tstheorie
236
Wir zeigen jetzt, dass A ein Polynomialzeit-Verifizierer mit V ( A ) - L ( M ) ist. Falls z E L ( M ) , dann l~uft die kiirzeste akzeptierende Berechnung C~,x yon M auf z in der Zeit D ~ n aber existiert ein Zertifikat (Navigator) c mit Ic _< IC ,xl, die Berechnung C~,x bestimmt. Weil A jeden Schritt yon M in einem Schritt simuliert, 15~uft die Berechnung yon A auf (z, c) in der Zeit Falls x ~ L ( M ) , existiert keine akzeptierende Berechnung yon M auf x, und so verwirft A die Eingaben (x, d) fiir alle d E (Eboo~)*. Damit ist A ein O(nk)-Verifizierer mit V ( A ) - L ( M ) . (ii) Wir zeigen jetzt VP c_ NP. Sei L E VP, L c_ E* fiir ein Alphabet E. Dann existiert ein PolynomialzeitVerifizierer A mit V ( A ) - L. Wir betrachten eine NTM M, die auf jeder Eing~be x E E* wie folgt arbeitet. (a) M generiert nichtdeterministisch ein Wort c E (Ebool)*. (b) M simuliert schrittweise die Arbeit von A auf (x, c). (c) M akzeptiert x genau dann, wenn A seine Eingabe (x, c) akzeptiert. Offensichtlich ist L ( M ) - V(A) und TimeM(x) _< 2. TimeA(x,c) ftir jedes x E L ( M ) und einem ktirzestem Zeugen c E (Ebool)* von x E L ( M ) . Somit arbeitet M in polynomieller Zeit und es gilt L E NP.
Nach Satz 6.8 ist die Klasse NP die Klasse aller Sprachen L, die ftir jedes x E L einen in x I polynomiell langen Beweis yon ,,x E L" haben, welchen man deterministisch in polynomieller Zeit beztiglich Izl verifizieren kann.
6.6
NP-Vollst indigkeit
Im Unterschied zur Theorie der Berechenbarkeit, bei der man fiber gut ausgearbeitete Methoden zur Klassifizierung der Probleme in algorithmisch 10share und algorithmisch unlSsbare verftigt, hat man in der Komplexitgtstheorie keine mathematischen Methoden zur Klassifizierung konkreter Probleme beztiglich der praktischen LSsbarkeit (der ZugehSrigkeit zu P) gefunden. Es fehlen ausreichend starke Techniken, um untere Schranken ftir die KomplexitS~t konkreter Probleme zu beweisen. Wie weit man von einem Beweis einer Aussage, dass ein konkretes Problem nicht in polynomieller Zeit 16sbar ist, entfernt ist, zeigt die folgende Tatsache. Die hSchste bekannte untere Schranke ftir die Zeitkomplexitgt von Mehrband-Turingmaschinen zur L6sung eines konkreten
6.6 NP-VollstSmdigkeit
237
Entscheidungsproblems aus NP ist die triviale untere Schranke s f~(n) (man kann bisher noch nicht einmal eine untere Schranke gt(n-log n) fiir irgendein Problem aus NP beweisen), obwohl fiir tausende Probleme aus NP die schnellsten bekannten Algorithmen in exponentieller Zeit laufen. Wir sind also bei vielen Problemen, yon denen wir glauben, dass f~(2~) eine untere Schranke fiir die ZeitkomplexitS~t ist, nicht imstande, eine h6here Schranke als f~(n) zu beweisen. Um diese Liicke zwischen der beweistechnischen Realitgt und dem Gewiinschten zumindests teilweise zu fiberwinden, iiberlegten die Forscher, ob man eine Methodik zur Klassifizierung von Problemen bezfiglich praktischer L6sbarkeit entwickeln k6nnte, wenn man sich eine zus~tzliche, zwar unbewiesene aber glaubwtirdige, Annahme erlaubt. Dies fiihrte zu dem Konzept der NPVollstgndigkeit, dass eine solche Klassifizierung von Problemen unter der Voraussetzung P c NP erm6glicht. Das Ziel dieses Abschnittes ist es, dieses Konzept vorzustellen. Zuerst diskutieren wir die Glaubwfirdigkeit der Annahme P C NP. Den theoretischen Hintergrund fiir diese Annahme haben wir im Abschnitt 6.5 vermittelt. Man glaubt nicht, dass die Beweisverifizierung den gleichen Schwierigkeitsgrad wie die Beweiserzeugung hat. Weiterhin sieht man trotz grofier Miihe keine andere M6glichkeit, nichtdeterministische Algorithmen deterministisch zu simulieren, als systematisch alle nichtdeterministischen Berechnungen zu fiberpriifen. Weil aber die nichtdeterministischen BerechnungsbS~ume in ihrer Tiefe exponentiell viele Berechnungen beinhalten kannen und die Tiefe des Baurues der ZeitkomplexitS~t entspricht, scheint ein exponentielles Wachstum der ZeitkomplexitS~t bei einer solchen deterministischen Simulation unvermeidbar. Ein praktischer Grund fiir die Annahme P c NP basiert auf der 40-j~hrigen Erfahrung in der Algorithmik. Wir kennen mehr als 3000 Probleme in NP, viele davon sehr intensiv untersucht, ftir die die besten bekannten deterministischen Algorithmen eine exponentielle Komplexit~t haben. Die Algorithmiker halten es nicht fiir sehr wahrscheinlich,
dass dieser Zustand
nur eine Folge ih-
rer UnfSohigkeit ist, existierende effiziente Algorithmen f/Jr diese Probleme zu finden. Wir setzen jetzt P c NP fiir den Rest dieses Abschnittes voraus. Wie kann uns das helfen, Resultate der Art L ~ P zu zeigen? Die Idee ist, eine Klasse von schwersten Problemen in NP zu spezifizieren. Die Spezifikation muss so erfolgen, dass die Zugeh6rigkeit eines der schwersten Probleme in P automatisch P = NP fordert. Weil wir P ~ NP vorausgesetzt haben, dfirfte dann keines der schweren Probleme in P sein. SDie Zeit, die man braucht, um iiberhaupt die ganze Eingabe einmal zu lesen.
6 Komplexit~tstheorie
238
Ahnlich wie in der Theorie der Berechenbarkeit nutzen wir jetzt den klassischen mathematischen Ansatz der Reduktion zur Definition der schwersten Probleme in NP. Ein Problem L aus NP ist schwer, wenn man jedes Problem aus NP etIizient auf L reduzieren kann.
Definition 6.10. Seien L1 C_ E~ und L2 C_ E~ zwei Sprachen. Wit sagen, dass L1 polynomiell auf L2 reduzierbar ist, L1 ~_p L2, falls eine polynomielle TM (ein polynomieller Algorithmus) A existiert (Fig. 6.3), der fiir jedes Wort x E E 1. ein Wort A(x) E E 2. berechnet 9, so dass x E L1 ~ A(x) E L2. A wird eine polynomielle Reduktion von L1 auf L2 genannt. Wir sehen, dass man die Reduktion _
- 0 fiir alle restlichen Variablen aus dieser Klasse; H(i,t) - 1 und H{j,t) - 0 ftir alle j E r i; S(r,t) - 1 und S(1, t) - 0 fiir alle / E {0, 1 , . . . , s},! -r r. Wenn wir fiir jeden Zeitpunkt t eine Konfiguration angeben, haben wir also die MSglichkeit, eine beliebige Berechnung von p(l l) Schritten yon M auf w durch die passende Belegung der Variablen zu beschreiben. Es ist wichtig, auch zu beobachten, dass es Belegungen der betrachteten Variablen gibt, die keine Interpretation auf der Ebene von Berechnungen von M auf w haben. So wiirde z.B. S 3?
7.4 Lokale Suche
281
Die lokale Suche bez/iglich der NachbarschaR ist nichts anderes als eine iterative Bewegung von einer L6sung zu einer besseren, benachbarten L6sung bis man eine zulS~ssige L6sung/3 erreicht, in dessen Nachbarschaff keine bessere L6sung als ,3 existiert. Das Schema der lokalen Suche kann man also wie folgt formulieren. D a s S c h e m a d e r lokalen Suche beziiglich e i n e r N a c h b a r s c h a f t f LS(f)
Eingabe: Eine Instanz x eines Optimierungsproblems b/. Phase 1. Berechne eine zul~ssige L6sung c~ E A/t(x) Phase 2. while a ist kein lokales Optimum beziiglich fx do begin finde ein/3 E fx(C~), so dass cost(fl) < cost(c~) falls b/ein Minimierungsproblem ist und cost(~3) > cost(a) falls b/ein Maximierungsproblem ist; Ct : :
/~
end
Ausgabe: o~ Wir bemerken, dass LS(f) immer ein lokales Optimum beziiglich der NachbarschaR f liefert. Falls alle lokalen Optima auch globale Optima sind, garantiert die lokale Suche die L6sung des Optimierungsproblems. Dies ist der Fall bei dem Optimierungsproblem des minimalen Spannbaumes, wenn die Nachbarschaff durch den Austausch einer Kante bestimmt wird. Wenn sich die Kosten der lokalen Optima nicht zu sehr von den Kosten der optimalen L6sungen unterscheiden, kann die lokale Suche zum Entwurf eines Approximationsalgorithmus fiihren. Dies ist der Fall bei dem Problem des maximalen Schnittes MAX-CUT. Gegeben sei ein Graph G = (If, E). Jedes Paar (V1, V2) mit V10 V2 = V und V1 A V2 = 0 ist ein Schnitt von G. Der Preis des Schnittes (1/1, V2) ist die Anzahl der Kanten zwischen den Knoten aus V1 und V2, d.h.
o t((Vl,
G) : IE n
Vl,
Das Ziel ist die Maximierung. Wir betrachten lokale Transformationen, die einen Knoten aus einer Seite auf die andere Seite schieben. Der auf lokaler Suche basierte Algorithmus kann wie folgt beschrieben werden.
282 Algorithmus
7 Algorithmik fiir schwere Probleme LS-CUT
Eingabe: Ein Graph G = (V, E). Phase 1. S = 0. {WS~hrend der Berechnung betrachten wir den Schnitt (S, V - S). Am Anfang ist der Schnitt (0, V).} Phase 2. w h i l e ein Knoten v E V existiert, so dass cost(S U { v } , V - (S U { v } ) ) > cost(S, V - S), oder cost(S - {v}, (V - S) U {v}) > cost(S, V - S) gilt do begin nehme v und bringe es auf die andere Seite des Schnittes; end Attsgabe: (S, V - S). S a t z 7.6. LS-CUT ist ein 2 - A p p r o z i m a t i o n s a l g o r i t h m u s fiir M A X - C U T .
Beweis. Es ist offensichtlich, dass der Algorithmus LS-CUT eine zulS~ssige L6sung ffir M A X - C U T ausgibt. Es bleibt zu zeigen, dass GiiteLs-CuT(G) _< 2 fiir jeden Graph G = (V, E). Sei (]/'1, }/2) die Ausgabe yon LS-CUT. Weil (YI, Y2) ein lokales Maximum beziiglich des Austauschs eines Knotens ist, hat jeder Knoten v E Y1 (Y2) mindestens so viele Kanten zu Knoten in Y2 (Y1) wie die Anzahl der Kanten zwischen v und Knoten aus Y1 (Y2) ist. Damit ist mindestens die Ua~fte aller Kanten im Schnitt (Y1, Y2). Weil OptMIN_CuT(G ) nicht grat3er als IEI sein kann, ist GtiteLs-CuT(G) _< 2. D Aufgabe 7.10. Beweisen Sie, dass LS-CUT ein polynomieller Algorithmus ist. Aufgabe 7.11. Betrachten Sie das Problem des gewichteten maximales Schnittes, MAX-GEW-CUT, das eine Verallgemeinerung von MAX-CUT ist. Eine Eingabe yon MAX-GEW-CUT ist ein Graph G = (V, E) und eine Kostenfunktion c: E --~ IN, die jeder Kante e ihre Kosten c(e) zuordnet. Die Kosten eines Schnittes sind die Summe der Kosten der Kanten des Schnittes. Das Ziel ist, eine L6sung mit maximalen Kosten zu finden. Offensichtlich ist MAX-GEW-CUT ein Zahlproblem. Entwerfen Sie einen Algorithmus mit lokaler Suche, der einen pseudopolynomiellen 2-Approximationsalgorithmus darstellt. Die Algorithmen, die auf lokaler Suche basieren, nennt man lokale Algorithmen. Die lokalen Algorithmen sind mehr oder weniger durch die Wahl der Nachbarschaft bestimmt. Die einzigen noch freien Parameter in dem Schema der lokalen Suche sind die Strategie nach der Suche der besseren Nachbarn und die Entscheidung, ob m a n die erste gefundene bessere L6sung als neue L6sung nimmt oder ob m a n unbedingt die beste L6sung in der Nachbarschaft bestimmen m6chte.
7.4 Lokale Suche
283
Angenommen P ~ NP, dann gibt es offensichtlich keine polynomiellen lokalen Algorithmen fiir NP-schwere Optimierungsprobleme. Wir bemerken, dass die ZeitkomplexitS~t eines lokalen Algorithmus als
(die Zeit der Suche in der Nachbarschaft) (die Anzahl der iterativen Verbesserungen) abgeschS~tzt werden kann. Wir sind jetzt an folgender Frage interessiert.
Fiir welche NP-schweren Optimierungsprobleme existiert eine Nachbarschaft F polynomieller GrSfle, so dass LS(f) immer eine optimale LSsung liefert? Dies bedeutet, dass wir bereit sind, eine im schlechtesten Fall m6gliche exponentielle Anzahl yon Verbesserungsiterationen in Kauf zu nehmen, falls jede Iteration in polynomieller Zeit l~uft und die Konvergenz zu einer optimalen L6sung gesichert ist. Die Idee dabei ist, dass die Vergr6fierung der Nachbarschaften auf der einen SeRe die Wahrscheinlichkeit verkleinert, an ein schwaches lokales Optimum zu gelangen, auf der anderen SeRe aber die Zeitkomplexit~t einer Verbesserungsiteration erh6ht. Die Frage ist, ob eine Nachbarschaft von vernfinftiger Gr6fie existiert, so dass jedes lokale Optimum auch ein globales Optimum ist. Diese Fragestellung wird wie folgt formalisiert. D e f i n i t i o n 7.6. Sei N = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem und s e i f eine Nachbarschaft fiir bt. Eine Nachbarschaft f heiflt echt, falls fiir jedes x E L jedes lokale Optimum fiir x beziiglich fx eine optimale LSsung fiir x ist.
Eine Nachbarschaft f heiflt p o l y n o m i e l l u n t e r s u c h b a r , falls ein polynomieller Algorithmus existiert, der fiir jedes x E L und jedes c~ E Ad(x) eine der besten LSsungen aus fx(a) finder. Unsere Frage kann man jetzt wie folgt formulieren:
Fiir welche Optimierungsprobleme existieren echte polynomiell untersuchbare Nachbarschaften ? Das bekannteste positive Beispiel ist der Simplex-Algorithmus ffir das Problem der linearen Programmierung. Er basiert auf der Existenz einer echten polynomiell untersuchbaren Nachbarschaft, aber er kann auf einigen Probleminstanzen exponentielle Zeitkomplexitgt beanspruchen, weil eine exponentielle Anzahl von Verbesserungsiterationen m6glich ist.
284
7 Algorithmik fiir schwere Probleme
A u f g a b e 7.12. Sei k-Exchange die Nachbarschaft fiir TSP, in d e r k Kanten ausgetauscht werden k6nnen. Wie mS~chtig ist die Nachbarschaft k-Exchangea(H ) eines Hamiltonschen Kreises H, wenn G n Knoten hat? A u f g a b e 7.13.* Beweisen Sie, dass ftir jede k-Exchange keine echte Nachbarschaft fiir TSP ist.
Konstante
k
c
IN-
{0}
Unsere Zielsetzung ist jetzt, eine Methode vorzustellen, mit der man die Nichtexistenz einer echten polynomiell untersuchbaren Nachbarschaft fiir Optimierungsprobleme beweisen kann. Wie wir sehen werden, kann das Konzept der starken NP-Schwierigkeit auch hier erfolgreich angewendet werden. D e f i n i t i o n 7.7. Sei b / = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem, das ein Zahlproblem ist (Zahloptimierungsproblem). Wit sagen, dass bt kostenbeschr~inkt ist, falls fiir jede Instanz x mit Int(x) = ( i l , i 2 , . . . , G ) , ij E IN fiir j = 1, 2 , . . . , n gilt
{
n}
1,2,...,~-~ij j=l
fiir jede zuliissige LSsung ct E Ad(x). Wir bemerken, dass fast jedes bekannte Zahloptimierungsproblem kostenbeschr~tnkt ist und so die Forderung der Kostenbeschr~tnkung keine grof3e EinschrS~nkung der Anwendbarkeit folgender Methode bedeutet. Satz 7.7. Sei bt E NPO ein kostenbeschriinktes Zahloptimierungsproblem. Falls P ~ NP gilt und bt stark NP-schwer ist, dann existiert keine echte polynomiell untersuchbare Nachbarschaft fiir bt.
Beweis. Wir fiihren einen indirekten Beweis. Angenommen, b/ besitzt eine echte polynomiell untersuchbare Nachbarschaft f. Dann kann man fiir jede Eingabe x in einer polynomiellen Zeit p(l l) einen Iterationsschritt yon LS(fx) durchfiihren. Weil b/ E NPO ist, kann man dann die StartlSsung auch in polynomieller Zeit finden. In jeder Verbesserungsiteration verbessert man die Kosten der aktuellen zulS~ssigen L6sung mindestens um 1, weil die Kosten der L6sungen eines kostenbeschr~tnkten Zahlproblems nur ganze Zahlen sind. Da die Kosten der LSsungen aus dem Intervall von Ibis EjEInt(x)J -< n.MaxInt(x) sind, gibt es hSchstens Izl. MaxInt(x) Verbesserungsiterationen. Damit ist die Gesamtlaufzeit des LS(f) in O(p(Ix]) . Ixl . MaxInt(x)).
7.5 Simulated Annealing
285
Weil f eine echte Nachbarschaft ist, garantiert LS(f) eine optimale L6sung fiir z. Damit ist LS(f) ein pseudopolynomieller Algorithmus ftir b/. Weil b / s t a r k NP-schwer ist, widerspricht dies der Annahme P r NP. D In Kapitel 6 haben wir bewiesen, dass TSP und MAX-CL stark NP-schwer sind. Wir bemerken, dass beide Probleme kostenbeschrS~nkte Zahloptimierungsprobleme sind. Damit besitzen diese Optimierungsprobleme keine echte polynomiell untersuchbare Nachbarschaft. Fiir das TSP kann man sogar beweisen, 1
dass es keine echte Nachbarschaft der exponentiellen Gr6fie 2~ besitzt.
7.5
Simulated Annealing
In diesem Abschnitt stellen wir Simulated Annealing (simulierte Abkiihlung) als eine Heuristik zur L6sung schwerer Probleme vor. Der Begriff Heuristik bezeichnet hier eine Entwurfstechnik fiir Algorithmen, die keine L6sung yon hoher Qualits~t (guter Approximation) in verniinftiger Zeit fiir jede Eingabe garantieren. Dies bedeutet, dass wir bei Heuristiken viel mehr von unseren Anforderungen abgeben als in allen bisher vorgestellten Methoden. Die Hoffnung ist dabei, dass die heuristischen Algorithmen fiir die typischen anwendungsrelevanten Probleminstanzen verniinftige Resultate in kurzer Zeit liefern. Trotz der Unsicherheit beziiglich der Laufzeit und der L6sungsqualitS~t sind die Heuristiken bei den Anwendern sehr beliebt, weil sie gewisse, nicht zu unterschgtzende Vorteile haben. Sie sind meistens einfach und schnell zu implementieren und zu testen, so dass die Herstellung eines heuristischen Algorithmus viel kostengiinstiger ist als der Entwurf eines spezialisierten, auf das Problem zugeschnittenen Algorithmus. Zweitens sind Heuristiken robust, was bedeutet dass sie fiir eine breite Klasse von Problemen erfolgreich arbeiten, obwohl diese Probleme ziemlich unterschiedliche kombinatorische Strukturen haben. Dies bedeutet, dass eine Anderung der Problemspezifikation in dem Prozess des A1gorithmenentwurfs kein Problem darstellt, weil h6chstens ein paar Parameter des heuristischen Algorithmus zu 5~ndern sind. Fiir den Entwurf eines problemzugeschnittenen Optimierungsalgorithmus bedeutet eine Anderung der Aufgabenspezifikation oft eine solche Anderung der kombinatorischen Struktur, dass man mit dem Entwurf von vorne beginnen muss. Wenn man die lokale Suche auf ein schweres Problem anwendet, bei dem man das Verhalten des lokalen Algorithmus nicht bestimmen kann, dann kann man lokale Suche auch als eine Heuristik betrachten. Sie hat auch die Eigenschaft der Robustheit, weil man sie praktisch auf jedes Optimierungsproblem anwen-
7 Algorithmik fiir schwere Probleme
286
den kann. Die gr6t3te SchwS~che der lokalen Suche ist, dass sie in einem lokalen Optimum endet, egal wie gut oder schlecht dieses lokale Optimum ist. Wir wollen jetzt die Methode der lokalen Suche verbessern, indem wir die Fallen der lokalen Optima aufheben. Dabei lassen wir uns durch die physikalische Optimierung yon MetallzustS~nden in der Thermodynamik inspirieren. Der optimale Zustand eines Metalls entspricht der optimalen Kristallstruktur, wobei alle Bindungen zwischen den elementaren Teilchen gleich stark sind. Wenn einige Bindungen durch Belastung wesentlich schwgcher und andere stgrker werden, besteht Bruchgefahr und das Metall ist in einem schlechten Zustand. Der optimale Zustand entspricht also dem Zustand mit minimaler Energie. Die Optimierungsprozedur besteht aus folgenden zwei Phasen. Phase 1. Dem Metall wird yon aufien durch ein ,,heifies Bad" Energie zugefiihrt. Dadurch schwS~chen sich fast alle Bindungen und ein chaosS~hnlicher Zustand entsteht. Phase 2. Das Metall wird langsam abgekiihlt, bis es einen optimalen Zustand mit minimaler Energie erreicht. Diesen Optimierungsprozess kann man mit folgendem Algorithmus auf einem Rechner simulieren. Wir bezeichnen mit E(s) die Energie des Metallzustandes s. Sei CB die Boltzmann-Konstante.
Metropolis-Algorithmus Eingabe: Ein Zustand s des Metalls mit der Energie E(s). Phase 1. Bestimme die Anfangstemperatur T des heif3en Bades. Phase 2. Generiere einen Zustand q aus s durch eine zuf~tllige kleine Anderung (z.B. eine Positions~tnderung eines Elementarteilchens) i f E ( q ) _< E ( 8 ) t h e n 8 : - - q
{akzeptiere q als neuen Zustand} e l s e akzeptiere q als neuen Zustand mit der Wahrscheinlichkeit _ E(q)-E(~)
Phase 3:
prob(s ~ q) = e r ; {d.h. bleibe im Zustand s mit der Wahrscheinlichkeit 1 - prob(s --+ q)} Verkleinere T passend. i f T ist nicht sehr nahe bei 0 t h e n goto Phase 9;
else output(s);
7.5 Simulated Annealing
287
Zuerst beobachten wir die starke Ahnlichkeit zwischen der lokalen Suche und dem Metropolis-Algorithmus. Der Metropolis-Algorithmus besteht aus Iterationsschritten, und in einem Iterationsschritt wird ein neuer Kandidat fiir einen aktuellen Zustand durch eine lokale Transformation bestimmt. Die wesentlichen Unterschiede sind folgende. (i) Der Metropolis-Algorithmus darf mit gewisser Wahrscheinlichkeit auch in einen schlechteren Zustand mit hoher Energie iibergehen und dadurch m6gliche lokale Minima iiberwinden. (ii) Nicht die lokale Optimalit~t, sondern der Wert von T entscheidet fiber die Terminierung des Metropolis-Algorithmus. Die Wahrscheinlichkeit prob(s ~ q) folgt den Gesetzen der Thermodynamik, die besagen, dass die Wahrscheinlichkeit einer Verschlechterung (eines Energiewachstums) um einen Wert AE --AE
prob(AE) - ecBr ist. Diese Wahrscheinlichkeit hat zwei wichtige EigenschaRen. (a) Die Wahrscheinlichkeit prob(s ~ q) verkleinert sich mit wachsendem E ( q ) - E(s), d.h. starke Verschlechterungen sind weniger wahrscheinlich als schwgchere, und (b) die Wahrscheinlichkeit prob(s ~ q) wachst mit T, d.h. starke Verschlechterungen (Uberwindung yon tiefen lokalen Minima) sind am Anfang bei grof3em T wahrscheinlicher als bei kleinem T. Ein wichtiger Punkt ist, dass die MSglichkeit, die lokalen Minima durch Verschlechterung zu iiberwinden, notwendig fiir das Erreichen des Optimums ist. Um den Metropolis-Algorithmus zur LSsung von kombinatorischen Optimierungsproblemen einzusetzen, reicht es aus, die folgende Beziehung zwischen den Begriffen der Thermodynamik und den Bergriffen der kombinatorischen Optimierung festzustellen. Menge der SystemzustS~nde Energie eines Zustandes ein optimaler Zustand Temperatur
~ = = =
Menge der zulS~ssigen L6sungen Preis einer zulgssigen LSsung eine optimale LSsung ein Programmparameter
Sei b/ - (Ez, Eo, L, Ad, cost, Minimum) ein Optimierungsproblem mit einer Nachbarschaft f. Dann kann man die Simulation des Metropolis-Algorithmus wie folgt beschreiben.
7 Algorithmik fiir schwere Probleme
288 S i m u l a t e d A n n e a l i n g beziiglich f
SA(I) Eingabe: Eine Probleminstanz x E L. Phase 1. Berechne eine zulS~ssige L6sung a E 34(x). W~hle eine Anfangstemperatur T. W~hle eine Reduktionsfunktion 9, abh~ngig yon T und der Anzahl Iterationen I. Phase 2.
der
I:=0; while T > 0 (oder T ist nicht zu nah an 0) do begin w~thle zuf~tllig ein fl aus f~(a) ; i f cost(/3) 0 fiir jedes elementare Ereignis x, W a h r ( S ) - 1, und W hr(X o Y) - W hr(X) + W hr(Y) XNY-O.
X, Y c_ S
W a h r ( X ) nennt man die W a h r s c h e i n l i c h k e i t des E r e i g n i s s e s X . Das Paar (S, W a h r ) wird als ein W a h r s c h e i n l i c h k e i t s r a u m bezeichnet. Falls Wahr({x}) = Wahr({y}) fiir alle x, y E S, nennt man Wahr die u n i f o r m e W a h r s c h e i n l i c h k e i t s v e r t e i l u n g (oder G l e i c h v e r t e i l u n g ) auf S. A u f g a b e 8.1. Beweisen Sie, dass folgende Eigenschaften ftir jeden Wahrscheinlichkeitsraum (S, Wahr) immer gelten: (i) (ii) (iii) (iv)
Wahr(0) - 0, W a h r ( S - X ) - 1 - Wahr(X) fiir jedes X C_ S, ftir alle X, Y c_ S mit X c_ Y gilt Wahr(X) _< Wahr(Y), Wahr(X 0 Y) - Wahr(X) + Wahr(Y) - Wahr(X N Y) _< Wahr(X) + Wahr(Y) fiir alle X, Y c_ S, (v) W a h r ( X ) - }--]xeX Wahr(z) ftir alle X G S.
Wir bemerken, dass alle Eigenschaften aus Aufgabe 8.1 unserer Zielsetzung und damit der informellen Definition (8.1) entsprechen. Somit entspricht die Addition der Wahrscheinlichkeiten unserer intuitiven Vorstellung, dass die Wahrscheinlichkeit, dass irgendeines von mehreren unvereinbaren Ereignissen eintritt, gleich der Summe der Wahrscheinlichkeiten der betrachteten Ereignisse ist. Was entspricht der Multiplikation zweier Wahrscheinlichkeiten? Betrachten wir zwei Wahrscheinlichkeitsexperimente, die in dem Sinne unabhS~ngig sind, dass kein Resultat eines Experimentes einen Einfluss auf das Resultat des anderen Experimentes hat. Ein Beispiel dafiir ist, zweimal zu wtirfeln. Egal, ob wir auf einmal mit zwei Wiirfeln spielen oder ob wir zweimal denselben Wiirfel rollen lassen, die Resultate beeinflussen sich nicht gegenseitig. Z.B. hat eine 3 beim ersten Wurf keinen Einfluss auf das Ergebnis des zweiten Wurfs. Wir wissen, dass Wahr(i) - g1 fiir beide Experimente und fiir alle i E {1 , 2 , . . . , 6}. Betrachten wir jetzt die Zusammensetzung beider Zufallsexperimente (W(irfeln) als ein Zufallsexperiment. Die Menge der elementaren Ereignisse ist hier
8.2 Elementare Wahrscheinlichkeitstheorie
297
wobei fiir ein elementares Ereignis { (i, j)} der Index i das Ergebnis des ersten Wurfs und j das des zweiten ist. Wie soll jetzt korrekterweise die Wahrscheinlichkeitsverteilung Wahr2 auf $2 aus ({1, 2 , . . . , 6}, Wahr) bestimmt werden? Wir bauen auf der Intuition auf, dass die Wahrscheinlichkeit des Eintretens yon zwei vollstS~ndig unabhS~ngigen Ereignissen gleich dem Produkt der Wahrscheinlichkeiten dieser Ereignisse ist und damit 1
1
1
Wahr2({(i, j)}) - Wahr({i}). Wahr({j}) - ~ . ~ = 36 fiir alle i, j C {1, 2 , . . . , 6}. 0berpriifen wir die Korrektheit dieser Uberlegung. Die Menge $2 beinhaltet genau 36 elementare Ereignisse, die alle gleich wahrscheinlich sind. Damit ist tatsachlich W a h r 2 ( { ( i , j ) } ) - 1 fiir alle (i,j) E $2. Aufgabe 8.2. Sei k c IN- {0}. Sei (S, Prob) ein Wahrscheinlichkeitsraum, wobei Prob eine uniforme Wahrscheinlichkeitsverteilung (Gleichverteilung) fiber S = {0, 1, 2,..., 2k - 1} ist. Erzeugen Sie (S, Prob) durch k-fachen Miinzwurf. Es bleibt zu klgren, wie man die Wahrscheinlichkeitstheorie anwendet, um zufallsgesteuerte (randomisierte) Algorithmen zu entwerfen und zu analysieren. Dazu benutzt man zwei verschiedene MSglichkeiten. Die erste MSglichkeit ist, mit dem Modell der NTM mit endlichen Berechnungen zu starten und jeden nichtdeterministischen Schritt als ein Zufallsexperiment zu betrachten. Dies bedeutet, dass man bei einer Wahl aus k MSglichkeiten jeder MSglichkeit die Wahrscheinlichkeit ;1 zuordnet Dann bestimmt man die Wahrscheinlichkeit einer Berechnung als das Produkt der Wahrscheinlichkeiten aller zufglligen Entscheidungen dieser Berechnung. Sei SA,x die Menge aller Berechnungen einer NTM (eines nichtdeterministischen Programms) A auf einer Eingabe x. Wenn man jeder Berechnung 6' aus SA,x die oben beschriebene Wahrscheinlichkeit Wahr(C) zuordnet, dann ist (Sa,x, Wahr) ein Wahrscheinlichkeitraum. Aufgabe 8.3. Beweisen Sie, dass (SA,x,Wahr) ein Wahrscheinlichkeitsraum ist. Die Summe der Wahrscheinlichkeiten der Berechnungen aus SA,x mit einer falschen Ausgabe A(x) fiir die Eingabe x ist dann die F e h l e r w a h r s c h e i n lichkeit des Algorithmus A auf der Eingabe x, F e h l e r A ( x ) . Die F e h l e r w a h r s c h e i n l i c h k e i t des A l g o r i t h m u s A definiert man als eine Funktion Fehlera :IN ~ IN wie folgt. F e h l e r A ( n ) = max{FehlerA(x) l lxl = ~}.
298
8 Randomisierung
Auger den Fehlerwahrscheinlichkeiten kann man z.B. auch untersuchen, wie grog die Wahrscheinlichkeit ist, dass eine Berechnung aus h6chstens t(n) Schritten besteht (d.h., wie grog die Summe der Wahrscheinlichkeiten der Berechnungen ist, die kiirzer als t(n) sind). Die andere M6glichkeit, die randomisierten Algorithmen zu definieren, ist einfach, einen randomisierten Algorithmus als eine Wahrscheinlichkeitsverteilung fiber einer Menge deterministischer Algorithmen zu betrachten. Dies entspricht der Vorstellung, dass man einem deterministischen Algorithmus (einer TM) A eine Folge von Zufallsbits (ein zusgtzliches Band mit einer Zufallsfolge) als zusgtzliche Eingabe gibt. Jede Folge von Zufallsbits bestimmt eindeutig eine deterministische Berechnung von A auf der gegebenen Eingabe x. Die Zufallsfolgen als elementare Ereignisse zu betrachten, entspricht also der Betrachtung der Berechnungen aus SA,, als elementare Ereignisse. Gew6hnlicherweise haben alle Zufallsfolgen die gleiche Wahrscheinlichkeit, und somit handelt es sich um die uniforme Wahrscheinlichkeitsverteilung fiber der Menge aller Berechnungen aus SA,,. Die Beispiele randomisierter Algorithmen in den ngchsten zwei Abschnitten bauen auf diesem Modell der randomisierten Algorithmen auf. Die Folgen von zufglligen Bits interpretiert man in diesen Beispielen als eine zufgllige Zahl, die dann die Berechnung und somit das Resultat der Berechnung beeinflusst.
8.3
Ein randomisiertes Kommunikationsprotokoll
Die Zielsetzung dieses Abschnittes ist zu zeigen, dass randomisierte Algorithmen wesentlich effizienter als bestm6gliche deterministische Algorithmen sein k6nnen. Betrachten wit die folgende Aufgabenstellung. Wit haben zwei Rechn e t -/~I und !~II. Urspr/inglich erhalten diese eine Datenbank mit gleichem Inhalt. Mit der Zeit hat sich der Inhalt dynamisch ge~ndert, abet wit haben versucht, die gleichen Anderungen auf beiden Rechnern zu machen, um idealerweise die gleiche Datenbank auf beiden Rechnern zu erhalten. Nach einer gewissen Zeit wollen wit nun iiberpriifen, ob RI und !~II wirklich noch die gleichen Daten haben. Im Allgemeinen bezeichnen wit dutch n die Gr/St3e der Datenbank in Bits. Konkret betrachten wir ein grofies n = 1016, was bei Gendatenbanken eine realistische Gr6fie sein diirfte. Unser Ziel ist es, einen Kommunikationsalgorithmus (ein Protokoll) zu entwerfen, der feststellt, ob die Inh a r e der Datenbanken v o n -/~I und !~II unterschiedlich oder gleich sind. Die KomplexitS~t des Kommunikationsalgorithmus messen wir in der Anzahl der ausgetauschten Bits zwischen RI und/~II. Man kann beweisen, dass jedes deter-
8.3 Ein randomisiertes Kommunikationsprotokoll
299
ministische Protokoll fiir diese Aufgabe einen Austausch von n Bits zwischen RI und RII nicht vermeiden kann. Also existiert kein Protokoll, das h6chstens n - 1 Kommunikationsbits benutzen darf und diese Aufgabe zuverlS~ssig 16st. Wenn m a n bei der D a t e n m e n g e mit n = 1016 noch sicherstellen sollte, dass alle Kommunikationsbits korrekt ankommen, wiirde m a n auf den Versuch, die Aufgabe auf diese Weise zu 16sen, wahrscheinlich verzichten. Die L6sung in dieser Situation bietet folgendes zufallsgesteuertes Protokoll. Es basiert auf dem Primzahlsatz (Satz 2.3).
/ i ~ - (/~I, / ~ I I ) ( E i n z u f a l l s g e s t e u e r t e s K o m m u n i k a t i o n s p r o t o k o l l )
Ausgangssituation: //~I hat n Bits z = X l . . . 2;n, t~ii hat n Bits y = y l . . . YnPhase 1: RI wS~hlt zufS~llig mit einer uniformen Wahrscheinlichkeitsverteilung p a l s eine yon den Prim (n 2) ~ n 2/ln / n 2 Primzahlen kleiner gleich n 2 Phase 2: RI berechnet die Zahl s = Nummer(z) rood p und schickt die bin~re Darstellung von s und p zu/~II. Phase 3: Nach
dem
Empfang
von
s
und
p
berechnet
/~II die
Zahl
q= Nummer(y) rood p. Falls q ~ s, dann gibt -/~II die Ausgabe ,,ungleich". Falls q = s, dann gibt -/~II die Ausgabe ,,gleich". Jetzt analysieren wir die Arbeit von R - (/~I,/~II)- Zuerst b e s t i m m e n wir die KomplexitS~t, gemessen als die Anzahl der Kommunikationsbits, und dann arialysieren wir die ZuverlS~ssigkeit (Fehlerwahrscheinlichkeit) yon R - (RI, RII). Die einzige K o m m u n i k a t i o n besteht darin, dass RI die Zahlen s und p an RII schickt. Weil s _< p < n 2 gilt, ist die LS~nge der bin~ren Nachricht 2. [log 2 n 2] _< 4 . [log 2 hi. F/Jr n - 1016 sind dies h6chstens 4 . 1 6 . [log 2 10] - 256 Bits. Es ist also eine sehr kurze Nachricht, die m a n problemlos zuverlS~ssig/ibertragen
kaIlI1. Bei der Analyse der Fehlerwahrscheinlichkeit unterscheiden wir zwei M6glichkeiten beztiglich der tats~chlichen Relation zwischen z und y. (i) Sei z -
y. Dann gilt
Nummer(z) rood p - Nummer(y) rood p fiir alle Primzahlen p. Also gibt -~II die Antwort ,,gleich" mit Sicherheit. In diesem Fall ist also die Fehlerwahrscheinlichkeit O.
300
8 Randomisierung
(ii) Sei x ~ y. Wir b e k o m m e n eine falsche Antwort ,,gleich" nur dann, wenn
/:~I eine zufgllige Primzahl p gewghlt hat, die die Eigenschaft hat, dass z-
Nummer(x)
rood p -
Nummer(y)
rood p
gilt. In anderer Form geschrieben: Nummer(x)
- x' . p + z und N u m m e r ( y )
- y' . p + z
fiir irgendwelche natiirliche Zahlen x' und y'. Daraus folgt, dass
also dass p die Z a h l I N u m m e r ( x ) - N u m m e r ( y ) l teilt. Also gibt unser Protokoll R = (RI, RII) eine falsche Antwort nur, wenn die gewS~hlte Primzahl p die Z a h l l N u m m e r ( x ) -Nummer(y)l teilt. Wir wissen, dass p aus P r i m (n 2) Primzahlen aus {2, 3 , . . . , n 2} mit uniformer Wahrscheinlichkeitsverteilung gewghlt wurde. Es ist also hilfreich festzustellen, wie viele yon diesen P r i m (n 2) ~ n 2 / l n n 2 Primzahlen die Z a h l l N u m m e r ( x ) N u m m e r ( y ) l teilen k6nnen. Weil die bin/~re L/~nge von x und y gleich n ist, gilt -
I
-
n. D a n n ist w - p i p~.i1~.i2 2 . . .Pkik > p l p 2 . . .p~ > 1 .
2 " 3 .....
n-
It!
>
2n .
Das widerspricht aber der b e k a n n t e n Tatsache, dass w < 2 ~. Also kann w h6chstens n - 1 unterschiedliche P r i m f a k t o r e n haben. Weil jede Primzahl aus {2, 3 , . . . , n 2} die gleiche Wahrscheinlichkeit hat, gewS~hlt zu werden, ist die Wahrscheinlichkeit, ein p zu wghlen, das w teilt, h6chstens n
1
n
1
P r i m (n2 ) 1
i n ?%2 /1"
Das ist sehr gfinstig, weil dieser Wert sehr nahe an 1 ist. Aber auch wenn die Wahrscheinlichkeit, einen Zeugen zu ziehen, nur 1/2 wgre, sind die Zeugen noch immer ausreichend hgufig. Es reicht in diesem Fall aus, einfach mehrere Zufallsversuche zu machen. Dadurch wgchst die Wahrscheinlichkeit schnell, in mindestens einem der Versuche einen Zeugen zu bekommen, was ftir uns hinreichend ist. Jetzt kann man noch fragen, wie es m6glich ist, dass wir einen Zeugen nicht deterministisch schnell finden k6nnen, wenn es so vide zwischen den Zeugenkandidaten gibt. Eine M6glichkeit wS~re doch, systematisch der Reihe nach alle Kandidaten auf eine so geschickte Weise durchzuprobieren, dass man nach kurzer Zeit einen Zeugen findet. Das Problem ist aber, dass fiir jede Eingabe die Zeugen anders zwischen den Zeugenkandidaten verteilt sein k6nnen. Wenn man sich also auf eine Durchsuchungsstrategie festlegt, k6nnte man immer Eingaben finden, bei denen die Strategie versagt. Betrachten wir unser Beispiel. Hier kann man sogar beweisen, dass keine Strategie existiert, die effizient einen Zeugen fiir jede Eingabe (x, y) findet. Um dies zu veranschaulichen, nehmen wir die einfache Strategie, die die Primzahlen ei-
304
8 Randomisierung
ne nach der anderen beginnend mit der kleinsten ausprobiert. Es ist klar, dass sp~testens nach n Proben ein Zeuge gefunden werden muss, weil h6chstens n - 1 Nicht-Zeugen zwischen den Kandidaten sind. Leider bedeuten n Proben eine KommunikationskomplexitS~t von n . 4. log 2 n, was wir uns nicht leisten k6nnen. Warum haben wir nicht immer die M6glichkeit, nach ein paar Proben einen Zeugen zu finden? Weil unsere Strategie bei folgenden Eingaben (z, y) n mit N u m m e r ( z ) - Nummer(y) P l " P2 . . . . . P k , wobei k 2(log~)2 und Pl < P2"'" < Pk die kleinsten Primzahlen sind, k + 1 Proben braucht, um einen Zeugen zu finden. Man kann sich leicht vorstellen, dass man bei jeder anderen Aufz~hlung der Primzahlen spezifische Eingaben findet, fiir die viele Proben notwendig werden, um einen Zeugen zu finden. Die Methode der h~ufigen Zeugen ist eine erfolgreiche starke Methode zum Entwurf von zufallsgesteuerten Algorithmen. Der effiziente zufallsgesteuerte Primzahltest basiert auf dieser Methode, und der Primzahltest geh6rt zu den wichtigsten algorithmischen Aufgaben von grofier praktischer Bedeutung. Die besten bekannten deterministischen Algorithmen wiirden fiir das Testen grofier Zahlen, die in der Kryptographie verwendet werden, nicht in Milliarden von Jahren fertig. Zu erklS~ren, wie man hier die Zeugen definiert, ist eine zu komplexe Aufgabe fiir diese Einfiihrung und daher ist unsere Zielsetzung viel bescheidener. Wir zeigen nur, wie man den randomisierten Primzahltest fiir ungerade Zahlen n mit ungeradem - ~ effizient machen kann. Zuerst klgren wir, was bei den zahlentheoretischen Problemen effizient bedeutet. Fiir eine Zahl n ist die Eingabegr6f3e [log2(n + 1)]. Ein polynomieller Algorithmus fiir den Primzahltest fiir n muss also eine polynomielle Laufzeit beziiglich [log2(n + 1)] haben. In der Praxis testen wir Zahlen von mehreren Hunderten von Ziffern (z.B. log2 n ~ 500) und deswegen kann man sich eine exponentielle Komplexitgt in log 2 n nicht leisten. Somit ist der naive deterministische Algorithmus, der iiberpriift, ob eine der Zahlen aus {2, 3 , . . . , [x/~J } die gegebene Zahl n teilt, yon exponentieller Komplexitgt (mindestens x/~ = l o g 2 rt
2--w-). Bei diesem Einsatz ist ein Zeuge der Tatsache ,,p ist keine Primzahl" jede natiirliche Zahl rn > 1, rn ~ p, die p teilt. Solche Zeugen 1 sind aber im Allgemeinen nicht hgufig. Wenn n = p . q fiir zwei Primzahlen p und q, dann hat n nur zwei Zeugen p und q in der Kandidatenmenge der Mgchtigkeit f~(x/-n). Deswegen muss man versuchen, Zeugen auf eine neue Art zu bestimmen.
1Die auf der klassischen Definition von Primzahlen basieren.
8.4 Die Methode der h/~ufigen Zeugen und der randomisierte Primzahltest
305
Satz 8.1. Satz von Fermat
Fiir jede Primzahl p und jede natiirliche Zahl a mit ggT(a, p ) =
rood p =
a p-1
1 gilt
1.
Beweis. In dem Beweis nutzen wir die Tatsache, dass jede Zahl eine eindeutige Zerlegung in Primzahlfaktoren hat. Weil p eine Primzahl ist, gilt
c.d
modp=0c
modp=0oderd
modp=0
(s.2)
fiir alle natiirlichen Zahlen c und d. Sei a eine beliebige Zahl mit ggT(a, p) = 1. Betrachten wir die Zahlen rrtl =
1 .a, m2 = 2 . a ,
...,
rrtp_l = (p-
1).a.
Wir behaupten, dass m~ m o d p C m ~
modp
fiir alle u, v E { 1 , . . . , p -
1} mit u r v. Wir beweisen dies indirekt.
Angenommen rn~ m o d p = r n ~
modp
fiir irgendwelche u, v E { 1 , . . . , p -
=
1}, u > v. Dann teilt p die Zahl
-
Das ist aber nicht m6glich, weil u - v Satzes ggT(a, p) = 1 ist. Somit [{rrtl
< p und nach der Voraussetzung des
rood p, m2 rood p, . . . , rrtp_l rood p}[ = p - 1.
Jetzt b e h a u p t e n wir, dass keine der Zahlen rni rood p eine 0 ist. Falls rn~ m o d p = ( u . a )
modp=0
fiir ein u gelten wiirde, dann wgre nach (8.2) u modp=0odera
modp=0.
306
8 Randomisierung
Die Primzahl p kann aber keine der Zahlen u und a teilen, weil u < p und ggT(a, p ) = 1. Somit gilt {ml m o d p , m2 m o d p , . . . , m p _ l
modp}={1,2,...,p-1}.
(8.3)
Betrachten wir jetzt die Zahl ~
~1"~2
.....
~p-1-
Der Definition yon mi folgend ist m--l.a.2.a
.....
(p-1).a--l.2
.....
(p-1).a
p-1.
(8.4)
Aus (8.3) erhalten wir m modp=l-2
.....
(p-l)
(8.5)
modp.
Die Gleichungen (8.4) und (8.5)implizieren 1.2 .....
(p-1).a
p-1 m o d p - l . 2
.....
(p-l)
modp,
d.h. a ;-1 m o d p = l .
Eine Verfeinerung des Fermatschen Satzes ist die folgende Behauptung ,,p ist eine Primzahl"
p--1
e=~ a ~
modpC{1,p-1}
fiir alle a E { 1 , . . . , p Diese Behauptung Definition kommen Zahlen a in Frage, besagt, dass solche
1}.
liefert eine neue Definition von Primzahlen. Nach dieser als Zeugen fiir die Tatsache ,,n ist keine Primzahl" die n--1 fiir die a ~ rood n ~ {1, n - 1} gilt. Der folgende Satz Zeugen f~r gewisse Zahlen n hinreichend hSoufig sind.
S a t z 8.2. Fiir jede ungerade natiirliche Zahl n mit ungeradem ~__A1 d.h. n rood 4 = 3) gilt
falls n eine Primzahl ist, dann n--1
a ~
modnE{1,
n-1}fiiralleaE{1,...,n-1}
und
8.4 Die Methode der hS~ufigen Zeugen und der randomisierte Primzahltest
307
falls n k e i n e P r i m z a h l ist, d a n n n--1
a 2
fiir m i n d e s t e n s
modn~
{1, n
1}
eine Hiilfte der Z a h l e n a aus { 1 , . . . ,
n-
1}.
Aufgabe 8.7.* Beweisen Sie Satz 8.2. Somit h a b e n wir fiir Zahlen rn, die keine P r i m z a h l e n sind, und fiir die 1 in einem Zufallsversuch einen rn rood 4 - 3 gilt die Wahrscheinlichkeit ~, Zeugen ihrer Nichtzugeh6rigkeit zu den Primzahlen zu wS~hlen. Um mit dieser Definition von Zeugen definitiv einverstanden zu sein, miissen wir noch festn--1 stellen, dass a 2 rood n effizient zu berechnen ist. Wir k6nnen uns natiirlich nicht leisten, ~-~-mal mit a zu multiplizieren, weil d a n n die Anzahl der Operationen exponentiell in ~log2 nl w~tre. Wenn wir a b rood p zu berechnen h a b e n und b - 2 k gilt, d a n n kann dies mit der Methode des wiederholten Quadrierens mit k Multiplikationen wie folgt berechnet werden" a 2 mod p
-
a.a
a 4 mod p
-
(a 2 m o d p ) - ( a 2 m o d p )
modp,
a s mod p
-
(a 4 m o d p ) . ( a
modp,
-
(a 2k-1 m o d p ) 2
a 2k m o d p
modp, 4 modp)
modp.
Im Allgemeinen sei b - E i k = _ l b i 9 2 i - 1 (d.h. b - N l t l T t l T t e f ( b k b k _ l . . . bl) ) flir ein k E IN - {0} und b~ E {0, 1} fiir i - 1 , . . . , k. D a n n ist offensichtlich a b _
a hi'2 0 . ab2.21
. ab3.2 2 ....
a b k . 2 k - 1.
U m a b mod p zu berechnen, berechnet m a n zuerst alle Zahlen ai - a 2~ mod p durch wiederholtes Quadrieren. Danach multipliziert m a n rood p alle Zahlen ai, fiir die bi - 1 gilt. Die A n w e n d u n g dieses Ansatzes fiir die Berechnung n--I yon a ~ rood n fiir ein a E { 1 , . . . , n - 1} bedeutet, dass m a n wS~hrend der ganzen Berechnung nur mit Zahlen aus {0, 1 , . . . , n 1} arbeitet, also mit Zahlen der binS~ren LS~nge [log 2 hi. Offensichtlich ist die Anzahl der Multiplikationen solcher Zahlen hier kleiner als 2. [log 2 ~-~] E O(log 2 n). Nach dem logarithmischen Kostenmat3 ist die gesamte KomplexitS~t der Berechnung von a ~ 1 ( m o d n ) in O((log2n)2). D a m i t erhalten wir folgenden randomisierten Algorithmus fiir den Primzahltest.
308
8 Randomisierung
So l o v a y - S t r a s s e n - A l g o r i t h m u s
Eingabe: Eine ungerade Zahl n mit u n g e r a d e m n-1 Phase 1. Wghle zufgllig bezfiglich der uniformen Wahrscheinlichkeitsverteilung ein a E { 1 , 2 , . . . , n 1}. 2
9
"
n~l
Phase 2 Berechne x " - a (rood n). Phase 3. i f x E {1, n - 1} t h e n o u t p u t (,,Primzahl") ; e l s e o u t p u t (,,keine P r i m z a h l " ) ; Analysieren wir die Fehlerwahrscheinlichkeit dieses randomisierten Primzahltests. Falls n eine P r i m z a h l ist, gilt nach (i) von Satz 8.2, dass n--1
a 2 (modn)E
{1, n -
1}
fiir alle a E { 1 , . . . , n - 1} und somit ist die Ausgabe des Algorithmus i m m e r ,,Primzahl" (d.h. die Fehlerwahrscheinlichkeit ist gleich 0). Falls n keine P r i m z a h l ist, Tatsache ist, nach (ii) des 1 lichkeit in diesem Fall 7. grog, aber wenn wir s t a t t
ist die Wahrscheinlichkeit, dass a kein Zeuge dieser 1 D a m i t ist die FehlerwahrscheinSatzes 8.2 gleich ~. Diese Fehlerwahrscheinlichkeit ist offensichtlich zu eines a zwanzig Zahlen a l , . . . , a20 unabhS~ngig aus n--1
{ 1, n - 1} wS~hlen und die Antwort ,,Primzahl" nur geben, wenn ai ~ rood n E { 1, n - 1} fiir alle i E { 1 , . . . , 20}, d a n n ist die Fehlerwahrscheinlichkeit kleiner als 10 -6. Aufgabe 8.8. Sei k c IN, k _> 2. Wie weit kann man die Fehlerwahrscheinlichkeit des Solovay-Strassen-Algorithmus reduzieren, wenn man statt einem Versuch einen Zeugen zu finden, k unabh~ngige Versuche macht? Begrtinden Sie Ihre Antwort.
8.5
Die Methode der Fingerabdriicke und die Aqulvalenz von zwei Polynomen oo
9
In Abschnitt 8.3 h a b e n wir die M e t h o d e der hSoufigen Zeugen benutzt, u m zwei grofie Zahlen Nummer(x) und N u m m e r ( y ) mittels eines randomisierten K o m m u n i k a t i o n s p r o t o k o l l s zu vergleichen. Die dort vorgestellte spezielle Anw e n d u n g der M e t h o d e der hSoufigen Zeugen nennt m a n auch die M e t h o d s der Fingerabdriicke, die m a n allgemein wie folgt darstellen kann.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen
309
Schema der Methode der Fingerabdrficke Aufgabe" Entscheide die Aquivalenz (ira gegebenen Sinne) yon zwei Objekten O1 und 02, deren genaue Darstellung sehr umfangreich ist. Phase 1: Sei M eine ,,geeignete" Menge von Abbildungen von vollstS~ndigen Darstellungen betrachteter Objekte in partielle Darstellungen dieser Objekte. WS~hle zufS~llig eine Abbildung h aus M. Phase 2: Berechne h(O1) und h(02). h(@) nennt man den F i n g e r a b d r u c k yon Oi fiir i = 1, 2. Phase 3: if h(O1) = h(O2) then output ,,O1 und O2 sind/~quivalent" ; e l s e o u t p u t ,,O1 und O2 sind nicht 5~quivalent" ; In unserem Beispiel in Abschnitt 8.3 w a r e n O1 und 02 zwei grofie Zahlen von n Bits (n = 1012). Die Menge M war
{hv I hp(m) - m
rood p fiir alle rn E IN, p ist eine Primzahl,p _< n2}.
Fiir die zuftillig gewahlte Primzahl p waren hp(O1) = O1 rood p und hp(O2) = 02 rood p die Fingerabdriicke yon O1 und 02. Der Kernpunkt der Methode ist, dass hp(@) im Vergleich zu Oi eine wesentlich kiirzere Darstellung hat, und dadurch der Vergleich von hp(O1) und hp(02) wesentlich einfacher ist als der Vergleich yon O1 und 02. Das kann man aber nur dadurch erreichen, dass hp(Oi) keine vollsttindige Beschreibung von @ ist. Also muss man dass Risiko einer fehlerhaften Entscheidung in Kauf nehmen. Der Rest der Grundidee basiert auf dem Prinzip der Methode der hgufigen Zeugen. Die Menge M ist die Menge der Kandidaten fiir einen Zeugen der Nicht-Aquivalenz yon O1 und 02. Wenn fiir jedes Paar yon unterschiedlichen Objekten O1 und 02 in M zahlreiche 2 Zeugen von O1 -r 02 vorhanden sind, kann man die Fehlerwahrscheinlichkeit beliebig nach unten drticken. Die Kunst der Anwendung der Methode der Fingerabdrticke besteht in der geeigneten Wahl der Menge M. Einerseits sollen die Fingerabdriicke so kurz wie m6glich sein, um einen effizienten Vergleich zu erm6glichen. Andererseits sollen sie so viele Informationen wie m6glich fiber die abgebildeten Objekte enthalten a, um die Wahrscheinlichkeit des Verlustes des Unterschiedes zwischen O1 und 02 in den Fingerabdriicken h(O1) und h(O2) gering zu halten. Somit muss bei der Wahl yon M immer der Tradeoff zwischen dem Grad der ,,Komprimierung" 2bez~glich ]M] 3Daher kommt auch der Name der Methode, weil bei Menschen Fingerabdriicke als eine fast eindeutige Identifikation gelten.
310
8 Randomisierung
yon O zu h(O) und der Fehlerwahrscheinlichkeit im Auge behalten werden. In unserer Anwendung dieser Methode in Abschnitt 8.3 gelang es uns, mit zu 0 strebender Fehlerwahrscheinlichkeit einen exponentiellen Sprung zwischen der Darstellung yon O und h(O), n/~mlich Ih(o)l ~ O(~og2 Iol), zu schafeen. Im Folgenden wollen wir ein Aquivalenzproblem betrachten, fiir das kein (deterministischer) polynomieller Algorithmus bekannt ist, und das man effizient randomisiert mit der Methode der Fingerabdriicke 15sen kann. Das Problem ist das Aquivalenzproblem von zwei Polynomen von mehreren Variablen fiber einem endlichen KSrper 77v. Zwei Polynome P~ ( x ~ , . . . , x~) und P2(x~,..., xn) heigen gquivalent fiber 7/v, falls ftir alle (c~,,..., c~) E (7/v) ~ P~ ( c ~ , . . . , c~) - P 2 ( ( ~ , . . . , c~)
(rood p).
F/Jr dieses Aquivalenzproblem ist kein polynomieller Algorithmus bekannt. Es kann jemand widersprechen, dass so ein Vergleich doch einfach ist; es reicht aus, nur die Koeffizienten bei gleichen Termen zu vergleichen. Zwei Polynome sind genau dann gleich, wenn die Koeffizienten bei allen Termen gleich sind. Die Schwierigkeit des Aquivalenztests liegt aber darin, dass fiir einen solchen einfachen Vergleich beide Polynome in der Normalform vorliegen mtissen. Die Normalform eines Polynoms yon n Variablen Xl, x 2 , . . . , x~ und Grad 4 d ist d
d
d 9
i1=0 i2=0
.;~
in=O
Die Polynome ftir unseren )~quivalenztest dtirfen aber in einer beliebigen Form, wie z.B. P ( X l , x2, x3, x4, x5, x6) -
(Xl + x2) 10. (x3 - x4) 7. (x5 + x6) 20
eingegeben werden. Wenn wir uns an die binomische Formel
.1
9
n-k X2
k=0
erinnern, wird uns Mar, dass P ( x l , x2, x3, X4, X5, X6) genau 10 9 7 9 20 -- 1400 Terme (mit Koeffizienten ungleich 0) hat. Also kann eine Normalform eines Polynoms exponentiell lgnger sein als seine eingegebene Darstellung und somit 4Der Grad eines Polynoms von mehreren Variablen ist das Maximum der Grade der einzelnen Variablen.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen
311
kann man die Normalform im Allgemeinen nicht in polynomieller Zeit erzeugen. Wir miissen versuchen, die Polynome ohne Erzeugung der Normalform zu vergleichen. Wir wghlen dazu eine sehr einfache Strategie. F~r zwei Polynome Pl(xl,...,x~) und P2(xl,...,xn), ist ein c~ = (c~1,..., cu~) E (7/p) ~ ein Zeuge
von ~Pl(Xl~...~Xn) ~ /92(Xl~...~Xn)" wenn
Pl(O~l,..., O~n) Inod p r P2(Ogl,...~ Ogn) Inod p. In der Sprache der Methode der Fingerabdriicke ist
der Fingerabdruck yon P1. Damit ist der folgende einfache randomisierte A1gorithmus bestimmt:
Algorithmus AQP Eingabe: Eine Primzahl p und zwei Polynome P1 und P2 fiber n Variablen X l , . . . , x ~ , n E IN {0}, und vom Grad h6chstens d, d E IN. Phase 1" Wghle zufgllig 5 ein c ~ - ( c ~ , . . . , c~) E (77p)~. Phase 2: Berechne die Fingerabdrticke h
Phase 3:
(5) =
)rood p,
i f h2(P~) = h2(P2) t h e n o u t p u t ,,Pl = P2"; e l s e o u t p u t ,,P1 ~ 1'2";
Untersuchen wir jetzt die Fehlerwahrscheinlichkeit yon dem Algorithmus AQP. Falls P1 und P2 gquivalent fiber 77p sind, dann gilt -
(modp)
fiir alle (c~, c~2,..., c~) E (7/v)~. Somit ist die Fehlerwahrscheinlichkeit ffir die Eingaben P1, P2 mit P1 = P2 gleich 0. Seinen P1 und P2 zwei Polynome, die nicht/~quivalent sind. Wir zeigen jetzt, dass die Fehlerwahrscheinlichkeit kleiner als 1/2 ist, wenn p > 2nd ist. Die 5bezfiglich der Gleichverteilung fiber (77p)n
312
8 Randomisierung
Frage
/91(X1,--.,Xn) ist gquivMent
zu
-
-
P2(Xl, ..- ,Xn)
der Frage
Q ( X l , . . . , Xn) -- P1 (xl, . . . , Xn) -- P2(Xl,..., Xn)
--
O.
Das heit3t, wenn P1 und P2 nicht gquivalent sind, dann ist das Polynom Q nicht identisch zu 0. Unser Ziel ist jetzt zu zeigen, dass die Anzahl der Nullstellen eines Polynomes Q ~ 0 yon n Variablen und Grad d beschrS~nkt ist. Dadurch gibt es geniigend viele Zeugen c~ E (77p)~ mit Q(a) ~ 0 (mod p) (d.h. mit Pl(a) ~ P2(c~) (rood p)). Wir fangen mit dem bekannten Satz fiber die anzahl von Nullstellen fiir Polynome mit einer Variablen an. S a t z 8.3. Sei d E IN und sei P ( x ) ein Polynom einer Variablen x vom Grad d iiber einem beliebigen KSrper. Dann ist entweder P ( x ) iiberall gleich 0 oder P hat hSchstens d Wurzeln (Nullstellen). Beweis. Wir beweisen den Satz mit Induktion beziiglich d.
(i) Sei d - 0. Dann ist P ( x ) - c fiir eine Konstante c. Falls c ~ 0, dann hat P ( x ) keine Nullstelle. (ii) Sei die Behauptung des Satzes giiltig fiir d - 1, d > 1. Wir beweisen sie fiir d. Sei P ( x ) ~ 0 und sei a eine Nullstelle von P. Dann ist e(.)
- (. - a). e'(.)
P(x) wobei P'(x) (x-~) ein Polynom vom Grad d - 1 ist. Mit der Induktionsannahme hat P'(x) h6chstens d - 1 Nullstellen. Somit hat P ( x ) h6chstens d Nullstellen.
Jetzt sind wir bereit den Beweis zu ftihren, dass es geniigend viele Zeugen (Nichtnullstellen von Q ( x l , . . . ,x~) = P l ( X l , . . . , x ~ ) - P 2 ( X l , . . . , x ~ ) ) d e r Nicht5quivMenz yon unterschiedlichen P1 und P2 fiber ;r/p f/Jr eine geniigend grofie Primzahl p gibt. S a t z 8.4. Sei p eine Primzahl, und seien n, d E I N - {0}. Sei Q ( x l , . . . , x~) 0 ein Polynom iiber 7/p mit n Variablen x l , . . . , x~, wobei jede Variable in Q hSchstens Grad d hat. Dann hat Q hSchstens n . d. pn-1 Nullstellen.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen Beweis.
313
Wir beweisen den Satz per Induktion beziiglich der Anzahl n der
Variablen. (i) Sei n = 1. Nach Satz 8.3 hat Q(Xl) h6chstens d : n . d .pn-1 (ffir n = 1) Nullstellen. (ii) Sei die Induktionsannahme giiltig ftir n - 1, n E I N - {0}. Wir beweisen sie ftir n. Wir k6nnen Q als Q(Xl,X2, . . . ,xn)
=
Q0(X2, . . - x n )
-~- X l " Q I ( X 2 , . . - , X n )
-~-...
d i i=0
fiir irgendwelche Polynome ...,
ausdrticken. Falls Q(Ctl, ct2,..., ct~) = 0 (modp) fiir ein ct = (Ctl,..., ct~) E (Z/p) ~, dann gilt entweder (a) @ ( c t 2 , . . . , c t ~ ) - 0 (modp) ftir alle i = 0, 1 , . . . , d , oder (b) es existiert ein j E {0, 1 , . . . , d } mit Qi(c~2,..., ct~) ~ 0 (modp) und c~1 ist eine Nullstelle des Polynoms Q(Xl)
=
Q 0 ( ~ 2 , . . . OLn) -~- Xl" +
Ql(O~2,...,O~n) -~-.--
in einer Variablen Xl. Wir zghlen jetzt getrennt die Anzahl der Nullstellen im Falle (a) und (b).
(b)
Weil Q ( x l , . . . ,Xn) ~ O, existiert eine Zahl k E {0, 1 , . . . , d}, so dass Q ~ ( x 2 , . . . , x ~ ) ~ O. Nach der Induktionsannahme ist die a n z a h l der Nullstellen yon Qk hSchstens ( n - 1 ) . d . p ~-2. Dann gibt es aber hSchstens ( n - 1). d. p~-2 Elemente ~ - (c~2,..., c~) E (7/p) ~-1, so dass @(~) 0 ( mo d p ) fiir alle i E {0, 1, 2 , . . . , d}. Weft der Wert ~ 1 VOI1 X 1 keihen Einfluss auf die Bedingung (a) hat und somit frei w~ihlbar ist, gibt es hSchstens p . ( n - 1). d . p~-2 = ( n - 1). d . p~-i Elemente ~ = (c~1, ct2,..., c~) E (Z/p) ~, die die Eigenschaft (a) haben. Weil Q(Xl) ~ 0, hat Q nach Satz 8.3 h6chstens d Nullstellen (d.h. h6chstens d Werte O~1 E 7/p mit Q(C~l) - 0 (mod p)). Deswegen gibt es h6chstens d . p ~-1 Werte ct - (C~l, ct2,..., ct~) C (Z/p) ~, die die Bedingung (b) erfiillen.
314
8 Randomisierung
Zusammenfassend hat Q ( X l , . . . , Xn) h6chstens (n - 1) 9d . pn-1 q_ d . pn-1 _ 7t . d . pn-1 Nullstellen.
D
K o r o l l a r 8.1. 9ei p eine Primzahl, und seien n,d E IN {0}. Fiir jedes Polynom Q ( X l , . . . , x~) ~ 0 iiber 7/p vom Grad hSchstens d gibt es mindestens
1
Zeugen yon Q
n.d)
.p~
O.
Beweis. Die Anzahl der Elemente in (77p)~ ist genau p~ und nach Satz 8.4 sind h6chstens n. d.p ~-1 davon keine Zeugen. Somit ist die Anzahl der Zeugen mindestens p~_n.d.p~_l_
(1
n.d).p~.p
Damit ist die Wahrscheinlichkeit des Ziehens eines Zeugen aus p~ Elementen von (77p)~ mindestens
1
rt.d)
p
F~r p > 2rid ist diese Wahrscheinlichkeit gr6i3er als 1/2. Durch wiederholtes zuf~lliges Ziehen aus (77p)~ kann man die Wahrscheinlichkeit, dass mindestens ein Zeuge fiir Q ~ 0 (d.h. fiir P I ( Z l , . . . ,z~) ~ P2(Zl,... ,z~)) gefunden wird, beliebig nah an 1 bringen. Fiir mehrere Anwendungen des Algorithmus AQP ist es wichtig, dass die Primzahl p frei wS~hlbar ist. Dieser Freiheitsgrad kommt dadurch zustande, dass man das Aquivalenzproblem fiir einige Objekte auf den Vergleich yon zwei Polynomen reduzieren kann, ohne dabei Bedingungen an den K6rper, fiber dem die Polynome verglichen werden sollen, zu stellen.
8.6 Z u s a m m e n f a s s u n g
8.6
315
Zusammenfassung
Einen randomisierten (zufallsgesteuerten) Algorithmus kann man als einen nichtdeterministischen Algorithmus mit zugeordneten Wahrscheinlichkeiten fiir die Verzweigung der Berechnungen oder als eine Wahrscheinlichkeitsverteilung fiber deterministischen Algorithmen betrachten. Die Zufallssteuerung ist das inhS~rente Prinzip von Naturprozessen, das sich dutch Einfachheit und Effizienz auszeichnet. Nicht anders ist es in der Algorithmik, wo man dutch einfache randomisierte Algorithmen Probleme viel effizienter als mit den besten deterministischen Algorithmen 16sen kann. Am Beispiel des Entwurfs eines Kommunikationsprotokolls fiir den Vergleich der Inhalte von zwei Datenbanken haben wir gesehen, dass Randomisierung exponentiell effzienter als Determinismus sein kann. Die Grundidee des Entwurfs eines effizienten randomisierten Protokolls basierte auf der Methode der hgufigen Zeugen. Ein Zeuge ist eine Zusatzinformation zur Eingabe, mit deren Hilfe man das Resultat effizient berechnen kann, obwohl kein effzienter LSsungsansatz ohne einen Zeugen mSglich (oder bekannt) ist. Ftir die erfolgreiche Anwendung der Methode der hSoufigen Zeugen ist es wichtig, dass man fiir jede Eingabe (Probleminstanz) eine Menge yon Zeugenkandidaten bestimmen kann und dass ein grof3er Anteil der Kandidaten Zeugen sind. Einen Zeugen kann man dann einfach durch (wiederholtes) zufglliges Ziehen aus der Menge der Zeugenkandidaten mit groiJer Wahrscheinlichkeit gewinnen. Der Grund, warum man durch systematisches deterministisches Durchsuchen der Menge der Zeugenkandidaten einen Zeugen nicht effizient finden kann, liegt darin, dass die Zeugen in der Kandidatenmenge regellos verteilt sind. Bei diesem ,,chaotischen" Struktur der Kandidatenmenge riskiert jeder deterministische Suchalgorithmus zu viele Fehlversuche bei der Suche nach einem Zeugen. Die Kunst diese Methode anzuwenden liegt in einer geeigneten Definition von Zeugen. Wit haben gezeigt, wie man Zeugen definieren kann, um einen effizienten randomisierten Primzahltest fiir ungerade Zahlen n mit ungeradem (~-1) 2 ZU entwickeln. Fiir den Primzahltest kann man unsere Definition yon Zeugen so weiter entwickeln, dass man effzient den Primzahltest fiir alle natiirlichen Zahlen durchfiihren kann. Ein Spezialfall der Methode der hS~ufigen Zeugen ist die Methode der Fingerabdriicke fiir die L6sung von Aquivalenzproblemen. Die Idee ist, komplexen Objekten mit umfangreicher Darstellung durch eine zufS~llige Abbildung sogenannte Fingerabdrticke (kurze partielle Darstellungen) zuzuordnen, und so den Aquivalenztest auf den etIizient durchfiihrbaren Vergleich der Fingerabdriicke zu reduzieren. Die zufgllig ausgesuchten Abbildungen spielen in diesem Fall die
316
8 Randomisierung
Rolle der Zeugen. Auf diese Weise kann man einen effizienten randomisierten Test fiir die Aquivalenz von zwei Polynomen entwickeln. Fiir diesen Aquivalenztest ist kein (deterministischer) polynomieller Algorithmus bekannt, und es gibt rnehrere weitere Aquivalenztests, die sich effizient zu den Vergleich von zwei Polynomen reduzieren lassen. Eine ausfiihrliche Ubersicht fiber randomisierte Algorithmen kann man in dem Buch [MR 95] von Motwani und Raghavan finden, dass aber fiir Anf~nger aufgrund des technischen Schwierigkeitsgrades eher ungeeignet ist. Eine Einfiihrung in das Gebiet des Entwurfes von randomisierten Algorithmen ist im Kapitel 5 von [Hro 01] gegeben. Eine ausfiihrliche Darstellung der Methoden fiir den Entwurf von zufallsgesteuerten Systemen, die durch viele anschauliche Beispiele transparent gemacht werden, ist in [Hro 04] zu finden. Mehr fiber die zufallsgesteuerten Kommunikationsprotokolle kann man in [Hro 97] erfahren. Eine anschaulich pr~sentierte Anwendung des randomisierten Aquivalenztests von zwei Polynomen f/Jr den semantischen Vergleich von zwei Datenstrukturen zur ReprS~sentierung yon Boole'schen Funktionen findet man in [Sip 97]. Eine eindrucksvolle Ubersicht fiber die Konzepte im Bereich des Entwurfs yon randomisierten Algorithmen hat Karp in [Kar 91] zusammengestellt.
Kontrollaufgaben 1. Um Zufallsexperimente zu modellieren fiihrten wir den Begriff des Wahrscheinlichkeitsraums ein. Ein Wahrscheinlichkeitsraum ist gegeben durch die Menge S aller mSglichen Ergebnisse (Endresultate, elementare Ereignisse) des Experiments und dutch die Wahrscheinlichkeitsverteilung fiber S, die jedem Ergebnis (elementaren Ereignis) seine Wahrscheinlichkeit zuordnet. Die Wahrscheinlichkeit eines elementaren Ereignisse ist der erwartete Anteil der Versuche, die mit diesem elementaren Ereignis enden. Welche Konsequenzen hat diese Bedeutung der Wahrscheinlichkeit ffir die Bestimmung der Wahrscheinlichkeiten beliebiger Ereignisse, falls S endlich (oder abz~hlbar) ist? 2. Modellieren Sie das Experiment des ffinffachen Mtinzwurfs. Wie hoch ist die Wahrscheinlichkeit, dass die Anzahl der gefallenen KSpfe und die Anzahl der gefallenen Zahlen sich h6chstens um 1 unterscheidet? 3. Wie modelliert man randomisierte Algorithmen? Was entspricht hier einem Wahrscheinlichkeitsraum? 4. Bertachten Sie folgende Aufgabe. Zwei Rechner haben jeweils ein Wort mit einer L~inge von 18 Bits gespeichert und sollen feststellen, ob die WSrter gleich sind. Sie benutzen dazu das zufallsgesteuerte Kommunikationsprotokoll R. Aus wievielen Primzahlen wird zuf~llig eine gew~hlt? K6nnen sie alle auflisten? Wieviele Bits werden kommuniziert und wie grog ist die Fehlerwahrscheinlichkeit? Lohnt es sich hier das Protokoll R10 anzuwenden? 5. Analysieren Sie die Komplexitgt und die Fehlerwahrscheinlichkeit einer Modifikation
des Protokolls R, in dem R statt aus PRIM
(n 2) aus der Menge
PRIM
(~n3/2j) eine
8.6 Zusammenfassung
317
P r i m z a h l zufSJlig w~hlt. Wie ~ndert sich die Fehlerwahrscheinlichkeit, wenn m a n die P r i m z a h l aus P R I M ( n . ( l n n ) 2) oder aus P R I M (100. n - l n n ) w~hlt? Erkl~ren Sie die G r u n d i d e e der M e t h o d e der hgufigen Zeugen. Wie kann m a n diese M e t h o d e zum E n t w u r f eines r a n d o m i s i e r t e n Algorithmus ffir den P r i m z a h l t e s t anwenden? ErklSzen Sie die G r u n d i d e e der M e t h o d e der Fingerabdriicke. Wie kann m a n diese M e t h o d e zum Vergleich von zwei P o l y n o m e n anwenden? B e t r a c h t e n wir das randomisierte Protokoll zum Vergleich von zwei n-Bit Strings a = a l . . . a ~ und b = b l . . . b n , ai, bi E {0,1} ffir i = 1 , . . . , n . Sei p eine Primzahl. W i t b e t r a c h t e n die P o l y n o m e n
n
Pa(X)- Z
a(x)- Z
i=1
i=1
fiber 7/p. Offensichtlich sind a und b genau d a n n gleich, wenn Pa(z) und Pb(z) identisch sind. Nutzen Sie diese Tatsache und den Algorithmus A Q P u m ein neues zufallgesteuertes Protokoll fiir den Vergleich von a und b zu entwerfen. Wie beeinflusst die Wahl von p die Fehlerwahrscheinlichkeit und die Kommunikationskomplexit~tt? Gibt es eine Wahl von p, so dass das neue Protokoll ,,effizienter" als R eine kleine Fehlerwahrscheinlichkeit g a r a n t i e r t ?
Ihre Idee ist echt wahnsinnig. Die Grundfrage ist, ob sie wahnsinnig genug ist, um wahrhaftig sein zu k6nnen. N. Bohr
9
Kommunikation und Kryptographie
9.1
Zielsetzung
Im 20. Jahrhundert hat sich die theoretische Informatik iiberwiegend der Untersuchung der sequentiellen Rechnermodelle gewidmet, die der Vorstellung von Neumanns entsprechen. Was sollten die zukiinftigen Kernprobleme der Informatik sein? Die Vernetzung der Rechner konfrontiert den Nutzer nicht mehr nur mit einem einzelnen Rechner, sondern mit einer untibersichtlichen vernetzten Welt von vielen asynchronen und unvorhersehbaren Aktivit~ten. Das Verstgndnis vom Rechnen in der vernetzten Welt ist derzeit nicht sehr tief und seine Entwicklung wird eine der Hauptaufgaben der Informatik sein. Die Vielfalt der Forschungsfragen, die im Zusammenhang mit verteiltem Rechnen, Kooperation und Kommunikation zwischen Rechnern, Prozessen und Menschen gestellt worden sind, kann man in dieser beschrgnkten Ubersicht gar nicht vorstellen. Die Probleme, bezogen auf den Entwurf und die Analyse von effizienten Kommunikationsalgorithmen (Protokollen) und auf den Entwurf von leistungsfghigen Netzen, sind stark von den zug~nglichen Technologien abh~ngig. Diese Technologien entwickelten sich schnell von klassischen Telefonverbindungen his hin zu optischen Netzen, und jede Technologie ist an anderen Problemen und Fragestellungen interessiert. Weil wir keine M6glichkeit sehen, eine kurze, verstS~ndliche Ubersicht fiber dieses Thema zu geben, beschrS~nken wir uns hier auf ein Beispiel eines Netzentwurfes und konzentrieren uns mehr auf das Gebiet der Kryptographie, das sich mit der sicheren Kommunikation in Netzen beschgftigt. Unsere erste Zielsetzung ist, den Leser mit einigen grundlegenden Konzepten und Ideen aus dem Gebiet der Kryptologie bekannt zu machen. Dabei halten wir auch die gerade Linie der kontinuierlichen Entwicklung der informatikbezogenen Konzepte in diesem Buch ein, weil die wesentlichen Fortschritte der Kryptographie auf den in den vorhergehenden Kapiteln vorgestellten Kon-
9.2 Klassische Kryptosysteme
319
zepten der KomplexitS~tstheorie, Algorithmik und Randomisierung aufbauen. Aut3erdem ist gerade die Kryptographie das Gebiet, das his zu einem gewissen Grad kontraintuitive Resultate bereitstellt und dadurch auf eindrucksvolle Weise M6glichkeiten er6ffnet, von denen die meisten Anwender nicht zu trS~umen wagten. Die Organisation dieses Kapitels ist wie folgt gestaltet. Abschnitt 9.2 ist einer informellen Vorstellung der klassischen Kryptosysteme gewidmet. Der Abschnitt 9.3 stellt das Konzept der Public-Key-Kryptosysteme vor und illustriert es anhand des RSA-Kryptosystems. In Abschnit 9.4 wenden wir das Konzept der Public-Key-Kryptosysteme an, um zwei Protokolle fiir digitale Unterschriften zu entwerfen. In Abschnitt 9.5 lernen wir interaktive Protokolle und Zero-Knowledge-Beweissysteme kennen, mit denen man etIizient Beweise verifizieren kann, ohne sie zu lesen. Abschnitt 9.6 pr~sentiert den Entwurf eines Kommunikationsnetzes.
9.2
Klassische Kryptosysteme
Kryptologie bezeichnet urspriinglich die Lehre der Geheimsprachen. Innerhalb der Kryptologie unterscheidet man zwischen der Kryptographie, der Wissenschaft, Kryptosysteme zu entwickeln, und der Kryptoanalyse, der Kunst, diese zu brechen. Hier beschSfftigen wir uns nur mit der Kryptographie. Das betrachtete Szenario ist in Fig. 9.1 dargestellt.
Schltissel Schliissel Klar1 Krypto1 text-I Verschliisselung I te~t . Entschliisselung
Klartext
~ana~ Fig. 9.1 Eine Person, genannt S e n d e r , will eine geheime Nachricht einer anderen Person, genannt E m p f i i n g e r , zuschicken. Die geheime Nachricht ist in Form eines Textes dargestellt und wir nennen diesen Text K l a r t e x t . Um zu verhindern, dass ein Unbefugter, der auf irgendeinem Weg in den Besitz der Nachricht gelangt, den geheimen Inhalt lesen kann, schickt man die Nachricht in einer chiffrierten (verschliisselten) Form. Die Art der Chiffrierung (Verschliisselung)
9 Kommunikation und Kryptographie
320
ist ein gemeinsames Geheimnis des Senders und des EmpfS~ngers, und die Verschlfisselung wird mit Hilfe eines sogenannten SchHissels durchgeffihrt. Der verschliisselte Klartext heifit K r y p t o t e x t . Nach dem Empfang wird der Kryptotext entschliisselt, und das Ergebnis der Entschliisselung ist der urspriingliche Klartext. Formal ist ein Kryptosystem ein Tripel (/C, A, $), wobei/C die Menge aller erlaubten Klartexte, A die Menge aller m6glichen Kryptotexte und $ die Menge der Schliissel ist. Oft ist/C - 2 ~ fiir ein m E IN und ein Alphabet 2, d.h., dass man den zu verschliisselnden Text in B16cke der Lgnge m auReilt und jeden Block einzeln verschliisselt. In diesem Fall ist auch A - I~k fiir ein k E IN und ein Alphabet F. Jeder Schliissel c~ E $ bestimmt eindeutig eine injektive Funktion E~ von/C nach A. Die Verschliisselung entspricht also der Berechnung yon E~(z) fiir einen Klartext z E/C und die Entschliisselung entspricht der Berechnung von E21(c) fiir einen Kryptotext c E A. Die inverse Funktion E~ 1 zu der Funktion E~ bezeichnet man gew6hnlich mit D~. Die Anforderungen an ein Kryptosystem sind" (i) Die Funktion E~ und D~ sollen effizient berechenbar sein, und (ii) ohne c~ zu kennen ist es unm6glich oder zumindest im komplexitS~tstheoretischen Sinne schwer, aus einem gegebenen Kryptotext E~(z) den Klartext z zu berechnen. Wahrscheinlich ist CAESAR das einfachste Kryptosystem. Seien die Klartexte W6rter fiber dem lateinischen Alphabet mit 26 Buchstaben. Die Menge der Schliissel $ ist {0, 1, 2 , . . . , 25}. Fiir einen gegebenen Schliissel k E $ ersetzt man bei der Verschliisselung jeden Buchstaben des Klartextes durch einen Buchstaben, der in der alphabetischen Ordnung um k Positionen weiter hinten liegt. Am Ende des Alphabets geht man zyklisch wieder zum Anfang. So erhS~lt man f/ir k = 3 und den Klartext KRYPTOGRAPHIEISTFASZINIEREND
den Kryptotext NUBSWRJUDSKLHLVWIDVCLQLHUHQG.
Dieses Kryptosystem ist aber leicht zu um CAESAR handelt, reicht es aus, probieren. Schwerer kann man es dem Schliissel aus {0, 1 , . . . , 26} ~ fiir ein m
brechen. Wenn man weifi, dass es sich alle 26 m6glichen Schliissel durchzuKryptoanalytiker machen, indem man E I N - {0} betrachtet. Fiir einen sol-
9.3 Public-Key-Kryptosysteme und RSA
321
chen Schliissel (~ = al, a 2 , . . . , (~,~ zerteilt man den Klartext in Bl6cke der L~nge rn und ersetzt d e n / - t e n Buchstaben jedes Blocks durch den Buchstaben, der in der alphabetischen Ordnung um ai Positionen weiter hinten liegt. Falls a = 3, 1, 6, dann erhS~lt man fiir den Klartext K 3
R 1
Y 6
P 3
T 1
0 6
G 3
E
S
U
U
J
R 1
A 6
P 3
H 1
I 6
E 3
den Kryptotext N
S
S
G
S
I
0
H.
Dieses Kryptosystem kann man auch brechen, wenn man z.B. die Kenntnis der H~ufigkeit des Auftretens der Buchstaben in konkreten natiirlichen Alphabeten einsetzt. Es existieren aber auch klassische Kryptosysteme, die sehr schnell arbeiten und die man mit dem heutigen Wissen nicht brechen kann. Der Nachteil der klassischen Kryptosysteme liegt darin, dass sie auf einem gemeinsamen Geheimnis von Sender und Empfgnger basieren. Die Kenntnis des Verschliisselungsmechanismus impliziert direkt auch die Kenntnis des Entschliisselungsmechanismus (hS~ufig sind die Schl/issel f/Jr beide Verfahren gleich). Das bedeutet, dass der Sender und der Empf~nger sich zuerst auf einen festen Schliissel einigen miissen, ohne fiber ein Kryptosystem zur sicheren Kommunikation zu verfiigen. Wie man dieses Problem 16sen kann, ist das Thema des nS~chsten Abschnitts.
9.3
Public-Key-Kryptosysteme und RSA
Die in Abschnitt 9.2 vorgestellten klassischen Kryptosysteme nennt man auch symmetrische Kryptosysteme, weil man mit Kenntnis des Verschltisselungsverfahrens (Entschliisselungsverfahrens) einfach die Entschliisselungsprozedur (Verschliisselungsprozedur) ableiten kann. Damit sind Sender und EmpfS~nger gleichwertig und teilen sich den Schliissel als ein gemeinsames Geheimnis. Autier dem bereits erwS~hnten Problem der Realisierung einer sicheren Einigung auf einen gemeinsamen Schliissel hat das System noch eine andere SchwS~che. Wenn man ein Kommunikationssystem hat, in dem sich mehrere Teilnehmer den gleichen Schliissel teilen, reicht ein VerrS~ter, und die Sicherheit der gesamten Kommunikation bricht zusammen. Eine revolutionS~re Idee zur Uberwindung dieses Problems basiert auf einer komplexitgtstheoretischen Uberlegung.
322
9 Kommunikation und Kryptographie
Ftir die Verschliisselung sucht man eine sogenannte E i n w e g - F u n k t i o n f, die folgende Eigenschaften haben soll: (i) f ist effizient berechenbar, (ii) f - 1 ist nicht effizient berechenbar, und (iii) f - 1 ist effizient berechenbar, falls man eine geheime Information kennt (in Analogie zu Zeugen und Zertifikaten in Kapitel 6 und 8). Wenn man eine solche Einweg-Funktion f hSotte, k6nnte der EmpfS~nger f ver6ffentlichen, und die Sender k6nnten f zur Verschliisselung der Nachrichten benutzen. Trotz der Ver6ffentlichung von f (z.B. in einem Telefonbuch) sichert uns die Eigenschaft (ii), dass niemand die Kryptotexte entschliisseln kann. Nur der Empfgnger, der als einziger eine geheime zusgtzliche Information fiber f besitzt, kann die Kryptotexte entschliisseln. Kryptosysteme, die auf diesem Prinzip basieren, nennt man P u b l i c - K e y - K r y p t o s y s t e m e (Kryptosysteme mit einem 6ffentlichen Schliissel). Die Frage ist, ob solche Einweg-Funktionen iiberhaupt existieren. Man k6nnte sogar meinen, dass die Antwort nein sein sollte, weil die drei Eigenschaften (i), (ii) und (iii) fiir eine Funktion f zusammen unnatiirlich aussehen. Dass die Idee doch nicht so abwegig ist, zeigt das folgende Beispiel. Tab. 9.1 K R
Y P T O R
A P H I
E
Name Knuth Rivest Yao Papadimitriou Thomas Ogden Rabin Adleman Papadimitriou Hop croft Ibarra Edmonds
Telefonnummer 00128143752946 00173411020745 00127345912233 00372453008122 00492417738429 00012739226541 00048327450028 00173555248001 00372453008122 00013782442358 00124327010098 00183274553211
Betrachten wir die folgende Verschliisselung. Jeder Buchstabe wird einzeln durch eine Folge von 14 Dezimalziffern verschliisselt. Fiir jeden Buchstaben wSohlt man nichtdeterministisch aus irgendeinem Telefonbuch einen Namen, der mit diesem Buchstaben anfS~ngt, und die entsprechende Telefonnummer nimmt man in den Kryptotext auf. Falls die Nummer weniger als 14 Ziffern
9.3 Public-Key-Kryptosysteme und RSA
323
hat, setzt man an den Anfang entsprechend viele Nullen. Tab. 9.1 enthS~it eine Tabelle, die zeigt, wie man auf diese Weise das Wort Kryptographie verschliisseln kann. Vorausgesetzt, dass alle aui3er dem Empf/~nger nur klassische Telefonbiicher haben, die nach dem Namen sortiert sin(l, ist es eine sehr aufwendige Aufgabe, die Telefonnummer in dem Telefonbuch zu finden, um den der Nummer zugeh6rigen Namen zu erfahren 1. Nur der EmpfS~nger, der ein nach Telefonnummern sortiertes Welttelefonbuch besitzt, kann effizient den Kryptotext entschliisseln. Das vorgestellte Beispiel ist nur eine Ideenillustration und wir wollen es nicht ernsthaft als ein Kryptosystem in Betracht ziehen. Bevor wir aber einen ernsthaften Entwurf eines Kryptosystems mit 5ffentlichen Schl/isseln vorstellen, geben wir eine formale Definition einer Einweg-Funktion. D e f i n i t i o n 9.1. Seien E und F zwei Alphabete. Eine Funktion f " E* ~ heiflt E i n w e g - F u n k t i o n , falls sie folgende Eigenschaften hat.
(ii)
F*
Es existieren Konstanten c und d a u s IN - {0}, so dass fiir alle x E E*, ! . I x I 1, so dgss ggT(d, p ( n ) ) = 1
(9.1)
gilt und berechnet die Zahl e, 1 < e < ~(n), so dass e. d mod ~(n) = 1.
(9.2)
Die Zahlen n und e bilden den 5ffentlichen Schliissel und die Zahlen p, q, ~(n) und d bleiben das Geheimnis des EmpfSongers. Bei der Chiffrierung betrachten wir Klartext als eine Dezimalzahl, die kleiner als n ist. Wenn der Klartext 15~nger ist oder anders dargestellt wird, wandelt m a n ihn zuerst injektiv in eine Folge yon Dezimalzahlen der LS~nge [log10 n 1 - 1 u m und d a n n verschltisselt m a n die Dezimalzahlen der LS~nge ~lOgl0 n 1 - 1 einzeln. F/Jr eine Zahl w E {0, 1 , . . . , n - 1} ist die Verschliisselungsfunktion E~,~(w) = w ~ mod n. Fiir einen K r y p t o t e x t c ist die Entschliisselungsfunktion Dd,~(c) --
cd
modn.
Wie wir schon in Kapitel 8 gezeigt haben, sind E~,~ und Da,~ durch die Methode des wiederholten Quadrierens etIizient berechenbar. D a n k des randomisierten Primzahltests aus Abschnitt 8.4 kann m a n auch zufgllige Primzahlen effizient 3Grot3 bedeutet mehrere hundert Bits lang. 4Hierbei ist ~ die sogenannte Euler'sche Funktion. Fiir jede Zahl n ist ~(n) die Anzahl von Zahlen a E IN, so dass ggT(a, n) = 1 und a < n.
9.3 Public-Key-Kryptosysteme und RSA
325
generieren. Die Zahlen d und e kann m a n mit Hilfe des Euklidischen Algorithmus ebenfalls effizient berechnen 5 und somit ist die gesamte Schliisselberechnung des EmpfSmgers effizient durchfiihrbar. M a n kennt keinen effizienten (randomisierten) Algorithmus, der aus der Kenntnis yon e und n e i n e der Zahlen d, p, q oder p ( n ) berechnen kann. Die Kenntnis einer dieser vier geheimen Zahlen reicht allerdings aus, u m alle restlichen effizient zu berechnen. Genauso kennt m a n keinen effizienten Algorithmus, der aus E~,~(x), e und n (ohne d zu kennen) den K l a r t e x t x b e s t i m m e n kann. Jetzt wollen wir zeigen, dass RSA wirklich funktioniert, d.h., dass Da,~ (E~,~ (w)) = w fiir alle w < n. Dazu b e n u t z e n wir den Euler'schen Satz, der eine Verallgemeinerung des F e r m a t ' s c h e n Satzes ist. Satz 9.1. Satz von Euler
Seien w und n zwei positive natiirliche Zahlen mit g g T ( w , n ) = 1, und sei p ( n ) die Euler'sche Zahl yon n (p(n) = I{a E { 1 , 2 , . . . , n } l g g T ( a ,n) = 1}1 ). D a n n gilt w ~(~) m o d n = l . Der Euler'sche Satz ist eine Folgerung aus R e s u l t a t e n der G r u p p e n t h e o r i e , die besagen, dass die O r d n u n g jedes Elementes die O r d n u n g der G r u p p e teilt, und dass die zyklische G r u p p e (Z//(n)) * modulo n die O r d n u n g ~ ( n ) h~t. Nach der Definition der O r d n u n g von Elementen einer G r u p p e gilt ftir jedes w E ( Z / ( n ) ) * mit einer O r d n u n g k w k m o d n = 1. Weil p ( n ) = k . b ftir eine positive natiirliche Zahl b, erhalten wir w ~(~) rood n
w kb rood n (w k m o d n ) b m o d n (1) b m o d n - 1 .
5Genauer: d wird als eine grot3e Zahl zufgllig gewghlt. Dann wird getestet, ob d teilerfremd mit ~(n) ist. Falls nicht, wghlt man ein neues d. Da es hinreichend viele zu ~(n) teilerfremde Zahlen gibt, wird d schnell gefunden. Die Zahl e wird automatisch durch den Euklidischen Algotithmus zum Testen von ggT(d, ~(n)) = 1 mitbestimmt.
9 Kommunikation und Kryptographie
326
A u f g a b e 9.1. Fiihren Sie einen alternativen Beweis des Euler'schen Satzes, indem Sie den Beweis des Fermat'schen Satzes aus dem Abschnitt 8.4 verMlgemeinern. Das heii3t, beweisen Sie Folgendes. Seien xl, x 2 , . . . , x~(n) E {1, 2 , . . . , n - 1} alle Zahlen b mit der Eigenschaft ggT(b, n) = 1. Dann ist fiir jedes a c {1, 2 , . . . , n - 1}, (axl mod n, ax2 mod n , . . . , axe(n) mod n) eine Permutation yon Xl,X2,... ,X~(n). J e t z t sind wir b e r e i t , die K o r r e k t h e i t von R S A zu beweisen. S a t z 9 . 2 . S e i e n p, q, n, e u n d d wie in R S A natiirlichen Z a h l e n w k l e i n e r als n
bestimmt.
D a n n gilt fiir alle
Da,~(E~,n(w)) - w ~d rood n - w. Beweis.
N a c h der W a h l von d u n d e beziiglich (9.1) u n d (9.2) gilt (9.3)
fiir ein j E I N -
{0}. W i r m i i s s e n also beweisen, dass
w i~(~)+1 rood n - w
(9.4)
fiir alle w < n. W i r u n t e r s c h e i d e n drei M 6 g l i c h k e i t e n beziiglich der R e l a t i o n z w i s c h e n p, q u n d w. (i) K e i n e der P r i m z a h l e n p, q teilt w. W e n n p u n d q die Zahl w nicht t e i l e n u n d w < p . q , d a n n g g T ( p , q,
= 1
u n d d a m i t sind die V o r a u s s e t z u n g e n der E u l e r ' s c h e n S a t z e s fiir n = p . q w erffillt. D a h e r ist
und
w ~(~) m o d n = l und w i~(~) rood n - 1.
(9.5)
W e n n m a n b e i d e S e i t e n von (9.5) m i t w m u l t i p l i z i e r t , erhSJt m a n die anges t r e b t e G l e i c h u n g (9.4).
9.4 Digitale Unterschriften
327
(ii) Eine der P r i m z a h l e n p und q teilt w, und die andere teilt w nicht. O.B.d.A. setzen wir voraus, dass p die Zahl w teilt und dann q die Zahl w nicht teilt. Aus dem Satz von Fermat folgt w q-1 rood q - 1, w a s w ( q - 1 ) ( p - 1 ) rood q 1 impliziert, d.h. w ~(~) m o d q - 1 und somit W j~(n)
rood q -
1.
Weil p die Zahl w teilt, gilt (9.6) auch modulo n - p . q , w j~(~) rood n -
(9.6) d.h.
1.
Durch Multiplizieren mit w erreicht man auch hier das gewiinschte Ergebnis. (iii) Beide Zahlen p und q teilen w. Diese M6glichkeit kann nicht auftreten, weil p und q Primzahlen sind und p.q>w.
Die Public-Key-Kryptosysteme haben viele Vorteile gegenfiber den symmetrischen Kryptosystemen, weil sie uns die Herstellung von sicheren Kommunikationsprotokollen fiir unterschiedliche Aufgaben ermSglichen (wie z.B. digitale Unterschriften), die man mit symmetrischen Kryptosystemen nicht 15sen kOnnte. Die klassischen symmetrischen Kryptosysteme haben aber auch einen wesentlichen Vorteil gegeniiber den Public-Key-Kryptosystemen. Insbesondere auch aufgrund der Hardwarerealisierung sind sie in der Praxis oft 100-real schneller als Public-Key-Verfahren. Das fiihrt meistens dazu, dass man ein Public-Key-Kryptosystem nur zum Austausch eines Schliissels fiir ein symmetrisches Kryptosystem verwendet und den Rest der Kommunikation mit symmetrischen Kryptosystemen realisiert.
9.4
Digitale Unterschriften
Um eine einfache Anwendung der Public-Key-Kryptosysteme zu zeigen, stellen wir zwei einfache Protokolle fiir digitale (elektronische) Unterschriften vor. Handschriftliche Unterschriften sind juristisch gesehen eine Art Echtheitsgarantie. In der digitalen Kommunikation kann man aber keine handschriftlichen Unterschriften leisten. Aufierdem hS~tte man gerne noch fS~lschungssicherere Unterschriften, als es die handschriftlichen sind.
328
9 Kommunikation und Kryptographie
Betrachten wir folgendes Szenario. Ein Kunde K will der Bank B eine Echtheitsgarantie fiir eine {Jberweisung von seinem Konto geben, oder ein anderes Dokument fiir die Bank unterschreiben. Wir stellen folgende nattirliche Forderungen an Kommunikationsprotokolle fiir solche digitalen Unterschriften. (i) B muss v o n d e r Echtheit der Unterschrift v o n / s iiberzeugt werden. Sowohl B als auch K miissen vor einem Dritten (Fglscher) F geschiitzt werden, der sich als K gegen/iber B ausgeben m6chte. (ii) K sollte vor solchen Aktivit/~ten von B geschfitzt werden, bei denen B behauptet, ein unterschriebenes Dokument von K zu haben, obwohl K dieses Dokument nicht unterschrieben hat (d.h. B darf es nicht erlernen k6nnen, die Unterschrift yon K zu fglschen). Aufgabe 9.2. Entwerfen Sie ein Kommunikationsprotokoll fiir digitale Unterschriften, dass auf einem klassischen Kryptosystem basiert und die Erfiillung der Forderung (i) garantiert. Die Eigenschaft (ii) ist schwerer als (i) zu erffillen, weil sie auf den ersten Blick kontraintuitiv aussieht. Einerseits soll B v o n d e r Echtheit der Unterschrift von K fiberzeugt werden, und ffir die Uberprfifung muss er etwas fiber die Generierung (Erzeugung) der Unterschrift wissen. Andererseits darf B nicht zu viel fiber die Art, wie K unterschreibt, wissen, weil sonst B die Unterschrift von K nachmachen k6nnte. Die folgende einfache L6sung bietet das Konzept der Public-Key-Kryptosysteme. Der Kunde K hat ein Public-Key-Kryptosystem mit der Verschliisselungsfunktion E~ und der Entschlfisselungsfunktion D~:. Die Bank B kennt die 6ffentliche Verschliisselungsfunktion EK. Dann kann K wie folgt eine Unterschrift leisten. K nimmt das Dokument w und schickt (w, DK(w)) an B. B iiberprfift dann mit dem Test ,,w = EK(DK(w))"die Echtheit der Unterschrift. Weil kein anderer auger K die Nachricht DK(w) berechnen kann, ist B von der Echtheit der Unterschrift (w, DK(w)) /iberzeugt. Damit ist die Forderung (i)erf/illt. Weil der Schliissel EK 6ffentlich ist, hat auch B noch zusgtzlich die M6glichkeit, jeden Dritten 6 mit dem Paar (w, Dk(w)) iiberzeugen zu k6nnen, dass K das Dokument w unterschrieben hat. Die Forderung (ii) ist auch erfiillt, weil die Kenntnis von (w, Dk(w)) B nicht helfen kann, ein anderes Dokument u mit D~c(u) zu unterschreiben. Aufgabe 9.3. Das vorgestellte Protokoll hglt das Dokument w nicht geheim. Jeder, der lauscht, kann w lernen. Stellen wir also die folgende zus/~tzliche Bedingung. 6der E/( kennt und mit Sicherheit weiI3, dasses der 6ffentliche Schliissel von K ist
9.4 Digitale Unterschriften
329
(iii) Kein Dritter, der die Kommunikation zwischen B und K belauscht, darf den Inhalt des unterschriebenen Dokumentes erfahren. Entwerfen Sie ein Kommunikationsprotokoll, das alle drei Bedingungen (i), (ii) und (iii) erfiillt.
Betrachten wir jetzt eine kompliziertere Version von digitalen Unterschriften, die man das A u t h e n t i z i t ~ i t s p r o b l e m nennt. Hier braucht man kein Dokument zu unterschreiben, sondern man muss nur den anderen von seiner eigenen Identitgt fiberzeugen. Die Forderungen an ein Kommunikationsprotokoll fiir die Authentifizierung sind wie folgt:
(i') genau wie (i) (ii')
K sollte von solchen Aktivitgten von B geschiitzt werden, bei denen B sich gegenfiber einem Dritten als K ausgeben m6chte r.
Unser Kommunikationsprotokoll ist nicht fiir das Authentizitgtsproblem geeignet. B lernt die Unterschrift (w, D K ( w ) ) i n dieser elektronischen Kommunikation und kann sich in der Kommunikation mit einem Dritten mit dieser Unterschrift als K ausgeben. Es gibt Situationen, in denen so etwas sehr unerwiinscht ist. Auf3erdem kann irgendjemand der Kommunikation lauschen und dabei auch das Paar (w, DK(w)) lernen. Er kann dann ebenfalls mit der 6ffentlichen Verschliisselungfunktion E~: die Echtheit der Unterschrift iiberpriifen und sich dann als K ausgeben. Die L6sung des Authentizitgtsproblems findet man in der Einbeziehung zweier Public-Key-Kryptosysteme. K besitzt das bereits erwghnte Kryptosystem (DK, EK) und B hat ein anderes Public-Key-Kryptosystem(DB, EB). Die Verschliisselungfunktionen EK und EB sind 6ffentlich, und damit auch sowohl K als auch B bekannt. Die Funktion DK ist alas Geheimnis von K und die Funktion DB ist das Geheimnis von B. K leistet seine Unterschrift entsprechend dem folgenden Protokoll.
r Also ist (ii') ghnlich zu (ii), weil es eine Forderung gegen potentielle F/ilschung der Unterschrift yon K durch B ist.
9 Kommunikation und Kryptographie
330
9 B wS~hlt zufS~llig eine Zahl w und schickt E~c(w) an K. 9 K
dur
h
K berechnet c = EB(D~c(w)) und schickt es an B. 9 B iiberpriift, ob w = EK(DB(c)) =
EK(DB(EB(DK(w)))).
Es ist offensichtlich, dass/? vonder Echtheit der Unterschrift v o n / ( iiberzeugt ist. K ist der Einzige, der D~: kennt und somit der Einzige, der aus E~c(w) die Zahl w bestimmen kann, und so die Nachricht D~c(w) und somit auch Die Nachricht EK(w) kann niemand auger K entschltisseln und die Nachricht EB(DK(w)) kann niemand auger /? entschltisseln. Deswegen kann kein Lauscher F die Unterschrift (w, EB(D~c(w)))lernen und deren Echtheit tiberprtifen. Damit ist die Bedingung (i) erftillt. /? lernt in dieser Kommunikation die Unterschrift (w, EB(D~c(w))). Durch mehrere Auftr~ge von K kann/3 mehrere solche Paare kennenlernen. Das hilft ihm aber nicht dabei, sich als K auszugeben. Wenn man in dem ganzen Netz unter diesem Protokoll arbeitet, wird jeder Dritte C' zuerst E~c(u) an B, der sich als K ausgibt, schicken. Weil B kein D~: besitzt, kann er u nicht bestimmen. B kann hgchstens f/Jr alle gespeicherten Paare (w, EB(D~c(w))) den Wert E~c(w) berechnen und mit E~c(u) vergleichen. Falls E~c(w)= E~c(u)ist, hat B Gltick gehabt und kann sich als K ausgeben. Weil aber ~t zufS~llig als eine Zahl yon mehreren hundert Dezimalziffern gewS~hlt wurde, ist die Wahrscheinlichkeit des Erfolges yon B auch bei einer groBen Unterschriftensammlung kleiner als 1 durch die Anzahl der Protonen im bekannten Universum. Diese Wahrscheinlichkeit kann man noch geringer halten, indem man regelm~gig die Schltissel ~ndert.8
Aufgabe 9.4. Betrachten Sie das Authentizit/Rsproblem, bei dem man eine Unterschrift leistet, um sich als Person K auszugeben, und nicht um ein Dokument zu unterschreiben. In diesem Fall arbeitet das vorgestellte Protokoll mit groger Wahrscheinlichkeit zuverl~ssig. Bewirken Sie durch eine kleine Anderung dieses Protokolles, dass die Wahrscheinlichkeit, dass sich/3 als K gegeniiber einem Dritten ausgeben kann, gleich 0 ist. Dies muss unabh/~ngig davon gelten, wie grog die Liste der von B gesammelten Unterschriften yon K ist.
8Es gibt auch bessere Protokolle fiir digitale Unterschriften, deren Vorstellung aber den Rahmen dieses Lehrbuches sprengen wiirde. Die weiterfiihrende Literatur ist im Abschnitt 9.7 angegeben.
9.5 Interaktive Beweissysteme und Zero-Knowledge-Beweise
9.5
331
Interaktive Beweissysteme und Zero-Knowledge-Beweise
In Kapitel 6 haben wir gelernt, dass jede Sprache aus NP einen polynomiellen Verifizierer hat. Dies bedeutet, dass alle Aussagen x E L fiir ein L E NP einen Beweis polynomieller LS~nge in Ixl haben, und dass dieser Beweis in polynomieller Zeit verifiziert werden kann, d.h., dass beziiglich der Verifikation die Sprachen aus NP leicht sind. In Kapitel 8 gelangten wir zu der Einsicht, dass man die praktische LSsbarkeit mit randomisierten polynomiellen Berechnungen statt mit deterministischen polynomiellen Berechnungen verkniipfen sollte. So entsteht die Frage, f/ir welche Sprachen (Entscheidungsprobleme) man Beweise ,,praktisch" verifizieren kann. Um diese Fragestellung zu untersuchen, betrachten wir folgendes Kommunikationsprotokoll. Wit haben zwei Teilnehmer- den B e w e i s e r und den Verifizierer. Der Beweiset ist ein Algorithmus (eine TM), der keiner Komplexit~ttseinschr~nkung unterliegt. Der Verifizierer ist ein randomisierter polynomieller Algorithmus (eine randomisierte polynomielle TM). Fiir eine Sprache L erhalten beide Teilnehmet die gleiche Eingabe x. Der Verifizierer und der Beweiser diirfen kommunizieren, indem sie Nachrichten (WSrter) polynomieller L~nge in IxI austauschen. Der Beweiser mit unbeschr~nkter Berechnungsst~trke will den Verifizierer yon der Tatsache ,,x E L" tiberzeugen, und zu diesem Zweck darf er auch ltigen (falsche Aussagen produzieren). Die Aufgabe des Verifizierers ist es, Fragen an den Beweiser zu stellen, so dass er mit hoher Wahrscheinlichkeit bestimmen kann, ob der Beweiser einen Beweis von ,,x E L" hat oder nicht. Die Anzahl der Kommunikationsrunden ist hSchstens polynomiell in Ixl und die gesamte Berechnung des Verifizierers l~iuft in polynomieller Zeit. Der Verifizierer muss die Kommunikation mit der Entscheidung x E L oder x ~ L beenden. Dieses Kommunikationsprotokoll zwischen Beweiser und Verifizierer nennt man ein interaktives Beweissystem. D e f i n i t i o n 9.2. Sei L c E* fiir ein Alphabet E. W i t sagen, dass L ein int e r a k t i v e s B e w e i s s y s t e m b e s i t z t , falls ein Verifizierer (randomisierter polynomieller Algorithmus) V existiert, so dass fiir alle x E E* gilt: falls x E L, dann existiert ein Beweiser B, so dass V nach der Kommunikation mit B das Wort x mit der Wahrscheinlichkeit gr6fler als 52 akzeptiert, und { Wenn x C L, existiert ein Beweiser, der einen Beweis von ,,x C L " hat, und diesen Beweis kann der Verifizierer effizient iiberpriifen.}
9 Kommunikation und Kryptographie
332
(ii) falls x ~ L, dann endet fiir jeden Beweiser B die Kommunikation zwischen V und B mit dem Verwerfen von x mit einer Wahrscheinlichkeit 2 grSfler als 5" { Wenn x ~ L, gibt es keinen Beweis von ,,x E L " und so muss jede Strategie, den Verifizierer vom ungiiltigen ,,x E L " zu iiberzeugen, mit hoher Wahrscheinlichkeit entdeckt werden.} W i t definieren die Klasse IP dutch I P = {L [ L besitzt ein interaktives Beweissystem}. Die BeschrSmkung der Fehlerwahrscheinlichkeit in Definition 9.2 ist nicht entscheidend. Nach O(Ixl) unabhS~ngigen Wiederholungen der K o m m u n i k a t i o n eines interaktiven Beweissystems kann m a n die Fehlerwahrscheinlichkeit unter 2 - ~ driicken, und so ~tndert die Forderung der richtigen Ausgabe mit einer Wahrscheinlichkeit von mindestens 1 - 2-1xl nichts an der Definition der Klasse IP. Das folgende Resultat haben wir schon vorhergesagt. Lemma
9.1.
N P C IP.
Bowels. Weil NP = VP gilt, existiert fiir jede Sprache L c NP und jedes x E L ein Zeuge (Beweis, Zertifikat) c von ,,x E L" mit einer in Ixl polynomiellen L~tnge. Ein Beweiser, der c besitzt, schickt einfach c dem Verifizierer, der in polynomieller Zeit deterministisch mit Sicherheit die Tatsache ,,x E L" iiberpriift. Wenn x ~ L, existiert kein Beweis von ,,x E L" und so gibt es keine MSglichkeit, den deterministischen Verifizierer in polynomieller Zeit in Ixl von ,,x E L" zu tiberzeugen. D Die Frage ist jetzt, ob es auch interaktive Beweissysteme fiir Sprachen gibt, die auf3erhalb NP liegen. Wir betrachten folgendes Problem. Gegeben sind zwei Graphen G1 und G2, und m a n soll entscheiden, ob G1 und G2 isomorph 9 sind. Das Problem der Graphenisomorphie ist in NP, weil m a n den Isomorphismus nichtdeterministisch erraten und dann effizient deterministisch verifizieren kann. Von dem komplementgren Problem weir3 m a n nicht, ob es in NP liegt. Die Vermutung ist eher negativ, weil m a n nicht glaubt, dass das nichtdeterministische R a t e n fiir die Uberpr/ifung der Nichtexistenz eines Isomorphismus 9Zwei Graphen sind isomorph, wenn man die Knoten eines der Graphen so nummerieren kann, dass man einen Graph bekommt, der identisch mit dem anderen Graphen ist.
9.5 Interaktive Beweissystemeund Zero-Knowledge-Beweise
333
zwischen zwei gegebenen Graphen hilfreich sein k6nnte. Sei NICHTISO = {(G1, G2) [ G1 und G2 sind nicht isomorph}. Wir beschreiben jetzt ein interaktives Beweissystem fiir NICHTISO. Sei (G1, G2) eine Eingabe hierfiir. Der Verifizierer V iiberpriift zuerst, ob G1 und G2 die gleiche Anzahl yon Kanten und Knoten haben. Falls nicht, akzeptiert V die Eingabe (G1, G2) mit Sicherheit. Wenn G1 und G2 die gleiche Anzahl yon Kanten und Knoten haben, wS~hlt V zufgllig ein i E { 1, 2} und eine Permutation (jl, j2,..-, jn) von (1, 2 , . . . , n), wobei n die anzahl der Knoten ist, beide mit uniformer Wahrscheinlichkeitsverteilung. Dann nimmt V den Graphen Gi und permutiert seine Knoten entsprechend (j,, j 2 , . . . , j~). Den resultierenden Graphen Gi(jl, j2,..., jn) schickt V zu dem Beweiser B mit der Aufforderung zu deklarieren, ob Gi(jl,j2,... ,jn) isomorph zu G1 oder zu G2 ist. Wenn G1 und G2 nicht isomorph sind, kann B erkennen (berechnen), dass Gi isomorph zu Gi(jl, j2,..., j~) ist und schickt die richtige Antwort i zu V. Falls aber G, und G2 isomorph sind, hat B keine M6glichkeit auszurechnen, welche zufgllige Zahl i der Verifizierer gezogen hat. Dem Beweiser bleibt nicht anderes iibrig, als ein j C {1, 2} zu raten und an V zu schicken. Die Wahrscheinlichkeit, dass 1 Falls j -/= i verwirft V die Eingabe. Falls j - i, wiederholt V j - i i s t 5" die Kommunikation mit einem neuen zufgllig gewghlten i und mit einer neuen zufgllig gewghlten Permutation. Wenn danach der Beweiser wieder die richtige Antwort gibt, dann akzeptiert V die Eingabe (G1, G2). Wenn die zweite Antwort falsch ist, dann verwirft V die Eingabe. Wir zeigen jetzt, dass das beschriebene Protokoll ein interaktives Beweissystern fiir NICHTISO ist. Falls (G1, G2) E NICHTISO, existiert ein Beweiser, der zwischen G1 und G2 unterscheiden kann und deswegen gibt er immer die richtige Antwort. Daher akzeptiert V die Eingabe (G1, G2) mit Sicherheit. Falls (G,, G2) r NICHTISO, kann kein Beweiser zwischen G, und G2 beziiglich Isomorphie unterscheiden. Die Wahrscheinlichkeit, dass der Beweiser trotzdem 1 1 - a. 1 Damit ist die Fehlerwahrscheinzweimal die richtige Antwort rS~t, ist 7.7 1 lichkeit in diesem Fall a. Wenn der Verifizierer k Anfragen an B stellen wiirde, wiirde sich die Fehlerwahrscheinlichkeit auf 2 -k reduzieren. Wie stark das randomisierte Verifizieren wirklich ist, zeigt das folgende Resultat.
S a t z 9.3.* S a t z v o n S h a m i r
IP = PSPACE.
334
9 Kommunikation und Kryptographie
Das Bemerkenswerte an diesem Resultat ist, dass die Aussagen ,,x E L " f/Jr die Sprachen L E P S P A C E exponentiell lange Beweise haben diirfen, die m a n wegen ihrer L/~nge nicht vollst/~ndig iibertragen und lesen kann, und t r o t z d e m kann m a n deren Existenz in polynomieller Zeit randomisiert tiberpr~fen. 1~ Als letztes m6chten wir die Zero-Knowledge-Beweissysteme betrachten, die kryptographische Anwendungen haben. Hier verzichten wir auf die formale Definition. Die Idee besteht in der zusgtzlichen Forderung an das Beweissystem, dass der Verifizierer in der K o m m u n i k a t i o n mit dem Beweiser nichts (kein einziges Bit) lernt auger dem, was er sich auch alleine ohne Kommunikation mit dem Beweiser ausrechnen kann 11. Dies bedeutet unter anderem, dass V kein Bit des Beweises, in dessert Besitz sich der Beweiser befindet, erfghrt. Zero-Knowledge-Beweissysteme sind von grofier praktischer Bedeutung. Eine mSgliche Anwendung liegt z.B. in folgender Situation. Wir wollen eine Zugangskontrolle ftir einen Rechner konstruieren, die nur die Benutzung mit gtiltigem Passwort zul/~sst, aber dabei die Anonymitgt des Nutzers nicht verletzt. Dies bedeutet, dass der Benutzer in die Rolle des Beweisers schltipft und versucht, die Zugangskontrolle (den Verifizierer) davon zu iiberzeugen, dass er im Besitz eines Passwortes ist, ohne ein einziges Bit dieses Passwortes zu verraten. Eine andere Anwendung ftir Zero-Knowledge-Beweissysteme ist die Verwendung privater Informationen einer anderen Person zur Berechnung, ohne die Daten dabei zu lernen. Stellen wir uns vor, dass der Verifizierer einen Funktionswert f ( x , y) berechnen will und dabei nur den Wert y kennt. Der Beweiser kennt x und ist bereit, dem Verifizierer zu helfen, aber nur unter der Bedingung, dass der Verifizierer kein einziges Bit yon x erfghrt. Fiir welche Funktionen und Entscheidungsprobleme es Zero-Knowledge-Beweissysteme gibt, ist eine spannende Frage. Es ist ftir uns m a n c h m a l iiberraschend, wie viele Problemstellungen m a n mit den Zero-Knowledge Beweissystemen bewgltigen kann. Zum Beispiel kann m a n beweisen, dass jede Sprache aus NP ein Zero-KnowledgeBeweissystem hat. Wegen des Schwierigkeitsgrades und der umfangreichen ben6tigten Vorkenntnisse verzichten wir auf die Beweise und stellen nur ein Zero-Knowledge-Beweissystem fiir den Graphenisomorphismus vor. 1~ Tatsache L c PSPACE besagt nur, dass die Beweise von ,,x c L" eine polynomielle ,,Breite" haben, wobei die Breite eines Beweises als die Ltinge der ltingsten Aussagen in einer Folge gquivalenter Aussagen betrachtet wird. 11Dieses ,,nichts lernen" formalisiert man so, dass man die gesamte Kommunikation zwischen V und B als einen Wahrscheinlichkeitsraum betrachtet, wobei die Wahrscheinlichkeitsverteilung durch die zuftilligen Entscheidungen von V bestimmt wird. Ein interaktives Beweissystem ist dann Zero-Knowledge, wenn eine randomisierte polynomielle TM M existiert, die diese Kommunikation mit der gleichen Wahrscheinlichkeitsverteilung generiert.
9.5 Interaktive Beweissysteme und Zero-Knowledge-Beweise
335
Eingabe: (G1,G2) f/Jr B und V. Sei n die Anzahl der Knoten in G1 und G2. B: Der Beweiser w~thlt zuf~tllig ein i E {1, 2} und eine Permutation 7r = (jl, j 2 , . . . , jn) yon (1, 2 , . . . , n). Danach wendet er 7c auf G~ an und schickt den resultierenden Graphen Gi(Tr) an den Verifizierer. V: Der Verifizierer wS~hlt zufS~llig ein j E { 1, 2} und schickt es an den Beweiser. Dies entspricht der Anforderung, einen Beweis fiir den Isomorphismus yon Gi(zr) und Gj zu liefern. B: Falls G1 und G2 isomorph sind, bestimmt der Beweiser den Isomorphismus ~, so dass Gj(~) = Gi(Tr) und schickt ~ an den Verifizierer. Falls G1 und G2 nicht isomorph sind und i = j, dann schickt der Beweiser die Permutation ~ = 7r. Sonst (wenn kein Isomorphismus zwischen Gj und G~(Tr) existiert) schickt der Beweiser ebenfalls ~ = 7r. V: Der Verifizierer akzeptiert (G1, G2) genau dann, w e n n G j ( 5 ) = Gi(71-). Analysieren wir zuerst, ob dieses Protokoll ein interaktives Beweissystem ist. Falls G1 und G2 isomorph sind, kann der Beweiser immer eine Permutation 5 finden, so dass Gj(~) = G~(Tr) gilt. Damit akzeptiert V die Eingabe (G1, G2) mit Sicherheit (d.h. mit der Fehlerwahrscheinlichkeit 0). Falls G1 und G2 nicht isomorph sind, kann B ein 5 mit Gj(5) = Gi(Tc) nur dann schicken, wenn i = j. Die Wahrscheinlichkeit, dass i = j fiir zwei zufS~llige Zahlen i,j E {1,2}, ist genau ~.1 Das k-malige Wiederholen dieses Protokolls, in dem V nur akzeptiert wenn er k-real die richtige Antwort bekommt, driickt die Fehlerwahrscheinlichkeit auf 2 -k. Weil wir die formale Definition yon Zero-Knowledge-Beweissystemen nicht gegeben haben, k6nnen wir auch keinen formalen Beweis dieser Eigenschaft eines Beweissystems fiihren. Trotzdem k6nnen wir intuitiv gut verstehen, warum dieses Protokoll ein Zero-Knowledge-Beweissystem ist. 0 h e r den Isomorphismus zwischen G1 und G2 (sofern einer existiert) wird in der Kommunikation nichts verraten. Die erste Kommunikationsnachricht Gi(~r) kann man als ein Zufallsereignis betrachten, dass durch die zuf~tllige Wahl von i und ~r bestimmt wird. Die zweite Nachricht j ist auch eine Zufallszahl und die Permutation 5 ist ebenfalls durch die zufS~llig ausgesuchte Permutation 7r bestimmt (5 ist entweder direkt 7r oder eine Anwendung der zufS~lligen Permutation 7r auf den Isomorphismus zwischen G1 und G2). Damit bildet fiir ein festes (G1, G2) die Menge aller mSglichen Kommunikationen (G~(Tr), j, 5) zwischen B und V einen Wahrscheinlichkeitsraum. Man kann zeigen, dass der Verifizierer die Tripel (G~(Tc),j, 5) auch alleine mit gleicher Wahrscheinlichkeitsverteilung erzeugen kann. Daher kann der Verifizierer die Arbeit des Beweisers simulieren und somit kann er aus der Kommunikation nichts anderes erfahren, als das, was er auch alleine berechnen kann.
9 Kommunikation und Kryptographie
336
9.6
Entwurf eines Kommunikationsnetzes
Die Kommunikation zwischen unterschiedlichen Objekten wie Menschen, Rechnern, Prozessoren eines Parallelrechners usw. kann man durch unterschiedliche Verbindungsarten realisieren. Jede Technologie stellt andere MSglichkeiten und andere Einschrgnkungen dar und deswegen muss man sich bei dem Entwurf von Telegraphennetzen, festen und drahtlosen Telefonnetzen, optischen Glasfasernetzen, parallelen Rechnern usw. jeweils mit anderen Problemen beschS~ftigen. Eine Vielfalt yon Problemstellungen tritt auch bei dem Entwurf yon Kommunikationsstrategien in gegebenen Netzen auf. Diese Vielfalt ist zu grog, um sie systematisch in einem Abschnitt darzustellen. Deswegen ist unsere Zielsetzung hier viel bescheidener. Wir wollen die Art der Problemstellung anhand eines beispielhaften Entwurfes eines festen Verbindungsnetzes illustrieren. Betrachten wir die folgende Aufgabenstellung. Wir haben 2n Teilnehmer XO~
Xl
~ 9 9 9 ~ Xn-1
~ YO~ Yl
, 9 9 9 , Yn-1
die wir als Knoten eines Netzes darstellen. Wir sollen zwischen den x-Teilnehmern x0, X l , . . . , X~_l und den y-Teilnehmern Y0, Y l , . . . , Y~-I ein Netz bauen, so dass jederzeit jeder der x-Teilnehmer eine Verbindung fiir ein GesprS~ch mit einem ausgew~hlten y-Teilnehmer bekommen kann. Das Netz betrachtet man als einen Graphen G = (V, E), x0, X l , . . . , X~_l, Y0, Y l , . . . , Y~-I E V und die Bereitstellung einer Verbindung yon xi zu yj bedeutet, einen Weg xi, V l , . . . , v~, yj zwischen xi und yj in G zu finden, bei dem keine Kante dieses Weges fiir GesprS~che zwischen anderen Paaren yon Knoten benutzt wird. Dies bedeutet, dass jede Kante zu jedem Zeitpunkt nur ausschliefilich fiir ein einziges Gespr~ch benutzt werden darf. Die einfachste LSsung wiirde aus jedem Knoten xi eine Verbindung zu jedem y-Teilnehmer ziehen. Dadurch bekommt man einen vollstgndigen bipartiten Graphen, wie fiir n = 4 in Fig. 9.2 dargestellt. Diese LSsung ist aber praktisch nicht realisierbar. Erstens hat man n 2 Kanten fiir 2n Teilnehmer, was fiir n = 10000 die Anzahl der Verbindungsdr~hte auf 100 Millionen wachsen l~sst. Auger den hohen Herstellungskosten und der hohen Kabelzahl, die das Netz uniibersichtlich erscheinen lassen, kann man so ein Netz auch aus technologischen Griinden nicht realisieren. Die Anzahl der zu einem Knoten inzidenten Kanten (der Knotengrad) muss eine Konstante sein, d.h. darf nicht mit der Anzahl der Teilnehmer wachsen. Formulieren wir jetzt genauer die Anforderungen an eine mSgliche praktikable LSsung. Jeder Knoten des Netzes darf hSchstens den Grad 4 haben, die
9.6 Entwurf eines Kommunikationsnetzes X0
Xl
Yo
Yl
337 X2
X3
Y2
Y3
Fig. 9.2
LO(v) ~ LO(v) ~
LU(v)
RO(v)
~ v in LLRR
RU(v)
v in
LU(v)
LRRL
RU(v)
(b) Fig. 9.3 Teilnehmerknoten haben h6chstens den Grad 2. Im Folgenden nennen wir die Knoten, die nicht den Teilnehmern entsprechen, die Schaltungsknoten. Die Schaltungsknoten sind von der S t r u k t u r her alle gleich (Fig 9.3) und sehr einfach. Jeder Schaltungsknoten v hat genau 4 inzidente K a n t e n LO(v), LU(v), I~O(v) und RU(v). Der Knoten v kann in einem yon zwei Zustgnden LL_RR oder LRRL sein. Wenn v in dem LLRR Zustand ist, bedeutet das, dass die K a n t e n LO(v) und LU(v) miteinander verbunden sind, und auch die Kanten I~O(v) und RU(v) (Fig 9.3(a)). Wenn v in dem Zustand LI~_RList, liegen LO(v) und RU(v) auf einem gemeinsamen Kommunikationsweg und _RO(v) verkn/ipft mit LU(v) ist ein Teil eines anderen Kommunikationsweges (Fig 9.3(b)). Ein x-Teilnehmerknoten u hat nur zwei K a n t e n L(u) und R(u) und er kann sich alleine entscheiden, welche yon diesen beiden er fiir die K o m m u nikation benutzen will. Damit hat u auch zwei Zustgnde L und _R beziiglich der Kante, die er zur K o m m u n i k a t i o n benutzt. Die erlaubten Kommunikationsanforderungen an das Netz sind durch eine P e r m u t a t i o n (i0, il,...,/n-i) von (0, 1 , . . . , n - 1) gegeben. Eine Kommunikationsaufgabe (i0, i l , . . . , i~-1)
338
9 Kommunikation und Kryptographie
bedeutet, dass der x-Teilnehmer xj mit dem y-Teilnehmer Yi~ sprechen will f~r j = 0, 1 , . . . , n - 1. Wir fordern, dass man ftir jede der n! Permutationen ( i 0 , . . . , in-l) eine solche Zustandszuordnung der Schaltungsknoten finden kann, dass die n Gesprache (x0, Y~0), (Xl, Y~I),--., (X~-l, Y~-I) simultan stattfinden k6nnen. Ein Netz mit 2n Teilnehmern, das alle Permutationen yon (0, 1 , . . . , n - 1) realisieren kann, nennt man n - P e r m u t a t i o n s n e t z w e r k . Im Prinzip bedeutet dies, dass eine Festlegung von n kantendisjunkten Wegen zwischen xj und yi~ ffir j = 0, 1 , . . . , n - 1 mSglich ist. Wir bemerken, dass die Vereinigung von Knoten xi und yi zu einem Knoten fiir i = 0, 1 , . . . , n - 1 zu einem Telefonnetz fiihrt, in dem beliebige Paare yon Teilnehmern kommunizieren kSnnen. Als die Kosten eines Permutationsnetzwerkes betrachten wir die Anzahl der Schaltungsknoten 12 und diese Kosten wollen wir natiirlich minimieren. Der zweite Parameter, den wir auch in dem Entwurf minimieren wollen, ist die LS~nge des 15~ngsten Pfades zwischen einem x-Teilnehmer und einem y-Teilnehmer. Sch6n wS~re es auch, eine regelmS~t3ige, iiberschaubare Verbindungsstruktur zu erzeugen, insbesondere w/inschenswert wS~re die sogenannte ModularitS~t. ModularitS~t bedeutet, dass man die Netze fiir 2n Teilnehmer als Bausteine fiir die Herstellung yon Netzen mit mehr (z.B. mit 4n) Teilnehmern benutzen kann. Die ModularitS~t verringert offensichtlich die Kosten zukiinftiger Netzwerkerweiterungen und ist damit auch von grot3er Bedeutung. Das Netz in Fig 9.4 stellt eine preiswerte LSsung fiir die acht Teilnehmer Xo, Xl,X2, X3, Yo, yl, y2, Y3 dar. Die Anzahl der Schaltungsknoten ist nur 4 und alle Kommunikationswege zwischen x-Teilnehmern und y-Teilnehmern haben genau die Lgnge 2. Die Zustgnde der Knoten des 4-Permutationsnetzwerkes in Fig. 9.4 bestimmen die Realisierung der Permutation (3, 0, 2, 1). Aufgabe 9.5. Beweisen Sie, dass das Netz in Fig. 9.4 eine LSsung unseres Entwurfproblems darstellt. Unsere Zielsetzung ist jetzt, ein asymptotisch optimales Netzwerk ftir diese Kommunikationsaufgabe zu entwerfen. Zuerst zeigen wir, dass jedes Netz fiir 2n Teilnehmer mindestens gt(n log n) Schaltungsknoten haben muss. S a t z 9.4. Sei n E I N - {0}. Jedes n-Permutationsnetzwerk hat mindestens f~(n log n) Schaltungsknoten. Beweis. Sei n E I N - { 0 } und sei Net~ ein n-Permutationsnetzwerk. Wenn man in Net~ eine Permutation realisieren will, muss man eine passende Zuordnung
12und damit auch die Anzahl der Kanten (Verbindungsdr~hte)
9.6 Entwurf eines Kommunikationsnetzes XO
339
Xl
(0,00)1 I
X2
X3
1 I
(1,oo/I I (2, oo) I
I Yo
(2, Ol) I
(2, lO) I Yl
I Y2
(2,11) I Y3
I
Fig. 9.4 der Z u s t g n d e fiir die K n o t e n des Netzes finden. Zwei unterschiedliche P e r m u t a tionen erfordern offensichtlich unterschiedliche Z u s t a n d s z u o r d n u n g e n . D a m i t muss die Anzahl der m6glichen Z u s t a n d s z u o r d n u n g e n in Net~ mindestens n!, also die Anzahl der P e r m u t a t i o n e n von n Elementen, sein. Sei m die Anzahl der S c h a l t u n g s k n o t e n in Net~. Die Anzahl unterschiedlicher Z u s t a n d s z u o r d n u n g e n in Net~ ist genau 2 ~. 2 "~. D a m i t ist
2~ 92~
_> n!
n!
(d.h. 2 ~ _> 2-~),
u n d somit13 gilt
.~ > ~og~(~!)
~ > ~ . ~og ~
~ . (1~ r + 1) ~ a ( ~ ~og~).
Aufgabe 9.6. Beweisen Sie, dass jedes n-Permutationsnetzwerk mindestens einen Weg der L~nge log 2 n zwischen x-Teilnehmern und y-Teilnehmern beinhalten muss. U m ein n - P e r m u t a t i o n s n e t z w e r k einer Gr6fie in O(nlogn) zu entwerfen, beginnen wir mit s o g e n a n n t e n r - d i m e n s i o n a l e n S c h m e t t e r l i n g e n 14 But~ fiir jedes r E IN. But~ - (V~, E~), wobei 13Entsprechend der Stirling schen Formel n] ~ 7nn" 2~--~. 14butterfly in der englischsprachigen Literatur
9 Kommunikation und Kryptographie
340
{(i, w) l i E {o, 1 , . . . , r}, w E {0, 1}~}, und { { (i, w), (i + 1, w) } I i
{o, 1 , . . . ,
r - 1}} U
{{(i, zay), (i + 1, zby)} I i E {0, 1 , . . . , r - 1}, z E {0, 1}i, a, b c {0, 1},a-~ b, y c {0, 1}~-i-1}. Der 2-dimensionale Schmetterling But2 ist in Fig. 9.4 dargestellt. Eine anschauliche Darstellung yon But~ legt die (r + 1). 2 ~ Knoten von But~ als eine Matrix von r + 1 Zeilen und 2 ~ Spalten an. Auf der Position (i, j) der Matrix liegt genau der Knoten (i, w ) m i t N u m m e r ( w ) - j. Eine Kante liegt zwischen (i, x) und (i + 1, y) nur dann wenn entweder x - y gilt (die vertikMen Kanten, die in jeder Spalte yon oben nach unten laufen), oder wenn sich x und y nur i m / - t e n Bit unterscheiden (Fig. 9.4). Wenn man f/Jr j - 0, 1 , . . . , 2 ~ - 1 dem Teilnehmer xj den Knoten (0, w) mit N u m m e r ( w ) - j und dem Teilnehmer yj den Knoten (r, w') mit Nummer(w') = j zuordnet, dann enthS~lt But~ fiir jedes Paar (xa, y~), d, c E {0, 1 , . . . , 2 ~ - 1}, folgenden Weg zwischen xa und y~. Seien
Nummer(aoa~... a~_~) - d und Nummer(bob~... b~_~) - c ffir irgendwelche ak, bk E {0, 1} fiir k = 0, 1 , . . . , r - 1. Damit entspricht der Knoten (0, aoa~...a~_~) den Teilnehmer Zd und der Knoten (r, bobs.., b~_~) entspricht dem Teilnehmer y~. Wenn ao = bo gilt, startet der Weg mit der vertikalen Kante { (0, aoa~.., a~_~), (1, aoa~.., a~_~)}. Wenn ao -r bo, dann nimmt man die Kante {(0, aoal.., a~_l), (1, boal.., a~_l)}. Damit erreicht man nach dem ersten Zug in beiden F~tllen den Knoten (1, boal . . . a t - l ) . Im Allgemeinen erreicht der Weg von (0, a~... a~_~) nach (r, bobs.., b~_~) nach k Kantenziigen den Knoten (k, bob1.., bk-lakak+lak+2.., a~) und wird mit der Kante
{(It, b o b 1 . . ,
bk_lakak+l
. . . ar_l)
, (It -Jr- 1, b o b 1 . . ,
bkak+l
. . .
at-l)}
fort gesetzt. Damit sorgt die s-te Kante fiir die Umstellung des s-ten Bits a~ auf das s-te Zielbit b~. In But~ kann man also jeden x-Teilnehmer mit einem beliebigen y-Teilnehmer verbinden. Leider reicht das Netzwerk nicht aus, um eine beliebige Permutation zu reMisieren. Uber den Knoten
(L J,bobs..,
bL
/2jaL
/2j§
. . .
a _1)
9.6 Entwurf eines Kommunikationsnetzes
341
ftihren in unserer Strategie alle Wege mit einem Zielknoten aus der Menge {(r, bob1.., bLr/2JeLr/2J+l
.
.
.
er-1)
ej E {0,1} J --
Jr 1 , . . . ,
1}
und mit einem S t a r t k n o t e n aus der Menge {(0, for1.., fk~/2JaL~/2J+l...a~-i I
~ {0, 1} ftir i - o, 1 , . . . , L~J}.
Es gibt bis zu 2~ -1 solcher Wege, aber wir diirfen tiber einen K n o t e n h6chstens zwei Wege ftihren. Wir nutzen jetzt die r-dimensionalen Schmetterlinge als Bausteine zum Entwurf eines 2~-Permutationsnetzes, das m a n B e n e g - N e t z w e r k nennt. Das rdimensionale Bene~-Netzwerk Benes~ erhS~lt man, wenn m a n zwei r-dimensionale B u G - N e t z w e r k e A und B zusammenfiigt, indem m a n die entsprechenden K n o t e n der r - t e n (letzten) Zeilen yon A und B m i t e i n a n d e r verschmilzt. Fig. 9.5 zeigt Benes3. Wir sehen, dass das Benes~ 2r + 1 Zeilen hat, die ersten r + 1 Zeilen bilden ein B u G - N e t z und die letzten r + 1 Zeilen bilden auch ein B n G - N e t z . Fig. 9.7 zeigt eine rekursive Definition des Benes~-Netzes aus zwei
Benes~_l-Netzen. Aufgabe 9.7. Geben Sie fiir jedes r c I N - {0} eine formale Beschreibung von Benes~ als einen Graphen an. S a t z 9.5. Fiir jedes r E IN
{0} ist Benes~ ein 2~-Permutationsnetzwerk.
Beweis. Wir zeigen, dass m a n ftir jede P e r m u t a t i o n ( i 0 , . . . , i2~-1) 2 ~ Wege yon xj nach yi~ ftir j = 0, 1 , . . . 2 ~ - 1 so w~hlen kann, dass keine K a n t e auf m e h r als einem Weg liegt und jeder K n o t e n auf genau einem Weg liegt 15. D a m i t ist offensichtlich, dass eine Z u s t a n d s z u o r d n u n g fiir die K n o t e n existiert, die die K o m m u n i k a t i o n realisiert, die durch die P e r m u t a t i o n ( i 0 , . . . , i2~-1) b e s t i m m t ist. Wir beweisen diese Aussage mit I n d u k t i o n beziiglich r. (i)
Sei r = 1. D a n n ist (Fig. 9.6) Benesl offensichtlich ein 2 - P e r m u t a t i o n s n e t z w e r k . 16 (ii) Sei r > 2. Wir setzen voraus, dass fiir jede P e r m u t a t i o n yon (0, 1 , . . . , 2 ~-1 - 1) im 15Solche Gruppen von Wegen nennt man paarweise knotendisjunkte Wege. 16Bemerke, dass fiir r = 1 sogar BuG hinreichend ist.
342
9 Kommunikation und Kryptographie XO
Xl
X2
X3
X4
X5
X6
X7
Yo
Yl
Y2
Y3
Y4
Y5
Y6
Y7
Fig. 9.5 Xo
(o,o)
(o,1)
(i,0)
(1,1)
(o, o) I I YO Fig. 9.6
Xl
I I (2,1) Yl
9.6 Entwurf eines Kommunikationsnetzes
343
Benes~_l-Netz 2 r - 1 knotendisjunkte Wege zwischen den 2 r - 1 x-Teilnehmern und den 2 r - 1 y-Teilnehmern existieren. Wir k6nnen jetzt Benes~ als ein Netz ansehen (Fig. 9.7), das aus zwei Benes~_l-Netzen A und B und aus zwei ,,ersten Zeilen" yon But~ besteht. XO
Xl
X2r-l--1
X2r-1
X2r-ld-1
~ e~teS r_ 1
~ e~teS r_ 1
A
t3
YO
Yl
y2r-1--1
Y2 r-1
y2r-1+1
X2r-1
II Y2 r-1
Fig. 9.7 Dank der Induktionsvoraussetzung ist es hinreichend, eine solche Kommunikationsstrategie zu finden, dass genau die HSAfte 17 der Wege fiber den Netzteil Benes~_l A gehen wird, und dass die Kommunikationsaufgaben fiir A und B genau zwei P e r m u t a t i o n e n yon (0, 1 , . . . , 2 r - 1 -- 1) entsprechen. Um dieses zu garantieren, reicht es aus, die Wege in den ersten und letzten Zwischenzeilen yon Benes~ so zu wS~hlen, dass kein Knoten v in den ersten Zeilen yon A und B (also in der zweiten Zeile yon BeheSt) auf zwei Wegen liegt (nur eine Kante zwischen v und der 0-ten Zeile yon Benes~ daft benutzt werden), und dass kein Knoten u aus der letzten Zeile yon A und B auf zwei Wegen liegt (nur eine der K a n t e n yon u zu den y-Teilnehmern daft benutzt werden). Formal kann m a n diese Forderung wie folgt ausdriicken: (1)
Fiir alle i E {0, 1 , . . . , 2 ~-1} miissen die zwei Wege von xi und xi+2~-1 unterschiedliche Benes~_l-Netze benutzen (ein Weg muss fiber A und ein Weg muss fiber B gef/ihrt werden (Fig. 9.8(a))).
17also 2~- 1 viele
344
9 Kommunikation und Kryptographie (2) Fiir alle j E {0, 1 , . . . , jr--l} milSSeI1 die zwei Wege nach yj und yj+2~-i fiber unterschiedliche Benes,_l-Netze gefiihrt werden (Fig.
9.8(a)).
Xi
I
A
P
~o t?
Xi+2r-1
XO
Yj+2 r-1
0
Yi2r-1 Y i o + 2 ~-1 m o d 2~
X2r-1 Yi2r- 1 +2 r-
1
Yio
(b) Fig. 9.8 Eine transponierte Darstellung des Benes~-Netzes. Im Folgenden zeigen wir, dass man die Wege einfach einen nach dem anderen bestimmen kann. Sei (i0, il,..-,i2~-1) eine beliebige Permutation yon (0, 1 , . . . , 2~ - 1). Wir nehmen jetzt die Paare (Xo, Y~o) und (x2~-1, Y~-I) und legen den Weg von Xo nach Yio fiber A und den Weg von x2~-1 nach yi~_l fiber B (Fig. 9.8(b)). Falls l i 2 ~ - 1 - / o l - 2~-1, entstehen dabei keine Nachfolgerforderungen. Falls I @ - 1 - iol r 2~-~ miissen wir wegen (2) den Weg
9.6 Entwurf eines Kommunikationsnetzes
345
Yio+2r-1 mod 2r fiber B und den Weg nach Yi2r_l+2r-1 mod 2r fiber A leiten (Fig. 9.8(b)). Dadurch k6nnen wieder Anforderungen an die Fiihrung von zwei Wegen aus den Knoten Xq+2~-i mod 2~ und x~+2~-1 mod 2~ ftir nach
iq -- (i2.-1 + 2 r - l ) r o o d 2 r o n d is -
(io + 2 r - l ) r o o d 2 r
entstehen. 18 Wir sehen, dass die Fortsetzung dieser Strategie immer in h6chstens zwei erfiillbaren Anforderungen auf die Fiihrung von zwei Wegen resultiert. Ein Weg muss fiber A und ein Weg muss fiber B gefiihrt werden. Damit kann die vorgestellte Strategie erfolgreich die Wege zur Realisierung der gegebenen P e r m u t a t i o n bestimmen. D A u f g a b e 9.8. Bestimmen Sie die Wege in B e n e s 3 , die die Permutationen (7 2 1 3 0 5 64), (0 1 2 3 7 6 5 4) und (0 71 6 2 5 3 4) realisieren.
Mit dem Satz 9.5 haben wir unsere Zielsetzung erfiillt. Benes~ ist ein 2 ~Permutationsnetzwerk mit insgesamt (2r + 1). 2 ~ Knoten und r . 2 ~+2 Kanten. 19 Zus~tzlich haben die Bene~-Netzwerke eine regelm~fiige Struktur mit hohem Grad an ModularitS~t (Fig. 9.7). Die Entfernung zwischen beliebigen x-Teilnehmern und einem y-Teilnehmer betrS~gt genau 2r und ist daher logarithmisch in der Anzahl der Teilnehmer. A u f g a b e 9.9.* Sei G = (V, E) ein Graph. Ein b a l a n c i e r t e r S c h n i t t von G i s t ein Paar (V1, V2), so dass (i) V = VI O V2, VI A V2 = O, und
(ii) -1_< ]V1]-]V2]_ 2 . n d B -~ ~ C mit I~1 > 2 d~rch R~g~ln d~r Form D ~ a und D ~ a X fiir a E ET ersetzen. Um unn6tige schwer durchschaubare formale Konstruktionsbeschreibungen zu vermeiden, zeigen wir nur, wie m a n solche Regeln eine nach der anderen ersetzen kann. Sei A ~
WlW2...
Wk.B
eine Regel aus P mit k _> 2, wi E ET fiir i -- 1 , . . . , k. Wir nehmen neue 7 Nichtterminalsymbole A1, A 2 , . . . , Ak-1 und ersetzen diese Regel durch die Regeln A ~ w l A 1 , A1 ~ w2A2, . . . , Ak-2 ~ W k - l A k - 1 , Ak-1 ~ w k B .
Analog wird eine Regel C------~ U l U 2 . . . u
m
mit m _> 2, ui E E T ftir i -
1 , . . . , m, durch die Regeln
C -----+U l C l , C l ----> 'U,2(~2,..., C k - 2 ~
U m - l C m - 1 , C m - 1 ---+ Um
ersetzt. Bei der Ersetzung jeder unerwiinschten Regel muss m a n darauf achten, dass immer neue Nichtterminalsymbole g e n o m m e n werden (also existiert nur eine Regel mit Ai auf der linken Seite, und zwar A i ~ Wi+lAi+l und Ai wird nirgendwo anders verwendet). Wenn m a n dies einh~lt, ist es offensichtlich, dass m a n dadurch eine zu Go ~iquivalente G r a m m a t i k erzeugt. D A u f g a b e 10.16. Betrachten wir die Grammatik G aus Aufgabe 10.13. Konstruieren Sie eine zu G ~iquivalente normierte regul~ire Grammatik. A u f g a b e 10.17. Betrachten wir die Grammatik G -- ({S, X I , X 2 , X 3 } , {0, 1}, P~ S)
mit P-
{S --~ 0S, S --~ 1S, S ~ 01S, S --~ l l l 0 X 1 , X 1 ----->0X1,
X 1 ----->1X1, X 1 ----->0001X2,
X2 ~ 1X2, X2 ~ 0011X3,
X3 ~ OX3, X3 ~ 1X3, X3 --+ O, X 3 ~ 7Symbole, die nicht in EN U ET vorhanden sind
1}.
10 Grammatiken und Chomsky-Hierarchie
374
Konstruieren Sie eine zu G ~quivalente normierte regul~re Grammatik. Welche Sprache erzeugt G? Jetzt pr~sentieren wir das Hauptresultat: Die Konzepte der regul~tren Grammatiken und der endlichen Automaten definieren die gleiche Klasse von regul~ren Sprachen. Satz 10.3. s
=
s
Beweis. Der Satz 10.1 besagt, dass man zu jedem EA eine ~tquivalente regulgre G r a m m a t i k konstruieren kann. Somit gilt s
c_ s
Uns bleibt zu zeigen, dass s c_ s Sei L eine beliebige Sprache aus s Aus dem Satz 10.2 wissen wir, dass L = L(G) fiir eine normierte regul~re G r a m m a t i k G. Weil zu jedem nichtdeterministischen endlichen Automaten ein ~quivalenter EA existiertS, reicht es, einen zu G ~quivalenten nichtdeterministischen endlichen Automaten M zu konstruieren. Die Idee der Konstruktion basiert auf der Umkehrung der Konstruktion aus Satz 10.2 (Fig. 10.1). Sei G = (EN~ ET~ P, S) die normierte regul~re Grammatik mit L(G) = L. Wir konstruieren
M :
u {q.}.
5. s, F).
wobei
r-
L {q'}
falls S -~ A ~ P, falls S -~ A E P
6(qF~ a) = 0
fiir alle
Y E 6 (X~ a)
falls
qr E 6 (X~ a)
falls
aE
Y]T~
X ---+a Y E P, X, Y E EN, a E ET, X~aEP, XEEN, aEET.
Wir beweisen jetzt L(G) = L(M). (i) Wir zeigen L(G) c L(M). Sei x = wlw2.., w~ ffir wi E ET ein beliebiges nichtleeres Wort aus L(G). 8potenzmengenkonstruktion aus Satz 3.2
10.3 Regul~re Grammatiken und endliche Automaten
375
j Ixl
IYI
Fig. 10.1 Der Schritt des NEA M, der der Anwendung der Regel X ~ aY in der Ableitung von G entspricht.
Sei
S
==vcwlA1 ~ G WlW2A2 ~ c ::::~ G
... ~ c
W l W 2 . . . W~_lA~_l
W l W 2 9 9 9W n
eine A b l e i t u n g yon x in (7. In dieser A b l e i t u n g w u r d e n n a c h e i n a n d e r die Regeln
S ---, wlA1, A1 ~ w 2 A 2 , . . . ,A~_2 ~ W~_lA~_l, A~_I ---, w~ von G angewendet. Der K o n s t r u k t i o n von M folgend, gilt
A1 e ~(S, ~1), A~ e ~(A1, ~ ) , . . . ,A~_I e ~(A~_~, ~ - 1 ) , qF E 8(A~-I, w~). D a d u r c h ergibt sich die folgende a k z e p t i e r e n d e B e r e c h n u n g von M auf x:
(s, ~ 1 ~ . . . ~ - 1 ~ ) , . (dl, ~ . . . ~ - 1 ~ ) , . (d~, ~ . . . ~ - 1 ~ ) " ~ . . . "~ (d~_~, ~ - 1 ~ ) Falls A E L(G), d a n n kann es nur mit der Regel S ~ werden. D a n n ist a b e t S E F u n d somit A E L ( M ) .
A E P erzeugt
(ii) L ( ~ ) c_ L(G) ~, ~ i g ~ g~ht ~ l o g , ,nd wir a b ~ r l ~ n ~ d~m L ~ r . D Aufgabe 10.18. Vervollst~ndigen Sie den Beweis des Satzes 10.3, indem Sie die Tatsache L(M) c_ L(G) formal beweisen. Aufgabe 10.19. Betrachten Sie die Grammatik H aus Beispiel 10.4. Konstruieren Sie einen zu H ~quivalenten endlichen Automaten.
10 Grammatiken und Chomsky-Hierarchie
376
Aufgabe 10.20. In Aufgabe 10.9 haben Sie regulgre Grammatiken fiir drei regulgre Sprachen entworfen. Wandeln Sie zuerst die von Ihnen entworfenen Grammatiken in gquivalente normierte regulgre Grammatiken um und konstruieren Sie dann mit Hilfe des Satzes 10.3 gquivalente nichtdeterministische endliche Automaten. Aufgabe 10.21. In Abschnitt 3.4 haben wir das Pumping-Lemma fiir regul~tre Sprachen als eine Methode zum Beweisen der Nichtregularitgt von Sprachen entwickelt. Der Beweis basierte auf der Tatsache, dass in jeder geniigend langen Berechnung sich zwei Zustgnde wiederholen mfissen. $omit entsteht die MSglichkeit eine $chleife zu bilden, die beliebig viele Male wiederholt werden daft, ohne dass es der Automat merken kann. Lange Ableitungen von regul~tren Grammatiken k6nnen auch nicht die Wiederholung von Nichtterminalen vermeiden. Benutzen Sie diese Eigenschaft, um das Pumping-Lemma in dem Formalismus der Grammatiken zu beweisen.
10.4
Kontextfreie Grammatiken und Kellerautomaten
Wie wir schon erwS~hnt haben, sind die kontextfreien G r a m m a t i k e n die G r a m matiken, die uns als I n f o r m a t i k e r a m meisten interessieren. Die Klasse s (in der L i t e r a t u r auch als s bezeichnet) der durch kontextfreie G r a m m a t i k e n e r z e u g b a r e n Sprachen n e n n t m a n die Klasse von kontextfreien Sprachen. Die Zielsetzungen dieses A b s c h n i t t e s sind: - Die Beschreibungsstgrke der kontextfreien G r a m m a t i k e n zu u n t e r s u c h e n u n d dabei ghnlich wie bei regulgren Sprachen eine P u m p i n g - M e t h o d e zu entwickeln, mit der m a n die Nichtexistenz von kontextfreien G r a m m a t i k e n fiir gewisse konkrete Sprachen zeigen kann (also die T a t s a c h e L ~ s beweisen kann). - Die K e l l e r a u t o m a t e n als ein M a s c h i n e n m o d e l l einzufiihren, das g e n a u die Beschreibungsstgrke von kontextfreien G r a m m a t i k e n hat. Zuerst b e o b a c h t e n wir, dass 9 s keine regulgren Sprachen sind.
c s
d.h. es gibt kontextfreie Sprachen, die
B e t r a c h t e n wir die G r a m m a t i k
wobei P =
0Sl}.
9Die Inklusion s C_ s ist offensichtlich, weil regul~ire Grammatiken ein Spezialfall von kontextfreien Grammatiken sind.
10.4 Kontextfreie Grammatiken und Kellerautomaten
377
Wir sehen sofort, dass L(G) = {0~1~ I n E IN}, was keine regulS~re Sprache ist. Eine andere h~tufig benutzte kontextfreie, aber nicht regulgre Sprache ist die Sprache LR-
{wwR I w E {0, 1}*}.
Diese Sprache kann anschaulich durch die folgende kontextfreie Grammatik GR = ({S}, {0, 1}, {S ~ A, S ~ 0S0, S ~ 1S1}, S) erzeugt werden. A u f g a b e 10.22. Beweisen Sie LR = L(GR). A u f g a b e 10.23. Betrachten Sie die Sprache der Palindrome Lp = {w c
{0, l}*lw = w~}.
Konstruieren Sie eine kontextfreie Grammatik G mit L(G) = Lp. Beweisen Sie, dass Lp keine regulate Sprache ist.
Die in diesem Abschnitt bisher betrachteten kontextfreien Grammatiken waren sehr einfach, weil alle rechten Seiten der Regeln jeweils nur ein Nichtterminal enthalten haben. Damit ist in jeder Ableitung solcher Grammatiken immer nur ein Nichtterminal in den erzeugten nichtterminalen WSrtern. Solche einfachen Regeln reichen aber nicht aus, um jede Sprache aus s zu erzeugen. Im Beispiel 10.2 brauchten wir fiir die Sprache Lg~ = {w E {a, b}*llWla = Iwlb} auch die Regel S ~ S S . Das folgende Beispiel zeigt eine andere Strategie um Lg~ zu generieren. B e i s p i e l 10.5. Wir betrachten die folgende Grammatik:
a = {{s, A, B}, {a, b}, P, S}. Die Bedeutung des Auftretens eines Nichtterminals A ist, dass wir die Generierung eines Symbols a schulden, um die Anzahl yon a's und b's auszugleichen. Analog bedeutet das Vorhandensein eines B in einem nichtterminalen Wort, dass wir fiir den Ausgleich ein b schulden. Wir nehmen zuerst die Regeln: S ~ A, S ~ a B und S ~ bA.
10 Grammatiken und Chomsky-Hierarchie
378
Damit kann m a n W 6 r t e r generieren, die mit a oder mit b anfangen, und wenn a [b] generiert wurde, deutet B [A] das Schulden fiir die Generierung eines b [a] an. Die Regeln A ~ a, A ~ aS, B ~ b, B ~ b e,
erm6glichen dann, den Ausgleich zu erreichen. Wenn aber in dem generierten Wort das ngchste Symbol unterschiedlich von dem Ausgleichssymbol ist, nutzen wir die folgenden Regeln A ~ bAA, B ~ a B B ,
die das Erfassen hSherer Verschuldung in der Generierung yon a's oder b's garantieren. D Aufgabe 10.24. Beweisen Sie, dass die kontextfreie Grammatik aus Beispiel 10.5 die Sprache Lge = {w E {a, b}*llwla = IWlb} erz ugt Aus dem Grund, dass in den Ableitungen von kontextfreien G r a m m a t i k e n mehrere Nichtterminale in einem Wort auftreten diirfen, suchen wir eine fiberschaubare Darstellung von Ableitungen, die unabhS~ngig von der Wahl des als nS~chsten zu ersetzenden Nichtterminals ist. D e f i n i t i o n 10.4. Sei G = (EN, ET, P, S) sine kontextfreie Grammatik und sei x sin Wort aus L(G). Sei a sine A bleitung von x in G. Der S y n t a x b a u m ( A b l e i t u n g s b a u m ) T a der A bleitung a ist ein markierter B a u m mit folgenden Eigenschaften:
(i) (iv)
Ta hat eine Wurzel, die mit S markiert ist. Jeder K n o t e n yon Ta ist mit einem Symbol aus EN U ETU {A} markiert. Innere K n o t e n sind mit Symbolen aus EN markiert. Alle Bliitter sind mit Symbolen aus ET U {A} markiert, und yon links nach rechts gelesen ergeben sis genau das Wort x. Fiir jede A n w e n d u n g einer Regel A ~ c~1c~2.., c~ in a existiert genau ein innerer K n o t e n v mit der Markierung A und k SShnen Vl, v 2 , . . . , vk von links nach rechts, die mit den Symbolen c~1, c~2, . . . , c~ markiert sind (c~i E EN U ET fiir i = 1 , 2 , . . . , k ) .
W i t sagen auch, dass Ta ein Syntaxbaum zur Generierung von x in G i s t .
Wir veranschaulichen diese Definition mit einem Beispiel. Sei
10.4 Kontextfreie Grammatiken und Kellerautomaten
379
mit p
m
{S ~ S + S,S ~ S-
S,
S---, S * S,S---, S/ S, -~ (s), s -~ [~s]} die G r a m m a t i k zur Erzeugung yon arithmetischen Ausdr/icken. S
+
S
s
S
(
s
)
(
s
)
S
*
S
$
/
$
*
[~]
s
[i~]
[~]
S
[~]
-
S
[~]
Fig. 10.2
Der Ableitungsbaum (Syntaxbaum) T in Fig. 10.2 entspricht der Ableitung S
==~G ~G
(s 9 s 9 s ) + s ~
([~], s 9 s)+ s
=>c
( [ ~ ] , [ ~ ] , [ ~ ] ) + ([~]/s)
10 Grammatiken und Chomsky-Hierarchie
380 9
9
+
9
9
+
-
x)) -
Wir beobachten, dass jede Ableitung eindeutig einen Syntaxbaum bestimmt. Andererseits k6nnen mehrere unterschiedliche Ableitungen zu dem gleichen Syntaxbaum fiihren. Zum Beispiel ist die hier vorgestellte Ableitung eine sogenannte L i n k s a b l e i t u n g , weil immer das am weitesten links stehende Nichtterminal in dem aktuellen Wort ersetzt wird. Das wird aber nicht gefordert. Durch die Ersetzung des am weitesten rechts stehenden Nichtterminals erhS~lt man eine andere Ableitung. A u f g a b e 10.25. Schreiben Sie eine R e c h t s a b l e i t u n g far den Syntaxbaum in Bild 10.2, in der immer das am weitesten rechts stehende Nichtterminal zuerst ersetzt wird. A u f g a b e 10.26. Sei G eine kontextfreie Grammatik. Fiir ein Wort z c L(G) k6nnen unterschiedliche Syntaxb~ume zur Generierung von z in G existieren. Konstruieren Sie eine kontextfreie Grammatik G fiir die Sprache L = {0nl ~ I n c IN}, so dass fiir jedes z c L - { A } mindestens zwei unterschiedliche Syntaxb~ume zur Generierung von z in G existieren. A u f g a b e 10.27. Sei G eine beliebige kontextfreie Grammatik. Konstruieren Sie eine kontextfreie Grammatik G', so dass L(G) = L(G') und G' fiir jedes nichtleere Wort z c L(G) genau doppelt soviele unterschiedliche Syntaxb~ume zur Generierung von z hat als G.
Mit ghnlichem Vorgehen wie bei regulgren Grammatiken kann man jede kontextfreie Grammatik so modifizieren, dass sie keine Regeln der Form X -+ A (auger S --~ A) und keine Kettenregeln enth~lt. A u f g a b e 10.28. Sei G eine kontextfreie Grammatik. Konstruieren Sie eine zu G ~quivalente kontextfreie Grammatik, die keine Regeln der Form X --~ A fiir X unterschiedlich von dem Startsymbol enth~lt. A u f g a b e 10.29. Sei G eine kontextfreie Grammatik ohne Regeln der Form X --~ A fiir X unterschiedlich von dem Startsymbol. Konstruieren Sie eine zu G ~quivalente kontextfreie Grammatik, die keine Kettenregel enth~lt. A u f g a b e 10.30. Sei G = (EN, ET, P, S) eine kontextfreie Grammatik. Ein Nichtterminal X E EN nennt man n u t z l o s oder ein nutzloses Symbol, wenn X in keiner aus S startenden Ableitung auftritt 1~ (nicht erreichbar ist). Schreiben Sie einen Algorithmus, der fiir eine gegebene Grammatik G effizient alle nutzlosen Symbole finder. l~ bedeutet, dass ein X c EN nicht nutzlos ist, wenn eine Ableitung S = ~ irgendwelche c~, ~ E (EN U ET)* existiert.
ctX~ fiir
10.4 Kontextfreie Grammatiken und Kellerautomaten
381
GemS~t3 der Definition yon nutzlosen Symbolen in Aufgabe 10.30 ist es oftensichtlich, dass das Entfernen aller nutzlosen Symbole aus EN und aller Regeln, die nutzlose Symbole beinhalten, keinen Einftuss auf die dutch G generierte Sprache hat. Im Folgenden sagen wir, dass eine kontextfreie G r a m m a t i k G n o r m i e r t ist, falls G
(i) keine nutzlosen Symbole, (ii) keine Regeln der Form X ~ A, und (iii) keine Kettenregeln enthS~lt. Ausgehend aus den normierten kontextfreien G r a m m a t i k e n kann m a n noch ,,regulgrere" Formen erreichen. D e f i n i t i o n 10.5. Sei G = (EN~ ET~ P~ S) eine kontextfreie Grammatik. Wit sagen, dass G in C h o m s k y - N o r m a l f o r m ist, falls alle Regeln yon der Form
A ~ B C A
---+ a
fiir A, B, C E EN, oder fiir A E EN und a E ET
sind. Wit sagen, dass G in G r e i b a c h - N o r m a l f o r m tionen von der Form A
~
ac~fiirAEEN, aEEr
ist, wenn alle Produk-
undc~EE N
sind. S a t z 10.4. Fiir jede kontextfreie Grammatik G mit A ~ L(G) existieren zu G iiquivalente Grammatiken in Chomsky-Normalform und in Greibach-Normalf o cIlt .
Der formale Beweis von Satz 10.4 ist zu technisch 11 und so verzichten wir auf ihn in dieser Einfiihrung in die Theorie der formalen Sprachen. Wir deuten nur an, wie m a n eine Chomsky-Normalform erzeugen kann. Zuerst werden nutzlose Symbole, dann (X ~ A) P r o d u k t i o n e n 12 und K e t t e n p r o d u k t i o n e n entfernt. Die normierte kontextfreie G r a m m a t i k hat dann Regeln A~aundA~ctf/ir
Ictl_>2.
Die Regel A ~ a f/ir A E EN und a E ET ist schon in Chomsky-Normalform. Wie m a n die Regeln A ~ c~ fiir a E (EN O ET)*, Ictl _> 2, ersetzt, erkl~ren wir llinsbesondere die Konstruktion einer Grammatik in Greibach-Normalform. 12Weil A ~ L(G), brauchen wir S ~ A auch nicht.
10 Grammatiken und Chomsky-Hierarchie
382
anschaulich an einigen Regelbeispielen. Zuerst nehmen wir f/Jr jedes a E ET ein neues Nichtterminal X~ und erweitern P u m die Produktion X a ----+ a .
Danach ersetzen wir alle Terminalsymbole a in den rechten Seiten der Produktionen durch die entsprechenden Nichtterminale Xa. Auf diese Weise wird, zum Beispiel, die Regel A ~
bBCaaAc
durch die Regel
A
XbBCXaX AX
ersetzt. Jetzt haben alle Regeln die Form A ~ a oder A ~ c~ fiir ein c~ E (EN)*, I~1
2o
Es bleibt noch iibrig, jede Produktion A ~ Y1Y2... Yk mit k > 2 und Yi E EN fiir i = 1 , . . . , k zu ersetzen. Wir nehmen fiir diese Regel k - 2 neue Nichtterminale Z2, Z a , . . . , Zk-,, wobei die Bedeutung von Zi ist, dass m a n aus Zi nichts anderes als YiYi+l... Yk ableiten kann. Dann ersetzen wir A ~ Y~Y2...Yk
durch die Regeln A -----+Y I Z 2 ,
Z 2 ---+ Y 2 Z 3 ,
...,
Z i ---+ Y i Z i + l ,
...,
Z k _ 1 ---+ Yk_l]Tk.
Wenn m a n diese Prozedur fiir jede Regel A + ct mit Ictl > 2 mit immer neuen Nichtterminalen Zi realisiert, erhglt m a n eine kontextfreie G r a m m a t i k in Chomsky-Normalform. Aufgabe 10.31. Wir haben im Beispiel 10.5 eine kontextfreie Grammatik fiir die Sprache Lge gesehen. Wenn wir in dieser Grammatik auf die Regel S + A verzichten, akzeptiert diese Grammatik die Sprache Lye- {A}. Konstruiere aus dieser Grammatik eine 5~quivalente Grammatik in Chomsky-Normalform. Unsere ngchste Aufgabe ist es, eine Methode zu entwickeln, mit der m a n ffir konkrete Sprachen L die Tatsache L ~ s (L ist nicht kontextfrei) beweisen kann. Die Strategie ist ghnlich wie bei regulgren Sprachen. Eine Wiederholung
10.4 Kontextfreie Grammatiken und Kellerautomaten
383
eines Nichtterminals X in der Ableitung aus diesem Nichtterminal fiihrt zur MSglichkeit, das entsprechende Stiick der Ableitung
X beliebig oft zu wiederholen und dadurch WOrter
iX/3i fiir ein beliebiges i abzuleiten. Der Unterschied zu den regul~tren Sprachen ist der, dass man, anstatt auf einer Stelle zu ,,pumpen", auf zwei Stellen gleichzeitig ,,pumpt". L e m m a 10.6. P u m p i n g - L e m m a fiir k o n t e x t f r e i e S p r a c h e n Fiir jede kontextfreie Sprache L gibt es eine n u r von L abhgngige K o n s t a n t e nL, 80 dass fiir alle W S r t e r z E L m i t [z[ _> nL eine Zerlegung Z =
Uvwxy
von z existiert, so dass
(iii) {uviwxiy l i E IN} c_ L. Beweis. Sei G = (EN, ET, P, S) eine normierte kontextfreie Grammatik mit L ( G ) = L - {A}. Sei m die maximale LS~nge der rechten Seite einer Produk-
tion und damit die maximale MS~chtigkeit ~3 m6glicher Verzweigungen in den Ableitungsb~tumen von G. Wir w~thlen Tt L - - T ~ E N +1.
Ftir jedes z E L mit Iz] _> nL muss jeder Ableitungsbaum fiir z genau Izl B15~tter haben und somit ist die Tiefe (die maximale PfadlS~nge zwischen der Wurzel und einem B latt) mindestens
12NI + 1. Betrachten wir einen Pfad mit maximaler LS~nge von der Wurzel zu einem Blatt, daher von der LS~nge mindestens ]ENI + 1. Auf diesem Weg muss mindestens ein Nichtterminal als Markierung zweimal vorkommen. Wir suchen die 13die Anzahl der aus einem Knoten ausgehenden Kanten
10 Grammatiken und Chomsky-Hierarchie
384
u
v
w
x
y
Fig. 10.3
erste Wiederholung eines Nichtterminals ausgehend yon dem Blatt in Richtung der Wurzel. Damit finden wir zwei Knoten Vl und v2 (Fig. 10.3), so dass folgendes gilt:
(i)
V1
(ii)
V1
und v2 haben die gleiche Markierung A E EN. und v2 liegen ~uf einem Pfad zwischen einem Blatt und der Wurzel und Vl ist n~her an der Wurzel als v2. (iii) Der Teil des Pfades von Vl zu dem Blatt hat eine LSmge kleiner als
Ir l
+ 1.
GemS]3 Fig. 10.3 erhalten wir die Zerlegung von z. Ausgehend von S existiert eine Ableitung S ~c
u A y mit u, y E E T.
(10.2)
Wenn m a n den Teilbaum mit der Wurzel v2 betrachtet, gibt es eine Ableitung A =*G w mit w E E ) . Der Teilbaum mit der Wurzel A ~ G* v A x ~ G* v w x
(10.3) V1
garantiert die Existenz der Ableitung (10.4)
10.4 Kontextfreie G r a m m a t i k e n und K e l l e r a u t o m a t e n
385
ftir v, x E E}. Zusammenfassend definiert die Ableitung S ~ G u A y ~ c u v A y x =~c u v w y x
(10.5)
die Zerlegung z -- u v w y x
von z. Weil G eine normierte kontextfreie Grammatik ist, ist die L/~nge der rechten Seite der in Vl ausgesuchten Regel mindestens 2. Weil keine Regeln X --+ A vorkommen, k6nnen v und x nicht beide leer sein. Somit gilt (i), d.h.
I w l _ 1. Weil der Pfad von v, fiber v2 zu dem Blatt die Lgnge hSchstens IENI + 1 hat 14, ist die Anzahl der Blgtter des Teilbaumes mit der Wurzel v, und Verzweigungsgrad hSchstens m durch /t L -- ?Tt EN +1
yon oben beschrgnkt. Also gilt IV W X
~ ?%L
und somit ist (ii) erfiillt. Wenn man die ableitungen (10.2) und (10.3) kombiniert, erhS~lt man die a b leitung S ~G
uAy
~G
uwy-uv
von u w y und somit ist u v ~ 1 7 6
~
~
in L.
Wenn wir mit der Ableitung (10.2) beginnen, dann i-real den ersten Teil von (10.4) anwenden und am Ende die a b l e i t u n g (10.3) einsetzen, erhalten wir die Ableitung * u A y =:=>G * u v A x y =vc* ... =vc* uv~Ax~y =vG * uv~wx~y S =:=>c
von uv~wz~y in G fiir jedes i e IN - {0}. Somit gilt auch (iii) und das Lemma wurde bewiesen. D 14Man bemerke, dass d a n k unserer V o r a u s s e t z u n g dieser P f a d der lgngste in dem T e i l b a u m mit der Wurzel vm ist.
10 Grammatiken und Chomsky-Hierarchie
386
Bei der Anwendung des Pumping-Lemmas fiir kontextfreie Sprachen geht man genauso vor wie bei der Anwendung des Pumping-Lemmas ftir regul~re Sprachen. Fiir eine gegebene Sprache L wollen wir zeigen, dass das PumpingLemma fiir L nicht gilt. Fiir eine gegebene Sprache L haben wir zuerst die Wahl eines geniigend langen Wortes z aus L, weil das Pumping-Lemma fiir alle ausreichend langen WSrter gelten muss. Dann m/issen wir beweisen, dass f/Jr jede Zerlegung yon z - u v w x y , die (i) und (ii) erfiillt, die Bedingung (iii) nicht gilt. Wit prS~sentieren eine Anwendung dieser Strategie in folgendem Beispiel. B e i s p i e l 10.6. Wir zeigen, dass die Sprache L = {a~b~c~ln
E IN}
keine kontextfreie Sprache ist. Um dies zu beweisen, wS~hlen wir das Wort z = a nL bnL Cn L
das offensichtlich lgnger als die durch das Lemma gegebene Konstante rtL ist. Offensichtlich beinhaltet jede Zerlegung von z = u v w x y mit der Eigenschaft (ii) Ivwxl 1 gilt, enth~lt das Wort uv2wx2y
keinesfalls die gleiche Anzahl a's, b's und c's. Somit ist u v 2 w x 2 y nicht in L und die Bedingung (iii) des Pumping-Lemmas ist nicht erf/illt. D Aufgabe 10.32. Beweisen Sie, dass die folgenden Sprachen keine kontextfreien Sprachen sind. (i) (ii) (iii) (iv) (v)
{0nl~0~2 In E IN}, {a~b~c'~ l m _ nL und alle Markierungen yon mindestens nL Buchstaben in z eine Zerlegung
z = uvwxy von z existiert, so dass
(i)
v x mindestens einen markierten Buchstaben enthiilt, v w x hSchstens nL markierte Buchstaben enthiilt, und { u v i w z i y l i E IN} C L.
Aufgabe 10.35. Beweisen Sie das Lemma von Odgen. [Hinweis: Nehmen Sie eine Grammatik in Chomsky-Normalform als eine Darstellung von L. W~hlen Sie einen Pfad in dem Syntaxbaum fiir z ausgehend von der Wurzel und der Kante folgend, die zu einem Teilbaum mit mehreren markierten Symbolen fiihrt.] Der Vorteil des L e m m a s von Odgen liegt nicht nur darin, dass m a n die Beweise von L ~ s vereinfachen kann. Der H a u p t v o r t e i l des L e m m a s von Odgen ist, dass seine A n w e n d u n g fiir einige Sprachen zu dem Beweis L ~ L;2 fiihrt, obwohl diese Tatsache mit dem P u m p i n g - L e m m a fiir kontextfreie Sprachen nicht zu beweisen ist. B e i s p i e l 10.7. B e t r a c h t e n wir die Sprache
L-
{a~blcJd k l n , l , j , k
E lN-{O},
1-j-k}O{b,c,d}*
10 Grammatiken und Chomsky-Hierarchie
388
Zuerst zeigen wir, dass das P u m p i n g - L e m m a f/Jr kontextfreie Sprachen nicht helfen kann, u m L r Z;2 nachzuweisen. Sei z ein beliebiges 15 Wort aus L. Wir unterscheiden zwei FS~lle. (i)
Das W o r t z enthiilt kein S y m b o l a. Dann ist u v i w x i y in L fiir alle i E IN fiir jede Zerlegung z - u v w x y von z, weil {b, c, d}* c_ L. (ii) Das W o r t z enthiilt m i n d e s t e n s ein S y m b o l a, d.h. z - a~blcJd ~ ftir n, l, j, k E IN, n >_ 1, 1 - j - k. In diesem Fall gibt es folgende Zerlegung von z: z-
u v w x y mit u -
A, v - A, w -
A, x -
a und y -
a ~ - l b l d d ~,
die alle drei Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt, weil insbesondere uviwxiy-
a~+i-lblcJdk E L.
Also gibt es fiir jedes Wort z E L eine Zerlegung des Wortes z, so dass die Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt sind. Trotzdem ist L keine kontextfreie Sprache, und wir zeigen dies mit Hilfe des Lemmas von Odgen. Sei z-
ab l cld 1 E L mit 1 > nL.
Wir markieren alle Symbole des Teilwortes bcld. Aus der Bedingung (ii) des Lemmas yon Odgen erhalten wir, dass jede Zerlegung z - u v w x y yon z die Eigenschaft hat, dass v w x entweder kein Symbol b oder kein Symbol d enth~lt. Weil v x mindestens ein markiertes Symbol enthglt, wird in dem Wort uv2wx2y
mindestens eine Anzahl eines Buchstaben e E {b, c, d} erhSht ohne eine andere Anzahl eines Buchstaben h E {b, c, d } - {e} zu erh6hen. Damit gilt u v 2 w x 2 y L. D Aufgabe 10.36. Finden Sie eine andere Sprache L ~ 122, fiir die keine Anwendung des Pumping-Lemmas zu dem Beweis von L ~ 122 fiihren kann, fiir die abet die Nichtkontextfreiheit von L dutch das Lemma von Odgen bewiesen werden kann. 15Wir fordern sogar nicht, dass z >_ nL.
10.4 Kontextfreie Grammatiken und Kellerautomaten
389
A u f g a b e 10.37. Beweisen Sie mit der Hilfe des Lemmas von Odgen, dass folgende Sprachen nicht kontextfrei sind. (i) {albJc k l,j, k E IN, l ~=j , j =/=h und l -/= h}, (ii) {Onl'~Okln, m , k E IN, m - max{n,k}}, (iii) {0~1~2 k n, k E I N , h-/=n}.
Zur Beschreibung von regulgren Sprachen haben wir Berechnungsmodelle wie endliche Automaten und nichtdeterministische endliche Automaten sowie den Generierungsmechanismus yon regul/~ren Grammatiken kennengelernt. Die kontextfreien Grammatiken stellen eine natiirliche und einfache Form yon Generierungsverfahren dar und unsere ngchste Frage ist, ob man fiir die entsprechende Klasse von kontextfreien Sprachen auch ein Berechnungsmodell finden kann, das genau die Sprachen dieser Klasse akzeptiert. Anders gesagt, wir hgtten gerne eine Klasse yon Maschinen, so dass fiir jede kontextfreie Grammatik G eine zu G gquivalente Maschine aus dieser Klasse existiert und umgekehrt. Im Folgenden zeigen wir, dass ein solches Berechnungsmodell existiert. Dabei ist das Wichtigste, dass dieses zu kontextfreien Grammatiken gquivalente Maschinenmodell nicht kiinstlich erzeugt wird. Das Umgekehrte gilt. Das Modell ist im Gegenteil unter den Maschinenmodellen genauso nat/irlich, wie die kontextfreien Grammatiken unter den Grammatiken. Dieses Berechnungsmodell heif3t nichtdeterministischer Kellerautomat. Es nutzt die Datenstruktur des Kellers (last-in-first-out Speicherstrategie), die die natiirlichste Datenstruktur zur Implementierung von rekursiven Programmen ist. Wir beschreiben zuerst das Modell yon nichtdeterministischen Kellerautomaten auf eine anschauliche, nicht vollstgndig formale Weise. Ein Kellerautomat a
Eingabeband -~ Ein-Weg Lesekopf endliche q Kontrolle
Keller
Fig. 10.4
10 Grammatiken und Chomsky-Hierarchie
390
hat ein Eingabeband, das am Anfang das Eingabewort enthS~lt. Dieses Eingabeband kann genau wie bei endlichen A u t o m a t e n nur eingeschr~tnkt benutzt werden. Der Lesekopf kann aus dem Eingabeband nur lesen und darf sich nur yon links nach rechts bewegen. Dadurch dient das Eingabeband nur zum Einlesen der Eingabe und kann nicht als Speicher benutzt werden. 16 Es gibt aber einen Unterschied zu endlichen A u t o m a t e n in der Arbeit mit dem Eingabeband. Ein Kellerautomat ist nicht gezwungen, sich nach dem Lesen eines Buchstabens aus dem Eingabeband mit dem Lesekopf nach rechts zu bewegen. Er kann mit dem Kopf gewisse Zeit auf dem gleichen Feld des Bandes stehen bleiben und in dieser Zeit einige Rechnungen auf den Daten im Keller durchfiihren. Die endliche Kontrolle ist wie bei allen bisherigen Rechnermodellen durch eine endliche Menge von Zust~tnden gesteuert. Den Keller kann man als potenziell unendliches Band mit eingeschr~nkter Nutzung betrachten. Der Kellerautomat kann nur auf das Top-Symbol ganz oben im Keller zugreifen und somit nur dieses Symbol lesen (Bild 10.4). Wenn man den Keller nicht vertikal wie in Bild 10.4, sondern horizontal wie in Bild 10.5 zeichnet, dann bedeutet es, dass man nur den Inhalt der rechtesten nicht-leeren Zelle des Bandes lesen kann. Wenn man sich irgendwelche Daten anschauen will, die tiefer
zl
I
IxI Keller
9
o
.
unendlich viele leere Speicherzellen
Fig. 10.5 in dem Keller vorliegen, dann geht dies nur so, dass man zuerst dariiber liegende Daten 16schen und dadurch auch unwiderruflich vergessen muss, um die gewiinschten Daten ganz oben zugreifbar im Keller zu haben. Genauer gesagt hat die Transitionsfunktion drei Argumente: - das gelesene Symbol auf dem Eingabeband - den Zustand der endlichen Kontrolle - das Top-Symbol des Kellers. In einer Aktion kann der Kellerautomat den Zustand 5~ndern, den Lesekopf ein Feld nach rechts bewegen und das Top-Symbol X des Kellers durch ein Wort c~ ersetzen. Wenn das Wort c~ das leere Wort A ist, dann betrachten wir dies als das L6schen des Top-Symbols X, was die Schrumpfung des Kellerinhaltes 16Wie es
bei der Turingmaschine ist.
10.4 Kontextfreie Grammatiken und Kellerautomaten
391
bedeutet. Wenn das Top-Symbol X durch ein nichtleeres Wort c~ = Y1Y2... Yk ersetzt wird, dann steht danach Y1 in dem Feld, wo X vorher stand, und die nS~chsten k - 1 Symbole Y2,..., Yk liegen jeweils in den nachfolgenden 17 k - 1 Feldern des Kellers. Wenn die ganze Eingabe gelesen wurde, is betrachtet man zwei M6glichkeiten, das Akzeptieren der Eingabe zu definieren. Eine M6glichkeit ist, die Akzeptierung fiber eine ausgezeichnete Menge von akzeptierenden Zustgnden zu definieren wie bei endlichen Automaten. Die zweite M6glichkeit, die wir auch in der folgenden formalen Definition vorziehen, ist zu akzeptieren, wenn der Keller leer ist (geleert wurde). Am Anfang jeder Berechnung steht im Keller ein einziges Sonderzeichen Z0 und so weifi der Kellerautomat, w a n n e r ganz unten im Keller ist und entscheidet selbst, ob er dieses letzte Zeichen in dem Keller 16schen will oder nicht. D e f i n i t i o n 10.6. Ein n i c h t d e t e r m i n i s t i s c h e r K e l l e r a u t o m a t 19 ( N P d A ) ist ein 6-Tupel M = (Q, E, F, 5, qo, Zo), wobei die Elemente des Tupels folgende Bedeutung haben:
(ii) (ii/)
Q ist eine endliche Menge, die Z u s t a n d s m e n g e genannt wird, E ist das E i n g a b e a l p h a b e t {wie iiblich werden genau alle WSrter aus E* als mSgliche Eingaben betrachtet} , F i s t das K e l l e r a l p h a b e t 2~ {F beinhaltet alle Symbole, die im Laufe von Berechnungen im Keller auftreten diirfen}, qo E Q ist der A n f a n g s z u s t a n d {mit der gleichen Bedeutung wie bei endlichen Automaten}, Zo E F ist das I n i t i a l i s i e r u n g s s y m b o l des Kellers {Jede Berechnung von M startet in qo mit Zo als einzigem Inhalt des Kellers} , 5 ist eine Abbildun9 yon Q • (E U {A}) • F in endliche Teilmengen yon
Q• { Wenn man A als zweites Argument hat, widerspiegelt dies die Situation, in der M das Eingabesymbol nicht lesen will und damit in seiner Aktion den Lesekopf nicht bewegen wird. Wenn das zweite Argument ein Symbol lrvorher leeren lSwie bei endlichen Automaten 19pushdown automaton im Englischen 2~ zu dem Arbeitsalphabet einer Turingmaschine
10 Grammatiken und Chomsky-Hierarchie
392
a E E ist, wird der Lesekopf i m m e r automatisch ein Feld nach rechts voranschreiten} . Eine K o n f i g u r a t i o n
von M i s t ein Tripel
(q,w, c~) E Q • E* • F*~
wobei - q E Q der aktuelle Zustand ist, - w E E* der bisher nicht gelesene Teil der Eingabe ist, {Der Lesekopf zeigt auf das Feld mit dem ersten Symbol von w, falls w # A} - c~ E F* der aktuelle Kellerinhalt ist. Ein S c h r i t t ~M von M i s t
eine Relation auf Konfigurationen, definiert dutch
{ M liest im Zustand q das Eingabesymbol a und das Kellersymbol X . Danach geht M in den Zustand p, bewegt den Lesekopf ein Feld nach rechts und ersetzt das Top-Symbol X des Kellers dutch/3}, und falls (p,/3) E 5(q, A, X ) { M entscheidet sich im Zustand q, kein Eingabesymbol zu lesen, und deswegen iindert M n u t den Zustand und ersetzt X dutch/3 im Keller, ohne den Lesekopf auf dem Eingabeband zu bewegen}. Eine e n d l i c h e B e r e c h n u n g y o n M i s t eine Folge yon I(onfigurationen CI, C2~ . . . , C,~, so dass Ci ~M Ci+l fiir i = 1, 2~ . . . , m - 1 gilt. Fiir jedes Wort x E E* ist (qo, x, Zo) die A n f a n g s k o n f i g u r a t i o n
yon M
a u f x.
Eine Berechnung Co, C i r . . . , C,~ yon M heiflt einc a k z e p t i e r e n d e n u n g y o n M a u f x , falls
Co = (qo,
Zo)
= (;, A, A)
Berech-
10.4 Kontextfreie Grammatiken und Kellerautomaten
393
fiir irgendeinen Zustand p E Q. Wie iiblich 21 bezeichnet ~*M die reflexive und transitive Hiille von der Relation ~M. Die y o n d e n Kellerautomaten M akzeptierte Sprache L(M) ist deftniert dutch L(M)
: {w E E* I (q0, w, Zo) ~
(p, A, A) fiir ein p E (2}.
Wir beobachten, dass ein NPdA mit leerem Keller nicht arbeiten kann. Wenn daher in einer Berechnung der Keller geleert wurde und das Eingabewort noch nicht zu Ende gelesen wurde, wird in dieser Berechnung die Eingabe nicht akzeptiert. Andererseits liegt unten im Keller am Anfang das Sonderzeichen Z0, und wenn der NPdA dieses Initialisierungssymbol nirgendwo anders verwendet oder es nie durch ein anderes Symbol ersetzt, dann weif3 er immer, wann er auf dem untersten Boden des Kellers ist. 22 Eine andere wichtige Bemerkung ist, dass ein NPdA auf einer Eingabe auch unendliche Berechnungen haben kann. Dies kommt dadurch zustande, dass er beliebig viele Schritte machen kann, ohne ein Eingabesymbol zu lesen (sogenannte )~-Schritte). ZusS~tzlich sollen wir nicht vergessen, dass die Gr6t3e des Kellers nicht beschrS~nkt ist. Ein NPdA benutzt zwei M6glichkeiten zur nichtdeterministischen Verzweigung von Berechnungen. Zuerst kann er sich entscheiden, ob er das Eingabesymbol liest oder einen A-Schritt realisieren will. In diesen beiden Fgllen kann er sich fiir die gegebenen Argumente aus einer endlichen Menge yon Aktionen eine aussuchen. Im Folgenden geben wir zwei Beispiele von Kellerautomaten. B e i s p i e l 10.8. Wir bauen einen NPdA f/ir die nichtregulSze Sprache L = {0~1~ I n E IN}. Sei
-/~ = ({q0, ql, q2}, {0, 1}, {0, Z0}, ~, q0, Z0). Um A akzeptieren zu k6nnen, nehmen wir
(qo, a, Zo) : {(qo, a), (ql, Zo)} 21wie bei endlichen Automaten und Turingmaschinen 22Also trifft er gezielt die Entscheidung, den Keller zu leeren.
10 Grammatiken und Chomsky-Hierarchie
394
Im Zustand ql realisieren wir die Speicherung der Anzahl der Nullen des lgngsten Prefixes der Eingabe, das nur aus Nullen b e s t e h t
~(q,, o, Zo) (~(ql, o, o) -
{(q,, ZOO)}, {(ql, oo)}.
Bei dem ersten Auftreten des Symbols 1 wechselt M in den Zustand q2 und 16scht in diesem Zustand jeweils eine Null aus dem Keller fiir jede gelesene 1 auf dem Eingabeband.
~(q~, 1, o) 6(q2,1,o) -
{(q~, a)}, {(q2,t)}.
Durch 6(q2,0, X ) - 0
fiir
XC{O, Zo}
garantieren wir, dass kein Wort mit mehr als einem Wechsel zwischen Nullen und Einsen bearbeitet und so akzeptiert werden kann. Mit der Aktion
5(q~, a, Zo) - {(q~, a)} akzeptieren wir alle W6rter der Form 0~1 ~ fiir n _> 1. Wenn 0~1 ~ nur echtes Prgfix der Eingabe ist, wird die Eingabe nicht akzeptiert, weil M dem leeren Keller nicht weiterarbeiten kann. Im Detail bedeutet dies, dass fiir alle nicht eingegebenen Argumente die Menge der m6glichen Aktionen 0 setzen.
ein mit wir auf
Als Beispiel einer akzeptierenden Berechnung geben wir die Berechnung (qo, 0 a13, Zo) FM
(ql,
~ (q~, 1~, ZoOOO) ~ ~-~ (q2, 5, 5) von M auf 0 a la.
(ql,
0213, ZoO) FM
(q~, 1 ~, ZoOO) ~
(q~, 1, ZoO) ~
0al 3, Zo) FM
(ql,
01 a, Zo00)
(q~, ~, Zo) D
Aufgabe 10.38. Entwerfen Sie einen NPdA fiir die Sprache {0~1~ I rt c IN-{0}}, der nur einen Zustand hat. Aufgabe 10.39. Beweisen Sie, dass der Automat aus Beispiel 10.8 wirklich die Sprache L = {0nl ~ I n c IN} akzeptiert. Im Einzelnen bedeutet dies zu zeigen, dass fiir jedes Wort 0nl n eine akzeptierende Berechnung von M existiert und dass eine akzeptierende Berechnung nur auf einem Wort aus L vorkommen kann.
10.4 Kontextfreie Grammatiken und Kellerautomaten
395
Aufgabe 10.40. Entwerfen Sie nichtdeterministische Kellerautomaten fiir die folgenden Sprachen: (i) {0~12~+3 In E IN}, (ii) {OilJ2k l i,j ,k E IN, k >_ i + j}, (iii) {0ilJ2 k I i, j, k c IN, i = j oder k = 2i}. B e i s p i e l 10.9. B e t r a c h t e n wir die Sprache LR-
{ w ~ w R I w E {0, 1}*}
fiber dem A l p h a b e t {0, 1, ~}. Wir beschreiben einen N P d A M mit L ( M ) = L, ohne die detaillierte Darstellung yon (~ anzugeben. M arbeitet auf einer E i n g a b e x~y mit x E {0, 1}* wie folgt. Jeder gelesene B u c h s t a b e auf dem E i n g a b e b a n d wird zuerst im Keller gespeichert. Somit erreicht M einmal die Konfiguration
(q0,
z0 ).
Nach dem ersten Lesen von ~ ~ndert M den Z u s t a n d u n d beginnt, das oberste Kellersymbol mit dem gelesenen E i n g a b e s y m b o l zu vergleichen. Wenn die Symbole fibereinstimmen, wird das oberste Kellersymbol gel6scht. Auf diese Weise kann m a n iiberprfifen, ob y = x R, weil das Wort x so in dem Keller gespeichert wird, dass es vom Ende z u m Anfang aus d e m Keller gelesen wird. Wenn M den Kellerboden mit dem Symbol Z0 erreicht, erhS~lt er die M6glichkeit, in einem A-Schritt den Keller zu leeren. D Aufgabe 10.41. Geben Sie eine formale Beschreibung des NPdA aus Beispiel 10.9 an. Aufgabe 10.42. Entwerfen Sie nichtdeterministische Kellerautomaten fiir die folgenden Sprachen: (i) (ii) (iii) (iv)
{wwR I w c {a,b}*} {wuwR I w E {a,b}*,u E {0,1}*} {wc{O,1}*iiwi0=iwI1} {w c {0,1}* I Iwl0 _< 3lWll + 4}.
Aufgabe 10.43. * Definieren Sic einen nichtdeterministischen Kellerautomaten, der ~hnlich wie ein NEA mit akzeptierenden Zust~nden akzeptiert, d.h. er akzeptiert, wenn das ganze Eingabewort gelesen wurde und er sich in einem akzeptierenden Zustand befindet. Zeigen Sie, dass dieses Modell von NPdA ~tquivalent zu unserem Modell ist, d.h. zu jedem NPdA, der mit akzeptierenden Zusts akzeptiert, existiert ein s NPdA, der mit dem leeren Keller akzeptiert, und umgekehrt.
10 Grammatiken und Chomsky-Hierarchie
396
Jetzt zeigen wir, dass die NPdAs genau die Klasse der kontextfreien Sprachen akzeptieren. Wir beginnen mit der einfacheren Richtung, zu jeder kontextfreien G r a m m a t i k einen 5~quivalenten N P d A zu konstruieren. 10.8. Sei L sine kontextfreie Sprache, die A nicht enthiilt. Dann existiert ein NPdA M, so dass L - L ( M ) gilt.
Lemma
Beweis.
Sei G - (EN, ET, P , S ) eine kontextfreie G r a m m a t i k in GreibachNormalform mit L - L(G). Die Idee ist, einen N P d A M mit nur einem Zustand zu konstruieren, so dass fiir jede Ableitung 2a
mit w E E~ und c~ E E~v eine Berechnung von M existiert, in der bisher das Wort w gelesen wurde und der Keller das Wort c~R enthSJt. Dieses soll deswegen m6glich sein, weil G in jedem Ableitungsschritt ein Terminalsymbol generiert, was m a n durch das Lesen dieses Symbols auf dem Eingabeband yon M nachahmen kann. Formal setzen wir M - ({q0}, ET, EN, 5, q0, S), wobei
fiir alle a E ET und A E EN. Wir beweisen jetzt L(G) - L(M), indem wir fiir jedes i E IN zeigen: "G kann genau dann in i Linksableitungsschritten die Wortform w ~ . . . w~c~fiir wj E ET und c~ E E~v erreichen (d.h. S ==>~ w ~ . . . w~c~), wenn M in i Schritten w ~ . . . w~ lesen und dabei die Konfiguration (q0, x, c~R) fiir ein beliebiges x erreichen kann." Wir beweisen diese Aussage mit Induktion bez/iglich i. Fiir i - 0 ist die Beh a u p t u n g trivial. Sei nun i _> 1 und die B e h a u p t u n g gelte fiir alle j < i. Sei
S :=~iG--1 WlW2... Wi_lA/3 ~ c
WlW2"'" Wi--lWi~
23Wir bemerken, dass alle W6rter einer Linksableitung einer Grammatik in GreibachNormalform aus E~. E~v sein miissen.
10.4 Kontextfreie Grammatiken und Kellerautomaten
397
die Linksableitung yon W l . . . WiO[ in G m i t c t = -yfl. In dem letzten Ableitungsschritt wurde die Regel A ~ wit angewendet. Aus der K o n s t r u k t i o n yon M folgt d a n n (Fig. 10.6) (10.6)
(q0, 7R) E 5(q0, wi, A)
Durch die I n d u k t i o n s a n n a h m e und die A n w e n d u n g von (10.6) erhalten wir fiir ein beliebiges x E E~
(qo, Wl . . . Wi--lWiX, S)
~i~l
(qo, WiX, /3RA)
~M (qo, x,/3RTR).
Weil flR7R = (Tfl)R = c~R, ist d a m i t der Beweis abgeschlossen. Die Beweisrichtung von einer Berechnung von M zu einer Linksableitung von G ist analog und wir iiberlassen dies dem Leser. D
1w2 Iw lx
T
q0
9
WllW21 I A ~ wi'y
/
q0
I
Fig. 10.6 Der Berechnungsschritt des NPdA M, der der Anwendung der Regel A ~ wit in der Ableitung von G entspricht. Aufgabe 10.44. Erweitern Sie die Aussage yon Lemma 10.8 auch fiir kontextfreie Sprachen, die A beinhalten. Jetzt wollen wir zu jedem N P d A M eine zu M gquivalente kontextfreie G r a m m a t i k konstruieren. Zuerst b e m e r k e n wir, dass diese Aufgabe einfach ist, wenn M nur einen Z u s t a n d hat, also wenn M unabhS~ngig von seinen ZustS~nden arbeitet. Lemma textfrei.
10.9. Sei M ein NPclA mit nut einem Zustand. Dann ist L(M) kon-
10 Grammatiken und Chomsky-Hierarchie
398
Aufgabe 10.45. Beweisen Sie Lemma 10.9. [Hinweis: Die Konstruktion von G aus Mist nur eine Umkehrung der Konstruktion von M aus G in Lemma 10.8]. Was k6nnen wir aber bei allgemeinen nichtdeterministischen Kellerautomaten tun? {)berraschenderweise kSnnen wir zu jedem NPdA einen gquivalenten konstruieren, der nur einen Zustand besitzt. Die Idee ist dabei, die durch die Zustgnde gespeicherte Information in dem Keller zu speichern. Zum Beispiel statt einem obersten Symbol X in den Keller, wiirde man das Symbol (X, q) schreiben, wobei q der aktuelle Zustand ist. Das geht so weit gut in Berechnungsschritten, in denen man etwas in den Keller schreibt. Wenn man aber nur das oberste Kellersymbol 16scht, besteht die M6glichkeit nicht, den aktuellen Zustand in das oberste Symbol hineinzuschreiben (einzukodieren). Das folgende Lemma zeigt uns, wie man diese Schwierigkeit mit Hilfe des Nichtdeterminismus tiberwinden kann. L e m m a 10.10. Fiir jeden nichtdeterministischen Kellerautomat M existiert ein iiquivalenter nichtdeterministischer Kellerautomat M1, der nut einen Zustand hat. Beweis. Sei M = (Q, E, F, ~, q0, Z0) mit [Q[ > 1 ein Kellerautomat. Unsere Aufgabe ist jetzt, einen Kellerautomaten
]~/1 -- (Q1, }--],rl, (51, q~, Z~) mit Q1 - {q~} und L ( M ) - L(M1) zu konstruieren. Die einfachste Idee wgre, die Arbeitssymbole aus P 1 als Paare (p, A) E Q • P zu betrachten und auf diese Weise den aktuellen Zustand p C Q immer in dem obersten Kellersymbol zur Verfiigung zu haben. Diese Idee funktioniert aber nicht, weil bei der Simulation yon Berechnungsschritten, in denen das oberste Kellersymbol ohne Ersatz gel6scht wird, keine M6glichkeit besteht, den neuen aktuellen Zustand zu speichern (die Information fiber diesen Zustand zu bewahren). Deswegen wghlen wir Pl=0XPX0,
wobei die Bedeutung von A ' = (q,A,p) E r l ist, dass der Kellerautomat M das Symbol A nur bei einem /Ubergang vom Zustand q in den Zustand p 16schen dare Wenn A' das oberste Symbol des
10.4 Kontextfreie Grammatiken und Kellerautomaten
399
Kellers von M1 ist, ist q der aktuelle Zustand von M. Wie soll uns diese Idee mit einem zweiten gespeicherten Zustand helfen? Wir wollen immer darauf achten, dass der Kellerinhalt wie in Fig. 10.7 aussieht. q pl p2 p3 pi P/+I
A1 A2 A3 A4
pl p2 p3 p4
Ai+l pi+l A i + 2 P~+2
Fig. 10.7 Formal bedeutet dies, wenn ein Tripel (q, A, p) direkt fiber einem Tripel (r, B, s) im Keller liegt, so muss p - r sein. Wenn dies so ist und wir das L6schen yon A 1 in M (von (q, A, p) in M1) nur b e i m / J b e r g a n g von q nach p erlauben, dann enthglt das neue oberste Kellersymbol (r, B, s) - (p, B, s) den aktuellen neuen Zustand p.
Wie erreicht man, dass der Keller immer einen Inhalt wie in Fig. 10.7 enthiilt ? Dazu nutzt m a n den Nichtdeterminismus von M1. Wenn M aus dem Zustand r nach s iibergeht und dabei das oberste Kellersymbol A durch C D E ersetzt
(d.h. (~, ODE) e a(~, a, A) far ~in a e P~), d ~ bol 24
~r~t~t ~ 1 d ~ ob~r~t~ Sym-
(r,A,h) durch die drei Symbole
(~,c, D) 24Wenn (r, A, s) nicht das oberste Symbol ist, dann scheitert M1 in dieser Berechnung.
10 G r a m m a t i k e n und Chomsky-Hierarchie
400
(D,D,A) (A,E, h) fiir alle M6glichkeiten, D und A aus Q zu w/~hlen und damit zu raten, bei welchen {}berggngen diese Symbole gel6scht werden diirfen. Wichtig ist zu bemerken, dass der aktuelle Zustand s als erstes Element des obersten Tripels steht und dass die ehemalige Position yon den tiberschriebenen (r, A, h) nur beim {)bergang in denselben Zustand h gelSscht werden kann. Weft unter (r, A, h)irgendein (h,., .)liegt, liegt jetzt (h,., .) unter (A, E, h) und damit ist die Konsistenz gewghrleistet. Jetzt setzen wir dieses Konzept in die formale Konstruktion von/141 urn.
Q1 z F1
u Q • 2 1 5 Q, (q0, z0, q)) I q e Q},
--
(51(q~,/~, Z~) -(51(ql, a, (p, A, h)) -
{(ql
((8~1~82)(82~2~83)...
(Sm~]Bm~~))R) I
ftir alle (s, ( ~ 1 ~ 2 . . . ~m) -R) e ~5(r, a, A) und alle s2, s 3 , . . . , s,~ E Q} u { (ql, A) I (h, A) e ~(r, a, A)} fiir alle a e E U {A}, A e F, r, s, h e Q (siehe Fig. 10.8 und Fig. 10.9).
D
Lemmata 10.8, 10.9 und 10.10 ergeben zusammen das folgende Resultat.
Satz 10.5. Die nichtdeterministischen Kellerautomaten erkennen genau die Klasse von kontextfreien Sprachen (d.h. die Formalismen yon nichtdeterministischen Kellerautomaten und kontextfreien Grammatiken sind beziiglich ihrer Beschreibungsstiirke iiquivalent).
L(M)
A u f g a b e 1 0 . 4 6 . B e t r a c h t e n Sie den N P d A M mit = {0~1 ~ [ n c IN} aus Beispiel 10.8. W e n d e n Sie die K o n s t r u k t i o n aus L e m m a 10.10 an, um einen gquivalenten N P d A M mit nur einem Z u s t a n d zu konstruieren.
104
Kontextfreie G r a m m a t i k e n u n d K e l l e r a u t o m a t e n
I
lalbl
9
T
. .
401
lalbl
...
I
U
r
A
B1
D
B2
Bm
D
Fig. 1 0 8
lalb
lalbl
I
ql
q~ t ~
Fig. 10.9
r
A
h
s
B1
s2
h
D
u
s2
B2
s3
8m-- 1
J~m-- 1
8m
s.~
B.~
h
h
D
u
402
10.5
10 Grammatiken und Chomsky-Hierarchie
Allgemeine Grammatiken und Turingmaschinen
Grammatiken ohne Einschr~nkungen sind ein starker Generierungsmechanismus. Die Zielsetzung dieses Abschnittes ist zu zeigen, dass allgemeine Grammatiken der stgrkste Formalismus zur Sprachgenerierung sind. Wir zeigen dies durch den Beweis ihrer Aquivalenz zu Turingmaschinen, was gleichzeitig die Church'sche These untermauert. Um die Intuition fiir die StS~rke der allgemeinen Grammatiken zu gewinnen, starten wir 5~hnlich wie bei Turingmaschinen und konstruieren eine Grammatik fiir die Sprache L-
{0 2n I ~'~ ~ IN},
Sei G = (EN, ET, P, S) mit ET = {0} und EN = {A, B, C, D, S}. Wir beginnen mit den Startregeln S ~
C A O D und S ~ 0,
die uns ermSglichen, das Wort 0 abzuleiten und die Anfangsform C A O D mit einer 0 zu erzeugen. Die nEchste Idee ist, die Anzahl Nullen zu verdoppeln, indem A in der bisher abgeleiteten Form von links nach rechts "wandert" und jede 0 gegen zwei Nullen austauscht. AO ~
OOA, A D ~
B D.
Ahnlich kann B yon rechts nach links wandern und die Anzahl der Nullen wieder verdoppeln. OB ~
BOO, C B ~
CA.
Am Rande der bisher abgeleiteten Form kann man sich entscheiden, die Ableitung zu beenden, indem man alle Nichtterminalsymbole 15scht. Am linken Rand erreicht man es durch die Regel CB ~
A, D ~
A.
Wenn man sich am rechten Rand entscheidet, die Ableitung zu beenden, dann kann man folgende Regel benutzen: AD~A,
C~A.
10.5 Allgemeine Grammatiken und Turingmaschinen
403
Aufgabe 10.47. Die Regeln D ~ A und C ~ A in der oben beschriebenen Grammatik kann man unabhgmgig davon anwenden, wo sich A oder B in der bisher abgeleiteten Form befinden. Warum gehen wit dabei kein Risiko ein, dass eine unerwfinschte Anzahl von Symbolen 0 generiert wird? Aufgabe 10.48. Konstruieren Sie eine Grammatik fiir folgende Sprachen:
(i) (ii) (iii) (iv) (v)
{anbnc n [ n E IN},
{0nl ~2 [n C I N - {0}}, {03n [n C IN},
{aibJck I k - - i . j , k,i,j 9 {0P p C PRIM}
Die Konstruktion der G r a m m a t i k G deutet auf die Ahnlichkeit zu Turingmaschinen hin. Ahnlich wie der Zustand in einer Konfiguration fiber das Band wandert, bewegen sich die Nichtterminale A und B fiber die bisher abgeleitete Form. Also besteht die MSglichkeit, durch Nichtterminale die ZustS~nde zu reprS~sentieren und die Arbeit einer Turingmaschine nachzuahmen. Satz 10.6.
s
=
s
d.h. die Menge der rekursiv aufziihlbaren Sprachen ist genau die gleiche Menge wie die Menge aller Sprachen, die dutch Grammatiken generiert werden kSnnen. Beweis. Wir fiihren den Beweis, indem wir nacheinander s Z2Rz C/20 zeigen.
c_ 12RE und
(i) ~--'0 ~ ~-,RE. Sei G eine beliebige G r a m m a t i k . Wir sollen eine T M M konstruieren, so class L(G) = L(M) gilt. Weil die Idee sehr anschaulich ist, verzichten wir auf die formale Konstruktion yon M. Ohne Einschr~nkung der Allgemeinheit b e t r a c h t e n wir M als eine nichtdeterministische 1-Band-TM. Die 1-Band-TM M soll fiir jede gegebene Eingabe w E L auf dem E i n g a b e b a n d akzeptieren. 25 Dies schafft sie, indem sie eine Ableitung aus S in G auf dem A r b e i t s b a n d n a c h a h m t und das Resultat mit der Eingabe vergleicht. Genauer kann dies wie folgt ablaufen. M schreibt S auf das Arbeitsband. D a n n geht M wiederholt wie folgt vor. 1. M wS~hlt nichtdeterministisch eine nichtleere Position i auf dem A r b e i t s b a n d und eine Regel c~ ---, ~ aus G. 26 25Fiir eine Eingabe w ~ L kann M verwerfen oder unendlich lange arbeiten. 26M kann die Regel c~ ~ ~ in seinem Zustand speichern.
404
10 Grammatiken und Chomsky-Hierarchie 2. M fiberpriift, ob c~ auf dem Band rechts v o n d e r / - t e n Position liegt. Wenn nicht, endet M in qreject. Wenn ja, ersetzt 2r M das Teilwort c~ durch/3. 3. M iiberprtift, ob der Inhalt des Arbeitsbandes ein Terminalwort ist. Falls nein, setzt M mit Schritt 1 fort. Falls ja, vergleicht M das Eingabewort mit dem abgeleiteten Wort auf dem Arbeitsband. Falls die W6rter gleich sind, akzeptiert M die Eingabe. Sonst verwirft M die Eingabe.
(ii) ERE C_ /20. Sei M = ((2, E, F, (~,qo, qaccept,qreject) eine TM. Eine Grammatik G kann M so simulieren, dass G zuerst "doppelspurig" ein beliebiges Wort erzeugt. Die obere Spur beinhaltet das Wort, die untere Spur die Startkonfiguration von M auf diesem Wort. Dieses kann durch folgende Regel fiir alle a E E bewirkt werden.
s--,(o) s--,(o)A (a)A, (a), qoa
~
qoa
(f)c,
Somit erhalten wir die Ableitung
S ~c (qoa~a~)(222)(233)"'" ka~_~(a~-~)(~~) (BB)J :r
fiir ein beliebiges Wort ala2...a~ (ai E E fiir i = 1 , . . . , n ) und ein beliebiges j E IN. Dabei ist j so eine nichtdeterministisch geratene Zahl, dass die TM M bei der Arbeit auf der Eingabe a l, a 2 . . . a~ genau n + j Zellen des Bandes benutzt. Der grofie Buchstabe B symbolisiert eine leere Zelle des Bandes. Danach simuliert G auf der unteren Spur die Berechnung der TM M auf ala2.., an. Die Simulation kann man durch folgende Regeln realisieren: Fiir alle a, b E E U {B}, p, q E Q, X, Y, Z E F U {B}, so dass (p, Y, R) E ~(q, X), nehmen wir die Regel
2rWenn ]c~]r ]/3], erfordert dies natiirlich die Verschiebung des Suffixes des Arbeitsbandes rechts von a.
405
10.6 Zusammenfassung
Ftir alle (p, Y, L) E 6(q,
X)nehmen wir
Far m ~ (p,Y, 5:) ~ ~(q,x ) ~ h m ~
(