Theoretische Informatik : formale Sprachen, Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Kryptographie [3., überarb. und erw. Aufl]
 3835100432, 9783835100435 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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

_
>

m-

6 4 . log 2 m . (log 2 log 2 m ) 2

k 64. log 2 k . (log 2log 2 k) 2"

A u f g a b e 2.32. Betrachte Bin(Flog 2 m l ) . B i n ( m ) . B i n ( n / p ~ ) als die Komprimierung yon n - p.~ (n/p.~). Welche untere Schranke auf Prim (k) wiirde die Anwendung dieser Komprimierung im Beweis des Satzes 2.3 liefern? A u f g a b e 2.33. Was fitr ein Resultat wiJrde die Darstellung

Bin (F,og2F,og2F,og2ml I l)Bin( ['og2 ['og2 roll)Bin( [,og2ml )Bin(m)Bin(n/p.~)

2.5 Zusammenfassung und Ausblick von n = p , ~ 9 ( n / p ~ )

71

im Beweis yon Satz 2.3 bringen?

A u f g a b e 2.34.* Was ist die best mSgliche untere Schranke auf P r i m ( k ) , die man mit der Beweismethode des Satzes 2.3 bekommen kann? A u f g a b e 2.35.* Sei p l , p 2 , p 3 , . . , die aufsteigende Folge aller Primzahlen. Zeigen Sie mit Hilfe des Primzahlsatzes, dass eine Konstante c existiert, so dass ftir alle m c I N - {0}

gilt.

2.5

Zusammenfassung und Ausblick

In diesem Kapitel haben wir die Grundbegriffe Alphabet, Wort und Sprache eingefiihrt. Ein Alphabet ist eine beliebige nichtleere endliche Menge von Symbolen genau wie bei der SchriR von natiirlichen Sprachen. Der Begriff Wort fiber einem Alphabet entspricht einem beliebigen Text, der aus den Symbolen des Alphabets besteht. Jede Menge von WSrtern fiber dem gleichen Alphabet nennt man Sprache. Diese Grundbegriffe benutzt man in allen Bereichen der Datenverarbeitung. Es fgngt an bei der Spezifikation algorithmischer Aufgaben, wo die Eingaben und Ausgaben immer als WSrter dargestellt werden. Ein Entscheidungsproblem ist im Prinzip durch eine Sprache L spezifiziert. Die Aufgabe ist es zu entscheiden, ob ein gegebenes Wort in L ist oder nicht. Ein Optimierungsproblem hat eine kompliziertere Struktur. Ein Eingabewort kodiert eine Menge yon Anforderungen und die Kosten der Objekte (zulgssiger LSsungen), die die Anforderungen erfiillen. Diese Menge von Anforderungen erfiillen meistens sehr viele LSsungen, von denen man eine der optimalen beziiglich der Optimierungskriterien als Ausgabe berechnen soll. Eine verniinftige M6glichkeit, den Informationsgehalt yon W6rtern fiber {0, 1} zu messen, ist die Kolmogorov-KomplexitS~t. Die Kolmogorov-KomplexitS~t eines Wortes x ist die bingre LS~nge des kiirzesten Pascal-Programms, das das Wort x generiert. Ein Programm, das x generiert, kann man als eine komprimierte Darstellung yon x betrachten. Die Kolmogorov-KomplexittR yon x ist also die Lgnge der ktirzesten Komprimierung yon x. Die W6rter, die man nicht komprimieren kann, kann man als zuf/~llig betrachten. Es gibt unendlich viele zufS~llige WSrter fiber {0, 1}, fiir jede LS~nge mindestens eins. Die KolmogorovKomplexitgt hilR nicht nur, den Informationsgehalt von WSrtern und deren

2 Alphabete, WSrter, Sprachen und Aufgaben

72

Grad der ZufS~lligkeit zu messen, sondern man kann sie als eine effiziente Methode zum Beweisen neuer Resultate verwenden. Das Studium yon Alphabeten, WSrtern, Sprachen und deren Darstellung ist das Thema der Theorie der Formalen Sprachen. Diese Theorie ist eine der gltesten Gebiete der Informatik. Weil in der Informatik die zentralen Objekte wie Informationen, Programme, Aussagen (SS~tze), Nachrichten, Speicherinhalte, Beweise und Berechnungen als WSrter dargestellt sind, liefert die Theorie der Formalen Sprachen die Bausteine fiir viele andere Grundgebiete der Informatik wie Berechenbarkeit, Komplexitgtstheorie, Algorithmik, Kryptographie, Compilerbau u.s.w. In diesem Buch haben wir uns auf minimale Kenntnisse der Theorie der Formalen Sprachen, die hinreichend fiir die ngchsten Kapitel sind, beschrgnkt. Ein Grund dafiir ist auch, dass dem Interessierten fiir die Theorie der Formalen Sprachen hervorragende Lehrbiicher zur Verfiigung stehen, und wir keinen Grund dafiir sehen, das ,,hundertste" Buch zu diesem Thema zu liefern. Wgrmstens empfehlen wir das erfolgreichste klassische Lehrbuch der Theoretischen Informatik, ,,Introduction to A u t o m a t a Theory, Languages, and Computation" yon Hopcroft und Ullman [HU 79] und seine erweiterte neue Version [HMU 01]. Ein anderes schSn geschriebenes klassisches Buch ist [Sal 73] yon Salomaa. Von den neuesten deutschen Lehrbiichern k6nnen wir z.B. Erk und Priese [EP 00] und Wegener [Weg 05] empfehlen. Die Idee, die Kolmogorov-KomplexitS~t zur Messung des Informationsgehaltes von W6rtern einzufiihren, entstand in den 60er Jahren unabhgngig bei Kolmogorov.[Kol 65, Kol 68], und Chaitin [Cha 66, Cha 69, Cha 74]. Den umfassendsten Uberblick fiber dieses Thema bietet das Buch von Li und Vitgnyi [LV 93], das leider ftir Anfgnger sehr schwer lesbar ist. Anschauliche Beispiele ihrer Anwendung kann man bei SchSning [Sch 95] finden.

Kontrollaufgaben 1. Sei E - {0, 1, 2, 3} ein Alphabet. Seien h, 1 und n positive Zahlen, k + 1 _< n. Wie viele WSrter fiber E der Lgnge n mit k Symbolen 1 und 1 Symbolen 0 gibt es? 2. Definiere die Konkatenation yon zwei Sprachen und den Kleene'schen Stern einer Sprache. 3. Seien E1 und E2 zwei Alphabete. Definieren Sie den Begriff des Homomorphismus yon E1 nach E2. Warum ist jeder Homomorphismus h durch h(x) ffir jedes x E E1 vollsttindig determiniert? 4. Seien L1, L2, L3 und L4 beliebige Sprachen fiber einem Alphabet E. Beweisen Sie oder widerlegen Sie die folgenden Behauptungen. (i) (El U L2)" (L3 U L4) -- ElL3 U LIL4 U L2L3 U L2L4 ElL3 n ElL4 n L2L3 n L2L4

(ii) (L1 n L2). (L3 n L4)

-

-

(iii) (L1 U L2). (L3 n L4) -- (L1L3 n L1L4) U (L2L3 n L2L4)

2.5 Zusammenfassung und Ausblick

73

(iv) (L1 0 L2). (L3 V/L4) = LI(L3 gl L4) U L2(L3 gl L4) Wenn eine Gleichung nicht fiir alle Sprachen gelten sollte, iiberprtifen Sie ob mindestens eine Inklusion gilt. 5. Gilt die Gleichung {a, b}* = {a{b}*}*. {b{a}*}*? 6. 7.

8. 9. 10.

11. 12. 13.

14. 15.

Beschreiben Sie informell die Bedeutung des Begriffes ,,Algorithmus". Definieren Sie folgende algorithmische Grundaufgabenstellungen: Entscheidungsproblem, Optimierungsproblem und Aufzghlungsproblem. Erklgren Sie, was es bedeutet, diese Probleme zu 16sen. Wie hgngt die Existenz eines Algorithmus ffir ein Entscheidungsproblem (E, L) mit der Existenz eines Aufz/~hlungsalgorithmus ftir L zusammen? Suchen Sie sich ein Optimierungsproblem aus und geben Sie seine vollstgndige formale Beschreibung an. Definieren Sie die Kolmogorov-Komplexit~t von WSrtern tiber {0, 1}* und erkl~ren Sie, warum man sich gerade ftir diese Art der Messung des Informationsgehaltes von W6rtern geeinigt hat. Wie stark h/~ngt die Definition der Kolmogorov-Komplexit/~t von der Wahl der Programmiersprache ab? Wie definiert man die Kolmogorov-Komplexit/~t von natfirlichen Zahlen? Sei E = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Wie wiirden Sie die Kolmogorov-Komplexit/~t von WSrtern fiber E definieren? Betraehten Sie mehrere M6glichkeiten und diskutieren Sie ihre Vor- und Naehteile. Warum ist die Kolmogorov-Komplexit/~t eines Wortes x nie wesentlich grSfier als Ixl und warum ist dies erwiinseht? Bei der Bestimmung einer oberen Schranke ffir die Kolmogorov-Komplexit~t K(x) eines Wortes x geht man meistens so vor, dass ein P r o g r a m m Px zur Generierung von x entwiekelt wird um dann die bin/~re L/~nge des Programms zu messen. H/~ngt diese Messung von der Gr6t3e des yon Px w/~hrend der Generierung von x benutzten Speichers ab? Gibt es Unterschiede in der Messung der bin~ren L/~nge der folgenden zwei Programme, die das gleiehe Wort O n3 generieren?

/)nl:

begin ]~ :-- n; ]~ := ]~ x ]~ x ]~; f o r Z : = 1 to iV/do

write(O); end

Pn2:

begin .M-:--n

x n x n;

f o r I : = 1 to M d o write(O); end

74 16.

17. 18.

2 Alphabete, W6rter, Sprachen und Aufgaben Geben Sie eine unendliche Folge von W6rtern yl, y2, Y3,... fiber ~bool mit folgenden Eigenschaften an: (i) lyil < lyi+ll ffir alle i C I N - {0}, und (ii) es existiert eine Konstante c, so dass fiir alle i E I N - {0} gilt. Wie sieht es es mit der Verteilung der W6rter aus {0, 1} ~ bezfiglich deren KolmogorovKomplexitgt aus? Wieviele wenig komprimierbare W6rter gibt es? Erkl/~ren Sie ohne die formalen Beweise zu wiederholen, warum die Annahme der Existenz von zu wenigen Primzahlen (z.B. Prim (k)

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 I[0,111. Jede reelle Zahl aus [0, 1] kann man binS~r wie folgt darstellen. Durch b = O . b l b 2 b 3 . . . mit bi E Ebod fiir i = 1, 2, 3 , . . . wird die Zahl (ND -

i=1

dargestellt. Wir benutzen diese Darstellung, um folgende Abbildung f aus [0, 1] in 79((Ebool) *) zu definieren. Fiir jede bin~tre Darstellung a = O . a l a 2 a 3 . . . einer reellen Zahl aus [0, 1] ist f (a) -

{a~, a2a3, a 4 a s a 6 , . . . , a ( ~ ) + ~ a ( ~ ) + 2 . . . a(n+~), . . .}.

Offensichtlich ist f ( a ) eine Sprache fiber Ebool, die genau ein Wort der LS~nge n fiir alle n E IN - {0} enthglt. Deswegen fiihrt jeder Unterschied in einer Ziffer zweier bingrer Darstellungen b und c zu f ( b ) # f ( c ) . Daher ist f injektiv und 7)((Ebool) *) nicht abzS~hlbar. D 6Man bemerke, dass 1.000 und 0.99wzwei unterschiedliche Darstellungen der gleichen Zahl 1 sind.

5.2 Die Methode

171

der Diagonalisierung

K o r o l l a r 5.1. IKodTM[< Z)((~boo~)*)[ und somit existieren unendlich vide nicht rekursiv abzShlbare Sprachen iiber 2bool. A u f g a b e 5.12. Beweisen Sie [0, 1]l -

P((Ebool)*) 9

Wir benutzen jetzt die Diagonalisierungsmethode, um eine konkrete nicht rekursiv abz/~hlbare Sprache zu konstruieren. Sei Wl, w2, w3, ... die kanonische Ordnung aller WSrter fiber Eboo~, und sei M1, M2, M3, ... die Folge aller Turingmaschinen. Wir definieren eine unendliche Boole'sche Matrix A

=

(Fig. 5.6) mit

[dij]i,j:l,...,oo

dij-

1r

Mi akzeptiert

Wj.

Damit bestimmt die i-te Zeile dildi2di3.., der Matrix A die Sprache

L(Mi) - { w j [ d i j - 1 fiir alle j E IN - {0}}.

Wl

M1

d~

W2

W3

999

Wi

d12

d13

9..

dli

d23

9..

d2~

di3

...

M2

d21

M3

d31

[d22[

d32

Mi

dil

di2

i

Fig. 5.6

i

I

Analog zum Beweis des Satzes 5.3, in dem wir eine reelle Zahl konstruieren, die nicht in der Nummerierung in Fig. 5.5 enthalten ist, konstruieren wir jetzt eine Sprache Ldiag, D i a g o n a l s p r a c h e genannt, die keiner der Sprachen L(Mi) entspricht. Wir definieren

Ldiag

{W E (}--]bool)* [ W - - W i fiir ein i E IN - {0} und Mi akzeptiert wi nicht} {w E (Ebool)* [ w -

S a t z 5.5.

wi ffir ein i E I N - {0} und d i i - 0}.

Ldiag ~ s

Beweis. Wir beweisen Ldiag ~ s indirekt. Sei Ldiag C s Dann ist Ldiag = L ( M ) fiir eine TM M. Weil M eine der Turingmaschinen in der Nummerierung

172

5 Berechenbarkeit

aller T u r i n g m a s c h i n e n sein muss, existiert ein i E I N - {0}, so dass M = Mi. Aber Ldiag kann nicht gleich L(Mi) sein, weil

Wi E Ldiag r

dii = 0 r wi ~ L(Mi).

Aufgabe 5.13. Betrachte die Sprache

L2diag : {W C (~bool)*

I w = w2i fiir ein i C I N - {0} und Mi akzeptiert w2i nicht (di,2i = 0)}.

Beweisen Sie, dass L2aiag ~ LRE. Aufgabe 5.14. Sei far jedes k E IN

Lk,diag = {W C (~bool)*

I w = wi+k fiir ein i C I N - {0} und M~ akzeptiert w~+k nicht (d~,~+k = 0)}.

Beweisen Sie, dass Lk,diag ~ LRE fiir jedes k E ]hi.

5.3

Die M e t h o d e der Reduktion

Die M e t h o d e der R e d u k t i o n ist die am hgufigsten b e n u t z t e M e t h o d e zur Klassifikation der E n t s c h e i d u n g s p r o b l e m e bezfiglich der algorithmischen L6sbarkeit. Die Idee ist sehr einfach. Sei A ein Problem, ffir das wir beweisen wollen, dass es nicht algorithmisch 16sbar ist. W e n n wit jetzt ein P r o b l e m B finden, von dem schon b e k a n n t ist, dass es nicht algorithmisch 16sbar ist, aber die algorithmische L6sbarkeit yon A die algorithmische LSsbarkeit von B implizieren wiirde, d a n n k6nnen wir schliefien, dass A nicht algorithmisch 16sbar ist. Dieses nennen wir eine R e d u k t i o n von B auf A. D e f i n i t i o n 5.3. Seien L1 G E~ und L2 G E~ zwei Sprachen. Wit sagen, dass L1 a u f L2 r e k u r s i v r e d u z i e r b a r ist, L1 ~ R L2, falls L2 E s

~ L1 E s

Die Bezeichnung L1 ~R L2

5.3 Die Methode der Reduktion

173

entspricht der intuitiven Bedeutung, dass

,,L2 beziiglich der algorithmischen LSsbarkeit mindestens so schwer wie L1 ist ", denn wenn L2 algorithmisch 15sbar wS~re (d.h. L2 = L(A) fiir einen Algorithmus A), dann wSze auch L1 algorithmisch 15sbar (d.h. L1 = L(B) fiir einen Algorithmus B). Wir kennen bereits die Diagonalsprache Ldiag, yon der wir wissen, dass sie nicht in Z2RE und somit auch nicht in Z2a liegt. Wir brauchen jetzt konkrete Techniken fiir die Beweise von Resultaten der Art L1 _ ~(lyl), dann bricht A die Simulation der Berechnung von M auf y in dem augenblick ab, in dem M mehr als ~(lyl) Speicherzellen auf einem Arbeitsband nutzen m6chte. Nach der Unterbrechung der Simulation geht A in den Zustand qreject fiber, also y ~ L(A). D Eine zu Lemma 6.4 analoge Behauptung ffir die ZeitkomplexitS~t gibt das folgende Lemma.

6.3 Komplexitgtsklassen und die Klasse P

219

L e m m a 6.5. Sei t : IN ~ IN eine zeitkonstruierbare Funktion. Sei M eine MTM mit TimeM(x) _< t(izl) fiir alle x E L ( M ) . Dann existiert ein MTM A mit L(A) = L ( M ) und TimeA(n) E O(t(n)). Aufgabe 6.12. Beweisen Sie Lemma 6.5.

Die obigen Lemmata zeigen, dass es fiir die Definition der Komplexitgtsklassen SPACE(s) und TIME(t) fiir eine platzkonstruierbare Funktion s und eine zeitkonstruierbare Funkion t unwesentlich ist, ob man Space M und T i m e r einer TM M als SpaceM(n) TimeM(n)

=

max{SpaceM(X) l x E E ~} und

=

m a x { T i m e M ( x ) l x E E ~}

oder als SpaceM(n ) = TimeM(n) =

max{SpaceM(X) l x E L ( M ) u n d max{TimeM(x) lx E L(M)und

= ~} = ~}

definiert. Das ngchste Resultat zeigt eine wichtige Relation zwischen Speicherplatzkomplexitgt und Zeitkomplexitgt. Satz 6.2. Fiir jede platzkonstruierbare Funktion s mit s(n) >_ log 2 n gilt SPACE(s(n)) c_ LJ TIME(c~(~))" cEIN

Beweis. Sei L E SPACE(s(n)). Nach Lemma 6.2 existiert eine 1-Band-TM V = (Q, ~, 1-', (~, q0, qaccept, qreject), SO dass L = L(_/~f) u n d Sp&eeM(Tt ) ~ s(7t) gelten und M immer hglt.

Fiir jede Konfiguration C = (q, w , i , x , j ) von M definieren wir die i n n e r e K o n f i g u r a t i o n v o n C als In(C) : (q, i, x, j). Eine innere Konfiguration enthSJt nur die Teile der Konfiguration, die sich wghrend einer Berechnung 5mdern k6nnen. Wir haben also den Inhalt w des Eingabebandes ausgelassen, der wghrend der ganzen Berechnung unvergndert

220

6 Komplexitgtstheorie

bleibt. Unsere Idee ist jetzt zu zeigen, dass es keinen Sinn macht, 15~nger als die Anzahl aller m6glichen inneren Konfigurationen zu arbeiten, weil eine Berechnung in eine Endlosschleife gerS~t, wenn sie auf einem Wort w zwei gleiche innere Konfigurationen enthS~lt. Betrachten wir jetzt die Mengen InKonf(n) aller m6glichen inneren Konfigurationen (q, i, x, j) der l-Band-TM M auf allen Eingabew6rtern der LS~nge n. Dann muss 0 _< i _< n + 1, Izl_ SpaceM(rt) _< s(rt) und 0 _< j _< SpaceM(rt ) _< s(n) gelten. Daher

IInKonfM(n)[

fiir c -

101 + 2)Irl __ (m x{2, IQI, Irl}) 4.s(~) < cS(~)
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 _

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 ~

(