Sie sind auf Seite 1von 415

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 Darstel-
lung 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 Informa-
tik (-Methoden) verschaffen wollen; sie dienen aber auch in Wirtschaft, Industrie und Ver-
waltung tätigen Informatikern und Informatikerinnen zur Fortbildung in praxisrelevanten
Fragestellungen ihres Faches.
Juraj Hromkovič

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 <http://dnb.d-nb.de> abrufbar.

Prof. Dr. Juraj Hromkovič


Geboren 1958 in Bratislava, Slowakei. Studium der Mathematischen Informatik an der Komenský Uni-
versität, Bratislava. Promotion (1986) und Habilitation (1989) in Informatik an der Komenský Univer-
sitä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“ erschie-
nen.

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 Ver-
lags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzun-
gen, 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,
k.
mit einer Philosophie, r"
die nicht zu lachen versteht, J
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 mathemati-
schen Aspekte der Informatik hervor. Gerade die mathematische Prggung ist
oft ein Grund daffir, dass die Theoretische Informatik fiir zu schwer gehal-
ten 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 Studieren-
den 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 be-
schr~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 hal-
biert 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 wesent-
lich 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 eingeschla-
gen 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 Beweisfiihrun-
gen und Begriindungen. Didaktisch geht das Buch immer langsam yore Ein-
fachen zum Komplizierten vor. Wir versuchen, die Anzahl der Begriffe und
Definitionen zu minimieren, auch wenn wir dadurch auf die PrS~sentation ei-
niger 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 ins-
besondere 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 zahl-
reiche VerbesserungsvorschlS~ge. Herzlicher Dank geht an Dietmar Berwanger,
Volker Claus, Georg Schnitger, Erich Valkema und Peter Widmayer fiir Be-
merkungen und anregende Diskussionen. Alexander Ferrein und Manuel Wahle
danke ich fiir die sorgfS~ltige Einbettung des Manuskripts in I_4TEX. Mein tief-
ster 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 _ ~._Jtttt tt

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

Vorwort zur zweiten Auflage

Es freut mich sehr, dass diese alternative Einfiihrung in die Theoretische Infor-
matik 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 Grund-
lagen der Theoretischen Informatik sprengt. Deshalb habe ich befiirchtet, dass
es viele Kollegen als einen Verstofi gegen iiberwiegend akzeptierte Darstellun-
g 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 M6glich-
keit 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 Algorith-
men als einen wichtigen Spezialfall der Anwendung der Methode der hS~ufigen
Zeugen prS~sentiert. Die Methode der Fingerabdr/icke wurde an dem randomi-
sierten Aquivalenztest fiir zwei Polynome illustriert.
Im Kapitel Kommunikation und Kryptographie kamen zwei neue Abschnitte
dazu. Der Abschnitt Digitale Unterschriften zeigt eine sehr wichtige kommer-
zielle 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~I-


schungsrisiko zu leisten. Damit ist das kryptographische Konzept der 6ffent-
lichen Schliissel eine Basis, ohne die man sich heute den sich dynamisch ent-
wickelnden 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 ge-
stellten Probleme im Bereich der Kommunikation in Netzen am Beispiel eines
eleganten Netzentwurfes zu illustrieren.
Einige Kollegen haben sich gewiinscht, in diesem Lehrmaterial auch den Be-
weis 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 inter-
essierten Studierenden die M6glichkeit zu geben, diese grunds~Rzlich wichtige
Beweistechnik kennenzulernen. Da ich diesen Beweis nun einbetten wollte, ha-
be ich versucht, durch eine langsame Entwicklung der Beweisidee den Schwie-
rigkeitsgrad 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 die-
hen 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 gra-
phischen Darstellungen zu den Beweisen des Satzes von Rice und der S~ttze
fiber die Anwendung der Kolmogorov-KomplexitS~t in der Theorie der Bere-
chenbarkeit. 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 genom-
men 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 klassi-
schen 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 Spra-
chen, die von zentralem Interesse fiir den Compilerbau sind, und auf der Aqui-
valenz zwischen Grammatiken und Turingmaschinen. Das Kapitel fiber Gram-
matiken 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 Turing-
maschinen 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 wi-
dergeben 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 hervorzuhe-


ben und dem Studierenden eine Selbstkontrolle zu erm6glichen, haben wir die
Zusammenfassungen am Ende der Kapitel um eine Liste yon Kontrollfragen er-
weitert. 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 Korrek-
turen und verbesserte ErklSxungen eingearbeitet. In diesem Zusammenhang
m6chte ich reich bei Christoph Zimmerli und Laurent Zimmerli fiir ausfiihrli-
ches Korrekturlesen der zweiten Auflage herzlich bedanken. Bester Dank geht
an Hans-Joachim B6ckenhauer und Julian Tschannen fiir sorgf~tltige Korrektu-
ren 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 . . . . . . . . . . . . . . . . 33

2.3 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 . . . . . . . . . . 76

3.3 Simulationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.4 Beweise der Nichtexistenz . . . . . . . . . . . . . . . . . . . . 99

3.5 Nichtdeterminismus . . . . . . . . . . . . . . . . . . . . . . . 108

3.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 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 ...... 137

4.4 Nichtdeterministische Turingmaschinen . . . . . . . . . . . . . 148

4.5 Kodierung von Turingmaschinen . . . . . . . . . . . . . . . . 154

4.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . 162

5.3 Die M e t h o d e d e r R e d u k t i o n . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . 208

6.3 Komplexits u n d die K l a s s e P . . . . . . . . . . . . . 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

Algorithmik fiir schwere Probleme 262


7.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

7.2 Pseudopolynomielle Algorithmen . . . . . . . . . . . . . . . . 264

7.3 Approximationsalgorithmen . . . . . . . . . . . . . . . . . . . 271

7.4 Lokale Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

7.5 Simulated Annealing . . . . . . . . . . . . . . . . . . . . . . . 285

7.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 289


Inhalt 15

8 Randomisierung 292
8.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.2 Elementare Wahrscheinlichkeitstheorie . . . . . . . . . . . . . 294

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 ......... 298


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

8.5 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 . . . . . . . . . . . . . . . . . . . . 319


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 . . . . . . . . . . . . . . . . . 350
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 ........ 402


10.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 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 tggli-
chen Praxis sieht. Wichtig ist dabei, dass sich mit tieferem Verst~ndnis der
Natur der Informatik auch unsere Vorstellung fiber die Informatik weiterent-
wickelt. 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 Ein-
leitung bieten. I
Versuchen wir zuerst die Frage ,, Was ist Informatik?" zu b e a n t w o r t e n . Ei-
ne 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 beschrei-
ben.

,,Informatik ist die Wissenschaft von der algorithmischen Darstel-


lung, Verarbeitung, Speicherung und Obertragung von Informati-
on.

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 lest-
legt, und den Umgang mit diesen als Ziel der Untersuchung formuliert, sagt
sie nicht genug fiber die Natur der Informatik und fiber die in der Informa-
tik 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), Gel-
steswissenschaft, Naturwissenschaft oder Ingenieurwissenschaft ?"

Die Antwort auf diese Frage klgrt nicht nur das Objekt der Untersuchung, son-
dern sie legt auch die Methodik und die Beitrgge der Informatik fest. Die Ant-
wort ist, dass die Informatik keiner dieser Wissenschaftsgruppen vollstS~ndig
zugeordnet werden kann. Die Informatik besitzt sowohl Aspekte einer Metawis-
senschaft, 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, Wahr-


heit, Unwahrheit, Komplexitiit, Sprache, Beweis, Wissen, Kommu-
nikation, Approximation, Algorithmus, Simulation usw.

und tr/~gt zu ihrem Verst/~ndnis bei. Mehreren dieser Kategorien hat die Infor-
matik einen neuen Inhalt und eine neue Bedeutung gegeben.
Eine Naturwissenschaft (ira Unterschied zur Philosophie und Mathematik) stu-
diert konkrete nat/irliche Objekte und Prozesse, bestimmt die Grenze zwischen
M6glichem und Unm6glichem und erforscht die quantitativen Gesetze der Na-
turprozesse. Sie modelliert, analysiert und iiberpriift die Glaubwiirdigkeit er-
zeugter Modelle durch Experimente. Alle diese Aspekte einer Naturwissen-
schaft finden sich auch in der Informatik. Die Objekte sind Information und
Algorithmen (Programme, Rechner) und die Prozesse sind die physikalisch exi-
stierenden 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 zu-
kiinftiger Rechner) nicht 15sen kann ?

Die Bemiihungen, diese Frage zu beantworten, f~hrten zur Grtindung der In-
formatik als eigenstgndige Wissenschaft. Die Antwort auf diese Frage ist posi-
tiv, 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 klassifi-
zieren, ob f~r sie ein Programm als algorithmische L6sung existiert oder nicht,
stellt man sich folgende naturwissenschaftliche Frage. Wie schwer sind konkre-
te 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 Einga-
ben 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-naturwis-
senschaRlichen 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 determi-
nistisch. 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 Pro-
gramm hat daher mehrere unterschiedliche Berechnungen fiir eine Eingabe.
Im Unterschied zu deterministischen Programmen, die immer eine zuverlgssi-
ge 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 An-
teil der Berechnungen mit falschem Resultat klein zu halten.

Auf den ersten Blick sieht ein zufallsgesteuertes Programm unzuverlgssig ge-
geniiber 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 heu-
tigen 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 zufallsgesteu-
erter Algorithmus, der die Aufgabe in ein paar Minuten auf einem gew6hnli-
chen Personalcomputer mit einer Fehlerwahrscheinlichkeit von 1 durch Tau-
send Milliarden 16st. Kann man ein solches Programm ftir unzuverlgssig hal-
ten? Ein deterministisches Programm, das eine Aufgabe in einem Tag be-
rechnet, ist unzuverl~ssiger als unser zufallsgesteuertes Programm, weil die
Wahrscheinlichkeit des Auftretens eines Hardwarefehlers wghrend einer 24-
sttindigen 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 bedeu-
tet. 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 Kommu-
nikationsprotokoll, 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 Zu-
fallssteuerung 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 Syste-
me 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 wer-
den, und falls ein Fehler auftritt, ist es eine fast unlSsbare Aufgabe, ihn zu fin-
den. Man braucht gar nicht dariiber nachzudenken, wie hoch die Entwicklungs-
und 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 fehler-
haften Verhaltens so klein ist, dass man sich in der Anwendung keine Sorgen
dariiber machen muss.
Trotz der naturwissenschaRlichen Aspekte der Informatik, die wir gerade il-
lustriert haben, ist die Informatik fiir die meisten Informatiker eine typi-
sche anwendungs- und problemorientierte Ingenieurwissenschaft. Die Informa-
tik umfasst nicht nur die technischen Aspekte des Engineering, wie

Organisation des Entwicklungsprozesses (Phasen, Meilensteine,


Dokumentation), Formulierung von strategischen Zielen und Gren-
zen, Modellierung, Beschreibung, Spezifikation, Qualitiitssicherung,
Testen, Einbettung in existierende Systeme, Wiederverwendung und
Werkzeugunterstiitzung,

sondern auch die Managementaspekte wie z.B.

Teamorganisation und-leitung, Kostenvoranschlag und Kostenauf-


schliisselung, 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 pragmati-
scher Praktiker sein. Bei der Konstruktion von sehr komplexen Software- oder
Hardwaresystemen muss man oft die Entscheidung gefiihlsm~i3ig beztiglich ei-
gener 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 Den-
kens 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 entwickel-
ten eigene Sprachen, die oft sogar ftir benachbarte Wissenschaften nicht mehr
verst~ndlich sind. Es geht so weit, dass die standardisierte Art der Argumenta-
tion in einer Wissenschaft in einer anderen Wissenschaft als eine oberflS~chliche
und unzulS~ssige Begrtindung eingestuft wird. Das macht die propagierte inter-
disziplin~re Forschung ziemlich schwierig. Die Informatik ist in ihrem Kern
interdisziplin~r. Sie orientiert sich an der Suche nach ProblemlSsungen in al-
len 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 Mathe-
matik 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 fas-
zinierende Wissenschaftsdisziplin, die durch spektakulSze Ergebnisse und hohe
InterdisziplinaritS~t wesentlich zur Entwicklung unserer Weltanschauung beige-
tragen 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 Studieren-
den mit einer falschen Vorstellung fiber das Informatikstudium angetreten sind
und dass wir, die Dozenten der Informatik, nicht immer die theoretischen Ver-
anstaltungen attraktiv genug verkaufen. Zuviel Druck auf eine saubere Darstel-
lung 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 Infor-
matik dargestellt. Weil es aber noch weitere wichtige Gr/inde fiir die Unver-
zichtbarkeit des Studiums der Theoretischen Informatik in der Informatikaus-
bildung 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 beein-
ttusst. 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 auto-
matisch 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 WissenschaRs-
sprache beigetragen. Mehrere bekannte Grundkategorien der Wissenschaft wie
Determinismus, Zufall und Nichtdeterminismus haben neue Bedeutung gewon-
hen, 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 ,,Wun-
der", die in der Theoretischen Informatik entstanden sind. Es gibt schwere Op-
timierungsprobleme, bei denen man durch eine AbschwS~chung der Forderung,
eine optimale LSsung zu liefern, einen gewaltigen Sprung von einer unrealisier-
baren 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 ei-
nero 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 Zu-
verl~ssigkeit auf Korrektheit tiberpr~fen kann, obwohl man diese gar nicht liest
und nut einige wenige zufS~llig ausgewS~hlte Bits (Buchstaben) des Beweises an-
sieht? 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 Theoreti-
schen 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 Kennt-
nisse 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. Genompro-
jekte, medizinische Diagnostik, Optimierung in allen Gebieten der Wirtschaft
und technischen Wissenschaften, automatische Spracherkennung und Welt-
raumforschung sind nur einige Beispiele eines grofien Spektrums von M6glich-
keiten. Neben diesen wesentlichen BeitrS~gen der Informatik fiir andere Wis-
senschaften 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 Berech-
nungen (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. Un-
abh~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 kommunizie-
ren 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 da-
her sollte es nicht iiberraschen, dass man sie zur Informationsspeicherung und
-iibertragung benutzen kann. Heute wissen wir schon, dass man durch che-
mische 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 Ausbil-
dung mit der Entwicklung, Bereicherung und PrS~gung einer Denkweise, die der
allgemeinen Entwicklung einer PersSnlichkeit zugute kommen sollte. Falls die-
ser Beitrag der Mathematik anerkannt wird, dann muss man die Wichtigkeit
der Informatik fiir die allgemeine Bildung und die Bereicherung um neue Denk-
weisen in gleichem Mage akzeptieren. WS~hrend sich in letzter Zeit die Mathe-
matikausbildung 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 Prakti-
kers 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 iiberzeu-
gen, 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 Lehr-
und 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 unse-
rein 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 ent-
wickeln 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 blei-
ben 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 nieman-
den 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 Aus-
nahme, 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 ins-
besondere 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 Kon-
zepte:

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 Kennt-
.o

nissen der Mathematik. Bei allen komplizierteren Uberlegungen und Bewei-


sen 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 for-
malen Modell der Turing-Maschine im Teil Berechenbarkeit verzichten, und das
Verst~tndnis der Grundlagen der Theorie der Berechenbarkeit fiber die Argu-
mentation 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,
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 Resul-
tate 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 Resulta-
te nicht so wichtig. Wit konzentrieren uns auf die historische Entwicklung der
informatischen Konzepte und Denkweisen, und die Prgsentation von Definitio-
nen, Resultaten, Beweisen und Methoden ist nur ein Mittel, um dieses Ziel zu
erreichen. Deswegen nehmen wit gerne die Reduktion der Masse des Lernstof-
fes 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 le-
gen wit auf die Bildung neuer Begriffe. Es ist nicht so, wie es vielleicht in
einigen Vorlesungen mathematischer Natur aussehen k6nnte, dass die Termi-
nologie 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 gr-
scheinungen formulieren zu k6nnen, und um die Realisierung einer formal sau-
beren 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 wiederhol-
tes 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 Formali-
sierung 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 disku-
tiert.
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 Wissen-
schaft 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 Programmie-
rung im Umfang eines Semesters und elementare Kenntnisse der Mathematik
sind hinreichend. Die Kenntnisse von Standardvorlesungen wie Rechnerstruk-
turen 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 Be-
rechnung 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 Kon-
figuration eines Berechnungsmodells, Berechnung, Berechnungsschritt, Deter-
minismus, 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 Fra-
ge, wie man die Schwierigkeit algorithmischer A ufgaben misst, und ob es be-
liebig schwere algorithmisch 15sbare Aufgaben gibt. Die Schwierigkeit (Berech-
nungskornplezitiit) messen wit als die zur LSsung algorithmischer Aufgaben
notwendige Menge der Rechnerarbeit. Zuerst prS~sentieren wit einige wichti-
ge Grundkenntnisse, auf deren formale Beweise wir wegen ihres Schwierig-
keitsgrades in diesem Kurs verzichten. Danach zeigen wir das Konzept der
NP-VollstS~ndigkeit als eine Methode zur Klassifizierung algorithmischer Auf-
gaben 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 Schwie-
rigkeit (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 Berechnun-
gen 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 Auf-
gaben machen, die so schwer sind, dass der beste Algorithmus Jahre brS~uchte,
um diese zu 16sen? Hier prS~sentieren wit AnsS~tze wie pseudopolynornielle Algo-
rithrnen, lokale Suche, Approzirnationsalgorithrnen und Heuristiken wie Sirnu-
lated 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 Aufgabenspezi-

2Dabei 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 erm6gli-
chen. Dort weicht man vonder Forderung ab, eine optimale L6sung zu berech-
nen, 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 Wahr-
scheinlichkeit iibergegangen. Das Konzept der Randomisierung (Zufallssteue-
rung) 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 zufallsgesteuer-
ten 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 letz-
ten Jahren hat die Entwicklung der Technologie die Ubertragung von riesigen
Mengen von Daten und Gesprgchen erm6glicht. Deswegen sind die algorithmi-
schen 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 Kommunikati-
on. 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 Fol-
gen 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 wer-
den) 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 Formalis-
mus 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 Dar-
stellung 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 Entwick-
lung 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 Ele-


mente 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.

9 }-]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, >, <, (,), . . . , !} ist das Alphabet aller
Symbole der Rechnertastatur, wobei u das Leersymbol ist.
9 E,~ - {0, 1, 2 , . . . , r n - 1} fiir jedes rn _> 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 For-
meln gut darstellen kann.

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
34 2 Alphabete, W6rter, Sprachen und Aufgaben

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 (even-
tuell leere) Folge von Buchstaben aus E. Das l e e r e W o r t ,k ist die leere Buch-
stabenfolge. (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 Seinen k, n positive ganze Zahlen
mit k K n .
(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 Vorkom-
men 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

- 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 Kan-
tenmenge 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 schrei-
ben 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.
36 2 Alphabete, W6rter, Sprachen und Aufgaben

Vl( V2

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 ein-
deutige 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 Adjazenzma-
trizen 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 Matrixele-
mente 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 Kon-
junktion (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 be-
nutzen. 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
38 2 Alphabete, W6rter, Sprachen und Aufgaben

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 W6r-
ter hintereinander.

D e f i n i t i o n 2.3. D i e Verkettung (Konkatenation) f i i r ein Alphabet E ist


eine Abbildung K:E* x E* ~ E*, s o d a s s

fiir alle x, y E 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 kom-
mutativ 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, ,a
Teilwort PrS~fix Suffix

Fig. 2.3

Definition 2.5. S e i e n v, w E E* fiir ein Alphabet E.

9 v heiflt ein T e i l w o r t von w e , 3x, y E E* " w - x v y .


9 v heiflteinSuffix vonw ev3xEE*:w=xv.
9 v heiflteinPr~ifixvonw ev3yEE*:w=vy.
9 v # / ~ 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
v 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 unter-
schiedliche 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 I
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
40 2 Alphabete, WSrter, Sprachen und Aufgaben

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 - {x e E* I I x l - i}, und dass LoL - Lo - O,
Lx.L-L.

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 Kon-
katenation 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 - a ~) A (3rn E l N ' z - b"~)
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}*.


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


phismus 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 Turingma-
schine 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 sol-
ches 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 Algorith-
men (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 algorithmi-
schen Problemen. Wir beginnen mit den Entscheidungsproblemen, die man
iiblicherweise benutzt, um die Theorie der Berechenbarkeit und die Komple-
xitgtstheorie aufzubauen.
46 2 Alphabete, W6rter, Sprachen und Aufgaben

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


phabet E und eine gegebene Sprache L c_ E* ist, fiir jedes x E E* zu entschei-
den, ob

x E L oder x C L.

Ein Algorithmus A 15st das Entscheidungsproblem (L, E), falls fiir alle x E E*
gilt:

1, falls x E L ,
A(x) - 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 Pro-


gramm in C++}. Wir k6nnen folgendes Problem betrachten, das eine Teilauf-
gabe 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 For-


m 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 Aqui-
valenzprobleme. 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 Algo-
rithmus 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.
48 2 Alphabete, WSrter, Sprachen und Aufgaben

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 Berech-
nung von Funktionen die allgemeinste Darstellung von algorithmischen Pro-
blemen 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 ktor i t.

Ein anderes schweres Problem ist 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 Rela-
tionsproblemen darstellen, von zentralem Interesse. Um die Struktur der Op-
timierungsprobleme anschaulich darzustellen, benutzen wir folgende Beschrei-
bung 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. Da-


mit 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 kom-
men 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 Eingabe-


alphabet E1 die gleiche Bedeutung wie das Alphabet von Entscheidungspro-
blemen, d.h. E1 benutzt man, um die Instanzen von b/ darzustellen. Ana-
log 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
50 2 Alphabete, W6rter, Sprachen und Aufgaben

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 veranschauli-
chen, 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 vorkom-
men. 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 Hamil-
tonsche 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

V2 V4

V3

Fig. 2.4

Das TSP ist ein schweres Optimierungsproblem. In der Anwendung erschei-


hen aber oft nur ProblemfSJle, die gewisse gute Eigenschaften haben und ftir
die man bei der Suche nach einer guten L6sung bessere Chancen hat. Wir sa-
gen, dass ein Optimierungsproblem ~/~1 -- (~I, ~ 0 , L/, J~/{, cost, goal) ein Tell-
p 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 Ko-
sten und das Ziel genauso definiert sind wie bei TSP, nur die Menge der Ein-
gaben (Problemf~lle) wird folgendermagen eingeschr~nkt" Jeder Problemfall
52 2 Alphabete, WSrter, Sprachen und Aufgaben

(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 , was bedeu-


tet, dass

_< +

fiir alle K n o t e n u, v, w yon G. Dies ist eine natiirliche Eigenschaft, die besagt,
dass die direkte V e r b i n d u n g zwischen u und v nicht teurer sein darf als be-
liebige Umwege (Verbindungen fiber andere Knoten). M a n bemerke, dass der
Problemfall in Fig. 2.4 die Dreiecksungleichung nicht erfiillt.

Aufgabe 2.17. Beweisen Sie, dass .A4((G,c)) I - (n- 1)!/2, wenn G ein Graph mit n
Knoten ist, wobei n > 2.

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 Klau-
seln, die durch c~ erfiillt werden.
54 2 Alphabete, WSrter, Sprachen und Aufgaben

Ziel: Maximum.

Zu der oben gegebenen Formel (I) k6nnen wir in der Tabelle 2.1 alle 8 Bele-
gungen 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 x l v x3 r erfiill. Klauseln
0 0 0 0 1 1 0 0 1
0 0 1 0 1 1 1 1 1
0 1 0 1 1 0 1 0 1
0 1 1 1 1 0 1 1 1
1 0 0 1 1 1 0 0 1
1 0 1 1 1 1 1 1 0
1 1 0 1 1 0 1 0 1
1 1 1 1 0 0 1 1 0

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 Glei-
chungen 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 Funk-
tion 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, son-
dern 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 generiert das Wort (01) n fiir jedes n E IN - {0}.
An : 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~ihlungs-


a 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 Auf-
zghlungsalgorithmus fiir L existiert.
56 2 Alphabete, W6rter, Sprachen und Aufgaben

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 fin-
den. 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) aus-
sieht, 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 In-
formationsgehalt 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 eine injektive Abbildung H von (~bool)* nach
{0, 1, 2, 3, 4}* - E;, so d ass

Ixl ~ 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 Al-
p 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 Komprimierungsmecha-


nismen betrachten kann. Welcher soll dann aber der richtige sein? Wir kSnnen
z.B. die vorgestellte Komprimierung noch so verbessern, dass wir die Darstel-
lung 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 neh-
men, 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 Strategi-
en verfolgen.
Es kommt noch schlimmer. Betrachten wir folgende Komprimierungsmethode.
Fiir jedes x E (Ebool)* k6nnen wir Nummer(x) eindeutig als seine Faktorisie-
rung

;i 1 .;;2
9 "

..... ik

fiir Primzahlen P l < P2 < " ' " < Pk, i l , i 2 , . . . , i~ E IN {0} fiir j = 1, 2 , . . . , k
9 " /k

ausdrticken. Eine Darstellung von p~l. p~ . . . . . p~ fiber {0, 1, (,), } kSnnte

Bin(pl)(Bin(il))Bin(p2)(Bin(i2)) . . . Bin(pk)(Bin(ik))

sein. Mit der Anwendung des Homomorphismus h bekommen wir wieder eine
bingre Darstellung. Die schlechte Nachricht ist, dass diese Komprimierungs-
methode 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 Darstel-
lung 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 unter-
schiedlichen 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 scheinba-
ren 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-Pro-
gramms, das x generiert.

Wir wissen, dass uns ein/Jbersetzer fiir Pascal zu jedem Pascal-Programm sei-
hen 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 Komprimierungsme-
thoden 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 Izl,
was nat/irlich erw/inscht ist.

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 dar-
gestellt und leistet deswegen zur biniren Darstellung von Ax nur den Beitrag

Die letzte Frage, die noch zu beantworten bleibt, ist die folgende: "Wie er-
kennt 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
60 2 Alphabete, WSrter, Sprachen und Aufgaben

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 Kodie-
rung 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~) <_ [log2(n + 1)] + d _~ Flog (glz l] + d + 1.

Aufgabe 2.23. Beweisen Sie die folgende Behauptung: Es existiert eine Konstante c, so
dass fiir jedes n c I N - {0}

K ((01) 2n) _< rlog2(n + 1)] + c - / l o g 2 log 2 (1(01) ~ / 2 ) l +~.

Aufgabe 2 . 2 4 . Geben Sie eine unendliche Folge von WSrtern yl, y2, Y 3 , . . . fiber ~bool mit
folgenden Eigenschaften an:
(i) lyil < lyi+ll ftir alle i E I N - {0}, und
(ii) es existiert eine Konstante c, so dass
K(yi) <_ [log~ log~ log~ lyil] +
ffir alle i C I N - {0} gilt.
2.4 Kolmogorov-Komplexit~t 61

Aufgabe 2.25. Beweisen Sie, dass fiir jede positive Zahl rn ein Wort w,~ existiert, so dass

Wir k6nnen auch den Informationsgehalt von Zahlen messen, wenn wir die
Messung der Kolmogorov-KomplexitS~t an ihrer BinS~rdarstellung durchftihren.

D e f i n i t i o n 2.17. Die K o l m o g o r o v - K o m p l e x i t / i t einer natfirlichen Zahl


ist K(n)= K(~in(n)).
Aufgabe 2.26. Sei n = pq eine positive Zahl. Beweisen Sie

K(~) _< K(p) + K(q) +

fiir eine Konstante c, die unabh~ngig von n, p und q ist.

Das nS~chste Resultat zeigt, dass es auch nichtkomprimierbare W6rter im Sinne


der Kolmogorov-KomplexitS~t gibt.

Lemma 2.5. Fiir jede Zahl n E I N - {0} existiert ein Wort w~ E (Ebool) ~ SO

dass

d.h., es existiert fiir jede Zahl n ein nichtkomprimierbares Wort der Lgnge n.

Beweis. Der Beweis basiert auf einer einfachen kombinatorischen Idee, die oft
Anwendung findet. Wir haben genau 2 ~ WSrter X l , . . . ,x2~ in (Ebool) ~. Sei,
fiir i = 1 , 2 , . . . ,2 ~, C-Prog(x~) E {0, 1}* der Maschinencode eines Program-
rues Prog(xi), das xi generiert und K ( x i ) = IC-Prog(xi)l (also ist Prog(xi)
eines der kiirzesten P r o g r a m m e 9, die xi generieren). Es ist klar, dass ftir zwei
unterschiedliche WSrter x~ und xj, i # j, C-Prog(x~) und C-Prog(xj) unter-
schiedlich sein miissen. Das bedeutet, dass wir 2 ~ unterschiedliche Maschinen-
codes C-Prog(xl), C - P r o g ( x 2 ) , . . . , C-Prog(x2~)von kiirzesten P r o g r a m m e n fiir
x l, x 2 , . . . , x2~ haben. Es geniigt zu zeigen, dass mindestens einer der Maschi-
nencodes eine LS~nge gr6i3er gleich n haben muss.
Das kombinatorische Argument fiir die gewiinschte B e h a u p t u n g sagt einfach,
dass es unm6glich ist 2 ~ unterschiedliche Maschinencodes der L~nge kleiner
als n zu haben. Jeder Maschinencode ist ein Wort fiber (Ebool)*. Die Anzahl

9Man bemerke, dasses mehrere unterschiedliche kiirzeste Programme fiir xi geben kann,
und wir legen nur eines von ihnen lest.
62 2 Alphabete, WSrter, Sprachen und Aufgaben

der WSrter der LS~nge i fiber Ebool ist genau 2i. Daher ist die Anzahl aller (un-
terschiedlichen) nichtleeren WSrter fiber Ebool mit einer Lgnge von hSchstens
n--1

n-1
2~ = 2~ - 2 < 2~.
i=1

Also muss es unter den 2~ WSrtern C - P r o g ( x l ) , . . . , C-Prog(z2~) mindestens


eines mit Lgnge von mindestens n geben. Sei C-Prog(zo) ein solches Wort mit
IC-Prog(xj)l > n. Weil I C - P r o g ( x j ) l - K(xj), ist xj nicht komprimierbar. D

A u f g a b e 2 . 2 7 . B e w e i s e n Sie, dass fiir alle i, n E I N - {0}, i < n, 2 ~ - 2 n - i u n t e r s c h i e d l i c h e


W S r t e r x in (Ebool) ~ existieren, so dass

K(x) _> ~ - i.

Aufgabe 2.28. 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) >_


[log 2 m] - 1.

Kehren wir jetzt zuriick zur Frage, ob die Kolmogorov-Komplexit/R ein ge-
niigend robustes Marl fiir den Informationsgehalt von W6rtern ist. Statt ei-
net 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 Programmierspra-
che 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 Kolmogo-
rov 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 ei-
ne Programmiersprache nur einen beschrSmkten Einttuss auf die Kolmogorov-
KomplexitS~t von WSrtern hat und daher unsere Festlegung auf Pascal in der
Formalisierung des intuitiven Begriffs des Informationsgehalts akzeptiert wer-
den 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)

_<

Nachdem wir die Kolmogorov-Komplexitgt als das Mar3 des Informationsge-


halts von W6rtern akzeptiert haben, wollen wir uns mit der Niitzlichkeit dieses
Begriffes besch~tftigen. Die Kolmogorov-Komplexit~tt hat viele Anwendungen,
meistens als eine effiziente Methode ffir die Herstellung von anschaulichen ma-
thematischen Beweisen. Im Folgenden pr~sentieren wir drei Anwendungen, fiir
deren Verstgndnis keine besonderen Vorkenntnisse ben6tigt werden.
Die erste Anwendung ist auf der grundlegenden Ebene der Begriffserzeugung.
Der Zufall ist eine der grundlegenden Kategorien der Wissenschaft und wir
werden uns mit diesem Begriff in Kapitel 8 fiber zufallsgesteuerte Algorithmen
beschSfftigen. Hier stellen wir uns die Frage, warm man ein Objekt oder seine
Darstellung als Wort als zuf~tllig bezeichnen kann. Dabei kann die klassische
64 2 Alphabete, W6rter, Sprachen und Aufgaben

Wahrscheinlichkeitstheorie nicht helfen, weil sie nur den Zufallserscheinungen


die Wahrscheinlichkeit ihres Eintreffens zuordnet. Wenn man zum Beispiel
W6rter aus (Ebool) n zufS~llig beziiglich einer uniformen Wahrscheinlichkeits-
verteilung fiber (Ebooa)~ ziehen m6chte, dann hat jedes Wort die gleiche Wahr-
scheinlichkeit gezogen zu werden. K6nnte man diese Wahrscheinlichkeiten mit
der ZufSJligkeit in Verbindung bringen? Dann wgre 0 ~ genauso zufgllig wie
ein unregelmgt3iges Wort und das entspricht nicht der intuitiven Vorstellung
des Adjektivs zufS~llig. Nach dem W6rterbuch sollte zufgllig bedeuten: ,,hath
keinem Plan gebaut". Ein zufS~lliges Objekt hat also eine chaotische Struktur,
die keine RegularitS~t besitzt. Und da sind wir mit unserem Begriff der Kom-
primierung und des Informationsgehalts gerade richtig. Ein Wort ist zufgllig,
wenn fiir dieses Wort keine komprimierte Darstellung existiert, wenn es keinen
anderen Plan zu seiner Erzeugung gibt als seine vollstgndige Beschreibung.
Deswegen ist die folgende Definition bisher die beste bekannte Formalisierung
des informellen Begriffes ,,zufiillig".

D e f i n i t i o n 2.18. Ein Wort x E (Y]bool)* hciflt zuf~illig, falls K ( x ) >_ I 1.


Eine Zahl n heiflt zuf~illig, falls K ( n ) = K ( B i n ( n ) ) >_ [log2(n + 1)] - 1.

Die n/~chste Anwendung zeigt, dass die Existenz eines Programmes, das ein
Entscheidungsproblem (Ebool, L) 16st, zu gewissen Aussagen fiber die Kolmo-
gorov-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 <n do begin
(Berechne AL(X) mit dem Programm AL};
2.4 Kolmogorov-Komplexit~t 65

i f AL(X)= 1 t h e n b e g i n
i:=i+1;
z'--x;
end;
x :-- Nachfolger von x in kanonischer O r d n u n g ;
end
write(z);
end.
W i t sehen, dass C~ nacheinander die WSrter aus (Ebool)* in kanonischer Ord-
nung generiert. Ffir jedes Wort x fiberpriift C~ mit dem Teilprogramm AL~ ob
x ~ L oder nicht. C~ z~hlt die Anzahl der v o n An akzeptierten WSrter. Es ist
klar, dass die Ausgabe yon C~ das n-te Wort z~ in L i s t .
W i t bemerken wieder, dass alle P r o g r a m m e C~ gleich sind bis auf den Para-
meter n. Wenn wit die bingre Lgnge yon C~ bis auf den Teil, der n darstellt,
m i t c bezeichnen, dann ist die Lgnge yon C~ genau c § [log2(n § 1)] fiir jedes
n E IN. Das Resultat des Satzes folgt direkt aus dieser Beobachtung. D
Um ein typisches Missverst~ndnis zu vermeiden bemerken wir, dass die Lgnge
des P r o g r a m m e s C~ nichts damit zu t u n hat, wieviel Speicherplatz die Varia-
blen x, i und z w~hrend der Arbeit von C~ verbrauchen. Dass die Inhalte der
Variablen von C~ mit der Zeit wesentlich lgngere Darstellungen als der Ma-
schinencode von C~ haben kSnnen, spielt dabei keine Rolle, weil diese Werte
nicht in die Beschreibung des P r o g r a m m e s gehSren. Der einzige Wert, der in
die Beschreibung des P r o g r a m m e s geh6rt, ist n. Aus der Sicht des P r o g r a m m e s
C~ ist aber n eine feste Konstante (Zahl) und wird daher als Teil des Maschi-
nencodes von C~ dargestellt. Im n~chsten Kapitel werden wir die Beweisidee
des Satzes 2.2 vertiefen.

Aufgabe 2.29. Sei p ein Polynom einer Variablen. Sei L C_ (Ebool)* eine unendliche rekur-
sive Sprache mit der Eigenschaft L N (Ebool)'~l _< p(m) fiir alle m C IN - {0}. Sei, fiir alle
n E I N - {0}, z~ das n-te Wort in L beztiglich der kanonischen Ordnung. Wie kann man
K(zn) in Izn nach oben beschr~nken?

Die letzte Anwendung bezieht sich auf ein Resultat der Zahlentheorie~ das
eine enorme Wichtigkeit fiir den Entwurf von zufallsgesteuerten Algorithmen
hat. Fiir jede positive ganze Zahl n sei Prim (n) die Anzahl der Primzahlen
kleiner gleich n. Der folgende grundlegende Satz der Zahlentheorie sagt, dass
die Primzahlen relativ dicht zwischen den natiirlich Zahlen verstreut sind. Bei
Unterstreichung der Primzahlen k6nnen wir diese H~ufigkeit von Primzahlen
66 2 Alphabete, W6rter, Sprachen und Aufgaben

in folgender Folge kleiner Zahlen

I, 2, _3,4, 5, 6, _7, 8, 9, I0, ii, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,...

direkt beobachten. Im Folgenden bezeichnet pi immer die i-te kleinste Prim-


zahl.

Satz 2.3. Primzahlsatz

Prim (n)
lira =1.
~-~o~ n / l n n

Der Primzahlsatz ist eine der bemerkenswertesten Entdeckungen der Mathe-


matik. Er sagt, dass die Anzahl der Primzahlen ungef~hr so schnell wgchst
wie die Funktion n~ i n n . Fiir ,,kleine" Werte von n kann m a n Prim (n) genau
berechnen. Die folgende Tabelle zeigt einige solcher Werte.

Prim(n)
n Prim (n) (n/inn)
103 168 I, 161
106 78498 I, 084
109 50847478 I, 053

Wie nah Prim (n) an n / i n n herankommt, zeigt die folgende Ungleichung

3 n 1
inn < < inn
2 Prim (n) 2

fiir a l l e n > 67.

A u f g a b e 2.30. Sei pi die i-te kleinste Primzahl fiir i - 1, 2 , . . . . Benutzen Sie Satz 2.3, um
zu beweisen, dass

lim P~ = 1.
n~oo n in rt

Die urspr/inglichen Beweise dieses Satzes (diese sind vor mehr als 100 Jah-
ren enstanden) waren sehr kompliziert und kamen nicht ohne die Benutzung
komplexer Zahlen aus. Auch die spS~ter vereinfachten Beweise sind zu schwer,
um sie hier zu prS~sentieren. Dies sollte nicht iiberraschen, weil die Frage, wie
schnell die Funktion Prim (rt)/(rt/inn) zu 1 mit wachsendem rt konvergiert,
sehr stark mit der Riemannschen Hypothese, einem der spektakulS~rsten offe-
nen Probleme der M a t h e m a t i k , zusammenh5ngt.
2.4 Kolmogorov-Komplexit~t 67

An dieser Stelle wollen wir die Niitzlichkeit der Kolmogorov-komplexitS~tsarti-


gen Argumentation zeigen, indem wir einen einfachen Beweis fiir eine schw~tche-
re Version des Primzahlsatzes geben. Diese einfachere Version des Primzahl-
satzes ist aber stark genug, um fiir die meisten Anwendungen fiir den Entwurf
yon zufallsgesteuerten Algorithmen hinreichend zu sein.
Wir zeigen zuerst ein fundamentales Resultat, das besagt, dass es unendlich
viele Primzahlen mit bestimmten Eigenschaften gibt.

L e m m a 2.6. Sei hi, n2, n 3 , . . , eine steigende unendliche Folge von natiirli-
chen Zahlen mit K(n~) _> [log 2 n~]//2. Sei fiir i = 1, 2 , . . . die Zahl qg die grSflte
Primzahl, die die Zahl n~ teilt. D a n n ist die Menge Q = {q~ l i E I N - {0}}
unendlich.

Beweis. Wir beweisen Lemma 2.6 indirekt. Angenommen, Q {qi I i E


=

I N - {0}} ist eine endliche Menge. Sei p,~ die gr6t3te Primzahl in Q. Dann kann
man jede Zahl ni eindeutig als

ri,1 ~i,2 . . . . . T)f i , m


ni - - Pl " P2 ,-m

fiir irgendwelche ri,i, r i , 2 , . . . , ri,,~ E IN darstellen. Somit kann man ein einfaches
Programm A entwerfen, das ftir gegebene Parameter ri,1, r i , 2 , . . . , ri,m die bin~tre
Darstellung von ni erzeugt. Sei c die bingre Lgnge des Programms A auger der
Darstellung der Parameter r i , 1 , . . . , ri,m (also die Darstellung des Teils von A,
der fiir alle i E IN gleich ist). Dann gilt

K ( ~ ) < c + 2. (Flog2(r~,l + 1)] + Flog2(r{,2 + 1)] + . . . + Flog2(r{,,~ + 1)])

fiir alle i E I N - { 0 } . Die multiplikative Konstante 2 kommt, um die Kodierung


der Zahlen ri,1, ri,2,..., ri,,~ so zu gestalten, dass ihre Darstellung klar vom
Rest des Programmes trennbar ist. Weil ri,j _< log2 ni fiir alle j E {1, 2 , . . . , m}
erhalten wir

K (ni) _< c + 2 m . [log 2(log 2 ni + 1)]

fiir alle i G I N - {0}. Weil m und c Konstanten beziiglich i sind, kann

Flog2 ~ ] / 2 < c + 2m- Flog2(log2 ~ + 1)1

nur f/ir endlich viele Zahlen i gelten. Dies ist aber ein Widerspruch zu unserer
Voraussetzung K(n~) >_ [log2 n~]/2 fiir alle i E IN. D
68 2 Alphabete, W6rter, Sprachen und Aufgaben

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 Lem-
mas 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 beliebi-
gen unendlichen Folge von natiirlichen Zahlen mit nichttrivialer Kolmogorov-
KomplexitS~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

k
Prim (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 69

Bits zum Teilwort 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 durch-


fiihren, 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


+ [log 2 []og 2 (m + 1)ll (2.8)
+[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 Kolmogorov-
KomplexitA~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)


70 2 Alphabete, WSrter, Sprachen und Aufgaben

W e n n wir (2.4) f/Jr ein solches n in (2.3) einsetzen, erhalten wir

Flog2(~ + 1)l - 1 _< 2 r,o,~ r,o,~ r,o,~ <~ + 1)Ill


+ [log,~Flog2(m + i)]] + [log2(m + 1)]
+ raog2(1 + (~/p~))l.

Weil l o g 2 ( n / p , ~ ) - log 2 n - l o g 2 p , ~ folgt d a r a u s

log2 P,~ _< 2. [log2 log2 log2(m + 1)] + I-log2log2(m + 1)l


+ Flog2(m + 1)] + 2
< 2 9 log 2 log 2 log 2 m + log 2 log 2 m + log 2 m + 6.

Daher ist

p,~ _< 64. m . log 2 m . (log 2 log 2 m) 2. (2.6)


Wegen (2.5) erf/illt unsere unendliche Folge n l , n 2 , n 3 , 9 9 9 die Voraussetzung des
L e m m a s 2.6. D a m i t gilt (2.6) ftir unendlich viele m. Das bedeutet, dass die m-
te P r i m z a h l hSchstens 6 4 - m - l o g 2 m - ( l o g 2 log 2 m) 2 sein darf fiir unendlich viele
m. Daher gibt es m P r i m z a h l e n unter den ersten 64. m . log 2 m . (log e log e m) e
natfirlichen Zahlen. Anders ausgedrfickt ist

(2.7)
fiir unendlich viele m.
Setzen wir jetzt die S u b s t i t u t i o n k - 64. m . log 2 m . (log 2 log 2 m) 2 in (2.7) ein.
Weil k _> m i s t , erhalten wir

Prim(k) > 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 Kompri-
mierung 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 71

von n = p , ~ 9 ( n / p ~ ) 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 Sym-
bolen 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 Anforderun-
gen und die Kosten der Objekte (zulgssiger LSsungen), die die Anforderungen
erfiillen. Diese Menge von Anforderungen erfiillen meistens sehr viele LSsun-
gen, 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 ei-
nes 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 kompri-
mierte 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 Kolmogorov-
Komplexitgt hilR nicht nur, den Informationsgehalt von WSrtern und deren
72 2 Alphabete, WSrter, Sprachen und Aufgaben

Grad der ZufS~lligkeit zu messen, sondern man kann sie als eine effiziente Me-
thode 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 glte-
sten 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, Com-
pilerbau 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 Theo-
rie 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 Informationsgehal-
tes von W6rtern einzufiihren, entstand in den 60er Jahren unabhgngig bei
Kolmogorov.[Kol 65, Kol 68], und Chaitin [Cha 66, Cha 69, Cha 74]. Den um-
fassendsten 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
(ii) (L1 n L2). (L3 n L4) ElL3 n ElL4 n L2L3 n L2L4
- -

(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 minde-
stens eine Inklusion gilt.
5. Gilt die Gleichung
{a, b}* = {a{b}*}*. {b{a}*}*?
6. Beschreiben Sie informell die Bedeutung des Begriffes ,,Algorithmus".
7. Definieren Sie folgende algorithmische Grundaufgabenstellungen: Entscheidungspro-
blem, Optimierungsproblem und Aufzghlungsproblem. Erklgren Sie, was es bedeutet,
diese Probleme zu 16sen.
8. Wie hgngt die Existenz eines Algorithmus ffir ein Entscheidungsproblem (E, L) mit
der Existenz eines Aufz/~hlungsalgorithmus ftir L zusammen?
9. Suchen Sie sich ein Optimierungsproblem aus und geben Sie seine vollstgndige formale
Beschreibung an.
10. 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.
11. Wie stark h/~ngt die Definition der Kolmogorov-Komplexit/~t von der Wahl der Pro-
grammiersprache ab?
12. Wie definiert man die Kolmogorov-Komplexit/~t von natfirlichen Zahlen?
13. 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.
14. Warum ist die Kolmogorov-Komplexit/~t eines Wortes x nie wesentlich grSfier als Ixl
und warum ist dies erwiinseht?
15. 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 Program-
me, 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 2 Alphabete, W6rter, Sprachen und Aufgaben

16. 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.


17. Wie sieht es es mit der Verteilung der W6rter aus {0, 1} ~ bezfiglich deren Kolmogorov-
Komplexitgt aus? Wieviele wenig komprimierbare W6rter gibt es?
18. Erkl/~ren Sie ohne die formalen Beweise zu wiederholen, warum die Annahme der Exi-
stenz von zu wenigen Primzahlen (z.B. Prim (k) <_ k/(log 2 k) 2) zwischen natfirlichen
Zahlen zu einem Widerspruch fiihrt. Was hat das mit der Darstellung der Zahlen
durch ihre Primfaktorzerlegung zu tun?
Der Beweis einer hohen Bildung
ist die F~higkeit, fiber komplexe Sachen
so einfach wie m6glich zu sprechen.
R. Emerson

3 Endliche A u t o m a t e n

3.1 Zielsetzung

Endliche Automaten sind das einfachste Modell der Berechnungen, das man in
der Informatik betrachtet. Im Prinzip entsprechen endliche Automaten spezi-
ellen Programmen, die gewisse Entscheidungsprobleme 16sen und dabei keine
Variablen benutzen. Endliche Automaten arbeiten in Echtzeit in dem Sinne,
dass sie die Eingabe nur einmal von links nach rechts lesen, das Resultat steht
sofort nach dem Lesen des letzten Buchstabens fest.

Der Grund, endliche Automaten hier zu behandeln, ist nicht der Einstieg in
die Automatentheorie. Wir nutzen die endlichen Automaten zu didaktischen
Zwecken, um auf einfache und anschauliche Weise die Modellierung von Be-
rechnungen zu erlS~utern. Daher fiihren wir einige Grundbegriffe der Informatik
wie Konfiguration, Berechnungsschritt, Berechnung, Simulation, Determinis-
mus und Nichtdeterminismus fiir das Modell der endlichen Automaten mit dem
Ziel ein, das grobe VerstS~ndnis fiir die allgemeine Bedeutung dieser Begriffe
zu gewinnen. Dies sollte uns spS~ter die Entwicklung des VerstS~ndnisses dieser
Begriffe im Zusammenhang mit einem allgemeinen Modell von algorithmischen
Berechnungen erleichtern.

Wir lernen also in diesem Kapitel, wie man eine Teilklasse von Algorithmen
(Programmen) formal und dabei anschaulich modellieren und untersuchen
kann. Neben dem ersten Kontakt mit den oben erw~hnten Grundbegriffen
der Informatik lernen wir auch, was es bedeutet, einen Beweis zu fiihren, der
zeigt, dass eine konkrete Aufgabe in einer gegebenen Teilklasse von Algorith-
men nicht 16sbar ist.
76 3 Endliche Automaten

3.2 Die Darstellungen der endlichen Automaten

Wenn man ein Berechnungsmodell definieren will, muss man folgende Fragen
beantworten:

i. Welche elementaren Operationen, aus denen man die Programme zusam-


menstellen kann, stehen zur Verfiigung?
2. Wieviel Speicher steht einem zur Verfiigung und wie geht man mit dem
Speicher urn?
3. Wie wird die Eingabe eingegeben?
4. Wie wird die Ausgabe bestimmt (ausgegeben)?

Bei endlichen Automaten hat man keinen Speicher zur Verfiigung auger dem
Speicher, in dem das Programm gespeichert wird und dem Zeiger, der auf die
angewendete Zeile des Programmes zeigt. Das bedeutet, dass das Programm
keine Variablen benutzen darf. Das mag iiberraschend sein, weil man fragen
kann, wie man ohne Variablen iiberhaupt rechnen kann. Die Idee dabei ist,
dass der Inhalt des Zeigers, also die Nummer der aktuellen Programmzeile, die
einzige wechselnde Information ist, und dass man mit dieser Pseudovariablen
auskommen muss.
Wenn E = {al, a 2 , . . . , a k } das Alphabet ist, fiber dem die Eingaben darge-
stellt sind, dann darf der endliche Automat nur den folgenden Operationstyp
benutzen:
select i n p u t = al goto il
i n p u t = a2 goto i2

i n p u t = ak goto ik

Die Bedeutung dieser Operation (dieses Befehls) ist, dass man das n&chste
Eingabesymbol liest und mit al, a2,..., a~ vergleicht. Wenn es gleich a d ist,
setzt das Programm die Arbeit in der Zeile id fort. Die Realisierung dieses
Befehls bedeutet automatisch, dass das gelesene Symbol gel6scht wird und
man daher in der Zeile id das n~chste Symbol liest. Jede Zeile des Programms
enth~it genau einen Befehl der oben angegebenen Form. Wir numerieren die
Zeilen mit natiirlichen Zahlen 0, 1,2, 3,... und die Arbeit des Programmes
beginnt immer in der Zeile 0. Wenn E nur aus zwei Symbolen (z.B. 1 und 0)
besteht, kann man statt des Befehls select den folgenden Befehl if ... then
... else benutzen.
3.2 Die Darstellungen der endlichen Automaten 77

if input = 1 then goto i else goto j.

Solche Programme benutzt man, um Entscheidungsprobleme zu 16sen. Die


Antwort ist durch die Zeilennummer bestimmt. Wenn ein Programm aus rn
Zeilen besteht, wS~hlt man sich eine Teilmenge F yon {0, 1, 2 , . . . , r n - 1}. Wenn
dann nach dem Lesen der gesamten Eingabe das Programm in der j-ten Zeile
endet, und j E F, dann akzeptiert das Programm die Eingabe. Wenn j E
{0, 1 , 2 , . . . , r n - 1 } - F, dann akzeptiert das Programm die Eingabe nicht.
Die Menge aller akzeptierten W6rter ist die von dem Programm akzeptierte
(erkannte) Sprache.
Betrachten wir als Beispiel folgendes Programm A, das Eingaben fiber dem
Alphabet Eboo~ bearbeitet.
O~ if input = 1 then goto 1 else goto 2
1: if input = 1 then goto 0 else goto 3
2: if input = 0 then goto 0 else goto 3
3: if input = 0 then goto i else goto 2

Setzen wir F = {0, 3}. Das Programm A arbeitet auf einer Eingabe 1011 wie
folgt: Es startet in der Zeile 0, und geht in die Zeile 1, nachdem es eine 1
gelesen hat. Es liest eine 0 in der ersten Zeile und geht in die dritte Zeile. In
der dritten Zeile liest es eine 1 und geht in die zweite Zeile, um in die dritte
Zeile zuriickzukehren beim Lesen einer weiteren 1. Die Berechnung ist beendet,
und weil 3 E F gilt, wird das Wort 1011 akzeptiert.
Mit endlichen Automaten verbindet man oft die schematische Darstellung aus
Fig. 3.1. In dieser Abbildung sehen wir die drei Hauptkomponenten des Mo-
d e l l s - ein gespeichertes P r o g r a m m , ein B a n d mit dem Eingabewort und
einen Lesekopf, der sich auf dem Band nur von links nach rechts bewegen
kann. 1 D~s B~nd (auch Eingabeband genannt) betr~chtet man als einen li-
nearen Speicher ftir die Eingabe. Das Band besteht aus Feldern (Zellen). Ein
Feld ist eine elementare Speichereinheit, die ein Symbol aus dem betrachteten
Alphabet beinhalten kann.
Die oben beschriebene Klasse von Programmen benutzt man heute fast gar
nicht mehr, um endliche Automaten zu definieren, weil diese Programme wegen
des goto-Befehls keine sch6ne Struktur haben. Daher ist diese Modellierungs-
art nicht sehr anschaulich und fiir die meisten Zwecke auch sehr unpraktisch.
Die Idee einer umgangsfreundlicheren Definition endlicher Automaten basiert

1Die komponentenartige Darstellung von allgemeinen Berechnungsmodellen beinhaltet au-


t3erdem noch einen Speicher, Schreib- und Lesezugriffsm6glichkeiten auf diesen Speicher und
eventuell ein Ausgabemedium.
78 3 Endliche Automaten

~176
Lesekopf
I 1101 11 Eingabeband

Programm

Fig. 3.1

auf folgender visueller Darstellung unseres Programms. Wir ordnen jedem Pro-
gramm A einen gerichteten markierten Graphen G(A) zu. G(A) hat genau so
viele Knoten wie das Programm A Zeilen hat, und jeder Zeile yon A ist genau
ein Knoten zugeordnet, der durch die Nummer der Zeile markiert wird. Falls
das Programm A aus einer Zeile i in die Zeile j beim Lesen eines Symbols b
iibergeht, dann enthalt G(A) eine gerichtete Kante (i, j) mit der Markierung
b. Weil unsere Programme ohne Variablen fiir jedes a E E in jeder Zeile einen
goto-Befehl haben, 2 hat jeder Knoten yon G(A) genau den ausgangsgrad a I~1.
Fig. 3.2 enthS~lt den Graph G(A) fiir das oben beschriebene vierzeilige Pro-
gramm A. Die Zeilen aus F sind durch Doppelkreise als abgesonderte Knoten
yon G(A) gekennzeichnet. Der Knoten, der der Zeile 0 entspricht, wird durch
einen zusS~tzlichen Pfeil (Fig. 3.2) als der Anfangsknoten aller Berechnungen
bezeichnet.

1
0

Fig. 3.2

2Jede Zeile ist ein select fiber alle Symbole des Alphabets.
3Der Ausgangsgrad eines Knoten ist die Anzahl der gerichteten Kanten, die den Knoten
verlassen.
3.2 Die Darstellungen der endlichen Automaten 79

Aus dieser graphischen Darstellung entwickeln wir jetzt die standardisierte for-
male Definition von endlichen Automaten. Die graphische Darstellung werden
wir aber weiterhin benutzen, weil sie eine sehr anschauliche Beschreibung von
endlichen Automaten bietet. Die folgende formale Definition ist andererseits
besser f~r das Studium der Eigenschaften endlicher Automaten und ftir die for-
male Beweisfiihrung geeignet. Hierfiir 5~ndern wir teilweise die Terminologie.
Was wir bisher als Zeile des Programms oder als Knoten des Graphen be-
zeichnet haben, werden wir im Weiteren als Zustand des endlichen Automaten
bezeichnen. Die Kanten des Graphen, die den goto-Befehlen des Programms
entsprechen, werden durch die sogenannte Ubergangsfunktion beschrieben.
Man beachte, dass der folgenden Definition ein allgemeines Schema zugrunde
liegt, das man bei der Definition aller Rechnermodelle anwenden kann. Zuerst
definiert man eine Struktur, die die exakte Beschreibung jedes Objektes aus der
Modellklasse erm6glicht. Dann beschreibt man die Bedeutung (Semantik) die-
ser Struktur. Dies geschieht in folgender Reihenfolge. Zuerst definiert man den
Begriff der Konfiguration. Eine Konfiguration ist die vollst~ndige Beschreibung
einer Situation (eines allgemeinen Zustand..s), in der sich das Modell befindet.
Dann definiert man einen Schritt als einen Ubergang aus einer Konfiguration in
eine andere Konfiguration, wobei dieser/Jbergang durch eine elementare Akti-
on des Rechnermodells realisierbar sein muss. Eine Berechnung kann dann als
eine Folge solcher Schritte gesehen werden. Wenn man eine Berechnung deft-
niert hat, kann man jeder Eingabe das Resultat der Arbeit des Rechnermodells
als Ausgabe zuordnen.

D e f i n i t i o n 3.1. Ein (deterministischer) e n d l i c h e r Automat (EA) ist ein


Quintupel M = (Q, E, 5, qo, F), wobei

Q eine endliche Menge von Zust~inden ist


{vorher die Menge yon Zeilen eines Programms ohne Variablen},
(ii) E ein Alphabet, genannt E i n g a b e a l p h a b e t , ist,
{ die Bedeutung ist, das zuliissige Eingaben alle WSrter iiber E sind.}
(iii) qo E (2 der A nfangszustand ist
{vorher die Zeile 0 des Programms ohne Variablen},
F c_ Q die M e n g e d e r a k z e p t i e r e n d e n Zust~inde 4 ist, und

4In der deutschsprachigen Literatur auch Endzustgnde genannt. Der Begriff ,,Endzustand"
kann abet auch zu Missverst~ndnissen fiihren, weil die Berechnungen in einem beliebigen
Zustand enden kSnnen. Aut3erdem entspricht der Begriff ,,akzeptierender Zustand" der wah-
ren Bedeutung dieses Begriffes und der Bezeichnung bei anderen Berechnungsmodellen wie
bei Turingmaschinen.
80 3 Endliche Automaten

6 eine Funktion aus Q • E nach Q ist, die U b e r g a n g s f u n k t i o n genannt


wird
{5(q~ a) = p bedeutet, dass M in den Zustand p iibergeht, falls M im
Zustand q das Symbol a gelesen hat}.

Eine K o n f i g u r a t i o n von M ist ein Element aus Q • E*.


{ Wenn M sich in einer Konfiguration (q, w) E Q • E* befindet, bedeutet das,
dass M im Zustand q ist und noch das Suffix w eines Eingabewortes lesen
soll.}
Eine Konfiguration (qo~x) E {q0} • E* heiflt die S t a r t k o n f i g u r a t i o n von M
auf x.
{Die Arbeit (Berechnung) von M a u f x muss in der Startkonfiguration (qo~x)
von x anfangen}.
Jcde Konfiguration aus Q • {1} ncnnt man cinc E n d k o n f i g u r a t i o n .
Ein S c h r i t t von M ist eine Relation (auf Konfigurationen) ~ c_ (Q • E*) •

{Ein Schritt entspricht einer Anwendung der Ubergangsfunktion auf die ak-
tuelle Konfiguration, in der man sich in einem Zustand q befindet und ein
Eingabesymbol a liest. }
Eine Berechnung C von M i s t eine endliche Folge C = Co~ C1,...~ C~ von
Konfigurationen, so dass Ci ~ C~+1 fiir alle 0 <_ i <_ n - 1. C ist die Be-
rechnung von M auf einer E i n g a b e x E E*, falls Co = (qo~x) und
C~ E Q x {,k} eine Endkonfiguration ist. Falls C~ c F x {I}, sagen wit,
dass C eine 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 ist, und dass M das
W o r t x a k z e p t i e r t . Falls C~ E (Q F) x {~}, sagen wit, dass C eine ver-
w e r f e n d e B e r e c h n u n g von M a u f x ist, und dass M das W o r t x v e r w i r f t
(nicht a k z e p t i e r t ) .
{Man bemerke, dass M fiir jede Eingabe x E E* genau eine Berechnung hat.}
Die von M a k z e p t i e r t e S p r a c h e L ( M ) ist definiert als

:= die Berechnung von M auf w endet in

s = { L ( M ) I M ist sin EA} ist die tilasse der Sprachen, die yon endli-
chen Automaten akzeptiert werden. s bezeichnet man auch als die K l a s s e
3.2 Die Darstellungen der endlichen Automaten 81

d e r r e g u l ~ r e n S p r a c h e n , und jede Sprache L aus Z;(EA) wird r e g u l a r ge-


nannt.

Benutzen wir noch einmal das P r o g r a m m A, um die gegebene Definition der


endlichen Automaten zu illustrieren. Der zum P r o g r a m m A gquivalente EA
ist M = (Q, E, 5, qo, F) mit
Q = {qo, ql, q2, q3}, E = {0, 1 }, F = {qo, q3 } und
5(qo, 0) = q2, 5(qo, 1) = ql, (~(ql, 0) = q3, (~(ql, 1) = q0,
5(q2, 0) = q0, 5(q2, 1) = q3, 5(q3, 0) = ql, ~(q3, 1) = q2.
Anschaulicher kann man die Ubergangsfunktion 5 durch die folgende Tabelle
beschreiben.
Tab. 3.1
Zustand Eingabe
0 1
qo q2 ql
ql q3 qo
q2 qo q3
q3 ql q2

0 0

Fig. 3.3

Die anschaulichere Darstellung eines EA ist aber die schon angesprochene gra-
phische Form (Fig. 3.2), die man fiir den EA in die in Fig. 3.3 gegebene Form
82 3 Endliche Automaten

umwandeln kann. Die Berechnung yon M auf der Eingabe 1011 ist

(qo, 1011) ~ (ql, 011) ~ (q3, 11) ~ (q2, 1) ~ (q3,/~).

Weil q3 E F, ist 1011 E L ( M ) .


Die folgende Definition ffihrt Bezeichnungen ein, die den formalen Umgang
mit endlichen Automaten erleichtern.

Definition 3.2. Sei M = (Q, E, 5, qo, F) ein endlicher Automat. Wit definie-
ten - ~ als die reflexive und transitive Hiille der Schrittrelation ~ von M ;
daher ist

(q, ~ ) -5- (p, ~) ~ , (q - p ~ d ~ - ~) o d ~ 3k c ~ - {0}, ~o d ~

(i) w = ala2.., aku, ai E E fiir i = 1, 2 , . . . , k und


3rl, r 2 , . . . , rk-1 E Q, 8o dass
(q, w) - ~ (fl, a2... aku) ~ (r2, a 3 . . . aku) ~ ... (f k_l, aku) ~ (p, u).

Wit definieren 5 " Q x E* ~ Q dutch:

(i) 3(q, A) - q fa~ ~zz~ q e Q ~ d


(ii) 3(q, ~a) - 5(~(q, ~), a) fa~ ~ZZ~a e ~, ~ ~ ~*, q e Q.

Die Bedeutung von (q, w ) ~ (p, u)ist, dasses eine Berechnung von M gibt,
die ausgehend yon der Konfiguration (q, w) zu der Konfiguration (p, u) ffihrt.
Die Aussage 3(q, w) - p bedeutet, dass, wenn M im Zustand q das Wort w
zu lesen beginnt, dann endet M im Zustand p (also (q, w ) ~ (p, ~)). Daher
kOnnen wir schreiben:

L(~) {w E ~* ] (qo, w ) ~ (p, A) mit p E F}


{w E ~*]5(qo, w) E F}.

Betrachten wir jetzt den EA M aus Fig. 3.3. Versuchen wir, die Sprache L ( M )
zu bestimmen. Wir k6nnen leicht beobachten, dass fiir W6rter, die gerade
[~g~r~d~] A ~ h l vo~ E i ~ ~ h ~ b ~ , ~ di~ B ~ r ~ c h ~ g i~ q0 odor q~ [q, odor
qa] beendet. Wenn die Anzahl der Nullen in einem x E E* gerade [ungerade]
ist, dann 5(qo, z) E {q0, ql} [(~(q0,z) E {q2, qa}]. Diese Beobachtung ffihrt zu
folgender Behauptung.

L e m m a 3.1. L(M) = {w E {0, 1}* I Iwlo + IWll ~ 0 (1TIOd2)}.


3.2 Die Darstellungen der endlichen Automaten 83

Beweis. Zuerst bemerken wir, dass jeder EA die Menge E* in IQI Klassen

K l [ p ] - {w E E*lS(qo, w ) - p } - {w E E*l(qo, w ) ~ (p, A)},

aufteilt, und es ist klar, dass [.Jp~# Kl[p] - E* und Kl[p] 7/Kl[q] - 0 fiir alle
p, q E Q, p -r q. In dieser Terminologie gilt

- [_j Kl[p].
pEF

Anders ausgedrfickt ist die Relation definiert durch

eine fi,quivalenzrealtion auf E*, die die endlich vielen Klassen Kl[p] bestimmt
(Fig. 3.4).

:r

Fig. 3.4

Daher ist ein sicherer Weg, L(M) zu bestimmen, die Bestimmung von Kl[qo],
Kl[ql], Kl[q2] lind Kl[q3] l l n s e r e s EA M. Zu dieser Bestimmung stellen wir die
folgende Induktionsannahme auf:

Kl[qo] = {w E {0, 1}* I IWlo und IWll sind gerade},


Kl[ql] = {w E {0, 1}* I IWlo ist gerade, IWll ist ungerade},
Kl[q ] = {w ~ {o, 1}* I Iwlo ist ungerade, IWll ist gerade} und
Kl[q ] = {w e {0, 1}* I IWlo und IWll sind unger~de}.
84 3 Endliche Automaten

Weil

Kl[qo] U Kl[qa] - {w E {0, 1}* I lWlo + IWll - 0 (rood 2)},

ist die Behauptung yon L e m m a 3.1 eine direkte Folge unserer Induktionsan-
nahme. Um den Beweis von L e m m a 3.1 zu vervollstS~ndigen, reicht es also, die
Induktionsannahme zu beweisen. Wir zeigen dies durch Induktion beziiglich
der Eingabelgnge.

1. I n d u k t i o n s a n f a n g .
Wir beweisen die Induktionsannahme f/Jr alle W6rter der LS~nge kleiner gleich
zwei.
5(qo, )~) -- qo und daher ist A E Kl[qo].
(~(qo, 1) - qx und daher ist 1 E Kl[qx].
5(qo, 0) - q2 und daher ist 0 E Kl[q2].
(qo, 00) ~ (q~, 0) (qo, A) und daher ist 00 E Kl[qo].
(qo, 01) M~--(q2, 1) (q3, A) und daher ist 01 E Kl[q3].
(qo, 10) ~ (ql, 0) (q3,),) und daher ist 10 E Kl[q3].
(q0,11) M~--(ql,1) (qo, ~)und daher ist 11 E Kl[qo].

Daher gilt die Induktionsannahme fiir die W6rter der Ltinge 0, 1 und 2.
2. I n d u k t i o n s s c h r i t t .
Wir setzen voraus, dass die Induktionsannahme fiir alle x E {0, 1}*, I~1 _ i,
gilt. Wir wollen beweisen, dass sie auch fiir W6rter der Lgnge i + 1 gilt. Den
Induktionsschritt beweisen wir fiir alle i _> 2, daher gilt die Induktionsannahme
ftir alle WSrter aus (Ebool)*.
Sei w ein beliebiges Wort a u s (}-]%ool)i+1. Dann ist w -- z a , wobei z E E i und
a E E. Wir unterscheiden vier M6glichkeiten beztiglich der ParitS~ten yon Iz o
und ]Z]I.
(a) Seien beide I~1o und ]Z]l gerade. Weil die Induktionsannahme 3(qo, z) - qo
f/Jr z impliziert (daher ist z E Kl[qo]), erhalten wir

~(qo, za) -- (~(~(qo, z), a) -- (~(qo, a) -- ~ ql, falls a - - 1,


• [ q2, falls a -- 0.
Weil Izllo gerade ist und Izlll ungerade ist, entspricht (~(qo, zl) - ql der
Induktionsannahme zl E Kl[ql].
Weil Iz0o ungerade ist und Iz0ll gerade ist, stimmt das Resultat
(~(qo, z0) - q2 mit der Induktionsannahme z0 E Kl[q2] iiberein.
3.2 Die Darstellungen der endlichen Automaten 85

(b) Seien beide I~10 und IZll ungerade. Weil 5(q0, z) - qa (daher ist z E Kl[qa])
beziiglich der I n d u k t i o n s a n n a h m e fiir z, erhalten wir
5(qo, za) -- 5(5(qo, z), a) - 5(q3, a) -- { q2, falls a -- 1,
Ind. ,, ql, falls a
- 0.
Dies entspricht der I n d u k t i o n s a n n a h m e , dass z0 E Kl[ql] und z l E Kl[q2].

Die FS~lle (c) und (d) sind analog und wir iiberlassen diese dem Leser als
Ubung.

Aufgabe 3.1. Vervollst~ndigen Die den Beweis der Induktionsannahme aus Lemma 3.1
(Fttlle (c)und (d)).

Aufgabe 3.2. Sei L = {w E (Ebool)* ]]W]o ist ungerade}. Entwerfen Die einen EA M mit
L(M) = L und beweisen Die L(M) = L.

Aufgabe 3.3. Entwerfen Die endliche Automaten fiir die Sprachen 0, E* und E + fiir ein
beliebiges Alphabet E. Geben Die die formale Darstellung der Automaten als Quintupel,
sowie die graphische Darstellung an.

Wenn ein EA A geniigend anschaulich und s t r u k t u r i e r t dargestellt wird, kann


m a n die Sprache L ( A ) auch ohne eine Beweisfiihrung b e s t i m m e n . In den mei-
sten FS~llen verzichtet m a n also auf einen formalen Beweis, wie er in L e m m a
3.1 gef/ihrt wurde. 5 Aus L e m m a 3.1 h a b e n wir aber etwas Wichtiges f/Jr den
E n t w u r f eines EA gelernt. Eine gute Entwurfsstrategie ist es, die Menge al-
ler W 6 r t e r aus E* in Teilklassen von W 6 r t e r n mit gewissen Eigenschaften zu
zerlegen und ,,UbergS~nge" zwischen diesen Klassen beziiglich der K o n k a t e n a -
tion eines Symbols aus E zu definieren. B e t r a c h t e n wir diese Strategie fiir den
E n t w u r f eines EA fiir die Sprache

U = {W E (}-]bool)* I IWl0 = 3 und (IWll ~ 2 oder IWll = 0)}.

U m IWlo = 3 verifizieren zu k6nnen, muss jeder EA t3 mit L ( B ) = U fiir die


a n z a h l der bisher gelesenen Nullen die Falle IWlo = 0, Iwl0 = 1, IWlo = 2,
I 10 - 3 und I 10 _ 4 unterscheiden k6nnen. Gleichzeitig muss B auch die
Anzahl der bisher gelesenen Einsen z~thlen, u m mindestens die F~tlle Iwll = 0,
I 11 - 1 und I~11 - 2 unterscheiden zu k6nnen. D a r a u s resultiert die Idee, die
Zustandsmenge

Q = I i e {0,1, 2, 3, 4},j e {0, 1,2}}


5Man bemerke, dass dies der Situation entspricht, in der man gewShnlicherweise des Aufwan-
des wegen auf den formalen Beweis der Korrektheit eines entworfenen Programms verzichtet.
86 3 Endliche Automaten

zu w~hlen. Die Bedeutung sollte folgende sein"


Ftir alle j E {0, 1} und alle i E {0, 1,2, 3}

Kl[qi,j]- {w E (}-~%ool)* I I w I 0 - i llild I w l l - j}.

F iir alle i E {0, 1, 2, 3}

Kl[qi,2]- {w E (Y]bool)* I w I 0 - i lind IWll ~ 2}

F i i r j e {0,1}

Kl[q4,j]- {w E (Ebool)* I Iw]0 > 4 und I w I 1 - j}.

Kl[q4,2]- {w E (Ebool)* I wI0_> 4 u n d wI1 > 2}.

Es ist Mar, dass q0,o der Anfangszustand ist. Die Ubergangsfunktion von B
kann man direkt aus der Bedeutung der Zustgnde qi,j bestimmen, wie in
Fig. 3.5 gezeigt. Wir bemerken, dass

U - Kl[qa,o] U Kl[qa,2]

und setzen daher F - {q3,0, q3,2}.

qo,o 0
ql,o
0
q2,o
0
q3,o
> 0
q4,o
__ ..a"-h ~ ~ _)) 0

1 1 1 1 1

q0,1 0 ql,1 0 q2,1 0 1 q3,1 0 q4,


- - -- ~ ~ 0
1 1

qO'2 0 9 q1'2 0 220 3,2 0 q4,5

1 1 1 1 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 gelese-
nen 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 ge-
funden 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 vormer-
ken, 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] 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).
Kl[pl] 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).
K][p2] die W 6 r t e r enden mit 00 und enthalten keinen 15~ngeren
Prefix von 0010 als ihr Suffix.
KI[p3] die W 6 r t e r enden mit 001.
KI[p4] die W 6 r t e r enden mit 0010 oder beinhalten 0010 als Teil-
wort.

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 Zu-
stand 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.
88 3 Endliche Automaten

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

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 anstrengen-
ste 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 Klassenbe-
schreibung 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 Zustan-
des 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
90 3 Endliche Automaten

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 ={zE{0,1}*Iz enth~ilt das Teilwort 110},


KI[Pooo] = {z000 z C { 0 , 1 } * und z000 enthtilt
das Teilwort 1 10 nicht },
Kl[Pool] = {x001 x e {0, 1}* und z001 enthtilt
das Teilwort 1 10 nicht },
Kl[Polo] = {z010 z ~ {0, 1}* und z010 enth~lt
das Teilwort 1 10 nicht },
Kl[PlOO] = {xl00 x e {0, 1}* und zl00 enthtilt
das Teilwort 1 10 nicht },
Kl[Po11] = { z o l l z ~ {o, 1}* und z011 enth~lt
das Teilwort 1 10 nicht },
Kl[PlOl] = { z l o l z ~ {o, 1}* und z 101 enth~lt
das Teilwort 1 10 nicht },
Kl[p111] = {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 91

O/ \1 O/ \1

0/~1 0/~1 10/~1 0/~1

OI (Poook---z---~Pool)-- z-------~Polo) (POll) (Ploo) (PlOl) ((Pllo)~P111) )1

1,0

Fig. 3.8

Deswegen sind die Kanten immer so gelegt, dass durch das Lesen eines wei-
teren Symbols immer der dem neuen Suffix der Lgnge 3 entsprechende Zu-
stand 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}.
92 3 Endliche Automaten

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 akzeptie-
ren:
(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:


(~) {zllllylz, y C {0, 1,2}*},
(b) {zll0110y I z,y E {0,1,2}*},
(~) {x010101y I x, y C {0, 1}*},
(d) {xOy l x, y C {0, 1}*},
(+) {z0ylz I x,y,~ 9 {0, 1}*},
(f) {zE{O, 1}* l lzlo _> 3},
(g) { x c {0,1}'13 _< Ixl~ _ 5},
(h)* {zOOlylOlz I z, y , z E {0,1}*},
(i) {xOOlll x c {0,1}*},
(J) {zlO011 1z c {0,1}*},
(k) {lzllO01l z c {0,1}*},
(1) {xllOOlyO I x, y ~ {0,1}*}.

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 93

(c) {w C {a,b,c}* l w : xaabby, x,y c {a,b,c}*,


(d) {w E {0,1}* I Iwl0 - 1 (rood3) und w=x111yfflr x,y E {0,1}*},
(e) {abbxb3y ] x,y 9 {a,b}*},
(f) {w 9 {a,b}*]w : abbz fiir ein z 9 {a,b}* und w : ub3v mit u,v 9 {a,b}*}.
(g) {xy 9 {0, 1}* I YY 9 {000,010,100,101}}, und
(h) {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 Forde-
rung ist, dass man einen Schritt der simulierten Berechnung durch mehrere
Schritte simulieren daft. Eine noch schwgchere Form verzichtet auf die Si-
mulation 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 <9 E {U, A , - } existiert
ein EA M , so dass

Beweis. Die Idee des Beweises ist, den EA M so zu konstruieren, dass M


gleichzeitig die Arbeit von beiden A u t o m a t e n M, und M2 simulieren kann. r
Die Idee der Simulation ist einfach. Die Zustgnde von M werden Paare (q, p),

7Im Prinzip hat M auch keine andere M6glichkeit, weil die M6glichkeit, zuerst M1 und dann
M2 zu simulieren, nicht besteht (die Eingabe steht nur einmal zum Lesen zur Verfiigung).
94 3 Endliche Automaten

~1 ixllx21 ix~l ~ ixlx21 x~l


t t

~ ixllx21 Ix~l I
t
(q,p)

Fig. 3.9

wobei q ein Zustand yon 3/1 und p ein Zustand yon 3/2 ist. Das erste Element
yon (q,p) soll q sein genau dann, wenn sich M1 auch gerade im Zustand q
befindet. Analog soll das zweite Element des Zustandes yon M p sein genau
dann, wenn M2 sich im Zustand p befindet (Fig. 3.9).
Den formalen Beweis fiihren wir in zwei Schritten durch. Zuerst geben wir eine
formale Konstruktion des EA M und beweisen dann, dass M beide EA M1
und M2 simuliert.
Die Konstruktion yon M.
Sei M = (Q, E, ~, qo, FG), wobei

(i) (~ = (~1 X 02~


(ii) qo = (qol, qo2),
(iii)
(iv) f a l l s G = U , d a n n i s t F = F l • xF2
{Mindestens einer yon M1 und M2 endet in einem akzeptierenden Zu-
stand.},
falls Q = D, dann ist F = F1 • F2
{Beide M1 und M2 miissen akzeptieren.}, und
falls (D = - , dann ist F = F1 • ( Q 2 - F2)
{M1 muss akzeptieren und M2 darf nicht akzeptieren.}.

Beweis der Behauptung L ( M ) - L(MI) Q L(M2).


Um die Behauptung flit jedes Q E {U, D, - } zu beweisen, reicht es, die folgende
3.3 Simulationen 95

Gleichheit zu zeigen:

~((qol,qo2),x)- (~l(qol,x),~2(qo2, X)) fiir alle x E E*. (a~)


Wir beweisen (3.1) durch Induktion beziiglich Ixl.

1. Induktionsanfang.
Falls x = A, ist (3.1) offenbar erfiillt.
2. Induktionsschritt.
Wir beweisen fiir jedes i E IN, dass, wenn (3.1) erfiillt ist fiir jedes x E E* mit
Ixl _< i, dann ist (3.1) erfiillt ftir jedes w E E ~+1.
Sei w ein beliebiges Wort aus E i+1. Dann ist w = za ftir irgendwelche z E E i
und a E E. Aus der Definition der Funktion ~ erhalten wir

3((qol, qo~), ~) 3((qo,, qo~), ~a)


a(3((qo,, vow),~), a)
(5(((~1(qol, z), (~2(qo2, z)), a)
(3.1)

Def.5
(~1 (a,(q0,, ~), a), a~(3~(q0~, ~), a))
((~1(q101, za), (~2(q202, za))
((~1(q101, w), ~2(q202, w)).

A u f g a b e 3.10. Sei L C_ E* eine regulgre Sprache. Beweisen Sie, dass auch L C - E* - L


eine regulgre Sprache ist.

Die vorgestellte Simulation bietet uns eine modulare Technik zum Entwurf
von endlichen A u t o m a t e n . Dieser strukturierte Ansatz ist besonders fiir grSfte-
re und komplexere A u t o m a t e n geeignet, weil er nicht nur den Entwurfsprozess
veranschaulicht, sondern auch die Verifikation des entworfenen A u t o m a t e n vet-
einfacht. Die Idee der modularen Entwurfsstrategie ist, zuerst einfache Auto-
m a t e n fiir einfache Sprachen zu bauen und dann aus diesen ,,Bausteinen" den
gesuchten EA zusammenbauen. Wir illustrieren diese Entwurfsmethode durch
das folgende Beispiel.

B e i s p i e l 3.3. Seien L1 - {x E {0, 1}*I xlo ist gerade}, und L2 - {x E


{0, 1}* I IXll -- 0 oder Xll ~ 3}. Wir bauen zuerst zwei endliche A u t o m a t e n
M1 und M2 mit L(M1) - L1 und L(M2) - L2, die in Abbildung 3.10 und
Abbildung 3.11 dargestellt sind.
96 3 Endliche Automaten

Fig. 3.10 -/1//1

0 0 0 0,1

Fig. 3.11 M2

Wie unsere Idee besagt, hat M die Zustandsmenge

{(q0,P0), (q0,Pl), (q0,P2), (q0,P3), (ql,P0), (ql,Pl), (ql,P2), (ql,P3)}"


Um M iibersichtlich zu zeichnen, legen wir die Zustgnde von M matrixartig
auf ein Blatt Papier (Abbildung 3.12). Die erste Zeile beinhaltet Zustgnde
mit der ersten Komponente qo und die zweite Zeile Zustgnde mit q~ als erste
Komponente. Die i-te SpaRe fiir i = 0, 1, 2, 3 beinhaltet die Zustgnde mit der
zweiten Komponente p~.
Jetzt muss man anhand von M1 und M2 die Kanten ({Jberg/~nge) bestimmen.
Zum Beispiel geht M1 aus q0 bei 0 in ql fiber und M2 bleibt beim Lesen von 0
in P0. Deswegen geht M aus (q0, P0) beim Lesen yon 0 in (ql, P0) fiber.
Nachdem auf diese Weise alle Kanten bezeichnet worden sind, beobachten wir
in Abbildung 3.12, dass wir in den Spalten die Anzahl der Nullen modulo 2
rechnen und in den Zeilen die Anzahl Einsen von 0 bis 3 z~hlen. Also bedeutet
der Zustand (q~,pj) fiir i E {0, 1},j E {0, 1,2,3}, dass der bisher gelesene
PrS~fix z genau j Einsen beinhaltet (wenn j = 3 mindestens 3 Einsen) und
IZlo rood 2 = i. Damit sind alle fiir uns wichtigen Merkmale der gelesenen
W6rter in M beobachtet (gespeichert).
3.3 Simulationen 97

) 1 ~ ) 1
70,po " ]o, pl

o/ 0 0( 0 o( o

~1,
1 "( 11, 1 " )rl~

Fig. 3.12 M

Welche sind die akzeptierenden Zust/tnde? Das h~ngt davon ab, was fiir eine
Sprache wir akzeptieren wollen. Wenn wir zum Beispiel die Sprache

L1 K/L2 = L(M1) N L(M2)

akzeptieren wollen, dann mfissen wir genau dann akzeptieren

wenn beide M1 und 3/2 akzeptieren.

Das bedeutet: die akzeptierenden Zustgnde von M sind genau die Zustgnde,

wo beide Komponenten akzeptierende ZustS~nde von M1 und M2


sind.

Weil q0 der einzige akzeptierende Zustand von M1 ist und die akzeptieren-
den ZustS~nde von 3/2 die ZustS~nde P0 und P3 sind, sind die akzeptierenden
ZustS~nde von M

die ZustS~nde (qo,po) und (qo,Pa).


Wenn M die Sprache

L1 U L2 = L(M1)U L(M2)

akzeptieren sollte, dann akzeptiert M genau dann, wenn

mindestens einer der endlichen Automaten M1 und M2 akzeptiert.


98 3 Endliche Automaten

Das bedeutet: die akzeptierenden ZustSonde yon M sind genau die ZustS~nde

wo mindestens eine K o m p o n e n t e einem akzeptierenden Zustand


von/1/1 oder M2 entspricht.

Somit sind die akzeptierenden ZustS~nde fiir L1 U L2 die folgenden ZustS~nde:

(q0, P0), (q0, Pl), (q0, P2), (q0, P3), (ql, P0), (q0, P3)"
D

A u f g a b e 3.11. Betrachten Sie M aus Beispiel 3.3. Bestimmen Sie die Menge der akzep-
tierenden Zust~nde wenn M die folgenden Sprachen akzeptieren soll.
I!} L(M1)-L(M2)-{xC{O'I}*
u n d x ~ L ( M 2 ) } L ( M 2 ) - L ( M 1 )xCL(M1)
{0, 1}* - (L(M1) N L(M2
l~} {O'I}*-(L(MI UL(M21
({0, 1]* - L(M1 ) U L ( M
({0, 1}* - L(M2 ) n L(M .

A u f g a b e 3.12. Nutzen Sie die Methode des modularen Entwurfs um folgende endlichen
Automaten fiir folgende Sprachen zu bauen:

(d)
xC
x c 0,
x c
~ i}
0,

0, I}!
*
mod2=lund
mod
1_< x 1_<3}
l0 mod 3 c {0, 1} und @xll + x 9) mod 2 = 0}
ist gerade und x enthalt ([as TeiIwort 0101}
}efl x E O, x - yOOzllv fiir y, z, v E {O, 1}* und x 0 mod3-2}
x c 0, a,b}* x enth~tlt das Teilwort l l l o d e r
. x enthgolt das Teilwort aba}
(g) {x c {0, 1}*Ix beginnt mit dem Prafix 011 und x
enth~tlt 100 als Teilwort}
(h) {x c {0,1}* Ix enthalt entweder 0101 als Teilwort
oder endet mit dem Suffix 111}
x E } 0 : ~,~21"
j x o i s t g e r a d e A x 1 istungerade A X l l + x 2_>2}
/J/ } x E x enth~tlt mindestens eins der folgenden
Teilw6rter: 0011,110}
A u f g a b e 3.13. Betrachten Sie die folgenden Sprachen:

L1 = {x E {0, 1, 2}* I IXlo ist gerade},


L2 = {x c {0, 1,2}* I Ixll ist ungerade},
L3 = {x E {0, 1, 2}* I Ixl2 ist gerade}.

Bauen Sie drei endliche Automaten M1, M2 und M3, so dass L(M1) = L1, L(M2) = L2 und
L(M3) = L3. K6nnen Sie jetzt mit der modularen Entwurfstechnik einen EA M konstruie-
ren, so dass

L(M) = (L1 n L2)U L3 ?


3.4 Beweise der Nichtexistenz 99

3.4 Beweise der Nichtexistenz

Um zu zeigen, dass eine Sprache L nicht regular ist (L ~ 12(EA)), geniigt es


zu beweisen, dass es keinen EA gibt, der die Sprache akzeptiert. Im Allgemei-
hen zu zeigen, dass yon einer gewissen Klasse yon Programmen (Algorithmen)
eine konkrete Aufgabe nicht 15sbar ist (kein Programm aus der Klasse 15st die
Aufgabe), gehSrt zu den schwersten Problemstellungen in der Informatik. Be-
weise solcher Aussagen nennen wir Beweise der Nichtexistenz. Im Unterschied
zu konstruktiven Beweisen, bei denen man die Existenz eines Objektes mit
gewissen Eigenschaften direkt durch eine Konstruktion eines solchen Objek-
tes beweist (z.B. wir konstruieren einen EA M mit vier Zustgnden, der eine
gegebene Sprache akzeptiert), kann man bei den Beweisen der Nichtexistenz
mit einer unendlichen Menge yon Kandidaten (z.B. allen endlichen Automa-
ten) nicht so vorgehen, dass man alle Kandidaten einen nach dem anderen
betrachtet und iiberpriift, dass keiner die gewiinschten Eigenschaften hat. Um
die Nichtexistenz eines Objektes mit gegebenen Eigenschaften in einer un-
endlichen Klasse von Kandidaten zu beweisen, muss man f~r gewShnlich eine
tiefgreifende Kenntnis fiber diese Klasse haben, die im Widerspruch zu den
gewiinschten Eigenschaften steht.
Weil die Klasse der endlichen Automaten eine Klasse yon sehr stark einge-
schrS~nkten Programmen ist, sind die Beweise der Nichtexistenz der Art ,,es
gibt keinen EA, der die gegebene Sprache L akzeptiert" relativ leicht. Wir
nutzen dies hier, um eine einfache Einfiihrung in die Methodik der Herstellung
yon Beweisen der Nichtexistenz zu geben.
Wir wissen, dass endliche Automaten keine andere Speicherm6glichkeit als den
aktuellen Zustand (Nummer der aufgerufenen Programmzeile) besitzen. Das
bedeutet ftir einen EA A, der nach dem Lesen zweier unterschiedlicher WSrter
x und y im gleichen Zustand endet (also (~(q0, x) - (~(q0, y)), dass A in Zukunft
nicht mehr zwischen x und y unterscheiden kann. Mit anderen Worten bedeutet
dies, dass fiir alle z E E* gilt, dass

Formulieren wir diese wichtige Eigenschaft im folgenden Lemma.

L e m m a 3.3. Sei A = (Q, E, 5A, qo, F) ein EA. Seien x, y E E* , x r so


dass

(qo, @ (p, A) (qo, y) (p, A)


100 3 Endliche Automaten

fiir ein p E Q (also ~A(qo, x) -- ~A(qO, Y) - - P (x, y E Kl[p])). Dann existiert


fiir jedes z E E* ein r E Q, so dass x z und yz E Kl[r], also

x z E L ( A ) ~ yz E L(A).

Beweis. Aus der Existenz der Berechnungen

yon A folgt die Existenz folgender Berechnung auf x z und yz

(qo, y~) ~ (p, ~)


fiir alle z E E*. Wenn r - ~A(P, z) (also wenn (p, z ) ~ (r, A) die Berechnung
yon A auf z ausgehend vom Zustand p) ist, dann ist die Berechnung yon A auf
xz

(q0, ~) ~ (p, ~) ~ (<, A)


und die Berechnung yon A auf y z

(q0, y~)@ (p, ~ ) ~ (~, a).


Wenn r E F, dann sind beide WSrter z z und yz in L(A). Falls r r F, dann
ist xz, yz ~ L ( A ) . D
Lemma 3.3 ist ein Spezialfall einer Eigenschaft, die ftir jedes (deterministische)
Rechnermodell gilt. Wenn man einmal in den Berechnungen auf zwei unter-
schiedlichen Eingaben die gleiche Konfiguration s erreicht, dann ist der weitere
Verlauf beider Berechnungen identisch. Im Fall eines Entscheidungsproblems
bedeutet dies, dass entweder beide Eingaben akzeptiert werden oder beide
verworfen werden. Lemma 3.3 kann man leicht anwenden, um die Nichtregu-
laritS~t mehrerer Sprachen zu zeigen. Sei L = {0~1 ~ I n E IN}. Intuitiv sollte L
fiir jeden EA deswegen schwer sein, weil man die Anzahl der vorkommenden
Nullen speichern sollte, um diese dann mit der Anzahl nachfolgender Einsen
vergleichen zu kSnnen. Aber die Anzahl yon Nullen im PrS~fix 0~ kann belie-
big grog sein und jeder EA hat eine feste Gr6t3e (Anzahl der Zust~nde). Also
kann kein EA die vorkommenden Nullen in jedem Eingabewort zS~hlen und wir

SDies gilt nur, wenn man eine Konfiguration als vollst~indige Beschreibung des allgemei-
nen Zustandes des Rechnermodells (einschliefilich des noch erreichbaren Teils der Eingabe)
betrachtet.
3.4 Beweise der Nichtexistenz 101

brauchen nur formal auszudriicken, dass dieses ZS~hlen erforderlich ist, u m L


zu akzeptieren.
Wir zeigen indirekt, dass L ~ Z;(EA). Sei A = (Q, Ebool, 6A, q0, F ) ein EA mit
L ( A ) = L. Man betrachte die W 6 r t e r

01 0 2 0 3
~ ~ 9 . . ~
0 Q +1

Weil die Anzahl dieser W 6 r t e r IQI + 1 ist, existieren i, j E {1, 2 , . . . , IQI + 1},
i < j, so d ass

0 -

Nach L e m m a 3.3 gilt

Oiz C L4:=~OJz c L

fiir alle z E (Ebool)*. Dies gilt aber nicht, weil fiir z = 1i das Wort 0il i E L
und das Wort 0j i i r L.

Aufgabe 3.14. Beweisen Sie mit HiKe von Lemma 3.3, dass die folgenden Sprachen nicht
in s sind:
(a) {w C {a,b}*llWla = IWlb},
(b) {a~b~c~ l n , m E IN},
(c) {w E {0, 1,~}*lw = xCpx fiir ein x E {0, 1}*},
(d) { x l y E {0,1}*llx I = lYl}.

Um die Beweise der NichtregularitS~t von konkreten Sprachen anschaulich und


einfach zu machen, sucht m a n nach leicht tiberpr/ifbaren Eigenschaften, die je-
de regulS~re Sprache erfiillen muss. Wenn eine Sprache L eine solche Eigenschaft
nicht besitzt, weifi m a n direkt, dass L nicht regulS~r ist. Im Folgenden zeigen
wir zwei solcher Methoden zum Beweis yon Aussagen der Form L r s
Die erste Methode nennt m a n Pumping. Sie basiert auf folgender Idee. Wenn,
ftir ein Wort x und einen Zustand p eines EA A,

dann gilt auch


102 3 Endliche A u t o m a t e n

fiir alle i E IN (Fig. 3.13). Also kann A nicht unterscheiden, wie viele x gelesen
worden sind. Daher ist, wenn 5A(qo, Y) -- P f/Jr ein y E E* und 5A (P, z) -- r f/Jr
ein z E E* (Fig. 3.13),

(qo, y ~ ) ~-(p, ~ ) @ (p, ~) ~ (a, ~)


die Berechnung von A auf yz~z fiir alle i c IN (also {yz~z I i c IN} c_ Kl[r] fiir
ein r E Q). Dies bedeutet, dass A entweder alle W S r t e r yz~z fiir i E IN (falls
r E F ) akzeptiert, oder dass A kein Wort aus {yz~zli E N} akzeptiert.

qo P P

y x x

t
qo
t
p p p
t p r

Fig. 3.13

L e m m a 3.4. Das P u m p i n g - L e m m a ffir regul~ire Sprachen


Sei L regular. Dann existiert eine Konstante no E IN, so dass sich jedes Wort
w E E* mit ]w] >_ no in drei Teile y, x und z zerlegen liisst, d.h. w - y x z ,
wobei

]yxl < no,


(ii) Ix[ _> 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~,~ ~ ~o)


(q~,~ ~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 <_ no gilt,
ist y - 01 und x - 0 "~ ftir irgendwelche l, m E IN. Nach (ii) ist m ~ 0. Weil
w - 0~~ ~~ E L, ist { y x k z I k E IN} - {0~~ ~~ I k E IN} C_ L. Das ist
aber ein Widerspruch, weil y x ~ - y z - 0~~ ~~ r L (es ist sogar so, dass
0~~ ~~ das einzige Wort aus { y x ~ z I k E IN} ist, das in L liegt).
Bei der A n w e n d u n g des P u m p i n g - L e m m a s ist es wichtig, dass wir das Wort w
frei w~hlen kSnnen, weil das L e m m a fiir alle ausreichend langen WSrter gilt.
Die Wahl des Wortes w ist insbesondere wichtig aus folgenden zwei Griinden.
Erstens kann m a n fiir w eine ,,schlechte" Wahl treffen in dem Sinne, dass m a n
mit diesem Wort und der P u m p i n g Methode die Tatsache L r s nicht
beweisen kann. Fiir die Sprache L - {0~1 ~ I n E IN} ist ein Beispiel einer
schlechten Wahl das Wort

w-O~O gt L.

Es besteht die M6glichkeit, das Wort w wie folgt zu zerlegen:

w - yxz mit y - 0, x - 0, z - 0 ~~

Klar, dass das P u m p i n g L e m m a fiir dieses w gilt, weil keines der WSrter in

{yxkz I k E I N } - {0~~ I k E IN}

zu L geh6rt und so die Eigenschaften (i), (ii) und (iii) erfiillt sind.
Zweitens kann m a n WSrter w/~hlen, die den Beweis yon L ~ s zwar
erm6glichen, aber nicht als giinstig anzusehen sind, weil eine Menge von Arbeit
notwendig ist, u m zu beweisen, dass keine Zerlegung des gewghlten Wortes alle
drei Eigenschaften (i), (ii) und (iii) erfiillt, a l s Beispiel b e t r a c h t e n wir die Wahl
des Wortes

w -- 0 [~o1211 [~o121

ftir die Sprache L - {0~1 ~ I n e IN}. Dieses Wort k6nnen wir benutzen u m
L ~ s zu zeigen, aber wir mtissen dabei mindestens die folgenden drei
F/tlle von m6glichen Zerlegungen b e t r a c h t e n 9.

9Fiir das Wort 0~~ ~~ garantiert die Eigenschaft (i) des Pumping Lemmas, dass x nur aus
Nullen besteht. Fiir das Wort 0 [~~ 1[~~ kann x ein beliebiges nichtleeres Teilwort von
w sein.
3.4 Beweise der Nichtexistenz 105

(i) y = 0 i, x = 0 "~, z = 0[~~176


ffir ein i E IN u n d ein m E I N - {0}, d.h. x b e s t e h t nur aus Nullen.
{In diesem Fall k a n n m a n das gleiche A r g u m e n t wie f~r das W o r t w =
0 ~~ 1~~ nutzen, u m zu zeigen, dass die Eigenschaft (iii) des P u m p i n g Lem-
m a s nicht gilt.}
(ii) y -- X -- Oral j, Z -- l[n~
ffir positive ganze Zahlen m u n d j, d a h e r enthSJt x m i n d e s t e n s eine Null
u n d m i n d e s t e n s eine 1.
{In diesem Fall ist (iii) nicht erftillt, weil x = y x z E L u n d y x 2 z ~ L
( y x 2 z - orn~ [n~ h a t nicht die F o r m a'b*).}
(iii) y = 0F~o/21 1i, x = 1"~, z = 1 [~~
fiir ein i E IN u n d ein m E I N - {0}.
{In diesem Fall k a n n m a n die A n z a h l der Einsen e r h 6 h e n ohne die A n z a h l
der Nullen zu 5mdern u n d so y x ' z ~ L fiir alle 1 E IN - { 1}.}

Also sehen wir, dass die W a h l des W o r t e s 0[~~ [~~ fiir den Beweis yon
L ~ s zu viel m e h r A r b e i t fiihrt als die W a h l des W o r t e s 0~~ ~~

Aufgabe 3.15. Beweisen Sie durch Anwendung des Pumping-Lemmas, dass die folgenden
Sprachen nicht regulgr sind:
(i) {ww I w c {0,1}*},
(ii) {anbncn i n c IN},
(iii) {wE{0,1},iiwio=iwi1},
(iv) {an2 I n E IN},
(v) {a 2n c

(vi) {w C {0,1}* I Iwlo - 21wll}, und


(vii) { x l y i x, y c {O, 1}*,l x ]=]y]}.

Aufgabe 3.16. Beweisen Sie folgende Version des Pumping-Lemmas:


Sei L c_ E* regulgr. Dann existiert eine Konstante no E IN, so dass sich jedes Wort w E E*
mit IwI _> no in drei Teile w - yxz zerlegen l~isst, wobei
(i)
(ii) x _>lund
(iii) entweder {yxkz I k c IN} C_ L oder {yxkz I k c IN} N L - O.

Aufgabe 3.17.* Formulieren und beweisen Sie eine allgemeinere Form des Pumping-Lemmas,
die Lemma 3.4 und das Lemma aus der Aufgabe 3.16 als Spezialfiille beinhaltet.

Im Folgenden stellen wir eine M e t h o d e z u m Beweis der N i c h t r e g u l a r i t ~ t vor,


die auf der K o l m o g o r o v - K o m p l e x i t ~ t b e r u h t . Sie zeigt auf eine andere Weise,
dass endliche A u t o m a t e n nicht beliebig lange zghlen k 6 n n e n (oder nicht so
viele I n f o r m a t i o n e n fiber das bisher gelesene W o r t speichern k6nnen). Diese
106 3 Endliche Automaten

Methode basiert auf dem n~tchsten Satz, der zeigt, dass nicht nur alle WSrter
einer regul~tren Sprache eine kleine Kolmogorov-Komplexit~tt haben, sondern
auch alle Suffixe von W6rtern einer regul~ren Sprache. So ist Satz 3.1 eine
Verfeinerung des Satzes 2.2 fiir regul~tre Sprachen.

S a t z 3.1.* Sei L C (Y]bool)* eine Feg~tlaFe Sprache. Sei Lx - {y E E* l xy E


L} fiir jedes x E E*. Dann existiert eine Konstante const, so dass fiir alle
x , y E E*

K(y) <_ [log2(n + 1)] + const

falls y das n-te Wort in der Sprache Lx ist.

Beweis. Weil L regulgr ist, existiert ein EA M mit L ( M ) = L. Die Idee des
Beweises ist 5~hnlich dem Beweis von Satz 2.2, aber nicht gleich. Wenn wir
den Beweis des Satzes 2.2 genau verfolgen wtirden, wtirden wir in kanonischer
Reihenfolge alle WSrter z aus E* nacheinander generieren und fiir jedes Wort
x z durch die Simulation von M auf x z bestimmen, ob x z E L = L ( M ) . Das
n-te akzeptierte Wort der Form x z bestimmt, dass z das n-te Wort in Lx
ist. Die SchwS~che dieses Ansatzes liegt darin, dass man dem P r o g r a m m zur
Generierung von y nicht nur n und M geben muss, sondern auch x. Das Wort x
kann aber eine beliebig groi3e Komplexit~t K ( x ) im Vergleich zu K ( y ) haben.
Die Kernidee hier ist, dass wir einem P r o g r a m m zur Generierung von y das
Wort x gar nicht geben miissen. Es geniigt, ihm den Zustand 5(q0, x) zu geben
und dann die Simulation auf den generierten WSrtern z immer aus ~(q0, x) zu
starten.
Sei y das n-te Wort in Lx fiir ein x E E*. Das P r o g r a m m Ax,y zur Generierung
von y arbeitet wie folgt:
Ax,y: begin
z:--A; i:--O;
while @ < n do begin
Simuliere die Arbeit von M aus dem Zustand ~(q0, x) auf z;
i f ~(~(q0, x), z ) E F t h e n
begini:=i+l; y:=z;
end;
z := kanonischer Nachfolger yon z.
end;
write(y);
end.
3.4 Beweise der Nichtexistenz 107

Ftir alle x,y ist Ax,y gleich bis auf n und den Zustand 5(qo, x). Aber den
Zustand 5(qo, x) k6nnen wir in die Beschreibung yon M mit einem speziel-
len Zeiger auf 5(q0, x) einbetten. Weil es nur IQI MSglichkeiten fiir den
Zeiger gibt, existiert eine Konstante constM, die die Ls der vollstgndigen
Beschreibung von M mit dem Zeiger auf einen der Zustgnde (egal welchen)
beinhaltet. Die LS~nge der Beschreibung yon Ax,y auger den Parametern n, M
und 5(q0, x) ist eine Konstante d beziiglich x und y. Die Zahl n kann man in
[log 2(n + 1)] Bits darstellen. Also gilt

K(y) <_ [log2(n + 1)] + constM + cl.


D
Wir wenden den Satz 3.1 an, ura noch einmal L = {0~1~ I n E IN} ~ s
indirekt zu beweisen. Sei L regular. F/Jr jedes m E IN ist 1"~ das erste Wort in
der Sprache

Lo-~ - {y I 0"~y E L} - {OJl"~+Jlj E IN}.


Satz 3.1 folgend, existiert eine Konstante c unabhgngig von m (ngmlich von
dem Wort 1"~), so dass

K(1 "~) _< K(1) + c.

Weil K(1) auch eine Konstante ist, gilt fiir eine Konstante d - K(1) + c

K(1 "~) _< d (3.5)

fiir alle m E I N - {0}. Dies ist aber nicht mSglich, weil

(i) die Anzahl aller Programme, deren Lgnge kleiner oder gleich d sind, endlich
ist (hSchstens 2 a) und
(ii) die Menge {1"~ I m E IN} unendlich ist.

Eine andere Argumentation als zu sagen, dass endlich viele unterschiedliche


Programme nicht unendlich viele unterschiedliche W6rter generieren k6nnen,
ist, die Behauptung aus Aufgabe 2.29 anzuwenden. Diese Behauptung sichert
die Existenz yon unendlich vielen Zahlen m m i t K ( m ) _> [log2(m + 1)] - 1.
Weil es ein b E IN gibt, so dass IK(1 "~) - K(m)l _< b fiir alle m E IN, steht
K ( m ) _> [log2(m+ 1)] - 1 fiir unendlich viele m E IN im Widerspruch zu (3.5).

Aufgabe 3.18. Wenden Sie den Satz 3.1 an, um die Nichtregularit~t folgender Sprachen
zu beweisen:
(i) {0 n2 nEIN},
108 3 Endliche Automaten

(ii) {02~"lncIN},
(iii) {wE{0,1}*llwlo=2.1Wll}und
(iv) {w E {0, 1}*lw = x x fiir ein x E {0, 1}*}.

3.5 Nichtdeterminismus

Die standardm/~f3igen Programme sowie die bisher betrachteten endlichen Au-


tomaten sind Modelle von deterministischen Berechnungen. Determinismus be-
deutet in diesem Kontext, dass in jeder Konfiguration eindeutig festgelegt ist
(determiniert ist), was im n~chsten Schritt passieren wird. Daher bestimmen
ein Programm (oder ein EA) A und seine Eingabe x vollstgndig und eindeutig
die Berechnung von A auf x. Nichtdeterminismus erlaubt in gewissen Konfi-
gurationen eine Auswahl yon mehreren Aktionen (M6glichkeiten, die Arbeit
fortzusetzen). Dabei reicht es, wenn mindestens eine der M6glichkeiten zu dem
richtigen Resultat fiJhrt. Dies entspricht einem auf den ersten Blick kiJnstli-
chen Spiel, so, als ob ein nichtdeterministisches Programm immer die richti-
ge M6glichkeit wS~hlt. Diese Wahl einer von mehreren M6glichkeiten nennen
wir n i c h t d e t e r m i n i s t i s c h e E n t s c h e i d u n g . F/Jr ein Entscheidungsproblem
(E, L) bedeutet dies, dass ein nichtdeterministisches Programm (nichtdeter-
ministischer EA) A eine Sprache L akzeptiert, falls fiJr jedes x E L mindestens
eine akzeptierende Berechnung von A auf x existiert und f/Jr jedes y E E* - L
alle Berechnungen nicht akzeptierend sind. Obwohl ein nichtdeterministisches
Programm nicht zum praktischen Einsatz geeignet scheint (und wir kein Ora-
kel haben, das uns helfen wiirde, die richtige nichtdeterministische Entschei-
dung zu treffen), hat das Studium yon nichtdeterministischen Berechnungen
einen wesentlichen Beitrag zum VerstS~ndnis von deterministischen Berechnun-
gen und zur Untersuchung der Grenze der M6glichkeiten, Probleme algorith-
misch zu 16sen, geliefert.
Die Zielsetzung dieses Teilkapitels ist es, Nichtdeterminismus auf dem Modell
der endlichen Automaten einzufiJhren und zu untersuchen. Dabei interessieren
uns die fiJr allgemeine Berechnungsmodelle zentralen Fragen, ob man nichtde-
terministische Berechnungen deterministisch simulieren kann und falls ja, mit
welchem Berechnungsaufwand.
Fiir Programme k6nnte man Nichtdeterminismus z.B. mit einem Befehl
,,choose goto i or goto j" einfiJhren. Bei endlichen Automaten fiihren wir
Nichtdeterminismus so ein, dass wir einfach aus einem Zustand mehrere Uber-
g5nge fiir das gleiche Eingabesymbol erlauben (Fig. 3.14).
3.5 Nichtdeterminismus 109

Fig. 3.14

D e f i n i t i o n 3.3. Ein n i c h t d e t e r m i n i s t i s c h e r e n d l i c h e r A u t o m a t (NEA)


ist ein Quintupel M = (Q, E~ 5~ qo, F). Dabei ist

Q eine endliche Menge, Z u s t a n d s m e n g e genannt,


~) E ein Alphabet, E i n g a b e a l p h a b e t genannt,
qo E Q der A n f a n g s z u s t a n d ,
~) F c_ Q die Menge der a k z e p t i e r e n d e n Z u s t ~ i n d e und
5 eine Funktion 1~ yon Q • E nach 79(Q), U b e r g a n g s f u n k t i o n genannt.

{ Wit beobachten, dass Q, E, qo und F die gleiche Bedeutung wie bei einem EA
haben. Ein NEA harm abet zu einem Zustand q und einem gelesenen Zeichen
a mehrere Nachfolgezustiinde oder gar keinen haben.}
Eine K o n f i g u r a t i o n von M ist ein Element aus Q • E*. Die Konfiguration
(qo, x) ist die S t a r t k o n f i g u r a t i o n ffir d a s W o r t x.
Ein S c h r i t t y o n M ist eine Relation ~ - C_ (Q x E*) • (Q x E*), definiert
dutch

(q, ~ ) - ~ - ( p , ~) ~ , ~ - a~ f ~ ~i~ a e r ~ d ; c 5(q, a).

Eine B e r e c h n u n g v o n M i s t eine endliche Reihenfolge D1, D 2 , . . . , D~ von


Konfigurationcn, wobei Di - ~ Di+l fiir i - 1 , . . . , k 1. Eine B e r e c h n u n g
v o n M a u f x ist eine Berechnung Co, C 1 , . . . , C,~ yon M , wobei Co = (qo, x)
~d ~t~d~ C~ ~ O • { ~ } o d ~ O~ = (q, a~) f ~ ~i~ ~ ~ ~ ~ d ~i~ q ~ O, ~o
dass 5(q, a) = O. Co, C 1 , . . . , C,~ ist eine a k z e p t i e r e n d e Berechnung yon M

von M auf x existiert, sagen wir auch, dass M d a s W o r t x a k z e p t i e r t .


Die Relation - ~ ist die reflexive und transitive Hiille 11 von [M 9

l~ kann man 5 als eine Relation auf (Q • E) • Q definieren.


l lGenau wie bei einem EA.
110 3 Endliche A u t o m a t e n

Die Sprache

L(M) - {w E ~* I (q0, w) ~ (p, A) f ~ ~i~ p ~ F}

ist die v o n M a k z e p t i e r t e S p r a c h e .
.. ^

Zu der Ubergangsfunktion ~ definieren wit die Funktion ~ von Q • E* in 79(Q)


wie folgt:

(~(q, A) -- {q} fiir jedes q E Q,


(//) ~(q, wa) - {p l ~ existiert ein r E ~(q, w), so dass p E ~(r, a) }
- U~3(~,~)~(~, a)
fiir alle q E Q,a E E , w E E*.

Wir sehen, dass ein Wort x in L ( M ) ist, wenn M mindestens eine akzeptie-
rende Berechnung auf x hat. Bei einer akzeptierenden Berechnung auf x wird
wie bei einem EA gefordert, dass das ganze Wort x gelesen wird und nach dem
Lesen des letzten Buchstabens M in einem akzeptierenden Zustand ist. Im Un-
terschied zu endlichen Automaten kann eine nicht akzeptierende Berechnung
enden, auch wenn die Eingabe nicht vollstgndig gelesen wurde. Dies passiert,
wenn der NEA in einem Zustand q das Symbol a liest und 5(p, a) = 0, d.h. es
existiert keine M6glichkeit, die Berechnung fortzusetzen.
Der Definition von ~ folgend sehen wir, dass ~(q0, w) die Menge aller Zustgnde
aus Q ist, die aus q0 durch das vollstS~ndige Lesen des Wortes w erreichbar
sind. Daher ist

L ( ~ ) - {w c ~* I 3(Go, w ) n F # 0}
eine alternative Definition der von M akzeptierten Sprache.
Betrachten wir folgendes Beispiel eines NEA. Sei M = (Q, E, ~, qo, F), wobei
Q = {qo, ql, q~}, ~ = {o, 1}, F = {q~} ~ d
~(qo, o) = {qo}, ~(qo, 1) = {qo, ql},
~(ql, o) = 0, ~(ql, 1) = {q~},
6(q2, 0 ) = {q2}, 6(q2, 1 ) = {q2}.
Auf die gleiche Weise wie bei endlichen Automaten stellen wir eine graphische
Darstellung yon M (Fig. 3.15) vor.
Das Wort 10110 ist in L ( M ) , weil

(qo, 10110) ~ (qo,0110) ~ (qo, 110) ~ (ql, 10) ~ (q2,O) ~ (q2,~)


3.5 Nichtdeterminismus 111

0,1

Fig. 3.15

eine akzeptierende Berechnung von M auf x ist.

Um entscheiden zu kSnnen, ob ein NEA M ein Wort x akzeptiert, muss man


alle Berechnungen von M auf x verfolgen. Eine anschauliche Darstellung aller
Berechnungen von M auf x ist durch den sogenannten B e r e c h n u n g s b a u m
BM(X) v o n M a u f x gegeben. Die Knoten des Baumes sind Konfigurationen
von M. Die Wurzel yon BM(x) ist die Anfangskonfiguration von M auf x.
Die S6hne eines Knotens (q, c~) sind alle Konfigurationen, die man yon (q, ct)
in einem Schritt erreichen kann (d.h. alle (p, ~), so dass (q, c t ) ~ (p, r Ein
Blatt von Bm(x) ist entweder eine Konfiguration (r, A) oder eine Konfiguration
(s, a~) mit a E E, wobei ~(s, a) = 0 (daher sind die Blatter Konfigurationen,
aus denen kein weiterer Berechnungschritt mSglich ist). Bei dieser Darstellung
entspricht jeder Weg yon der Wurzel zu einem Blatt einer Berechnung yon
M auf x. Daher gleicht die Anzahl der B15~tter yon BM(x) genau der Anzahl
unterschiedlicher Berechnungen yon M auf x.

Aufgabe 3.19. Entwerfen Sie einen NEA, der fiir jede Eingabe x E (~bool)* genau 2lxl
unterschiedliche Berechnungen hat.

Ein Berechnungsbaum BM(x) yon M aus Fig. 3.15 auf dem Wort x = 10110
ist in Fig. 3.16 dargestellt. Der Berechnungsbaum BM(10110) hat vier B15~tter.
Zwei Bl~ttter (ql, 0110) und (ql, 0) entsprechen den Berechnungen, in denen es
M nicht gelungen ist, das Eingabewort vollstS~ndig zu lesen, weil (~(ql, 0) = 0.
Somit sind diese Berechnungen nicht akzeptierend. Das Blatt (q0, A) und das
Blatt (q2, A) entsprechen zwei Berechnungen, in denen das Eingabewort 10110
vollstS~ndig gelesen wurde. Weil q2 E F, ist die Berechnung, die in (q2, A) endet,
eine akzeptierende Berechnung. Die Schlussfolgerung ist, dass 10110 E L(M).
Weil q2 der einzige Endzustand yon M i s t , und die einzige M6glichkeit, von
q0 zu q2 zu gelangen, darin besteht, zwei Einsen hintereinander zu lesen, liegt
die Vermutung nahe, dass L(M) alle WSrter der Form x l l y , x, y C (Ebool)*,
enthglt. Das folgende Lemma best5tigt unsere Vermutung.
112 3 Endliche Automaten

(qo, 10110) {q0}

(qi, 0110) (qo, 0110) {q0, qi}

(q0,110) {q0}

(qo, lO) (qi, 10) {q0, ql}


IM
(ql, O) (qo, O) (q~, 0) {q0, qi, q~}
IM
(qo, ;~) ](q~, A) ] {q0, q~}
Fig. 3.16

L e m m a 3.5. Sei M der NEA aus Fig. 3.15. D a n n ist

L(M) = {xlly l x , y E (}--]%ool)*}.

Beweis. Wir beweisen diese Gleichheit zweier Mengen durch zwei Inklusionen.

(i) Zuerst beweisen wir { x l l y l x , y E (}--]%ool)*}~ L(]~).


Sei w E { x l l y I x,y E (Ebool)*}, d.h., w = x l l y fiir irgendwelche x,y E
(2bool)*. Es reicht, die Existenz einer akzeptierenden Berechung yon M auf w
zu beweisen.
Da qo E 5(qo, O) N 5(qo, 1), existiert fiir jedes x E (Ebool)* die folgende Berech-
nung yon M auf x:
(q0, ~) ~- (q0, A). (3.6)
Da q2 E 5(q2, O) N 5(q2, 1), existiert fiir jedes y E (Y]bool)* die folgende Berech-
nung von M:
(q~, y) ~ (q~, a). (3.7)
Daher ist die folgende Berechnung eine akzeptierende Berechnung von M auf
x11y:
(qo, ~11y) 5- (qo, 11y)~ (ql, ly) ~ (q~,y) 5- (q~, ~)-
3.5 Nichtdeterminismus 113

(ii) Wir beweisen L(M) C { x l l y [ x, y E (}-]bool)*}.


Sei w E L(M). Daher existiert eine akzeptierende Berechnung von M auf w.
Weil die Berechnung auf w in q0 anfangen und in q2 enden muss 12, und der
einzige Weg yon q0 zu q2 fiber ql fiihrt, sieht eine akzeptierende Berechnung
yon M auf w wie folgt aus:
(3.8)
Jede Berechnung von M kann h6chstens eine Konfiguration mit dem Zustand
ql beinhalten, weil ql ~ (~(ql, a) fiir alle a E Ebool. Wenn man einmal ql verlS~sst,
kann man nicht wieder zu ql zuriickkehren. Daher kann die Berechnung (3.8)
genauer wie folgt dargestellt werden:

(qo, W)~M (qo,az) ~M (ql, Z) M~-(q2, U)~-(q2, ~), (3.9)


wobei z = bu fiir ein b E ~bool. Die einzige M6glichkeit, in Zustand ql Ztl
gelangen, ist die Anwendung der Transition ql E ~(q0, 1), d.h. durch Lesen
einer Eins im Zustand q0, daher ist a = 1 in (3.9). Weil ~(ql, 0) = 0 und
~(ql, 1) = {q2}, ist die einzige M6glichkeit, einen Berechnungschritt aus ql zu
realisieren, eine Eins zu lesen, d.h. b = 1. Folglich entspricht (3.9):
(q0, w) ~ - (q0, 11u) M~- (ql, lu) M~- (q2, u) ~ (q2, A).
Daher muss w das Teilwort 11 beinhalten und somit gilt
w E { x l l y [ x, y E (Y]bool)*}.

Aufgabe 3.20. Entwerfen Sie fttr jede der folgenden Sprachen einen NEA:
(a) {1011xOOyl x, y c (Eboo~)*},
(b) {01,101}*,
(c) {x C (Ebool)* ] x enthalt als Teilw6rter 01011 und 01100},
(d) {x c (Elo)*[Nummerlo(x) ist teilbar durch 3}.
Bemiihen Sie sich, den NEA so einfach wie m6glich zu gestalten, d.h. minimieren Sie die
Anzahl der Zustande (Knoten) und Transitionen (Kanten).

S e i / 2 ( N E A ) = { L ( M ) I M ist ein NEA}. Die zentrale Frage dieses Teilkapi-


tels ist, ob s = s genauer, ob endliche a u t o m a t e n die a r b e i t von
nichtdeterministischen endlichen Automaten simulieren k6nnen. Diese Frage
ist auch zentral fiir allgemeinere Berechnungsmodelle. Bisherige Erfahrungen
zeigen, dass die Simulation yon Nichtdeterminismus durch Determinismus nur
dann realisierbar ist, wenn die M6glichkeit besteht, alle nichtdeterministischen
12q2 ist der einzige akzeptierende Zustand von M.
114 3 Endliche Automaten

Berechnungen eines Modells M auf einer Eingabe z durch eine deterministi-


sche Berechnung nachzuahmen. Dies gilt auch fiir endliche Automaten. Die
Idee der Simulation eines NEA M durch einen EA A basiert auf dem Prinzip
der Breitensuche in den Berechnungsbgumen yon M. Die erste wichtige Vor-
aussetzung fiir eine derartige Simulation ist, dass alle Konfigurationen eines
Berechungsbaumes in einer Entfernung i yon der Wurzel das gleiche zweite
Element haben (weil sie alle nach dem Lesen von genau den ersten i Symbolen
des Eingabewortes erreicht worden sind). Daher unterscheiden sich die Konfi-
gurationen in der gleichen Entfernung yon der Wurzel nur in den Zustgnden.
Obwohl die Anzahl der Konfigurationen in einer festen Entfernung i yon der
Wurzel exponentiell in i sein kann, bedeutet dies nicht, dass wir exponentiell
viele Berechnungen simulieren miissen. Es gibt nur endlich viele Zustgnde des
NEA und daher gibt es nur endlich viele unterschiedliche Konfigurationen in
der Entfernung i. Wenn zwei unterschiedliche Knoten u und v des Berechnungs-
baumes mit der gleichen Konfiguration 6' markiert sind, sind die Teilbgume
mit der Wurzel u und v identisch, und es reicht daher aus, nur in einem der
beiden Teilbgume nach einer akzeptierenden Berechnung zu suchen (Fig. 3.17).
Mit anderen Worten reicht es fiir eine Simulation aus, fiir jede Entfernung i von
der Wurzel des Berechnungsbaumes Bv(z) die Menge der dort auftretenden
ZustS~nde zu bestimmen. Diese Menge ist aber nichts anderes als J(qo, z), wobei
z das Prgfix des Eingabewortes mit [z[ = iist. Am rechten Rand yon Fig. 3.16
sind die Zustandsmengen ~(q0, A ) - {q0}, ~(q0, 1 ) - {qo, ql}, (~(qo, 1 0 ) - {qo},
(~(q0,101) - {q0, q,}, 3(q0, 1011) -- {q0, ql, q2} und (~(q0, 10110) - {q0, q2} an-
gegeben, die den erreichbaren Mengen von Zustgnden nach dem Lesen des
Prgfixes einer Lgnge i fiir i = 0, 1 , . . . , 5 entsprechen.

Fig. 3.17
3.5 Nichtdeterminismus 115

Diese Beobachtung f/ihrt dazu, dass m a n als ZustS~nde des simulierenden (de-
terministischen) EA A beliebige Teilmengen der Zustandsmenge des NEA
M- (Q, E, (~, q0, F ) verwendet. Dies fiihrt dazu, dass m a n die folgende Kon-
struktion des endlichen A u t o m a t e n A als P o t e n z m e n g e n k o n s t r u k t i o n in
der A u t o m a t e n t h e o r i e bezeichnet. Ein Zustand (P} yon A ffir P C_ Q wird die
Bedeutung haben, dass nach der gegebenen Anzahl yon Berechnungsschritten
genau die Zustgnde aus P in den Berechnungen von M auf gegebener Ein-
gabe erreichbar sind ~a (P - ~(qo, z)). Ein Berechnungsschritt A aus einem
Zustand /P} fiir ein gelesenes Symbol a bedeutet die B e s t i m m u n g der Menge
[-JpeP ~(P, a) - aller Zustande, die aus irgendeinem Zustand p E P beim Lesen
von a erreichbar sind. Eine Formalisierung dieser Idee liefert der n~chste Satz.

S a t z 3.2. Zu jedem NEA M existiert ein EA A, so dass

L(M) - L(A).

Beweis. Sei M - (Q, E, ~M, q0, F ) ein NEA. Wir konstruieren einen EA A -
(QA, EA, (~A,qOA, FA) wie folgt"

(i) QA : {<P> I P c Q},


(ii) ~A = ~,
(iii) q0A = ({q0}>,
(iv) FA = {(P) I P c 0 und P F / F -r 0},
(v) ~A ist eine Funktion aus QA x EA nach QA, die wie folgt definiert ist. Ftir
jedes (P} E QA und jedes a E EA,

p6P

Es ist klar, dass A ein EA ist. Fig. 3.18 zeigt den EA A, der sich nach dieser
Potenzmengenkonstruktion aus dem NEA A aus Fig. 3.15 ergibt. 14

13Wir benutzen die Bezeichnung (P} statt P, um immer deutlich zu machen, ob wir einen
Zustand von A, der einer Menge von Zust~nden von M entspricht, oder eine Menge von
Zust~nden von M betrachten.
14Man bemerke, dass die Zust~inde (0}, ({ql}}, ({q2}} und ({ql,q2}} in A nicht aus ({q0}}
erreichbar sind, d.h., es gibt kein Wort, dessen Bearbeitung in einem dieser Zust~nde endet.
Wenn wir also diese Zust~inde aus A herausnehmen, wird das keinen Einfluss auf die yon A
akzeptierte Sprache haben.
116 3 Endliche A u t o m a t e n

Um L(M) - L(A) zu zeigen, reicht es, folgende Aquivalenz zu beweisen:

(3.10)

Wir beweisen (3.10) mittels Induktion bez/iglich Ixl.

(i) Sei I x l - 0, d.h. x - A.


Weil ~M(qo, )~)- {q0} und qoA- {{qo}}, gilt (3.10) fiir x - A.
(ii) Sei (3.10) giiltig fiir alle z E E* mit _ m, m ~ . Wir beweisen, dass
(3.10) auch f/Jr alle W6rter aus E "~+1 gilt.
Sei y ein beliebiges Wort aus E "~+1. Dann ist y - xa ftir ein x E E "~ und ein
a E E. Nach der Definition der Funktion (~A gilt

~A(qOA,xa) -- (~A(~A(qOA,X), a). (3.11)


Wenn wir die Induktionsannahme (3.10) ftir x anwenden, erhalten wir

daher gilt

~A(qoA, Z ) - <~M(qO,Z)}. (3.12)

Nach Definition (v) yon 6A gilt

(~A((R} , a) -- <pUR(~M(p,a) } (3.13)

fiir alle R C_ Q und alle a E E. Zusammenfassend ist

~A(qOA,xa) 5A(~A(qOA,X), a)
(3.11)

(3.12)

{ U
pESM(qO,X)
}
Im Folgenden sagen wir, dass zwei Automaten A und B / i q u i v a l e n t sind, falls
L ( A ) - L(B).
3.5 Nichtdeterminismus 117

0,1
(
0

= 0,1

0,1

Fig. 3.18

Aufgabe 3.21. Wenden Sie die Konstruktion aus Satz 3.2 an, um einen gquivalenten EA
zu dem NEA aus Fig. 3.19 zu erzeugen.

Aufgabe 3.22. Konstruieren Sie mittels Potenzmengenkonstruktion endliche Automaten


zu den nichtdeterministischen endlichen Automaten, die Sie in der Bearbeitung der Aufgabe
3.20 (b) und (d)e~tworf~n haben.

Die Folge yon Satz 3.2 ist, dass/2(EA) = Z:(NEA), d.h., die (deterministischen)
endlichen A u t o m a t e n sind bez~glich der Sprachakzeptierung genauso stark wie
die nichtdeterministischen endlichen A u t o m a t e n . W i t bemerken abet, dass die
dutch Potenzmengenkonstruktion erzeugten endlichen A u t o m a t e n wesentlich
(exponentiell) grSt3er sind, als die gegebenen nichtdeterministischen endlichen
A u t o m a t e n . Die ngchste Frage ist also, ob es Sprachen gibt, bei denen m a n die
Simulation von Nichtdeterminismus dutch Determinismus unausweichlich mit
einem exponentiellen W a c h s t u m der Automatengr6i3e bezahlen muss, oder ob
eine andere Konstruktion existiert, die die Erzeugung kleinerer gquivalenter
deterministischer A u t o m a t e n sicherstellt. Wir zeigen jetzt, dass m a n die Po-
tenzmengenkonstruktion nicht verbessern kann. Betrachten wit die folgende
regulgre Sprache

Lk -- { x l y l x E (Ebool)*,Y E (Ebool) k-l}


118 3 Endliche Automaten

fiir jedes k E IN - {0}. Der NEA A~ in Fig. 3.19 akzeptiert Lk auf die Weise,
dass er fiJr jedes Symbol 1 der Eingabe nichtdeterministisch im Zustand q0 rgt,
ob dieses Symbol das k-te Symbol vor dem Ende der Eingabe ist. Ak verifiziert
dann deterministisch, ob diese Entscheidung korrekt war.

0,1 1 1 1

__..~@ 1 .,~~~-'~~@~_~"" " ~

0 0 0

Fig. 3.19

Aufgabe 3.23. Geben Sie eine formale Beschreibung des NEA Ak aus Fig. 3.19 und be-
weisen Sie, dass Ak die Sprache Lk akzeptiert. Konstruieren Sie fiJr jedes k c IN- {0} einen
EA Bk mit Lk -- L(Bk).

Der NEA Ak hat k t 1 ZustS~nde. Wir beweisen jetzt, dass jeder EA, der
Lk akzeptiert, exponentiell viele Zust~nde beztiglich der GrOtJe von Ak haben
1TIUSS.

L e m m a 3.6. Fiir alle k E I N - {0} muss jeder EA, der L~ akzeptiert, minde-
stens 2 k Zustiinde haben.

Beweis. Sei/~k - (Qk, Y]~bool, (~k, qOk, f k ) ein EA mit L(Bk) - Lk. Um zu zeigen,
dass Bk mindestens 2 k viele Zustgnde haben muss, verwenden wir die gleiche
grundlegende Idee, die wir in Abschnitt 3.4 f/Jr die Beweise der Nichtexistenz ~5
benutzt haben. Wenn 3~(q0k, x) - 5k(qok, Y) f/Jr irgendwelche WSrter x und y
fiber Ebool, dann gilt fiir alle z E (Ebool)*

xz E L(Bk) ~ y z E L(B~). (3.14)

Die Idee des Beweises ist es, eine Menge Sk von WSrtern zu finden, so dass
fiir keine zwei unterschiedlichen WSrter z, y E St, die Gleichung 5t(qok, Z) -
(~k(qok, Y) gelten darf. Dann miisste Bk mindestens ISkl viele Zustande haben. 16

15Dies sollte nicht iiberraschend sein, da wir im Prinzip auch einen Nichtexistenzbeweis
fiihren. Wit beweisen, dass kein EA mit weniger als 2k Zust~nden fiJr Lk existiert.
16Wenn Sk unendlich w~re, dann wiirde dies die Nichtexistenz eines EA fiir die gegebene
Sprache bedeuten.
3.5 Nichtdeterminismus 119

Wir wS~hlen Sk - (Y]bool)k und zeigen, dass 5k(q0~, u) paarweise unterschiedliche


Zustgnde fiir alle W6rter u aus S~ sind. Beweisen wir es indirekt. Seien

x = XlX2... X k und y = y l y 2 . . , yk, xi, yi E Eboo~ ffir i = 1 , . . . , k,

zwei unterschiedliche W6rter aus S k - (Y]bool) k. Setzen wir

voraus. Weil x -r y, existiert ein j E { 1 , . . . , k}, so dass xj r yj. Ohne Be-


schrS~nkung der Allgemeinheit setzen wir xj = 1 und yj = 0 voraus. Betrachten
wir jetzt z = 0j-1. Dann ist

XZ -- X 1 . .. Xj_ 1 lXj+l... XkO j-1 und y z - Yl 9 . . Yj-lOyj+l 9 .. ykO j - 1

und daher x z E L~ und yz ~ Lk. Dies ist gber ein Widerspruch zu (3.14).
Daher hat Bk mindestens IS I- viele Zust~nde. D
In dem Beweis des obigen Lemmgs hgben wir eine einfache Beweismethode
eingeffihrt, mit der man untere Schrgnken ffir die Gr6ge yon endlichen Auto-
maten zur Akzeptierung konkreter regulgrer Sprachen zeigen kann. Um diese
Methode noch an einem einfachen Beispiel zu vergnschgulichen, zeigen wir ihre
Anwendung ffir die regulgre Sprache

L = { x l l y l x ,y E {0, 1}*},

die wir schon bei der Illustrierung der Potenzmengenkonstruktion in Fig. 3.13
betr&chtet h&ben. Um zu zeigen, d&ss jeder endliche Automat fiir L mindestens
drei Zustgnde hat, suchen wir uns die folgenden drei W6rter aus:

A, 1, 11.

Jetzt sollen wir fiir jedes Paar (x, y) aus unterschiedlichen W6rtern x, y aus
S = {A, 1, 11} zeigen, dass ein Wort z existiert, so dass genau eines der W6rter
x z und y z in L ist (d.h., x und y erffillen die Aquivalenz (3.14) nicht).

Ffir x = A und y = 1 w5hlen wir z = 1. Dann

xz= l ~ L und y z = ll EL.

Daher (~(q0, A) -~ 5(q0, 1) ffir jeden endlichen Automaten, der L akzeptiert.


120 3 Endliche Automaten

F/Jr x = A u n d y = 11 w ~ h l e n w i r z = 0. D a n n

x z = 0 ~ L u n d y z = 110 E L

u n d d e s h a l b m i i s s e n ~(qo, A) u n d (~(qo, 11) a u c h u n t e r s c h i e d l i c h sein.

Fiir x = 1 u n d y = 11 w ~ h l e n w i r z = A. D a n n

x z = 1 ~ L u n d y z = 11 E L

u n d d e s h a l b m i i s s e n ~(qo, 1) u n d ~(qo, 11) e b e n f a l l s u n t e r s c h i e d l i c h sein.

Zusammengefasst miissen

(~(qo, A), ~(qo, 1) u n d ~(qo, 11)

paarweise unterschiedlich sein fiir j e d e n E A A = (Q, }-]bool, (~, qo, F ) , der L


akzeptiert.

A u f g a b e 3.24. Betrachte die Sprache L = { x l l y I x,y C {0, 1}*} und die drei W6rter
A, 1, 11. Bestimme fiir alle Paare x, y von unterschiedlichen WSrtern aus S = {A, 1, 11} die
Menge Z(x, y) C_ (Ebool)*, so dass fiir jedes z 9 Z(x, y)

(xz ~ L und yz E L) oder (xz E L und yz ~ L).

A u f g a b e 3 . 2 5 . Betrachte L = { x l l y l x , y c {0, 1}*}. WS~hle S' disjunkt zu S = {A, 1, 11}


und wende S t an, um zu zeigen, dass jeder EA fiir L mindestens drei Zust~inde hat.

A u f g a b e 3.26. S e i L = { x 0 1 1 y l x ,yC{O,1}*}.

(i) Konstruieren Sie einen NEA M mit vier Zust~nden fiir L und beweisen Sie L = L(M).
(ii) Wenden Sie auf M die Potenzmengenkonstruktion an, um so einen (deterministischen)
EA zu erhalten.

A u f g a b e 3.27.* Ein EA A heit3t m i n i m a l fiir die regulate Sprache L(A), wenn kein klei-
nerer (beziiglich der KardinalitS~t der Zustandsmenge) EA B m i t L(A) = L(B) existiert.
Konstruieren Sie minimale EA fiir die Sprachen aus Aufgabe 3.9 und beweisen Sie ihre
Minimalit~t.

A u f g a b e 3.28. Entwerfen Sie einen NEA M mit hSchstens sechs Zust~nden, so dass L(M) =
{0x Ix c {0, 1}* und x enthSJt die WSrter 11 oder 100 als Teilw6rter }.
3.6 Zusammenfassung 121

3.6 Zusammenfassung

In diesem Kapitel haben wir die endlichen Automaten als ein Modell von sehr
einfachen Berechnungen, die keine Variablen und damit keinen Speicher benut-
zen, vorgestellt. Die Zielsetzung war aber nicht, die Automaten zu studieren,
sondern an einem einfachen Beispiel das Definieren eines Berechungsmodells
zu zeigen. Die Definition beginnt mit der Beschreibung der Komponenten und
mit der Festlegung der grundlegenden Operationen (Aktionen) des Modells.
Danach definiert man den Begriff der Konfiguration, die eine vollstS~ndige Be-
schreibung des allgemeinen Zustands des betrachteten Berechnungsmodells zu
einem gegebenen Zeitpunkt ist. Die Durchfiihrung eines Berechnungsschrit-
tes entspricht der Anwendung einer elementaren Operation des Modells auf
die aktuelle Konfiguration. So definiert man einen Schritt als einen Ubergang
aus einer Konfiguration C zu einer anderen Konfiguration D. Der Unterschied
zwischen C und D ist durch eine elementare Operation erzeugbar. Eine Berech-
nung beschreibt man als eine Folge von Konfigurationen mit der Eigenschaft,
dass man aus jeder Konfiguration zu ihrer Nachfolgekonfiguration in einem Be-
rechnungsschritt iibergehen kann. Eine Berechnung auf einer Eingabe x startet
in einer initialen Konfiguration, in der x als Eingabe zur Verfiigung steht. Die
letzte Konfiguration der Berechnung bestimmt das Resultat.
Bei endlichen Automaten handelt es sich um einfache Algorithmen zur Sprach-
erkennung (zur L6sung yon Entscheidungsproblemen), die sich zwischen (inne-
ren) ZustS~nden aus einer endlichen Zustandsmenge beim Lesen yon Eingabe-
symbolen bewegen. Ein endlicher Automat akzeptiert ein Eingabewort, wenn
er sich nach den Lesen des letzten Buchstabens des Eingabewortes in einem
akzeptierenden Zustand befindet.
Zu zeigen, dass ein Problem durch Algorithmen aus einer bestimmten Algo-
rithmenklasse nicht 16sbar ist, bedeutet, einen Nichtexistenzbeweis zu fiihren.
Dies fordert meistens ein tieferes Verstgndnis der Natur der betrachteten AI-
gorithmenklasse. Im Fall der endlichen Automaten basieren die Beweise von
L ~ s auf der Tatsache, dass die Vielfgltigkeit der W6rter in L so grog ist,
dass man sie durch die Zerlegung von E* in endlich viele Klassen nicht charak-
terisieren kann. Mit anderen Worten reichen endlich viele Zustgnde als Spei-
cher nicht aus, um alle wichtigen Eigenschaften (Charakteristika) der bisher
gelesenen Prgfixe yon Eingabew6rtern zu speichern. Diese Art der Argumenta-
tion kann man auch benutzen, um fiir eine gegebene Sprache U E s eine
untere Schranke fiir die Gr6fie eines jeden EA A mit L ( A ) = U zu beweisen.
Nichtdeterministische Algorithmenmodelle (Rechnermodelle) erlauben im Un-
122 3 Endliche Automaten

terschied zu deterministischen eine Auswahl von mehreren (endlich vielen) Ak-


tionen in jedem Berechnungsschritt. Dadurch kann ein nichtdeterministischer
Algorithmus exponentiell viele (beziiglich der EingabelS~nge) unterschiedliche
Berechnungen auf einer Eingabe haben. Die Interpretation der Arbeit eines
nichtdeterministischen Algorithmus A ist o p t i m i s t i s c h - wir setzen voraus,
dass A in jeder nichtdeterministischen Wahl eine richtige Entscheidung trifft,
falls eine solche existiert. Dies bedeutet, dass ein nichtdeterministischer AI-
gorithmus erfolgreich bei der L6sung eines Problems ist, wenn ftir jede Ein-
gabeinstanz z mindestens eine der Berechnungen von A auf z das richtige
Resultat liefert. Bei einem Entscheidungsproblem (E, L) bedeutet dies, dass
A fiir alle z E L mindestens eine akzeptierende Berechnung 17 auf z hat und
alle Berechnungen von A auf y fiir jedes y r L nichtakzeptierend is sind. Im
Allgemeinen kennen wir keine etiizientere Art, nichtdeterministische Algorith-
men A durch deterministische Algorithmen B zu simulieren, als alle m6glichen
Berechnungen von A durch B zu simulieren. Dies ist auch der Fall bei endli-
chen Automaten, wo die Simulation einer Breitensuche im Berechnungsbaum
von A auf gegebener Eingabe entspricht. Weil B dabei nach dem Lesen eines
Prefixes z des Eingabewortes alle Zustgnde speichert, die A beim Lesen von
z erreichen kann, nennt man die Konstruktion des EA B aus dem NEA A die
Potenzmengenkonstruktion.
Dieses Kapitel ist nur einigen elementaren Aspekten der Automatentheorie ge-
widmet und erhebt deswegen keinen weiteren Anspruch, als eine Einfiihrung
in dieses Gebiet zu sein. Was die Kenntnisse der Klasse regul~irer Sprachen
anbelangt, liefert diese Kapitel einen noch unwesentlicheren Beitrag. RegulS~re
Sprachen k6nnen nicht nur durch andere Automatenmodelle charakterisiert
werden, sondern auch durch weitere wichtige Mechanismen, die nicht auf Ma-
schinenmodellen (Berechnungsmodellen) basieren. Die wichtigsten Beispiele
solcher Formalisierungen sind die regul~iren Grammatiken als Generierungs-
mechanismen und die algebraische Darstellung durch regulS~re Ausdriicke. Fiir
die Erweiterung des Kenntnisse fiber die Klasse der regulS~ren Sprachen emp-
fehlen wir w~irmstens HopcroR, Motwani und Ullman [HMU 01].

Kontrollaufgaben
1. Wie kann man das Modell des endlichen Automaten mit der Hilfe von Programmen
erklS~ren? Warum benutzen wit einen endlichen Automat nicht zur Modellierung von
Rechnern, obwohl die Rechner (wie auch alles andere was wit kennen) endlich sind?
2. Definieren Sie einen EA formal als ein Quintupel und erkl~iren Sie die Bedeutung der

17Eine Berechnung mit der Aussage ,,x c L".


lSMit dem Resultat ,,y ~ L" enden.
3.6 Zusammenfassung 123

Grundbegriffe der Theorie der Berechnungen, wie Konfiguration, Berechnungssschritt


und Berechnung.
3. Erkl~tren Sie, wie die Zust~tnde eines endlichen Automaten A die Menge aller Eingaben
fiber E* in endlich viele Klassen zerlegen. Wie kann dies beim Entwurf und der
Verifikation eines endlichen Automaten helfen? Zeigen Sie ein paar Beispiele.
4. Entwerfen Sie basierend auf der Bedeutung der Zust~nde endliche Automaten fiir
folgende Sprachen.
(i) { z l l l l p I z,y E {0, 1,2,3}*},
(ii) { x l l O l l O Y l x, y C {O, 1,2}*},
(iii) {x010101y[ x,y E {0, 1}*},
(iv) {xOY l x ,y 6 {O,1}*},
(v) {z0ylz I x,y, z 6 {0, 1}*},
(vi) {z E {0,1}* l lxl0 _> 3},
(vii) {x 6 {0,1}*13 _< Ixl0 _< 5},
(viii) {z001yl01zlz, p, zE{0,1}*},
(ix) {x0011lx c {0,1}*},
(x) {xl00111x c {0,1}*},
(xi) { l x l l 0 0 1 l x ~ {0,1}*},
(xii) {xll001y0 I x, y c {0, 1}*}.
W~hlen Sie sich drei dieser Sprachen aus und beweisen Sie mit Induktion die Kor-
rektheit der von Ihnen entworfenen Automaten.
5. Entwerfen Sie Automaten fiir die folgenden Sprachen.
(i) {x c {0, 1}*Ix enthalt 11 als Teilwort oder endet mit dem Suffix 10},
(ii) {A,0,11, x00Ix ~ {0,1}*},
(iii) {z C {0, 1}*ix enthalt 00 oder 11 als Teilwort }.
6. Erkl~ren Sie, wie ein EA simultan mehrere endliche Automaten simulieren kann.
Wenden Sie diese Simulationstechnik an, um den modularen Entwurf von endlichen
Automaten fiir folgende Sprachen zu realisieren.
(i) {x E {0, 1}* I Ixll ist gerade und x enthalt das Teilwort 001},
(ii) {x E {0, 1}*ix e n t h a l t das Teilwort 000 u n d x e n t h a l t das Teilwort 111},
(iii) {x C {0, 1, 2}*Ix enthalt die Teilworte 021 und 2110},
(iv) {x c {0,1}* I IXll (rood 3)= 1 und x endet mit dem Suffix 0011}.
7. Erkl~ren Sie die drei Methoden zum Beweisen, dass eine Sprache keine regul~re Spra-
che ist.
8. Beweisen Sie, dass folgende Sprachen nichtregul~tr sind. Wenden Sie dabei jede der
drei gelernten Methoden mindestens einmal an.
(i) {o~ I~ ~ ~},
(ii) {0~12~0~ I n c IN},
(iii) { z y C {0, 1}*ix ist ein prafix yon y},
(iv) { x 2 y l x , y E {0, 1}*, Ixll lYlo},
=

(v) {o~ I~ c ~}.


9. Erkl~tren Sie das Konzept von nichtdeterministischen endlichen Automaten. Geben
Sie ein Beispiel eines NEA an, der auf jeder Eingabe der L~nge n exponentiell viele
unterschiedliche Berechnungen hat.
124 3 Endliche Automaten

10. Erkl~tren Sie, warum deterministische endliche Automaten nichtdeterministische end-


liche Automaten (trotz der M6glichkeit vieler Berechnungen auf einer Aufgabe) si-
mulieren k6nnen.
11. Fiir welche Sprachen ist es wesentlich einfacher einen NEA als einen EA zu entwerfen?
12. Entwerfen Sie nichtdeterministische endliche Automaten fiir folgende Sprachen:
(i) {zl010yl z , y c {0,1}*} O {z010l z c {0, 1}*},
(ii) {z c {0, 1 } * I x enthalt 001 oder 110 als ein Teilwort},
(iii) {z E {0, 1}* I lzl~ (rood 3) = 0 oder z = yl01z fiir y,z E {0,1}*},
(iv) {z ~ {0,1, 2}*lz enthalt eines der W6rter 012, 00, 22, 111 als Teilwort}.
Wenden Sie die Potenzmengenkonstruktion fiir mindestens einen der entworfenen
NEAs an, um einen/~quivalenten EA zu bauen.
13. Beweisen Sie, dass jeder EA fiir eine der folgenden Sprachen mindestens 4 Zust/~nde
hat.
(i) {z E {0, 1 } * l l z I ( m o d 4 ) = 2},
(ii) {z0011y I z, y C {0, 1}*},
(iii) {01zl0 I z C {0, 1}},
(iv) {z C {0, 1, 2}* I IZlo ist gerade und IXll ist teilbar durch 3}.
KOnnen Sie fiir einige dieser Sprachen sogar eine h6here untere Schranke fiir die
Anzahl der Zustgnde beweisen?
Die Menschen, die die Geduld haben,
auch einfache Sachen vollkommen zu machen,
gewinnen die F~thigkeit,
auch schwere Sachen einfach zu meistern.
F. Schiller

4 Turingmaschinen

4.1 Zielsetzung

Wenn man ursprtinglich in der Mathematik einen Ansatz zur L6sung gewis-
ser Probleme vermitteln wollte, hat man ihn als eine mathematische Methode
formal genau beschrieben. Eine sorgfSJtige Beschreibung einer Methode hatte
die Eigenschaft, dass ein Anwender gar nicht verstehen brauchte, warum die
Methode funktioniert, und trotzdem die Methode erfolgreich zur L6sung seiner
Probleminstanz verwenden konnte. Die einzige Voraussetzung fiir eine erfolg-
reiche Anwendung war das Verst~ndnis des mathematischen Formalismus, in
dem die Methode dargestellt wurde. Die Entwicklung des Rechners fiihrte dazu,
dass man Methoden zur L6sung von Problemen dutch Programme beschreibt.
Der mathematische Formalismus ist hier durch die benutzte Programmierspra-
che gegeben. Das wichtigste Merkmal aber bleibt. Der Rechner, der keinen
Intellekt besitzt und daher kein Verst~ndnis fiir das Problem sowie fiir die Me-
thode zu seiner L6sung besitzt, kann das Programm ausfiihren und dadurch das
Problem 16sen. Deswegen k6nnen wit fiber automatische oder algorithmische
L6sbarkeit von Problemen sprechen. Um zu zeigen, dass ein Problem automa-
tisch 16sbar ist, reicht es aus, eine Methode zu seiner L6sung zu finden und
diese in Form eines Programms (Algorithmus) darzustellen. Deswegen kom-
men positive Aussagen fiber algorithmische (automatische) Probleml6sbarkeit
gut ohne eine Festlegung auf eine Formalisierung des Begriffs Algorithmus aus.
Es reicht oft, eine Methode halb informell und grob zu beschreiben, und jedem
wird klar, dass sich die Methode in die Form eines Programms umsetzen l~tsst.
Daher ist es nicht verwunderlich, dass die Mathematik schon lange vor der
Existenz von Rechnern die L6sbarkeit mathematischer Probleme mit der Exi-
stenz allgemeiner L6sungsmethoden I im Sinne von ,,automatischer L6sbarkeit"
verkniipft hat.

1Heute wiirden wir Algorithmen sagen.


126 4 Turingmaschinen

Die Notwendigkeit der Formalisierung des Begriffs Algorithmus (L6sungsme-


thode) kam erst mit dem Gedanken, mathematisch die automatische Unl6sbar-
keit von konkreten Problemen zu beweisen. Zu diesem Zweck hat man mehrere
Formalismen entwickelt, die sich alle als gquivalent beziiglich des Begriffs ,,au-
tomatische (algorithmische) L6sbarkeit" erwiesen haben. Auch jede verntinf-
tige Programmiersprache ist eine zul/~ssige Formalisierung der automatischen
L6sbarkeit. Aber solche Formalisierungen sind nicht so gut geeignet ffir Bewei-
se der Nichtexistenz von Algorithmen fiir konkrete Probleme, weil sie wegen
der Anwendungsfreundlichkeit eine Menge komplexer Operationen (Befehle)
enthalten. Daher braucht man sehr einfache Modelle, die nur ein paar ele-
mentare Operationen erlauben und trotzdem die volle Berechnungsstgrke von
Programmen beliebiger Programmiersprachen besitzen. Ein solches Modell,
das sich in der Theorie zum Standard entwickelt hat, ist die Turingmaschine.
Die Zielsetzung dieses Kapitels ist, dieses Modell vorzustellen und so die Basis
fiir die Theorie der Berechenbarkeit (der algorithmischen L6sbarkeit) und f~r
die KomplexitS~tstheorie im ngchsten Kapitel zu legen.
Der Stoff dieses Kapitels ist in vier Abschnitte unterteilt. Abschnitt 4.2 stellt
das grundlegende Modell der Turingmaschine vor und iibt den Umgang mit
Turingmaschinen. Abschnitt 4.3 prgsentiert die Mehrband-Varianten von Tu-
ringmaschinen, die das grundlegende Modell der abstrakten KomplexitS~tstheo-
rie sind. In diesem Abschnitt wird auch die Aquivalenz zwischen Programmen
in einer beliebigen Programmiersprache und Turingmaschinen diskutiert. Ab-
schnitt 4.4 fiihrt die nichtdeterministische Turingmaschine ein und untersucht
die M6glichkeiten der Simulation von nichtdeterministischen Turingmaschi-
nen durch (deterministische) Turingmaschinen. Abschnitt 4.5 prgsentiert ei-
ne m6gliche Kodierung von Turingmaschinen als W6rter fiber dem Alphabet
~bool"

4.2 Das Modell der Turingmaschine

Eine Turingmaschine kann als eine Verallgemeinerung eines EA gesehen wer-


den. Informell besteht sie (Fig. 4.1) aus

(i) einer endlichen Kontrolle, die das Programm enthglt,


(ii) einem unendlichem Band, das als Eingabeband, abet auch als Speicher
(Arbeitsband) zur Verftigung steht, und
4.2 Das Modell der Turingmaschine 127

(iii) einem Lese-/Schreibkopf, der sich in beiden Richtungen auf dem Band
bewegen kann.

Die Ahnlichkeit zu einem EA besteht in der Kontrolle fiber einer endlichen


Zustandsmenge und dem Band, das am Anfang das Eingabewort enthglt. Der
Hauptunterschied zwischen Turingmaschinen und endlichen Automaten be-
steht darin, dass eine Turingmaschine das Band auch als Speicher benutzen
kann und dass dieses Band unendlich lang ist. Das erreicht man dadurch, dass
der Lesekopf des EA mit einem Lese-/Schreibkopf vertauscht wird und dass
man diesem Kopf auch die Bewegung nach links erlaubt. Eine elementare Ope-
ration von Turingmaschinen kann also als folgende Aktion beschrieben werden.
Die Argumente sind

(i) der Zustand, in dem sich die Maschine befindet, und


(ii) das Symbol auf dem Feld des Bandes, auf dem sich gerade der Lese-
/Schreibkopf befindet.

Abhgngig yon diesen Argumenten macht die Turingmaschine folgendes. Sie

(i) gndert den Zustand,


(ii) schreibt ein Symbol auf das Feld des Bandes, yon dem gerade gelesen
wurde 2 (dieses kann man also als ein Ersetzen des gelesenen Symbols durch
ein neues Symbol sehen), und
(iii) bewegt den Lese-/Schreibkopf ein Feld nach links oder rechts oder sie
bewegt ihn gar nicht.

0 1 2 3 i-1 i i+1 n n+l n+2

I r I Xl I X2 I X3 I
unendliches "~ I Lese-/Schreibkopf
Band
endliche
Kontrolle
(Programm)

Fig. 4.1

2Wo sich der Lese-/Schreibkopf gerade befindet.


128 4 Turingmaschinen

Wichtig dabei ist, dass

I. das Band auf der linken Seite das Randsymbol r enth~it, fiber das die Tu-
ringmaschine nach links nicht weiter gehen und welches nie durch ein anderes
Symbol ersetzt werden darf (Die Einfiihrung eines linken Randes ermSglicht
die Nummerierung der Felder des Bandes von links nach rechts, wobei wir dem
Bandfeld mit Symbol r die Nummer 0 zuordnen.), und
2. das Band nach rechts unendlich ist3, wobei die nicht beschrifteten Felder
die Symbole u enthalten.

Jetzt geben wir die formale Beschreibung einer Turingmaschine in der Weise
an, wie wit es bei der Definition yon endlichen Automaten gelernt haben.
Zuerst beschreiben wir die Komponenten und die elementaren Operationen.
Dann w/~hlen wir eine Darstellung yon Konfigurationen und definieren den
Berechnungsschritt als eine Relation auf Konfigurationen. Danach folgen die
Definitionen yon Berechnung und der vonder Turingmaschine akzeptierten
Sprache.

Definition 4 . 1 . Eine Turingmaschine (kurz, TM) ist ein 7- Tupel


M - (Q, E, F, 6, q0, qaccept~ qreject). D abei ist

(i) Q eine endliche Menge, die Z u s t a n d s m e n g e v o n M genannt wird,


(~) E das E i n g a b e a l p h a b e t , wobei r und das Blanksymbol u nicht in E
sind
{E dient genau wie bei EA zur Darstellung der Eingabe.},
(iii) F ein Alphabet, A r b e i t s a l p h a b e t genannt, wobei E c_ F, r E F,
rnQ-0
{F enthiilt alle Symbole, die in Feldern des Bandes auftreten diirfen, d.h.
die Symbole, die M als Speicherinhalte (variable Werte) benutzt.},
5" (Q - {qaccept~ qreject}) X F --+ Q x P x {L~ R~ N} r162 Abbild~Ttg, Wber-
g a n g s f u n k t i o n v o n M genannt, mit der Eigenschaft
5(q,r Q • {r • {R, N}
fiir alle q E Q
{6 beschreibt die elementave Operation von M. M kann eine Aktion
(q. x . z ) e Q • r • {L. R. N} ~ ~ . ~ ~ k t ~ l l ~ Z ~ t ~ d p b~.~ L ~ ~
3Man bemerke, dass man in endlicher Zeit h6chstens endlich viele Felder des Bandes be-
schriften kann und damit die aktuelle SpeichergrSfie (die Anzahl der Nicht-u-Felder) immer
endlich ist. Der Sinn der Forderung eines unbeschr/inkten Speichers ist nur, dass man nach
Bedarf einen beliebig grofien endlichen Speicher zur Verfiigung hat.
4.2 Das Modell der Turingmaschine 129

. .

tet den Ubergang von p nach q, das Ersetzen von Y dutch X und die
Bewegung des Kopfes entsprechend Z. Z = L bedeutet die Bewegung des
Kopfes nach links, Z = R nach rechts und Z = N bedeutet keine Bewe-
gung. Die Eigenschaft 5(q, r E Q • {r • {R, N} verbietet das Ersetzen
des Symbols r dutch ein anderes Symbol und die Bewegung des Kopfes
nach links iiber die Randbezeichnung r
qo C Q der A n f a n g s z u s t a n d ,
qaccept E Q der a k z e p t i e r e n d e Zustand
{ M hat genau einen akzeptierenden Zustand. Wenn M den Zustand
qaccept erreicht, akzeptiert M die Eingabe, egal wo sich dabei der Kopf auf
dem Band befindet. Aus qaccept ist keine Aktion von M mehr mSglich.},
( ii) qreject E Q -- {qaccept} der v e r w e r f e n d e Zustand
{ Wenn M den Zustand qreject erreicht, dann endet damit die Berech-
nung und M verwirft die Eingabe. Das heiflt insbesondere auch, dass M
nicht die komplette Eingabe lesen muss, urn sie zu akzeptiern bzw. zu

Eine K o n f i g u r a t i o n C von M i s t ein Element aus

Konf(M) = (r F*. Q. F + U Q. { r F*.

{Eine Konfiguration wlqaw2, wl C {r w2 E F*, a C F, q E Q (Fig. ~.2),


ist eine vollstiindige Beschreibung folgender Situation. M ist im Zustand q, der
Inhalt des Bandes ist r und der Kopf steht auf dem ([Wl[ + 1)-
ten Feld des Bandes und liest das Symbol a. Eine Konfiguration pr p E Q,
w E F*, beschreibt die Situation, in der der Inhalt des Bandes r ist und
der Kopf auf dem O-ten Feld des Bandes steht und das Randsymbol r liest. 4}

W1 a w2 uu 9 9 9

t
q

Fig. 4.2

4Man bemerke, dass man fiir die Darstellung der Konfigurationen zwischen mehreren guten
M6glichkeiten wghlen kann. Z.B. k6nnte man die Darstellung (q, w, i) c Q x F* x IN verwen-
den, um die Situation zu beschreiben, in der M im Zustand q ist, Wuuu... auf dem Band
steht und der Kopf auf dem/-ten Feld des Bandes steht.
130 4 Turingmaschinen

Eine Startkonfiguration fiir ein Eingabewort x ist qor

Ein Schritt von M ist eine Relation ---j-- auf der Menge der Konfigurationen

(--K- C Konf(M) • Konf(M)) definiert durch

xlx2 9 .. xi-lqxixi+l 9 .. Xn --if- X l X 2 9 .. Xi-lpyxi+l 9 .. Xn~

f~ll~ ~(q~ ~ ) : (;~ y~ N) (Fig. ~.J(~))~


XlX2 9 9 9 X i - l q x i x i + l 9 9 9Xn --M-- XlX2 9 9 9 X i - 2 p X i - l Y X i + l 9 9 9Xnv

f~ll~ 5(q, ~ ) = (p, y, L) (rig. 4.J(b)),


xlx2 . . . xi-lqxixi+l 9 9 9Xn ~ XlX2 9 9 9Xi-lypxi+l 9 9 9 Xn~

xlx2 ... x~_lqx~ --K- x l x 2 ... x~-lypu

f~ll~ 5(q~ ~ ) = (p~ y~ R) (Fig ~ J(d))

Xl x2 ... xi-1 xi xi-}-i ... Xn ... xl x2 9 9 9 xi--1 y xi§ 9 9 9 Xn 9 9 9

(a)

xl x2 ... xi-1 xi xi-J-1 ... xn ... Xl x2 9 9 9 xi-1 y Xi§ 9 9 9 Xn 9 9 9

(b) -~

Xl x2 ... xi-1 xi xi-}-i ... xn ... Xl X2 9 9 9 Xi--1 y Xi§ 9 9 9 Xn 9 9 9

f
)

Xl X2 9 9 9 Xn--1 Xn 9 9 9 Xl X2 ... Xn--1 y U "'"

Fig. 4.3
4.2 Das Modell der Turingmaschine 131

Eine Berechnung yon M ist eine (potentiell unendliche) Folge von Kon-
figurationen Co, C1, C2,..., so dass Ci ~ Ci+l fiir alle i - O, 1, 2, .... Wenn
Co ~ C1 ~ ... ~ Ci fiir ein i E IN, dann Co - ~ Ci.
Die Berechnung yon M auf einer Eingabe x ist eine Berechnung, die mit
der Startkonfiguration Co - qor beginnt und entweder unendlich ist oder in
einer Konfiguration w l q w 2 endet, wobei q E {qaccept, qreject}-
Die Berechnung von M auf x heiflt akzeptierend, falls sie in einer akzep-
tierenden Konfiguration wlqacceptW2 endet. Die Berechnung yon M auf x heiflt
verwerfend, wenn sie in einer verwerfenden Konfiguration WlqrejectW2 endet.
Eine nicht-akzeptierende Berechnung von M auf x ist entweder eine vet-
werfende oder eine unendliche Berechnung von M auf x.
Die v o n d e r T u r i n g m a s c h i n e M akzeptierte Sprache ist

L(M) - {w E E* I qor -~-yqaccept Z, fiir iFgeTtdwelche y , z E P*}.

Wit sagen, dass M eine Funktion F " E* --+ F* berechnet, falls

f{< 9 qor 9

Eine Sprache heiflt r e k u r s i v aufz~ihlbar, falls eine T M M existiert, so dass


L- L(M).

s { L ( M ) I M ist eine TM}

ist die Menge aller rekursiv aufz~ihlbaren Sprachen. 5


Eine Sprache L c_ E* heiflt r e k u r s i v ( e n t s c h e i d b a r 6 ) , falls L - L ( M ) fiir
eine TM M , fiir die fiir alle x E E* gilt:

(i) qor -~-YqacceptZ, Y, Z E F*, falls x E L und


qor ~ UqrejectV, U, V E r*, falls x ~ L.

{Dies bedeutet, dass M keine unendlichen Berechnungen besitzt.}


Wenn (i) und (ii) gelten, sagen wir, dass M auf jeder Eingabe h~ilt oder
dass M i m m e r h~ilt.

5Die Bezeichnung s kommt aus dem Englischen ,,recursively enumerable".


aGenauer miisste man sagen, dass das Entscheidungsproblem (E, L) entscheidbar ist.
132 4 Turingmaschinen

{Eine TM, die immer hiilt, ist ein formales Modell des Begriffs Algorithmus.}

s {L(M) I M ist eine TM, die immer hiilt}

ist die M e n g e d e r r e k u r s i v e n ( a l g o r i t h m i s c h e r k e n n b a r e n ) Sprachen.


Eine Funktion F" E~ ~ E~ fiir zwei Alphabete E,, E2 heiflt t o t a l b e r e c h e n -
b a r , falls eine TM M existiert, die F berechnet, r

Die Turingmaschinen, die immer halten, reprgsentieren die Algorithmen, die


immer terminieren und die richtige Ausgabe liefern. So sind gerade die rekur-
siren Sprachen (entscheidbaren Entscheidungsprobleme) die Sprachen (Ent-
scheidungsprobleme), die algorithmisch erkennbar (15sbar) sind.

Aufgabe 4.1. Andern Sie die Definition einer TM, indem Sie als Konfiguration die Tripel
(q, Cw, i) C Q • {r • IN nehmen. Ein Tripel (q, Cw, i) beschreibt die Situation, wenn
die TM im Zustand q ist, der Bandinhalt Cwuuu... ist und der Kopf auf das i-te Feld des
Bandes zeigt. Geben Sie dann eine Definition des Schrittes und der Berechnung, die mit
dieser Darstellung yon Konfigurationen arbeitet.

Im Folgenden zeigen wir ein paar konkrete Turingmaschinen und ghnlich wie
bei endlichen A u t o m a t e n entwickeln wir eine anschauliche graphische Darstel-
lung von Turingmaschinen. Sei

LMitt~ = {w 6 (P,boo,)*lW- xly, wobei I x [ - [y[}.

So enthglt LMitte alle W 6 r t e r ungerader Lgnge, die in der Mitte eine 1 haben.

Aufgabe 4.2. Beweisen Sie, dass LMitte ~ Z:(EA).

Wir beschreiben eine TM M, so dass L(M) = LMitte. Die Idee ist, zuerst zu
/iberpriifen, ob die Eingabelgnge ungerade ist und dann das mittlere Symbol
zu bestimmen. Sei M = (Q, E, F, 5, q0, qaccept, qreject), wobei
Q = {q0, qeven, qodd~ qaccept, qreject, qA, qB, ql, qleft ~qright, qmiddle},
r= {0, 1},
r = E u {r u (E • { A , B } ) und

a(q0, r -- (qeven, r Dr),


5(q0, a) -- (qreject, a, N) fi/lr &lle a E {0, 1, ,,},
(~(qeven, b) - (qodd, b, R) f ~ ~1~ b e {0, 1},
rBeachten Sie, dass die TM M immer hglt.
4.2 Das Modell der Turingmaschine 133

(~(qeven, II) = (qreject, II, g),


(~(qodd, b) = (qeven, b, l:{) fiir alle b E {0, 1},
(~(qodd, .,) = (qB, u, L).

Wir beobachten, dass nach dem Lesen eines PrSofixes gerader (ungerader) LS~nge
M i m Zustand qeven (qodd) ist. Wenn also M das Symbol u im Zustand qeven
liest, ist das Eingabewort gerader L~nge und muss verworfen werden. Wenn
M das Symbol u im Zustand qodd liest, geht M in den Zustand qB fiber, in
dem die zweite Phase der Berechnung anfgngt. In dieser Phase bestimmt M
die Mitte des Eingabewortes, indem M abwechselnd das am weitesten rechts
stehende Symbol a E {0, 1} in (;) umwandelt und das am weitesten links
stehende Symbol b E {0, 1} durch (Ab) ersetzt. Dieses kann man mit folgenden
Transitionen (0berg~ngen) realisieren:

~(q,,a) - - (ql, (B)' L) ftir alle a E {0, 1},


5(ql, a) : (qleft, a, L) fiir alle 8 C {0, 1},
(~(ql, c) -- (qmiddle, C, _~) ftir alle c E {r (A), (A)},
(~(qmiddle, (O)) = (qreject, O, N),
(~(qmiddle, ( ; ) )= (qaccept ~ 1~ N)~
~(q~oft, ~) = (qleft,a, L) ftir alle a E {0, 1},
~(q~of~, ~) -- (qA, c, R) fiir alle c E { ( o ) , (A), r
-- (qright, (b), R) ftir alle b E {0, 1},
(~(qright, b) = (qright, b, l:{) ftir alle b E {0, 1},
(~(qright, d) - (q,, d, L) f/Jr alled E {(o), (;)}.

Die fehlenden Argumentenpaare wie z.B. (qright, ~) k6nnen nicht auftreten und
deswegen kann man die Definitionen von ~ so vervollstSmdigen, dass man ftir
alle fehlenden Argumente den Ubergang nach qreject hinzunimmt.
Wenn man einen Befehl (~(q,a) = ( p , b , X ) f/Jr q,p E ~, a,b E E und X E
{L, R, N} graphisch wie in der Fig. 4.4 darstellt, dann kann man die konstru-
ierte TM M wie in Fig. 4.5 darstellen. Diese graphische Darstellung ist 5~hnlich
zu der bei endlichen Automaten. Der Unterschied liegt nur in der Kantenbe-
schriftung, bei der zusS~tzlich zu dem gelesenen Symbol a noch das neue Symbol
b und die Bewegungsrichtung X notiert wird.
134 4 Turingmaschinen

a~b,X

Fig. 4.4

(g) + o , N

1 ---~ 1, N
0-+ O,N
u --, u , N
U~u~N
O~O,R

@ 0 --+ O,R u --+ u,L

-~ 1, R
R ~ 1

Jo--+ (~
1--+ (~),L (o)--+ (o), L
0~0, L (1) + (1), L
I~I,L r162

o+o,I~ i, )
(~) _.._+ (~), R 0 + d),R
1+ (~),

r -~r
(~) + (~),R 0~0, R
i-+ I,R
(~)-~ (~), R
1
Fig. 4.5

Betrachten wir jetzt die Arbeit von M auf dem Eingabewort z - 1001101. Die
erste Phase der Berechnung von M auf x l~uft wie folgt"

q0r Cqevenl001101 ~ r M~ r
r M~--r M~ r
r ~ r ~ r
4.2 Das Modell der Turingmaschine 135

Das Erreichen des Zustandes qB bedeutet, dass z eine ungerade L/~nge hat.
Jetzt wird 2F/abwechselnd die Symbole a am rechten Rand durch (]3) und am
linken Rand d urch (A) ersetzen.

r r ~ r
r M~-r
r ~ r
q~ftr M~-r
r M~ r 0qright0110(1)
r (A) 00110qright(1) ~ r (A) 0011qB0(1)
r (~ (B) M~-r (~ (B)
Cql~ft(~)O011(~ (;) M~-r (~ (B)
r (O)qright011 (O)(;)
r (~) (~) 011qright (O) (;)
r (O) 01qB1 (O)(1)
r (~)Oqli(;)(o)(;)
r (A) qleft(O) 01 (1) (O) (1)
(o)q 01 (1)(o)(1)
r (A) (A) qright1(1) (O)(1)
r (~) (o) (o) lqright(1) (O) (1)
r(A) (A) (a) qB1(~)(O)(~)
r (A)ql(A)(;)(i)(BO)(i)
r (O)(O)qmiddle(1)(1)(O)(1)
1(1)(o)(1)
Aufgabe 4.3. Schreiben Sie die Berechnung von der TM M aus Fig. 4.5 auf den W6rtern
010011 und I01 auf.

Aufgabe 4.4. Die TM M aus Fig. 4.5 arbeitet so, dass sie die ganze Zeit die Information
fiber die urspriingliche Eingabe beh/ilt. Nutzen Sie diese Eigenschaft aus, um M zu einer
TM M ~zu erweitern, so dass L(M ~) = {w c {0, 1}*lw = xlx fiir ein x c {0, 1}*}.
Betrachten wir jetzt die Sprache L~ - {02" I n C IN- {0}}. Eine TM, die L~
akzeptiert, kann folgende Strategie verfolgen:
136 4 Turingmaschinen

a --~ a,R a --~ a,R

%v

r162

O~O,L
a --+ a , L

a ---~ a , L
O~O,L

Fig. 4.6

1. Laufe fiber das B a n d yon r bis z u m ersten u (yon links nach rechts) u n d
,,16sche" jede zweite 0, d.h. ersetze sie durch a. Falls die Anzahl von Nullen auf
d e m B a n d ungerade ist, h a r e im Z u s t a n d qreject- Sonst, fahre fort mit Schritt
2.
2. Laufe fiber das B a n d von dem a m weitesten links stehenden u his z u m r
u n d iiberprtife, ob auf d e m B a n d genau eine Null oder mehrere Nullen stehen.
9 Falls auf d e m B a n d genau eine Null steht, akzeptiere.
9 Falls auf d e m B a n d mindestens zwei Nullen stehen, wiederhole Schritt 1.

Die Idee dieser Strategie ist, dass m a n eine Zahl 2 i mit i _> 1 solange ohne Rest
durch 2 teilen kann, his m a n eine 1 erhglt. Eine m6gliche Realisierung dieser
Strategie in F o r m einer T M ist A - ({q0, qeven~ qodd~ ql~ q2~ q3~ qaccept ~qreject }~ {0}~
{0, a, r u}, ~A, q0, qaccept, qreject) mit der graphischen Darstellung in Fig. 4.6.

Aufgabe 4.5. Eine andere Strategie die Sprache L p zu erkennen ist, die Eingabe 0~ im
ersten Lauf durch das Band in 0J l J umzuwandeln, falls i - 2j gerade ist. Im n/~chsten Lauf
iiberpriift man, ob j gerade ist, indem man im positiven Fall 0Jl j dutch 0~ 1~ lJ ersetzt.
Akzeptiert wird nur wenn durch diese Art des Halbierens auf dem Band das Wort 01 i-1
4.3 Mehrband-Turingmaschinen und Church'sche These 137

erzeugt wurde. Dieses Halbieren kSnnte man mit der Strategie zur Suche der Mitte einer
Eingabe realisieren. Konstruieren Sie eine TM, die als eine Implementierung des beschrie-
benen Verfahrens gesehen werden kann.

A u f g a b e 4.6. Entwerfen Sie Turingmaschinen ftir folgende Sprachen:


(i) {anb n I n E IN},
(ii) {x:/=/:y l x, y E {0, 1}*, N u m m e r ( x ) = N u m m e r ( y ) + 1}
(iii) {w://:w I w E {0, 1}*},
(iv)* {0 n~ ] n C IN}.

A u f g a b e 4.7. Entwerfen Sie Turingmaschinen, die fiir jedes Wort x c (Ebool)* im Zustand
qaccept mit folgendem Bandinhalt halten:
(i) y c (Ebool)*, so dass N u m m e r ( y ) = N u m m e r ( x ) + 1,
(ii) x:/Cx,
(iii) z E (Ebool)*, so dass N u m m e r ( z ) = 2. N u m m e r ( x ) ,
(iv) ###x.

4.3 Mehrband-Turingmaschinen und


Church'sche These

Die Turingmaschinen sind das Standardmodell der Theorie der Berechenbar-


keit, wenn es um die Klassifizierung der Entscheidungsprobleme in rekursive
(rekursiv aufzS~hlbare) und nicht rekursive (nicht rekursiv aufzS~hlbare) geht.
Dieses Modell ist aber nicht so gut ftir die KomplexitS~tstheorie geeignet. Der
Hauptpunkt der Kritik ist, dass dieses Modell nicht dem des allgemein akzep-
tierten Modells des Von-Neumann-Rechners entspricht. Dieses fordert, dass al-
le Komponenten des R e c h n e r s - Speicher fiir Programm, Speicher fiir Daten,
CPU und das E i n g a b e m e d i u m - physikalisch unabhS~ngige Teile der Rechners
sind. In dem Modell der Turingmaschine sind das Eingabemedium und der
Speicher eins - das Band. Der zweite Kritikpunkt ist die zu starke Vereinfa-
chung in Bezug auf die benutzten Operationen und die LinearitS~t des Spei-
chers. Wenn man nS~mlich zwei Felderinhalte, die weit voneinander entfernt
liegen, vergleichen m6chte, braucht man mindestens so viele Operationen (Be-
rechnungsschritte) wie die zwei Felder voneinander entfernt liegen.
Das folgende Modell der Mehrband-Turingmaschine ist das grundlegende Mo-
dell der KomplexitS~tstheorie. F/Jr jede positive ganze Zahl k hat eine k-Band-
Turingmaschine folgende Komponenten (Fig. 4.7):

9 eine endliche Kontrolle (Programm),


138 4 Turingmaschinen

9 ein endliches Band mit einem Lesekopf,


9 k Arbeitsb~nder, jedes mit eigenem Lese/Schreibkopf.

w I$1 Eingabeband
A Lesekopf

[ Progamm [

Lese- / S chreibk6p fe

1. Arbeitsband

2. Arbeitsband

u ... k-tes Arbeitsband

Fig. 4.7

Am Anfang jeder Berechnung auf einem Wort w ist die k-Band-Turingmaschine


in folgender Situation.

9 Das Eingabeband enthglt r wobei r und $ die linke bzw. die rechte SeRe
der Eingabe markieren.
9 Der Lesekopf des Eingabebandes zeigt auf r
9 Der Inhalt aller ArbeitsbS~nder ist Cuuu... und deren Lese-/Schreibk6pfe
zeigen auf r
9 Die endliche Kontrolle ist im Anfangszustand q0.

WS~hrend der Berechnung diirfen sich alle k + 1 K6pfe in beide Richtungen


links und rechts bewegen, nur darf sich kein Kopf fiber das Randsymbol r nach
links bewegen und der Lesekopf des Eingabebandes darf sich nicht fiber das
rechte Randsymbol $ nach rechts bewegen. Der Lesekopf darf nicht schreiben,
und deswegen bleibt der Inhalt r des Eingabebandes wghrend der ganzen
4.3 Mehrband-Turingmaschinen und Church'sche These 139

Berechnung gleich. Ftir die Feldinhalte der ArbeitsbS~nder betrachtet man wie
bei einer TM ein Arbeitsalphabet F. Die Felder aller k + 1 Bgnder kann man
von links nach rechts nummerieren, beginnend mit 0 bei r So kann man eine
Konfiguration einer k-Band-TM M wie folgt darstellen. Eine Konfiguration

(q, w, i, Ul, il, U2, i 2 , . . . , u~, ik)

ist ein Element aus

Q x E* x IN x (F x IN) ~

mit folgender Bedeutung:

9 M ist im Zustand q,
9 der Inhalt des Eingabebandes ist r und der Lesekopf des Eingabebandes
zeigt auf das i-te Feld des Eingabebandes (d.h. falls w = ala2.., an dann liest
der Lesekopf das Symbol ai),
9 ftir j E {1, 2, . . . . . . ist der Inhalt des j-ten Bandes Cujuuu..., und ij <_ lujl
ist die Position des Feldes, auf das der Kopf des j-ten Bandes zeigt.

Die Berechnungsschritte von M kSnnen mit einer Transitionsfunktion

• (r u {r $ } ) • r # • {L,R,N} • (r • {L, R, N})

beschrieben werden. Die Argumente (q, a, b l , . . . , bk) E Q x (}-]u{r $ } ) x r k sind


der aktuelle Zustand q, das gelesene Symbol a E E U {r $} auf dem Eingabe-
band und die k Symbole b l , . . . , bk E F, auf denen die KSpfe der Arbeitsbgnder
stehen. Diese k Symbole werden yon den K6pfen der k ArbeitsbS~nder durch
andere Symbole ersetzt, und die Position aller k + 1 K6pfe wird um maximal
1 geS~ndert. Die Eingabe w wird yon M akzeptiert, falls M in der Berechnung
auf w den Sonderzustand qaccept erreicht. Die Eingabe w wird nicht akzeptiert,
falls M die Eingabe w i m Zustand qreject verwirft oder die Berechnung von M
auf w nicht terminiert (unendlich ist).
Wir verzichten auf die formale Definition der k-Band-Turingmaschine. Der
oben gegebenen Beschreibung folgend ist die Herstellung einer solchen Defini-
tion eine Routinearbeit und wir iiberlassen dies dem Leser zum Training.

Aufgabe 4.8. Geben Sie eine exakte formale Definition einer k-Band-Turingmaschine. Fol-
gen Sie dabei allen Schritten der Definition von Turingmaschinen.
140 4 Turingmaschinen

F/Jr jedes k E I N - {0} nennen wir eine k-Band-Turingmaschine (k-Band-


TM) auch M e h r b a n d - T u r i n g m a s c h i n e ( M T M ) . Weil die Operationen ei-
ner MTM ein bisschen komplexer als die elementaren Operationen einer TM
sind, kann man erwarten, dass Mehrband-Turingmaschinen gewisse Probleme
einfacher oder schneller als Turingmaschinen 15sen kSnnen. Betrachten wir die
Sprache

Lgleich : {W--~W I W E (~bool)*}.

Eine TM, die das erste w mit dem zweiten w vergleicht, muss mit dem Kopf
fiber das Band viele Male fiber lange Entfernungen hin und her laufen.

I el... 9 I'...
Fig. 4.8

Eine 1-Band-TM A kann Lgleich mit folgender Strategie einfach erkennen:

1. A iiberpriift, ob die Eingabe die Form x # y mit x, y E (~bool)* hat. s Falls


nicht, verwirft A die Eingabe.
2. Fiir die Eingabe x # y kopiert A das Wort x auf das Arbeitsband (d.h. nach
diesem Schritt entha~t das Arbeitsband Cx (Fig. 4.8)).
3. A positioniert den Kopf des Arbeitsbandes auf r Dann bewegt A simultan
beide KSpfe nach rechts und vergleicht x und y. Falls x r y, liest A in einem
der Schritte zwei unterschiedliche Symbole. In diesem Fall verwirft A die Ein-
gabe. Falls alle Paare yon Symbolen gleich sind und beide K6pfe gleichzeitig u
erreichen, akzeptiert A die Eingabe.

Eine Transition 5(p, a, b) = (q, X, d, Y) einer 1-Band-TM kann man graphisch


wie in Fig 4.9 darstellen. Der Ubergang yon p zu q findet beim Lesen von a
auf dem Eingabeband und gleichzeitigem Lesen yon b auf dem Arbeitsband

SDies bedeutet, dass A wie ein EA einfach verifizieren kann, ob die Eingabe genau ein r
hat.
4.3 Mehrband-Turingmaschinen und Church'sche These 141

@ a , b ~ X,d,Y @

Fig. 4.9

statt. Das Symbol b wird durch d ersetzt, X E {L, R, N} determiniert die Be-
wegung des Lesekopfes auf dem Eingabeband und Y E {L, R, N} determiniert
die Bewegung des Kopfes auf dem Arbeitsband.
Entsprechend dieser graphischen Darstellung (Fig. 4.9) gibt Fig. 4.10 die Be-
schreibung einer 1-Band-TM M, die eine Implementierung der oben beschrie-
benen Strategie zur Erkennung y o n Lgleic h ist. Die ZustS~nde q0, ql, q2 und qreject
benutzt man zur Realisierung des ersten Schrittes der Strategie. Falls die Ein-
gabe genau ein r enthS~lt, erreicht M den Zustand q2 mit dem Lesekopf auf
dem letzten Symbol der Eingabe. Sonst endet M in qreject. Der Zustand q2
wird benutzt, um den Lesekopf zuriick auf das linke Randsymbol r zu bringen.
Im Zustand qcopy kopiert M das PrS~fix der Eingabe bis zum r auf das Ar-
beitsband (Fig. 4.8) und im Zustand qadjust kehrt der Kopf des Arbeitsbandes
zurtick auf r Der Vergleich yon x und y des Eingabewortes x--ICy findet im
Zustand qcompare statt. Falls x - y, endet M im Zustand qaccept. Falls x und
y sich im Inhalt auf irgendeiner Position unterscheiden oder unterschiedliche
LS~ngen haben, endet M i m Zustand qreject-

Aufgabe 4.9. Beschreiben Sie informell und auch in der Form eines Diagramms 1-Band-
Turingmaschinen, die folgende Sprachen akzeptieren:
(i) L = {anbn i n E IN},
(ii) L = { w E (Ebool)*iiwi0=iwI1},
(iii) L = {anbncn i n c IN},
(iv) L = {www I w C (Ebool)*},
(v) L = {an21 n C IN}.

Wir haben jetzt zwei unterschiedliche M o d e l l e - die TM und die MTM. Um


beide gleichzeitig benutzen zu dfirfen, mfissen wir deren Aquivalenz beziiglich
der Menge der akzeptierten Sprachen beweisen. Seien A und B zwei Maschinen
(TM, MTM), die mit dem gleichen Eingabealphabet E arbeiten. Im Folgenden
sagen wir, dass eine M a s c h i n e A fiquivalent zu e i n e r M a s c h i n e B ist,
falls f/Jr jede Eingabe x E (2bool)*:

(i) A akzeptiert x e=~ B akzeptiert x,


(ii) A verwirft x e=~ 13 verwirft x,
(iii) A arbeitet unendlich lange auf x e=~ B arbeitet unendlich lange auf x.
142 4 Turingmaschinen
.

S 1,r ~ R , r
0,r ~ R , r 1,r ~ R , r
r162~ R , r 0,r ~ R , r
$,r ~ N , r

Ir
:/#, r ~ N, r N

1, 0 ~ N, 0, N
. 1,r ~ L,r
0, 1 ~ N, 1, N
$, 0 ---, N, 0, N
$, 1 ~ N, 1, N
r r ---, R, r R 0, u ~ N,u,N
1, u ~ N,u,N
~r

1, u ~ R, 1, R
0, u ~ R, 0, R

#,u~N,u,L

I R,r $,u ~ N , u , N ~

@,0 ~ N, 0, L 0,0 ~ R, 0, R
@, 1 ~ N, 1, L 1, 1 ~ R, 1, R

Fig. 4.10

Es ist klar, dass L(A) : L(B), wenn A und B 5~quivalent sind. Die Tatsache
L(A) = L ( B ) ist aber keine Garantie dafiir, dass A und B 5~quivalent sind.

L e m m a 4.1. Zu jeder TM A existiert eine zu A iiquivalente 1-Band-TM B.

Beweis. Wir beschreiben die Simulation yon A durch t3, ohne die formale
Konstruktion von B aus A anzugeben. B arbeitet in zwei Phasen:
4.3 Mehrband-Turingmaschinen und Church'sche These 143

1. B kopiert die ganze Eingabe w auf das Arbeitsband.


2. B simuliert Schritt fiir Schritt die Arbeit von A auf dem Arbeitsband (dies
bedeutet, dass B auf dem unendlichen Arbeitsband genau das Gleiche tut was
A auf seinem unendlichen Eingabeband gemacht hS~tte).

Es ist klar, dass A und B gquivalent sind.

Aufgabe 4.10. Geben Sie eine formale Konstruktion einer 1-Band-TM B, die gquivalent
zu TM A = (Q, E, F, 5, q0, qaccept,qreject) ist.

Im Folgenden werden wir meistens auf formale Konstruktionen von Turing-


maschinen und formale Beweise der Aquivalenzen (oder von L(A) - L ( B ) )
verzichten. Der Grund ist ghnlich wie bei der Beschreibung von Algorithmen
oder bei formalen Beweisen der Korrektheit von Programmen. Wir ersparen
uns viel Kleinarbeit, wenn uns intuitiv klar ist, dass ein P r o g r a m m (eine TM)
die gewiinschte Tgtigkeit realisiert, und wir auf einen formalen Beweis verzich-
ten.

L e m m a 4.2. Fiir jede Mehrband-TM A existiert eine zu A iiquivalente TM


B.

Beweis. Sei A eine k-Band-Turingmaschine fiir ein k E I N - {0}. Wir zeigen,


wie sich eine TM B konstruieren lgsst, die Schritt fiir Schritt A simulieren
kann. Eine gute Strategie, um so eine Simulation zu erklgren, ist, zuerst die
Darstellung yon Konfigurationen der zu simulierenden Maschine A festzulegen,
und dann erst die Simulation der einzelnen Schritte zu erklgren.
Die Idee der Darstellung der aktuellen Konfiguration von A und B ist in Fig.
4.11 anschaulich beschrieben. B speichert die Inhalte aller k + 1 Bgnder von A
auf seinem einzigen Band. Anschaulich gesehen zerlegt B sein Band in 2(k + 1)
Spuren. Dies kann man wie folgt erreichen. Falls F A das Arbeitsalphabet von
A ist, so ist

- u {r $, ,,}) • {,,, 1"} x x {,,, 1-}) u u {r

das Arbeitsalphabet yon B. F/Jr ein Symbol ct = (ao, a l , a 2 , . . . ,a2k+l) E FB


sagen wir, dass ai auf d e r / - t e n Spur liegt. Daher bestimmen d i e / - t e n Elemente
der Symbole auf dem Band yon B den Inhalt d e r / - t e n Spur. Eine Konfiguration
(q, w, i, Xl, il, x2, i 2 , . . . , xk, ik) von A ist dann in B wie folgt gespeichert. Der
Zustand q ist in der endlichen Kontrolle von B gespeichert. Die 0-te Spur des
Bandes yon B enthglt r d.h. den Inhalt des Eingabebandes yon A. F/Jr alle
i E {1,..., k} enthalt die (2i)-te Spur des Bandes von B das Wort Cx~, d.h.
144 4 Turingmaschinen

A I W is1 B: I* I,,...
U U U T U U

r zl
U U U T U U

r z2
Xl U U T U U U

X2
r xk
U U U T U

1 ;
Fig. 4.11

den Inhalt des/-ten Arbeitsbandes von A. Fiir alle i E { 1 , . . . , k}, bestimmt


die (2i + 1)-te Spur mit dem Symbol T die Position des Kopfes auf d e m / - t e n
Arbeitsband yon A.
Ein Schritt von A kann jetzt durch folgende Prozedur von B simuliert werden:

1. B liest einmal den ganzen Inhalt seines Bandes von links nach rechts und
speichert dabei in seinem Zustand die k + 1 Symbole 9, die bei den k + 1 K6pfen
von A gelesen worden sind (das sind genau die Symbole der geraden Spuren,
auf die die Symbole T auf den ungeraden Spuren zeigen).
2. Nach der ersten Phase kennt B das ganze Argument (der Zustand yon A ist
auch in dem Zustand yon B gespeichert) der Transitionsfunktion yon A und
kann also genau die entsprechenden Aktionen (K6pfe bewegen, Ersetzen von
Symbolen) von A bestimmen. Diese Anderungen fiihrt B in einem Lauf fiber
sein Band yon rechts nach links durch.

A u f g a b e 4.11. Geben Sie eine formale Konstruktion einer TM an, die die Phase 1 der
Simulation eines Schrittes von A aus Lemma 4.2 realisiert.

9Dies bedeutet, dass die Zustandsmenge von t3 die Menge Q • (EU{0, $}) • F k enth~lt, was
kein Problem ist, da diese Menge endlich ist.
4.3 Mehrband-Turingmaschinen und Church'sche These 145

D e f i n i t i o n 4.2. Zwei Maschinenmodelle (Maschinenklassen) A und B fiir


Entscheidungsprobleme sind ~iquivalent, falls

(i) fiir jede Maschine A E A eine zu A ~iquivalente Maschine B E B exi-


stiert, und
(ii) fiir jede Maschine C E B eine zu C iiquivalente Maschine D E A exi-
stiert.

Aufgabe 4.12. Geben Sie eine formale Definition der Aquivalenz von zwei Maschinen an,
die Funktionen von E* nach F* berechnen. Formulieren Sie dazu die Definition der Aquiva-
lenz von zwei Maschinenklassen zur Berechnung von Funktionen.

Aus den L e m m a t a 4.1 und 4.2 erhalten wir direkt das folgende Resultat.

S a t z 4.1. Die
Maschinenmodelle von Turingmaschinen und Mehrband-
Turingmaschinen sind iiquivalent.

Die Kenntnis, dass diese beiden Maschinenmodelle als gleichberechtigt zur A1-
gorithmenmodellierung betrachtet werden diirfen, erleichtert unsere Arbeit.
Wenn wit beweisen wollen, dass eine Sprache rekursiv oder rekursiv aufz~hlbar
ist, reicht es, eine Mehrband-TM fiir diese Sprache zu konstruieren (was mei-
stens einfacher ist, als eine TM zu konstruieren). Wenn wir aber zeigen wollen,
dass eine Sprache nicht rekursiv oder nicht rekursiv aufz~hlbar ist, werden wir
mit der Nichtexistenz einer entsprechenden TM argumentieren. Die Situation
ist vergleichbar damit, dass man eine h6here Programmiersprache zum Beweis
algorithmischer L6sbarkeit eines gegebenen Problems benutzt, und Assembler
oder Maschinencode zum Beweis algorithmischer Unl6sbarkeit benutzt. Dies
ist genau das, was im n~tchsten Kapitel behandelt wird.
Deswegen k6nnte es fiir uns auch hilfreich sein, die Aquivalenz zwischen Turing-
maschinen und einer h6heren Programmiersprache zu beweisen. Ein formaler
Beweis erfordert eine grofie Menge an technischer Kleinarbeit, die sehr zeitauf-
wendig ist. Deshalb erkl~ren wir nur die Idee, wie man eine solche Aquivalenz
zeigt.
Dass man fiir jede TM ein ~tquivalentes P r o g r a m m schreiben kann, glaubt hof-
fentlich jeder in der Programmierung ein bisschen erfahrene Leser. Man kann
sogar noch etwas B e s s e r e s - einen Interpreter fiir Turingmaschinen schreiben.
Ein Interpreter CTM fiir Turingmaschinen bekommt eine Beschreibung einer
TM M in einem festgelegten Formalismus und ein Eingabewort fiber dem Ein-
gabealphabet yon M. Danach simuliert CTM die Arbeit yon M auf w.
146 4 Turingmaschinen

Wie kann m a n jetzt zu einem P r o g r a m m einer komplexeren P r o g r a m m i e r -


sprache eine T M bauen? Dazu sollte sich m a n den Weg der Entwicklung der
P r o g r a m m i e r s p r a c h e n anschauen. A m Anfang hat m a n nur in Assembler oder
sogar noch in Maschinencode p r o g r a m m i e r t . Die einzigen e r l a u b t e n Operatio-
nen waren Vergleiche von zwei Zahlen und die a r i t h m e t i s c h e n O p e r a t i o n e n .
Alle anderen Befehle w u r d e n als kleine P r o g r a m m e aus diesem G r u n d r e p e r -
toire z u s a m m e n g e s e t z t , u m dem P r o g r a m m i e r e r die Arbeit zu vereinfachen.
Deswegen werden wir keine Zweifel an der Aquivalenz von Assembler u n d be-
liebigen P r o g r a m m i e r s p r a c h e n haben; insbesondere weil wir wissen, dass die
Compiler P r o g r a m m e in h6heren P r o g r a m m i e r s p r a c h e n in Assembler oder Ma-
schinencode iibersetzen. Daher reicht es, die Aquivalenz zwischen Assembler
u n d T u r i n g m a s c h i n e n zu beweisen. Den Assembler kann m a n durch sogenannte
R e g i s t e r m a s c h i n e n modellieren u n d d a n n diese durch T u r i n g m a s c h i n e n simu-
lieren lassen. Diesen Weg werden wir jetzt aber nicht gehen. W i r k6nnen unsere
Aufgabe noch vereinfachen. W i r kSnnen Multiplikation u n d Division yon zwei
Zahlen a u n d b durch P r o g r a m m e , die nur mit den G r u n d o p e r a t i o n e n A d d i t i o n
u n d S u b t r a k t i o n arbeiten, realisieren.

Aufgabe 4.13. Schreiben Sie ein Programm, dass fiir zwei gegebene Zahlen a und b das
Produkt a. b berechnet. Dabei darf das Programm nur die Addition, die Subtraktion und
Vergleich von zwei Zahlen in Verbindung mit i f ... t h e n . . , else benutzen.

D a n a c h kann m a n einen Vergleich yon zwei Zahlen durch P r o g r a m m e durch-


fiihren, die nur die O p e r a t i o n + 1 (I " - I + 1), - 1 (I " - I - 1) u n d den Test
auf 0 ( i f I - 0 t h e n . . . e l s e . . . ) benutzen.

Aufgabe 4.14. Schreiben Sie ein Programm, dass den Befehl i f I _> J t h e n g o t o 1 e l s e
goto 2 nur mit Hilfe von Operationen +1, - 1 und dem Test auf 0 realisiert.

A m Ende kSnnen wir auch noch auf A d d i t i o n u n d S u b t r a k t i o n verzichten.

Aufgabe 4.15. Schreiben Sie Programme, die fiir zwei gegebene Zahlen a, b E IN die Ad-
dition a + b und die Subtraktion a - b nur mit Hilfe der Operationen + 1, - 1 und dem Test
auf 0 berechnen.

Die Aufgabe, die P r o g r a m m e mit O p e r a t i o n e n + 1 , - 1 u n d if I = 0 t h e n


. . . e l s e . . . auf M e h r b a n d - T u r i n g m a s c h i n e n zu simulieren, ist nicht mehr
so schwer. Die Variablen werden auf den A r b e i t s b ~ n d e r n in der F o r m xC~y
gespeichert, wobei x die bin~re K o d i e r u n g des N a m e n s der Variablen Ix u n d y
die bin~re K o d i e r u n g des Wertes yon Ix ist. Die O p e r a t i o n e n + 1 , - 1 u n d den
Test y = 0 kann eine M T M einfach realisieren. Der einzige grSf3ere Aufwand
entsteht, wenn ein B a n d z.B. CxC~YC~C~zC~ur162 enth~lt u n d der Platz zur
4.3 Mehrband-Turingmaschinen und Church'sche These 147

Speicherung des Wertes yon Ix in y nicht mehr reicht (mehr Felder fiir y
werden gebraucht). In einem solchen Fall muss die M e h r b a n d - T M den Inhalt
~z~u~... rechts yon y nach rechts verschieben, u m mehr Platz fiir die
Speicherung von y zu gewinnen.
In der Theoretischen Informatik hat man Hunderte von formellen Modellen
(nicht nur in Form von Maschinenmodellen) zur Spezifikation der algorithmi-
schen LSsbarkeit entwickelt. Alle verntinftigen Modelle sind ~quivalent zu Tu-
ringmaschinen. Dies fiihrte zu der Formulierung der sogenannten Church'schen
These:
Church'sche These

Die Turingmaschinen sind die Formalisierung des Begriffes ,,Algo-


rithmus", d.h. die Klasse der rekursiven Sprachen (der entscheid-
baren Entscheidungsprobleme) stimmt mit der Klasse der algorith-
misch (automatisch) erkennbaren Sprachen iiberein.

Die Church'sche These ist nicht beweisbar, weil sie einer Formalisierung des
intuitiven Begriffes Algorithmus entspricht. Es ist nicht m6glich zu beweisen,
dass keine andere formale Modellierung des intuitiven Begriffes Algorithmus
existiert, die

(i) unserer Intuition fiber diesen Begriff entspricht, und


(ii) die algorithmische LSsung von Entscheidungsproblemen ermSglicht, die
m a n mit der Hilfe von Turingmaschinen nicht entscheiden kann.

Das einzige, was passieren k6nnte, ist, dass jemand ein solches stS~rkeres Modell
findet. In diesem Fall wS~ren die Grundlagen der Theoretischen Informatik zu
revidieren. Die Suche nach einem solchen Modell war aber bisher vergeblich,
und wir wissen heute, dass sogar das physikalische Modell des Quantenrech-
hers ~~ zu Turingmaschinen 5~quivalent ist.
Die Situation ist also 5~hnlich wie in der M a t h e m a t i k und Physik. Wir ak-
zeptieren die Church'sche These, weil sie unserer Erfahrung entspricht, und
postulieren sie als ein Axiom. Wie wir schon bemerkt haben, hat sie die Ei-
genschaften yon mathematischen A x i o m e n - sie kann nicht bewiesen werden,
aber m a n kann nicht ausschliefien, dass sie eines Tages widerlegt wird. 11 Die

l~ arbeiten nach dem Prinzip der Quantenmechanik.


11Die Widerlegung eines Axioms oder einer These sollte man nicht als ,,Katastrophe" be-
trachten. Solche Resultate gehSren zur Entwicklung der Wissenschaften dazu. Die bisherigen
Resultate und Kenntnisse muss man deswegen nicht verwerfen, nur relativieren. Sie gelten
einfach weiter unter der Voraussetzung, dass das Axiom gilt.
148 4 Turingmaschinen

Church'sche These ist das einzige informatikspezifische Axiom auf welchem die
Theoretische Informatik aufgebaut wird. Alle anderen benutzten Axiome sind
die Axiome der Mathematik.

4.4 Nichtdeterministische Turingmaschinen

Den Nichtdeterminismus kann man in das Modell der Turingmaschinen auf


gleichem Wege einfiihren wie wir den Nichtdeterminismus bei den endlichen
Automaten eingefiihrt haben. Fiir jedes Argument besteht die M6glichkeit
einer Auswahl aus endlich vielen Aktionen. Auf der Ebene der Transitions-
regeln bedeutet dies, dass die Transitionsfunktion 5 nicht yon Q • F nach
Q x F x { L, R, N } geht, sondern von Q x F nach 7)(Q • F x { L, R, N }). Eine andere
formale M6glichkeit ist, 5 als eine Relation auf (Q x F) • (Q • F • {L, R, N})
zu betrachten. Eine nichtdeterministische Turingmaschine M akzeptiert ein
Eingabewort w genau dann, wenn es mindestens eine akzeptierende Berech-
nung yon M auf w gibt. Die formale Definition einer nichtdeterministischen
Turingmaschine folgt.

Definition 4.3. Eine nichtdeterministische Turingmaschine (NTM) ist


ein 7-Tupel M = (Q, E, F, 6, q0, qaccept, qreject), wobei

(/) Q, E, F, q0, qaccept, qreject die gleiche Bedeutung wie bei einer TM haben,
und
5"(Q- {qaccept, qreject}) X r --+ ~P(Q X r X {g, 1~, N)) die Ubergangs-
funktion von M ist und die folgende Eigenschaft hat:
5(p, r c {(q,r Iq c Q,x {R, N}}
fiir alle q E Q.
{Das Randsymbol darf nicht dutch ein anderes Symbol ersetzt werden,
und der Kopf darf sich nicht von r aus nach links bewegen.}

Eine Konfiguration von M i s t ein Element aus

Konf(M) = ({r F*. Q. F*) O (Q. {r F*)


{mit der gleichen Bedeutung wie bei einer TM}.
Die Konfiguration qoCw ist die A nfangskonfiguration fiir das Wort w E E*.
Eine Konfiguration heiflt akzeptierend, falls sie den Zustand qaccept enthiilt.
Eine Konfiguration heiflt verwerfend, falls sie den Zustand qreject enthiilt.
4.4 Nichtdeterministische Turingmaschinen 149

Ein S c h r i t t von M ist eine Relation ---M-, die auf der Menge der Konfigura-
tionen ( --~ C_ Konf(M) • Konf(M)) wie folgt definiert ist. Fiir alle p, q E Q
und alle X l , X 2 , . . . , x ~ , y E F,

XlX2 9 9 9 Xi-lqXiXi+l 9 9 9 Xn ~ XlX2 9 9 9 Xi-lPyXi+l 9 9 9 Xn~

(p, y, N)
XlX2 9 9 9 Xi-2~ Xi-lqxixi+l 9 9 9 Xn ~ XlX2 9 9 9 Xi-2pXi-lyxi+l 9 9 9 Xn~

falls (p,
XlX2 9 9 9 x~_~qx~x~+~ . . . x~ ~ x~xe . . . x~_~ypx~+~ . . . x~,
falls (p,
XlX 2 . . . x~_lqx~ ~ xlx2 . . . x ~ - l y p u ,
falls (p, y, R) e

Die Relation - ~ ist die reflexive und transitive Hiille von M 9


Eine B e r e c h n u n g y o n M ist eine Folge von Konfigurationen Co, C 1 , . . . so
dass Ci ~ C~+1 fiir i - O, 1, 2, .... Eine B e r e c h n u n g v o n M a u f e i n e r
E i n g a b e x ist cine Bcrcchnung, die mit dcr Anfangskonfiguration qor beginnt
und die entweder unendlich ist, oder in einer Konfiguration wlqw2 endet, wobei
q E {qaccept, qreject}. Eine Berechnung von M auf x heiflt a k z e p t i e r e n d , falls
sie in einer akzeptierenden Konfiguration endet. Eine Berechnung von M auf
x heiflt v e r w e r f e n d , falls sie in einer verwerfenden Konfiguration endet.
Die v o n d e r N T M M a k z e p t i e r t e S p r a c h e ist

L(M) - {w E E* I qor ~ yq~eptZ fiir irgendwelche y, z E F*}.

A u f g a b e 4.16. Beschreiben und definieren Sie formal eine nichtdeterministische k-Band-


Turingmaschine far jedes k E IN - {0}.

A u f g a b e 4.17. Sei M eine nichtdeterministische Mehrband-Turingmaschine. Beschreiben


Sie eine N T M M', so dass L ( M ) - L(M').

Ahnlich wie im Fall der endlichen Automaten k6nnen auch bei Turingmaschi-
nen nichtdeterministische Strategien die Berechnungen vereinfachen. Betrach-
ten wir die Sprache

Lungleich -- {X~=~YlX~ Y E (~bool)*~ X ~ A~ X ~A y } .

Eine (deterministische) TM miisste Buchstabe fiir Buchstabe x und y verglei-


chen, um den Unterschied feststellen zu k6nnen. Eine NTM kann die Position
i, an der sich x = X l . . . x ~ und y = y l . . . y,~ unterscheiden, nichtdetermini-
stisch raten und dann die Korrektheit des Ratens durch den Vergleich von xi
150 4 Turingmaschinen

und yi verifizieren. Im Folgenden beschreiben wir eine nichtdeterministische


l-Band-TM A, die Lungleich akzeptiert (die formale Darstellung findet sich in
Fig. 4.12). A arbeitet auf einer Eingabe w wie folgt:

1. A iiberprtift deterministisch mit einem Lauf des Lesekopfes fiber das Ein-
gabeband, ob w genau ein Symbol ~ enthS~lt (ZustS~nde q0, ql, qr~j~ct in Fig.
4.12). Falls das nicht der Fall ist, verwirft A die Eingabe w. Falls w = z--#y
fiir z, y E (Ebool)*, setzt A die Arbeit mit Phase 2 fort (ira Zustand q2 in Fig.
4.12).
2. A stellt die K6pfe auf beiden B~ndern auf # (Zustand qs in Fig. 4.12).
3. A bewegt beide K6pfe simultan nach rechts (dabei ersetzt der Kopf auf dem
Arbeitsband die Symbole u durch die Symbole a) und in jedem Schritt trifft
sie nichtdeterministisch die Entscheidung, ob der Unterschied in der Position
des gelesenen Feldes vorkommt oder nicht (Zustand qg~ess in Fig. 4.12). Falls
b E {0, 1} auf dem Eingabeband gelesen wird und A r~tt, dass der Unterschied
an dieser Position auftritt, speichert A das Symbol b in seinem Zustand und
geht zur Phase 4 fiber (A geht in Zustand pb fiber in Fig. 4.12). Falls A das
Symbol # liest (Ixl < lYl rS~t), geht A in p# fiber.
4. Jetzt ist die Entfernung des Kopfes von # auf dem Arbeitsband gleich der
Position des gespeicherten Symboles b E {0, 1, r in xCp. A geht zuerst mit dem
Lesekopf auf 4P ohne den Kopf auf dem Arbeitsband zu bewegen (Zustgnde p0
und Pl in Fig. 4.12). Danach bewegt sich in jedem weiteren Schritt der Lesekopf
nach rechts, und der Kopf auf dem Arbeitsband nach links (Zustgnde So und Sl
in Fig. 4.12). Wenn der Kopf auf dem Arbeitsband # erreicht, steht der Kopf des
Eingabebandes auf der geratenen Position von y. Falls das gespeicherte Symbol
b in sb ungleich dem gelesenen Symbol des Eingabebandes ist, akzeptiert A das
Eingabewort w = x--#y. A akzeptiert w auch, wenn < lyl ((qaccop, N, r N)
6(p#, c,N) fiir alle c E {0, 1} in Fig. 4.12) oder wenn > lyl (~(~b, $, d) -
{(qacc~pt, N, d, N)} fiir alle b E {0, 1}, d E {a, r in Fig. 4.12).

Die Strategie des nichtdeterministischen Ratens und nachfolgenden determi-


nistischen Verifizieren der Korrektheit des Geratenen ist typisch fiir nichtde-
terministische Berechnungen. 12 Ein anderes Beispiel ist das Akzeptieren der
Sprache

Lquad - {a~21 ~ E IN}

12Wie stark man dadurch den Nichtdeterminismus charakterisieren kann, erfahren wir in
Kapitel 6.
4.4 Nichtdeterministische Turingmaschinen 151

r162162
0,r ~ R,r 1,r ~ R,r $ r ~ N,r
1,r ~ R,r 0,r ~ R,r

T $, r --+ L,r

I, r --+ L,r

#,r L ,N

r r --+ R, r R

1, u ~ R , a , R / ~ ~
0, u ~ R , a , R
0, u ~ R,a,N / 1, u ~ R,a,N

~ ( ~ ~ ~ ~ , u ---~R,N a, ~ ( ~ ~
1, a --~ R,a,N 1, a --~ R, a, N
0, a --~ R,a,N 0, a ~ R,a,N

( ~ ~ 1, a --~ R,u,L
~ , a ~ R,u,L 0, a --~ R,u,L ~ , a ~ R,u,L

1, a ~ R,u,L 1, a ~ R,u,L
0, a --~ R,u,L 0,r ~ N,C,N 0, a ~ R,u,L
1, r --+ N,r

1, r ---~N, ~,
N~.... / o,r ~ N,r
$,a ~ N,a,N
$, r --+ N, r $, a --+ N,r
Fig. 4.12
152 4 Turingmaschinen

yon einer nichtdeterministischen 2-Band-TM B. B kann zuerst fiir jede Ein-


gabe w eine Zahl n raten (n kann durch die Positionen der KSpfe auf den
ArbeitsbS~ndern gespeichert werden) und dann Iwl = n 2 iiberpriifen.

Aufgabe 4.18. Beschreiben Sie die Berechnungsstrategie einer nichtdeterministischen 2-


Band-TM, die Lquad akzeptiert und implementieren Sie ihre Strategie in der Form eines
Diagramms.

Die wichtigste Frage ist nun, ob die nichtdeterministischen Turingmaschinen


Sprachen akzeptieren, die man mit (deterministischen) Turingmaschinen nicht
akzeptieren kann. ]~hnlich wie bei endlichen A u t o m a t e n ist die Antwort auf
diese Frage negativ, und die Simulationsstrategie basiert auf der Breitensuche
in den Berechnungsbgumen der nichtdeterministischen TM.

D e f i n i t i o n 4.4. Sei M = (Q, E, F, 6, q0, qaccept, qreject) sine NTM und sei x sin
Wort iiber dem Eingabealphabet E von M. Ein B e r e c h n u n g s b a u m TM, x y o n
M a u f x ist ein (potentiell unendlicher) gerichteter Baum mit einer Wurzel,
der wie folgt definiert wird.

(/) Jeder Knoten von TM,x ist mit einer Konfiguration beschriftet.
(ii) Die Wurzel ist der einzige Knoten von TM,x rnit dern Eingrad 0 und ist
rnit der Ausgangskonfiguration qoCx beschriftet.
Jeder Knoten des Baurnes, d e r m i t einer Konfiguration C beschriftet ist,
hat genauso viele SShne wie C Nachfolgekonfigurationen hat, und diese
SShne sind rnit diesen Nachfolgekonfigurationen von C markiert.

Die Definition von Berechnungsbgumen kann man natiirlich auch fiir nicht-
deterministische Mehrband-Turingmaschine verwenden.

Aufgabe 4.19. Zeichnen Sie die Berechnungsb~ume der nichtdeterministischen l-Band-


TM aus Fig. 4.12 fiir die Eingaben 01~p01r und 01~p0.

Es gibt zwei wesentliche Unterschiede zwischen den BerechnungsbS~umen ei-


nes NEA und einer NTM. Die Berechnungsbgume von nichtdeterministischen
endlichen A u t o m a t e n sind immer endlich, was bei nichtdeterministischen Tu-
ringmaschinen nicht immer der Fall sein muss. Zweitens miissen die Konfigu-
rationen in der gleichen Entfernung zur Wurzel eines Berechnungsbaumes T~,x
einer NTM M auf x keine Ahnlichkeiten haben und deshalb kSnnen im Un-
terschied zu nichtdeterministischen endlichen A u t o m a t e n die Positionen der
KSpfe auf dem Eingabeband unterschiedlich sein.

S a t z 4.2. Sei M sine NTM. Dann existiert sine TM A, so dass


4.4 Nichtdeterministische Turingmaschinen 153

L ( M ) = L(A), und
falls M keine unendlichen Berechnungen auf WSrtern aus (L(M)) C hat,
dann hiilt A immer.

Beweis. Nach Lemma 4.2 geniigt es, eine 2-Band TM A mit den EigenschaRen
(i) und (ii) zu konstruieren. Wir beschrS~nken uns auf eine Beschreibung der
Arbeit von A und verzichten auf die formale Konstruktion. Die Strategie von
A heit3t Breitensuche in den Berechnungsbgumen von M.

Eingabe: ein Wort w


Phase 1: A kopiert die Anfangskonfiguration qoCw auf das erste Arbeitsband.
Phase 2: A iiberprtift, ob das erste Band eine akzeptierende Konfiguration
enthglt. Falls ja, hglt A und akzeptiert w. Sonst setzt A die Berechnung
mit Phase 3 fort.
Phase 3: A schreibt alle Nachfolgekonfigurationen der Konfigurationen aus
dem ersten Arbeitsband auf das zweite Arbeitsband (man beachte, dass
eine NTM nur endlich viele Aktionen fiir ein gegebenes Argument zur
Wahl hat und A somit immer alle MSglichkeiten realisieren kann). Falls es
keine Nachfolgekonfigurationen gibt (das zweite Arbeitband leer bleibt),
hS~lt A i m Zustand qreject.
Phase 4: A 15scht den Inhalt des ersten Arbeitsbandes und kopiert den Inhalt
des zweiten Arbeitsbandes auf das erste. Danach 15scht A den Inhalt des
zweiten Bandes und fS~hrt mit Phase 2 fort.

Wir bemerken, dass nach d e m / - t e n Durchlauf der Phasen 3 und 4 das erste
Arbeitsband alle Konfigurationen des Berechnungsbaumes TM,w mit der Ent-
fernung i von der Wurzel (alle in i Schritten erreichbaren Konfigurationen)
enthS~lt. Falls w E L ( M ) , dann existiert eine akzeptierende Berechnung von M
auf w von einer L~nge j ftir ein j E IN, und somit wird w nach j Durchlgufen
der Phasen 3 und 4 in der Phase 2 akzeptiert. Falls w ~ L ( M ) , wird w bei A
nicht akzeptiert. Falls TM,x endlich ist, hS~lt A i m Zustand qreject- [-1

A u f g a b e 4.20. Sei A die NTM aus Fig. 4.13.

(i) Geben Sic der ersten sechs Ebenen (alle Konfigurationen nach hSchstens fiinf Berech-
nungsschritten) der Berechnungsbaume TA(X) far x = 01 und mr x = 0010 an.
(ii) Bestimmen Sie die Sprache L(A).
154 4 Turingmaschinen

0 -+ 0, R 0 -+ 0, N
r r R.~@ ~ ( q ~ , 2 0 --+ 0, R ( 1-+ 1, N @ . ~

1 --+ 1,L Q !L
1,N
r r 1-+1
0 --+ 0, N
1--+ 1, N @
Fig. 4.13

4.5 Kodierung von Turingmaschinen

Jedes Programm hat eine bin~re Darstellung in Form des Maschinencodes. Fiir
die Transformation eines Programms, das fiber dem Alphabet ETastatur entspre-
chend der Syntax der Programmiersprache gegeben ist, in den Maschinencode
sorgen Ubersetzer (Compiler). Das Ziel dieses Kapitels ist, eine einfache binSze
Kodierung von Turingmaschinen zu entwickeln. Wir beginnen zun~chst damit,
dass wir eine Kodierung von Turingmaschinen fiber {0, 1, r entwickeln.
Sei M = (Q, E, F, ~, q0, qaccept, qreject) eine TM, wobei

Q = {q0~ql~...~qm~qaccept~qreject} u n d P = { A I ~ A 2 ~ . . . ~Ar}.

Wir definieren zuerst die Kodierung der einzelnen Symbole wie folgt:

Code(qi) - 10i+11 fiir i - 0, 1 , . . . , m ,


Code(qaccept) - 10"~+21,
Code(qreject) - 10"~+31,
Code(Aj) - 110Jll fiir j - 1,...,r,
Code(N) = 1110111,
Code(R)- 11102111,
Code(L)- 11103111.

Diese Kodierung von Symbolen nutzen wir zu folgender Darstellung einzelner


Transitionen.

Code(6(p, A1) : (q, A,~, c~))


4.5 Kodierung von Turingmaschinen 155

fi]r jede Transition 5(p, Al) = (q, A,~, c~), p E {q0, q l , . . . , qm}, q E Q, l, ~7t E
{ 1 , . . . ,r}, c~ E {N, L, R}.
Die Kodierung der Turingmaschine M gibt zuerst die globalen D a t e n - die An-
zahl der Zustande (IQI) und die a n z a h l der Symbole aus dem a r b e i t s a l p h a b e t
(Irl). Danach folgt die Liste aller Transitionen. Daher
Code(M) = #0"~+3#0~##Code( TfaTtsitioTt1)#COde( Transition2)#...
i-~ I,R

- - 0 -~ O,R (

v\ /- o -~ o,R /
a --~ a,N \ ~ / r --~ r
b --~ b,N --~ u,L
a~ r

Fig. 4.14

Aufgabe 4.21. Sei M die TM aus Fig. 4.14.


(i) Geben Sie Code(M) von M an. Gliedern Sie iibersichtlich den Code mittels Kommen-
taren.
(ii) Geben Sie die Sprache L(M) an.
(iii) Ist L(M) regular oder nicht? Beweisen Sie Ihre Behauptung.

U m eine Kodierung fiber Ebool zu erhalten, benutzen wir folgenden Homomor-


phismus h : {0, 1, # } * --~ (Ebool)*:

h ( # ) = Ol, h(o) = oo, .... = 11.

D e f i n i t i o n 4.5. Fiir jede Turingmaschine M wird

Kod(M) = h(Code(M))

die K o d i e r u n g d e r T M M genannt.

KodTM : (Kod(M) I Mist eine TM}

bezeichnet die Menge der Kodierungen aller Turingmaschinen.


156 4 Turingmaschinen

Es ist klar, dass die Abbildung von M auf Kod(M) injektiv ist und daher
determiniert Kod(M) eindeutig eine Turingmaschine.

Aufgabe 4 . 2 2 . Beschreiben Sie ein Programm, dass jede formale Beschreibung einer TM
M nach Definition 4.5 in Code(M) umwandelt.

Aufgabe 4.23. Beschreiben Sie ein Programm, das fiir jedes Wort x c {0, 1}* entscheidet,
ob x = Kod(M) fiir eine TM M.

Im Folgenden bezeichnet Aver ein Programm (eine TM), das fiir jedes x E
(Ebool)* entscheidet, ob x die Kodierung einer TM ist.
Die wichtigste Beobachtung ist, dass die Festlegung auf eine Kodierung Kod(M)
von Turingmaschinen eine lineare Ordnung auf den Turingmaschinen wie folgt
definiert.

D e f i n i t i o n 4.6. Sei x E (Y]bool)*. /b~F jedes i E I N - {0} sagen wir, dass x


die K o d i e r u n g d e r / - t e n T M ist, falls

x = Kod(M) fiir eine TM M und


die Menge {y E (Eboo])* I Y ist vor x in kanonischer Ordnung} enth~lt
genau i - 1 WSrter, die Kodierungen von Turingmaschinen sind.

Falls x = Kod(M) die Kodierung der i-ten TM ist, dann ist M die i - t e
T u r i n g m a s c h i n e M i . Die Zahl i ist die O r d n u n g d e r T M M i .

Wir beobachten, dass es nicht schwer ist, fiir eine gegebene Zahl i die Kodierung
Kod(Mi) d e r / - t e n Turing Maschine zu berechnen. Sei Gen eine Funktion aus
I N - {0} nach (2bool)* definiert durch G e n ( i ) = Kod(M~).

L e m m a 4.3. Die Funktion Gen ist total rekursiv, d.h., es existiert eine Tu-
ringmaschine (Programm) Aar die fiir eine gegebene Zahl i die Kodierung
Kod (Mi) berechnet.

Beweis. Ein Programm, das Gen berechnet, kann wie folgt arbeiten.

Eingabe: ein i E I N - {0}


Schritt 1: x := 1 {x ist ein Wort fiber (Ebool)*}
I:=0
Schritt 2: while I < i do
b e g i n benutze Aver um zu entscheiden, ob x E KodTM;
if x C KodTM then begin
I:=I+1;
4.6 Zusammenfassung 157

y:zX
end;
x :=Nachfolger yon x in kanonischer 0 r d n u n g auf (}-]bool)*
end
Schritt 3: output(y).

Aufgabe 4.24. Schreiben Sie ein Programm, das fiir eine gegebene Kodierung Kod(M) C
(Ebool)* die Ordnung der TM M berechnet.

4.6 Zusammenfassung

Die Turingmaschine ist ein abstraktes Rechnermodell mit der Berechnungs-


stS~rke realer Rechner. Die Komponenten einer TM sind ein unendliches Band,
eine endliche Kontrolle und ein Lese-/Schreibkopf. Das Band ist aufgeteilt in
Felder. Jedes Feld enth~lt ein Symbol des Arbeitsalphabets (ein Computer-
wort). Das Band wird als das Eingabemedium der TM sowie als der Speicher
der TM benutzt. Die elementaren Aktionen (Transitionen) einer TM hgngen
vom aktuellen Zustand der TM und dem Symbol ab, das der Kopf auf dem
Band liest. In einer Aktion darf die TM den Zustand 5mdern, das gelesene
Symbol durch ein neues ersetzen und den Kopf um ein Feld auf dem Band be-
wegen. Eine Berechnung entsteht durch eine Folge von elementaren Aktionen.
Eine TM akzeptiert (verwirft) ein Wort x, wenn sie in einem Sonderzustand
qaccept (qreject) die Berechnung auf x beendet. Ein Wort x wird vonder TM nicht
akzeptiert, wenn x verworfen wird oder wenn die Berechnung der TM auf x
unendlich ist. Die von einer TM M akzeptierte Sprache L(M) ist die Menge
aller W6rter, die M akzeptiert. Eine Sprache L heif3t rekursiv aufz~hlbar, falls
L = L(M) fiir eine TM M. Eine Sprache L heifit rekursiv (oder entscheidbar),
falls L = L(M) fiir eine TM M, die keine unendliche Berechnung hat (d.h. alle
Berechnungen enden entweder in qaccept oder in qreject).
Das Modell der Mehrband-TM hat statt einem unendlichen Band (das f/Jr die
Eingabe sowie fiir die Speicherung yon Daten bei einer TM dient) ein end-
liches Band, das nur die Eingabe enthglt, und eine endliche Anzahl von un-
endlichen ArbeitsbSmdern. Die Modelle der Turingmaschinen und Mehrband-
Turingmaschinen sind 5~quivalent in dem Sinne, dass jede TM durch eine MTM
simuliert werden kann und umgekehrt. Diese Turingmaschinenmodelle sind
~quivalent zu Programmen in jeder gelgufigen Programmiersprache.
158 4 Turingmaschinen

Die Church'sche These besagt, dass eine Turingmaschine, die keine unendliche
Berechnung ausfiihrt, die Formalisierung des intuitiven Begriffs ,,Algorithmus"
ist. Daher sind alle Probleme, die man mit Hilfe yon Turingmaschinen 16sen
kann, algorithmisch (automatisch) 16sbar und alle Probleme, die auf Turing-
maschinen nicht 16sbar sind, sind algorithmisch (automatisch) unl6sbar. Die
Church'sche These ist ein Axiom der Informatik, daher kann sie nie bewiesen
werden. Es besteht nur die M6glichkeit, sie zu widerlegen.
Auf die gleiche Art wie bei endlichen Automaten kann man Turingmaschinen
zu nichtdeterministischen Turingmaschinen verallgemeinern. Eine nichtdeter-
ministische TM kann mehrere Berechnungen auf einer Eingabe haben. Die
Eingabe wird akzeptiert, falls mindestens eine dieser Berechnungen in qaccept
endet. Durch eine Breitensuche der Berechnungsb~tume (dies entspricht der
Potenzmengenkonstruktion bei endlichen Automaten) k6nnen nichtdetermi-
nistische Turingmaschinen durch deterministische Turingmaschinen simuliert
werden.
Wie Programme k6nnen auch Turingmaschinen eindeutig als W6rter fiber Ebool
dargestellt werden. Weil die W6rter fiber Ebool durch die kanonische Ordnung
linear geordnet sind, gewinnt man durch diese Darstellung eine lineare Ord-
nung fiir die Menge der Turingmaschinen. Fiir eine gegebene Zahl i kann man
die Kodierung der/-ten TM berechnen. Ebenfalls kann man zu einer gegebenen
TM ihre Ordnung berechnen.
Die Einfiihrung eines formalen Modells von Algorithmen war der erste Schritt,
der zur Griindung der Theoretischen Informatik fiihrte. Diesen Fortschritt
hat Kurt G6del mit seiner grundlegenden Arbeit [G6d 31] initiiert. In die-
ser Arbeit wurde erstmals bewiesen, dass es mathematische Probleme gibt,
die man nicht ,,automatisch" 16sen kann. Dies motivierte Church [Chu 36],
Kleene [Kle 36], Post [Pos 36] und Turing [Tur 36] zum Entwurf formaler Mo-
delle des algorithmischen Rechnens. Alle diese Modelle und auch viele andere,
die spS~ter definiert wurden, sind ~tquivalent. Die Folge dieser Aquivalenzen
ist die Church'sche These. Das Modell der Turingmaschine aus [Tur 36] wurde
zum Basismodell des Rechners in der Theoretischen Informatik, obwohl die ur-
spr/inglichen Gedanken yon Turing nicht gerade mit einem Rechner verkniipft
waren. Turing wollte die Verfahren (Algorithmen) zur Symbolmanipulation
prS~zise formalisieren. Statt an einen Rechner dachte er an einen Menschen
(menschlichen Rechner), der ein Rechenverfahren mit einem Stift auf einem
Blatt Papier ausfiihrt. Das eindimensionale Band als Speichermedium ist da-
durch motiviert, dass man auf einem Blatt zeilenweise schreibt. Die endlich
vielen Symbole, die man benutzen darf, bestimmen dann das Arbeitsalpha-
bet. Um das alles systematisch zu machen, teilte Turing das Bands in Felder
4.6 Zusammenfassung 159

ein, wobei jedes Feld g e n a u ein S y m b o l b e i n h a l t e n durfte. Der I n h a l t des gan-


zen B a n d e s m u s s t e i m m e r endlich sein, a b e r die Lgnge des B a n d e s (die Gr6fie
des Papiers) war u n b e s c h r ~ n k t . T u r i n g setzte voraus, dass der R e c h n e r (das
menschliche Gehirn) endlich grog ist, u n d sich somit nur in einem yon end-
lich vielen m6glichen ZustSmde befinden kann. D a h e r s t a m m t die endliche Zu-
s t a n d s m e n g e fiir das Modell der T u r i n g m a s c h i n e . Aus einem 5~hnlichen G r u n d
setzte T u r i n g voraus, dass eine A k t i o n eines R e c h n e r s in einem Augenblick nur
d u r c h einen Anteil des B a n d e s yon beschrS~nkter ( k o n s t a n t e r ) Gr6fie beeinflusst
w e r d e n kann. Weil m a n jede solche A k t i o n d u r c h eine Folge yon e l e m e n t a r e n
O p e r a t i o n e n , bei d e n e n nur ein S y m b o l des B a n d e s b e t r a c h t e t wird, simulie-
ren kann, fiihrte T u r i n g die F e s t l e g u n g der B e r e c h n u n g s s c h r i t t e d u r c h die in
A b s c h n i t t 4.2 vorgestellte T r a n s i t i o n s f u n k t i o n ein.
Die M e h r b a n d - T u r i n g m a s c h i n e w u r d e yon H a r t m a n i s u n d S t e a r n s [HS 65] ein-
gefiihrt. M e h r b a n d - T u r i n g m a s c h i n e n w u r d e n z u m B a s i s m o d e l l fiir B e r e c h n u n -
gen in der KomplexitS~tstheorie. Eine hinreii3ende Diskussion zu d e m T h e m a
dieses K a p i t e l s k a n n m a n bei Harel [Har 93] finden.

Kontrollaufgaben
1. Beschreiben Sie das Modell der Turingmaschine. Was sind die wesentlichen Unter-
schiede zu einem endlichen Automaten?
2. Definieren Sie die Begriffe ,,Konfiguration", ,,Berechnungssschritt" und ,,Berechnung"
einer Turingmaschine. Wie definiert man die von einer TM M akzeptierte Sprache
L(M)?
3. Was sind rekursive Sprachen und was sind rekursiv aufzS~hlbare Sprachen?
4. Entwerfen Sie eine Turingmaschine fiir die Sprache {a~b~c ~ In c IN} und stellen sie
die TM in der Form eines Diagramms dar.
5. Was wiirde sich an der Berechnungssttirke der Turingmaschine 5mdern, wenn wit
mehrere akzeptierende Zust~inde erlauben?
6. ErklS~renSie das Konzept von Mehrband-Turingmaschinen. Warum fiihren wit dieses
Konzept ein?
7. Wie definiert man die _~quivalenz von zwei Maschinen und die _~quivalenz von zwei
Maschinenmodellen?
8. Wie wiirden Sie vorgehen, um die Aquivalenz zwischen Java und Turingmaschinen
zu zeigen?
9. Was sagt die Church'sche These aus? Warum betrachten wit die Church'sche These
als ein Axiom? Warum glauben wir an dieses Axiom?
10. Erkl~iren Sie das Konzept von nichtdeterministischen Turingmaschinen! Wieviele un-
terschiedliche Berechnungen kann eine NTM auf einer Eingabe der L~inge n haben?
11. Geben Sie ein Beispiel einer Sprache an, fiir die es einfacher ist, eine NTM anstatt
einer TM zu entwerfen.
12. Wie kann man zu jeder NTM ein ~iquivalente TM bauen?
160 4 Turingmaschinen

13. Wie kann man Turingmaschinen durch W/Srter fiber {0, 1} kodieren? Entwerfen Sie
eine eigene Kodierung fiir Turingmaschinen und schreiben Sie ein Programm, das aus
Ihrer Kodierung eine konkrete TM erstellt.
14. Wie kann man Turingmaschinen linear ordnen?
15. Kann man ffir eine gegebene natfirliche Zahl i algorithmisch die i-te TM konstruieren?
Kann man ffir eine gegebene TM ihre Ordnung algorithmisch bestimmen?
H u n d e r t e von Talenten zeigen
die Gr6fie ihrer Epoche,
aber nur ein Genie ahnt,
j
was ihr fehlt.

5 Berechenbarkeit 3(..

5.1 Zielsetzung
Die Theorie der Berechenbarkeit ist die erste Theorie, die in der Informatik
entstanden ist. Sie entwickelte Methoden zur Klassifizierung von Problemen
in algorithmisch 16sbare und algorithmisch unl6sbare. Dies bedeutet, dass die-
se Theorie uns Techniken zum Beweisen der Nichtexistenz von Algorithmen
zur L6sung konkreter Probleme liefert. Das Erlernen dieser Techniken ist das
Hauptziel dieses Kapitels.
Wir beschrgnken uns in diesem Kapitel auf Entscheidungsprobleme. Unser er-
stes Ziel ist es zu zeigen, dass es Sprachen gibt, die von keiner Turingmaschine
akzeptiert werden. Dies ist einfach einzusehen, wenn man begreift, dass es viel
mehr Sprachen gibt als Turingmaschinen. Aber von beiden gibt es unendlich
vide, d.h. wir miissen lernen, wie man beweisen kann, dass eine unendliche
Zahl gr6fier ist als eine andere. Dazu prgsentieren wir im Abschnitt 5.2 die
Diagonalisierungstechnik aus der Mengenlehre. Die Methode der Diagonali-
sierung erm6glicht es uns, auch ftir eine konkrete Sprache, Diagonalsprache
genannt, ihre Nichtzugeh6rigkeit zu ERE zu zeigen.
Unser zweites Ziel ist es, die Methode der Reduktion vorzustellen. Diese Me-
thode erm6glicht, ausgehend von einer nichtentscheidbaren Sprache die Un-
entscheidbarkeit weiterer Sprachen zu beweisen, und stellt das Hauptinstru-
ment zur Klassifizierung der Sprachen beziiglich ihrer Entscheidbarkeit dar.
Wir wenden diese Methode an, um die Unentscheidbarkeit einiger Entschei-
dungsprobleme fiber Turingmaschinen (Programmen) in Abschnitt 5.3 zu be-
weisen. Dabei lernen wir, dass die praktisch relevante Aufgabe der Korrekt-
heitsiiberpriifung (des Testens) von Programmen ein algorithmisch unl6sbares
Problem darstellt. In Abschnitt 5.4 stellen wir den Satz von Rice vor, der
besagt, dass fast alle nicht-trivialen Probleme fiber Turingmaschinen (Pro-
162 5 Berechenbarkeit

grammen) unentscheidbar sind. In Abschnitt 5.5 zeigen wir, dass man die
Methode der Reduktion auch zum Beweis der Unentscheidbarkeit anderer als
nur turingmaschinen-bezogener Probleme benutzen kann. Als ein Beispiel be-
weisen wir die Unentscheidbarkeit eines Entscheidungsproblems fiber einer
Art von Dominospiel, das als Post'sches Korrespondenzproblem bezeichnet
wird. Im Abschnitt 5.6 zeigen wir eine andere Methode zum Beweisen der
algorithmischen Unl6sbarkeit konkreter Probleme. Diese Methode basiert auf
der Kolmogorov-KomplexitS~t und kann als eine Alternative zur Diagonalisie-
rungstechnik in dem Sinne gesehen werden, dass man mittels der Kolmogorov-
KomplexitS~t die Unl6sbarkeit eines konkreten Problems beweisen und dadurch
den Startpunkt fiir die Anwendung der Reduktionsmethode erhalten kann.

5.2 Die Methode der Diagonalisierung

Unser erstes Ziel ist es zu zeigen, dass es nicht rekursiv aufzS~hlbare Sprachen
gibt. Dazu wollen wir folgendes quantitative Argument benutzen. Wir wollen
zeigen, dass

die Miichtigkeit IKodTM[ der Menge aller Turingmaschinen kleiner


als die M6chtigkeit aller Sprachen iiber Ebool ist.

Dabei bezeichnet KodTM die Menge der binS~ren Kodierungen aller Turing-
maschinen wie im Abschnitt 4.5 definiert.
Die Anzahl aller Turingmaschinen ist unendlich und kann von oben durch
I(Ebool)*l beschrS~nkt werden, weil KodTM C_ (Ebool)*. Die KardinalitS~t aller
Sprachen fiber Ebool ist 79((Ebool)*)l, was offensichtlich auch eine unendliche
Zahl ist. Um zu beweisen, dass

I(Y]bool)*l < I~]')((~bool)*))l,


ben6tigen wir eine Methode zum Vergleich der Gr6fien von unendlichen Zahlen
(yon MS~chtigkeiten unendlicher Mengen).
Das folgende Konzept von Cantor zum Vergleich der M/ichtigkeiten von zwei
(unendlichen) Mengen ber/ihrt die philosophischen und axiomatischen Wurzeln
der Mathematik und ist die Grundlage der modernen Mengenlehre.
Die Idee des Konzeptes yon Cantor ist wie folgt. Ein Hirte hat ein Herde weifier
Schafe und eine Herde schwarzer Schafe. Er will feststellen, welche der Herden
zahlreicher ist, also ob er mehr schwarze als weifie Schafe hat oder umgekehrt.
5.2 Die Methode der Diagonalisierung 163

Das P r o b l e m ist, er kann nur bis 5 zS~hlen, was nicht ausreichend ist. Was kann
er tun? Er n i m m t ein weifies uns ein schwarzes Schaf u n d fiihrt dieses P a a r auf
eine andere Wiese Dies macht er so lange, bis eine der beiden urspriingliche
Herden aufgel6st ist. Die Sorte, deren Herde noch nicht ausgesch6pft ist, ist
zahlreicher. G e n a u diese Idee setzen wir in folgender Definition urn.

D e f i n i t i o n 5.1. Seien A und t3 zwei Mengen. W i t sagen, dass

IAI ~ IBI,
falls eine injektive Funktion f von A nach t3 existiert. Wir sagen, dass

IAI = IBI,

fall~ IAI ~ IBI ~ d IBI ~ IAI (d.h. ~ existiert eine Bijektion I zwischen A und
t3). W i t sagen, dass

IAI < IBI,


falls IA[ < IB[ und es existiert keine injektive Abbildung yon B nach A.

Zuerst b e o b a c h t e n wir, dass fiir endliche Mengen Definition 5.1 exakt mit un-
serem Verstgndnis fiir den Vergleich der M~chtigkeiten von A und B iiberein-
s t i m m t (Fig. 5.1). W e n n fiir alle x, y E A mit x # y auch f (x) # f (y) gilt, d a n n
muss B mindestens so viele Elemente wie A haben. W e n n { f ( x ) I x E A} = B,
d a n n ist f eine Bijektion und IAI = IBI.

A B

Fig. 5.1

Nach Definition 5.1 reicht es daher aus zu beweisen, dass keine injektive Ab-
bildung v o n d e r Menge aller Sprachen fiber Ebool in die Menge aller Turingma-

1Der Satz von Cantor und Bernstein sagt, dass aus der Existenz von injektiven Abbildungen
F1 : A ~ B und F2 : B ~ A die Existenz einer Bijektion zwischen A und B folgt.
164 5 Berechenbarkeit

schinen existiert. Das heifit, es existiert keine Abbildung y o n ~]P((}-]bool)*) n a c h


KodTM, die jeder Sprache L eine TM M mit L ( M ) - L zuordnet. 2

A u f g a b e 5.1. Seien A, B und C Mengen. Beweisen Sie, dass IB _< IAI und C I _< B die
Relation C _< A impliziert.

A u f g a b e 5.2. Seien A und B Mengen. Beweisen Sie, dass A c_ B die Ungleichung IA _< B I
impliziert.

Definition 5.1 hat aber auch ihre paradoxe SeRe. Sei ]Ngerad e {2ili e
Nach Definition 5.1 gilt

weil die Funktion f : IN ~ ]Ngerad e m i t f ( i ) = 2i fiir alle i E IN offensichtlich ei-


ne Bijektion ist. So haben IN und ]Ngerad e gleiche M~chtigkeiten, obwohl ]Ngerad e
eine echte Teilmenge yon IN ist. Dies ist ein Paradoxon, das beim Vergleich
der Mgchtigkeiten von endlichen Mengen nicht auftreten kann. Dieses Paradox-
on widerspricht der Erfahrung aus der endlichen Welt, wo das Ganze immer
gr6fier ist als eines seiner Teile. Dies zeigt aber nicht, dass das Cantor'sche
Konzept zum Vergleich der M~chtigkeit von Mengen falsch ist, sondern nur,
dass die Welt unendlicher Mengen und Zahlen Gesetzen unterliegen k6nnte,
die den Erfahrungen aus der Behandlung endlicher Objekte nicht entsprechen.
Der Schluss IINI = IINgeradel scheint in der ,,unendlichen Welt" richtig zu sein,
weil die Bijektion f ( i ) = 2i die Elemente aus IN und INgerade paart, und so
erscheinen beide Mengen gleich m~chtig zu sein. Vielleicht ist es wichtig, an
dieser Stelle zu bemerken, dass dieses Konzept auf der axiomatischen Ebene
liegt. Daher kann man nicht beweisen, dass dies die einzige sinnvolle (korrekte)
M6glichkeit zum Vergleich der MSochtigkeit unendlicher Mengen ist. Definiti-
on 5.1 ist nur ein Versuch, das intuitive Verstgndnis der Mathematiker fiir
den Mgchtigkeitsvergleich zu formalisieren. Es ist nicht auszuschliefien, dass
jemand noch eine andere, geeignetere Formalisierung a findet. Ftir uns ist aber
nur wichtig, dass das Konzept aus Definition 5.1 dazu geeignet ist, die Existenz
yon nicht rekursiv aufzS~hlbaren Sprachen zu beweisen.

A u f g a b e 5.3. Das Hilbert'sche Hotel besteht aus unendlich vielen Zimmern, die mit den
natfirliche Zahlen 1, 2, 3 , . . . nummeriert sind. Das Hotel ist besetzt, also in jedem Zimmer
verweilt ein Gast. Jetzt kommt ein neuer Gast und fragt, ob er ein Zimmer bekommen kann.
Der Portier sagt locker ,,Kein Problem". Er 15~sst ffir alle i = 1, 2, 3 , . . . den Gast aus dem
Zimmer i in das Zimmer i + 1 umziehen und gibt Zimmer 1 dem neuen Gast.

2Weil jede solche Abbildung injektiv sein muss.


aDies ghnelt unserer Diskussion fiber die Church'sche These.
5.2 Die Methode der Diagonalisierung 165

(i) Gibt es auch ein L6sung, wenn der Gast unbedingt das Zimmer 7 haben wollte?
(ii) Es kommen 32 neue G~ste. Was macht der Portier jetzt?
(iii) Es kommt ein voll besetzter, unendlich grof3er Bus an. Die Pl~tze sind mit positiven
ganzen Zahlen 1, 2, 3,... nummeriert. Kann der Portier alle unterbringen?

Im Folgenden b e t r a c h t e n wir IN als die ,,kleinste" unendliche Menge u n d stellen


die Frage, welche unendlichen Mengen die gleiche M~chtigkeit wie IN haben,
u n d ob eine unendliche Menge A mit IA > existiert.

D e f i n i t i o n 5.2. Eine Menge A heiflt a b z ~ i h l b a r 4, falls A endlich ist oder


IAI-
Die intuitive B e d e u t u n g der Abz~hlbarkeit einer Menge A ist, dass m a n die
Elemente aus A als erstes, zweites, drittes, . . . n u m m e r i e r e n kann. Dies ist
offensichtlich, weil jede injektive F u n k t i o n f : A ~ IN eine lineare O r d n u n g
auf A b e s t i m m t , die eine N u m m e r i e r u n g 5 ist, (ein O b j e k t a E A ist vor d e m
O b j e k t b E A 4=~ f(a) < f(b)). Deswegen iiberrascht es nicht, dass (Ebool)*
u n d K o d T M abz~thlbar sind.

Lemma 5.1. Sei E ein beliebiges Alphabet. Dann ist E* abziihlbar.

Beweis. Sei E = { a l , . . . , am} eine beliebige endliche Menge. M a n definiere eine


lineare O r d n u n g al < a2 < --- < am auf E. Diese lineare O r d n u n g b e s t i m m t
die kanonische O r d n u n g auf E* (vgl. Definition 2.7). Die kanonische O r d n u n g
auf E* ist eine N u m m e r i e r u n g u n d b e s t i m m t daher eine injektive F u n k t i o n yon
E* nach IN. D

S a t z 5.1. Die Menge K o d T M der Turingmaschinenkodierungen ist abziihlbar.

Beweis. Satz 5.1 ist eine direkte Folge von L e m m a 5.1 u n d der Tatsache
K o d T M C_ (Ebool)*. [-1

Aufgabe 5.4. Geben Sie explizit die Nummerierung yon (Ebool)* an, die der kanonischen
Ordnung auf (Ebool)* entspricht.

4Eine ~iquivalente Definition der Abz~hlbarkeit einer Menge A ist folgende.


A ist abz~hlbar 4=~ es existiert eine injektive Funktion f : A ---, IN
Dies beseutet, dass keine unendliche Menge B mit IBI < IINI existiert. Auf den Beweis
dieses Fakts verzichten wit hier.
SEine Nummerierung auf einer Menge A determiniert eine lineare Ordnung, in der zwischen
zwei beliebigen Elementen h6chstens endlich viele Elemente aus A liegen. Umgekehrt ist
eine lineare Ordnung mit dieser Eigenschaft eine Nummerierung.
166 5 Berechenbarkeit

Aufgabe 5.5. Beweisen Sie, dass die Menge 77 der ganzen Zahlen abz~hlbar ist.

Aufgabe 5.6. Sei A eine abz~hlbare Menge und a ein Element mit a ~ A. Beweisen Sie,
dass A U {a} auch abz~hlbar ist.

Aufgabe 5.7. Seien A und B zwei abz~ihlbare Mengen. Beweisen Sie, dass A OB abz~hlbar
ist.

Das nS~chste Resultat kann ein bisschen iiberraschend wirken. Wir beweisen,
dass die Mgchtigkeit der Menge Q+ der positiven rationalen Zahlen der Mgch-
tigkeit yon [IN[ entspricht. Dabei weiss man, dass die rationalen Zahlen sehr
dicht nebeneinander auf der reellen Achse liegen (zwischen beliebigen ratio-
nalen Zahlen a und b m i t a < b liegen unendlich viele rationale Zahlen c mit
der Eigenschaft a < c < b), und dass die nattirlichen Zahlen auf der reellen
Achse den Abstand 1 besitzen. Weil man die positiven rationalen Zahlen als P- q
mit p, q E IN - {0} darstellen kann, w/irde man erwarten, dass IQ+I ungefS~hr
IIN x IN I ist, was nach ,,unendlich real unendlich" aussieht. In der endlichen
Welt wtirde man fiber den Vergleich von n 2 mit n sprechen. Trotzdem ist
IQ+I- I~1, w~il die Elemente aus IN x IN sich nummerieren lassen. Die folgen-
de Methode zur Nummerierung yon rationalen Zahlen ist einfach und elegant
und findet auch Anwendung in der Theorie der Berechenbarkeit.

1 2 3 4 5 6
(1, 1) (1, 2) (1, 3) (1,4) (1, 5) (1, 6)
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6)
(3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6)
(5,1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6)

Fig. 5.2

L e m m a 5.2. ( I N - { 0 } ) x ( I N - { 0 } ) i s t abziihlbar.

Beweis. Wir konstruieren eine unendliche Matrix M ~ • wie in Fig. 5.2.


Die Matrix hat unendlich viele Zeilen und unendlich viele Spalten, die durch
nattirliche Zahlen 1, 2, 3 , . . . nummeriert sind. An der Kreuzung d e r / - t e n Zeile
und der j - t e n SpaRe befindet sich das Element (i, j) E ( I N - {0}) x ( I N - { 0 } ) .
Es ist offensichtlich, dass M ~ x ~ alle Elemente aus ( I N - {0}) x ( I N - {0})
enthglt.
5.2 Die M e t h o d e der Diagonalisierung 167

Der Versuch, die Elemente aus ( I N - {0}) x ( I N - {0}) so zu ordnen, dass man
mit den Elementen der ersten Zeile beginnt und danach die Elemente weiterer
Zeilen nummeriert, muss scheitern, weil man wegen der Unendlichkeit der er-
sten Zeile hie zu der Nummerierung der zweiten Zeile gelangt. Eine passende
M6glichkeit, die Elemente der Matrix M ~ • zu nummerieren, ist durch die
Zick-Zack-Linie in Fig. 5.3 gegeben. Auf diese Weise nimmt man eine endliche
Nebendiagonale nach der anderen, und es ist offensichtlich, dass jedes Element
von M ~ • eine Nummer bekommt. Die resultierende Folge ist al = (1, 1),
a2 = (2, 1), a3 = (1, 2), a4 = (3, 1), a5 = (2,2), a6 = (1, 3), a 7 : (4, 1), ....

1 2 3 4 5 6 ..-

Fig. 5.3

Formal definiert man dabei die lineare Ordnung

(a,b)<(c,d)<=>a+b<c+doder (a+b=c+dundb<d).

Die entsprechende Nummerierung ist

f((a,b)) - (a + b-1)2 +b,


168 5 Berechenbarkeit

weil das Element (a, b) das b-te Element auf der ( a + b - 1)-sten Nebendiagona-
len ist und die Anzahl der Elemente auf den ersten a + b - 2 Nebendiagonalen

a+b-2Ki (a+b-2).(l+a+b-2)2 (a + 1b )-2


i=1

ist. Es ist offensichtlich, dass f eine Bijektion ist.

1 2 3 4 5 6 ...

Fig. 5.4

Aufgabe 5.8. Um die Abz/~hlbarkeit der Menge (IN- {0}) • (IN- {0}) zu beweisen, kann
man auch die Nummerierung aus Fig. 5.4 verwenden. Bestimmen Sie die entsprechende
injektive Abbildung yon (IN- {0})• (IN- {0})nach IN. Wie viele unterschiedliche injektive
Abbildungen von (IN- {0}) x (IN- {0}) nach IN gibt es?

S a t z 5.2. Q+ ist abziihlbar.

t?eweis. Sei h folgende Abbildung von Q+ nach ( I N - { 0 } ) x (IN-{0})" h ( ~ ) -


(p, q) fiir alle p, q mit dem gr6f3ten gemeinsamen Teller 1. Offensichtlich ist h
injektiv. Weil ( I N - {0}) x ( I N - {0}) nach L e m m a 5.2 abz~thlbar ist, ist auch
Q+ abzghlbar. D

Aufgabe 5.9. In das voll besetzte undendliche Hilbert'sche Hotel kommen unendlich viele
unendlich grof3e Busse. Die Busse haben Nummern 1, 2, 3, .... Alle Busse sind voll besetzt
5.2 Die Methode der Diagonalisierung 169

und die Plgtze in jedem Bus haben die N u m m e r n 1, 2, 3, .... K a n n der Pottier jetzt alle
unterbringen?

A u f g a b e 5.10. Beweisen Sie, dass IN • IN • IN abzghlbar ist.

A u f g a b e 5.11. Seien A und B zwei abzghlbare Mengen. Beweisen Sie, dass A • B eine
abzghlbare Menge ist.

Trotz ihrer Dichte auf der reellen Achse sind die positiven rationalen Zahlen
abzS~hlbar. Nach der Aussage yon Aufgabe 5.11 ist auch (Q+)i f/Jr jedes i E I N -
{0} abz~hlbar. Man k6nnte denken, dass alle unendlichen Mengen abz~hlbar
sind. Wir zeigen jetzt, dass die Menge IR der reellen Zahlen nicht abzS~hlbar
ist. Dazu reicht es zu zeigen, dass die Menge [0, 1] der reellen Zahlen gr6fier
gleich 0 und kleiner gleich 1 nicht abzghlbar ist. Also besitzt IR einen anderen,
h6heren Typ von Unendlichkeit als IN und Q+.

S a t z 5.3. [0, 1] ist nicht abziihlbar.

Beweis. Wir miissen zeigen, dass keine injektive Funktion von [0, 1] nach
I N - {0} existiert. Wir ffihren einen indirekten Beweis dieser Behauptung. Wir
setzen voraus, dass [0, 1] abzghlbar ist und dass f eine injektive Abbildung
von [0, 1] nach I N - {0} ist. Daher bestimmt f eine Nummerierung der rellen
Zahlen aus [0, 1], die wir in Fig. 5.5 verdeutlichen k6nnen. Die i-te Zahl aus
[0, 1] ist ai = O.ailai2aia... (d.h. f ( a i ) = i), wobei aij Ziffern aus {0, 1, 2 , . . . , 9}
ffir j = 1 , 2 , . . . sind.

f(x) x C [0, 1]
0. ~-] a12 a13 a14
0. a21 ~a~ a23 a24
0. a31 a32 [~ a34
0. a41 a42 a43 I a44 I

O. all ai2 ai3 ai4

Fig. 5.5

Jetzt wenden wir die sogenannte D i a g o n a l i s i e r u n g s m e t h o d e an, um zu zei-


gen, dass in der Tabelle in Fig. 5.5 mindestens eine reelle Zahl aus [0, 1] fehlt,
und daher f keine Nummerierung von [0, 1] ist. Die Auflistung der reellen
170 5 Berechenbarkeit

Zahlen in Fig. 5.5 kann man als unendliche Matrix M [aij]i=l,...,cc,j=l,...,cc in-
=

terpretieren. Wir konstruieren jetzt eine reelle Zahl c = 0.CLC2C3... so, dass
ci # aii und ci ~ {0,9} fiir alle i E I N - {0}. Im Prinzip schauen wir
die Diagonale a 1 1 a 2 2 a 3 3 . . , von M an und wS~hlen fiir jedes i ein festes ci E
{ 1, 2, 3, 4, 5, 6, 7, 8} - aii. Damit unterscheidet sich c yon jeder Darstellung ei-
ner reellen Zahl in Fig. 5.5 in mindestens einer Ziffer j, genauer, die Darstellung
von c unterscheidet sich v o n d e r Darstellung von a~ mindestens in der /-ten
Dezimalstelle hinter dem Punkt fiir alle i E I N - {0}. Well die Darstellung von
c keine 0 und 9 als Ziffer enthS~lt 6, ist sie eindeutig, und wir kSnnen schliefien,
dass c ~ ai fiir alle i E IN - {0}. Daher ist c nicht in Fig. 5.5 dargestellt und
f keine Nummerierung von Zahlen aus [0, 1]. D
Wir haben gezeigt, dass die Menge aller Turingmaschinen (Algorithmen) auf-
z~hlbar ist. Um zu zeigen, dass es Probleme gibt, die algorithmisch nicht 15sbar
sind, reicht es, die Nichtabzghlbarkeit der Menge aller Sprachen (Entschei-
dungsprobleme) fiber {0, 1} zu beweisen. Wir beweisen dies auf zwei unter-
schiedliche a r t e n . Zuerst zeigen wir I[0, 1]l _< I~-)((}-]~bool)*)l und dann konstru-
ieren wir direkt mit der Diagonalisierungsmethode eine Sprache, die yon keiner
Turingmaschine akzeptiert wird.

S a t z 5.4. ~((}-]~bool)*) ist 7ticht abzahlbar.

B e w e i s . Wir zeigen, IP((Ebool)*)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 der Diagonalisierung 171

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


kursiv abz/~hlbare Sprache zu konstruieren. Sei Wl, w2, w3, ... die kanoni-
sche Ordnung aller WSrter fiber Eboo~, und sei M1, M2, M3, ... die Fol-
ge aller Turingmaschinen. Wir definieren eine unendliche Boole'sche Matrix
A = [dij]i,j:l,...,oo (Fig. 5.6) mit

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 W2 W3 999 Wi

M1 d~ d12 d13 9.. dli


M2 d21 [d22[
i i
d23 9.. d2~
Fig. 5.6 M3 d31 d32 I
Mi dil di2 di3 ...

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 - wi ffir ein i E I N - {0} und d i i - 0}.

S a t z 5.5. 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 Klassi-


fikation 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 algo-
rithmische 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 Algorith-
mus 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 _<a L2, um weitere nicht-
rekursive Sprachen zu finden. Wir stellen jetzt zwei solcher Techniken vor, die
der Definition der rekursiven Reduzierbarkeit entsprechen.
Die erste Technik wird EE-Reduktion (Eingabe-zu-Eingabe-Reduktion) ge-
nannt. Das Schema der EE-Reduktion ist in Fig. 5.7 dargestellt. Die Idee
ist, eine TM (einen Algorithmus) M zu finden, die ftir jede Eingabe x ftir das
Entscheidungsproblem (El, L1) eine Eingabe y ftir das Entscheidungsproblem
(E2, L2) konstruiert, so dass die L6sung des Problems (E2, L2) fiir y der L6sung
des Problems (El, L1) fiir x entspricht. Das bedeutet, wenn eine TM (ein AI-
gorithmus) A ftir (E2, L2) existiert, dann ist die Hintereinanderschaltung von
M und A eine TM (ein Algorithmus) fiir (El, L1).

D e f i n i t i o n 5.4. Seien L1 C_E~, L2 C_E~ zwei Sprachen. Wit sagen, dass L1


auf L2 EE-reduzierbar 7 ist, L1 _<EE L2, wenn eine TM M existiert, die
eine Abbildung fM " E~ ~ E~ mit der Eigenschaft

X E L1 r fM(X) E L2

fiir alle x E E~ berechnet. Wir sagen auch, dass die TM M die Sprache L1
auf die Sprache L2 reduziert.

Das ngchste Lemma besagt, dass die Relation ~EE ein Spezialfall der Relation
_<R ist, was bedeutet, dass es reicht, L1 _<EE L2 zu zeigen, um L1 _<R L2 zu
beweisen.

L e m m a 5.3. Seien L1 C E~ L2 C_ E~ zwei Sprachen. Falls L1 _~EE L2, dann


auch L1 <_a L2.

7Die EE-Reduzierbarkeit wird in der englischsprachigen Literatur ,,many-one-reducibility"


genannt.
174 5 Berechenbarkeit

TM B m i t L(B) = L1

xEE*1
TM M M(x) '- TM A
~xE L1 r (x)E L2 ~

Fig. 5.7

Beweis. Sei L1 _<EE L2. Um L1 _<a L2 zu beweisen, reicht es zu zeigen, dass


die Existenz eines Algorithmus A (einer TM A, die immer hglt), der (die)
L2 entscheidet (L2 E s die Existenz eines Algorithmus B sichert, der L1
entscheidet. Sei A eine TM, die immer htilt und L(A) = L2. Die Voraussetzung
L1 _<EE L2 impliziert die Existenz einer TM M, die fiir jedes x E E~ ein
Wort M(x) E E~ mit der Eigenschaft x E L1 r M(x) E L2 berechnet. Wir
konstruieren eine TM B, die immer hglt und f/Jr die L(B) = L1 gilt. Die TM
B arbeitet auf einer Eingabe x E E1 wie folgt:

(i) B simuliert die Arbeit yon M auf x, bis auf dem Band das Wort M(x)
steht.
(ii) B simuliert die Arbeit yon A auf M(x).
Wenn A das Wort M(x) akzeptiert, dann akzeptiert B das Wort x.
Wenn A das Wort M(x) verwirft, dann verwirft B das Wort x.

Weil A immer htilt, htilt auch B immer und so L1 E /2R.

A u f g a b e 5.15. Beweisen Sie, dass _<EE eine transitive Relation ist (d.h. beweisen Sie,
dass L1 _<EE L2 und L2 _<EE L3 => L1 _<EE L3).

Wir bemerken, dass die TM B m i t L(B) = L1 die TM A als ein Teilprogramm


benutzt (Fig. 5.7), und zwar so, dass B die TM A fiir jede Eingabe einmal
laufen 15~sst und die Ausgabe yon A als eigene Ausgabe tibernimmt. Dies ist
aber eine unn6tige Einschrgnkung. Im Allgemeinen kann man B so bauen, dass
B die TM A mehrmals auf unterschiedlichen Eingaben aufruft und abhtingig
von den Resultaten der Arbeit von A die TM B die Entscheidung beztiglich
X E L1 trifft (Fig. 5.8).

Wir sind jetzt imstande, Beweise fiir Aussagen der Form L ~ s ftir konkrete
Sprachen zu ftihren. Wir fangen mit einer allgemeinen Bemerkung an, und
zwar, dass eine Sprache L in s ist genau dann, wenn das Komplement yon
L in/2a ist.
5.3 Die Methode der Reduktion 175

TM B mit L(B)- L1

TM A xEL1
-I 'I
y

L(A) - L2
--Ira..
x~L1
I I_
I-

Fig. 5.8

Lemma 5.4. Sei E ein Alphabet. Fiir jede Sprache L C_ E* gilt:

L <RLO u n d L 0 <R L.

Beweis. Es reicht L c _<a L fiir jede Sprache L zu beweisen, weil (LC) 0 - L,


und daher impliziert L 0 _<R L ftir alle Sprachen L die Relation (L0) 0 _<a L 0
(wenn m a n statt L die Sprache L c in die Relation L c _<R L einsetzt).
Sei A ein Algorithmus, der (L, E) entscheidet. Ein Algorithmus B, der L c
entscheidet, ist in Fig. 5.9 dargestellt. B iibergibt seine Eingabe x E E* als
Eingabe an A und invertiert dann die Entscheidung von A.
In dem Formalismus der Turingmaschinen wird m a n einfach zu einer TM A -
(Q, E, F, 5, q0, qaccept, qreject), die immer hS~lt und L akzeptiert, folgende TM B -
l
qreject)
(Q, E , F, 5, qo ~q~cc~pt, l l l
mit qaccept = qreject, qreject - qacceptbauen. Weil A
immer h~lt, ist es offensichtlich, d a s s / ? auch immer h~lt und L ( B ) - (L(A)) O.
D

T M B m i t L(B) - L 0

xEL xEL ~
xEE*
rTMA x~L
X x~L ~

Fig. 5.9

K o r o l l a r 5.2. (Ldi~g) 0 ~ /~R.


176 5 Berechenbarkeit

Beweis. Wir haben gezeigt, dass Ldiag ~ /~RE und damit auch Ldiag ~ /~R-
Nach Lemma 5.4 ist Ldiag ~R (Ldiag) If. Weil nach gemma 5.4 (Ldiag) C E s
auch Ldiag E /2R implizieren wiirde, kSnnen wir schliegen, dass (Ldiag) C ~ /2R.
D
Aus den bisher prS~sentierten Tatsachen kSnnen wir aber nicht schliegen, dass
(Ldiag) c @ s Das Gegenteil ist wahr, und somit beweisen wir Z;a C s

L e m m a 5.5. (Ldiag) [I E s

Beweis. Nach der Definition yon Ldiag erhalten wir

(Ldiag) [I {x E (Y]bool)* I falls x : w i f/Jr ein i E IN - {0},


dann akzeptiert Midas Wort wi}.

Eine TM D, die (Ldiag) [I akzeptiert, kann wie folgt arbeiten.

Eingabe: ein x E (Ebool)*.


(i) Berechne i, so dass x das i-te Wort wi in der kanonischen Ordnung
fiber Ebool ist.
(ii) Generiere die Kodierung Kod(M~) d e r / - t e n TM M~.
(iii) Simuliere die Berechnung yon Mi auf dem Wort wi = x.
Falls M i d a s Wort wi akzeptiert, dann akzeptiert D auch x.
Falls M i d a s Wort wi verwirft (d.h. in qreject hglt), dann hglt D und
verwirft x = wi auch.
Falls M~ auf w~ unendlich lange arbeitet (d.h. w~ ~ L(M~)), simuliert
D die unendliche Arbeit yon Mi auf wi. Daher hS~lt D auf x nicht
und somit x ~ L(D).

Es ist offensichtlich, dass L ( D ) - (Ldiag) C.

K o r o l l a r 5.3. (Ldiag) [I E /~RE- /~R, und daher s Cs

Im Folgenden prS~sentieren wir weitere Sprachen, die nicht rekursiv sind, aber
in 12RE liegen (Fig. 5.10).

D e f i n i t i o n 5.5. Die u n i v e r s e l l e S p r a c h e ist die Sprache

L u = { K o d ( M ) # w I w E (Ebool)* und M akzeptiert w}


5.3 Die Methode der Reduktion 177

S a t z 5.6. Es gibt eine TM U, u n i v e r s e l l e T M genannt, so dass

L(U) = Lu.

Daher gilt Lu E s

Beweis. Es reicht aus, eine 2-Band-TM U mit L(U) = Lu zu konstruieren. U


kann wie folgt auf einer Eingabe z C {0, 1, r arbeiten.

(i) U iiberprfift, ob z genau ein r enthglt. Falls nicht, verwirft U das Wort
Z.

(ii) Sei z = y--#x mit y, z E (Ebool)*. U fiberpriift, ob y eine Kodierung einer


TM ist. Falls y keine TM kodiert, verwirft U die Eingabe y--#x.
(iii) Falls y = Kod(M) fiir eine TM M, schreibt U die Anfangskonfiguration
yon M auf x auf das Arbeitsband.
(iv) U simuliert schrittweise die Berechnung von M auf x wie folgt.
while der Zustand der Konfigurationen von M auf dem
Arbeitsband unterschiedlich yon %cc~pt und qr~j~ct ist
do simuliere einen Schritt von M auf dem Arbeitsband
{die Aktion, die zu silnulieren ist, kann U aus der
Kodierung Kod(M) auf dem Arbeitsband leicht ablesen}
od
i f der Zustand von M i s t q~ccept
t h e n U akzeptiert z = Kod(M)C/:x.
e l s e U verwirft z = Kod(M)Cfix.

Man bemerke, dass eine unendliche Berechnung von M auf x eine unendliche
Berechnung von U auf Kod(M):#:z bedeutet und U deshalb in diesem Fall die
Eingabe Kod(M)CPx nicht akzeptiert. Somit ist L ( U ) = gu. D
Was bedeutet eigentlich die Tatsache, dass Lu E/2a~,? Dies bedeutet die Exi-
stenz einer TM (eines Programmes) ohne Haltegarantie, die eine beliebige Tu-
ringmaschine auf einer gegebenen Eingabe simulieren kann. Dies ist aber eine
ganz natiirliche Forderung, die man als ein Axiom an jede formale Definiti-
on einer allgemeinen Algorithmenklasse stellt. Die Betriebssysteme mit ihren
Interpretern erfiillen gerade diese Aufgabe fiir die Programmiersprachen als
Berechnungsmodelle. Es wS~re unzulgssig, einen Interpreter (ein Betriebssy-
stem) zu erstellen, der unfghig wgre, jedes syntaktisch korrekte Programm in
gegebener Programmiersprache auf einer Eingabe laufen zu lassen.
Im Folgenden beweisen wir, dass Lu ~ s Die Bedeutung dieser Behauptung
ist, dass man im Allgemeinen nicht das Resultat der Berechnung einer TM M
178 5 Berechenbarkeit

auf einer Eingabe z anders berechnen kann, als die Berechnung von M auf z zu
simulieren. Wenn aber M auf z unendlich lange arbeitet, wissen wir zu keinem
Zeitpunkt der Simulation, ob die Berechnung yon M auf z unendlich ist, oder
ob M in den nS~chsten Schritten halten und entscheiden wird. Deswegen k6nnen
wir in endlicher Zeit keine Entscheidung fiber die Zugeh6rigkeit yon z zu L(M)
treffen.

RE

~ ~ Ldiag

Fig. 5.10

Die folgenden Beweise basieren auf der Reduktionsmethode. Die meisten Be-
weise prgsentieren wir zweimal. Einmal anschaulich auf der Ebene von Algo-
rithmen als Programmen in irgendeiner Programmiersprache und das zweite
Mal im Formalismus der Turingmaschinen und der EE-Reduktion.

Satz 5.7. Lu ~ Z;a.

Beweis. Es reicht zu zeigen, dass (Ldiag)C _~R Lu. Nach Korollar 5.2 gilt
(Ldiag)C ~ s und damit folgt Lu ~ s
Sei A ein Algorithmus (Programm), der Lu entscheidet. Wir bauen einen A1-
gorithmus B, der mit A als Teilprogramm die Sprache (Ldiag)C entscheidet.
Algorithmus/3 ist so strukturiert wie in Fig. 5.11 abgebildet. Ftir eine Einga-
be z E (Ebool)* berechnet das Teilprogramm C ein i, so dass z = wi, und die
Kodierung Kod(M~). Die W6rter Kod(M~) und z = w~ bekommt A als Ein-
gabe. Die Entscheidung ,,akzeptiere" oder ,,verwerfe" von A ffir Kod(M~)r
wird als das Resultat yon B fiir die Eingabe z iibernommen. Offensichtlich gilt
L ( ~ ) -- (Ldiag) c uYld ~ halt immer, weil A nach der Voraussetzung immer halt
und seine Entscheidung liefert.
Jetzt beweisen wir die Aussage in dem Formalismus der Turingmaschinen. Es
reicht zu beweisen, dass (Ldiag)C _<EE Lu. Wir beschreiben eine TM M, die
5.3 Die Methode der Reduktion 179

Algorithmus B m i t L ( B ) - (Ldiag) C

X -- W i w~ C L(M~) Wi E (Ldiag) [I
3; E (}--]bool)* A
--- C Kod(M~) L ( A ) - L u
,,..-
Wi ~ (Ldiag) C

Fig. 5.11

eine Abbildung fM yon (Y]bool)* nach {0, 1, @}* berechnet, so dass

X E (Ldiag) C r f M ( X ) E LU.

M arbeitet wie folgt. Ffir eine Eingabe x berechnet M zuerst ein i, so dass
x - wi. Danach berechnet M die Kodierung Kod(Mi) d e r / - t e n TM. M h~lt
mit dem Inhalt Kod[Mi)@x auf dem Band. Weil x - wi, ist es nach der
Definition v o n (Ldiag) U offensichtlich, dass

3; -- Wi E (Ldiag) C e=~ Mi akzeptiert wi

Kod(M )#x E Lu.

A u f g a b e 5.16. Zeigen Sie, dass die folgende Sprache

{Kod(M)@x@0 i x E {0, 1}*, i E IN, M hat mindestens i + 1


Zust/~nde und w~hrend der Berechnung von
M auf x wird der i-te Zustand von M
mindestens einmal erreicht}

keine rekursive Sprache ist.

Wir sehen, dass eines der zentralen Probleme in der Theorie der Berechen-
barker stark mit dem Halten der Turingmaschinen (mit der Endlichkeit der
Berechnungen) zusammenhS~ngt. Ftir die Sprachen (Ldiag) C und Lu gibt es Tu-
ringmaschinen (Programme), die diese Sprachen akzeptieren, aber es gibt keine
Turingmaschinen, die (Ldiag)c und Lu entscheiden (d.h. keine unendlichen Be-
rechnungen machen). Deswegen betrachten wir jetzt das folgende Problem.
180 5 Berechenbarkeit

D e f i n i t i o n 5.6. Das Halteproblem ist das Ents cheidungspro blem


({ 0, 1, r }*, LH), wobei

LH -- {Kod(M)Cpx Ix E {0, 1}* und M hiilt auf x}.

A u f g a b e 5.17. Beweisen Sie, dass LH E s

Das folgende Resultat besagt, dass es keinen Algorithmus gibt, der testen kann,
ob ein gegebenes Programm immer terminiert.

S a t z 5.8. LH ~ s

Beweis. Wir fiihren zuerst einen Beweis auf der Ebene yon Programmen. Wir
zeigen Lu _<a LH. Sei LH E s d.h. es existiert ein Algorithmus A, der LH
akzeptiert. Wir beschreiben jetzt einen Algorithmus B, der mit A als Teilpro-
gramm die Sprache Lu entscheidet (Fig. 5.12). B bekommt eine Eingabe w
und benutzt ein Teilprogramm C zum Testen, ob die Eingabe die Form yr
mit y = Kod(M) ftir eine TM M hat.
Falls nicht, dann verwirft B die Eingabe.
Falls w = Kod(M)Cpx, dann gibt B dem Teilprogramm A diese Eingabe.
Falls A ,,M hglt nicht auf x" antwortet, dann weit3 B, dass x ~ L(M) und
verwirft die Eingabe Kod(M)Cpx.

Algorithmus B ftir Lu
y m

Kod(Mj I M akzeptiert y=/=/=xE Lu


I Kod(M)r
...-. am.

A M h~lt auf x U

x L(A) - LH
M h~lt nicht auf x
/-
M verwirft x y # x ~ Lu

i- i I
y--/Cx ~ Lu
Falls y keine giiltige Kodierung einer TM ist

Fig. 5.12

Falls A ,,M hS~lt auf x" antwortet, dann simuliert B im Teilprogramm U die
Arbeit yon M auf x. Weil M auf x eine endliche Berechnung hat, wird die
Simulation von U in endlicher Zeit realisiert.
5.3 Die Methode der Reduktion 181

Falls die Ausgabe yon U ,,M akzeptiert x" ist, dann akzeptiert B seine Eingabe
y # x = K o d ( M ) # x . Falls die Ausgabe yon U ,,M verwirft x" ist, dann verwirft
B die Eingabe K o d ( M ) # x . Offensichtlich gilt L ( B ) = Lu und B halt immer.
Daher erhalten wir Lu E s und so gilt Lu _<a LH.
Wir beweisen jetzt Lu _<a LH in dem Formalismus der Turingmaschinen. Es
reicht zu zeigen, dass Lu GEE LH. Wir beschreiben eine TM M, die Lu auf LH
reduziert. Ffir eine Eingabe w arbeitet M wie folgt.
M iiberprfift, ob die Eingabe die Form w = K o d ( M ) # x ffir eine TM M und
ein x E (Ebool)* hat.

(i) Falls w diese Form nicht hat, generiert M eine Kodierung Kod(M1) einer
TM M1, die fiir jede Eingabe in einer endlosen Schleife im Zustand q0
lguft ((~(qo,a) = (q0, a,N) f/Jr alle a E {0, 1}). Dann halt M mit dem
Bandinhalt M ( w ) = Kod(M1)#x.
(ii) Falls w = K o d ( M ) # x , dann modifiziert M die Kodierung der TM M zu
folgender TM M2 mit L(M2) = L(M). M2 arbeitet genau wie M, nur
dass alle Transitionen zum Zustand qr~j~ct von M zu einem neuen Zu-
stand p umgeleitet werden, in dem M2 fiir jede Eingabe in einer endlosen
Schleife lauft. Daher macht M2 ffir jede Eingabe y ~ L(M) = L(M2) ei-
ne unendliche Berechnung. M beendet seine Arbeit mit dem Bandinhalt
M(w) = Kod(M2)#x.
Wir beweisen jetzt fiir alle w E {0, 1, #}*, dass

w E Lu 4=> M(w) E LH.

Sei w E Lu. Daher ist w = K o d ( M ) # x fiir eine TM M und ein Wort x E


{0, 1}* und x E L(M). Dann ist M(w) - Kod(M2)~x mit L(M2) - L(M) ein
Wort in LH.
Sei w ~ Lu. Wir unterscheiden zwei M6glichkeiten. Wenn w nicht die Form
K o d ( M ) # x fiir eine TM M hat, dann ist M(w) = Kod(M1)#x, wobei M1 auf
keiner Eingabe halt. Daher ist M(w) nicht in LH. Wenn w die Form K o d ( M ) # x
fiir eine TM M hat und K o d ( M ) # x ~ Lu, bedeutet das, dass x ~ L(M). In
diesem Fall ist aber M(w) = Kod(M2)#x, wobei M2 auf keiner Eingabe aus
(Eboo~)* -- L(M) halt. Weil x ~ L(M), gilt K o d ( M ) # x ~ LH.

Aufgabe 5.18. Beweisen Sie die folgenden Aussagen:


(i) Lu _<a (Ldi~g)c,
(ii) LH _~R (ndiag)C,
182 5 Berechenbarkeit

(iii) Ldiag <a Lu,


(iv) (Ldiag)C _<R LH,
(V) LH <a LU.

Betrachten wir jetzt die Sprache

Lempty {Kod(M)[L(M) = 0},


die die Kodierungen aller Turingmaschinen enth~lt, die die leere Menge (kein
Wort) akzeptieren. Offensichtlich ist

(Lempty) C - {X E (}--]bool)* I x -r Kod(M) fttr alle TM M oder


x = Kod(M) und L(M) =/=0}

L e m m a 5.6. (Lempty) C E /2RE.

Beweis. Wir fiihren zwei unterschiedliche Beweise f/Jr (Lempty) c E s Im


ersten Beweis zeigen wir, dass es ntitzlich ist, dass Modell der nichtdetermi-
nistischen Turingmaschinen zur Verfiigung zu haben. Der zweite Beweis zeigt,
wie man die Ideen aus der Mengenlehre, speziell aus dem Beweis [IN[- [Q+[,
in der Theorie der Berechenbarkeit anwenden kann.
Weil f~r jede NTM 3/1 eine TM M2 existiert, so dass L(M~) : L(M2), reicht
es zu zeigen, dass eine NTM M1 mit L(M,) (Lempty)C existiert. M, arbeitet
-

auf einer Eingabe x wie folgt.

(i) M, tiberpriift deterministisch, ob x = Kod(M) ftir eine TM M.


Falls x keine TM kodiert, akzeptiert M, das Wort x.
(ii) Falls x = Kod(M) fttr eine TM M, wghlt M, nichtdeterministisch ein
Wort y E (2bool)* und simuliert deterministisch die Berechnung von M
auf y.
(iii) Falls M das Wort y akzeptiert (d.h. L(M) =/=0), so akzeptiert M1 die
Eingabe x = Kod(M).
Falls M das Wort y verwirft, akzeptiert M1 in diesem Lauf die Eingabe
x nicht.
Falls die Berechnung von M auf y unendlich ist, rechnet M1 auch in
diesem Lauf auf x unendlich lange und akzeptiert so dass Wort x =
Kod(M) in diesem Lauf nicht.

Nach Schritt (i) akzeptiert M1 alle W6rter, die keine TM kodieren.


5.3 Die Methode der Reduktion 183

Falls z = Kod(M) und L(M) r O, dann existiert ein Wort y mit y E L(M).
Deswegen existiert eine Berechnung yon M1 auf z = Kod(M), in der z akzep-
tiert wird.
Falls z E Lempty, dann existiert keine akzeptierende Berechnung von M1 auf z,
und so schliefien wir, dass L(M1) -- (Lempty) C.
Im zweiten Beweis von (Lempty) C E s konstruieren wir direkt eine (determi-
nistische) TM A, die (Lempty) C akzeptiert. A arbeitet auf einer Eingabe w wie
folgt.

(i) Falls w keine Kodierung einer Turingmaschine ist, so akzeptiert A die


Eingabe w.
(ii) Falls w = Kod(M) f/Jr eine TM M, arbeitet A wie folgt.
A konstruiert systematisch (in der Reihenfolge aus Fig. 5.3 oder Fig. 5.4)
alle Paare (i, j) E ( I N - {0})• ( I N - {0}). Fiir jedes Paar (i, j) generiert
A das i-te Wort wi fiber dem Eingabealphabet der TM M und simuliert
j Berechnungsschritte von M auf wi.
Falls ftir ein (k, l) die TM M das Wort wk in 1 Schritten akzeptiert, hglt A
und akzeptiert seine Eingabe w = Kod(M). Sonst arbeitet A unendlich
lange und akzeptiert damit die Eingabe w nicht.

Der Kernpunkt der Beweisidee ist, dass wenn ein Wort y mit y E L(M) exi-
stiert, dann ist y = w~ ftir ein k E I N - {0} und die akzeptierende Berechnung
von M a u f y hat eine endliche LS~nge 1. Damit garantiert die systematische
0berpriifung aller Paare (i, j) in Phase (ii) der Arbeit von A das Akzeptieren
yon Kod(M), falls L(M) r O. Somit ist L(A) -(Lempty) C. [-I
Im Folgenden zeigen wir, dass (Lempty)[I ~ s Dies entspricht der Nichtexi-
stenz eines Algorithmus zur fJberprtifung, ob ein gegebenes Programm eine
leere Menge akzeptiert. Daher k6nnen wir im Allgemeinen nicht die Korrekt-
heit von Programmen testen. Dies geht sogar in den FS~llen nicht, in denen es
sich um triviale Aufgabenstellungen handelt (z.B. eine konstante Funktion zu
berechnen).

L e m m a 5.7. (Lempty)C@s
Beweis. Wir zeigen Lu ~EE (Lempty)c. Wir beschreiben jetzt eine TM A, die
Lu auf (Lempty)C reduziert (Fig. 5.13). Fiir jede Eingabe x E {0, 1, r arbeitet
A wie folgt.

(i) Falls x nicht die Form K o d ( M ) # w fiir eine TM M und ein w E (Y]bool)*
184 5 Berechenbarkeit

hat, dann schreibt A das Wort A(x) : Kod(Bx) auf das Band, wobei
/?x eine TM ist, die fiber Ebool arbeitet und die leere Menge 0 akzeptiert
(L(Bx) = 0 ) .
(ii) Falls x - Kod(M)Cpw fiir eine TM M und ein Wort w e (Eboo~)*, gene-
riert A die Kodierung Kod(Bx) einer TM Bx als seine Ausgabe. Die TM
Bx arbeitet f/Jr jede Eingabe y (unabhS~ngig von dem Inhalt der eigenen
Eingabe y) wie folgt.
(a) Bx generiert x = K o d ( M ) # w auf dem Band.
{Das Wort x kann durch die ZustS~nde und die ~-Funktion von Bx
beschrieben werden}.
(b) Bx simuliert die Arbeit yon M auf w.
Falls M das Wort w akzeptiert, akzeptiert Bx seine Eingabe y.
Falls M das Wort w verwirft, verwirR Bx seine Eingabe y.
Falls M auf w nicht hS~lt, dann arbeitet auch Bx unendlich lange.
Folglich akzeptiert Bx seine Eingabe y nicht.

Wir beweisen jetzt, dass

X E L U ~=} A ( x ) - Kod(J~x) E (Lempty) C

ftir alle x E {0, 1, r


Sei x E Lu. Daher x - K o d ( M ) # w fiir eine TM M und w E L(M). In diesem
Fall L(Bx) - (Eboo~)* r 0 und somit Kod(Bx) E (Lempty) C.
Sei x ~ Lu. Dann hat x entweder nicht die Form Kod(M')fpz ftir eine TM M'
und ein z E {0, 1}* oder x - Kod(M)Cpw ftir eine TM M und w ~ L(M). In
beiden Fgllen gilt L(Bx) - 0 und somit Kod(Bx) ~ (Lempty) c. [-I

L(Bx)~=O M akzeptiert w
TM E
I Kod(Bx)
D.

K~ Ai L(E) -- L(Bx) - 0
(Lempty)C
M akzeptiert w nicht
p.

Fig. 5.13

K o r o l l a r 5.4. Lempty @ /2R.

Beweis. Wenn Lempty C s wS~re, m/isste nach Lemma 5.4 auch (Lempty) C C s
sein. D
5.4 Satz yon Rice 185

Aufgabe 5.19.* Beweisen Sie, dass die folgenden Sprachen nicht in ERE sind:
(a) Lempty~
(b) (LH)C und
(c) (Lu) C.

Die nS~chste Folgerung aus Lemma 5.7 ist, dass das Aquivalenzproblem f/Jr zwei
Turingmaschinen unentscheidbar ist. Man kann also kein Programm entwerfen,
das ffir zwei gegebene Programme testen kann, ob die Programme das gleiche
Problem 16sen (die gleiche semantische Bedeutung haben).

K o r o l l a r 5.5. Die Sprache LEQ = {Kod(M)#Kod(M)] L(M)= L(M)} ist


nicht entscheidbar (d.h. LEQ ~ s

Beweis. Die Beweisidee ist einfach, weil Lempty als ein Spezialfall von LEQ be-
trachtet werden kann. Formal reicht es zu zeigen, dass Lempty _~EELEQ. Es ist
einfach, eine TM A zu konstruieren, die ffir eine Eingabe Kod(M) die Ausgabe
K o d ( M ) # K o d ( C ) generiert, wobei C eine feste triviale TM mit L(C) = 0 ist.
Es ist klar, dass

K o d ( M ) # K o d ( C ) E LEQ r L ( M ) : L ( C ) : 0 r Kod(M) E Lempty.

Aufgabe 5.20. Beweisen Sie, dass die Sprache {Kod(M)#Kod(M) I L(M) c_ L(M')}
nicht in s ist.

5.4 Satz y o n R i c e

Im letzten Abschnitt haben wir festgestellt, dass das Testen von Programmen
ein sehr schweres Problem ist. Fiir ein Programm A und eine Eingabe des
Programmes z ist es unentscheidbar, ob A auf x terminiert. Daher k6nnen wir
Programme nicht algorithmisch testen, um zu verifizieren, ob ein gegebenes
Programm fiir jede Eingabe terminiert (einem Algorithmus entspricht). Das
triviale Entscheidungsproblem, ob ein gegebenes Programm keine Eingabe ak-
zeptiert (ob L(M) = 0 fiir eine TM M) ist auch unentscheidbar. Dies 15~sst
uns ahnen, dass es nicht viele Testprobleme fiber Programmen gibt, die ent-
scheidbar sind. Die Zielsetzung dieses Abschnittes ist zu zeigen, dass alle in
gewissem Sinne nichttrivialen Probleme fiber Programmen (Turingmaschinen)
186 5 Berechenbarkeit

unentscheidbar sind. Was mit dem Begriff nichttrivial gemeint ist, spezifiert
die folgende Definition.

D e f i n i t i o n 5.7. Eine Sprache L c_ {Kod(M) I M ist eine TM} heiflt se-


m a n t i s c h n i c h t t r i v i a l e s E n t s c h e i d u n g s p r o b l e m fiber T u r i n g m a s c h i -
nen, falls folgende Bedingungen gelten:

Es gibt eine TM M1, so dass Kod(M1) E L (daher L 5r 0),


(ii) Es gibt eine TM 512, so dass Kod(M2) ~ L (daher enthglt L nicht die
Kodierungen aller Turingmaschinen),
#ii) fiir zwei Turingmaschinen A und B impliziert L(A) = L(B)
Kod(d) e n r Kod(B) e n.

Bevor wir zum Beweis der Unentscheidbarkeit semantisch nichttrivialer Ent-


scheidungsprobleme iibergehen, betrachten wir aus technischen Griinden noch
die folgende Sprache

LH,a -- {Kod(M) I M hglt auf A}

als ein spezifisches Halteproblem.

L e m m a 5.8. LH,A ~ /~R-

Beweis. Wir zeigen LH ~EE LH,~. Eine TM A kann LH auf LH,~ wie folgt
reduzieren. Ffir eine Eingabe x, die nicht die Form K o d ( M ) # w hat, generiert
A eine einfache TM Hx, die auf jeder Eingabe unendlich lguft. Falls x =
K o d ( M ) # w fiir eine TM M und ein Wort w, generiert A eine Kodierung
Kod(Hx) einer TM Hx, die wie folgt arbeitet:

1. Ohne die eigene Eingabe y anzuschauen, generiert die TM Hx das Wort


x = K o d ( M ) # w auf dem Band.
2. Hx simuliert die Berechnung yon M auf w. Fails M auf w hglt, dann hglt
H, auch und akzeptiert die eigene Eingabe. Falls die Berechnung von M auf
w unendlich ist, dann arbeitet Hx auch unendlich lange.

Offensichtlich

xELH <=> x = K o d ( M ) # w u n d M h g l t a u f w
r H, hglt immer (fiir jede eigene Eingabe y)
Hx hglt auf A
<=> Kod(Hx) E LH,~
fiir jedes z E {0, 1, #}*.
5.4 Satz yon Rice 187

S a t z 5.9.* Satz von Rice


Jedes semantisch nichttriviale Entscheidungsproblem iiber Turingmaschinen ist
unentscheidbar.

Beweis. Sei L ein beliebiges semantisch nichttriviales Entscheidungsproblem


fiber Turingmaschinen. Wir zeigen entweder LH,a _<EE L oder LH,a _<EE L c.
Sei M0 eine TM mit der Eigenschaft, dass L(Mo) - O. Wir unterscheiden jetzt
zwei MSglichkeiten beziiglich der ZugehSrigkeit von Kod(M0) zu L"

I. Sei Kod(Mo) E L. In diesem Fall beweisen wir

LH,,~ _~EE L C.
Nach (ii) von Definition 5.7 existiert eine TM M, so dass Kod(M) ~ L. Wir
beschreiben jetzt die Arbeit einer TM S, die LH,~ auf L c reduziert. Fiir jede
Eingabe x E (Ebool)* berechnet S
(i) entweder S(x) = Kod(M') mit L(M') = L(Mo) = 0 (wenn x ~ LH,a),
also Kod(M') ~ L c.
(ii) oder S(x) = K o d ( M ' ) m i t L(M') = L ( M ) (wenn x E LH,a), also
Kod(M') E L c.
S fiihrt die Berechnung auf folgende Weise durch (Fig. 5.14):
Eingabe: ein z E (Ebool)*.
1. S iiberpriift, ob z = Kod(M) fiir eine TM M. Falls z keine Kodierung
einer TM ist, schreibt S das Wort S(z) = Kod(M0) auf das Band (Fig.
5.14).
2. Falls x = Kod(M) fiir eine TM M, dann generiert S die Kodierung
K o d ( M ~) einer TM M ~, die wie folgt arbeitet.
(a) Das Eingabealphabet vom M ~ ist E ~ also das Eingabealphabet der
TM M mit K o d ( M ) ~ L, d.h. K o d ( M ) E L C.
(b) Fiir jedes y E (rV)* generiert M' das Wort x = Kod(M) auf dem
Band hinter y (also wird y dabei nicht iiberschrieben) und simuliert
die Berechnung yon M auf A.
Falls M auf A nicht halt (d.h. Kod(M) r LH,a), dann halt auch M'
auf y nicht, und deshalb y r L(M').
{Weft diese Simulation der Berechnung yon M auf A unabhS~ngig yon
der Eingabe y yon M' 15~uft, ist L(M') = 0 = L(Mo) und damit
Kod(M') E L, also K o d ( M ' ) r LC.}
188 5 Berechenbarkeit

Falls M auf A h~lt (d.h. Kod(M) E LH,~), dann generiert M ' die
Kodierung Kod(M) der TM M auf dem Band. Dann simuliert M'
die Arbeit yon M auf der eigenen Eingabe y E (E~)*. M ~ akzeptiert
y genau dann, wenn M das Wort y akzeptiert.
{Damit L(M') = L(M)und daher Kod(M') ~ L, also Kod(M') E
Lc.}
Wir sehen, dass (Fig. 5.14)

x E LH,,X ~=} S(X) E L c


fiir alle x E (Ebool)* und somit

LH,~ ~EE LC.


II. Sei Kod(Mo) r L.
Nach Bedingung (i) der Definition 5.7 muss eine TM f / existieren, so dass
Kod(M) E L. Jetzt kann auf die gleiche Weise LH,~ < E E L bewiesen werden
wie LH,~ _<EE L c in Teil I bewiesen wurde, f / s p i e l t dabei die Rolle von M.

Aufgabe 5.21. Fiihren Sie einen detaillierten Beweis von LH,X _<EEL, falls Kod(M0) r L.

Der Satz von Rice hat folgende Konsequenz. Sei L eine beliebige rekursive
Sprache und sei

K o d L - {Kod(M) [ M i s t eine TM und L(M)- L}


die Sprache der Kodierungen aller Turingmaschinen, die die Sprache L akzep-
tieren. Weil L rekursiv ist, ist K o d / ~ 0. Offensichtlich existieren Turingma-
schinen, deren Kodierung nicht in KodL ist, und K o d / erffillt die Bedingung
(iii) von Definition 5.7. Damit ist KodL ein semantisch nichttriviales Problem
fiber Turingmaschinen, und nach dem Satz yon Rice ist KodL ~ s Dies be-
deutet, dass wir fiir kein algorithmisch lasbares Problem algorithmisch testen
kannen, ob ein entworfener Algorithmus eine korrekte Lasung des Problems
ist. Die Verifikation von Programmen ist also eine schwere Aufgabe, und des-
wegen ist ein gut strukturierter und modularer Entwurf von Programmen so
wichtig fiir die Zuverl~ssigkeit des entstehenden Softwareproduktes.

Aufgabe 5.22. Beweisen Sie die folgende Aussage. Sei E ein Alphabet und sei L c_ E*.

L, L c E ERE <=>L E s
5.4 Satz yon Rice 189

9 e {0,1}*

eine TM fiir LH,~


x

x ist keine Ko-


dierung einer TM S
falls x - Kod(M) fiir eine TM M,
dann generiert S eine TM M ~.
M ~ simuliert M auf A.
Falls M auf ~ h~lt,
simuliert M ~ die Arbeit yon M
auf eigener Eingabe.

S ( x ) - Kod(M')
S ( x ) - Kod(Mo)
{ L ( M ' ) - 0 - L(Mo) wenn
{Mo ~ L C}
M auf A nicht h~ilt}

{ L ( M ' ) - L ( M ) mit
Kod(M) E L C
wenn M auf A hSJt.}

eine TM, die


L C akzeptiert

JA NEIN
S(x) C L C S(x) ~ L c

M h~lt auf A M h~lt nicht auf ~.

Fig. 5.14
190 5 Berechenbarkeit

5.5 Das Post'sche Korrespondenzproblem

In den letzten Abschnitten haben wir gezeigt, dass fast alle Probleme fiber Tu-
ringmaschinen (Programmen) unentscheidbar sind. Eine berechtigte Frage ist
aber, ob man auch natiirliche unentscheidbare Probleme aui3erhalb der Welt
der Turingmaschinen hat. Die Antwort auf diese Frage ist positiv, und die
Zielsetzung dieses Abschnittes ist zu zeigen, wie man mit der HiKe von Reduk-
tionen die Beweise der Unentscheidbarkeit aus der Welt der Turingmaschinen
in die Welt der Spiele iibertragen kann.

Xl X2 Xn

Yl Y2 Yft

Fig. 5.15

Wir betrachten jetzt folgendes Dominospiel. Man hat eine endliche Menge von
Dominosteinen (Fig. 5.15), wobei ein Dominosteintyp immer ein Paar (z, y)
ist, wobei z und y WSrter fiber einem gleichen Alphabet E sind. Von jedem
Dominosteintyp stehen beliebig viele s Dominosteine zur Verffigung. Die Frage
ist, ob es m6glich ist, einige Steine nebeneinander so zusammenzusetzen, dass
oben (durch das erste Element der Paare bestimmt) das gleiche Wort wie unten
(durch das zweite Element der Paare bestimmt) steht. Veranschaulichen wir
uns das am folgenden Beispiel.
Seien 8 1 - - (1, @0), s2 -- (0, 01), s3 -- (@0, 0), 8 4 - - (01@, @) die Domino-
steintypen eines Dominospieles fiber {0, 1, @}. Die graphische Darstellung der
Dominosteintypen s l, s2, s3 und s4 ist in Fig. 5.16 gegeben.

#o 01@

#o 01 #

81 82 83 84

Fig. 5.16

SUnendlich vide.
5.5 Das Post'sche Korrespondenzproblem 191

Dieses Dominospiel hat eine L6sung, und zwar die Folge s2, 81, 83, 82, 8 4 . Mit
dieser Folge bekommen wir die Darstellung des Wortes 01#0001# (Fig. 5.17
und 5.18).

#0 01#

01 #0 01 #

82 81 83 82 84

Fig. 5.17

1 #

o # o o ] o #

82 81 83 82 84

Fig. 5.18

Ftir das Dominospiel 81 = (00,001), S2 = (0,001), Sa = (1, 11) gibt es keine


L6sung, weil alle zweiten Elemente der Dominosteintypen lgnger sind als die
entsprechenden ersten Elemente.
Dieses Dominospiel nennt man das Post'sche Korrespondenzproblem, und seine
formMe Definition Ms Entscheidungsproblem ist wie folgt.

D e f i n i t i o n 5.8. Sei E ein Alphabet. Eine I n s t a n z des P o s t ' s c h e n K o r -


r e s p o n d e n z p r o b l e m s iiber E ist ein P a a r (A, B ) , wobei A = Wl, . . . , wk,
t? = x ~ , . . . , x k fiir ein k E I N - {0}, w~,x~ E E* fiir i = 1 , . . . , k. Fiir jedes
i E { 1 , . . . , k} wird (wi, xi) ein D o m i n o s t e i n t y p genannt.
W i t sagen, dass die I n s t a n z (A, B ) des P o s t ' s c h e n K o r r e s p o n d e n z p r o b l e m s eine
L S s u n g hat, falls m E IN - {0} und i~, i 2 , . . . , i,~ E IN - {0} cxistieren, so dass

Wi 1 Wi 2 9 . . Wim ~ Xil Xi 2 9 . . Xim.

Das P o s t ' s c h e K o r r e s p o n d e n z p r o b l e m ( P K P ) ist zu entscheiden, ob eine


gegebene I n s t a n z von P K P eine L S s u n g hat oder nicht.
192 5 Berechenbarkeit

L e m m a 5.9. Falls eine Instanz (A, B) des P K P eine LSsung hat, dann hat
(A, B) unendlich viele LSsungen.

Beweis. Falls il, i2,..., ik eine L6sung des Instanz (A, B) ist, dann ist auch
(il, i 2 , . . . , i~) j eine L6sung fiir jedes j E I N - {0}. D

Aufgabe 5.23. Definieren Sie das PKP als ein Entscheidungsproblem


(LpKp, Ebool) fiir eine Sprache LpKp C_ (Ebool)*. Beweisen Sie LpKp C L;RE.

Aufgabe 5.24. Beweisen Sie, dass die Instanz ((10,011,101), (101, 11,011)) des PKP keine
LSsung hat.

Aufgabe 5.25. Hat die Instanz ((1, 1110111, 101), (111, 1110, 01)) des PKP eine LSsung?

Unser Ziel ist es zu zeigen, dass das P K P unentscheidbar ist. Die Idee des Be-
weises basiert auf der Tatsache, dass unser Dominospiel gentigende
Ausdrucksstgrke hat, um Berechnungen von Turingmaschinen simulieren zu
kSnnen. Aus rein technischen Grfinden betrachten wir zuerst eine Spezialform
des P KP, bei dem das Dominospiel immer mit dem ersten Dominosteintyp
anfangen muss.

D e f i n i t i o n 5.9. Sei E ein Alphabet. Eine I n s t a n z des m o d i f i z i e r t e n P o s t ' -


schen Korrespondenzproblems iiber E ist ein Paar (C, D), wobei C =
u l , . . . , u k , D - v l , . . . , v k fiir ein k E I N - {0}, ui, vi E E* fiir i - 1 , . . . , k .
Wir sagen, dass die Instanz (C, D) des modifizierten Post'schen Korrespon-
denzproblems eine L S s u n g hat, falls m E IN und j l , j 2 , . . . , j , ~ E I N - {0}
existieren, so dass

'ltlUjl Uj2 9 9 9 Ujm -- VlVjl Vj2 9 9 9 Vim"

Das m o d i f i z i e r t e P o s t ' s c h e K o r r e s p o n d e n z p r o b l e m ( M P K P ) ist zu


entscheiden, ob eine gegebene Instanz des M P K P iiber einem beliebigen E eine
LSsung hat.

Betrachten wir folgende Instanz ( A , B ) des PKP. Seien A = 0, 11, 1, B =


001, 1, 11, d.h. S 1 ---- ( 0 , 0 0 1 ) , s2 = (11, 1) und s3 = (1, 11). Offensichtlich
ist s2sa eine L6sung des PKP. Wenn wir (A, B) als eine Instanz des M P K P
betrachten, dann stellen wir fest, dass (A, B) keine LSsung hat. Dies bedeutet,
dass es fiir ein gegebenes Dominospiel (A, B) wichtig ist, ob (A, B) als eine
Instanz des P KP oder des M P K P zu betrachten ist.

Aufgabe 5.26. Beweisen Sie, dass die Instanz ((0, 11, 1), (001, 1, 11)) des
MPKP keine LSsung hat.
5.5 Das Post'sche Korrespondenzproblem 193

L e m m a 5.10. Falls das P K P entscheidbar ist, dann ist auch das MPKP ent-
scheidbar.

Beweis. Sei (A, B) eine Instanz des MPKP. Wir konstruieren eine Instanz
(C, D) des PKP, so dass

M P K P (A, B) hat eine LOsung <=> P K P (C, D) hat eine LOsung.

Sei A = W l , . . . , w k , B = X l , . . . , x k , k E IN {0}, Wi,& E E* fiir i = 1 , . . . , k


und ein Alphabet E. Sei r ~ E. Wir konstruieren eine Instanz (6', D) des P K P
fiber dem Alphabet E~ = E U {r $}.
Zuerst definieren wir zwei Homomorphismen hL und ha von E* nach E~ wie
folgt. Fiir alle a E E ist

h ~ ( a ) -- Ca ~ n d h ~ ( a ) - ar

Wir sehen, dass hL das Symbol r links neben jeden Buchstaben setzt und hR
das Symbol r rechts neben jeden Buchstaben setzt. Z.B. ist fiir das Wort 0110
hL(0110) = r162162162und ha(0110) = 0r162162162
Wir setzen C = yl,y2,...,yk+2 und D = Zl,Z2,...,zk+2, wobei

Yl -- ChR(Wl) Zl -- hL(Xl)
Y2- hR(Wl) Z2- hL(Xl)

9 o

9 o

Yid-1 hR(Wi) Zid-1 hL(Xi)


9 o

9 o

Yk-bl hR(Wk) Zk-bl hL(Xk)


y~+2 $ zk+2 r

Zum Beispiel ist fiir die Instanz ((0, 11, 1), (001, 1, 11)) des MPKP die entspre-
chende Instanz des P KP

((r162 or 1r162 1r $), (r162162 r162162 r r162 r


Es ist offensichtlich, dass eine TM (ein Algorithmus) die Konstruktion von
(6', D) aus (A, B) realisieren kann. Es bleibt also zu zeigen, dass entweder bei-
de MPKP(A, B) und PKP(C, D) LSsungen besitzen oder beide keine LSsung
haben.
194 5 Berechenbarkeit

1. Zuerst beweisen wir, dass man aus jeder LSsung fiir M P K P ( A , B ) eine
L6sung ftir PKP(C, D) bestimmen kann. Sei i l , i 2 , . . . , i m eine L6sung fiir
MPKP(A, B). Daher ist

U ~ WlWilWi2 ...Wire ~ XlXilXi2 ...Xim.

Die entsprechende Indexfolge 2, il + 1, i2 + 1 , . . . , i,~ + 1 fiir PKP(C, D) ent-


spricht der Anwendung yon ha auf Wl wi~wi~.., wi,~ und hL auf Xl Xil xi~.., xi,~.
Damit ist

ChR(U) = CY2Yi~+I . . . Yi~+l = z2Zil+l . . . Zim+lr = hL(U)r


Daher unterscheiden sich
ha(u) = Y~Y~I+I.-- y ~ + l und hL(u) = z~z~l+l.-- z~+l
nur in dem ersten Symbol r und dem letzten Symbol r Weil in der Kon-
struktion Yx = r und Zx = z2, ersetzen wir den ersten Index 2 durch 1. So
bekommen wir die Folge 1, i l + 1, i2 + 1 , . . . , i m + 1, fiir die

YlYil+lYi2+I ... Yi~+l = Z1Zil+lZi2+l ... Zim+l~

gilt. Um eine L6sung des P K P zu erhalten, konkatenieren wir von rechts den
(k + 2)-ten Dominostein (r r Damit gilt

YlYil+lYi2+I 9 9 9Yi.~+lYk+2 -- Z1Zil+IZi2+I 9 9 9 Zim+lZk+2

und damit ist 1, il + 1, i2 + 1 , . . . , i,~ + 1, k + 2 eine L6sung von PKP(C, D).


2. Wir miissen noch beweisen, dass die Existenz einer L6sung fiir P K P (C, D)
die Existenz einer L6sung fiir MPKP(A, B) impliziert. Zuerst bemerken wir,
dass alle zi mit r anfangen und yon den yi's nur Yl mit r anfS~ngt. Damit
muss jede LSsung ftir PKP(C, D) mit dem ersten Dominostein anfangen. Weil
die einzigen zwei Dominosteine mit gleichem letzten Symbol die (k + 2)-ten
Dominosteintypen sind, muss jede L6sung yon PKP(C, D) mit dem Index k t 2
enden.
Sei 1,jl,j2,... , j ~ , k + 2 eine L6sung fiir PKP(C, D). Wir behaupten, dass
1,jl- 1,j2- 1,...,j,~- 1
die L6sung yon MPKP(C, D) ist. Die Begriindung ist, dass die Entfernung
der Symbole r und $ a u s Y l Y j l Y j 2 . . . Yj~Yk+2 zum Wort W l W j l _ l W j 2 _ I . . . W j m _ 1
fiihrt, und die Entfernung der Symbole r und $ aus ZlZjlZj~... zj~zk+2 in
X l X j l _ l X j 2 _ 1 . . . X j m _ l X k + 2 resultiert. Weil 1, j l , . . , j,~, k + 2 eine L6sung yon
PKP(C, D ) i s t , gilt

Yl , Yjl Yj2 ''' Yj.~Yk+2 - - Z1ZjlZj2 ... Zjm Zk+2"


5.5 Das Post'sche Korrespondenzproblem 195

Dies impliziert

WlWjl--lWj2--1 9 .. Wjm--1 : XlXjl_lXj2_ 1 9 .. Xjm--1.

Damit ist 1, jl - 1, j2 - 1 , . . . , j,~ - 1 eine LSsung yon MPKP(A, B).

Aufgabe 5.27. Beweisen Sie, dass die Entscheidbarkeit yon MPKP die Entscheidbarkeit
von PKP impliziert.

Wir beweisen jetzt die Unendscheidbarkeit von MPKP, indem wir zeigen, dass
man mit diesem Dominospiel die Berechnung einer TM auf einer Eingabe si-
mulieren kann.

L e m m a 5.11.* Die Entscheidbarkeit von M P K P impliziert die Entscheid-


barkeit von L u .

Beweis. Sei x E {0, 1, #}*. Wir konstruieren eine Instanz (A, B) des MPKP,
SO d&ss

x E Lu r MPKP(A, B) hat eine LSsung.

Wenn x nicht die Form K o d ( M ) # w hat (d.h. x ~ Lu), dann setzen wir A = 0
und B = 1. Es ist klar, dass ein Dominospiel mit einem einzigen Dominostein-
typ (0, 1) keine LSsung hat.
Sei x = K o d ( M ) # w fiir eine TM M = (Q, E, F, ~, q0, %cc~pt, qr~j~ct) und ein
Wort w E E*. Ohne Einschrgnkung der Allgemeinheit diirfen wir voraussetzen,
dass M in jedem Schritt den Kopf bewegt. Wir beschreiben die Konstruktion
yon M P K P ( C , D) zu M und w in vier Schritten. Jeder Schritt bestimmt ei-
ne Gruppe yon Dominosteintypen mit spezifischer Bedeutung. Die grobe Idee
ist, mit der B-Liste die Berechnung yon M auf w zu simulieren und mit der
A-Liste die Berechnung mit einer Versp~itung yon einer Konfiguration zu si-
mulieren. Dadurch kann man Dominosteintypen benutzen, bei denen das erste
Element das Argument (den Zustand und das gelesene Symbol) bestimmt und
das zweite Element die Nachfolgekonfiguration entsprechend der &Funktion
beschreibt. Durch spezielle Dominosteintypen wird die M6glichkeit gegeben,
die Versptitung von A nachzuholen, wenn die Berechnung in qaccept endet.
Sei r ein neues Symbol, das nicht in F enthalten ist.

1. Die erste Gruppe enthS~lt nur einen Dominosteintyp


(#,
196 5 Berechenbarkeit

Dieser Dominostein startet die Simulation der Berechnung yon M auf w. Un-
ten steht die Ausgangskonfiguration yon M auf w und oben haben wir die
VerspS~tung qor162
2. Die zweite Gruppe enthSJt folgende IFI + 1 Dominosteintypen:

(X, X) ffir alle X E F


(#, #).
Diese Gruppe benutzt man zum Kopieren der Teile yon Konfigurationen, die
sich in einem Schritt nicht 5mdern.
3. Die dritte Gruppe dient zur Simulation der Berechnungsschritte von M.
Fiir alle q E Q - {qaccept}, P E Q, X, Y, Z E F nehmen wir folgende Domino-
steintypen:

(qX, Yp) falls 6(q, X) = (p, Y, R)


(ZqX, pZY) falls 6(q, X) - (p, Y, L)
(q--/C,Yp--/r falls 6(q, u) : (p, Y, R)
(Zq#, pZY--/r falls 6(q, u) : (p, Y, L).

Dieses erm6glicht, oben die Konfiguration von unten zu kopieren und unten
mit dem Vorsprung die Nachfolgerkonfiguration zu generieren.
4. Die vierte Gruppe yon Dominosteinen erm6glicht es, die unten entwickelte
Berechnung oben nachzuholen, falls unten die Berechnung in dem akzeptie-
renden Zustand qaccept geendet hat. Mit folgenden Dominosteintypen kann der
Zustand qaccept die Symbole aus F O {r ,,schlucken". Fiir alle X, Y E F O {r
nehmen wir

(X qacceptY~ qaccept)
(X qaccept, qaccept)
(qacco Y, qacco )-
Wenn qacc~pt unten alle Bandsymbole geschluckt hat, ist der Vorsprung unten
auf qaccept~ geschrumpft. Der folgende Dominosteintyp
(qacce ##,#)
erm6glicht das definitive Nachholen des Wortinhaltes yon unten bei dem Wort
oben.

Illustrieren wir die Konstruktion einer MPKP-Instanz (A, B) fiir die TM M =


({q0, ql, qaccept, qreject}, {0, 1}, {r 0, 1, u}, (~M,qaccept, qreject) in Fig. 5.19. Die kon-
struierten Dominosteintypen fiir die Eingabe 01 sind die folgenden:
5.5 Das Post'sche Korrespondenzproblem 197

O~I,R I~I,R

( r r
0~0, R )
-.(
0 ---, 0, R
u-~ u,L u -~ u , L

Fig. 5.19

(i) Die erste Gruppe"


(#, #qor
(ii) Die zweite Gruppe:
(0, 0), (1, 1), (r r ($, $), (#, #).
(iii) Die dritte Gruppe:
(q01, lq0), (q00, 0ql), (q0~, ~ql),
(lq0#, qaccept1#), (0q0#, qaccept0#)
(q11, lql), (ql0, 0q0), (lq1#, qreject1#), (0ql#, qreject0#).
(iv) Die vierte Gruppe:
(0qaccept 0~ qaccept)~ (lq.cc~pt 1, qaccept )~ (lqaccept 0~ qaccept)~
(0qaccep t 1~ qaccept)~ (0qaccept ~qaccept )~ (lqaccept ~qaccept)~
(qaccept0, qaccept), (qaccept1, qaccept),
(r qaccep~), (qaccep~r qaccep~),
(r a, q.cc~pt), (aq.cc~ptr qaccept) fiir alle a E { 0, 1 }
(q.cco~##, #).
Der Anfang der Simulation der Berechnung von M auf 01 durch das Domino-
spiel (A, B) ist in Fig. 5.20 gezeigt.
198 5 Berechenbarkeit

#
#q0 0 0 1 # r ql 0 1 # 0 0 q0 1 # r 0 1 q0 # r 0 qaccept 1 :H:]

Fig. 5.20

# r 0 qaccept 1 # r qaccept # qaccept # #

Fig. 5.21

In Fig. 5.21 ist die Phase des Schrumpfens gezeigt, in der der Wortinhalt oben
den Wortinhalt unten nachholt.
Es ist offensichtlich, dass das MPKP(A, B) aus einer gegebenen TM M und
einem Wort w algorithmisch erzeugt werden kann.
Es bleibt zu beweisen, dass die folgende Aquivalenz gilt:

M akzeptiert w e=~ MPKP(A, B) hat eine L6sung.

Um unn6tige technische Details zu vermeiden, bleiben wir bei einer halbinfor-


mellen Begrfindung.
Wenn w E L(M), dann existiert eine akzeptierende Berechnung von M auf
w. Zu dieser Berechnung kann man eine L6sung des MPKP(A, B) wie folgt
bauen. Die L6sung beginnt mit dem Dominostein (r ~qoCw~) der ersten
Gruppe. Dann benutzen wir Dominosteine aus Gruppe 2, um die Symbole der
Konfigurationen zu kopieren, die im ngchsten Schritt unvergndert bleiben. Die
Dominosteine aus Gruppe 3 werden benutzt, um die Nachfolgekonfiguration
unten zu erzeugen. Nach jedem Symbol r ist das Wort unten um genau eine
Konfiguration 15~nger als das Wort oben, das ein PrS~fix des Wortes unten ist.
Wenn man unten die akzeptierende Konfiguration mit qaccept erreicht, erm6gli-
then die Dominosteine der vierten Gruppe dem Wort oben, das Wort unten
nachzuholen und so eine L6sung des MPKP(A, B) zu erhalten.
Sei w ~ L(M). Jede L6sung des M P K P ( A , B ) muss mit dem Dominostein
(~, ~qoCw-~) der ersten Gruppe anfangen. Weil die Steine der Gruppe 2 und
3 nur solche Anderungen der letzten Konfiguration unten erm6glichen, die
einem Berechnungsschritt entsprechen, wird der Zustand qaccept hie als Sym-
bol im Wort unten auftreten. Dann bleibt aber der untere Teil immer lgnger
5.6 Die Methode der Kolmogorov-Komplexit~t 199

als der obere Teil der gelegten Dominosteine. Also gibt es keine L6sung des
MPKP(A, B). D

A u f g a b e 5.28. Schreiben Sie ein MPKP(A, B) zu der TM in Fig. 4.6.

A u f g a b e 5.29. Sei (A, B) eine Instanz des MPKP ffir eine TM M und ein Wort w nach
der Konstruktion des Lemmas 5.11. Beweisen Sie durch Induktion folgende Aussage:
Falls w E L ( M ) , dann existiert eine Folge von Indizes, so dass

(i) der untere Teil der gelegten Dominosteine die komplette Berechnung von M auf w
enthglt, wobei die einzelnen Konfigurationen durch das Symbol 5r getrennt sind, und
(ii) der obere Teil der gelegten Dominosteine ist ein echter PrSofix des unteren Teils, der
die ganze Berechnung bis auf die letzte Konfiguration enth~lt.

S a t z 5.10. Das P K P ist unentscheidbar.

Beweis. Nach Lemma 5.11 ist M P K P unentscheidbar und nach Lemma 5.10
ist P KP mindestens so schwer wie MPKP. D

A u f g a b e 5.30.* Betrachten Sie eine beschr~nkte Version des PKP, bei dem alle Domino-
steintypen fiber dem festen einelementigen Alphabet {0} definiert sind. Ist dieses Problem
entscheidbar?

5.6 Die Methode der Kolmogorov-Komplexit it

In Abschnitt 5.2 haben wir die Methode der Diagonalisierung angewendet, um


das erste algorithmisch unl6sbare Problem Ldiag ZU finden. Damit haben wir
einen Startpunkt ftir den Aufbau der Theorie der Berechenbarkeit erzeugt, von
dem aus man mittels der Methode der Reduktion in den Abschnitten 5.3, 5.4
und 5.5 die Unentscheidbarkeit weiterer Probleme beweisen konnte. Die Ziel-
setzung dieses Abschnittes ist es, einen alternativen Weg fiir den Aufbau der
Theorie der Berechenbarkeit anzudeuten. Ohne jede Voraussetzung fiber die
Existenz eines algorithmisch unl6sbaren Problems, benutzen wir die Theorie
der Kolmogorov-KomplexitS~t, um zu zeigen, dass kein Algorithmus existiert,
der die Kolmogorov-Komplexitat K(x) des Wortes x fiir jedes x E (Ebool)*
berechnen kann. Ausgehend yon diesem Startpunkt kann man dann wieder
mittels der Reduktionsmethode die Unentscheidbarkeit yon allen in den vori-
gen Abschnitten vorgestellten unentscheidbaren Sprachen beweisen.
200 5 Berechenbarkeit

S a t z 5.11. Das Problem, fiiv jedes x E (Y]bool)* die Kolmogorov-Komplezitiit


K ( z ) yon z zu berechnen, ist algorithmisch unlSsbar. 9

Beweis. Wir beweisen dies indirekt. Sei A ein Algorithmus, der fiir jedes
x E (Eboo~)* das Wort K(x) berechnet. Sei x~ das erste Wort beziiglich der
kanonischen O r d n u n g fiber Ebool mit K(x~) >_ n. Wir beschreiben nun einen
Algorithmus B~, n E IN - {0}, der

(i) A als ein Teilprogramm benutzt, und


(ii) fiir die leere Eingabe A das Wort x~ generiert.

B~ arbeitet wie folgt.


B~ begin x := A
Berechne K(x) mit dem Algorithmus A;
w h i l e K(x) < n do
b e g i n x := Nachfolger von x in kanonischer O r d n u n g ;
Berechne K(x) mit dem Algorithmus A
end;
output(z)
end
Offensichtlich berechnet B~ das Wort x~ fiir a l l e n E IN. Wir beobachten,
dass alle Algorithmen B~ bis auf die Zahl n identisch sind. Sei c die L~nge des
Maschinencodes yon B~ bis auf n. D a n n ist die bin~re LS~nge von B~ h6chstens

[log 2 n] + c

fiir alle n E IN und fiir eine Konstante c unabh~ngig von n, da der Algorithmus
A eine konstante Gr6f3e hat. Well B~ das Wort z~ generiert, gilt

fiir alle n E I N - {0}. Nach der Definition von x~ gilt aber

9Wenn man K als eine Funktion von (Xbool)* nach (Y]bool)* start als Funktion von (Xbool)*
nach IN betrachtet (dies bedeutet, dass K(z) die bin~tre Kodierung der Kolmogorov-
Komplexit~t von z w~re), dann besagt Satz 5.11, dass die Funktion K nicht total rekursiv
ist.
5.6 Die Methode der Kolmogorov-Komplexit~t 201

fiir a l l e n E I N - {0}. Die Ungleichung

[log + > >

kann hSchstens ftir endlich viele Zahlen n E I N - {0} gelten und somit ha-
ben wir einen Widerspruch zu der Voraussetzung, dass ein Algorithmus A zur
Berechnung von K(x) existiert. D

Aufgabe 5.31. Beweisen Sie, dass das Problem, fiir jede Zahl n E IN- {0} das erste Wort
xn mit K(xn) >_n zu generieren, ein algorithmisch unlSsbares Problem ist.

Um zu zeigen, dass m a n mittels der Reduktionsmethode zum Beweis der Un-


entscheidbarkeit der grundlegenden Sprachen wie Lu, LH, Lempty usw. iiberge-
hen kann, reduzieren wir die Berechnung der Funktion K auf das Halteproblem.
Das folgende L e m m a bietet einen alternativen Beweis der Tatsache LH ~ Z;R
aus dem Satz 5.8.

Lemma 5.12. Falls LH E s dann existiert ein Algorithmus zur Berechnung


der Kolmogorov-Komplexitiit K(x) fiir jedes x E (Ebool)*.

Beweis. Sei LH E Z;R und sei H ein Algorithmus, der LH entscheidet. Der
folgende Algorithmus A (Fig. 5.22) berechnet K ( x ) fiir jedes x E (Ebool)*.
A generiert in kanonischer Folge die WSrter Wl, w2, w3, .... Fiir jedes i fiber-
priift A, ob wi die binSze Kodierung eines Pascal-Programmes M ist (Fig.
5.22). Falls wi = K o d ( M ) fiir ein Pascal-Programm M, wendet A das Teilpro-
g r a m m H an, um festzustellen, ob M auf dem Wort A hS~lt. Falls M auf dem
Wort A h~lt, simuliert A die Arbeit von M auf A (Fig. 5.22). Falls M mit der
Ausgabe u = M(A) endet, iiberpriift A, ob u = x. Falls u = x, dann gibt A
die Ausgabe K ( x ) = Iw~I aus.
Wenn Iwil die Ausgabe yon A ftir die Eingabe x ist, dann ist wi das kiirzeste
Wort mit der Eigenschaft wi = K o d ( M ) fiir ein Pascal-Programm M, und
M generiert x. Damit hat A die Kolmogorov-Komplexitgt von x tats~chlich
bestimmt. D

Aufgabe 5.32. Beweisen Sie folgende Aussagen:


(i) Falls Lu c s dann existiert ein Algorithmus zur Berechnung von K(x) fiir jedes
X C (Y]bool)*"
(ii) Falls Lempty E s dann existiert ein Algorithmus zur Berechnung von K(x) ftir jedes
x E (2bool)*.
202 5 Berechenbarkeit

Algorithmus A x E {0,1}*
mit A(x) - K ( x )
fiir alle x E {0, 1}* Ir
x
Ir
ein Generator ftir
W l ~ W2~ W3~ 9 9 9

i-i+1 wi
Ir

NEIN Testen, ob
F wi = K o d ( M ) ftir ein
Pascal-Programm M
A K o d ( M ) = wi
Ir Ir

TM H
L ( H ) = LH

NEIN JA
M hS~lt nicht
auf A
Simulation von
M auf A
~(~)

Testen, ob
~(~)-~

NEIN JA

IKod(M)l

Fig. 5.22
5.7 Zusammenfassung 203

5.7 Zusammenfassung

Die beweistechnischen Grundlagen der Theorie der Berechenbarkeit liegen in


der Mengenlehre. Die grundlegenden Konzepte sind

9 der Vergleich von unendlichen Zahlen,


9 die Methode der Diagonalisierung und
9 die Methode der Reduktion.

Eine Menge A hat eine M~chtigkeit, die mindestens so grog ist wie die Mgchtig-
keit einer Menge B, wenn eine injektive Abbildung von B nach A existiert. Fiir
jede unendliche Menge A gilt I A I - IA • A und daher IINI - I Q + I . Die kleinste
unendliche Menge ist IN, und jede Menge 6' mit 16'1 _< IINI heii3t abzghlbar.
Jede Menge B mit IBI > IINI heit3t nicht aufghlbar.
Die Menge aller Turingmaschinen (Programme) ist abzghlbar, und die Menge
aller Sprachen (Probleme) ist nicht abz/~hlbar. Damit sind die meisten Pro-
bleme nicht algorithmisch 16sbar. Falls IAI < IBI ffir zwei unendliche Mengen
A und B gilt, erm6glicht uns die Diagonalisierungstechnik, ein Element aus
B - A zu konstruieren.
Eine Sprache L, die von einer Turingmaschine akzeptiert wird, heit3t rekur-
siv aufzghlbar. Eine Sprache L mit L = L(M) ftir eine TM M, die auf jeder
Eingabe in qaccept oder qrej~ct hglt, heif3t rekursiv oder auch entscheidbar. Die
Diagonalisierungsmethode erm6glicht es uns, eine Sprache Ldiag , Diagonalspra-
che genannt, zu konstruieren, die nicht rekursiv aufzghlbar ist.
Mit Hilfe der Methode der Reduktion kann man zeigen, dass einige Probleme
beztiglich Rekursivitgt mindestens so schwer wie Ldiag und damit nicht rekur-
siv sind. Die wichtigsten Beispiele nichtrekursiver Entscheidungsprobleme sind
die universelle Sprache und das Halteproblem. Die universelle Sprache enthglt
alle W6rter, die eine TM M und ein Wort w kodieren und w E L(M). Das
Halteproblem ist zu entscheiden, ob ftir eine TM M und ein Wort w die TM
M auf w hglt.
Der Satz von Rice besagt, dass jedes nichttriviale Entscheidungsproblem nicht
rekursiv ist. Daher gibt es keine Algorithmen zum Testen von Programmen
auf Korrektheit und Terminierung. Mit der Methode der Reduktion kann man
Beweise der Unentscheidbarkeit auch aut3erhalb der Welt der Probleme fiber
Turingmaschinen f/ihren. Ein Beispiel hierf/ir ist das Post'sche Korrespondenz-
problem.
204 5 Berechenbarkeit

Die Motivation, die Entscheidbarkeit und Unentscheidbarkeit zu studieren,


s t a m m t urspriinglich von dem bekannten Mathematiker David Hilbert. An-
fang des 19. Jahrhunderts formulierte er einen Forschungsplan, dessen Ziel die
Entwicklung eines Formalismus war, in dem man alle mathematischen Pro-
bleme 16sen k6nnte. Kurt G6del [G6d 31] bewies 1931, dass der Hilbert'sche
Plan nicht realisierbar ist, weil jede mathematische Theorie, die mindestens die
Prgdikatenlogik erster Stufe enthglt, unentscheidbar ist. Diese fundamentale
Arbeit [GSd 31] fiihrte zur Formalisierung des Begriffs Algorithmus und legte
die Grundlage der Theorie der Berechenbarkeit.
Die Unentscheidbarkeit der universellen Sprache hat Turing in [Tur 36] be-
wiesen. In [Ric 53] verSffentliche Rice den nach ihm benannten Satz. Die Un-
entscheidbarkeit des Post'schen Korrespondenzproblems wurde von Post in
[Pos 46] gezeigt.
Als weiterfiihrende Literatur fiber die elementaren Grundlagen der Theorie der
Berechenbarkeit hinaus empfehlen wir w~rmstens die entsprechenden Kapitel
in [HU 79, HMU 01, Sip 97].
Wenn m a n die EE-Reduktion benutzt, um die Aquivalenz zwischen Proble-
men beztiglich der RekursivitS~t zu definieren, zerf~llt die Menge der nicht-
rekursiven Sprachen in unendlich viele Klassen s i = 1, 2, .... Wenn eine
Sprache L in/2i ist, bedeutet dies, dass L nicht entscheidbar bleiben wiirde,
auch wenn wir fiir alle unentscheidbaren Probleme aus den Klassen s s
s Algorithmen hS~tten. Interessanterweise gibt es praktische Probleme, die
in h6here Klassen dieser Hierarchie geh6ren. Fiir eine Vertiefung der Theorie
der Berechenbarkeit empfehlen wir die klassischen B/icher yon Trakhtenbrot
[Tra 63] und Rogers [Rog 67].

Kontrollaufgaben
1. Erkl~ren Sie das Cantor'sche Konzept zum Vergleich der M~chtigkeiten zweier Men-
gen. Warum betrachten wir dieses Konzept als natiirlich?
2. Was ist der Hauptunterschied zwischen endlichen und unendlichen Mengen? (Oder
wie wfirden Sic eine unendliche Menge definieren?)
3. Wann ist eine Menge abz~hlbar? Geben Sie mehrere Beispiele von abz~hlbaren Men-
gen an. Wann ist ein Sprache rekursiv und wann ist sie rekursiv aufz~hlbar?
4. Warum ergibt das kartesische Produkt zweier abzS~hlbarer Mengen eine abzS~hlbare
Menge?
5. Erkl~ren Sie die Diagonalisierungsmethode. Beweisen Sie, dass es Sprachen gibt, die
keine endliche Darstellung haben.
6. Die reellen sowie die rationalen Zahlen liegen auf der Zahlenachse. Beide Zahlenmen-
gen Q und IR haben die Eigenschaft, dass zwischen zwei beliebigen Zahlen unendlich
5.7 Zusammenfassung 205

viele Zahlen aus dieser entsprechenden Menge liegen. Trotzdem gibt es mehr reelle
Zahlen als rationale Zahlen (IQI < IIRI) 9
Wie ist das mOglich? Was ist der Hauptunterschied zwischen rationalen und reellen
Zahlen bez/iglich ihrer Darstellungsm6glichkeiten?
Wann sagen wit, dass eine Sprache L1 auf eine Sprache L2 reduzierbar ist? Wie
wendet man das Konzept der Reduzierbarkeit an, um zu zeigen, dass eine Sprache
nicht rekursiv ist?
Sei f ( x ) = c eine konstante Funktion yon IN nach IN fiir eine Konstante c E IN. Bewei-
sen Sie, dass es fiir eine gegebene TM (ein gegebenes Programm) nicht entscheidbar
ist, ob sie (es) die Funktion f berechnet.
Wie baut man eine Instanz des modifizierten Post'schen Korrespondenzproblems f/it
eine gegebene Turingmaschine?
10. Um das erste nichtrekursive Problem zu finden, wendet man iiblicherweise die Dia-
gonalisierungsmethode an. Wie kann man dies ohne die Diagonalisierungsmethode
schaffen?
11. Die Kolmogorov-Komplexitgt eines Wortes ist wohl definiert. Warum kann man sie
nicht algorithmisch fiir jedes Wort bestimmen?
12. Beweisen Sie folgende Aussagen.
(i) Wenn man f/ir jede Zahl n E IN die Kolmogorov-Komplexitgt K(n) bestimmen
k6nnte, dann w/~re LH E /ZR.
(ii) Falls K(n) f~r jede Zahl n E IN algorithmisch berechenbar ist, dann ist Lu
rekursiv (entscheidbar).
13. Betrachten Sie die Sprache

LKol = {(w,x) I K(w) <_Nurnrner(x), w,x E {0,1}*}.


Beweisen Sie dass LKol unentscheidbar ist. Ist LKol rekursiv aufzghlbar?
Es gibt keinen grSBeren Schaden
als verlorene Zeit.
Michelangelo

6 Komplexit itstheorie
Z:
6.1 Zielsetzung

Die Theorie der Berechenbarkeit liefert uns Methoden zur Klassifizierung von
Problemen beziiglich ihrer algorithmischen LSsbarkeit. So ist ein Problem algo-
rithmisch 15sbar, wenn ein Algorithmus zur LSsung dieses Problems existiert,
und ein Problem ist algorithmisch unlSsbar, wenn kein Algorithmus fiir dieses
Problem existiert.

Die KomplexitS~tstheorie ist eine Fortsetzung der Theorie der Berechenbarkeit


in dem Sinne, dass sie eine feinere Einteilung der Klasse algorithmisch 15sba-
rer Probleme anstrebt. In den sechziger Jahren, als der Einsatz von Rechnern
zur LSsung von Problemen nicht mehr nur auf ein paar Forschungsinstitute
beschrS~nkt war, stellte man fest, dass alleine die Existenz eines Algorithmus
zur LSsung eines Problems noch keine Garantie fiir eine erfolgreiche rechnerun-
terstiitzte LSsung des Problems ist. Es gab viele praxisrelevante, algorithmisch
15sbare Probleme, fiir die alle entworfenen Programme tagelang auf gegebenen
Eingaben ohne Erfolg arbeiteten. In solchen Fgllen stiirzte der Rechner ab,
bevor er zu irgendeinem Resultat kam. Dies warf die Frage auf, ob dieser Mis-
serfolg eine Folge unserer Unf~ihigkeit ist, einen effizienten Ansatz zur LSsung
des betrachteten Problems zu finden, oder aber, ob es sich um eine inh~rente
Eigenschaft des Problems handelt, die keine effiziente algorithmische LSsung
des Problems zul~sst. Dies fiihrte dazu, dass man anfing, die Schwierigkeit der
algorithmisch 16sbaren Probleme beziiglich des Rechenaufwandes zu messen,
um so die Probleme nach deren Schwierigkeitsgrad zu klassifizieren.

Die KomplexitS~tstheorie ist die Theorie der quantitativen Gesetze und Gren-
zen der algorithmischen Informationsverarbeitung. Diese Theorie hat auch ei-
ne physikalische Dimension. Zum Beispiel hS~lt man ein 15shares Problem f/ir
,,praktisch unlSsbar", wenn die praktische Ausfiihrung eines Algorithmus zur
6.1 Zielsetzung 207

L6sung des Problems mehr Energie brSouchte, als es im ganzen bekannten Uni-
versum gibt. Die Hauptziele der Komplexit~ttstheorie sind:

(i) Die Bestimmung der BerechnungskomplexitSoten (ZeitkomplexitSot als die


Anzahl der Rechenoperationen, Speicherplatzkomplexit~t) konkreter Proble-
me.

(ii) Die Spezifikation der Klasse ,,praktisch '~ (effizient) 16sbarer Probleme und
die Entwicklung von Methoden zur Klassifikation der algorithmisch 16sbaren
Probleme in ,,praktisch 16sbare" und ,,praktisch unl6sbare".

(iii) Vergleiche der Ettizienz (der Berechnungsst~rke) yon deterministischen,


nichtdeterministischen und zufallsgesteuerten (randomisierten) Algorithmen.

In unserer ersten Begegnung mit der KomplexitS~tstheorie in diesem Kapitel


beschr~tnken wir uns auf folgende Zielsetzung. In Abschnitt 6.2 lernen wir,
wie man die Komplexit~tsmafie in dem Berechnungsmodell der Turingmaschi-
ne definiert (d.h. wie man die Komplexit~tt misst) und welche Eigenschaften
diese Marie haben. In Abschnitt 6.3 definieren wir die grundlegenden Komple-
xitSotsklassen als Klassen yon Sprachen, die mit der gegebenen KomplexitSot
entscheidbar sind. Hier diskutieren wir auch die Spezifikation der Klasse prak-
tisch 16sbarer Probleme. In Abschnitt 6.4 zeigen wir, wie man die Komple-
xit~t von nichtdeterministischen Berechnungen misst, und wir definieren die
fundamentalen nichtdeterministischen KomplexitS~tsklassen. Abschnitt 6.5 ist
dem Vergleich der Effizienz yon deterministischen und nichtdeterministischen
Berechnungen gewidmet. Dieser Vergleich beriihrt die philosophischen Grund-
lagen der Mathematik. Wir zeigen, dass die Komplexit~t von nichtdetermi-
nistischen Berechnungen der Komplexit~tt des deterministischen Verifizierens
(Korrektheitspriifung) eines gegebenen mathematischen Beweises entspricht,
und dass die deterministische KomplexitSot der KomplexitSot der Herstellung
eines mathematischen Beweises entspricht. Damit ist die Frage, ob nichtdeter-
ministische Algorithmen effizienter als die deterministischen Algorithmen sein
k6nnen, 5,quivalent zu der Frage, ob es einfacher ist, mathematische Beweise
algorithmisch zu verifizieren als sie algorithmisch herzustellen. Abschnitt 6.6
stellt das Konzept der NP-VollstSondigkeit vor, das uns eine Methode zum Be-
weisen gewisser Schwierigkeitsgrade konkreter Probleme beziiglich praktischer
L6sbarkeit liefert.
208 6 Komplexit~ttstheorie

6.2 Komplexit itsmaBe

Zur Definition der Komplexit~tsmafie benutzen wir das Modell der Mehrband-
Turingmaschine. Die Gr~nde daf/ir sind, dass dieses Berechnungsmodell einer-
seits einfach genug ist und andererseits dem grundlegenden Rechnermodell
der von-Neumann-Maschine entspricht. Wie wir spgter sehen werden, ist das
Modell der Mehrband-Turingmaschine f/ir die Komplexit/~tsmessung robust
genug in dem Sinne, dass die fundamentalen Resultate fiber derart definier-
ter Komplexit/~t auch fiir die Komplexit/~t der Ausfiihrung von Programmen
in beliebigen Programmiersprachen g~ltig sind. Damit sind sie insbesondere
von allgemeiner Giiltigkeit fiir die Klassifizierung von Problemen in ,,praktisch
15sbare" und ,, praktisch unlSsbare".
Hier definieren wir zwei grundlegende KomplexitgtsmaBe- die Zeitkomplexitgt
und die Speicherplatzkomplexit~t. Die Zeitkomplexitgt einer Berechnung ent-
spricht der Anzahl der elementaren Operationen, die in dieser Berechnung
ausgefiihrt werden. Damit steht sie in linearer Beziehung zu der Energie, die
die Ausf/ihrung der Berechnung auf einem Rechner kosten wtirde. Die Spei-
cherplatzkomplexitgt ist die GrSfie des benutzten Speichers, ausgedrtickt in
der Anzahl der gespeicherten Rechnerw6rter. In den auf Turingmaschinen ha-
sierten Modellen bestimmt das Arbeitsalphabet die Gr6fie des Rechnerwortes,
weil die Symbole des Arbeitsalphabetes genau die erlaubten Inhalte der Rech-
nerw6rter darstellen.

D e f i n i t i o n 6.1. Sei M eine Mehrband-Turingmaschine oder TM, die i m m e r


hiilt. Sei E das Eingabealphabet von M . Sei x E E* und sei D = C1, C 2 , . . . , C~
die Berechnung von M auf x. Dann ist die Zeitkomplexit~it T i m e M ( x ) d e r
B e r e c h n u n g von M a u f x definiert dutch

T i m e M ( x ) = k - 1,

d.h. dutch die Anzahl der Berechnungsschritte in D.


Die Zeitkomplexit~it von M ist die Funktion TimeM : IN --+ IN, definiert
dutch

T i m e M ( n ) = m a x { T i m e M ( x ) [ x E E~}.

Wir bemerken, dass TimeM(n) fiir jedes n E IN die minimale Zeitkomple-


xitgt ist, mit der M jede Probleminstanz der Lgnge n 16st. Anders ausge-
driickt ist TimeM(n) die ZeitkomplexitS~t der lgngsten Berechnung auf Ein-
gaben der L~tnge n (auf der ,,schwersten" Probleminstanz aus E~). Deswegen
6.2 Komplexitgtsmafie 209

nennt man diese Art der KomplexitS~tsmessung ,,die Komplexitgt im schlech-


testen Fall". Eine andere MSglichkeit wgre z.B., die durchschnittliche Kom-
plexitS~t auf W6rtern der LS~nge n zu betrachten. Die zwei Hauptgriinde ffir
die Art der Messung aus Definition 6.1 sind folgende. Die Menschen wollen oft
die maximale Sicherheit haben, und die KomplexitS~t im schlechtesten Fall gibt
uns die Garantie, dass jede Eingabe (Probleminstanz) der GrSfie n durch M in
TimeM(n) gelSst wird. Der andere praktische Grund ist, dass die Analyse der
KomplexitS~t eines Algorithmus im schlechtesten Fall meist einfacher ist als ei-
ne KomplexitS~tsanalyse im durchschnittlichen Fall. Wir werden uns deswegen
in diesem Buch auf die KomplexitS~t im schlechtesten Fall beschrS~nken.

D e f i n i t i o n 6.2. Sei k E I N - {0}. Sei M eine k-Band-Turingmaschine, die


i m m e r hiilt. Sei

C - (q, x, i, ctl, il, ct2, i 2 , . . . , c~k, ik)


mit 0 <_ i <_ Izl + 1 ~ d 0 <_ ij <_ I jl + 1 fiir j - 1 , . . . , k

eine Konfiguration von M . 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 C ist 1

S p a c e M ( C ) -- max{lctil I i - 1 , . . . , k}.

Sei C1, C 2 , . . . , C1 die Berechnung von M a u f x. Die S p e i c h e r p l a t z k o m p l e -


xitfit v o n M a u f x ist

S p a c e M ( x ) -- max{SpaceM(Ci) l i - 1 , . . . , 1}.

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 eine Funktion Space M 9 IN ~ IN


definiert dutch

S p a c e M ( n ) - - m a x { S p a c e M ( x ) l x E E~}.

Es kSnnte iiberraschen, dass wir die Speicherplatzkomplexit~t einer Konfigura-


tion als die maximale beschriftete LS~nge eines Arbeitsbandes statt der Summe
der beschrifteten LS~ngen aller ArbeitsbSonder definiert haben. Im Prinzip ist es
egal, welche der beiden M6glichkeiten man zur Definition der Speicherplatz-
komplexitgt verwendet. Lemma 4.2 sagt uns, dass man k B~nder mit einem
Band simulieren kann. Dabei ist die beschriftete LS~nge des Bandes genau das
Maximum der beschrifteten LS~ngen der simulierten BSmder. Diese Beobach-
tung ffihrt uns zur folgenden Aussage.
1Man bemerke, dass die Speicherplatzkomplexit~it nicht yon der L~ingedes Eingabealphabets
abh~ingt.
210 6 Komplexit~tstheorie

L e m m a 6.1. Sei k eine positive ganze Zahl. Fiir jede k - B a n d - T M A die ira-
mer hiilt, existiert eine iiquivalente l - B a n d - T M B, so dass

Space B (n) _< Space A(n).

Der Grund fiir diese Eigenschaft der SpeicherplatzkomplexitS~t ist, dass die
M~chtigkeit des Arbeitsalphabetes von M (die Lgnge der Rechnerwortes) kei-
nen Einfluss auf SpaceM(n) hat. Daher ist diese Definition nicht zur Untersu-
chung von Unterschieden in der Gr6fie eines konstanten multiplikativen Faktors
geeignet.

L e m m a 6.2. Sei k eine positive ganze Zahl. Fiir jede k - B a n d - T M A existiert

Space B(n) _< SpaceA2(n) + 2 .

Beweis. Wir liefern nur die Idee des Beweises. Sei F A das Arbeitsalphabet von
A. Wir konstruieren das Arbeitsalphabet F B von B, so dass F B alle Symbole
aus F A x F A enthglt. Wenn a,, a 2 , . . . , a,~ der Inhalt d e s / - t e n Bandes von A
ist, i E {1, 2 , . . . , k}, und der Kopf auf c~j zeigt, enthglt das i-te Band von B
das Wort

falls m gerade ist, und

falls m ungerade ist. Der Kopf des Bandes zeigt auf das Tupel, das cti enth/ilt 2,
und in dem Zustand speichert B, auf welches der zwei Symbole in dem Tupel
der Kopf auf dem /-ten Band von A zeigt. Offensichtlich ist es fiir B kein
Problem, die Schritte von A einen nach dem anderen zu simulieren, und die
Speicherplatzkomplexitgt von B ist h6chstens 1 + [SpaceA(n)/2 ] . D
Durch iterative Anwendung von Lemma 6.2 ist es m6glich, fiir jede Kon-
stante k und jede Mehrband-Turingmaschine M eine 5~quivalente Mehrband-
Turingmaschine zu bauen, die eine k-real kleinere SpeicherplatzkomplexitS~t als
M hat.
2Dies ist (~{~+1),falls i ungerade, und (~71), falls i gerade ist.
6.2 Komplexitgtsmage 211

Die Situation bei der ZeitkomplexitS~t ist 5~hnlich. Bei der Messung geht die
Gr6t3e des Arbeitsalphabetes auch nicht ein. Transitionen fiber m~chtigen A1-
phabeten entsprechen aber zweifellos komplizierteren Operationen als Tran-
sitionen fiber kleineren Alphabeten. Dies ffihrt auch zu der M6glichkeit, die
Arbeit yon Mehrband-Turingmaschinen um einen konstanten Faktor zu be-
schleunigen, wie es in der folgenden Aufgabe formuliert wird.

Aufgabe 6.1. Beweisen Sie die folgende Behauptung:


Sei M eine Mehrband-Turingmaschine, die immer hglt. Dann existiert eine zu M gquivalente
Mehrband-Turingmaschine A mit

TimeA(n) < Ti
(~__meM,n, + 2n.
- 2

Die Aussagen des Lemmas 6.2 und der Aufgabe 6.1 zeigen, dass die vorgestell-
te Art der Komplexit~tsmessung relativ grob ist. Fiir unsere Ziele entsteht
dadurch kein Nachteil, weil die Unterschiede zwischen den KomplexitS~tsma-
gen unterschiedlicher Berechnungsmodelle oft sogar gr6ger sind, als man durch
einen konstanten Faktor ausdrficken kann, und wir sind primgr an Resultaten
interessiert, die ffir alle verniinftigen Maschinenmodelle gelten. Deswegen ist
uns das asymptotische Verhalten der Funktionen TimeM und Space M wichti-
ger als eine genaue Bestimmung derer Funktionswerte. Ffir die asymptotische
Analyse yon KomplexitS~tsfunktionen benutzen wir die iibliche f~-, O-, (~- und
o-Notation.

D e f i n i t i o n 6.3. Fiir jede Funktion f " IN ~ IR + definieren wit

{r" IN ~ IR+ [ 3n0 E IN, 3c E IN, so dass


> < f }

Fiirjede Funktion r E O ( f (n)) sagen wit, dass r a s y m p t o t i s c h n i c h t schnel-


ler w~ichst als f .
Fiir jede Funktion g" IN -+ IR + definieren wir

{s" IN --~ IR + [3n0 C IN, 3d E IN, so dass


1
fiir alle n > no" s(n) _> ~ - g ( n ) } .

Fiir jede Funktion s C f~(g(n)) sagen wit, dass s a s y m p t o t i s c h m i n d e s t e n s


so schnell w~ichst wie g.
212 6 Komplexit~tstheorie

Fiir jede Funktion h" IN ~ IR + definieren wit

O(h(n)) - {q" IN ~ IR + [ 3c, d, no E IN, so dass fiir a l l e n >_ no "


1
_< _<
= n

Falls g E ~)(h(n)) sagen wir, dass g und h a s y m p t o t i s c h gleich sind.


Seien f u n d g zwei Funktionen yon IN nach IR +. Falls

lira f (n) O,

dann sagen wir, dass g a s y m p t o t i s c h schneller w ~ i c h s t als f u n d wir


sch iben f ( n ) -- o ( g ( n ) ) .

Aufgabe 6.2. Welche der folgenden Aussagen sind korrekt? Begriinden Sie Ihre Antwort.

(i) 2~ E 0(2 ~+a) fiir jede positive Konstante a E IN.


(ii) 2b~ E 0(2 n) fiir jede positive Zonstante b E IN.
(iii) log b n E O(log c n) fiir alle reellen Zahlen b, c > 1.
(iv) ( n + 1)! E O(n!).
(v) log(n!) c O(n. logn).

Aufgabe 6.3. Beweisen Sie fiir alle Funktionen f u n d g : IN ~ IR+, dass folgende Aussagen
gelten:
(i) f E O(g) und g E O(h) impliziert f E O(h).
(ii) f E O(g) ~=>g E ft(f).
(iii) f c (~(g) e=> g c O ( f ) e=~ O ( f ) = O(g).

B e t r a c h t e n wir jetzt die T M M aus Fig. 4.5, die die Sprache LMitte akzeptiert.
M 15~uft v o m linken his z u m rechten R a n d des B a n d e s u n d zuriick u n d bewegt
dabei den linken R a n d ein Feld nach rechts u n d den rechten R a n d ein Feld nach
links. Auf diese Weise b e s t i m m t M das m i t t l e r e Feld. Die Z e i t k o m p l e x i t g t von
TimeM von M ist offensichtlich in O(n2).

Aufgabe 6.4. Bestimmen Sie fiir die TM aus Fig. 4.5 TimeM(n) genau.

Aufgabe 6.5. Entwerfen Sie eine 1-Band-Turingmaschine B mit L(B) - - LMitte und Time. (n) E
o(~)
Aufgabe 6.6. Analysieren Sie asymptotisch die Zeitkomplexit~t der TM A aus Fig. 4.6,
die die Sprache L7) akzeptiert.
6.2 Komplexitgtsmafie 213

Die 1-Band-Turingmaschine A aus Fig. 4.10 akzeptiert die Sprache Lgleich =


{wCpw I w E (Eboo~)*}, indem das Prefix des Eingabewortes his zum # auf das
Arbeitsband kopiert und dann der Inhalt des Arbeitsbandes mit dem Suffix
des Eingabewortes nach dem # verglichen wird. Offensichtlich ist TimeA(n) _<

Aufgabe 6.7. Entwerfen Sie eine 2-Band-Turingmaschine M mit den Eigenschaften L(M) -
n 2
Lgleich, TimeM(n) E 0(lo--Q-~2
~) und SpaceM(n) E O(log2 n).

Bis jetzt haben wir die Zeitkomplexitgt und die Speicherplatzkomplexit~t von
Mehrband-Turingmaschinen definiert. Was uns aber primS~r interessiert, ist
die KomplexitS~t von Problemen, um sie nach dieser KomplexitS~t klassifizie-
ren zu k6nnen. Intuitiv wtirde man gerne sagen, dass die ZeitkomplexitS~t
eines Problems U der ZeitkomplexitS~t einer asymptotisch optimalen MTM
M (eines optimalen Algorithmus) fiir U entspricht. Unter der (asymptoti-
schen) OptimalitS~t von M versteht man, dass f/Jr jede MTM A, die U 16st,
TimeA(n) E f~(TimeM(n)) gilt (d.h. es existiert keine MTM ffir U, die asym-
ptotisch besser als M i s t ) . Die Idee wgre also, die KomplexitS~t eines Problems
als die Komplexitgt des ,,besten" Algorithmus ftir dieses Problem zu betrach-
ten. Obwohl diese Idee natiirlich und verniinftig aussieht, zeigt folgender Satz,
dass man sie nicht zur Definition der Komplexitgt im Allgemeinen benutzen
kann. Wegen des hohen Schwierigkeitsgrades verzichten wir auf einen Beweis.

S a t z 6.1. Es ezistiert ein Entscheidungsproblem (L, }--]%ool), 8 0 dass fiir jede


MTM A, die (L, Ebool) entscheidet, eine MTM t3 existiert, die (L, Ebool) auch
entscheidet, und fiir die gilt

TimeB(n) _< log2(TimeA(n))

fiir unendlich viele n E IN.

Satz 6.1 besagt, dass es Probleme gibt, fiir die man jeden gegebenen Algo-
rithmus fiir dieses Problem wesentlich verbessern kann 3. Dies bedeutet, dass
fiir solche Probleme keine optimalen Algorithmen existieren und man deshalb
fiir diese Probleme die Komplexit~tt nicht in dem oben beschriebenen Sinne
definieren kann. Deswegen spricht man in der KomplexitSotstheorie nur fiber
obere und untere Schranken f/Jr die KomplexitS~t eines Problems im Sinne der
folgenden Definition.

aMan bemerke, dass diese VerbesserungsmSglichkeit nach Satz 6.1 zu einer unendlichen Folge
von Verbesserungen fiihrt.
214 6 Komplexit~tstheorie

D e f i n i t i o n 6.4. Sei L eine Sprache. Seinen f und g zwei Funktionen yon IN


nach IR +. Wir sagen, dass O(g(n)) eine obere Schranke ffir die Zeitkom-
plexit~it v o n L ist, falls eine MTM A existiert, so dass A die Sprache L
entscheidet und TimeA(n) E O(g(n)).
Wir sagen, dass ~ ( f (n)) eine untere Schranke ffir die Zeitkomplexit~it
v o n L ist, falls fiir jede MTM B, die L entscheidet, TimeB(n) E ~ ( f ( n ) ) .
Eine MTM C heiflt o p t i m a l m r L, falls Timec(n) E O(f(n)) und f~(f(n))
eine untere Schranke fiir die Zeitkomplexitiit von L i s t .

Die Bestimmung einer oberen Schranke fiir die Zeitkomplexitgt eines Problems
ist meistens nicht sehr schwer, weil es hinreichend ist, einen Algorithmus zur
LSsung des Problems zu finden. Eine nichttriviale untere Schranke fiir die Kom-
plexit~t konkreter Probleme zu beweisen, gehSrt zu den technisch schwierigsten
Aufgaben der Informatik, weil dies einen Beweis der Nichtexistenz eines effi-
zienten Algorithmus fiir das betrachtete Problem erfordert. Wie schwer diese
Aufgabe ist, kann man damit illustrieren, dass wir tausende Probleme ken-
nen, fiir die die besten bekannten Algorithmen exponentielle Zeitkomplexitgt
beziiglich der Eingabel~nge haben, aber die hSchsten uns bekannten unteren
Schranken fiir diese Probleme auf Mehrband-Turingmaschinen nur ~(n) sind.
Wir haben jetzt die Messung der Komplexitgt fiir das Studium der abstrak-
ten Komplexitgtstheorie vorgestellt. Am Ende dieses Abschnittes diskutieren
wir noch die Arten der Messung der Komplexitgt yon konkreten Programmen
(Algorithmen). Wir unterscheiden zwei fundamentale Arten der Messung- die
Messung mit uniformem Kostenmafi und die Messung mit logarith-
mischem Kostenmafi. Die Messung mit dem uniformen Kostenmal3 ist eine
grobe Messung. Die Zeitkomplexitgt ist einfach die Anzahl der durchgefiihrten
Basisoperationen wie arithmetische Operationen und Zahlenvergleiche, und
die $peicherplatzkomplexitgt entspricht der Anzahl der benutzten Variablen.
Dies bedeutet, dass der Preis jeder Operation 1 ist, unabhgngig vonder GrSI3e
der Operanden. Der Hauptvorteil der Messung mit dem uniformen KostenmaI3
liegt in ihrer Einfachheit. Diese Messung ist auch angemessen, wenn in der Be-
rechnung die Operanden die GrSI3e eines Rechnerwortes nicht fiberschreiten.
Falls aber die OperandengrSI3e w&hrend der Berechnung wgchst, entspricht die
Messung nicht mehr dem realen Rechenaufwand. Wir illustrieren dies an fol-
gendem Beispiel. Seien a _> 2 und k zwei positive ganze Zahlen. Die Aufgabe
ist, a 2k zu bestimmen. Dies kann man mit dem Programm

f ori-- 1 to kdo a'--a.a


6.3 Komplexittitsklassen und die Klasse P 215

berechnen. Das Programm berechnet tatsS~chlich mit den folgenden k Multi-


plikationen
a 2 "-- a 9 a, a 4 -- a 2 9 a 2, a s -- a 4 9 a 4, ..., a 2k - - a 2k-1 9 a 2k-1

den Wert a 2k. Bei der Messung mit uniformem Kostenmafi ist die Speicher-
platzkomplexit~t also 3 und die Zeitkomplexit~t O(k). Wir brauchen aber real
mindestens 2k Bits, um das Resultat zu speichern und mindestens gt(2 k) Ope-
rationen fiber RechnerwSrtern (Zahlen mit bingrer Darstellung der Lgnge 32
oder 16) fester GrSfie, um die Berechnung auf einem Rechner zu realisieren.
Weil diese Uberlegung fiir jedes k stimmt, bekommen wir einen exponentiel-
len Unterschied zwischen der uniformen Komplexittit und der tatstichlichen
Berechnungskomplexittit.
Wenn die GrSfie der Operanden in den betrachteten Berechnungen wachsen
kann, benutzt man die Messung mit dem logarithmischen Kostenmafi, die eine
sehr genaue Messung auf der Ebene von Bits ist. Die Kosten einer Operation
misst man als die Summe der Lgngen der bin~iren Darstellungen der in den
Operationen vorkommenden Operanden, und die ZeitkomplexitS~t einer Be-
rechnung ist die Summe der Preise der in der Berechnung durchgefiihrten Ope-
rationen. Die Speicherplatzkomplexittit ist die Summe der Darstellungslgngen
der Inhalte der benutzten Variablen. Die Messung mit logarithmischem Ko-
stenmafi ist immer realistisch, sie kann nur manchmal sehr aufwendig sein.

6.3 Komplexitiitsklassen und die Klasse P

Fiir die Definition yon KomplexitS~tsklassen benutzen wir das Modell der
Mehrband-Turingmaschine. Wir betrachten hier KomplexitS~tsklassen nur als
Sprachklassen, also als Mengen von Entscheidungsproblemen.

D e f i n i t i o n 6.5. Fiir alle Funktionen f , g yon IN nach IR + definieren wir:

TIME(f) = {L(B) I B ist eine MTM mit TimeB(n) E O ( f ( n ) ) } ,


SPACE(g) = {L(A) I A ist eine MTM mit SpaceA(n ) E O(g(n))},
DLOG = SPACE(log 2 n),
P - 0 TIME(nC)'
cEIN

PSPACE - [..J SPACE(nC),


cEIN
216 6 Komplexit~tstheorie

EXPTIME = 0 TIME(2~d).
dEIN

Im Folgenden beschSfftigen wir uns mit den grundlegenden Beziehungen zwi-


schen den Komplexit/~tsklassen und den Eigenschaften der ZeitkomplexitS~t
und der SpeicherplatzkomplexitS~t.

L e m m a 6.3. Fiir jede Funktion t : IN ~ IR + gilt

TIME(t(n)) C_ SPACE(t(n)).

Beweis. Jede MTM M, die in der Zeit TimeM(n) arbeitet, kann nicht mehr
ale TimeM(n) Felder eines arbeitsbandes beschriften. Also gilt SpaceM(n ) _<
TimeM(n) fiir jede MTM M. D

Korollar 6.1. P c PSPACE

Fiir die anderen Vergleiche brauchen wir den Begriff der konstruierbaren Funk-
tionen. Die Idee dabei ist, Mehrband-Turingmaschinen zu bauen, die auf sich
selbst aufpassen in dem Sinne, dass sie gewisse Komplexit/ttsschranken in kei-
ner ihrer Berechnungen iiberschreiten.

D e f i n i t i o n 6 . 6 . Eine Funktion s :IN ~ IN heiflt p l a t z k o n s t r u i e r b a r , falls


eine I - B a n d - T M M existiert, so dass

_<
(ii) fiir jede Eingabe 0~, n E IN, generiert M das Wort 0 s(~) auf seinem
Arbeitsband und hiilt in qaccept.

Eine Funktion t : lN ~ IN heiflt z e i t k o n s t r u i e r b a r , falls eine MTM A exi-


stiert, so dass

(ii) fiir jede Eingabe 0 ~, n E IN, generiert A das Wort 0 t(~) auf dem ersten
Arbeitsband und halt in qaccept.

Die meisten gew6hnlichen monotonen Funktionen mit f(n) _> log 2(n + 1)
( f ( n ) >_ n ) s i n d platzkonstruierbar (zeitkonstruierbar). Z.B. kann eine 1-Band-
TM A die Funktion [log2(n + 1)] wie folgt konstruieren. A liest einmal 0~ auf
dem Eingabeband yon links nach rechts und speichert dabei auf dem Arbeits-
band jeweils die binS~re Darstellung der aktuellen Position des Kopfes auf dem
Eingabeband, indem A fiir jede Bewegung um ein Feld nach rechts auf dem
6.3 Komplexittitsklassen und die Klasse P 217

E i n g a b e b a n d zu dem Inhalt des Arbeitsbandes eine Eins addiert. Wenn der


Kopf auf dem E i n g a b e b a n d das erste u Symbol erreicht, d a n n hat der be-
schriftete Teil des Arbeitsbandes die LS~nge [log2(n + 1)]. Wenn m a n d a n n alle
Einsen auf dem A r b e i t s b a n d durch Nullen ersetzt, enth~ilt das A r b e i t s b a n d
das Wort 0 [1~ .
Wir beobachten, dass die B e n u t z u n g einer 1-Band-TM M in der Definition
der Platzkonstruierbarkeit unwesentlich ist, weil jede M T M mit der gleichen
Speicherplatzkomplexit~t durch eine 1-Band-TM simuliert werden kann. Eine
M T M M kann die Funktion [x/~] wie folgt konstruieren. M versucht auf
einer Eingabe 0 i fiir i - 1, 2 , . . . festzustellen, ob i 2 _< n < (i + 1) 2. Ffir ein
festes i kann die Uberpriifung wie folgt laufen. Das erste und das zweite Band
enthalten 0 i. D a n n bewegt m a n den Kopf auf dem E i n g a b e b a n d i. i-real nach
rechts, u m festzustellen, ob i - i > n i s t . Diese i - i Schritte nach rechts auf dem
E i n g a b e b a n d realisiert m a n wie folgt. Der Kopf auf dem E i n g a b e b a n d und der
Kopf auf dem ersten Band bewegen sich immer simultan nach rechts, der Kopf
auf dem zweiten B a n d bleibt stehen. Wenn der Kopf auf dem ersten Band das
Symbol u erreicht, geht er zuriick an den linken R a n d des Bandes und der
Kopf auf dem zweiten Band geht einen Schritt nach rechts. D a m i t wird der
Kopf auf dem E i n g a b e b a n d so viele Schritte nach rechts machen, dass es dem
P r o d u k t der InhaltslS~ngen der beiden ArbeitsbS~nder entspricht.

Aufgabe 6.8. Beschreiben Sie in Form von Diagrammen die zwei oben beschriebenen
Mehrband-Turingmaschinen zur Konstruktion der Funktionen [log2(n + 1)] und [v/-~].

Offensichtlich funktioniert die Idee der Multiplikation der InhaltslS~ngen von


zwei BS~ndern auch, u m zu zeigen, dass die Funktion f ( n ) - n q fiir ein belie-
biges q E IN zeitkonstruierbar ist.

Aufgabe 6.9. Beweisen Sie, dass folgende Funktionen platzkonstruierbar sind:


(i) [v/~n]q ft~r jede positive ganze Zahl q,
(ii)
(iii) |n2| f~r jede positive ganze Zahl q _> 2,
(iv) 2 n"

Aufgabe 6.10. Zeigen Sie, dass folgende Funktionen zeitkonstruierbar sind:


(i) n j fiir jedes j E I N - {0},
(ii) c. n fiir jedes c c N - {O},
(iii) 2~,
(iv) c~ fiir jedes c E I N - {0, 1}.

Aufgabe 6.11. Beweisen Sie die folgende Aussage. Wenn s(n) und t(n) zwei platzkon-
struierbare (zeitkonstruierbare) Funktionen sind, dann ist auch die Funktion t ( n ) . s(n)
platzkonstruierbar (zeitkonstruierbar).
218 6 Komplexit~tstheorie

Das nS~chste Lemma zeigt, dass es fiir jede platzkonstruierbare Funktion aus-
reicht, eine MTM M mit L ( M ) = L mit s(n)-platzbeschrgnkten Berechnungen
auf allen Eingaben aus L zu konstruieren, um die Existenz einer MTM A zu
garantieren, die ebenfalls L akzeptiert und auf allen Eingaben (also auch auf
W6rtern aus L c) die Schranke s(n) ffir die PlatzkomplexitS~t einhSJt.

L e m m a 6.4. Sei s : IN ~ IN eine platzkonstruierbare Funktion. Sei M eine


MTM ~it Sp~c~(~) _< ~(l~l) f ~ ~ZZ~9 ~ n ( ~ ) . D ~ ~ i ~ t i ~ t ~ i ~ MTM
d mit n ( d ) = L ( M ) und

sp~~(~) _< ~(~), d.h.


S P ~ A ( Y ) ~ ~(lYl) I~Z~alZ~ y ~Zb~ d~m Ei~gab~alphab~t vo~ ~ .

Beweis. Sei M eine k-Band-TM ffir ein k E I N - {0} mit SpaceM(x ) _< s(lxl)
fiir alle x E L ( M ) . Sei B eine 1-Band-TM, die s konstruiert. Wir konstruieren
eine (k + 1)-Band-TM A, die auf jeder Eingabe x folgendermagen arbeitet.

(i) A interpretiert x als 0 x und simuliert die Arbeit yon B auf 0 x auf dem
(k + 1)-ten Arbeitsband. Die Simulation endet damit, dass das Wort
0~( x ) auf das (k + 1)-te Band geschrieben wird.
(ii) A schreibt ein spezielles Symbol ~ r FM auf die s(lxl)-te Position von
allen ArbeitsbS~ndern.
(iii) A simuliert schrittweise die Arbeit yon M auf x mit den ersten k Bs
Falls M versucht, ein Feld rechts yon r auf einem der k ArbeitsbS~ndern
zu betreten, beendet A seine Berechnung in qreject- Falls M hS~lt, hS~lt A
auch in einem Zustand mit derselben Bedeutung.

Offensichtlich ist SpaceA(z ) _< ~(1~1) ffir alle Eingaben z. Wir zeigen jetzt, dass
L(A) = L ( M ) .
Falls x e L ( M ) , dann gilt SpaceM(x ) _< s(Ixl). Daher simuliert A die ganze
Berechnung von M auf x und endet in qaccept. Also x E L(A).
Wenn y ~ L ( M ) , unterscheiden wir zwei Fglle. Falls SpaceM(Y ) _< ~(lYl), dann
simuliert A die ganze Berechnung von M auf y und akzeptiert dadurch y nicht.
F~lls Sp~o~(y) > ~(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 fol-
gende 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 zeit-
konstruierbare Funkion t unwesentlich ist, ob man Space M und T i m e r einer
TM M als

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


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

oder als

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

definiert.
Das ngchste Resultat zeigt eine wichtige Relation zwischen Speicherplatzkom-
plexitgt 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 Be-
rechnung 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 Konfigu-
rationen (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)[ < 101 + 2)Irl
__ (m x{2, IQI, Irl}) 4.s(~)
< cS(~)
fiir c - (max{2, IQI, Irl}) ~.
Es ist klar, dass jede Berechnung D = (21, 6'2, 6'3,... yon M auf einem Wort
w mit Iwl- ~, die ]a~ger a]s II~Ko~fM(~)l ist, zwei identische innere Konfi-
gurationen In(C~) und In(Cj) f/Jr i < j entha]t, a u s der Definition der inneren
Konfiguration wissen wir aber, dass dann auch die entsprechenden Konfigura-
tionen Ci und Cj identisch sind. Weil M deterministisch ist, ist

D -- C1,...,Ci_I, Ci, Ci+I,...,Cj_I, Ci, Ci+I,...,Cj_I, C i . . .

eine unendliche Berechnung mit der endlosen Schleife Ci, C i + l , . . . , Cj. Deswe-
gen hat jede endliche Berechnung von M auf einer Eingabe w h6chstens die
gange IInKonfM(Iw[)[. Folgend der Definition der Speicherplatzklassen sind
alle Berechnungen yon M endlich. Somit arbeitet M in der Zeitkomplexitgt
c~(~). D
Im Folgenden zeigen wir, dass Satz 6.2 auch dann gilt, wenn man den s(n)-
platzbeschrgnkten Turingmaschinen unendliche Berechnungen erlauben wiirde.
Unter dieser Lockerung der Voraussetzungen bedeutet unsere Beobachtung ins-
besondere, dass jede akzeptierende Berechnung auf einer Eingabe der LS~nge n
h6chstens [InKonfM(n)[ lang ist.
Jetzt beschreiben wir eine 3-Band-TM A mit L ( A ) - L(M) und TimeA(n) E
O(k ~(~)) fiir eine Konstante k. Fiir jede Eingabe w arbeitet A wie folgt.
(i) A simuliert die Konstruktion von s und schreibt 0 ~( ~ ) auf das erste
Arbeitsband.
{Weil eine TM B, die s konstruiert, h6chstens s(lw[) Felder des Arbeits-
bandes benutzt, existiert eine Konstante d, so dass TimeB(n) _< d ~(~)
6.3 KomplexitSotsklassen und die Klasse P 221

gilt. Damit generiert A das Wort 0 ~(" ) auch in der Zeit d~(').}
(ii) A schreibt 0 ~('~') auf das zweite Band in c ~( ~ ) Schritten (dabei wird das
dritte Arbeitsband als Hilfsspeicher benutzt).
(iii) A simuliert die Arbeit von M auf w Schritt fiir Schritt auf dem ersten
Arbeitsband. F/Jr jeden simulierten Schritt 15scht A eine 0 auf dem zwei-
ten Band. Falls alle Nullen auf dem zweiten Band gel6scht worden sind
und die Berechnung von M auf w nicht endet, dann hSolt A in qreject.
Falls M in hachstens c~( ~ ) Schritten seine Berechnung auf w beendet,
dann endet A entsprechend in qaccept oder qreject.

Wir haben schon bemerkt, dass die Berechnungsphasen (i) und (ii) von A in
O(d ~(~)) bzw. O(c ~(~)) Zeit durchfiihrbar sind. Die Phase (iii) von A lauft
offensichtlich in Zeit O(c ~(~ )), also Timea(n) E O((max{c, d})~(~)).
Falls x E L ( M ) , dann hat die Berechnung yon i F / a u f x h6chstens die LS~nge
c ~(x) und damit akzeptiert A nach erfolgreicher Simulation der Berechnung yon
M auf x das Wort x auch. Wenn x ~ L ( M ) , dann wird x yon A offensichtlich
verworfen.

K o r o l l a r 6.2. D L O G c P und PSPACE c E X P T I M E .

Nach Korollar 6.1 und 6.2 erhalten wir die folgende fundamentale Hierarchie
von deterministischen KomplexitS~tsklassen.

D LOG c P c PSPACE c E X P T I M E .

Zu den fundamentalsten Resultaten der KomplexitSotstheorie geh6ren die fol-


genden HierachiesSotze. Die Beweise dieser SSotze basieren auf einer komplizier-
ten Anwendung der Diagonalisierungsmethode, und wir verzichten deshalb auf
die Beweise in dieser Einfiihrung.

S a t z 6.3.* Seien s l und s2 zwei Funktionen von IN nach IN mit folgenden


Eigenschaften:

82(n) > log 2 n,


(ii) S2 ist platzkonstruierbar und
=

Dann gilt SPACE(s~) ~ SPACE(s2).

S a t z 6.4.* Seien tl und t2 zwei Funktionen von IN nach IN mit folgenden


Eigenschaften:
222 6 Komplexit~tstheorie

(i) t2 ist zeitkonstruierbar und


(ii) tl(n) . log2(tl(n)) - o(t2(n)).
Dann gilt TIME(t1) c TIME(t2).

Die Hierarchiesgtze zeigen, dass es beziiglich der Komplexitgt beliebig schwere


Probleme gibt. Z.B. gibt es Probleme, die nicht in TIME(2 ~) liegen (d.h. es
existiert keine TM, die das Problem effizienter als in der Zeit 2~ 16sen kann).
Dass man dabei auf die Grenze des physikalisch Machbaren st6fJt, zeigt die
Tabelle 6.1, die das Wachstum der Funktionen 10n, 2n 2, n 3, 2~ und n! fiir die
Eingabelgngen 10, 50, 100 und 300 zeigt. Wenn die Zahlen zu grog sind, geben
wir nur die Anzahl der Ziffern ihrer Dezimaldarstellung an.
Tab. 6.1

n 10 50 100 300
f(n)
10n 100 500 1000 3000
2n 2 200 5000 20000 180000
7t 3 1000 125000 1000000 27000000
2n 1024 16 Ziffern 31 Ziffern 91 Ziffern
n! 3, 6 . 1 0 6 65 Ziffern 158 Ziffern 615 Ziffern

Setzen wir voraus, dass unser Rechner 106 Operationen in einer Sekunde
durchfiihrt. Dann braucht ein Algorithmus A mit TimeA(n) = n 3 27 Sekun-
den fiir die grSfite Eingabelgnge 300. Wenn TimeA(n) = 2~, dann braucht A
schon fiir die Eingabel~nge n = 50 mehr als 30 J ahre und fiir n = 100 mehr
als 3.1016 Jahre. Die gesch~tzte Anzahl der abgelaufenen Sekunden seit dem
Urknall ist eine Zahl mit 21 Dezimalziffern. Wenn man diese physikalische Kon-
stante als die Grenze fiir die Zeit praktisch realisierbarer Berechnungen ansieht,
dann sind die Algorithmen mit der Zeitkomplexitgt 2~ und n! nicht praktisch
durchfiihrbar fiir realistische Eingabel~ngen. Keine lineare Beschleunigung der
Rechner durch neue Technologien kann daran etwas ~ndern, weil die exponen-
tiell wachsenden Funktionen ihren Funktionswert bei jeder Verlgngerung der
Eingabel~nge um ein einziges Bit vervielfachen.
So wurde klar, dass die Probleme, die nicht unterhalb yon TIME(2 ~) liegen,
nicht praktisch 15sbar sind. Auf diese Weise entstand die fundamentale Ziel-
setzung der Komplexit~tstheorie, die Klasse der praktisch 15sbaren Probleme
zu spezifizieren und Techniken zur Klassifikation der Probleme in praktisch
15sbare und praktisch unlSsbare zu entwickeln. Im Folgenden nennen wir einen
Algorithmus A mit TimeA(n) C O(n ~) fiir eine Konstante c einen polynomi-
ellen Algorithmus.
6.3 Komplexittitsklassen und die Klasse P 223

In den sechziger Jahren haben sich die Informatiker auf folgende Spezifikation 4
geeinigt.

Ein Problem ist praktisch 15sbar genau dann wenn ein polynomiel-
ler Algorithmus zu seiner LSsung existiert. Die Klasse P ist die
Klasse der praktisch entscheidbaren Problerne.

Zu dieser Entscheidung fiihrten im Wesentlichen folgende zwei Griinde.

1. Der erste Grund basiert mehr oder weniger auf einer praktischen Erfah-
rung. Dass die Probleme, fiir die kein polynomieller Algorithmus existiert, als
praktisch unl6sbare Probleme spezifiziert werden sollen, ist aus Tabelle 6.1 er-
sichtlich. Aber ein Algorithmus mit der polynomiellen Zeitkomplexit~it n 1~176176
ist fiir realistische Eingabegr6fien noch weniger praktisch anwendbar als einer
mit der Zeitkomplexit~t 2~. Darf man also ein Problem, fiir das der beste Algo-
rithmus in der Zeit n 1~176176 lguft, als praktisch 16sbar einordnen? Die Erfahrung
auf dem Gebiet des Algorithmenentwurfs zeigt aber, dass solche Probleme in
der Praxis nicht auftreten. Wenn man fiir ein Problem einen Algorithmus A
mit TimeA(n) C O(n ~) fiir ein grofies c gefunden hat, dann gelingt es fast im-
mer, einen anderen algorithmus B m i t TimeB(n) E O(~t6), meistens sogar mit
TimeB(n) E O(n3), zu finden. Deswegen ist die Klasse P aus praktischer Sicht
nicht zu grog, und die Probleme aus P werden als praktisch 16sbar angesehen.
2. Der zweite Grund ist theoretischer Natur. Die Definition einer wichtigen
Klasse wie die der praktisch 16sbaren Probleme muss robust in dem Sinne sein,
dass sie unabh~ngig von dem in der Definition benutzten Rechnermodell ist.
Es darf nicht passieren, dass ein Problem aus Sicht der Programmiersprache
JAVA praktisch 16sbar ist, aber aus Sicht der Mehrband-Turingmaschinen
nicht. Dies wgre der Fall, wenn man versuchen wiirde, die Klasse praktisch
16sbarer Probleme als solche mit einer oberen Schranke von O(n 6) fiir die Zeit-
komplexit~t zu definieren. Aber der Begriff der Polynomialzeit-Berechnungen
und so auch der der Klasse P ist robust genug. Die Klasse der in polynomieller
Zeit 16sbaren Probleme ist die gleiche fiir jedes bekannte Berechnungsmodell
zur Symbolmanipulation mit einem realistischen ZeitkomplexitS~tsmafi. For-
real driickt man das dutch den Begriff der Polynomialzeit-Reduzierbarkeit
zwischen Berechnungsmodellen aus. Ein B e r e c h n u n g s m o d e l l J I ist a u f
ein B e r e c h n u n g s m o d e l l 73 p o l y n o m i a l z e i t - r e d u z i e r b a r , falls ein Poly-
nora p existiert, so dass fiir jeden Algorithmus A E A ein Algorithmus B E
B existiert, der das gleiche Problem wie A 16st und fiir den TimeB(n) E
4Diese Spezifikation wird heutzutage nicht mehr in genau dieser Form akzeptiert. Dieses
Thema werden wir aber ausfiihrlicher im n~tchsten Kapitel besprechen.
224 6 Komplexitgtstheorie

O(p(TimeA(n))) gilt. Aus der Erfahrung mit Beweisen von Behauptungen wie
,,A ist auf B polynomialzeit-reduzierbar" wissen wir, dass p nie schneller wach-
sen muss als n 3. Als Beispiel k6nnen wir die Modelle der Turingmaschinen und
der Mehrband-Turingmaschinen betrachten. Offensichtlich sind Turingmaschi-
nen polynomialzeit-reduzierbar auf Mehrband-Turingmaschinen und es reicht
p(n) = n zu wahlen (Lemma 4.1). Die Simulation in Lemma 4.2 zeigt, dass
Mehrband-Turingmaschinen auf Turingmaschinen polynomialzeit-reduzierbar
sind, und wir ~berlassen die genaue Analyse dem Leser.

Aufgabe 6.13. Analysieren Sie die Simulation aus dem Beweis des Lemmas 4.2 um fol-
gende Aussage zu beweisen.
Fiir jede MTM A mit TimeA(n) _> n existiert eine gquivalente TM B, so dass

TimeB(n) C O((TimeA(n))2).

6.4 Nichtdeterministische Komplexit itsmaBe

Die nichtdeterministischen Turingmaschinen (Algorithmen) k6nnen viele 5 un-


terschiedliche Berechnungen auf einer Eingabe machen. Diese k6nnen alle sehr
unterschiedliche Komplexitgten haben. Was ist dann die Komplexitgt der Ar-
beit einer nichtdeterministischen Maschine (eines nichtdeterministischen Algo-
rithmus) M auf einer Eingabe w? Wir betrachten bei nichtdeterministischen
Berechnungsmodellen die optimistische Ansicht, die besagt, dass eine nicht-
deterministische 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 mi-
nimaler 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 rich-
tigen 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 definie-
Fen

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 die Funktion Space M 9 IN --+ IN


definiert dutch

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) = { L ( M ) I M ist eine nichtdeterministische MTM


mit TimeM(n) E O ( f ( n ) ) } ,
NSPACE(g) = { L ( M ) I M ist eine nichtdeterministische MTM
mit SpaceM(n ) r O(g(n))},
NLOG = NSPACE(log 2 n),
NP - 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) <_ d. t(n) fiir eine Konstante d und alle geniigend
grogen n. Dies bedeutet, dass ftir jedes gentigend lange x E L ( M ) eine akzep-
tierende Berechnung Cx yon M auf x yon h6chstens der Ltinge d't(lxl) existiert.
Weil in d. t(n) Schritten h6chstens d. t(n) Felder eines Arbeitsbandes besucht
werden, ist SpaceM(Cx ) <_ d. t(l~l). Damit ist aber SpaceM(n ) <_ d. t(n) fiir
alle geniigend grogen n, also L E NSPACE(t).
(ii) Sei L E NSPACE(s). Dann existiert eine nichtdeterministische MTM A
mit L - L ( M ) und SpaceA(x ) _< d . ~(1~1) fiir eine Konstante d und alle
geniigend langen WSrter x E L(A) - L. Dies bedeutet, dass fiir jedes geniigend
lange x E L(A) eine akzeptierende Berechnung Cx mit SpaceA(Cx ) <_ d. ~(1~1)
existiert. Sei Cx die kiirzeste akzeptierende Berechnung von A auf x mit dieser
Eigenschaft. Mit dem gleichen Argument wie im Beweis von Satz 6.2 erhalten
wir, dass es eine Konstante k gibt, so dass die Lgnge von Cx hSchstens
iinKonfA(ixl)l _< ka.~( x )
fiir alle geniigend langen x E L(A) ist. Wenn die L~inge von Cx grSt3er als
IInKonfA(Ixl)l w a r e , dann existierten i, j E I N - {0}, i r j, so dass
G - - C1, C 2 , . . . , C i _ I , Ci, Ci+I,...,Cj, Cj+I,...,Cm

und Ci und Cj gleiche Konfigurationen w/iren. Dann ist aber die Berechnung
Clx - - C1, C2, . . . , C i _ I , C i , Cjq-1, . . . , C m

auch eine akzeptierende Berechnung von A auf x. Das ist ein Widerspruch zur
Annahme, dass C~ die kfirzeste akzeptierende Berechnung yon A auf x ist.
Weil A fiir alle geniigend langen W6rter x E L(A) akzeptierende Berechnungen
von h6chstens der Lgnge
kd ( x ) = x )

fiir Konstanten k und d hat, ist TimeA(n) E O(c ~(~)) ftir c -- k d und somit
L E NTIME(c~(~)).

A u f g a b e 6.14. Sei M eine nichtdeterministische MTM mit TimeM(n) _< t(n) fiir eine
zeitkonstruierbare Funktion t. Beweisen Sie die Existenz einer nichtdeterministischen MTM
6.4 Nichtdeterministische Komplexitgtsmat3e 227

A, so dass L ( A ) - L ( M ) und eine Konstante d existiert, so dass fiir jede Eingabe w C E*


alle Berechnungen von A auf w h6chstens die Lange d. t(Iwl) haben.

Der folgende Satz zeigt die grundlegende Relation zwischen deterministischen


und nichtdeterministischen Komplexit~tsmaf3en.

Satz 6.5. Fiir jede Funktion t " IN ~ IR + und jede zeitkonstruierbare und
platzkonstruierbare Funktion s" IN ~ IN m i t s(n) >_ log 2 n gilt

TIME(t) c_ NTIME(t),
SPACE(t) c NSPACE(t), und
NTIME(s(n)) c_ SPACE(s(n))c_ U TIME(c~(~)) 9
c6lN

Beweis. Die Behauptungen (i) und (ii) sind offensichtlich giiltig, weil jede
MTM auch eine nichtdeterministische MTM ist.
Die Relation SPACE(s(n)) c_ U c ~ TIME(c~(~)) wurde in Satz 6.2 bewiesen.
Um (iii) zu beweisen, reicht es, NTIME(s(n)) C_ SPACE(s(n)) zu zeigen.
Sei g E NTIME(s(n)). Also gibt es eine nichtdeterministische MBand-TM
M - (Q, E, F, ~M, q0, qaccept, qreject) mit L -- L ( M ) und TimeM(n) E O ( s ( n ) ) .
Sei

-~M - max{l M(U)l I U - (q, a, b l , . . . , bk) E Q x ( ~ U {~, $}) X F k}

die obere Schranke fiir die Anzahl der m6glichen Aktionen von M aus ei-
her Konfiguration. Sei TM,~ der Berechnungsbaum yon M auf einer Eingabe
z E E*. Wenn die nichtdeterministischen Entscheidungen yon M auf jedem
Argument mit 1, 2 , . . . , r nummeriert werden, dann kann man jeder Kante von
TM,~ die entsprechende Nummer zuordnen (Fig. 6.1). Wenn man dann eine
Berechnung der Lgnge 1 als eine Folge von Kanten (start einer Folge von Kno-
ten) betrachtet, kann man jeder Berechnung C der Lttnge 1 eindeutig ein Wort
z = Z l Z 2 . . . z l mit zi E { 1 , 2 , . . . ,r} zuordnen. Ftir eine gegebene Eingabe z
von M, bestimmt z.B. die Folge 1,3,1,4 eindeutig den Prefix einer Berechnung,
bei der M im ersten Schritt die erste Wahl trifft, im zweiten die dritte, im drit-
ten die erste und im vierten Schritt die vierte Wahl. Wenn es z.B. im vierten
Schritt nur drei MSglichkeiten gab, entspricht die Folge 1,3,1,4 keiner Berech-
nung und wird als inkonsistent betrachtet. Dasselbe gilt, wenn die Berechnung
nach 1,3,1 beendet ist und kein vierter Schritt existiert.
Ohne EinschrS~nkung der Allgemeinheit (Aufgabe 6.14) setzen wir voraus, dass
eine Konstante d existiert, so dass alle Berechnungen von M auf einer Eingabe
228 6 Komplexitgtstheorie

1 2 1 1 1

/j i)
Fig. 6.1

w h6chstens die Lgnge d. ~(Iwl) haben. Somit benutzt keine Berechnung von
M auf w mehr als d. ~(Iwl) Speicherplgtze.
Jetzt beschreiben wir eine (k + 2)-Band-TM A, die alle Berechnungen yon M
yon hSchstens der Lgnge IInKonf~(n)l simuliert. Ftir jedes w E E* arbeitet A
wie folgt.

(i) A schreibt 0 s( ~ ) auf das (k + 2)-te Band.


(ii) A schreibt 0 ds( ~ ) auf das (k + 1)-te Band und 16scht dabei den Inhalt
des (k + 2)-ten Bandes.
(iii) A generiert eins nach dem anderen alle W6rter z E {1, 2 , . . . , rM}* yon
hSch~ton~ dor La~go ~. ~(1~1) ~uf dora (k+2)-to~ B ~ d . ~ar jodo~ ~ ~imu-
liert A auf den ersten k Arbeitsbgndern die entsprechende Berechnung
(falls eine solche existiert) yon der nichtdeterministischen k-Band-TM
M auf w. Falls M in irgendeiner dieser simulierten Berechnungen seinen
akzeptierenden Zustand qaccept erreicht, dann akzeptiert A die Eingabe
w. Falls in keiner Berechnung von M auf w d e r Zustand qaccept erreicht
wird, verwirff A d a s Wort w.

Offensichtlich ist L ( A ) = L ( M ) , weil M keine lgngeren Berechnungen als d.


s(n) hat, und damit iiberpriift A im Fall des Verwerfens alle Berechnungen von
M auf der Eingabe. S p a c e r ( n ) _< d. s(n) gilt, weil S p a c e r ( n ) _< TimeM(n).
Somit iiberschreitet A auf den ersten k Arbeitsbgndern, die zur Simulation von
6.4 Nichtdeterministische KomplexitS~tsmafie 229

M benutzt werden, hie die SpeicherplatzkomplexitS~t SpaceM(n ) <_ d. s(n). Das


(k + 1)-te Band benutzt genau d. s(n) Felder ftir 0 a~( ~ ). Weil auch das (k + 2)-
te Band wS~hrend der Simulation ein Wort aus {1, 2 , . . . , r}* yon h6chstens der
LS~nge d. s(n) enthalt, gilt SpaceA(n ) <_ d. s(n). D

Korollar 6.3. NP C PSPACE.


A u f g a b e 6.15. Analysieren Sie die Zeitkomplexit~t der (k+2)-Band-TM A aus dem Beweis
des Satzes 6.5.

Wir kennen keine effizientere allgemeine deterministische Simulation von nicht-


deterministischen Algorithmen, als systematisch alle Berechnungen eines gege-
benen nichtdeterministischen Algorithmus zu simulieren 6. Dies fiihrt dann aber
beim Ubergang von Nichtdeterminismus zu Determinismus zum exponentiel-
len Wachstum der Zeitkomplexitgt. So ist es in Satz 6.5, und wir beobachten
dies auch bei der Tiefensuche-basierten Simulation in Satz 4.2.

Aufgabe 6.16. Analysieren Sie die Zeitkomplexit~t der deterministischen Simulation einer
NTM aus Satz 4.2.

Der n~chste Satz gibt die beste bekannte zeiteffiziente deterministische Simu-
lation von nichtdeterministischem Speicherplatz.

S a t z 6.6.* Fiir jede platzkonstruierbare Funktion s, s(n) >_ log 2 n, gilt

NSPACE(s(n)) C_ 0 TIME(c~(~))"
cEIN

Beweis. Sei M eine nichtdeterministische MTM mit L ( M ) - L und


SpaceM(n ) E O(s(n)). Ohne EinschrS~nkung der Allgemeinheit setzen wir Fol-
gendes voraus:

(i) Es existiert eine Konstante d, so dass fiir jede Eingabe w alle Berech-
nungen von M auf w hSchstens die Speicherplatzkomplexit~t d . s(n)
haben.
(ii) Fiir jede Eingabe w E L ( M ) hat M nur eine akzeptierende Konfigu-
r a t i o n (qaccept, w, 0, ) ~ , . . . , )~, 0), d.h. bevor M in qaccept iibergeht, 15scht
M die Inhalte aller ArbeitsbS~nder und stellt alle K6pfe auf das linke
Randsymbol r
6Heutzutage glauben die meisten Forscher nicht an die Existenz einer wesentlich effizienteren
Simulation nichtdeterministischer Algorithmen, abet die Nichtexistenz solcher Simulations-
methoden wurde noch nicht bewiesen.
230 6 Komplexit~tstheorie

Nach (i) wissen wir, dass es eine Konstante c gibt, so dass man ftir jede Eingabe
w die Anzahl unterschiedlicher Konfigurationen mit w auf dem Eingabeband
durch

IInKonf(Iwl)l _< c~( ~ )

beschrtinken kann. Diese Konfigurationen kann man als Co, C 1 , . . . , ClInKonf(Iwl) I


in der kanonischen Ordnung numerieren. Wir konstruieren jetzt eine MTM A
mit L(A) = L.
Fiir eine Eingabe w arbeitet A wie folgt:

(i) A konstruiert die Adjazenzmatrix M(w) des gerichteten Graphen G(w),


dessert Knoten die IInKonf(Iwl)l vielen verschiedenen Konfigurationen
yon Berechnungen yon M auf w entsprechen, und in dem zwei Knoten
Ci und Cj genau dann durch eine gerichtete Kante yon Ci nach Cj ver-
bunden sind, wenn die Konfiguration Cj in einem Schritt von M aus Ci
erreichbar ist.
(ii) Sei Ck die einzige akzeptierende Konfiguration yon M auf w. Sei Co
die Anfangskonfiguration von M auf w. Offensichtlich akzeptiert M das
Wort w genau dann, wenn ein Weg yon Co nach Ck in G(w) existiert.
Die MTM A iiberprtift, ob ein Weg yon Co nach Ck in G(w) existiert.
Falls ja, akzeptiert A die Eingabe w, sonst verwirft A die Eingabe w.

Offensichtlich gilt L(A) = L(M). Wir analysieren jetzt die Zeitkomplexit~it


yon A. Um M(w) zu konstruieren, muss man

IInKonf(Iwl)l- IInKonf( wl)l < ca~( ~ ). ca.~(~ ) < c2a~( ~ )

Elemente mij der Matrix M(w) bestimmen. Um mij zu bestimmen, mUSS m a n


Ci und Cj generieren. Eine Konfiguration kann in der Zeit

d. s(Iwl) . InKonf(Iwl) I _< c2d~(~)

generiert werden. Ob Cj aus Ci in einem Schritt von M erreichbar ist, kann


man in der Zeit 2 d . ~(1~1) bestimmen. So kann A den ersten Teil (i) der
Berechnung in der Zeit

c2d.s(w) . (2c2d.s(w) Jr- 2d. 8 ( w l ) ) ~ c12ds(w)

durchfiihren. Die Bestimmung der Existenz eines Weges von Co nach C~ in


G(w) geht in polynomieller Zeit beziiglich der Kontenzahl IInKonf(Iwl)l. a u f
6.5 Die Klasse NP und Beweisverifikation 231

einer MTM kann man diese Aufgabe in O(lInKonf(Iwl)l 4) Schritten realisieren.


Weil
(cd.s( w ))4 _ c4d.s( w )

ist es offensichtlich, dass Timen(n) E O((c12d)s(n)).

K o r o l l a r 6.4. NLOG c P und N P S P A C E c E X P T I M E .

Eine ein bisschen anspruchsvollere Suche 7 in dem Graph G(w) aller potentiell
m6glichen Konfigurationen auf w f/ihrt zu folgendem Resultat.

S a t z 6.7.* S a t z v o n S a v i t c h
Sei s mit s(n) > log 2 n eine platzkonstruierbare Funktion. Dann

N S P A C E ( s ( n ) ) C_ SPACE(s(n)2).

K o r o l l a r 6.5. PSPACE = NPSPACE

Von keiner der oben abgegebenen Simulationen von nichtdeterministischen Be-


rechnungen durch deterministische Berechnungen weit3 man, ob es die effizi-
enteste m6gliche Simulation ist. Die Zusammenfassung vorgestellter Resultate
fiihrt zu der sogenannten f u n d a m e n t a l e n K o m p l e x i t ~ t s k l a s s e n h i e r a r c h i e
der s e q u e n t i e l l e n B e r e c h n u n g e n ;

D LOG c NLOG c P c NP c PSPACE c E X P T I M E .

Fiir jede yon diesen Inklusionen ist es unbekannt, ob es eine echte Inklusion
ist. Einige echte Inklusionen miissen aber dabei sein, weil D LOG C P S P A C E
und P C E X P T I M E direkte Folgerungen yon Hierarchiesgtzen sind. Die Be-
stimmung, welche der Inklusionen echt sind, ist seit 30 Jahren das zentrale
offene Problem der Theoretischen Informatik.

6.5 Die Klasse N P und Beweisverifikation

In der fundamentalen Komplexitgtsklassenhierarchie konzentriert sich das In-


teresse auf die Relation zwischen P und NP. Das Problem, ob P = NP oder

tin der man G(w) nie komplett konstruiert, weil dies zu hohen Speicherbedarf verursachen
wiirde.
232 6 Komplexitgtstheorie

P C+ NP gilt, ist das wohl bekannteste offene Problem der Informatik und
heutzutage zghlt es auch zu den wichtigsten offenen Problemen der Mathema-
tik. Ftir dieses grofie Interesse gibt es mehrere Grtinde. Einerseits verbindet
man die polynomielle Zeit mit der praktischen L6sbarkeit. Wir kennen heute
fiber 3000 praktisch interessante Probleme, die in NP liegen, und fiir keines
dieser Probleme ist ein deterministischer polynomieller Algorithmus bekannt.
Wir wiirden gerne wissen, ob diese Probleme auch in P oder in N P - P liegen.
Ein anderer Grund hSongt mit dem fundamentalen Begriff des mathematischen
Beweises zusammen. Die Zeitkomplexitgt der deterministischen Berechnungen
entspricht in gewissem Rahmen der Komplexitgt der algorithmischen Herstel-
lung von mathematischen Beweisen, wghrend die Zeitkomplexitgt nichtdeter-
ministischer Berechnungen der Komplexitgt der algorithmischen Beweisverifi-
kation entspricht. So ist der Vergleich von P und NP gquivalent zu der Frage,
ob es einfacher ist, gegebene Beweise zu verifizieren als sie herzustellen. Die
Zielsetzung dieses Abschnittes ist es, den Zusammenhang zwischen der Klasse
NP und der polynomialzeit-beschrgnkten Beweisverifikation zu zeigen.
Skizzieren wir zuerst den Zusammenhang zwischen Berechnungen und Bewei-
sen. Sei C eine akzeptierende Berechnung einer TM M auf einer Eingabe z.
Dann kann C zweifellos auch als ein Beweis der Behauptung ,,z C L(M)"
gesehen werden. Analog ist eine verwerfende Berechnungen einer (determini-
stischen) TM M auf einem Wort w ein Beweis der Behauptung ,,z ~ L(M)".
Von klassischen mathematischen Beweisen ist diese Vorstellung nicht weit ent-
fernt. Betrachten wir L als eine Sprache, die alle korrekten Stitze (Aussagen)
einer mathematischen Theorie enth~ilt. Dann ist der Beweis von ,,z E L(M)"
nichts anderes als der Beweis der Korrektheit (Giiltigkeit) des Satzes z und
der Beweis yon ,,z ~ L(M)" ist der Beweis der Ungiiltigkeit yon z. Wenn z.B.
L = SAT, wobei

SAT = {z E (}-]logic)* I x kodiert eine erf/illbare Formel in KNF},

ist die Tatsache ,, (I) E SAT" ~iquivalent zu der Behauptung ,, (I) ist eine erfiillbare
Formel".
Versuchen wir jetzt den Zusammenhang zwischen nichtdeterministischen Be-
rechnungen und Beweisverifikation herzustellen. Die typische nichtdetermini-
stische Berechnung startet mit dem Raten und setzt mit dem Verifizieren des
Geratenem fort. Das Geratene k6nnte ein Beweis von ,,x E L" sein, oder es
kSnnte eine essentielle Information (ein Zertifikat oder ein Zeuge von ,,x E L"
genannt) sein, mit deren Hilfe man den Beweis von ,,x E L" effizient herstel-
len kann. Veranschaulichen wir dies wieder anhand des Erf/illbarkeitsproblems.
Fiir eine Formel (I) fiber n Boole'schen Variablen x l , . . . , x~ rgt eine NTM M
6.5 Die Klasse NP und Beweisverifikation 233

TM, ~

x2:0/~/~:1 x2=0 x2:1

Raten

- 2 ~ Berechnungen

deterministische
Verifikation
0 0 0 0

Fig. 6.2

in den ersten n Schritten die Belegung f f l , . . . , O/n fiir X l , . . . , X n . Dann berech-


net M den Wahrheitswert (I)(C~l,..., c~), um zu verifizieren, ob C~l,..., c~ die
Formel (I) wirklich erfiillt (Fig. 6.2). Falls C~l,..., c~ die Formel (I) erfiillt, ist
es klar, dass wir den Beweis yon ,,(I) ist erfiillbar" effizient herstellen k6nnen,
wenn uns jemand Ctl,..., ct~ kostenlos gibt. Der Beweis ist nichts anderes als
die Auswertung yon (I) auf Ctl,..., ct~. Deswegen nennen wir C~l,..., c~ das
Zertifikat oder den Zeugen fiir die Aussage ,,(I) ist erfiillbar". Die Zeitkom-
plexitS~t von M ist die ZeitkomplexitS~t des Ratens plus die KomplexitS~t des
Verifizierens. Der wesentliche Aufwand ist dabei dem Verifizieren gewidmet.
Unser Ziel ist jetzt zu zeigen, dass man alle polynomiellen nichtdeterminist-
ischen Turingmaschinen so umwandeln kann, dass sie am Anfang raten und
dann das Geratene deterministisch verifizieren. Dadurch reduziert sich die Zeit-
komplexitgt der nichtdeterministischen Algorithmen auf die Zeitkomplexit~t
der Beweisverifikation (der Zertifikatiiberpriifung).

D e f i n i t i o n 6.9. Sei L C_ E* eine Sprache und sei p" IN ~ IN eine Funktion.


Wir sagen, dass eine M T M (ein Algorithmus) A ein p - V e r i f i z i e r e r fiir L
V(A) - L, A
E* • (Ebool)* arbeitet:

(i) TimeA(w, x) < p([w[) fiir jede Eingabe (w, x) E E* • (}-~%ool)*.


Fiir jedes w E L existiert ein x E (}-~bool)*, 80 d a s 8 I~1 - p(Iwl)
(w,x) C L(A) (d.h. A akzeptiert (w,x)). Das Wort x nennt man den
B e w e i s oder den Z e u g e n der Behauptung w E L.
234 6 Komplexit~tstheorie

(iii) Fiir jedes y ~ L gilt (y, z) ~ L(A) fiir alle z E (Y]bool)*.

Falls p(n) E O(n k) fiir ein k E IN, so sagen wit, dass A ein P o l y n o m i a l z e i t -
Verifizierer ist. Wit definieren die K l a s s e der in Polynomialzeit verifi-
zierbaren Sprachen als

V P = {V(A) I A ist ein Polynomialzeit-Verifizierer}.

Man bemerke, dass L(A) und V(A) unterschiedliche Sprachen fiir einen p-
Verifizierer A sind. Aus Definition 6.9 folgt

V(A) = e r*l es existiert ein x mit Ixl <_p(Iwl),


so dass (w, x) E L(A) }.

Ein p-Verifizierer A fiir eine Sprache L ist also ein deterministischer Algorith-
mus, der fiir eine Eingabe (w, x) verifiziert, ob x ein Beweis (ein Zeuge) fiir
,,w E L" ist. A verifiziert erfolgreich (w E V(A)), wenn es einen Beweis x fiir
,,w E L" gibt mit I~1 ___ p(Iwl). Die Gleichheit V(A) = L fordert die Existenz
eines Beweises x fiir ,,w C L" mit Ixl _< p(Iwl) fiir jedes w c L.

Beispiel 6.1. Ein O(n2)-Verifizierer A fiir SAT kann wie folgt arbeiten. Fiir
jede Eingabe (w, x) tiberpriift A zuerst, ob w die Kodierung einer Formel (I)~ in
KNF ist. Falls nicht, verwirft A die Eingabe (w, x). Ansonsten berechnet A die
Anzahl n d e r in (I)w vorkommenden Variablen und tiberpriift ob die L~nge von
x E {0, 1}* mindestens nist. Falls x kiirzer ist als n, verwirft A seine Eingabe.
Falls Ixl _> 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 Gra-
phen 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) <_ n und Izl _>
~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 gqui-


valente 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 nichtdeter-
ministischen 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 voll-
stSmdig 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.
236 6 Komplexit~tstheorie

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 Polynomialzeit-
Verifizierer 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 ausge-
arbeitete 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 aus-
reichend starke Techniken, um untere Schranken ftir die KomplexitS~t konkre-
ter 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 schnell-
sten 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 Gewiinsch-
ten zumindests teilweise zu fiberwinden, iiberlegten die Forscher, ob man eine
Methodik zur Klassifizierung von Problemen bezfiglich praktischer L6sbar-
keit entwickeln k6nnte, wenn man sich eine zus~tzliche, zwar unbewiesene
aber glaubwtirdige, Annahme erlaubt. Dies fiihrte zu dem Konzept der NP-
Vollstgndigkeit, dass eine solche Klassifizierung von Problemen unter der Vor-
aussetzung P c NP erm6glicht. Das Ziel dieses Abschnittes ist es, dieses Kon-
zept vorzustellen.
Zuerst diskutieren wir die Glaubwfirdigkeit der Annahme P C NP. Den theore-
tischen 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 si-
mulieren, als systematisch alle nichtdeterministischen Berechnungen zu fiber-
priifen. Weil aber die nichtdeterministischen BerechnungsbS~ume in ihrer Tiefe
exponentiell viele Berechnungen beinhalten kannen und die Tiefe des Bau-
rues 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~hri-
gen Erfahrung in der Algorithmik. Wir kennen mehr als 3000 Probleme in NP,
viele davon sehr intensiv untersucht, ftir die die besten bekannten deterministi-
schen 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 erfol-
gen, 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.
238 6 Komplexit~tstheorie

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 _<p aus der Reduktion __~EE durch die
zus~tzliche Forderung der Effizienz der Reduktion erh~lt (Fig. 6.3). Wieder
bedeutet L1 _<p L2, dass L2 mindestens so schwer (in Bezug auf die LSsbarkeit
in polynomieller Zeit) wie L1 ist.

Definition 6.11. Eine Sprache L i s t N P - s c h w e r , falls fiir alle Sprachen L ~ E


NP gilt L ~ <_p L.
Eine Sprache L ist N P - v o l l s t ~ i n d i g , falls

(i) L E NP, und


(ii) L ist NP-schwer.

Die Menge der NP-vollstS~ndigen Sprachen betrachten wir jetzt als die ge-
suchte Teilklasse von schwersten Entscheidungsproblemen in NP. Die folgende
Behauptung zeigt die gewiinschten Eigenschaften der schwersten Probleme in
N P - die leere Schnittmenge zwischen P und der Menge der NP-vollstS~ndigen
Sprachen, falls P C NP (Fig. 6.4).

Lemma 6.7. Falls L E P und L ist NP-schwer, dann P - NP.

Beweis. Sei L eine NP-schwere Sprache und sei L E P. L E P impliziert die


Existenz einer polynomiellen TM M mit L - L ( M ) . Wir beweisen, dass fiir
jede Sprache U E NP, U c_ E* ftir ein Alphabet E, eine polynomielle MTM
Au mit L(Au) - U existiert und deshalb U E P.

9Man bemerke, dass A(x) polynomiell in x I ist, weil A in polynomieller Zeit arbeitet.
6.6 NP-VollstSmdigkeit 239

A
mit polynomieller
TimeA(n)

mit x E L1 e , Algorithmus B
A(x) E L2 mit L(B) = L1

C
mit L(C) = L2

A(x) E L2 A(x) ~ L2

xEL1 x~L1

Fig. 6.3

NP

NP-vollstgndige Sprachen

Fig. 6.4

Da U -<v L fiir jede Sprache U E NP, existiert eine polynomielle TM Bu, so


d&ss

x E U r Bu(X) E L.
240 6 Komplexit~tstheorie

Wir beschreiben jetzt eine polynomielle MTM Au mit L(Au) = U. Fiir jede
Eingabe x E E* arbeitet Au wie folgt.

(i) Au simuliert die Arbeit yon Bu auf x und berechnet Bu(X).


(ii) Au simuliert die Arbeit von M auf Bv(X). Au akzeptiert x genau dann,
wenn M das Wort Bv(X) akzeptiert.

Weil x E U r Bv(X) E L, gilt L(Au) = U. Da Timedv(X) = T i m e B v ( x ) +


TimeM(Bv(X)), IBu(x)I polynomiell in x ist, und die Turingmaschinen Bu und
M in polynomieller Zeit arbeiten, arbeitet auch Au in polynomieller Zeit. D
Wit haben jetzt die gewiinschte Definition der schwersten Probleme in NP,
vorausgesetzt, dass die Klasse der NP-vollstgndigen Sprachen nicht leer ist. Der
nS~chste Satz zeigt, dass diese Gefahr nicht besteht, well SAT NP-vollstS~ndig
ist.
Die NP-Schwere von SAT sagt aus, class die Ausdrucksstgrke von Boole'schen
Formeln in KNF sehr hoch ist, weil man fiir jede Sprache L E NP die Frage ,,Ist
x in L?" als die Frage, ob eine bestimmte Formel erfiillbar ist, ausdriicken kann.
Die AusdrucksstSzke von Formeln alleine sollte abet nicht iiberraschend sein,
weil man dutch Formeln beliebige Texte beschreiben kann, und diese Texte
k6nnen beliebige Objekte wie Sgtze, Beweise, Berechnungen usw. darstellen.
Wit illustrieren dies jetzt an einem kleinen Beispiel. Wit wollen eine Boole'sche
Formel in KNF konstruieren, die es ermSglicht, Matrizen der Gr6fie 3 • 3 fiber
{ - 1 , 0 , 1} zu beschreiben. Sie ist genau dann erfiillbar, wenn die Matrix in
jeder Zeile und in jeder SpaRe genau eine 1 enthS~lt. Dazu wS~hlen wit uns
fiir alle i , j E {1, 2, 3} und alle k E { - 1 , 0, 1} die Variablen xi,j,k mit deren
Belegung wir dank folgender Bedeutung der 27 betrachteten Variablen eine
beliebige 3 x 3 Matrix A = ( a i j ) i , j = l , 2 , 3 fiber { - 1 , 0, 1} darstellen k6nnen.

Xi,j, 1 : 1 4=> wenn aij = 1


Xi,j, 0 : 1 4=~ wenn aij = 0
Xi,j,-1 1 4=> wenn aij = - 1

Damit kann man die Matrix

1 0 0 /
-1 0 1
0 1 0

durch die folgende Belegung der 27 Variablen eindeutig bestimmen:


6.6 NP-VollstSmdigkeit 241

Xl,1,1 = 1, Xl,1, 0 = 0, X1,1,-- 1 = 0, Xl,2,1 = 0, Xl,2,0 = 1, Xl,2,_ 1 = 0,


Xl,3,1 = O, Xl,3,0 = 1, Xl,3,--1 = O, X2,1,1 = O, X2,1,O = O, X2,1,--1 = 1,
x2,2,1 = O, x2,2,o = 1, x2,2,-1 = O, x2,3,1 = 1, x2,3,o = O, x2,3,-1 = O,
X3,1,1 = 0, X3,1, 0 = 1, X3,1,_ 1 = 0, X3,2,1 = 1, x3,2,0 = 0, X3,2,_ 1 = 0,
x3,3,1 = 0, x3,3,o = 1, 2;3,3,_ 1 = 0.

Wir bemerken, dass es auch Belegungen gibt, die keine M a t r i x darstellen. Z u m


Beispiel ist die Belegung 2 ; 1 , 1 , 1 = 1 = 2;1,1,0 SO ZI1 interpretieren, dass a l l beide
Werte 1 und 0 a n n i m m t , was nicht zulS~ssig ist. U m dieses auszuschliegen,
konstruieren wir zuerst eine Formel, die nur fiir die Belegungen erfiillt ist, die
eine 3 x 3 M a t r i x fiber { - 1 , 0, 1} b e s t i m m e n (d.h., jede Position der M a t r i x
enthalt genau einen Wert). Ftir alle i, j E {1, 2, 3} g a r a n t i e r t die Formel

(Xi,j, 1 V Xi,j, 0 V Xi,j,_l) A


(Xi,j,1 ~/ Xi,j,O) A ('Xi,j,1 ~/ 'Xi,j,--1) A (Xi,j,O ~/ Xi,j,--1)

dass genau eine der Variablen xi,j,l,Xi,j,o, Xi,j,_l den Wert 1 a n n i m m t 1~ und
so der Inhalt der Position (i, j) der M a t r i x eindeutig b e s t i m m t ist. Somit be-
s t i m m t jede Belegung, die die Formel

(I)- A F~,~
1<_i,j<_3

erfiillt, eindeutig eine 3 • 3 M a t r i x fiber { - 1 , 1, 0}.


Ftir i - 1, 2, 3 g a r a n t i e r t die Formel

(X/,1,1 V Xi,2,1 V Xi,3,1) A


(Xi,I,1 V ~0i,2,1)A (~0i,1,1 V X i , 3 , 1 ) A (Xi,2,1 V ;~i,3,1)

dass die i-te Zeile genau eine Eins enth/tlt. Analog g a r a n t i e r t

(Xl,j, 1 V X2,j, 1 V X3,j,1) A


(;~l,j,1 ~/ X2,j,1) /~ (;~l,j,1 ~/ ;~3,j,1) /~ (X2,j,1 V ;~3,j,1)

ftir j -- 1, 2, 3, dass die j-te Spalte genau eine Eins enthtilt.

1~ elementare Disjunktion Xi,j, 1 V Xi,j, 0 V Xi,j,_ 1 garantiert, dass mindestens eine der
Variablen wahr ist. Die elementare Disjunktion (zi,j,1 V xi,j,o) garantiert, dass mindestens
eine der Variablen xi,j,1 und xi,j,o den Wert 0 annimmt.
242 6 Komplexit~tstheorie

Somit ist

i=1,2,3 j=1,2,3

die gesuchte Boole'sche Formel in KNF.

Aufgabe 6.19. Geben Sie eine Menge von Boole'schen Variablen an, mit der man jede
Situation (Konfiguration) auf einem Schachbrett eindeutig bestimmen kann. Beschreiben Sie
die Konstruktion einer Formel tiber diesen Variablen, die genau dann erfiillt ist, wenn auf
dem Schachbrett genau acht Damen (und keine anderen Figuren) stehen, die sich gegenseitig
nicht bedrohen.

Mit der oben beschriebenen Strategie kann m a n Texte auf einem Blatt Papier
beschreiben. Das Blatt kann m a n sich als eine passende n • rn Matrix fiber
Elementen aus ETastatur vorstellen. D a n n reichen n . m . IETastaturl Boole'sche
Variablen, um dieses Ziel zu realisieren.

Aufgabe 6.20. Bestimmen Sie eine Menge von Variablen, mit denen man jede Textseite
der Gr6fie 33 • 77 darstellen kann. Beschreiben Sie die Konstruktion einer Formel mit genau
einer erfiillbaren Belegung, die dem Text auf der zweiten SeRe des Buches ,,The Design and
Analysis of Computer Algorithms" von Aho, Hopcroft und Ullman entspricht.

Wir sehen also, dass wir durch Formeln beliebige Texte und somit auch Konfi-
gurationen einer T M darstellen k6nnen. Der Kern des Beweises des folgenden
Satzes liegt darin, dass wir zus~ttzlich auch inhaltliche semantische Zusam-
menh~tnge des Textes, z.B. wie eine Konfiguration in einem Berechnungsschritt
einer TM aus einer anderen Konfiguration erreichbar ist, durch die Erfiillbar-
keit einer Formel ausdriicken k6nnen. Wichtig ist dabei noch, dass m a n solche
Formeln effizient algorithmisch konstruieren kann, was auch bedeutet, dass
die Formel nicht zu lang im Bezug auf das Eingabewort der beschriebenen
Berechnung ist.

S a t z 6.9.* S a t z v o n C o o k
SAT ist NP-vollstiindig.

Beweis. Im Beispiel 6.1 (siehe auch Fig 6.2) haben wir schon bewiesen, dass
SAT in V P = N P liegt.
Es bleibt zu zeigen, dass alle Sprachen aus NP auf SAT polynomiell reduzierbar
sind. Aus der Definition der Klasse NP folgt, dass f/Jr jede Sprache L C NP eine
N T M M mit L ( M ) = L und TimeM(n) E O(n ~) fiir ein c E IN existiert (d.h.,
6.6 NP-VollstSmdigkeit 243

M ist eine endliche Darstellung von L, die wir als Eingabe fiir die folgende
polynomielle Reduktion benutzen diirfen). Es reicht also zu zeigen:

,,Flit jede polynomielle N T M M gilt L(M) <_pSAT."


Sei M - (Q, E, F, ~, q0, qacc~pt, qreject) e i n e beliebige N T M mit TimeM(n) _< p(n)
fiir ein Polynom p. Sei Q - {q0, ql,..., q s - 1 , q s } , wobei q s - 1 -- qreject und q~ --
qaccept, und sei F - { X 1 , . . . , X,~}, X,~ u. Wir entwerfen eine polynomielle
Reduktion BM" E* ~ (2logic)*, so dass fiir alle x E E* :

x E L(M)~ BM(X) E SAT

Sei w ein beliebiges Wort aus E*. BM soll eine Formel BM(W) konstruieren, so
dass

w E L(AJ)4=~ BM(W)ist erfiillbar.


Das bedeutet, dass wir eine Formel konstruieren miissen, die alle M6glichkeiten
der Arbeit yon M auf w beschreibt. Die Idee ist, die Bedeutung der Variablen so
zu wSohlen, dass eine Beschreibung einer beliebigen Konfiguration zu einem be-
liebigen Zeitpunkt mSglich ist. Wir wissen, dass SpaceM(IWl) _< TimeM(IWl) _<
P(Iwl) und somit jede Konfiguration h6chstens die Lange p ( I w l ) + 2 hat 11, was
fiir die gegebene Eingabe w eine feste Zahl aus IN ist. Um uns die Beschreibung
zu vereinfachen, stellen wir jede Konfiguration

(r Yi-lqYi...Yd)
fiir d _< P(I~I) ~

(0YIY2... Y/-lqY/... Y d Y d + l . . . Yp ( w ))

dar, wobei Yd+l -- Yd+2 . . . = Yp(~) - u. Somit haben alle Konfiguratio-


hen die gleiche Band]ange p(Iwl)+ 1. gm uns die Suche nach einer akzep-
tierenden Konfiguration zu erleichtern, erweitern wir d durch (~(qaccept,X) --
(qaccept, X, IV). Damit bleibt M nach dem Erreichen des akzeptierenden Zu-
s t a n d e s qaccept weiter in qaccept, ohne eine Anderung vorzunehmen. Um die
Zugeh6rigkeit von w zu L(M) zu entscheiden, reicht es dann aus zu testen, ob
eine der Konfigurationen, die nach p(l l) Schritten von M erreicht wird, den
Zustand qaccept enthglt.
Die Formel BM(W) wird aus folgenden Variablenklassen entstehen:
11Die Konfiguration enth~lt den Inhalt der Bandpositionen 0,..., p( w ) und den Zustand.
244 6 Komplexit~tstheorie

9 C ( i , j, t) fiir 0 _< i _< p(lwl), 1 <_ j <_ m, o <_ t <_ p(Iwl).


Die Bedeutung yon C(i, j, t) ist wie folgt"
C(i, j, t) - 1 ea Die i-te Position des Bandes yon M enth~ilt das Arbeitssymbol
Xj zum Zeitpunkt t (nach t Berechnungsschritten).
Wir beobachten, dass die a n z a h l solcher Variablen genau m . ((P(Iwl)+ 1) 2 E
O ( ( p ( I w l ) ) 2) ist.
9 S { k , t) fiir 0 _< k _< s, 0 _< t _< P(I~I).
Die Bedeutung der Booie'schen Variable S{k, t) ist"
S{k, t) - 1 r Die NTM M ist im Zustand qk zum Zeitpunkt t.
Die a n z a h l solcher Variablen ist (s + 1). ( p ( I w l ) + 1) ~ O(p(l~l)).
9 H { i , t) fiir 0 <_ i <_ p(Iwl), 0 <_ t <_ p(l~l).
Die Bedeutung yon H{i, t) ist"
H{i, t) - 1 r Der Kopf yon M i s t auf d e r / - t e n Position des Bandes zum
Zeitpunkt t.
Es gibt genau (p(lwl)+ 1) 2 E o ( ( p ( l w l ) ) 2) solcher Variablen.

Wir beobachten, dass wir durch die Belegung aller Variablen mit Werten fiir
ein festes t die Beschreibung einer beliebigen Konfiguration bekommen kSnnen.
Zum Beispiel lgsst sich die Konfiguration

(XjOXjl . . . xj _i ... )

beschreiben durch:
C(0, j0, t) - C(1, jl, t} .-- - c<p(l~l), t> - 1 und C(k, l, t> - 0 fiir
alle restlichen Variablen aus dieser Klasse;
H(i,t) - 1 und H{j,t) - 0 ftir alle j E r i;
S(r,t) - 1 und S(1, t) - 0 fiir alle / E {0, 1 , . . . , s},! -r r.
Wenn wir fiir jeden Zeitpunkt t eine Konfiguration angeben, haben wir also
die MSglichkeit, eine beliebige Berechnung von p(l l) Schritten yon M auf w
durch die passende Belegung der Variablen zu beschreiben. Es ist wichtig, auch
zu beobachten, dass es Belegungen der betrachteten Variablen gibt, die keine
Interpretation auf der Ebene von Berechnungen von M auf w haben. So wiirde
z.B. S<I, 3} - S<3, 3) - S<7, 3} - 1 und C<2, 1, 3) - C<2, 2, 3) - 1 bedeuten,
dass M im Zeitpunkt 3 (nach drei Berechnungsschritten) gleichzeitig in drei
Zust/inden ql, q3, q7 ist und die zweite Position des Bandes das Symbol X1
sowie das Symbol X2 enth/ilt. Diese Belegung fiir t - 3 entspricht also keiner
Konfiguration.
Die Situation kann man sich auch so vorstellen, als ob man ein Blatt Papier
der Gr6f3e 2) • 1) h/~tte and die Belegung der Variablen
6.6 NP-VollstSmdigkeit 245

bestimmen wiirde, welche Buchstaben aufjede Position (i, j), 0 <_ i, j <_p(Iwl),
geschrieben werden. Es kann ein unsinniger Text entstehen, aber es gibt auch
Belegungen, bei denen jede Zeile des Blattes eine Konfiguration beschreibt
und Belegungen, bei denen diese Folge von Konfigurationen einer Berechnung
entspricht. Diese Situation ist in Fig. 6.5 schematisch dargestellt.
Unsere aufgabe ist jetzt, eine Formel B ~ ( w ) in KNF fiber den Variablen
e l i , j, t}, SIk , t} und H{i, t} so zu konstruieren, dass gilt

BM(w) ist erfiillbar e=~ es existiert eine akzeptierende Berechnung


von M auf w.

BM konstruiert die Formel B M ( X ) = A A B A C A D A E A F A G in KNF in


folgenden sieben Schritten. Um die Konstruktion anschaulich und iibersichtlich
zu machen, beschreiben wir zuerst die Bedeutung der einzelnen Formeln A, B,
C, D, E, F u n d G.

A: A soil sicherstellen, dass der Kopf zu jedem Zeitpunkt genau auf einer
Position des Bandes steht (d.h., A soll genau dann erfiillbar sein, wenn genau
eine der Variablen H{i, t) den Wert 1 hat fiir alle festen t).
B: Zu jedem Zeitpunkt ist genau ein Arbeitssymbol auf jeder Position des
Bandes.
C: Zu jedem Zeitpunkt ist M in genau einem Zustand.
D: In jedem Schritt von M yon einer Konfiguration zur ngchsten kann nur
das Symbol gegndert werden, auf dem der Lesekopf steht.
E" Die Anderung des Zustandes, die Bewegung des Kopfes und die J~nderung
des Bandinhalts in jedem Schritt muss einer m6glichen Aktion der NTM M
(der Funktion (~) entsprechen.
F: F garantiert, dass die Variablen mit t = 0 genau die Anfangskonfiguration
von M auf w bestimmen.
G: G garantiert, dass die letzte (((p(Iwl)+ 1)-te) Konfiguration eine akzeptie-
rende Konfiguration ist.

Wir sehen, dass die Erfiillbarkeit von A A/? A C' garantiert, dass unser Blatt
in den Zeilen nur Konfigurationen enth~lt. Der Teil D A E von BM(Z) soll
sicherstellen, dass unser Blatt zusS~tzlich eine Berechnung von M beschreibt.
F garantiert, dass diese Berechnung eine Berechnung von M auf w ist, und G
garantiert, dass diese Berechnung in qaccept endet.
In unserer Konstruktion werden wir after eine Formel von mehreren Variablen
brauchen, die den Wert 1 genau dann annimmt, wenn genau eine der Variablen
246 6 Komplexittitstheorie

Anfangskonfiguration
erste Konfiguration Zeit
zweite Konfiguration
dritte Konfiguration

p(Iwl)-te Konfiguration
0 1 p(l~l) + 1
Bandpositionen (Zustgnde, Kopfpositionen)

Fig. 6.5

den Wert 1 hat. Seien 2 ; 1 , 2 ; 2 , . . . , X n Boole'sche Variablen. Die folgende Formel


in KNF hat die gewiinschte Eigenschaft beziiglich z l, z 2 , . . . , z~"

U ( x l , x 2 , . . . , xn) - ( x I V 922 V . . . V Xn) A ( A


l <_i,j <_rt

Der erste Teil der Formel 2; 1 V 2; 2 V . . . V 2; n garantiert, dass mindestens eine


der Variablen z l, z 2 , . . , z . auf 1 gesetzt werden muss, um U zu erfiillen. Weil
der zweite Teil der Formel die elementare Disjunktion G V ~ fiir alle Paare
i,j E { 1 , . . . , n } , i r j enth~ilt, dtirfen z~ und zj nicht zugleich den Wert 1
annehmen. Daher garantiert der zweite Teil der Formel, dass h6chstens eine
Variable aus { Z l , . . . ,z~} den Wert 1 annehmen daft. Wir bemerken, dass die
LS~nge der Formel U(Zl,Z2,... ,zn) quadratisch in der Anzahl n d e r Variablen
ist.
6.6 NP-VollstSmdigkeit 247

Jetzt konstruieren wir nacheinander die Formeln A, B, C, D, E, F und G.

(a) Fiir jedes t E {0, 1, 2 , . . . , p ( I w l ) } definieren wir

At - U ( H ( O , t}, H ( 1 , t}, . . . , H i p ( I w l ) , t}).

A t ist nur dann erfiillt, wenn sich der Lesekopf yon M zum Zeitpunkt t genau
auf einer Position i E {0, 1 , . . . , p(Iwl)} des Bandes befindet. Die Erftillung der
Formel
A- A o A A~ A . . . A Ap( ~ ) - A A~
O<_i<_p( w )

garantiert, dass sich der Lesekopf zu jedem Zeitpunkt t E {0,1,...,P(I~I)} auf


genau einer Position des Bandes befindet. Die Anzahl der Literale in A ist in
O((p(Iwl))3), weil die Anzahl der Literale in A t quadratisch in p ( I w l ) + 1 ist.
(b) Fiir alle i E { 0 , 1 , 2 , . . . , p ( l w l ) } , t E {0, 1 , . . . , p ( l w l ) } definieren wir
Bi,t - U(Cii, 1, t}, C ( i , 2, t}, . . . , C i i , m , t}).

]Bi, t ist erftillt, wenn die i-te Position des Bandes nach t Berechnungsschritten
von M genau ein Symbol enth~lt. Weil IFI - m eine Konstante ist, ist die
Anzahl der Literale in Bi,t in O(1). Die Erfiillung der Formel
A

B - /\ Bi,t
O<_i,t<_p( w )

garantiert, dass alle Positionen des Bandes zu jedem Zeitpunkt genau ein Sym-
bol enthalten. Die anzahl der Literale in B ist offensichtlich in
(c) Wir definieren fiir alle t E {0, 1 , . . . , p ( w l ) }

Ct - U ( S i O , t}, S ( 1 , t}, . . . , S ( s , t}).

Wenn eine Belegung yon S(0, t } , . . . , S(s, t} die Formel C't erfiillt, dann ist M
zum Zeitpunkt t in genau einem Zustand. Weft IQI - s + 1 eine Konstante ist,
ist die Anzahl der Literale in Ct in O(1). Offensichtlich garantiert uns

C-
0<t<p( ~ )
dass M zu jedem Zeitpunkt genau in einem Zustand ist. Die Anzahl der Literale
in C ist in O ( p ( I w l ) ).
(d) Die Formel
D~,j,t - (C(i,j,t} ~ C(i,j,t § 1}) V H ( i , t }
248 6 Komplexit~tstheorie

mr 0 g p(l~l), 1 _< j _< m, 0 _< t _< p(l l)- 1 sagt aus, dass ein nicht
gelesenes Symbol nicht geandert werden daft (wenn H(i, t} - O, dann muss
im nSochsten Schritt das Symbol auf d e r / - t e n Position unverS~ndert bleiben).
Offensichtlich kann man Di,j,t in eine KNF mit O(1) Literalen umwandeln. 12
Die gesuchte Formel ist dann

D -- A Di,j,t
O<_i<_p(lw[)
l<j_~m
O<_t<_p([w[)-i

und D enthalt O((p(lwl)) 2) Literale, d a m eine Konstante ist.


(e) Wir betrachten fiir alle i E {0, 1 , 2 , . . . , p ( I w l ) } , j ~ { 1 , . . . , , ~ } , t
{ 0 , 1 , . . . , p ( [ w [ ) } , k E {0, 1 , . . . , s } die Formel

Ei,j,k,t -- C(i,j,t} V H(i,t) V S(k,t}V


V(C(i,j~,t + 1) A S(k~,t + 1) A H(i~,t + 1))
1

wobei 1 fiber alle m6glichen Aktionen der NTM M fiir das Argument (qk, Xj)
15~uft, mit
(q~, Xj~, z~) e ~(q~, X~), z~ e {L, R, N} und

il -- i + ~(zl), ~(L) - - 1 , ~(/~) - 1, ~(N) - 0.

Ei,j,k, t kann man betrachten als die Disjunktion folgender vier Bedingungen"
C(i, j, t}, d.h. die i-te Position des Bandes enthS~lt nicht Xj zum Zeitpunkt
t.
H(i, t},
d.h. der Kopf ist nicht auf d e r / - t e n Position zum Zeitpunkt t.
S(k,t},d.h. M ist nicht im Zustand qk zum Zeitpunkt t.
- Die Anderung der t-ten Konfiguration entspricht einer m6glichen Aktion bei
dem Argument (q~, Xj) und der Kopfposition i.
Die Idee der Konstruktion von Ei,j,k,t ist jetzt offensichtlich: Wenn keine der
ersten drei Bedingungen erfiillt ist, dann ist (q~, Xj) das aktuelle Argument
fiir den (t + 1)-ten Schritt und der Kopf ist auf d e r / - t e n Position des Bandes.
In diesem Fall miissen also die Anderungen genau nach der ~-Funktion von M
fiir das Argument (qk, Xj) vorgenommen werden. Wenn man die l-te m6gliche
Aktion (qk~,Xjt, zl) beim Argument (q~, Xj) auswS~hlt, dann muss Xj an der i-
ten Position durch Xj~ ersetzt werden, der neue Zustand muss qkt sein, und der
Kopf muss sich entsprechend dem zl bewegen. Ei,j,~,t beinhaltet O(1) Literale,

12Die Formel x ~-~ y ist ~quivalent zu der Formel (~ V y) A (x V ~). Somit ist D~,j,t ~-~
(C(i,j,t) V C ( i , j , t + 1) V H(i,t)) A (C(i,j,t) V C ( i , j , t + 1) V H(i,t)).
6.6 NP-VollstSmdigkeit 249

da 1 eine Konstante ist, und deshalb hat auch die Umwandlung in KNF 0(1)
Literale. Somit hat die gesuchte Formel

E- A Ei,o,~,t
O<_i,t<_p(lw[)
l <j<rn
0<k<s

O((p(Iwl))2) Literale.
(f) Die Anfangskonfiguration yon M auf w muss auf dem Band Cw haben, der
Kopf muss auf die 0-te Position des Bandes zeigen und M muss im Zustand
q0 sein. Wenn w = Xj~Xj~... Xj, fiir j~ E {1, 2 , . . . , m}, n E IN und X1 = r
dann kann man die Anforderung, dass die Konfiguration zum Zeitpunkt 0 die
Anfangskonfiguration yon M auf w ist, wie folgt ausdriicken:

r = S(0,0) A H(0,0} A C(0, 1,0}

a A a A
1<r<n n + 1 _<d_<p([ w ])

Die a n z a h l der Literale in F ist in und F ist in KNF.


(g) Die einfache Formel

c-

garantiert, dass die letzte (p(l~l)-t~) Konfiguration den Zustand qaccept enth/~lt.

GemSA3 der Konstruktion der Formel BM(W) ist es offensichtlich, dass BM(w)
genau dann erfiillbar ist, wenn eine akzeptierende Berechnung von M auf w
existiert. Die Formel BM(W) kann algorithmisch aus den Daten M, w und
p(Iwl) generiert werden. Die ZeitkomplexitS~t zur Berechnung von BM(W)ist
asymptotisch in der LS~nge der Darstellung yon BM(w). Wie wir ausgerechnet
haben, ist die Anzahl der Literale in BM(w)in O((p(Iwl))3). Wenn wir BM(w)
fiber Elogic darstellen, muss jede Variable bin~tr kodiert werden. Weil die An-
zahl der Variablen in O((p(Iwl))2) liegt, kann jede Variable durch O(log2(Iwl) )
Bits reprS~sentiert werden. Damit ist die LS~nge von BM(W) und somit die Zeit-
komplexitSot von BM in O((p(Iwl))a. log2(Iwl) ). Also ist BM eine polynomielle
Reduktion von L(M) auf SAT. D
Im Beweis von Satz 6.9 haben wir gezeigt, dass alle Sprachen aus NP auf
SAT reduzierbar sind. Dies bedeutet nichts anderes, als dass man jede Instanz
eines Problems aus NP als das Problem der Erfiillbarkeit einer Formel darstel-
len kann. Daraus resultiert die Sichtweise, dass ,,die Sprache der Boole'schen
Formeln" stark genug ist, um jedes Problem aus NP darzustellen.
250 6 Komplexit~tstheorie

Die NP-VollstSmdigkeit von SAT ist der Startpunkt 13 zur Klassifizierung der
Entscheidungsprobleme beziiglich ihrer ZugehSrigkeit zu P. Um die NP-Voll-
stSmdigkeit anderer Probleme zu beweisen, benutzen wir die Methode der Re-
duktion, die auf folgender Beobachtung basiert.

L e m m a 6.8. Seien L1 und L2 zwei Sprachen. Falls L1 <_p L2 und L1 ist NP-
schwer, dann ist auch L2 NP-schwer.

A u f g a b e 6.21. Beweisen Sie Lemma 6.8.

Im Folgenden benutzen wir Lemma 6.8, um die NP-VollstSmdigkeit einiger


Sprachen aus NP zu beweisen. Unser erstes Ziel ist zu zeigen, dass ,,die Sprache
der Graphen (Relationen)" auch ausdrucksstark genug ist, um jedes Problem
aus NP darzustellen. Zur Veranschaulichung der Argumentation werden wir
im Folgenden direkt mit Objekten wie Graphen und Formeln arbeiten, statt
streng formal fiber die Kodierungen yon Graphen und Formeln zu sprechen.
Somit gilt

SAT = {(I) I (I) ist eine erfiillbare Formel in KNF},


3SAT = {(I) I (I) ist eine erfiillbare Formel in 3KNF},
CLIQUE = {(G, k) lG ist ein ungerichteter Graph,
der eine k-Clique enthglt}, und
VC = {(G, k) lG ist ein ungerichteter Graph mit einer
Knoteniiberdeckung der MS~chtigkeit
h6chstens k},

wobei eine Knoteniiberdeckung eines Graphen G - (V~E)jede Menge von


Knoten U c_ V ist, so dass jede Kante aus E mindestens einen Endpunkt in
U hat.
Sei q) eine Formel und sei F eine Belegung der Variablen yon q). Im Folgenden
bezeichnen wir durch p((I)) den Wahrheitswert yon (I) bei der Belegung ~. Also
ist (I) erfiillbar genau dann, wenn eine Belegung ~ mit p((I)) - 1 existiert.

L e m m a 6.9. SAT <p CLIQUE.

13SAT spielt also in der KomplexitStstheorie eine 5hnliche Rolle wie Ldiag in der Theorie
der Berechenbarkeit.
6.6 NP-VollstSmdigkeit 251

Beweis. Sei 9 - F1 A F2 A . . . A F,~ eine Formel in KNF, Fi - (lil V li2 V . . . V


li~), ki E IN - {0} ftir i - 1, 2 , . . . , m .
Wir konstruieren eine Eingabe (G, k) des Cliquenproblems, so dass

E SAT e=~ (G, k) E CLIQUE.

Wir setzen

]~ - - ?Tt

G -- (V, n ) , wobei
v - {[i, J]l 1 _< i _< m, 1 _< j _< k~}, d.h. wir nehmen einen Knoten fiir jedes
Auftreten eines Literals in ~,
E- {{[i, j], [r,s]} I ftir alle [i, j], [r,s] E V, m i t i r r und l~j r l~}, d.h.
eine Kante {u, v} verbindet nur Knoten aus unterschiedlichen Klauseln,
vorausgesetzt das Literal von u ist nicht die Negation des Literals von v.

Betrachten wir die folgende Formel

(I) --(X 1 V x2)A (x I Vx2 V x 3 ) A (Xl V x3)Ax2.

Dgnn ist k - 4 und der Graph ist in Fig. 6.6 dgrgestellt.

F1

/ ,1 ' ~ [2,1 --..

/ ~
I
~ Xl -.
/
I
I \
m

X 2 \\
\\

r [2,3]
x3
',
/

[3,' 1]
I\

\\ X 1 [4 1])
", [3, 2] , iI __

\... X3

F3

Fig. 6.6
252 6 Komplexitgtstheorie

Es ist Mar, dass (G, k) durch einen polynomiellen Algorithmus aus (I) konstru-
iert werden kann.
Wir zeigen jetzt,

ist erfiillbar e, G enthiilt eine Clique der GrSfle k - m. (6.1)


Die Idee des Beweises ist folgende. Die Literale lio und l~ sind in G verbun-
den, wenn beide aus unterschiedlichen Klauseln kommen (i ~r r) und beide
gleichzeitig den Wert 1 annehmen k6nnen. Somit entspricht eine Clique in G
der Belegungen von Variablen von (I), die die Literale der Knoten der Clique
erfiillen (zu 1 auswerten). Z.B. bestimmt die Clique {[1, 1], [2, 1], [3, 2], [4, 1]}
in Fig. 6.6 die Belegung Xl = 1, xa = 1 und g2 = 1 (x2 = 0).
Wir beweisen die Aquivalenz (6.1) durch die zwei Implikationen.

(i) ,,~"" Sei (I) eine erfiillbare Formel. Dann existiert eine Belegung p, so dass
p((I)) - 1. Es gilt p(F~) - 1 fiir alle i E { 1 , . . . ,m}. Also existiert fiir jedes
i E { 1 , . . . , m } ein Index (~i E { 1 , . . . , k i } , so dass 9 ~ ( 1 ~ ) - 1. Wir behaupten,
dass die Knotenmenge {[i, ct~][ 1 _< i _< m} einen vollstgndigen Teilgraphen
von G bildet.
Es ist Mar, dass [1, c~1], [2, a2], ... , Ira, c~,~] aus unterschiedlichen Klauseln
sind.
Die Gleichheit l ~ - l j ~ fiir irgendwelche i, j, i r j, impliziert co(l~) r cv(lj~)
fiir jede Belegung co, und deshalb ist p ( l ~ ) - p(li~j) - 1 nicht m6glich. Also
_

ist l ~ r lj~ fiir alle i,j E {1, ... ,m}, i r j, und {[i,a~], [j,c~/]}} E E fiir
alle i,j E {1, . . . , m } , i r j. Somit ist {[i,c~] [ 1 _< i _< m} eine Clique der
Gr6fie m.
(ii) ,, ~"" Sei Q eine Clique von G mit k - m Knoten. Weil zwei Knoten durch
eine Kante in G nur dann verbunden sind, wenn sie zwei Literalen aus unter-
schiedlichen Klauseln entsprechen, existieren C~l, c~2,..., c~,~, c~v E {1, 2 , . . . , k;}
fiir p - 1 , . . . , m , so dass {[1, al], [2, c~2], . . . , [m,c~,~]} die Knoten von Q sind.
Folgend der Konstruktion yon G existiert eine Belegung p der Variablen yon
(I), so dass P(/I~I) - 9~(12~) "" 9~(1,~,~) - 1. Das impliziert direkt
p ( F 1 ) - 9~(F2) "" 9~(F,~) - 1 und so erfiillt p die Formel (I).

Lemma 6.10. C L I Q U E ---v VC.

Beweis. Sei G - (17, E) und k eine Eingabe des Clique-Problems. Wir kon-
struieren eine Eingabe (G, m) des Vertex-Cover-Problems wie folgt"
6.6 NP-VollstSmdigkeit 253

-Ivl-k
G - (If, E), wobei E - {{v, u} l u, v E If, v r u, {u, v} } E}.

Fig. 6.7 zeigt die Konstruktion des Graphen G aus einem gegebenen Graphen
G. Es ist klar, dass man diese Konstruktion in linearer Zeit realisieren kann.

Vl Vl

V5 V2 V5 V2

i I ~\

V4 V3 \ v4 v3/

G G

Fig. 6.7

Um ,, (G, k) E CLIQUE 4=~ (G, Iwl- k) c v c " ~ beweisen, reicht es zu zeigen

S C V ist eine Clique in G r V- S ist eine Knoteniiberdeckun9 in G.

In Fig. 6.7 sehen wir, dass die Clique {Vl, V2, V5} von G die Knoteniiberdeckung
{v3, v4} in G bestimmt. Wir beweisen diese Behauptung durch zwei Implika-
tionen.

(i) ,, =~"" Sei Seine Clique in G. Also gibt es keine Kante zwischen den Knoten
aus S in G. Daher ist jede Kante aus G adjazent zu mindestens einem Knoten
in V - S. Also ist V - S eine Knoteniiberdeckung in G.
(ii) ,,4="" Sei C c_ V eine Knoteniiberdeckung in G. Der Definition der Kno-
tentiberdeckung folgend ist jede Kante von G adjazent zu mindestens einem
Knoten aus C. Also gibt es keine Kante {u, v} in E fiir u, v E V - C . Deswegen
gilt {u, v} E E fiir alle u, v E V - C, u r v. Somit ist V - C eine Clique in G.

Das folgende Resultat zeigt, dass das SAT-Problem schwer bleibt, auch wenn
man sich auf eine Teilklasse yon Formeln beschrS~nkt. Wir sagen, dass eine
Formel in 3KNF ist, falls sie in KNF ist und jede Klausel hSchstens aus
254 6 Komplexit~tstheorie

drei Literalen besteht. Das 3SAT-Problem ist zu bestimmen, ob eine For-


reel in 3 K N F erfiillbar ist. Im Folgenden betrachten wir eine Belegung p von
Boole'schen Variablen aus einer Menge X = { X l , . . . ,x~} als eine Abbildung
~ : X ~ {0, 1}. Sei Y = { y l , . . . ,y~} eine Menge Boole'scher Variablen. Wir
sagen, dass cd: X U Y ~ {0, 1} eine E r w e i t e r u n g v o n ~a: X ~ {0, 1} ist,
far x.

L e m m a 6.11. SAT <p 3SAT.

Beweis. Sei F - F1 A F2 A ... A F,~ eine Formel in K N F fiber einer Menge


yon Boole'schen Variablen {Xl, . . . , x~}. Wir konstruieren eine Formel C' in
3 K N F (alle Klauseln enthalten hSchstens 3 Literale), so dass

F i s t erfiillbar ( F E SAT) <=~ C' ist erf/illbar (C' E 3SAT).

Die polynomielle R e d u k t i o n fiihren wir fiir jede der Klauseln F 1 , . . . , F,~ einzeln
wie folgt durch:
Falls Fi weniger als 4 Literale enth~lt, d a n n setzen wir Ci - Fi. Sei Fi =
Zl V z2 V - - - V zk mit k > 4, zi E {x1,~1, 9 9 - , x ~ , ~ } .
Wir konstruieren Ci fiber Variablen {Xl, ' ' ' , Xn, Yi,1, Yi,2,..., Yi,/~-3}, wobei
Yi,1, Yi,2,..., Yi,k-3 neue Variablen sind, die bei der K o n s t r u k t i o n yon Cj mit
j -r i nicht benutzt wurden.

G (zl V z2 V Y~,I) A (Yi,1 V Z3 V Yi,2) A (Yi,2 V z4 V Yi3)


A . . . A (Yi,~-4 V zk-2 V Yi,k-3) A (Yi,k-3 V Zk-1 V Zk).

Z.B. fiir Fi -- Xl V 2;3 V x2 V 2;7 V x9 e r h a l t e n w i r

C'i -- (xl V x3 V Yi,1) A (Yi,1 V x2 V Yi,2) A (Yi,2 V x7 V x9).

Um zu zeigen, dass F - F1 A . . . A F,~ genau d a n n erfiillbar ist, wenn C =


C1 A . . . A C,~ erfiillbar ist, reicht es, die folgende B e h a u p t u n g zu beweisen.

existiert eine Erweiterung p' von qp auf {Xl, ... , x~, yi,1, 99 9 Yi,k-3},
die C~ erfiillt.
6.6 NP-VollstSmdigkeit 255

(i) ,,~"" Sei p eine Belegung der Variablen in {Xl, x 2 , . . . , Xn} , SO dass p ( F i ) -
1. Also existiert ein j E { 1 , . . . , k } mit ~(zj) - 1. W i r n e h m e n ~ ' " { X l , . . . , x ~ ,
y i , 1 , . . . , y i , k - 3 } ~ {0, 1}, so dass
(a) ~ ( x l ) - p'(xl) fiir l - 1 , . . . , n ,
(b) p'(yi,1) . . . . p'(yi,j-2) - 1 u n d
- . . . - - 0.

Weil p'(zj) - 1, ist die ( j - 1)-te Klausel von C~ erfiillt. ~'(y~,~) - 1 g a r a n t i e r t


die Erfiillung der r - t e n Klausel yon C~ fiir r - 1 , . . . , j - 2. ~'(y~,~) - 0 (d.h.
y~,~ - 1) g a r a n t i e r t die Erfiillung der (s + 1)-ten Klausel von C~ fiir s -
j - 1, j , . . . , k - 3. D a m i t erfiillt p~ alle k - 2 Klauseln von Ci.
(ii) ,,~"" Sei ~ eine Belegung, so dass ~(F~) - 0. W i r beweisen, dass keine
E r w e i t e r u n g p' von p existiert, so dass p ' ( C i ) - 1. p ( F i ) - 0 impliziert p ( z l ) -
p(z2) - . . . p(zk) - 0. Also mug man, u m die erste Klausel zu erfiillen, fiir Yi,1
den Wert 1 einsetzen. D a n n ist p'(y~,~) - 0 u n d p'(yi,2) mug 1 sein, u m die
zweite Klausel zu erfiillen. Auf diese Weise b e k o m m e n wir P'(Yi,1) - P'(Yi,2) -
.... P~(Yi,k-a) - 1, u m diese ersten k - 3 Klauseln zu erfiillen. D a n n ist
aber P'(Y~,k-a) - 0, u n d weil p(zk_~) - p(zk) - 0, bleibt die letzte Klausel
unerfiillt.

Aufgabe 6.22. Beweisen Sie folgende polynomielle Reduktionen.


(i) VC <p CLIQUE.
(ii) 3SAT _<p VC.

Das K o n z e p t der NP-Vollstgndigkeit entwickelte sich zu der B a s i s m e t h o d e zur


Klassifizierung der Schwierigkeit yon a l g o r i t h m i s c h e n P r o b l e m e n . W i r kennen
heute m e h r als 3000 NP-vollstS~ndige Probleme. Das vorgestellte K o n z e p t der
NP-Vollstgndigkeit funktioniert aber nur fiir E n t s c h e i d u n g s p r o b l e m e . Im Fol-
genden wollen wir dieses K o n z e p t so modifizieren, dass es auch zur Klassi-
fizierung von O p t i m i e r u n g s p r o b l e m e geeignet ist. D a z u b r a u c h e n wir zuerst
Klassen von O p t i m i e r u n g s p r o b l e m e n , die 5~hnliche B e d e u t u n g wie die Klassen
P u n d N P f/Jr E n t s c h e i d u n g s p r o b l e m e haben. W i r b e g i n n e n mit der Klasse
N P O als Analogie zur Klasse N P fiir O p t i m i e r u n g s p r o b l e m e .

Definition 6.12. NPO ist die Klasse der Optimierungsprobleme, wobei

U - (Ez, Eo, L, 34, cost, goal) E N P O ,

falls folgende Bedingungen erfiillt sind:


256 6 Komplexittitstheorie

LEP
{Es kann effizient verifiziert werden, ob ein x E E*I eine zuliissige Eingabe
ist.},
es existiert ein Polynom Pu, so dass
(a) fiir jedes x e L und jedes y e M ( x ) , lyl-< pu(lxl)
{Die GrSfle jeder zuliissigen Ldsung ist polynomiell in der Einga-
begrSfle.},
(b) es ezistiert ein polynomieller Algorithmus A, der fiir jedes y E E*o
und jedes z E L mit lYl < Pu(Izl) entscheidet, ob y E A//(z) oder
nicht.
(iii) die Funktion cost kann man in polynomieller Zeit berechnen.

Wir sehen, dass ein Optimierungsproblem U in NPO ist, falls

1. man ellizient iiberpriifen kann, ob ein gegebenes Wort ein Problemfall (eine
Instanz) von U ist,
2. die Gr6fie der L6sungen polynomiell in der Gr6fie der Eingabe (des Pro-
blemfalls) ist und man in polynomieller Zeit verifizieren kann, ob ein y eine
zulS.ssige L6sung fiir einen gegebenen Problemfall ist, und
3. man die Kosten der zul~issigen L6sung etiizient berechnen kann.

Der Bedingung (ii.b) folgend sehen wir die Analogie zwischen NPO und VP.
Das konzeptuell Wichtigste ist aber, dass die Bedingungen (i), (ii) und (iii)
nattirlich sind, weft sie die Schwierigkeit yon U auf den Bereich der Optimie-
rung einschrS.nken und damit die Einordnung der praktischen L6sbarkeit yon
U unabhS.ngig machen yon solchen Entscheidungsproblemen wie, ob eine Ein-
gabe eine Instanz von U reprtisentiert oder ob y eine zulgssige L6sung fiir z
ist. Damit liegt der Schwierigkeitsgrad von Problemen in NPO eindeutig in der
Suche nach einer optimalen L6sung in der Menge aller zulgssigen L6sungen.
Die folgende Begriindung zeigt, dass MAX-SAT in NPO liegt.

1. Man kann effizient entscheiden, ob ein x E Elogic eine Boole'sche Formel in


KNF kodiert.
2. Fiir jedes x hat jede Belegung c~ E {0, 1}* der Variablen der Formel q)x die
Eigenschaft Ictl < Ixl, und man kann in linearer Zeit verifizieren, ob Ic~l gleich
der Anzahl der Variablen in ~x ist.
3. Ftir jede gegebene Belegung a der Variablen von ~x kann man in linea-
rer Zeit bez/iglich IxI die Anzahl der erfiillten Klauseln berechnen und so die
Kosten der zulgssigen L6sung a bestimmen.
6.6 NP-VollstSmdigkeit 257

Betrachten wir jetzt folgende Optimierungsprobleme. Das Problem des maxi-


malen Schnittes, M A X - C U T , ist, ftir einen Graphen G = (V, E) einen ma-
ximalen Schnitt zu finden. Ein Schnitt von G = (V, E) ist jedes Paar (V1, V2)
mit V1 U V2 = V und V1 A V2 = 0. Der Preis eines Schnittes (V1, V2) yon G ist
die Anzahl der Kanten zwischen V1 und V2, d.h.

Das Problem der minimalen Knotenfiberdeckung, M I N - V C , ist, ftir einen


Graphen G eine minimale Knotentiberdeckung (vertex cover) zu finden.

Aufgabe 6.23. Geben Sie formale Definitionen der Optimierungsprobleme MAX-CUT und
MIN-VC an und zeigen Sie, dass beide in NPO liegen.

Die folgende Definition definiert auf nattirliche Weise die Klasse PO von Opti-
mierungsproblemen, die die gleiche Bedeutung wie die Klasse P fiir Entschei-
dungsprobleme hat.

D e f i n i t i o n 6.13. P O ist die Klasse von Optimierungsproblemen U = (EI,


Eo, L, Ad, cost, goal), so dass

U E NPO und
es existiert ein polynomieller Algorithmus A, so dass fiir jedes x E L,
A(x) eine optimale LSsung fiir x ist.

Die Definition der NP-Schwierigkeit eines Optimierungsproblems erhalten wir


jetzt durch geschickte Reduktion zu einem NP-schweren Entscheidungspro-
blem.

D e f i n i t i o n 6.14. Sei U = (EI, E0, L, A/l, cost, goal) ein Optimierungsproblem


aus NPO. Die S c h w e l l e n w e r t - S p r a c h e ffir U ist

L a n g U = {(x, a ) E L x E~ool ]Optu(x) <_ Nummer(a)},

falls goal = Minimum, und

L a n g U : {(x, a ) E L • E~ool I Optu(x) >_ Nummer(a)},

falls goal = Maximum.


Wir sagen, dass U N P - s c h w e r ist, falls Lang U NP-schwer ist.
258 6 Komplexit~tstheorie

Zuerst zeigen wir, dass das in Definition 6.14 vorgestellte Konzept der NP-
Schwierigkeit fiir Optimierungsprobleme zum Beweisen von Aussagen der Form
U ~ PO unter der Voraussetzung P ~ NP geeignet ist.

L e m m a 6.12. Falls ein Optimierungsproblem U E PO, dann Lang U E P.

Beweis. Falls U E PO, dann existiert ein polynomieller Algorithmus A, der


fiir jedes x E L eine optimale LSsung fiir x berechnet und damit Optu(x)
bestimmt. Also kann man A benutzen, um Langu zu entscheiden. D

S a t z 6.10. Sei U E NPO. Falls U NP-schwer ist und P r NP, dann U ~ PO.

Beweis. Wir beweisen Satz 6.10 indirekt. Angenommen U E PO. Lemma 6.12
folgend gilt Lang U E P. Weil U NP-schwer ist, ist auch Lang U NP-schwer.
Somit ist Lang U eine NP-schwere Sprache in P, was P = NP fordert. D
Die folgenden Beispiele zeigen, dass die Definition 6.14 eine einfache Methode
zum Beweisen der NP-Schwierigkeit von Optimierungsproblemen bietet.

L e m m a 6.13. MAX-SAT ist NP-schwer.

Beweis. Es reicht zu zeigen, dass LangMAX_SAT NP-schwer ist. Wir zeigen


SAT _<p LangMAX-SAT. Sei x E L die Kodierung einer Formel (I)x mit rn Klau-
seln. Wir nehmen (x,m) als Eingabe ftir das Entscheidungsproblem
(LangMAX_SAT, E*). Es ist klar, dass

(z, rn) E LangMax_saT e , ~ ist erfiillbar.

Das Problem der maximalen Clique, MAX-CL, ist, fiir einen gegebenen Gra-
phen eine maximale Clique in G zu finden.

L e m m a 6.14. MAX-CL ist NP-schwer.

Beweis. Man bemerke, dass CLIQUE = LangMAX_CL. Da CLIQUE NP-schwer


ist, sind wir fertig. D

Aufgabe 6.24. Beweisen Sie, dass MAX-CUT und MIN-VC NP-schwer sind.
6.7 Zusammenfassung 259

6.7 Zusammenfassung

Das Hauptziel der Komplexit/itstheorie ist die Klassifikation der algorithmi-


schen Probleme beziiglich der Menge der Rechnerressourcen, die ben6tigt wer-
den, um die Probleme zu 16sen. Dabei erforscht man quantitative Gesetze
der Informationsverarbeitung und die Grenze der praktischen algorithmischen
L6sbarkeit.
Die wichtigsten Komplexit/itsmafie sind die ZeitkomplexitS~t und die Speicher-
platzkomplexitS~t. Das Basismodell eines Rechners ist in der abstrakten Kom-
plexit~ttstheorie die Mehrband-Turingmaschine. Die Komplexit~tt einer MTM
(eines Algorithmus) betrachtet man als eine Funktion f der Eingabel~tnge
n, wobei f(n) die maximale Komplexit/~t tiber alle Berechnungen auf Ein-
gaben der Lgnge n ist. Diese Komplexitgtsmessung nennt man die Messung
im schlechtesten Fall. Es existieren algorithmisch 16sbare Probleme yon be-
liebig hohem Schwierigkeitsgrad. Algorithmen von exponentieller Zeitkomple-
xitgt hglt man nicht fiir praktisch durchftihrbar.
Die praktische L6sbarkeit von Problemen wird mit der polynomiellen Zeitkom-
plexitgt verbunden. Die Klasse P ist die Menge aller Entscheidungsprobleme,
die man mit Algorithmen in polynomieller Zeit lasen kann. Die Definition der
Klasse P ist robust in dem Sinne, dass sie unabhgngig vonder Wahl des Rech-
nermodells ist.
Die ZeitkomplexitS~t der Arbeit einer nichtdeterministischen MTM M auf ei-
ner Eingabe w ist die Lgnge der kiirzesten korrekten Berechnung von M auf
w. Die typische Arbeit eines nichtdeterministischen Algorithmus besteht aus
nichtdeterministischem Raten und nachfolgender deterministischer Verifikati-
on des Geratenen. Die Klasse NP ist die Klasse aller Sprachen, die nichtde-
terministisch in polynomieller Zeit entscheidbar sind. Die Frage, ob P eine
echte Teilmenge von NP ist, ist wahrscheinlich die bekannteste bisher unbe-
antwortete Frage in der Theoretischen Informatik. Die Klasse NP enthglt viele
praktisch interessante Probleme, von denen man nicht weiss, ob sie in P lie-
gen. Man kann zeigen, dass die Frage, ob P ungleich NP ist,/~quivalent zu der
Frage ist, ob es schwerer ist, mathematische Beweise algorithmisch zu finden
als gegebene Beweise algorithmisch zu verifizieren.
Es ist uns nicht gelungen, Beweistechniken fiir untere Schranken der Zeit-
komplexitgt konkreter Probleme zu entwickeln. Damit fehlt uns die methodo-
logische Grundlage zur Klassifikation der Probleme in praktisch 16share und
praktisch unl6sbare. Das Konzept der NP-VollstS~ndigkeit erm6glicht uns aber,
Resultate der Art L ~ P unter der zusgtzlichen Voraussetzung P ~ NP zu zei-
260 6 Komplexittitstheorie

gen. Die NP-vollstS~ndigen Probleme sind die schwersten Probleme in NP in


dem Sinne, dass, wenn nur eines von ihnen in P w~tre, P = NP gelten miisste.
Die Hierarchies~ttze wurden bei Hartmanis, Stearns und Lewis [HS 65, HSL 65]
bewiesen. Die Begriffe der polynomiellen Reduktion und der NP-Vollst~tndig-
keit gehen auf die a r b e i t e n yon Cook [Coo 71] und Karp [Kar 72] zuriick. Das
klassische Buch yon Garey und Johnson [GJ 79] bietet eine detaillierte Dar-
stellung der Theorie der NP-Vollstgndigkeit. Hervorragende Pr~tsentationen
des T h e m a s ,,Praktische LSsbarkeit" kann m a n bei Lewis und P a p a d i m i t r i o u
[LP 78] und Stockmayer und C h a n d r a [SC 79] finden.
Es gibt mehrere gute Biicher, die sich mit KomplexitS~tstheorie beschSfftigen.
Eine exzellente Einfiihrung in die KomplexitS~tstheorie kann m a n in Lehr-
biichern yon Hopcroft und Ullman [HU 79] und Sipser [Sip 97] finden. Eine
ausfiihrliche Darstellung der Komplexit~tstheorie bieten Bovet und Crescenzi
[Be 94], P a p a d i m i t r i o u [Pap 94] und Balc~zar, Dfaz, und G a b a r r d [BDG 88,
B DG 90]. Von der deutschsprachigen Literatur empfehlen wir wSzmstens das
Lehrbuch yon Reischuk [Rei 90].

Kontrollaufgaben
1. Wie definiert man die Komplexit~it eines Algorithmus (einer TM) im schlechtesten
Fall? Warum benutzt man am h~ufigsten diese Art der Komplexit~itsmessung?
2. Die ZeitkomplexitS~t einer Turingmaschine kann man immer dutch einen konstan-
ten Faktor beschleunigen, wenn ihre Zeitkomplexit/it superlinear ist. Dies ist tiber-
raschend und kann unnatiirlich erscheinen. Hat dieses P h~inomen eine nattirliche
Erkltirung? Warum hat man diese ,Schwtiche" des Turingmaschinenmodells in der
Komplexittttstheorie akzeptiert?
3. Definieren Sie die O, ft und (9 Notation und erkl~iren Sie, warum man sich oft nur
mit einer asymptotischen Analyse zufrieden gibt.
4. Sei p(n) ein Polynom vom Grad d. Beweisen Sie, dass p(n) E 0 (n d) gilt. Gilt auch
c e
5. Wit haben gelernt, die Komplexittit von Algorithmen (Turingmaschinen) zu messen.
Jetzt mSchten wit die Komplexit~t von algorithmischen Problemen bestimmen. Wie
gehen wir vor? Warum kann man nicht einfach sagen, dass die Komplexit~it eines
Problems die Komplexit~it des optimalen Algorithmus ftir dieses Problem ist?
6. Bei der Messung der Komplexit~it von Algorithmen (Programmen) benutzt man zwei
unterschiedliche Arten der Messung - die Messung mit dem uniformen Kostenmafi
und die mit dem logarithmischen Kostenmafi. Diskutieren Sie die Vor- und Nachteile
dieser Marie.
7. Welche sind die fundamentalen KomplexitS~tsklassen und wie werden die definiert?
8. Wozu ist das Konzept der Konstruierbarkeit von Funktionen ntitzlich?
9. Was fiir Beziehungen gelten zwischen Speicherplatzkomplexit~tsklassen und Zeitkom-
plexit~itsklassen?
6.7 Zusammenfassung 261

10. Wie definiert man nichtdeterministische KomplexitS~tsklassen? Was fiir eine Rolle
spielen dabei die zeit- und platzkonstruierbaren Funktionen?
11. Welche Simulationen von nichtdeterministischer Zeitkomplexittit dutch deterministi-
sche Zeitkomplexittit kennen Sie? Formulieren Sie die Resultate als Beziehungen zwi-
schen Komplexittitsklassen und geben Sie eine detaillierte Beschreibung und Analyse
der Simulationstechniken.
12. Welche Griinde fiihrten dazu, dass man die Klasse P der in polynomieller Zeit 16sba-
ren Entscheidungsprobleme mit der Klasse der ,,praktisch" 16sbaren Probleme iden-
tifiziert? Warum hat man nicht beispielsweise die Klasse TIME (n 6) gew~ihlt?
13. Erklttren Sie die zwei unterschiedlichen M6glichkeiten, die Klasse NP zu definieren.
Wie htingt die nichtdeterministische Zeitkomplexittit mit der deterministischen Kom-
plexitgt der algorithmischen Beweisverifikation zusammen?
14. Kann man die Klasse NTIME (2 n) durch die Verifizierer beschreiben, die in der Zeit
O (2 n) arbeiten? Zur Begriindung Ihrer Antwort fiihren Sie einen detaillierten Beweis.
15. Geben Sie Polynomialzeit-Verifizierer fiir alle NP-vollstgndigen Sprachen, die Sie ken-
nen.
16. Beschreiben Sie das Konzept der polynomiellen Reduktion. Was sind die Ahnlichkei-
ten und die Unterschiede zur Reduktion in der Berechenbarkeit?
17. Geben Sie eine Menge von Boole'schen Variablen an, mit der man alle Situationen
auf einem Schachbrett beschreiben kann, in der sich nur Tiirme auf dem Schachbrett
befinden. Beschreiben Sie die Konstruktion einer Formel fiber diesen Variablen, die
genau dann erfiillt sind, wenn auf dem Schachbrett genau 8 Tiirme stehen, die sich
gegenseitig nicht bedrohen.
18. Sei kSAT das Erfiillungsproblem fiir Klauseln in kKNF, k E IN (eine Formel in KNF
ist in kKNF, wenn alle Klauseln h6chstens aus k Literalen bestehen).
Beweisen Sie folgende polynomielle Reduktionen.
(i) SAT <p 4SAT,
(ii) 5SAT _<p CLIQUE,
(iii) CLIQUE _<p 4SAT,
(iv) 4SAT _<p 3SAT,
(v) 5SAT <p VC,
(vi) VC <p SAT.
19. Erkl/iren Sie, wie man das Konzept der NP-Schwere auf Optimierungsprobleme fibe-
tragen kann.
20. Beweisen Sie die folgende Behauptung.
$ei U ein NP-schweres Optimierungsproblem. Falls U in polynomieller Zeit iDsbar ist,
dann gilt P = NP.
Wenn euch ein Wissenschaftler sagt:
,Dies ist das Ende,
hier kann man nichts mehr machen",
dann ist er kein Wissenschaftler.
L. Goul

i
7 Algorithmik fiir schwere Probleme

7.1 Zielsetzung

Die Komplexitgtstheorie liefert uns die Methoden zur Klassifikation der al-
gorithmischen Probleme bezfiglich ihrer Komplexitgt. Die Algorithmentheorie
ist dem Entwurf von effizienten Algorithmen zur L6sung konkreter Probleme
gewidmet. In diesem Kapitel wollen wit uns mit dem Entwurf yon Algorithmen
fiir schwere (z.B. NP-schwere) Probleme beschgRigen. Das mag etwas fiberra-
schend klingen, weil nach der in Kapitel 6 vorgestellten Komplexitgtstheorie
der Versuch, ein NP-schweres Problem zu 16sen, an die Grenze des physika-
lisch Machbaren st/Sf3t. Z.B. wiirde ein Algorithmus mit der Zeitkomplexitgt
2~ flit eine Eingabe der LS~nge 100 mehr Zeit brauchen, als das Universum
alt ist. Auf der anderen SeRe sind viele schwere Probleme von einer enormen
Wichtigkeit fiir die tggliche Praxis, und deshalb suchen Informatiker seit fiber
30 Jahren nach einer M6glichkeit, schwere Probleme in praktischen Anwen-
dungen doch zu bearbeiten. Die Hauptidee dabei ist, ein schweres Problem
(lurch eine (nach M6glichkeit kleine) Modifikation oder eine Abschwgchung
der Anforderungen in ein effizient 16sbares Problem umzuwandeln. Die wahre
Kunst der Algorithmik besteht darin, dass man die M6glichkeiten untersucht,
wie man (lurch minimale (fiir die Praxis akzeptable) Anderungen der Problem-
spezifikation oder der Anforderungen an die Probleml6sung einen gewaltigen
Sprung machen kann, und zwar von einer physikalisch nicht machbaren Be-
rechnungskomplexitgt zu einer Angelegenheit yon wenigen Minuten auf einem
Standard-PC. Um solche Effekte, die zur L6sung gegebener Probleme in der
Praxis f~hren k6nnen, zu erzielen, kann man folgende Konzepte oder deren
Kombinationen benutzen.
Schwere Probleminstanzen im Gegensatz zu typischen Probleminstanzen.
Wir messen die Zeitkomplexit~t als Komplexit~t im schlechtesten Fall~ was
7.1 Zielsetzung 263

bedeutet, dass die KomplexitS~t Time(n) die KomplexitS~t der Berechnungen


auf den schwersten Probleminstanzen der Gr6f3e n i s t . Es ist aber oft so, dass
die schwersten Probleminstanzen so unnatiirlich sind, dass sie als Aufgaben-
stellungen in der Praxis gar nicht vorkommen. Deswegen ist es sinnvoll, die
Analyse der ProblemkomplexitS~t in dem Sinne zu verfeinern, dass man die
Probleminstanzen nach ihrem Schwierigkeitsgrad klassifiziert. Eine erfolgrei-
che Klassifizierung k6nnte zur Spezifikation einer grogen Teilmenge von ettizi-
ent 16sbaren Probleminstanzen f~hren. Falls die in einer Anwendung typischen
Eingaben zu einer solchen Probleminstanzklasse geh6ren, ist das Problem in
dieser Anwendung gel6st.
Ezponentielle Algorithmen.
Man versucht nicht mehr, einen polynomiellen Algorithmus zu entwerfen, son-
dern einen Algorithmus mit einer exponentiellen Zeitkomplexit~t. Die Idee
dabei ist, dass einige exponentielle Funktionen ftir realistische Eingabegr6t3en
nicht so grot3e Werte annehmen. Tab. 7.1 zeigt anschaulich, dass (1.2) ~ Rech-
neroperationen fiir n = 100 oder 10.2v~ Operationen f~r n = 300 in ein paar
Sekunden durchf/ihrbar sind.
T a b . 7.1

Komplexit~t n = 10 n = 50 n = 100 n = 300


Tt
1024 16 Ziffern 31 Ziffern 91 Ziffern
2~ 32 ~ 33 9 106 16 Ziffern 46 Ziffern
(1.2) ~ 6 ~ 9100 ~ 8 3 - 106 24 Ziffern
1 0 . 2 v/-~ 89 ~ 1345 10240 ~ 1.64.106

Abschwiichung der Anforderungen.


Man kann die Anforderung, mit Sicherheit fiir jede Eingabe das richtige Resul-
tat zu berechnen, auf unterschiedliche Art und Weise abschwS~chen. Typische
ReprS~sentanten dieses Ansatzes sind randomisierte Algorithmen und Appro-
ximationsalgorithmen. Bei randomisierten Algorithmen tauscht man die de-
terministische Steuerung durch eine Zufallssteuerung aus. Dadurch kSnnen
mit einer beschrS~nkten Wahrscheinlichkeit falsche Resultate berechnet wer-
den. Wenn die Fehlerwahrscheinlichkeit nicht grSt3er als 10 -9 ist, dann weicht
die ZuverlS~ssigkeit solcher randomisierten Algorithmen von der eines korrek-
ten deterministischen Algorithmus' nicht allzu sehr ab. Die Approximationsal-
gorithmen benutzt man zur L6sung von Optimierungsproblemen. Anstatt zu
fordern, eine optimale L6sung zu errechnen, geht man zu der Forderung fiber,
eine L6sung zu errechnen, deren Kosten (Qualits~t) sich nicht allzu sehr yon der
optimalen LSsung unterscheiden. Beide dieser AnsS~tze kSnnen einen Sprung
von exponentieller zu polynomieller Komplexitgt ermSglichen.
264 7 Algorithmik fiir schwere Probleme

Die Zielsetzung dieses Kapitels ist es, einige dieser Konzepte ansatzweise vor-
zustellen. Im Abschnitt 7.2 stellen wir die pseudopolynomiellen Algorithmen
vor, die einen speziellen Ansatz zur Spezifikation einer Teilklasse von effizient
16sbaren Probleminstanzen darstellen und so als eine Methode zur Realisierung
des ersten Ansatzes gelten. Das Konzept der Approximationsalgorithmen wird
in Abschnitt 7.3 vorgestellt. In Abschnitt 7.4 prS~sentieren wir die lokalen A1-
gorithmen, die MSglichkeiten fiir die Realisierung aller drei oben vorgestellten
Konzepte bieten. Die lokale Suche ist die Basis fiir mehrere Heuristiken. In Ab-
schnitt 7.5 erklS~ren wir die Heuristik des Simulated Annealing, die auf einer
Analogie zu einem physikalischen Vorgang basiert. Dem Konzept der Rando-
misierung wird wegen seiner Wichtigkeit ein eigenes Kapitel 8 gewidmet.

7.2 Pseudopolynomielle Algorithmen

In diesem Abschnitt betrachten wir eine spezielle Klasse von Problemen, de-
ren Probleminstanzen man als Folge yon Zahlen interpretieren kann. Solche
Probleme nennen wir Z a h l p r o b l e m e und praktisch ist es so, dass wir jedes
Problem mit Eingaben aus {0, 1, r mit unbeschrgnkter Anzahl von Sym-
bolen ~ in den zulgssigen Eingaben als ein Zahlproblem verstehen k6nnen.
Sei

x = xl#x2CP... r xi E {0, 1}* fiir i = 1, 2 , . . . , n

ein Wort fiber {0, 1, r Wir interpretieren x als folgenden Vektor

Int(x) = (Nummer(Xl), Nummer(x2), . . . , Nummer(Xn))

von n natiirlichen Zahlen. Jedes graphentheoretische Problem 1, deren Problem-


instanzen man durch die Adjazenzmatrix repr~tsentieren kann, ist ein Zahlpro-
blem, weil man jede Adjazenzmatrix als eine Folge von Nullen und Einsen
darstellen kann. Das TSP ist ein Zahlproblem, wobei die Zahlenfolge die Ko-
sten der einzelnen Kanten reprgsentiert.
Wir definieren fiir jedes x = XlCPX2~... r mit xi E {0, 1}* f/Jr i = 1, 2 , . . . , n,

MaxInt(x) = max{Nummer(xi) l i = 1, 2 , . . . , n}.

1Wie das Problem der Knotentiberdeckung oder das CLIQUE-Problem.


7.2 Pseudopolynomielle Algorithmen 265

Die Hauptidee des Konzeptes der pseudopolynomiellen Algorithmen ist die


Suche nach Algorithmen, die ettizient auf solchen Eingaben x sind, bei denen
MaxInt(x) nicht wesentlich gr6fier ist als IxI . Weil eine Zahl Nummer(y) ex-
ponentiell gr6fier ist als die Lb~nge ihrer binbzen Darstellung y, handelt es sich
um eine echte Einschrb~nkung.

D e f i n i t i o n 7.1. Seibt ein Zahlproblem und sei A ein Algorithmus, derbt 15st.
Wit sagen, dass A ein p s e u d o p o l y n o m i e l l e r A l g o r i t h m u s ffir U ist, falls
ein Polynom p mit zwei Variablen existiert, so dass

TimeA(x) E O(P(lx I, Maxlnt(x)))

fiir alle Pwbleminstanzen x von H.

Wir bemerken gleich, dass fiir Probleminstanzen x mit Maxlnt(x) _< h(l l) fiir
ein Polynom h die Zeitkomplexitat TimeA(x) polynomiell in Izl ist.

D e f i n i t i o n 7.2. Sei H ein Zahlproblem und sei h eine Funktion von IN nach
IN. Das h - w e r t b e s c h r ~ i n k t e T e i l p r o b l e m v o n U, W e r t ( h ) - U , ist das Pro-
blem, das man aus H dutch die Einschriinkung der Menge der zuliissigen Ein-
gaben auf die Klasse der Probleminstanzen x mit MaxInt(x) _< h(l l) ~h~zt.

Die nb~chste Behauptung zeigt, dass man auf diese Weise grofie Klassen von
leichten Probleminstanzen eines schweren Problems spezifizieren kann.

S a t z 7.1. Sei H ein Zahlproblem und sei A ein pseudopolynomieller Algorith-


runs fiir H. Dann existiert fiir jedes Polynom h ein polynomieller Algorithmus
fiir das Problem Wert(h)-H. 2

Beweis. Weil A ein pseudopolynomieller Algorithmus fiir H ist, existiert ein


Polynom p mit zwei Variablen, so dass

TimeA(x) E O(p(lxl), MaxInt(x))

fiir jede Probleminstanz x yon/1/. Weil h e i n e polynomielle Funktion ist, exi-


stiert eine Konstante c, so dass MaxInt(x) E O(IxI ~) ffir alle Probleminstanzen
x von Wert(h)-H. Damit ist TimeA(x) E O(P(Ix I, Ixlc)) und somit ist A ein
polynomieller Algorithmus fiir Wert(h)-H. D

2Falls /1/ ein Entscheidungsproblem ist, bedeutet das, dass Wert(h)-H c P. Falls /1/ ein
Optimierungsproblem ist, bedeutet das, dass Wert(h)-H E PO.
266 7 A l g o r i t h m i k fiir schwere P r o b l e m e

Wir zeigen die Anwendung dieses Konzeptes fiir die L6sung des Rucksack-
Problems, welches das folgende NP-schwere Optimierungsproblem ist.

Eingabe: 2n + 1 positive ganze Zahlen Wl, w2,... , wn, c1,... , Cn, b ftir ein n E
{0}.
{Diese Zahlen reprgsentieren n Objekte, wobei wi dass Gewicht des/-ten
Objektes und cider Nutzen des/-ten Objektes fiir i = 1, 2 , . . . , nist. Die
Zahl b ist eine obere Schranke fiir das Gewicht eines Rucksacks, in den
man einige Objekte einpacken kann.}
Zuliissige LSsungen: Fiir jedes I = ( W l , w 2 , . . . , Wn, C 1 , . . . , Cn, b) ist

M(I)- {T C _ { 1 , . . . , n } ~-~wi_<b}.
iET

{Eine zulS~ssige L6sung kann jede Teilmenge der Menge aller n Objekte
sein, deren Gesamtgewicht die erlaubte Gewichtskapazit~t des Rucksacks
b nicht iiberschreitet.}
Kosten: Fiir alle Eingaben I und alle T C_ A//(I), ist

Ci.
iET

{Die Kosten einer zul~ssigen L6sung T sind der Gesamtnutzen der Ob-
jekte, die in den Rucksack eingepackt worden sind.}
Ziel: Maximum.

Wir m6chten jetzt einen pseudopolynomiellen Algorithmus fiir das Rucksack-


Problem mit der Methode der dynamischen Programmierung entwerfen. Wir
wollen die L6sung einer Probleminstanz I = (Wl, w 2 , . . . , w~, c1,..., c~, b) so
berechnen, dass wir mit der Teilinstanz I1 = (Wl, Cl, b) anfangen und fiber

/ri - - ( W l , W 2 , . . . , Wi, C 1 , . . . , Ci, b)


fiir i - 2, 3 , . . . , n his zu I - I~ kommen. Genauer, wir wollen fiir jede Instanz
Ii und jedes k E {0, 1, 2 , . . . , E~=I cj} ein Tripel

6 { 0,1,2,...,
j=l
cj • {0,1,2, ,b} •

bestimmen, wobei Wi,k das minimale Gewicht ist, bei dem man den Nutzen k
fiir die Instanz Ii erhalten kann. Die Menge T~,k C_ { 1 , . . . , i} ist die Menge yon
7.2 Pseudopolynomielle Algorithmen 267

Indizes, die genau den Nutzen k bei dem Gesamtgewicht Wi,~ definiert, d.h.

)[, ci - k und )[, wi -


W ,k .
j ETi,k j ETi,k

Wir bemerken, dass mehrere Indexmengen den gleichen Nutzen k und das
gleiche Gewicht Wi,k bestimmen k6nnen. In solchen FS~llen wS~hlen wir beliebig
eine aus, urn die Erreichbarkeit yon (k, Wi,k) zu dokumentieren. Andererseits
kann es vorkommen, dass ein Gesamtnutzen k in Ii nicht erreichbar ist. In die-
sere Fall wird kein Tripel fiir k hergestellt. Im Folgenden bezeichnet T R I P LEi
die Menge aller Tripel f~r Ii. Bemerke, dass
i
ITRIPLE I < + 1.
j=l

Ein wichtiger Punkt ist, dass man TRIPLEi+I aus TRIPLE/ in der Zeit
O(TRIPLEi) berechnen kann. Urn TRIPLEi+I zu berechnen, berechnet man
zuerst

SET/+I TRIPLE~ O {(k + Ci+l, Wi,k + Wi+l, ri,k U {i Jr- 1}) I


(k, W~,k, T~,k)E TRIPLE~ und W~,k + W~+l _< b}

durch das zusgtzliche Einpacken des (i + 1)-ten Objektes zu jedem Tripel in


TRIPLEi, falls dabei das Gewicht b nicht iiberschritten wird. TRIPLEi+I ist
dann eine Teilmenge yon SETi+I, bei der man fiir jeden erreichbaren Nutzen
k ein Tripel aus SETi+I mit minimalem Gewicht f/Jr den Nutzen k genom-
men hat. Offensichtlich bestimmt das Tripel mit dem maximalen Nutzen in
TRIPLE~ eine optimale L6sung der Probleminstanz I~. Somit kann man den
entworfenen Algorithmus wie folgt darstellen.
Algorithmus D P R

f__/iTtgabe: Z = (Wl, w 2 , . . . , Wn, C1,... , Cn, b) ~ (IN - {0}) 2nq-1 fiir eine positive
ganze Zahl n.
Phase 1. TRIPLE(I) = {(0, 0, 0)} O {(Cl, Wl, {1})} I falls Wl _< b}.
Phase 2. f o r i = l t o n - l d o
begin S E T ( / + 1 ) : = TRIPLE(i);
f o r jedes (k, w, T) E TRIPLE(i) do
begin if w + wi+ 1 ~ b then
S E T ( / + 1 ) : : S E T ( / + 1)
U {(/{ -Jr-6i+1, w qL W i + l ' T U {i + 1})};
268 7 Algorithmik fiir schwere Probleme

e n d

Bestimme T R I P L E ( / + 1) als eine Teilmenge yon S E T ( / + 1),


die fiir jeden erreichbaren Nutzen in SET(/ + 1) genau ein
Tripel enthS~lt, und zwar ein Tripel mit dem minimalen
Gewicht ffir den Nutzen k.
e n d

Phase 3. Berechne
n

c ' - max{k e { 1 , 2 , . . . , ci} I (k, w, T) E TRIPLE(n)}.


i=1

Ausgabe: Die Indexmenge T ,so dass (c, w, T) E TRIPLE(n).

Wir illustrieren die Arbeit des Algorithmus' DPR an folgender Probleminstanz


I - (Wl,W2,...,ws, c l , . . . , c s , b), wobei

W l - 23 w 2 - 15 W 3 -- 15 W4--33 w 5 - 32
Cl 33 c2 23
- - C3 - - 11 C4 - - 35 c5 11
-

und b - 65. Offensichtlich ist 1 1 -- (23, 33, 65) und die einzig erreichbaren
Nutzen sind 0 und 33. Damit gilt

TRIPLE~ - {(0, 0, 0), (33, 23, {1})}.

/2 - (23, 15, 33, 23, 65) und die einzig erreichbaren Nutzwerte fiir/2 sind 0, 23,
33 und 56. Somit erh~ilt man

TRIPLE2 - {(0, 0, 0), (23, 15, {2}), (33, 23, {1}), (56, 38, {1, 2})}.

Es ist /3 = (23, 15, 15, 33, 23, 11, 65). Das Einpacken des dritten Objektes ist
fiir jedes Tripel aus TRIPLE2 mSglich und bei jedem neuen Tripel erhalten
wir dabei einen neuen Nutzwert. Damit hat TRIPLE3 die doppelte Mgchtigkeit
wie TRIPLE2 (d.h. SET3 = TRIPLE3) und

TRIPLE3 {(0, 0, 0), (11, 15, {3}), (23, 15, {2}),


(33, 23, {1}), (34, 30, {2, 3}), (44, 38, {1, 3}),
(s6, 38, {1, 2}), (67, s3, {1, 2, 3})}.

Ffir die Tripel (44, 38,{1,3}), (56, 38,{1,2}) und (67, 53,{1,2,3}) aus
TRIPLE3 kann man das vierte Objekt in den Rucksack nicht mehr einpacken
und so erhalten wir
7.2 PseudopolynomielleAlgorithmen 269

TRIPLE4 TRIPLEa O {(35, 33, {4}), (46, 48, (3, 4}),


(58, 48, {2, 4}), (68, 56, {1, 4}), (69, 63, {2, 3, 4})}.

Am Ende erhalten wir fiir die Instanz I = / 5

TRIPLE5 {(0, 0, 0), (11, 15, {3}), (22, 47, {3, 5}),
(23, 15, {2}), (33, 23, {1}), (34, 30, {2, 3}),
(35, 33, {4}), (44, 38, {1, 3}), (45, 62, {2, 3, 5}),
(46, 48, {3, 4}), (56, 38, {1, 2}), (58, 48, {2, 4}),
(67, 53, {1, 2, 3}), (68, 56, {1, 4}), (69, 63, {2, 3, 4})}.

Damit ist {2, 3, 4} die optimale L6sung fiir I, weil (69, 63, {2, 3, 4}) ein Tripel
mit dem maximalem Nutzwert 69 in TRIPLE5 ist.

Aufgabe 7.1. Simulieren Sie die Arbeit des Algorithmus DPR fiir die Probleminstanz
(1, 3, 5, 6, 7, 4, 8, 5, 9) des Rucksack-Problems.

Im Folgenden analysieren wir die ZeitkomplexitS~t des Algorithmus DPR.

Satz 7.2. Fiir jede Instanz I des Rucksack-Problems ist

TimeDpa(I) E O(lII 2. MaxInt(I))

und damit ist DPR ein pseudopolynomieller Algorithmus fiir das Rucksackpro-
blem.

Beweis. Die Zeitkomplexit5t der ersten Phase ist in 0(1). Fiir die Pro-
bleminstanz I = (Wl,W2,...,w~,cl,...,c~,b) berechnet DPR n - 1 Mengen
TRIPLE(/+ 1). Die Berechnung yon TRIPLE(/+ 1) aus TRIPLE(i) kann man
in der Zeit O(ITRIPLE(i + 1)1) durchfiihren. Weil
n

ITRIPLE(i + 1)1 _< ~ cj _< n. MaxInt(I)


j=l

fiirjedes i C {0, I,..., n}, liegt die gesamte Zeitkomplexit~t der zweiten Phase
in O(n 2. MaxInt(I)).
270 7 Algorithmik fiir schwere Probleme

Die ZeitkomplexitS~t der dritten Phase liegt in O(n. MaxInt(I)), weil man da
ein Maximum aus h6chstens n - M a x l n t ( I ) Werten bestimmt. Weil n _< II ,

WimeDpa(I) E o(1II MaxInt(I)).

Wir bemerken, dass pseudopolynomielle Algorithmen in der Praxis sehr er-


folgreich sein diirften. Oft sind Gewichte und Nutzen Zahlen aus einem festen
Intervall und damit unabhS~ngig yon der Anzahl der Parameter der Problemin-
stanz. Damit k6nnen die pseudopolynomiellen Algorithmen auf typischen in
der Praxis auftretenden Probleminstanzen schnell die L6sung liefern. Das In-
teresse aus der Praxis fiir den Entwurf yon pseudopolynomiellen Algorithmen
stellt uns eine neue Klassifizierungsfrage. F/Jr welche NP-schweren Probleme
existieren pseudopolynomielle Algorithmen und fiir welche gibt es keine? Wir
suchen nach einer Methode, mit der man zeigen k6nnte, dass ein Zahlproblem
so schwer ist, dass bei der Voraussetzung P ~r NP kein polynomieller Algo-
rithmus fiir Probleminstanzen mit kleinen Zahlen existiert. Das Konzept der
NP-VollstS~ndigkeit funktioniert auch fiir diese Anwendung.

D e f i n i t i o n 7.3. Ein Zahlproblem bt heiflt s t a r k N P - s c h w e r , falls ein Poly-


nora p existiert, so dass Wert(p)-N NP-schwer ist.

Die folgende Behauptung zeigt, dass die starke NP-Schwierigkeit das gesuchte
Konzept fiir Beweise der Nichtexistenz von pseudopolynomiellen Algorithmen
liefert.

Satz 7.3. Sei bt ein stark NP-schweres Zahlpvoblern. Falls P r NP gilt, dann
ezistiert kein pseudopolynomieller Algorithmus fiir ld.

Beweis. Weil b/ stark NP-schwer ist, existiert ein Polynom p, so dass das
Problem Wert(p)-b/NP-schwer ist. Angenommen, es gibt einen pseudopolyno-
miellen Algorithmus fiir b/. Nach Satz 7.1 impliziert die Existenz eines pseudo-
polynomiellen Algorithmus fiir b/die Existenz eines polynomiellen Algorithmus
fiir Wert(h)-b/ftir jedes Polynom h. Aber das bedeutet, dass wir einen polyno-
miellen Algorithmus fiir das NP-schwere Problem Wert(p)-b/haben und somit
P = NP gilt. Dies ist ein Widerspruch zur Annahme P r NP. D
Wir k6nnen also wieder die Methode der Reduktion anwenden, um die Nicht-
existenz eines pseudopolynomiellen Algorithmus fiir ein gegebenes Problem zu
zeigen. Im Folgenden illustrieren wir die Anwendung der starken NP-Schwierig-
keit, indem wir zeigen, dass TSP stark NP-schwer ist. Wir benutzen dabei die
7.3 Approximationsalgorithmen 271

bekannte Tatsache, dass das Entscheidungsproblem des Hamiltonschen Kreises


(HK) NP-vollstgndig ist. Das Problem HK ist zu entscheiden, ob ein gegebener
Graph einen Hamiltonschen Kreis (einen Kreis, der durch jeden Knoten des
Graphen genau einmal ftihrt) besitzt.

L e m m a 7.1. Das TSP ist stark NP-schwer.

Beweis. Weil HK NP-schwer ist, reicht es

HK <_p Langwert(p)-TSP

fiir das Polynom p(n) - n zu zeigen.


Sei G - (V, E) eine Eingabe von HK. Sei I V I - n fiir eine positive ganze Zahl
n. Wir konstruieren einen gewichteten vollstS~ndigen Graphen (K~, c) mit K~ =
(V, Evon) wie folgt. Evon - {{u, v} l u, v E V, u -r v} und die Gewichtsfunktion
C'Evon ~ {1, 2} ist definiert durch

c(e)-i falls cEE, und


c(e)-2 falls c@E.

Wir bemerken, dass G einen Hamiltonschen Kreis genau dann enthS~lt, wenn
die Kosten der optimalen L6sung ftir (Am, c) genau n betragen, d.h. wenn
((K~, c), n) E Langwert(p)-TSP gilt. Damit entscheidet jeder Algorithmus, der
LartgWert(p)_TS P entscheidet, auch das Problem des Hamiltonschen Kreises. D
Aufgabe 7.2. Betrachten Sie die folgende Verallgemeinerung des Knoteniiberdeckungspro-
blems. Gegeben ist ein Graph G - (V, E) mit Gewichten aus IN fiir jeden Knoten aus V.
Die Kosten einer Uberdeckung S c_ V sind die Summe der Gewichte der Knoten in S.
Das gewichtete Uberdeckungsproblem ist ein Minimierungsproblem, in dem man eine ko-
stengiinstige Uberdeckung sucht. Beweisen Sie, dass das gewichtete {)berdeckungsproblem
stark NP-schwer ist.

7.3 Approximationsalgorithmen

In diesem Abschnitt stellen wir das Konzept der Approximationsalgorithmen


zur L6sung schwerer Optimierungsprobleme vor. Die Idee ist, den Sprung yon
exponentieller ZeitkomplexitS~t zu polynomieller Zeitkomplexit/~t durch die Ab-
schwS~chung der Anforderungen zu erreichen. Statt der Berechnung einer op-
timalen L6sung fordern wir nur die Berechnung einer fast optimalen L6sung.
Was der Begriff ,,fast optimal" bedeutet, legt die folgende Definition fest.
272 7 Algorithmik fiir schwere Probleme

D e f i n i t i o n 7.4. Sei N = (EI, Eo, L, M , cost, goal) ein Optimierungsproblem.


Wir sagen, dass A ein z u l ~ s s i g e r A l g o r i t h m u s ffir /,4 ist, falls fiir jedes
x E L die Ausgabe A(x) der Berechnung von A auf x eine zuliissige LSsung
(d.h. e
Sei A ein zulgssiger Algorithmus fiir ld. Fiir jedes x E L definieren wit die
A p p r o x i m a t i o n s g f i t e G i i t e A ( x ) v o n A a u f x dutch

{cost(A(x)) Opts(x) }
GiiteA(x) - max Optu(x ) 'cost(A(x)) '

wobei Optu(x ) die Kosten einer optimalen LSsung fiir die Instanz x von bt
sind.
Fiir jede positive Zahl 6 > 1 sagen wit, dass A ein 6 - A p p r o x i m a t i o n s -
a l g o r i t h m u s f i b / , 4 ist, falls

GiiteA(x) _< 6

fiir jedes x E L.

Wir illustrieren das Konzept der Approximationsalgorithmen zuerst fiir das


Problem der minimalen Knoteniiberdeckung. Die Idee ist, effizient ein maxi-
males Matching 3 in dem gegebenen Graphen zu finden und dann die zu diesem
Matching inzidenten Knoten als eine Knoteniiberdeckung auszugeben.

Algorithmus VCA

Eingabe: Ein Graph G - (V, E).


Phase 1. C "- 0;
{Wghrend der Berechnung gilt C c_ V und am Ende der Berechnung
enthglt C eine Knoteniiberdeckung fiir G.}
A.-0;
{Wghrend der Berechnung gilt A c_ E und am Ende der Berechnung ist
A ein maximales Matching.}
E' "- E;
{Wghrend der Berechnung enthglt E' C E genau die Kanten, die yon
dem aktue]]en C noch nicht iiberdeckt werden. A m Ende der Berechnung
gilt E ' - 0.}
3Ein Matching in G - (V, E) ist eine Menge M C_E von Kanten, so dass keine zwei Kanten
aus M mit dem gleichen Knoten inzident sind. Ein Matching M ist maximal, falls fiir jedes
e E E - M die Menge M O {e} kein Matching in Gist.
7.3 Approximationsalgorithmen 273

Phase 2. w h i l e E ~ ~ 0 do
b e g i n nehme eine beliebige Kante {u, v} aus E~;
C := C u { u , v } ;
A:=AU{{u,v}};
E ~ := E ~ - {alle Kanten inzident zu u oder v};
end
Ausgabe: C
Betrachten wir einen m6glichen Lauf des Algorithmus VCA auf dem Graphen
aus Fig. 7.1(a). Sei {b, c} die erste Kante, die VCA gew~hlt hat. Dann wird C =
{b, c}, A - {{b, c}} und E' - E - {{b, a}, {b, c}, {c, e}, {c, d}} (Fig. 7.1(b)).
Wenn die zweite Wahl einer Kante aus E' auf {e, f} fair (Fig. 7.1(c)), dann
C - {b,c,e, f}, A - {{b,c}, {e, f}} und E ' - {{d,h}, {d,g}, {h,g}}. Wenn
man in der letzten Wahl {d, g} auswahlt, dann erhalt man C - {b, c, e, f, d, g},
A - {{b, c}, {e, f}, {d, g}} und E ' - 0 . Damit ist C eine Knoteniiberdeckung
mit den Kosten 6. Man bemerke, dass {b, e, d, g} die optimale Knotentiber-
deckung ist und dass diese optimale Uberdeckung bei keiner Wahl yon Kanten
yon VCA erreicht werden kann.

O
(~) (b)

(c) (d)
Fig. 7.1

Aufgabe 7.3. Finden Sie eine Wahl yon Kanten in der zweiten Phase yon VCA, so dass
die resultierende Uberdeckung C alle Knoten von G in Fig. 7.1(a) enth~lt.

S a t z 7.4. Der Algorithmus VCA ist ein 2-Approximationsalgorithmus fiir das


MIN-VCP ~ d Tim~vc~(C) e O(IEI) f ~ S ~ P ~ o b l ~ , ~ t ~ C - (V, E).
274 7 Algorithmik fiir schwere Probleme

Beweis. Die Behauptung TimevcA(G) E O(IEI) ist offensichtlich, weil jede


Kante aus E in VCA genau einmal betrachtet wird. Weil am Ende der Berech-
nung E' = 0 gilt, berechnet VCA eine Knotentiberdeckung in G (d.h. VCA ist
ein zulgssiger Algorithmus fiir MIN-VCP).
Um GiitevcA(G) _< 2 fiir jeden Graph G zu beweisen, bemerken wir, dass ICI =
2. IAI und A ein Matching in G ist. Um IAI Kanten des Matchings A zu iiber-
decken, muss man mindestens IAI Knoten wghlen. Weil A c E, ist die Mgchtig-
keit jeder Knoteniiberdeckung in G mindestens IAI, d.h. OptMIN_Vcp(G) _> IAI.
Daher

IC I 2. A I < 2.
OptMiN_VCP(G) OptMiN_VCP(G) --

Aufgabe 7.4. Konstruieren Sie fiir jedes n c IN-{0} einen zusammenh/ingenden Graphen
G~, so dass die optimale Knoteniiberdeckung die M/ichtigkeit n hat und der Algorithmus
VCA eine Uberdeckung mit der M~chtigkeit 2n konstruieren kann.

Ob eine ApproximationsgiRe von 2 hinreichend ist, h/~ngt von der konkreten


Anwendung ab. Meistens versucht man eine viel kleinere Approximationsgiite
zu erreichen, was aber oft viel anspruchsvollere algorithmische Ideen erfordert.
Andererseits misst man die Approximationsgtite als die Approximationsgiite
im schlechtesten Fall, deshalb kann ein 2-Approximationsalgorithmus auf prak-
tisch relevanten Eingaben viel besser laufen als mit der Approximationsgiite
2.
Es gibt Optimierungsprobleme, die fiir das Konzept der Approximation zu
schwer sind, in dem Sinne, dass (P r NP vorausgesetzt) keine polynomiellen
d-Approximationsalgorithmen (ftir d > 1) ftir solche Probleme existieren. In
Abschnitt 7.2 haben wir gezeigt, dass TSP zu schwer ftir das Konzept der
pseudopolynomiellen Algorithmen ist. Im Folgenden zeigen wir, dass TSP auch
mit dem Konzept der Approximation nicht zu bewS~ltigen ist.

L e m m a 7.2. Falls P r NP gilt, dann existiert fiir jedes d > 1 kein polynomi-
eller d-Approximationsalgorithmus fiir TSP.

Beweis. Wir fiihren einen indirekten Beweis. Angenommen, es gibt eine Kon-
stante d E I N - {0}, so dass ein polynomieller d-Approximationsalgorithmus
A ftir TSP existiert. Wir zeigen, dass dann ein polynomieller Algorithmus B
fiir das NP-vollstS~ndige Problem des Hamiltonschen Kreises existiert, was der
Annahme P r NP widerspricht.
7.3 Approximationsalgorithmen 275

Der Algorithmus B fiir das Problem des Hamiltonschen Kreises arbeitet fiir
jede Eingabe G = (V, E) wie folgt.

(i) B konstruiert eine Instanz ( K v , c) des TSP, wobei


Kv - (V,E'), mit E' - { { u , v } l u, v E V,u =/=v},
c(e)=l, falls e E E , und
c(e)-(d 1).IVI+2, falls e~E.
(ii) B simuliert die Arbeit von A auf der Eingabe (K v , c). Falls das Resultat
von A ein Hamiltonscher Kreis mit Kosten genau IvI ist, akzeptiert B
seine Eingabe G. Sonst verwirft A die Eingabe G.

Die Konstruktion der Instanz (K v , c) kann B in der Zeit O(IVI 2) durchfiihren.


Die zweite Phase yon B 15~uft in polynomieller Zeit, weil A in polynomieller
Zeit arbeitet und die Graphen G und KIv I die gleiche Gr6fie haben.
Wir miissen noch zeigen, dass B wirklich das Problem des Hamiltonschen
Kreises entscheidet. Wir bemerken Folgendes.

(i) Wenn G einen Hamiltonschen Kreis enthS~lt, dann enthS~lt KIv I einen
Hamiltonschen Kreis mit den Kosten IVl, d.h. OptTsp(Klvl, c ) = IVl.
(ii) Jeder Hamiltonsche Kreis in KIvI, der mindestens eine Kante aus E ' - E
enthglt, hat mindestens die Kosten
I V I - 1 + ( d - 1). IVl Jr 2 = d. IVl Jr 1 > d. IVl.
Sei G = (V, E) in HK, d.h. OptTsp(Klvl, c) = IVI. Nach (ii) hat jede zulS~ssige
L6sung mit zu Ivl unterschiedlichen Kosten mindestens die Kosten d. Ivl + 1 >
d. Ivl und so muss der d-Approximationsalgorithmus A eine optimale L6sung
mit den Kosten Ivl ausgeben. Daraus folgt, dass B den Graphen G akzeptiert.
Sei G = (V, E) nicht in HK. Damit hat jede zulassige L6sung ffir (KIvI, c)
h6here Kosten als IVl, ~lso cost(A(Klvl, c)) > IVl. Deswegen verwirft B den
Graphen G. D
Um TSP mindestens teilweise zu bew~iltigen, kombinieren wir das Konzept
der Approximation mit der Suche nach der Teilmenge der leichten Problem-
instanzen. Wir betrachten jetzt das metrische TSP, A-TSP, dass nur solche
Probleminstanzen des TSP enth~ilt, die die Dreiecksungleichung erfiillen (s.
Beispiel 2.6). Die Dreiecksungleichung ist eine natiirliche Einschr~nkung, die
in mehreren Anwendungsszenarien eingehalten wird. Wir zeigen jetzt einen
polynomiellen 2-Approximationsalgorithmus fiir A-TSP.
276 7 Algorithmik fiir schwere Probleme

Algorithmus SB

Eingabe: Ein vollstSmdiger G r a p h G = (V, E) mit einer Kostenfunktion c :


E ~ IN +, die die Dreiecksungleichung

_< +

fiir alle paarweise unterschiedlichen Knoten u, v, w E V erffillt.


Phase 1. SB berechnet einen minimalen S p a n n b a u m 4 T von G bezfiglich c.
Phase 2. Wghle einen beliebigen Knoten v aus V. Fiihre eine Tiefensuche von
v in T aus und nummeriere die Knoten in der Reihenfolge, in der sie
besucht worden sind. Sei H die Knotenfolge, die dieser N u m m e r i e r u n g
entspricht.
Ausgabe: Der Hamiltonsche Kreis H = H, v.

Wir illustrieren die Arbeit des Algorithmus SB auf der Probleminstanz G


aus Fig. 7.2(a). Ein minimaler S p a n n b a u m T = ({Vl, v2, v3, v4, vs}, {{Vl, v3},
{Vl, vs}, {v2, v3}, {v3, v4}} in G i s t in Fig. 7.2(b) dargestellt. Fig. 7.2(c) zeigt
die Tiefensuche yon v3 aus in T. Wir bemerken, dass bei der Tiefensuche jede
Kante yon T genau zweimal durchlaufen wird. Diese Tiefensuche determiniert
die Knotenfolge H = v3, v4, Vl, vs, v2 und so ist H = v3, v4, Vl, vs, v2, v3 die
a u s g a b e des Algorithmus SB (Fig. 7.2(d)). Die Kosten yon H sind 2 + 3 +
2 + 3 + 1 = 11. Eine optimale L6sung ist v3, Vx, vs, v4, v2, v3 mit den Kosten
1+2+2+2+1=8 (Fig. 7.2(e)).

Satz 7.5. Der Algorithmus SB ist ein polynomieller 2-Approximations-


algorithmus fiir A - T S P .

Beweis. Analysieren wir zuerst die ZeitkomplexitS~t von SB. Ein minimaler
S p a n n b a u m eines Graphen G = (V, E) kann in der Zeit OriEl) berechnet
werden. Die Tiefensuche in einem B a u m T = (V, E') lguft in der Zeit O(IVl).
Somit ist TimesB(G) E o(IEI), d.h. SB arbeitet in linearer Zeit.
Jetzt beweisen wir, dass die Approximationsgtite von SB h6chstens 2 ist. Sei
Hopt ein optimaler Hamiltonscher Kreis mit cost(Hopt) - Optzx_Tsp(G) ffir
eine Probleminstanz I -- ((V, E), c). Sei H die a u s g a b e SB(I) des a l g o r i t h m u s
SB fiir die Eingabe I. Sei T - (V, E ~) der minimale Spannbaum, den SB in

4Ein Spannbaum eines Graphen (7 - (V, E) ist ein Baum T - (V, E') mit E' G E. Die
Kosten yon T sind die Summe der Kosten aller Kanten in E ~.
7.3 Approximationsalgorithmen 277

V2 V2

1 2

V3 Vl V3 1 ~ Vl

V4 2 V5 V4 V5
(b)
V2

V3 Vl

V5 V4 V5
(c) (d)
V2

V4 2 V5

Fig. 7.2

der ersten Phase konstruiert. Zuerst bemerken wir, dass

(7.1)
cEE ~

weil die Entfernung einer Kante a u s Hopt in einem Spannbaum resultiert und
T ein minimaler Spannbaum ist.
Sei W der Weg, der der Tiefensuche in T entspricht. W geht genau zweimal
durch jede Kante yon T (einmal in jeder Richtung). Wenn cost(W) die Summe
aller Kanten des Weges W ist, dann gilt

(7.2)
278 7 Algorithmik fiir schwere Probleme

Die G l e i c h u n g e n ( 7 . 1 ) u n d ( 7 . 2 ) i m p l i z i e r e n

cost(W) < 2. cost(Hopt). (7.3)

Wir bemerken, dass man H aus W erhalten kann, indem man einige Teilwe-
ge u, V l , . . . , vk, v in W d u r c h die K a n t e {u, v} (mit d e m d i r e k t e n Weg u, v)
ersetzt 5. Dieses E r s e t z e n k a n n m a n schrittweise d u r c h die einfache O p e r a t i o n
des E r s e t z e n s yon Teilwegen yon drei K n o t e n u, w, v d u r c h den Weg u, v reali-
sieren. Diese einfache O p e r a t i o n e r h 6 h t a b e r die K o s t e n des Weges nicht, weil
d a n k der D r e i e c k s u n g l e i c h u n g

_< +

Deswegen

o t(H) < o t(W) (7.4)

Die U n g l e i c h u n g e n ( 7 . 3 ) u n d ( 7 . 4 ) l i e f e r n z u s a m m e n

cost(H) < cost(W)< 2. cost(Hopt)

und so

SB(I) cost(H)
= <2.
Optzx_TSP (I) cost(Hopt)

A u f g a b e 7.5. Finden Sie fiir jedes n 9 I N - {0, 1,2} eine Kostenfunktion cs fiir den
vollst/indigen Graphen Ks mit n Knoten, so dass cn den Kanten von Ks mindestens zwei
unterschiedliche Werte zuordnet und der Algorithmus SB immer eine optimale L6sung aus-
rechnet.

Aufgabe 7.6. * Finden Sie fiir jede ganze Zahl n _> 4 eine Instanz Is des A-TSP mit der
Eigenschaft

SB(L) > 2~- 2


Optzx_TSp(I~ ) -- n + 1

5Dies geschieht genau dann, wenn vx,..., vk schon vor u besucht worden sind, aber v noch
nicht besucht wurde.
7.4 Lokale Suche 279

7.4 Lokale Suehe

Lok~le Suche ist eine Technik fiir den Algorithmenentwurf flit Optimierungs-
probleme. Die Idee dieser Technik ist es, fiir die gegebene Eing~be x eine
zulgssige LSsung a aus A//(x) auszurechnen und d~nn schrittweise durch kleine
(lok~le) ~_nderungen von a zu einer besseren zul~ssigen LSsung zu gel~ngen.
Was der Begriff ,,kleine Anderungen" bedeutet, wird durch den Begriff der
Nachbarschaft definiert.

D e f i n i t i o n 7.5. Sei/4 = (EI, Eo, L, AA, cost, goal) ein Optimierungsproblem.


Fiir jedes x E L ist eine N a c h b a r s c h a f t in ,~d(x) eine Funktion fx :

E fx(a) fiir jedes a e M(x),


{Eine LSsung a ist immer in der Nachbarschaft yon a.}
(ii) f~ll~ 9 ~ fx(~) f ~ ~, 9 ~ M ( ~ ) , d ~ i~t ~ ~ fx(/~), ~ d
{ Wenn/3 in der Nachbarschaft von a liegt, dann liegt auch a in der
Nachbarschaft von /3.}
(iii) fiir alle a,/3 E AA(x) existieren eine positive Zahl k und 7 1 , 7 2 , . . . , % E
.hA(x), so dass
"~1 e L(OL), ~/i+1 e L('Ti) f~r i = 1,..., k - i, und ~ E fx(%).
{Flit alle zuliissigen LSsungen a und /3 ist es mSglich, von c~ zu /3 iiber
die Nachbarschaftsrelation zu gelangen.}

Falls a E fx(/3) sagen wit, dass c~ und /3 N a c h b a r n (bzgl. fx) in AA(x) sin&
Die Menge f ~ ( ~ ) wird die N a c h b a r s c h a f t v o n c~ in ,~d(x) genannt.
Eine zuliissige LSsung a E AA(x) heiflt ein lokales O p t i m u m ffir x bezfig-
lich d e r N a c h b a r s c h a f t f~, falls

~o~t(~) = go~l{~o~t(9) l Z e fx(~)}.

Sei fiir jedes x E L die Funktion fx eine Nachbarschaft in A/t (x). Die Funktion

f- U({x} • M(x))-~ U ~(M(x))


xEL xEL

definiert dutch

f ( * , ~) = fx(~)
280 7 Algorithmik fiir schwere Probleme

fiir alle z E L und alle c~ E A d ( z ) ist eine N a c h b a r s c h a f t ffir U.

In der Anwendung bestimmt man die Nachbarschaft durch sogenannte lokale


Transformationen. Der Begriff ,,lokal" ist dabei wichtig, weil er (lie Bedeu-
tung hat, dass man nur eine kleine Anderung der Spezifikation yon ct durch
eine lokale Transformation erlaubt. Eine lokale Transformation f/Jr MAX-SAT
kann z.B. die Invertierung eines Bits in der Belegung sein. Dann enth/~it die
Nachbarschaft einer L6sung c~ die L6sung ct selbst und alle L6sungen, die man
durch die ausgewS~hlte lokale Transformation erhalten kann. Fiir eine Formel
(I) von fiinf Variablen ist dann

{01100, 11100, 00100, 01000, 01110, 01101}

die Nachbarschaft von ct - 01100 beziiglich der lokalen Transformation der


Bitinvertierung.

Aufgabe 7.7. Beweisen Sie, dass die Nachbarschaft fiir MAX-SAT, die durch die lokale
Transformation der Bitinvertierung bestimmt wird, die Definition 7.5 erfiillt.

Fiir das T S P kann m a n folgende Nachbarschaft, 2-Exchange genannt, betrach-


ten (Fig. 7.3). Wir entfernen zwei beliebige K a n t e n {a,b} und {c,d} mit
I{a, b, c, d}l = 4 aus einem Hamiltonschen Kreis, der die K n o t e n a, b, c, d in
dieser Reihenfolge besucht und fiigen s t a t t dessen die K a n t e n {a, d} und {b, c}
hinzu. Wir beobachten, dass wir dadurch einen neuen Hamiltonschen Kreis
erhalten und dass m a n die K a n t e n {a, b} und {c, d} durch keine anderen Kan-
ten als {a, d} und {b, c} austauschen kann, um einen Hamiltonschen Kreis zu
erhalten.
a b a b

c d c d

Fig. 7.3

Aufgabe 7.8. Erfiillt 2-Exchange die Bedingungen der Definition 7.5? Begriinden Sie Ihre
Behauptung.

Aufgabe 7.9. Sei H ein Hamiltonscher Kreis in einem Graphen G. Entfernen Sie beliebige
drei Kanten {a, b}, {c, d} und {e, f} mit I{a, b, c, d, e, f}l - 6 aus H. Zeichnen Sie alle
unterschiedlichen Tripel von Kanten, deren Hinzuftigen zu H wieder zu einem Hamiltonschen
Kreis in G fiihrt. Wie viele M6glichkeiten gibt es bei der Entfernung von k Kanten, die ein
Matching bilden, fiir k > 3?
7.4 Lokale Suche 281

Die lokale Suche bez/iglich der NachbarschaR ist nichts anderes als eine itera-
tive Bewegung von einer L6sung zu einer besseren, benachbarten L6sung bis
man eine zulS~ssige L6sung/3 erreicht, in dessen Nachbarschaff keine bessere
L6sung als ,3 existiert. Das Schema der lokalen Suche kann man also wie folgt
formulieren.
D a s S c h e m a d e r lokalen Suche beziiglich e i n e r N a c h b a r s c h a f t f
LS(f)

Eingabe: Eine Instanz x eines Optimierungsproblems b/.


Phase 1. Berechne eine zul~ssige L6sung c~ E A/t(x)
Phase 2. while a ist kein lokales Optimum beziiglich fx do
begin
finde ein/3 E fx(C~), so dass
cost(fl) < cost(c~) falls b/ein Minimierungsproblem ist und
cost(~3) > cost(a) falls b/ein Maximierungsproblem ist;
Ct : : /~
end
Ausgabe: o~

Wir bemerken, dass LS(f) immer ein lokales Optimum beziiglich der Nachbar-
schaR f liefert. Falls alle lokalen Optima auch globale Optima sind, garantiert
die lokale Suche die L6sung des Optimierungsproblems. Dies ist der Fall bei
dem Optimierungsproblem des minimalen Spannbaumes, wenn die Nachbar-
schaff durch den Austausch einer Kante bestimmt wird.
Wenn sich die Kosten der lokalen Optima nicht zu sehr von den Kosten der
optimalen L6sungen unterscheiden, kann die lokale Suche zum Entwurf eines
Approximationsalgorithmus fiihren. Dies ist der Fall bei dem Problem des
maximalen Schnittes MAX-CUT. Gegeben sei ein Graph G = (If, E). Jedes
Paar (V1, V2) mit V10 V2 = V und V1 A V2 = 0 ist ein Schnitt von G. Der Preis
des Schnittes (1/1, V2) ist die Anzahl der Kanten zwischen den Knoten aus V1
und V2, d.h.

o t((Vl, G) : IE n Vl,

Das Ziel ist die Maximierung. Wir betrachten lokale Transformationen, die
einen Knoten aus einer Seite auf die andere Seite schieben. Der auf lokaler
Suche basierte Algorithmus kann wie folgt beschrieben werden.
282 7 Algorithmik fiir schwere Probleme

Algorithmus LS-CUT

Eingabe: Ein Graph G = (V, E).


Phase 1. S = 0.
{WS~hrend der Berechnung betrachten wir den Schnitt (S, V - S). Am
Anfang ist der Schnitt (0, V).}
Phase 2. w h i l e ein Knoten v E V existiert, so dass
cost(S U { v } , V - (S U { v } ) ) > cost(S, V - S), oder
cost(S - {v}, (V - S) U {v}) > cost(S, V - S) gilt do
begin
nehme v und bringe es auf die andere Seite des Schnittes;
end
Attsgabe: (S, V - S).

S a t z 7.6. LS-CUT ist ein 2 - A p p r o z i m a t i o n s a l g o r i t h m u s fiir M A X - C U T .

Beweis. Es ist offensichtlich, dass der Algorithmus LS-CUT eine zulS~ssige


L6sung ffir M A X - C U T ausgibt. Es bleibt zu zeigen, dass GiiteLs-CuT(G) _< 2
fiir jeden Graph G = (V, E). Sei (]/'1, }/2) die Ausgabe yon LS-CUT. Weil
(YI, Y2) ein lokales Maximum beziiglich des Austauschs eines Knotens ist, hat
jeder Knoten v E Y1 (Y2) mindestens so viele Kanten zu Knoten in Y2 (Y1)
wie die Anzahl der Kanten zwischen v und Knoten aus Y1 (Y2) ist. Damit ist
mindestens die Ua~fte aller Kanten im Schnitt (Y1, Y2). Weil OptMIN_CuT(G )
nicht grat3er als IEI sein kann, ist GtiteLs-CuT(G) _< 2. D

Aufgabe 7.10. Beweisen Sie, dass LS-CUT ein polynomieller Algorithmus ist.

Aufgabe 7.11. Betrachten Sie das Problem des gewichteten maximales


Schnittes, MAX-GEW-CUT, das eine Verallgemeinerung von MAX-CUT ist. Eine Eingabe
yon MAX-GEW-CUT ist ein Graph G = (V, E) und eine Kostenfunktion c: E --~ IN, die
jeder Kante e ihre Kosten c(e) zuordnet. Die Kosten eines Schnittes sind die Summe der
Kosten der Kanten des Schnittes. Das Ziel ist, eine L6sung mit maximalen Kosten zu finden.
Offensichtlich ist MAX-GEW-CUT ein Zahlproblem. Entwerfen Sie einen Algorithmus mit
lokaler Suche, der einen pseudopolynomiellen 2-Approximationsalgorithmus darstellt.

Die Algorithmen, die auf lokaler Suche basieren, nennt man lokale Algorith-
men. Die lokalen Algorithmen sind mehr oder weniger durch die Wahl der
Nachbarschaft bestimmt. Die einzigen noch freien Parameter in dem Schema
der lokalen Suche sind die Strategie nach der Suche der besseren Nachbarn
und die Entscheidung, ob m a n die erste gefundene bessere L6sung als neue
L6sung nimmt oder ob m a n unbedingt die beste L6sung in der Nachbarschaft
bestimmen m6chte.
7.4 Lokale Suche 283

Angenommen P ~ NP, dann gibt es offensichtlich keine polynomiellen lokalen


Algorithmen fiir NP-schwere Optimierungsprobleme. Wir bemerken, dass die
ZeitkomplexitS~t eines lokalen Algorithmus als

(die Zeit der Suche in der Nachbarschaft)


(die Anzahl der iterativen Verbesserungen)

abgeschS~tzt werden kann. Wir sind jetzt an folgender Frage interessiert.

Fiir welche NP-schweren Optimierungsprobleme existiert eine Nach-


barschaft F polynomieller GrSfle, so dass LS(f) immer eine opti-
male LSsung liefert?

Dies bedeutet, dass wir bereit sind, eine im schlechtesten Fall m6gliche expo-
nentielle Anzahl yon Verbesserungsiterationen in Kauf zu nehmen, falls jede
Iteration in polynomieller Zeit l~uft und die Konvergenz zu einer optimalen
L6sung gesichert ist. Die Idee dabei ist, dass die Vergr6fierung der Nachbar-
schaften auf der einen SeRe die Wahrscheinlichkeit verkleinert, an ein schwa-
ches lokales Optimum zu gelangen, auf der anderen SeRe aber die Zeitkomple-
xit~t einer Verbesserungsiteration erh6ht. Die Frage ist, ob eine Nachbarschaft
von vernfinftiger Gr6fie existiert, so dass jedes lokale Optimum auch ein glo-
bales Optimum ist. Diese Fragestellung wird wie folgt formalisiert.

D e f i n i t i o n 7.6. Sei N = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem


und s e i f eine Nachbarschaft fiir bt. Eine Nachbarschaft f heiflt echt, falls fiir
jedes x E L jedes lokale Optimum fiir x beziiglich fx eine optimale LSsung fiir
x ist.
Eine Nachbarschaft f heiflt p o l y n o m i e l l u n t e r s u c h b a r , falls ein polynomi-
eller Algorithmus existiert, der fiir jedes x E L und jedes c~ E Ad(x) eine der
besten LSsungen aus fx(a) finder.

Unsere Frage kann man jetzt wie folgt formulieren:

Fiir welche Optimierungsprobleme existieren echte polynomiell un-


tersuchbare Nachbarschaften ?

Das bekannteste positive Beispiel ist der Simplex-Algorithmus ffir das Problem
der linearen Programmierung. Er basiert auf der Existenz einer echten poly-
nomiell untersuchbaren Nachbarschaft, aber er kann auf einigen Problemin-
stanzen exponentielle Zeitkomplexitgt beanspruchen, weil eine exponentielle
Anzahl von Verbesserungsiterationen m6glich ist.
284 7 Algorithmik fiir schwere Probleme

A u f g a b e 7.12. Sei k-Exchange die Nachbarschaft fiir TSP, in d e r k Kanten ausgetauscht


werden k6nnen. Wie mS~chtig ist die Nachbarschaft k-Exchangea(H ) eines Hamiltonschen
Kreises H, wenn G n Knoten hat?

A u f g a b e 7.13.* Beweisen Sie, dass ftir jede Konstante k c IN- {0}


k-Exchange keine echte Nachbarschaft fiir TSP ist.

Unsere Zielsetzung ist jetzt, eine Methode vorzustellen, mit der man die Nicht-
existenz einer echten polynomiell untersuchbaren Nachbarschaft fiir Optimie-
rungsprobleme beweisen kann. Wie wir sehen werden, kann das Konzept der
starken NP-Schwierigkeit auch hier erfolgreich angewendet werden.

D e f i n i t i o n 7.7. Sei b / = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem,


das ein Zahlproblem ist (Zahloptimierungsproblem). Wit sagen, dass bt ko-
stenbeschr~inkt ist, falls fiir jede Instanz x mit Int(x) = ( i l , i 2 , . . . , G ) ,

{ n}
ij E IN fiir j = 1, 2 , . . . , n gilt

1,2,...,~-~ij
j=l

fiir jede zuliissige LSsung ct E Ad(x).

Wir bemerken, dass fast jedes bekannte Zahloptimierungsproblem kostenbe-


schr~tnkt ist und so die Forderung der Kostenbeschr~tnkung keine grof3e Ein-
schrS~nkung der Anwendbarkeit folgender Methode bedeutet.

Satz 7.7. Sei bt E NPO ein kostenbeschriinktes Zahloptimierungsproblem.


Falls P ~ NP gilt und bt stark NP-schwer ist, dann existiert keine echte poly-
nomiell untersuchbare Nachbarschaft fiir bt.

Beweis. Wir fiihren einen indirekten Beweis. Angenommen, b/ besitzt eine


echte polynomiell untersuchbare Nachbarschaft f. Dann kann man fiir jede
Eingabe x in einer polynomiellen Zeit p(l l) einen Iterationsschritt yon LS(fx)
durchfiihren. Weil b/ E NPO ist, kann man dann die StartlSsung auch in
polynomieller Zeit finden. In jeder Verbesserungsiteration verbessert man die
Kosten der aktuellen zulS~ssigen L6sung mindestens um 1, weil die Kosten der
L6sungen eines kostenbeschr~tnkten Zahlproblems nur ganze Zahlen sind. Da
die Kosten der LSsungen aus dem Intervall von Ibis EjEInt(x)J -< n.MaxInt(x)
sind, gibt es hSchstens Izl. MaxInt(x) Verbesserungsiterationen. Damit ist die
Gesamtlaufzeit des LS(f) in

O(p(Ix]) . Ixl . MaxInt(x)).


7.5 Simulated Annealing 285

Weil f eine echte Nachbarschaft ist, garantiert LS(f) eine optimale L6sung fiir
z. Damit ist LS(f) ein pseudopolynomieller Algorithmus ftir b/. Weil b / s t a r k
NP-schwer ist, widerspricht dies der Annahme P r NP. D
In Kapitel 6 haben wir bewiesen, dass TSP und MAX-CL stark NP-schwer
sind. Wir bemerken, dass beide Probleme kostenbeschrS~nkte Zahloptimierungs-
probleme sind. Damit besitzen diese Optimierungsprobleme keine echte poly-
nomiell untersuchbare Nachbarschaft. Fiir das TSP kann man sogar beweisen,
1
dass es keine echte Nachbarschaft der exponentiellen Gr6fie 2~ besitzt.

7.5 Simulated Annealing

In diesem Abschnitt stellen wir Simulated Annealing (simulierte Abkiihlung)


als eine Heuristik zur L6sung schwerer Probleme vor. Der Begriff Heuristik
bezeichnet hier eine Entwurfstechnik fiir Algorithmen, die keine L6sung yon
hoher Qualits~t (guter Approximation) in verniinftiger Zeit fiir jede Eingabe
garantieren. Dies bedeutet, dass wir bei Heuristiken viel mehr von unseren An-
forderungen abgeben als in allen bisher vorgestellten Methoden. Die Hoffnung
ist dabei, dass die heuristischen Algorithmen fiir die typischen anwendungsrele-
vanten Probleminstanzen verniinftige Resultate in kurzer Zeit liefern. Trotz der
Unsicherheit beziiglich der Laufzeit und der L6sungsqualitS~t sind die Heuristi-
ken bei den Anwendern sehr beliebt, weil sie gewisse, nicht zu unterschgtzen-
de Vorteile haben. Sie sind meistens einfach und schnell zu implementieren
und zu testen, so dass die Herstellung eines heuristischen Algorithmus viel
kostengiinstiger ist als der Entwurf eines spezialisierten, auf das Problem zu-
geschnittenen Algorithmus. Zweitens sind Heuristiken robust, was bedeutet
dass sie fiir eine breite Klasse von Problemen erfolgreich arbeiten, obwohl die-
se Probleme ziemlich unterschiedliche kombinatorische Strukturen haben. Dies
bedeutet, dass eine Anderung der Problemspezifikation in dem Prozess des A1-
gorithmenentwurfs kein Problem darstellt, weil h6chstens ein paar Parameter
des heuristischen Algorithmus zu 5~ndern sind. Fiir den Entwurf eines problem-
zugeschnittenen Optimierungsalgorithmus bedeutet eine Anderung der Aufga-
benspezifikation oft eine solche Anderung der kombinatorischen Struktur, dass
man mit dem Entwurf von vorne beginnen muss.
Wenn man die lokale Suche auf ein schweres Problem anwendet, bei dem man
das Verhalten des lokalen Algorithmus nicht bestimmen kann, dann kann man
lokale Suche auch als eine Heuristik betrachten. Sie hat auch die Eigenschaft
der Robustheit, weil man sie praktisch auf jedes Optimierungsproblem anwen-
286 7 Algorithmik fiir schwere Probleme

den kann. Die gr6t3te SchwS~che der lokalen Suche ist, dass sie in einem lokalen
Optimum endet, egal wie gut oder schlecht dieses lokale Optimum ist. Wir
wollen jetzt die Methode der lokalen Suche verbessern, indem wir die Fallen
der lokalen Optima aufheben. Dabei lassen wir uns durch die physikalische
Optimierung yon MetallzustS~nden in der Thermodynamik inspirieren.
Der optimale Zustand eines Metalls entspricht der optimalen Kristallstruktur,
wobei alle Bindungen zwischen den elementaren Teilchen gleich stark sind.
Wenn einige Bindungen durch Belastung wesentlich schwgcher und andere
stgrker werden, besteht Bruchgefahr und das Metall ist in einem schlechten
Zustand. Der optimale Zustand entspricht also dem Zustand mit minimaler
Energie. Die Optimierungsprozedur besteht aus folgenden zwei Phasen.

Phase 1. Dem Metall wird yon aufien durch ein ,,heifies Bad" Energie zu-
gefiihrt. Dadurch schwS~chen sich fast alle Bindungen und ein chaosS~hn-
licher Zustand entsteht.
Phase 2. Das Metall wird langsam abgekiihlt, bis es einen optimalen Zustand
mit minimaler Energie erreicht.

Diesen Optimierungsprozess kann man mit folgendem Algorithmus auf einem


Rechner simulieren. Wir bezeichnen mit E(s) die Energie des Metallzustandes
s. Sei CB die Boltzmann-Konstante.

Metropolis-Algorithmus

Eingabe: Ein Zustand s des Metalls mit der Energie E(s).


Phase 1. Bestimme die Anfangstemperatur T des heif3en Bades.
Phase 2. Generiere einen Zustand q aus s durch eine zuf~tllige kleine
Anderung (z.B. eine Positions~tnderung eines Elementar-
teilchens)
i f E ( q ) _< E ( 8 ) t h e n 8 : - - q
{akzeptiere q als neuen Zustand}
e l s e akzeptiere q als neuen Zustand mit der Wahrscheinlichkeit
_ E(q)-E(~)
prob(s ~ q) = e r ;
{d.h. bleibe im Zustand s mit der Wahrscheinlichkeit
1 - prob(s --+ q)}
Phase 3: Verkleinere T passend.
i f T ist nicht sehr nahe bei 0 t h e n goto Phase 9;
else output(s);
7.5 Simulated Annealing 287

Zuerst beobachten wir die starke Ahnlichkeit zwischen der lokalen Suche und
dem Metropolis-Algorithmus. Der Metropolis-Algorithmus besteht aus Iterati-
onsschritten, und in einem Iterationsschritt wird ein neuer Kandidat fiir einen
aktuellen Zustand durch eine lokale Transformation bestimmt. Die wesentli-
chen Unterschiede sind folgende.

(i) Der Metropolis-Algorithmus darf mit gewisser Wahrscheinlichkeit auch in


einen schlechteren Zustand mit hoher Energie iibergehen und dadurch m6gliche
lokale Minima iiberwinden.
(ii) Nicht die lokale Optimalit~t, sondern der Wert von T entscheidet fiber die
Terminierung des Metropolis-Algorithmus.

Die Wahrscheinlichkeit prob(s ~ q) folgt den Gesetzen der Thermodynamik,


die besagen, dass die Wahrscheinlichkeit einer Verschlechterung (eines Ener-
giewachstums) um einen Wert AE
--AE
prob(AE) - ecBr

ist. Diese Wahrscheinlichkeit hat zwei wichtige EigenschaRen.

(a) Die Wahrscheinlichkeit prob(s ~ q) verkleinert sich mit wachsendem


E ( q ) - E(s), d.h. starke Verschlechterungen sind weniger wahrscheinlich als
schwgchere, und
(b) die Wahrscheinlichkeit prob(s ~ q) wachst mit T, d.h. starke Verschlechte-
rungen (Uberwindung yon tiefen lokalen Minima) sind am Anfang bei grof3em
T wahrscheinlicher als bei kleinem T.

Ein wichtiger Punkt ist, dass die MSglichkeit, die lokalen Minima durch Ver-
schlechterung zu iiberwinden, notwendig fiir das Erreichen des Optimums ist.
Um den Metropolis-Algorithmus zur LSsung von kombinatorischen Optimie-
rungsproblemen einzusetzen, reicht es aus, die folgende Beziehung zwischen
den Begriffen der Thermodynamik und den Bergriffen der kombinatorischen
Optimierung festzustellen.
Menge der SystemzustS~nde ~ Menge der zulS~ssigen L6sungen
Energie eines Zustandes = Preis einer zulgssigen LSsung
ein optimaler Zustand = eine optimale LSsung
Temperatur = ein Programmparameter
Sei b/ - (Ez, Eo, L, Ad, cost, Minimum) ein Optimierungsproblem mit einer
Nachbarschaft f. Dann kann man die Simulation des Metropolis-Algorithmus
wie folgt beschreiben.
288 7 Algorithmik fiir schwere Probleme

S i m u l a t e d A n n e a l i n g beziiglich f
SA(I)

Eingabe: Eine Probleminstanz x E L.


Phase 1. Berechne eine zulS~ssige L6sung a E 34(x).
W~hle eine Anfangstemperatur T.
W~hle eine Reduktionsfunktion 9, abh~ngig yon T und der Anzahl der
Iterationen I.
Phase 2. I:=0;
while T > 0 (oder T ist nicht zu nah an 0) do
begin
w~thle zuf~tllig ein fl aus f~(a) ;
i f cost(/3) <_ cost(a) then a := ,3;
else
begin
generiere zufS]lig eine Zahl r aus dem Intervall [0, 1];
cost(~)-cost(c~)
if r < e - T then a "-- ,~;
end
I--I+1;
T "- g(T, I);
end
end
Ausgabe: oz.

Bei einer ,,vernfinftigen" Nachbarschaft und passender Wahl von T und g kann
man beweisen, dass SA(f) das Optimum erreicht. Das Problem ist aber, dass
man die Anzahl der dazu hinreichenden Iterationen nicht einschrS~nken kann.
Selbst Versuche, eine Approximationsgfite nach einer gewissen Anzahl yon
Operationen zu garantieren, ffihrten dazu, dass man eine viel gr6t3ere An-
zahl an Iterationen als IM( )I fiir eine solche Garantie brS~uchte. Trotzdem
gibt es viele Anwendungen, bei denen Simulated Annealing akzeptable L6sun-
gen liefert und deswegen wird es hS~ufig eingesetzt. Die positive Seite ist auch,
dass die Wahl der Parameter T und g bei dem Benutzer liegt, und so kann er
alleine fiber PrioritS~ten im Bezug auf den Tradeoff zwischen Laufzeiten und
L6sungsqualitgt entscheiden.
7.6 Zusammenfassung 289

7.6 Zusammenfassung

Der Algorithmenentwurf ist fiir die L6sung schwerer Probleme entscheidend,


weil die qualitativen Spriinge in der Anforderung (von exponentieller zu po-
lynomieller Komplexit~t) auf die Rechnerressourcen nicht durch die Verbesse-
rung der Rechnertechnologie zu erreichen sind. Um ei~ziente Algorithmen fiir
schwere Probleme zu erhalten, muss man etwas auf der Ebene der Anforde-
rungen bezahlen. Entweder reduzieren wir die Menge der zul~ssigen Eingaben
(d.h. wir 16sen das Problem nicht in seiner allgemeinen formalen Darstellung),
oder wir verzichten auf die Sicherheit, immer die richtige oder optimale L6sung
zu bekommen. Die Kunst der Algorithmik liegt darin, grofie Gewinne auf der
SeRe der Ei~izienz durch kleine Nachl~sse in der Problemformulierung zu be-
wirken.
Pseudopolynomielle Algorithmen laufen in polynomieller Zeit auf Problemin-
stanzen von Zahlproblemen, bei denen die Zahlen eine polynomielle Gr6~e in
der Eingabel~nge haben. Einen pseudopolynomiellen Algorithmus kann man
fiir das Rucksackproblem entwerfen. Das Konzept der NP-Vollst~ndigkeit ist
auch hier hilfreich, um die Nichtexistenz von pseudopolynomiellen Algorith-
men unter der Annahme P r NP fiir gewisse Probleme zu beweisen.
Approximationsalgorithmen sind Algorithmen fiir Optimierungsprobleme, die
eine zul~ssige L6sung liefern, deren Kosten sich nicht zu viel von den Ko-
sten der optimalen L6sung unterscheiden. Fiir das metrische TSP, MAX-VC
und MAX-CUT kann man polynomielle Approximationsalgorithmen entwer-
fen. Fiir das allgemeine TSP gibt es keinen polynomiellen Approximationsal-
gorithmus mit einer konstanten Approximationsgiite, falls P r NP.
Die lokalen Algorithmen fiir ein Optimierungsproblem starten mit einer zul~ssi-
gen L6sung und versuchen durch kleine Anderungen (lokale Transformationen)
der L6sungsspezifikation iterativ zu einer besseren L6sung zu gelangen. Lokale
Algorithmen enden immer in einem lokalen Optimum beziiglich der erlaubten
lokalen Transformationen. Die Kosten der lokalen Optima k6nnen sich wesent-
lich von den optimalen Kosten unterscheiden. Simulated Annealing ist eine
Heuristik, die auf der lokalen Suche aufbaut und das Verlassen der lokalen
Optima erm6glicht. Simulated Annealing ist robust und einfach zu implemen-
tieren und wird deswegen oft in der Praxis angewendet.
Die Konzepte der pseudopolynomiellen Algorithmen fiir Zahlprobleme und der
starken NP-Schwierigkeit sind Garey und Johnson [GJ 79] zu verdanken. Der
pseudopolynomielle Algorithmus fiir das Rucksackproblem wurde yon Ibar-
ra und Kim [IK 74] entworfen. Der erste Approximationsalgorithmus wurde
290 7 Algorithmik fiir schwere Probleme

yon Graham [Gra 66] entworfen. Die ersten lokalen Algorithmen wurden yon
Bock [Boc 58] und Croes [Cro 58] entworfen. Das Konzept der echten poly-
nomiell untersuchbaren NachbarschaR wurde yon Papadimitriou und Steig-
litz [PS 82] eingeftihrt. Der Metropolis-Algorithmus ftir die Simulation der
Abktihlung wurde yon Metropolis, A.W und M.N. Rosenbluth, A.M. und E.
Teller [MRR + 53] entdeckt. Die MSglichkeit, diesen Algorithmus in der kom-
binatorischen Optimierung anzuwenden, kam yon Cern3~ [(~er 85] und Kirkpa-
trick, Gellat und Vecchi [KGV 83].
Eine systematische Ubersicht fiber Methoden zur LSsung schwerer Probleme
ist in [Hro 01] gegeben. Zum weiteren Lesen empfehlen wir noch wgrmstens Pa-
padimitriou und Steiglitz [PS 82], Cormen, Leiserson und Rivest [CLR 90] und
SchSning [Sch 01] . Zum Thema Approximationsalgorithmen sind reichhaltige
Quellen Ausiello, Crescenzi, Gambosi, Kann, Marchetti-Spaccamela und Prot-
asi [ACG + 99], Hochbaum [Hoe 97], Mayr, PrSmel und Steger IMPS 98] und
Vazirani [Vaz 01].

Kontrollaufgaben
1. Die meisten bekannten NP-schweren Probleme sind interessant fiir die Praxis. Welche
grunds~tzlichen Ans~tze zur LSsung von Instanzen von schweren Problemen gibt es?
2. Erkl~ren Sie das Konzept von pseudopolynomiellen Algorithmen und illustrieren Sie
es durch Anwendung auf das einfache Rucksack-Problem. Beim einfachen Rucksack-
Problem sind die Kosten und das Gewicht fiir jedes Objekt gleich (d.h. das Gewicht
entspricht dem Nutzen). Vereinfachen Sie den pseudopolynomiellen Algorithmus fiir
das allgemeine Rucksack-Problem, um einen pseudopolynomiellen Algorithmus flit
das einfache Rucksack-Problem zu erhalten.
Fiihrt diese Vereinfachung auch zu einer geringeren Zeitkomplexit~t?
3. Gibt es eine Methode, die bei der Voraussetzung P 7~ NP die Nichtexistenz eines
pseudopolynomiellen Algorithmus fiir ein Zahlenproblem beweisen kann?
4. Erkl~ren Sie das Konzept von Approximationsalgorithmen. Wie misst man die Giite
eines Approximationsalgorithmus?
5. Entwerfen Sie einen Greedy Algorithmus fiir das einfache Rucksack-Problem (siehe
Aufgabe Kontrollaufgabe 2). Zeigen Sie, dass der entworfene Algorithmus ein poly-
nomieller 2-Approximationsalgorithmus ist.
6. Erkl~ren Sie das Konzept der lokalen Suche. Schlagen Sie fiir alle hier betrachteten
NP-schweren Optimierungsprobleme ein paar Nachbarschaften vor. Fiir welche Pro-
bleme kann man die lokale Suche erfolgreich (effizient und mit Garantie eine gute
LSsung zu finden) anwenden?
7. Warm ist eine Nachbarschaft echt und polynomiell durchsuchbar? Hilft und das Kon-
zept der starken NP-Schwierigkeit zu zeigen, dass gewisse Optimierungsprobleme zu
schwer fiir die lokale Suche sind?
8. Was ist die gemeinsame Grundlage und der wesentliche Unterschied zwischen loka-
ler Suche und Simulated Annealing? Was garantiert Simulated Annealing und was
7.6 Zusammenfassung 291

garantiert diese Methode nicht? Mit welcher Wahrscheinlichkeit akzeptiert man eine
Verschlechterung und was sind die wichtigsten Eigenschaften dieses Wahrscheinlich-
keitskriteriums?
Das Gewebe dieser Welt ist aus
Notwendigkeit und Zufall gebildet;
Die Vernunft des Menschen stellt sich zwischen beide
und weifi sie zu beherrschen;
Sie behandelt das Notwendige als den Grund ihres Daseins;
Das Zufgllige weifi sie zu lenken, zu leiten und zu nutzen, ...
J. W. von Goethe

8 Randomisierung

8.1 Zielsetzung

Der Begriff Zufall ist einer der fundamentalsten und meist diskutierten Be-
griffe der Wissenschaft. Die grundlegende Frage ist, ob der Zufall objektiv
existiert oder ob wir diesen Begriff nur benutzen, um Ereignisse mit unbe-
kannter Gesetzm~fiigkeit zu erklgren und zu modellieren. Dariiber streiten die
Wissenschaftler seit der Antike. Demokrit meinte, dass

das Zufiillige das Nichterkannte ist,


und dass die Natur in ihrer Grundlage determiniert ist.

Damit meinte Demokrit, dass in der Welt Ordnung herrscht und dass diese
Ordnung durch eindeutige Gesetze bestimmt ist. Epikur widersprach Demokrit
mit folgender Meinung:

,,Der Zufall ist objektiv,


er ist die eigentliche Natur der Erscheinung.

Die Religion und die Physik vor dem 20. Jahrhundert bauten auf der kausal-
deterministischen Auffassung auf. Interessant ist zu bemerken, dass auch Al-
bert Einstein die Benutzung des Begriffs Zufall nur als Kennzeichnung des
noch nicht vollst~ndigen Wissens zuliefi und an die Existenz einfacher und
klarer deterministischer Naturgesetze glaubte. Die Entwicklung der Wissen-
schaR (insbesondere der Physik und der Biologie) im 20. Jahrhundert fiihrte
eher zu der Epikur'schen Weltanschauung. Die experimentelle Physik best~itig-
te die Theorie der Quantenmechanik, die auf Zufallereignissen aufgebaut ist.
8.1 Zielsetzung 293

In der Evolutionsbiologie zweifelt man heute nicht an der These, dass ohne
zuf~llige Mutationen der DNA die Evolution nicht stattgefunden h~tte. Am
besten formulierte der ungarische Mathematiker Alfred R6nyi eine moderne,
iiberwiegend akzeptierte Ansicht der Rolle des Zufalls:

,,Es gibt keinen Widerspruch zwischen Kausalitiit und dem Zufall.


In der Welt herrscht der Zufall, und eben deshalb gibt es in der Welt
Ordnung und Gesetz, die sich in den Massen yon zufiilligen Ereig-
nissen, den Gesetzen der Wahrscheinlichkeit entsprechend, entfal-
ten.

Fiir uns Informatiker ist wichtig zu begreifen, dass es sich oft lohnt, statt
vollst~ndig deterministischer Systeme und Algorithmen zufallsgesteuerte (ran-
domisierte) Systeme und Algorithmen zu entwerfen und zu implementieren.
Dabei geht es um nichts anderes, als vonder Natur zu lernen. Es scheint eine
Tatsache zu sein, dass die Natur immer den einfachsten und etIizientesten Weg
geht und dass ein solcher Weg durch die Zufallssteuerung bestimmt wird. Die
Praxis best~tigt diese Ansicht. In vielen Anwendungen k6nnen einfache zufalls-
gesteuerte Systeme und Algorithmen das Gewiinschte etIizient und zuverl~ssig
leisten, obwohl jedes vollstgndig deterministische System fiir diesen Zweck so
komplex und inetIizient wgre, dass jeder Versuch, es zu bauen, praktisch sinn-
los wgre. Dies ist auch der Grund dafiir, dass man heutzutage die Klasse der
praktisch 16sbaren Probleme nicht mehr mit der deterministisch polynomiel-
len Zeit, sondern eher mit zufallsgesteuerten (randomisierten) polynomiellen
Algorithmen verkniipft.
Die Zielsetzung dieses Kapitels ist nicht, die Grundlage des Entwurfs von
randomisierten Algorithmen und der KomplexitS~tstheorie der randomisierten
Berechnung zu prgsentieren, weil dazu zu viele Vorkenntnisse aus der Wahr-
scheinlichkeitstheorie, der Komplexitgtstheorie und der Zahlentheorie notwen-
dig wS~ren. Wir ziehen es vor, anhand dreier Beispiele das Konzept der Zufalls-
steuerung zu veranschaulichen und dadurch auch ansatzweise ein etwas tieferes
Verstgndnis fiir die iiberlegene Stgrke der Zufallssteuerung der deterministi-
schen Steuerung gegeniiber zu gewinnen.
Dieses Kapitel ist wie folgt aufgebaut. In Abschnitt 8.2 prS~sentieren wir ei-
nige elementare Grundlagen der Wahrscheinlichkeitstheorie. In Abschnitt 8.3
entwerfen wir ein randomisiertes Kommunikationsprotokoll zum Vergleich der
Inhalte zweier grofier Datenbanken, das unvergleichbar effizienter als jedes de-
terministische Kommunikationsprotokoll fiir diese Aufgabe ist. In Abschnitt
8.4 nutzen wir das vorgestellte Kommunikationsprotokoll, um die Methode
der h~ufigen Zeugen als ein Paradigma fiir den Entwurf von zufallsgesteuerten
294 8 Randomisierung

Algorithmen zu erklSzen. Wir wenden noch einmal diese Methode an, um einen
effizienten randomisierten Algorithmus ftir den Primzahltest zu entwickeln. Da-
bei zS~hlt der Primzahltest zu den wichtigsten Entscheidungsproblemen in der
Praxis und wir kennen keinen effizienten Algorithmus, der den Primzahltest
deterministisch entscheiden kann. In Abschnitt 8.5 stellen wir die Methode der
Fingerabdriicke als eine spezielle Variante der Methode der hS~ufigen Zeugen
vor. Wir wenden diese Methode an, um effizient die Aquivalenz von zwei Po-
lynomen zu entscheiden. Wie iiblich beenden wir das Kapitel mit einer kurzen
Zusammenfassung.

8.2 Elementare Wahrscheinlichkeitstheorie

Wenn ein Ereignis (eine Erscheinung) eine unumgS~ngliche Folge eines anderen
Ereignisses ist, dann sprechen wir yon KausalitS~t oder Determinismus. Wie
wir schon in der Einleitung bemerkt haben, gibt es auch andere als v611ig
bestimmte, eindeutige Ereignisse. Die Wahrscheinlichkeitstheorie wurde ent-
wickelt, um Situationen und Experimente mit mehrdeutigen Ergebnissen zu
modellieren und zu untersuchen. Einfache Beispiele solcher Experimente sind
der Miinzwurf und das Wiirfeln. Es gibt hier keine M6glichkeit, das Ergebnis
vorherzusagen, und deswegen sprechen wir yon zuf~lligen E r e i g n i s s e n . In
der Modellierung eines Wahrscheinlichkeitsexperimentes betrachten wir also
alle mSglichen Ergebnisse des Experimentes, die wir e l e m e n t a r e E r e i g n i s -
se nennen. Aus der philosophischen Sicht ist es wichtig, dass die elementaren
Ereignisse als atomare Ergebnisse zu betrachten sind. Atomar bedeutet, dass
man ein elementares Ereignis nicht als eine Kollektion yon noch einfacheren
Ergebnissen betrachten kann, und sich somit zwei elementare Ereignisse ge-
genseitig ausschliefien. Beim Miinzwurf sind die elementaren Ereignisse ,,Kopf"
und ,,Zahl" und beim Wiirfeln sind die elementaren Ereignisse die Zahlen ,, 1",
,,2", ,,3", ,,4", ,,5" und ,,6". Ein E r e i g n i s definiert man dann als eine Teilmenge
der Menge der elementaren Ereignisse. Z.B. ist {2, 4, 6} das Ereignis, dass beim
Wiirfeln eine gerade Zahl f~tllt. Weil elementare Ereignisse auch als Ereignisse
betrachtet werden, stellt man sie, um konsistent zu bleiben, als einelementige
Mengen dar.
Im Folgenden betrachten wir nur Experimente mit einer endlichen Menge S
yon elementaren Ereignissen, was die Anschaulichkeit der folgenden Defini-
tion erh6ht. Wir m6chten jetzt eine sinnvolle Theorie entwickeln, die jeder
Erscheinung E C_ S eine Wahrscheinlichkeit zuordnet. Dass diese Aufgabe gar
nicht so einfach ist, dokumentiert die Tatsache, dass man seit der Begriindung
8.2 Elementare Wahrscheinlichkeitstheorie 295

der Wahrscheinlichkeitstheorie in den Werken von Pascal, Fermat und Huy-


gens in der Mitte des 17. Jahrhunderts fast 300 Jahre gebraucht hat, bis eine
allgemein akzeptierte axiomatische Definition der Wahrscheinlichkeit yon Kol-
mogorov vorgeschlagen wurde. Unsere Einschr/~nkung der Endlichkeit yon S
hilft uns, die technischen Schwierigkeiten solcher allgemeinen Definitionen zu
vermeiden. Die Idee ist, die Wahrscheinlichkeit eines Ereignisses als

das Verhiiltnis der Summe der Wahrscheinlichkeiten der


giinstigen (darin enthaltenen) elementaren Ereignisse zu der
(8.1)
Summe der Wahrscheinlichkeiten aller mSglichen elementaren
Ereignisse

zu sehen. Durch diese Festlegung normiert man die Wahrscheinlichkeitswerte


in dem Sinne, dass die Wahrscheinlichkeit 1 der Sicherheit und die Wahrschein-
lichkeit 0 einem unm6glichen Ereignis entspricht. Ein anderer zentraler Punkt
ist, dass die Wahrscheinlichkeiten der elementaren Ereignisse die Wahrschein-
lichkeiten aller Ereignisse eindeutig bestimmen. Bei symmetrischen Experi-
menten wie dem Wiirfeln will man allen elementaren Ereignissen die gleiche
Wahrscheinlichkeit zuordnen. Sei Wahr(E) die Wahrscheinlichkeit des Ereig-
hisses E. Weil in unserem Modell als Resultat des Experimentes ein elemen-
tares Ereignis auftreten muss, setzt man Wahr(S) = 1 fiir die Menge S aller
elementaren Ereignisse. Dann haben wir beim Wiirfeln

Wahr({2, 4, 6}) = Wahr({2}) + Wahr({4}) + Wahr({6})


Wahr(S)
= Wahr({2}) + W a h r ( { 4 } ) + Wahr({6})
1 1 1 1
6+ +6 2'
d.h., die Wahrscheinlichkeit, eine gerade Zahl zu werfen, ist genau 1/2. Nach
dem Wahrscheinlichkeitskonzept (8.1) erhalten wir fiir alle disjunkten Ereig-
nisse X und Y

Wahr(X) + Wahr(Y)
Wahr(X U Y)
Wahr(S)
Wahr(X) + Wahr(Y).

Diese Uberlegungen fiihren zu der folgenden axiomatischen Definition der


Wahrscheinlichkeit.
296 8 Randomisierung

D e f i n i t i o n 8.1. gel S die Menge aller elementaren Ereignisse eines Wahr-


scheinlichkeitsexperimentes. Eine W a h r s c h e i n l i c h k e i t s v e r t e i l u n g a u f S ist
jede Funktion Wahr" 79(S) --+ [0, 1], die folgende Bedingungen erfiillt:

Wahr({x}) _> 0 fiir jedes elementare Ereignis x,


W a h r ( S ) - 1, und
W hr(X o Y) - W hr(X) + W hr(Y) X, Y c_ S
XNY-O.

W a h r ( X ) nennt man die W a h r s c h e i n l i c h k e i t des E r e i g n i s s e s X . Das


Paar (S, W a h r ) wird als ein W a h r s c h e i n l i c h k e i t s r a u m bezeichnet. Falls
Wahr({x}) = Wahr({y}) fiir alle x, y E S, nennt man Wahr die u n i f o r m e
W a h r s c h e i n l i c h k e i t s v e r t e i l u n g (oder G l e i c h v e r t e i l u n g ) auf S.

A u f g a b e 8.1. Beweisen Sie, dass folgende Eigenschaften ftir jeden Wahrscheinlichkeits-


raum (S, Wahr) immer gelten:
(i)Wahr(0) - 0,
(ii)W a h r ( S - X ) - 1 - Wahr(X) fiir jedes X C_ S,
(iii)ftir alle X, Y c_ S mit X c_ Y gilt Wahr(X) _< Wahr(Y),
(iv) Wahr(X 0 Y) - Wahr(X) + Wahr(Y) - Wahr(X N Y)
_< Wahr(X) + Wahr(Y) fiir alle X, Y c_ S,
(v) W a h r ( X ) - }--]xeX Wahr(z) ftir alle X G S.

Wir bemerken, dass alle Eigenschaften aus Aufgabe 8.1 unserer Zielsetzung und
damit der informellen Definition (8.1) entsprechen. Somit entspricht die Addi-
tion der Wahrscheinlichkeiten unserer intuitiven Vorstellung, dass die Wahr-
scheinlichkeit, dass irgendeines von mehreren unvereinbaren Ereignissen ein-
tritt, gleich der Summe der Wahrscheinlichkeiten der betrachteten Ereignisse
ist.
Was entspricht der Multiplikation zweier Wahrscheinlichkeiten? Betrachten wir
zwei Wahrscheinlichkeitsexperimente, die in dem Sinne unabhS~ngig sind, dass
kein Resultat eines Experimentes einen Einfluss auf das Resultat des anderen
Experimentes hat. Ein Beispiel dafiir ist, zweimal zu wtirfeln. Egal, ob wir auf
einmal mit zwei Wiirfeln spielen oder ob wir zweimal denselben Wiirfel rollen
lassen, die Resultate beeinflussen sich nicht gegenseitig. Z.B. hat eine 3 beim
ersten Wurf keinen Einfluss auf das Ergebnis des zweiten Wurfs. Wir wissen,
dass Wahr(i) - g1 fiir beide Experimente und fiir alle i E {1 , 2 , . . . , 6}. Be-
trachten wir jetzt die Zusammensetzung beider Zufallsexperimente (W(irfeln)
als ein Zufallsexperiment. Die Menge der elementaren Ereignisse ist hier
8.2 Elementare Wahrscheinlichkeitstheorie 297

wobei fiir ein elementares Ereignis { (i, j)} der Index i das Ergebnis des ersten
Wurfs und j das des zweiten ist. Wie soll jetzt korrekterweise die Wahrschein-
lichkeitsverteilung Wahr2 auf $2 aus ({1, 2 , . . . , 6}, Wahr) bestimmt werden?
Wir bauen auf der Intuition auf, dass die Wahrscheinlichkeit des Eintretens
yon zwei vollstS~ndig unabhS~ngigen Ereignissen gleich dem Produkt der Wahr-
scheinlichkeiten dieser Ereignisse ist und damit

1 1 1
Wahr2({(i, j)}) - Wahr({i}). Wahr({j}) - ~ . ~ = 36

fiir alle i, j C {1, 2 , . . . , 6}. 0berpriifen wir die Korrektheit dieser Uberlegung.
Die Menge $2 beinhaltet genau 36 elementare Ereignisse, die alle gleich wahr-
scheinlich sind. Damit ist tatsachlich W a h r 2 ( { ( i , j ) } ) - 1 fiir alle (i,j) E $2.

Aufgabe 8.2. Sei k c IN- {0}. Sei (S, Prob) ein Wahrscheinlichkeitsraum, wobei Prob eine
uniforme Wahrscheinlichkeitsverteilung (Gleichverteilung) fiber S = {0, 1, 2,..., 2k - 1} ist.
Erzeugen Sie (S, Prob) durch k-fachen Miinzwurf.

Es bleibt zu klgren, wie man die Wahrscheinlichkeitstheorie anwendet, um zu-


fallsgesteuerte (randomisierte) Algorithmen zu entwerfen und zu analysieren.
Dazu benutzt man zwei verschiedene MSglichkeiten. Die erste MSglichkeit ist,
mit dem Modell der NTM mit endlichen Berechnungen zu starten und jeden
nichtdeterministischen Schritt als ein Zufallsexperiment zu betrachten. Dies
bedeutet, dass man bei einer Wahl aus k MSglichkeiten jeder MSglichkeit die
Wahrscheinlichkeit ;1 zuordnet Dann bestimmt man die Wahrscheinlichkeit ei-
ner Berechnung als das Produkt der Wahrscheinlichkeiten aller zufglligen Ent-
scheidungen dieser Berechnung. Sei SA,x die Menge aller Berechnungen einer
NTM (eines nichtdeterministischen Programms) A auf einer Eingabe x. Wenn
man jeder Berechnung 6' aus SA,x die oben beschriebene Wahrscheinlichkeit
Wahr(C) zuordnet, dann ist (Sa,x, Wahr) ein Wahrscheinlichkeitraum.

Aufgabe 8.3. Beweisen Sie, dass (SA,x,Wahr) ein Wahrscheinlichkeitsraum ist.

Die Summe der Wahrscheinlichkeiten der Berechnungen aus SA,x mit einer
falschen Ausgabe A(x) fiir die Eingabe x ist dann die F e h l e r w a h r s c h e i n -
lichkeit des Algorithmus A auf der Eingabe x, F e h l e r A ( x ) . Die F e h l e r -
w a h r s c h e i n l i c h k e i t des A l g o r i t h m u s A definiert man als eine Funktion
Fehlera :IN ~ IN wie folgt.

F e h l e r A ( n ) = max{FehlerA(x) l lxl = ~}.


298 8 Randomisierung

Auger den Fehlerwahrscheinlichkeiten kann man z.B. auch untersuchen, wie


grog die Wahrscheinlichkeit ist, dass eine Berechnung aus h6chstens t(n) Schrit-
ten besteht (d.h., wie grog die Summe der Wahrscheinlichkeiten der Berech-
nungen ist, die kiirzer als t(n) sind).
Die andere M6glichkeit, die randomisierten Algorithmen zu definieren, ist ein-
fach, einen randomisierten Algorithmus als eine Wahrscheinlichkeitsverteilung
fiber einer Menge deterministischer Algorithmen zu betrachten. Dies entspricht
der Vorstellung, dass man einem deterministischen Algorithmus (einer TM) A
eine Folge von Zufallsbits (ein zusgtzliches Band mit einer Zufallsfolge) als
zusgtzliche Eingabe gibt. Jede Folge von Zufallsbits bestimmt eindeutig eine
deterministische Berechnung von A auf der gegebenen Eingabe x. Die Zufalls-
folgen als elementare Ereignisse zu betrachten, entspricht also der Betrachtung
der Berechnungen aus SA,, als elementare Ereignisse. Gew6hnlicherweise ha-
ben alle Zufallsfolgen die gleiche Wahrscheinlichkeit, und somit handelt es sich
um die uniforme Wahrscheinlichkeitsverteilung fiber der Menge aller Berech-
nungen aus SA,,. Die Beispiele randomisierter Algorithmen in den ngchsten
zwei Abschnitten bauen auf diesem Modell der randomisierten Algorithmen
auf. Die Folgen von zufglligen Bits interpretiert man in diesen Beispielen als
eine zufgllige Zahl, die dann die Berechnung und somit das Resultat der Be-
rechnung beeinflusst.

8.3 Ein randomisiertes Kommunikationsprotokoll

Die Zielsetzung dieses Abschnittes ist zu zeigen, dass randomisierte Algorith-


men wesentlich effizienter als bestm6gliche deterministische Algorithmen sein
k6nnen. Betrachten wit die folgende Aufgabenstellung. Wit haben zwei Rech-
n e t -/~I und !~II. Urspr/inglich erhalten diese eine Datenbank mit gleichem In-
halt. Mit der Zeit hat sich der Inhalt dynamisch ge~ndert, abet wit haben
versucht, die gleichen Anderungen auf beiden Rechnern zu machen, um idea-
lerweise die gleiche Datenbank auf beiden Rechnern zu erhalten. Nach einer
gewissen Zeit wollen wit nun iiberpriifen, ob RI und !~II wirklich noch die
gleichen Daten haben. Im Allgemeinen bezeichnen wit dutch n die Gr/St3e der
Datenbank in Bits. Konkret betrachten wir ein grofies n = 1016, was bei Gen-
datenbanken eine realistische Gr6fie sein diirfte. Unser Ziel ist es, einen Kom-
munikationsalgorithmus (ein Protokoll) zu entwerfen, der feststellt, ob die In-
h a r e der Datenbanken v o n -/~I und !~II unterschiedlich oder gleich sind. Die
KomplexitS~t des Kommunikationsalgorithmus messen wir in der Anzahl der
ausgetauschten Bits zwischen RI und/~II. Man kann beweisen, dass jedes deter-
8.3 Ein randomisiertes Kommunikationsprotokoll 299

ministische Protokoll fiir diese Aufgabe einen Austausch von n Bits zwischen
RI und RII nicht vermeiden kann. Also existiert kein Protokoll, das h6chstens
n - 1 Kommunikationsbits benutzen darf und diese Aufgabe zuverlS~ssig 16st.
Wenn m a n bei der D a t e n m e n g e mit n = 1016 noch sicherstellen sollte, dass
alle Kommunikationsbits korrekt ankommen, wiirde m a n auf den Versuch, die
Aufgabe auf diese Weise zu 16sen, wahrscheinlich verzichten.
Die L6sung in dieser Situation bietet folgendes zufallsgesteuertes Protokoll. Es
basiert auf dem Primzahlsatz (Satz 2.3).
/ i ~ - (/~I, / ~ I I ) ( E i n z u f a l l s g e s t e u e r t e s K o m m u n i k a t i o n s p r o t o k o l l )

Ausgangssituation: //~I hat n Bits z = X l . . . 2;n, t~ii hat n Bits y = y l . . . Yn-


Phase 1: RI wS~hlt zufS~llig mit einer uniformen Wahrscheinlichkeitsverteilung
p a l s eine yon den Prim (n 2) ~ n 2/ln
/ n 2 Primzahlen kleiner gleich n 2
Phase 2: RI berechnet die Zahl s = Nummer(z) rood p und schickt die bin~re
Darstellung von s und p zu/~II.
Phase 3: Nach dem Empfang von s und p berechnet /~II die Zahl
q= Nummer(y) rood p.
Falls q ~ s, dann gibt -/~II die Ausgabe ,,ungleich".
Falls q = s, dann gibt -/~II die Ausgabe ,,gleich".

Jetzt analysieren wir die Arbeit von R - (/~I,/~II)- Zuerst b e s t i m m e n wir die
KomplexitS~t, gemessen als die Anzahl der Kommunikationsbits, und dann aria-
lysieren wir die ZuverlS~ssigkeit (Fehlerwahrscheinlichkeit) yon R - (RI, RII).
Die einzige K o m m u n i k a t i o n besteht darin, dass RI die Zahlen s und p an RII
schickt. Weil s _< p < n 2 gilt, ist die LS~nge der bin~ren Nachricht 2. [log 2 n 2] _<
4 . [log 2 hi. F/Jr n - 1016 sind dies h6chstens 4 . 1 6 . [log 2 10] - 256 Bits. Es
ist also eine sehr kurze Nachricht, die m a n problemlos zuverlS~ssig/ibertragen
kaIlI1.
Bei der Analyse der Fehlerwahrscheinlichkeit unterscheiden wir zwei M6glich-
keiten beztiglich der tats~chlichen Relation zwischen z und y.

(i) Sei z - y. Dann gilt

Nummer(z) rood p - Nummer(y) rood p

fiir alle Primzahlen p. Also gibt -~II die Antwort ,,gleich" mit Sicherheit. In
diesem Fall ist also die Fehlerwahrscheinlichkeit O.
300 8 Randomisierung

(ii) Sei x ~ y. Wir b e k o m m e n eine falsche Antwort ,,gleich" nur dann, wenn
/:~I eine zufgllige Primzahl p gewghlt hat, die die Eigenschaft hat, dass
z- Nummer(x) rood p - Nummer(y) rood p

gilt. In anderer Form geschrieben:

Nummer(x) - x' . p + z und N u m m e r ( y ) - y' . p + z

fiir irgendwelche natiirliche Zahlen x' und y'.


Daraus folgt, dass

also dass p die Z a h l I N u m m e r ( x ) - N u m m e r ( y ) l teilt.


Also gibt unser Protokoll R = (RI, RII) eine falsche Antwort nur, wenn die
gewS~hlte Primzahl p die Z a h l l N u m m e r ( x ) -Nummer(y)l teilt. Wir wis-
sen, dass p aus P r i m (n 2) Primzahlen aus {2, 3 , . . . , n 2} mit uniformer Wahr-
scheinlichkeitsverteilung gewghlt wurde. Es ist also hilfreich festzustellen, wie
viele yon diesen P r i m (n 2) ~ n 2 / l n n 2 Primzahlen die Z a h l l N u m m e r ( x ) -
N u m m e r ( y ) l teilen k6nnen. Weil die bin/~re L/~nge von x und y gleich n ist,
gilt
- I - < 2

Sei w - pl~il~i2p2 ... pk~ik wobei pl < p2 < "'" < p~ Primzahlen und il, i2, ... , ik
positive ganze Zahlen sind. Wir wissen, dass jede Zahl eine solche eindeutige
Faktorisierung besitzt. Unser Ziel ist zu beweisen, dass k _< n - 1 . Wir beweisen
es indirekt. A n g e n o m m e n , k > n.
D a n n ist

w - p i p~.i1~.i2
2 . . .Pkik > p l p 2 . . .p~ > 1 . 2 " 3 ..... n- It!
> 2n .

Das widerspricht aber der b e k a n n t e n Tatsache, dass w < 2 ~. Also kann w


h6chstens n - 1 unterschiedliche P r i m f a k t o r e n haben. Weil jede Primzahl aus
{2, 3 , . . . , n 2} die gleiche Wahrscheinlichkeit hat, gewS~hlt zu werden, ist die
Wahrscheinlichkeit, ein p zu wghlen, das w teilt, h6chstens
n 1 n 1 in n 2
P r i m (n2 ) <- n2 // ln n 2<- n
fiir geniigend grot3e n.
Also ist die Fehlerwahrscheinlichkeit yon _/~ fiir unterschiedliche Inhalte x und
y hSchstens an~ , was fiir n - 1012 h6chstens 0 , 2 7 7 . 1 0 - 1 ~ ist.
8.3 Ein randomisiertes Kommunikationsprotokoll 301

So eine kleine Fehlerwahrscheinlichkeit ist kein ernsthaftes Risiko, aber nehmen


wir an, dass jemand sich noch eine kleinere Fehlerwahrscheinlichkeit wtinscht.
Dann kann man das Protokoll (]~I, ]~II) 10-real mit 10 unabhS~ngigen Wahlen
einer Primzahl wie folgt laufen lassen.
Protokoll R10

Anfangssituation: /~I hat n Bits x = X l . . . x~ und/~II hat n Bits y = Yl... Y~.


Phase 1: RI w~hlt zufgllig mit uniformer Wahrscheinlichkeitsverteilung zehn
Primzahlen pl, p2, 9 9 pl0 aus {2, 3 , . . . , n2}.
Phase 2: /~I berechnet si = N u m m e r (x) rood pi ftir i = 1 , 2 , . . . , 10 und
schickt die bingren Darstellungen von Pl, P 2 , . . . , Pl0, Sl, s 2 , . . . , Sl0 zu/~II.
Phase 3: Nach dem Empfang von P l , P 2 , . . . , P l 0 , Sl, s 2 , . . . , Sl0 berechnet RII
qi = N u m m e r ( y ) rood pi fiir i = 1, 2 , . . . , 10.
Falls ein i E {1, 2 , . . . , 10} existiert, so dass qi ~ si, dann gibt /~II die
Ausgabe ,,ungleich".
Falls qj = sj fiir alle j E { 1 , 2 , . . . , 10}, dann gibt /~II die Ausgabe
,,gleich".

Wir bemerken, dass die Kommunikationskomplexit~tt von Rio zehnmal gr6fier


ist als die Komplexit~tt von R. In unserem Fall n = 1012 sind dies aber
h6chstens 1600 Bits, was kein technisches Problem darstellt. Wie 5~ndert sich
aber die Fehlerwahrscheinlichkeit? Falls x = y, wird Rio wieder keinen Fehler
machen und gibt die richtige Antwort ,,gleich" mit Sicherheit.
Falls x y! y wird Rio eine falsche Antwort nur liefern, wenn alle 10 zuf~tllig
gew~hlten Primzahlen zu den h6chstens n - 1 Primzahlen, die [ N u m m e r ( x ) -
N u m m e r ( y ) ] teilen, geh6ren.
Weil die 10 Primzahlen in 10 unabhgngigen Experimenten gew~hlt worden
sind, ist die Fehlerwahrscheinlichkeit h6chstens

(n-lprim(n 2))1~ ( l n ln~2 ) 21~176


1~

Fiir n -- 1012 ist dies h6chstens 0 , 2 5 9 . 1 0 -105. Wenn wir bedenken, dass die
Anzahl der Mikrosekunden seit dem Urknall bis zum heutigen Tag eine 24-
stellige Zahl ist und die Anzahl yon Protonen im bekannten Universum eine
79-stellige Zahl ist, kann man eine Fehlerwahrscheinlichkeit unter 10 -105 leich-
ten Herzens in Kauf nehmen. Auch wenn ein deterministisches Protokoll mit
Kommunikationskomplexit~tt 1012 Bits praktisch realisierbar wSre, ist es klar,
302 8 Randomisierung

dass m a n aus K o s t e n g r i i n d e n das zufallsgesteuerte Protokoll implementieren


wiirde.
Die K o n s t r u k t i o n yon -R10 aus _R gibt uns eine wichtige Einsicht. W i r kSnnen
die Fehlerwahrscheinlichkeit von zufallsgesteuerten A l g o r i t h m e n durch mehr-
laches Durchlaufen des A l g o r i t h m u s nach u n t e n driicken. Bei einigen Algo-
r i t h m e n , wie bei unserem Protokoll, reichen wenige W i e d e r h o l u n g e n fiir einen
e x t r e m e n Riickgang der Fehlerwahrscheinlichkeit.

Aufgabe 8.4. Betrachten Sie das Protokoll Rk, k E I N - {0}, das auf der zuf~lligen Wahl
yon k Primzahlen aus {2, 3,..., n 2} basiert. Wie entwickelt sich die Fehlerwahrscheinlichkeit
yon Rk mit wachsendem k?

Aufgabe 8.5. Ein anderer Ansatz, um die Fehlerwahrscheinlichkeit nach unten zu driicken,
ist, das Protokoll R in ein Protokoll Q~, r E I N - {0, 1, 2} umzu~ndern. Q~ arbeitet genau
wie R, nur am Anfang w~hlt Q~ zuf~llig eine Primzahl aus der Menge {2, 3,..., n ~} statt
aus {2, 3,..., n2}. Bestimmen Sie die Komplexit~tt und die Fehlerwahrscheinlichkeit von Q~
fiir jedes r _> 2.

Aufgabe 8.6. Sei (~ > 1 eine positive ganze Zahl. Entwerfen Sie ein randomisiertes Proto-
koll, das den Vergleich von zwei Datenbanken der GrSf3e n mit einer Fehlerwahrscheinlichkeit
von hSchstens 1/5 realisiert. Welcher der beiden Ans~tze aus den Aufgaben 8.4 und 8.5 ist
effzienter beziiglich der Kommunikationskomplexit~t? Lohnt es sich mehr, mehrere kleine
Primzahlen oder eher eine (potentiell) grSfiere Primzahl zufSJlig zu w~hlen?

8.4 Die Methode der h iufigen Zeugen


und der randomisierte Primzahltest

In diesem A b s c h n i t t wollen wir zuerst nach den Griinden suchen, w a r u m unser


zufallsgesteuertes Protokoll _R unvergleichbar effizienter ist, als jedes determi-
nistische Protokoll fiir die gestellte Aufgabe sein kann. Das Protokoll _R h a b e n
wir durch eine einfache A n w e n d u n g der s o g e n a n n t e n M e t h o d e von hgufigen
Zeugen gewonnen. W i r stellen diese M e t h o d e jetzt vor.
Im Allgemeinen b e t r a c h t e t m a n ein E n t s c h e i d u n g s p r o b l e m , bei d e m m a n ent-
scheiden soll, ob eine gegebene E i n g a b e eine gewisse Eigenschaft hat oder
nicht. Setzen wir noch voraus, dass wir keinen effizienten deterministischen
A l g o r i t h m u s fiir die Aufgabe gefunden h a b e n (oder sogar, dass kein etfizienter
A l g o r i t h m u s fiir die Aufgabe existiert). Bei einer A n w e n d u n g der M e t h o d e der
hgufigen Zeugen fgngt m a n jetzt mit der Suche nach einer passenden Definition
yon Zeugen an. Ein Zeuge (vgl. Definition 6.9) sollte eine Z u s a t z i n f o r m a t i o n
8.4 Die Methode der h/~ufigen Zeugen und der randomisierte Primzahltest 303

zur Eingabe sein, mit deren Hilfe man effizient deterministisch beweisen kann,
dass die Eingabe die gewiinschte Eigenschaft hat (oder dass die Eingabe die
Eigenschaft nicht hat). In unserem Beispiel war eine Primzahl p der Zeuge fiir
den Unterschied zwischen x und y (d.h. Zeuge yon x ~ y), falls

Nummer(x) rood p =/=Nummer(y) rood p.

Wenn man also ein solches p geschenkt bekommt, kann man effizient den Fakt
,,x ist unterschiedlich von y" beweisen. In der Realitgt k6nnen wir auf ein
solches Geschenk nicht hoffen und schlimmer noch, wir k6nnen uns den Zeu-
gen nicht alleine effizient deterministisch ausrechnen (sonst hgtten wir einen
effizienten deterministischen Algorithmus fiir die Aufgabe). Um einen effizi-
enten randomisierten Algorithmus zu entwerfen, brauchen wir fiir jede Einga-
be eine Menge von Zeugenkandidaten, von denen ausreichend viele wirklich
Zeugen sind. In unserem Beispiel sind Kandidaten f/ir Zeugen alle ungefghr
n2/inn 2 Primzahlen kleiner gleich n 2. Von diesen Kandidaten sind minde-
stens ~ 2 _ ( n - 1) Zeugen und somit ist die Wahrscheinlichkeit, einen Zeugen
aus der Kandidatenmenge zufgllig zu ziehen, mindestens

In~2
n2 (n-l) >1 i n ?%2
?%2
Inn 2 /1"

Das ist sehr gfinstig, weil dieser Wert sehr nahe an 1 ist. Aber auch wenn die
Wahrscheinlichkeit, einen Zeugen zu ziehen, nur 1/2 wgre, sind die Zeugen
noch immer ausreichend hgufig. Es reicht in diesem Fall aus, einfach mehrere
Zufallsversuche zu machen. Dadurch wgchst die Wahrscheinlichkeit schnell,
in mindestens einem der Versuche einen Zeugen zu bekommen, was ftir uns
hinreichend ist.
Jetzt kann man noch fragen, wie es m6glich ist, dass wir einen Zeugen nicht
deterministisch schnell finden k6nnen, wenn es so vide zwischen den Zeugen-
kandidaten gibt. Eine M6glichkeit wS~re doch, systematisch der Reihe nach
alle Kandidaten auf eine so geschickte Weise durchzuprobieren, dass man nach
kurzer Zeit einen Zeugen findet. Das Problem ist aber, dass fiir jede Eingabe
die Zeugen anders zwischen den Zeugenkandidaten verteilt sein k6nnen. Wenn
man sich also auf eine Durchsuchungsstrategie festlegt, k6nnte man immer
Eingaben finden, bei denen die Strategie versagt.
Betrachten wir unser Beispiel. Hier kann man sogar beweisen, dass keine Stra-
tegie existiert, die effizient einen Zeugen fiir jede Eingabe (x, y) findet. Um dies
zu veranschaulichen, nehmen wir die einfache Strategie, die die Primzahlen ei-
304 8 Randomisierung

ne nach der anderen beginnend mit der kleinsten ausprobiert. Es ist klar, dass
sp~testens nach n Proben ein Zeuge gefunden werden muss, weil h6chstens
n - 1 Nicht-Zeugen zwischen den Kandidaten sind. Leider bedeuten n Proben
eine KommunikationskomplexitS~t von n . 4. log 2 n, was wir uns nicht leisten
k6nnen. Warum haben wir nicht immer die M6glichkeit, nach ein paar Proben
einen Zeugen zu finden? Weil unsere Strategie bei folgenden Eingaben (z, y)
n
mit N u m m e r ( z ) - Nummer(y) - P l " P2 . . . . . P k , wobei k 2(log~)2 und
Pl < P2"'" < Pk die kleinsten Primzahlen sind, k + 1 Proben braucht, um
einen Zeugen zu finden. Man kann sich leicht vorstellen, dass man bei jeder
anderen Aufz~hlung der Primzahlen spezifische Eingaben findet, fiir die viele
Proben notwendig werden, um einen Zeugen zu finden.

Die Methode der h~ufigen Zeugen ist eine erfolgreiche starke Methode zum
Entwurf von zufallsgesteuerten Algorithmen. Der effiziente zufallsgesteuerte
Primzahltest basiert auf dieser Methode, und der Primzahltest geh6rt zu den
wichtigsten algorithmischen Aufgaben von grofier praktischer Bedeutung. Die
besten bekannten deterministischen Algorithmen wiirden fiir das Testen grofier
Zahlen, die in der Kryptographie verwendet werden, nicht in Milliarden von
Jahren fertig. Zu erklS~ren, wie man hier die Zeugen definiert, ist eine zu kom-
plexe Aufgabe fiir diese Einfiihrung und daher ist unsere Zielsetzung viel be-
scheidener. Wir zeigen nur, wie man den randomisierten Primzahltest fiir un-
gerade Zahlen n mit ungeradem - ~ effizient machen kann.

Zuerst klgren wir, was bei den zahlentheoretischen Problemen effizient bedeu-
tet. Fiir eine Zahl n ist die Eingabegr6f3e [log2(n + 1)]. Ein polynomieller
Algorithmus fiir den Primzahltest fiir n muss also eine polynomielle Laufzeit
beziiglich [log2(n + 1)] haben. In der Praxis testen wir Zahlen von mehreren
Hunderten von Ziffern (z.B. log2 n ~ 500) und deswegen kann man sich eine
exponentielle Komplexitgt in log 2 n nicht leisten. Somit ist der naive determi-
nistische Algorithmus, der iiberpriift, ob eine der Zahlen aus {2, 3 , . . . , [x/~J }
die gegebene Zahl n teilt, yon exponentieller Komplexitgt (mindestens x/~ =
l o g 2 rt
2--w-). Bei diesem Einsatz ist ein Zeuge der Tatsache ,,p ist keine Primzahl"
jede natiirliche Zahl rn > 1, rn ~ p, die p teilt. Solche Zeugen 1 sind aber im
Allgemeinen nicht hgufig. Wenn n = p . q fiir zwei Primzahlen p und q, dann hat
n nur zwei Zeugen p und q in der Kandidatenmenge der Mgchtigkeit f~(x/-n).
Deswegen muss man versuchen, Zeugen auf eine neue Art zu bestimmen.

1Die auf der klassischen Definition von Primzahlen basieren.


8.4 Die Methode der h/~ufigen Zeugen und der randomisierte Primzahltest 305

Satz 8.1. Satz von Fermat


Fiir jede Primzahl p und jede natiirliche Zahl a mit ggT(a, p ) = 1 gilt

a p-1 rood p = 1.

Beweis. In dem Beweis nutzen wir die Tatsache, dass jede Zahl eine eindeutige
Zerlegung in Primzahlfaktoren hat. Weil p eine Primzahl ist, gilt

c.d modp=0<=>c modp=0oderd modp=0 (s.2)


fiir alle natiirlichen Zahlen c und d.
Sei a eine beliebige Zahl mit ggT(a, p) = 1. Betrachten wir die Zahlen

rrtl = 1 .a, m2 = 2 . a , ..., rrtp_l = (p- 1).a.

Wir behaupten, dass

m~ m o d p C m ~ modp

fiir alle u, v E { 1 , . . . , p - 1} mit u r v. Wir beweisen dies indirekt.


Angenommen

rn~ m o d p = r n ~ modp

fiir irgendwelche u, v E { 1 , . . . , p - 1}, u > v. Dann teilt p die Zahl

- = -

Das ist aber nicht m6glich, weil u - v < p und nach der Voraussetzung des
Satzes ggT(a, p) = 1 ist. Somit

[{rrtl rood p, m2 rood p, . . . , rrtp_l rood p}[ = p - 1.

Jetzt b e h a u p t e n wir, dass keine der Zahlen rni rood p eine 0 ist. Falls

rn~ m o d p = ( u . a ) modp=0

fiir ein u gelten wiirde, dann wgre nach (8.2)

u modp=0odera modp=0.
306 8 Randomisierung

Die Primzahl p kann aber keine der Zahlen u und a teilen, weil u < p und
ggT(a, p ) = 1. Somit gilt

{ml m o d p , m2 m o d p , . . . , m p _ l modp}={1,2,...,p-1}. (8.3)

Betrachten wir jetzt die Zahl

~ ~1"~2 ..... ~p-1-

Der Definition yon mi folgend ist

m--l.a.2.a ..... (p-1).a--l.2 ..... (p-1).a p-1. (8.4)

Aus (8.3) erhalten wir

m modp=l-2 ..... (p-l) modp. (8.5)


Die Gleichungen (8.4) und (8.5)implizieren

1.2 ..... (p-1).a p-1 m o d p - l . 2 ..... (p-l) modp,

d.h.

a ;-1 m o d p = l .

Eine Verfeinerung des Fermatschen Satzes ist die folgende Behauptung


p--1
,,p ist eine Primzahl" e=~ a ~ modpC{1,p-1}
fiir alle a E { 1 , . . . , p - 1}.

Diese Behauptung liefert eine neue Definition von Primzahlen. Nach dieser
Definition kommen als Zeugen fiir die Tatsache ,,n ist keine Primzahl" die
n--1
Zahlen a in Frage, fiir die a ~ rood n ~ {1, n - 1} gilt. Der folgende Satz
besagt, dass solche Zeugen f~r gewisse Zahlen n hinreichend hSoufig sind.

S a t z 8.2. Fiir jede ungerade natiirliche Zahl n mit ungeradem ~__A1 d.h.
n rood 4 = 3) gilt

falls n eine Primzahl ist, dann


n--1
a ~ modnE{1, n-1}fiiralleaE{1,...,n-1} und
8.4 Die Methode der hS~ufigen Zeugen und der randomisierte Primzahltest 307

falls n k e i n e P r i m z a h l ist, d a n n
n--1
a 2 modn~ {1, n 1}
fiir m i n d e s t e n s eine Hiilfte der Z a h l e n a aus { 1 , . . . , n- 1}.

Aufgabe 8.7.* Beweisen Sie Satz 8.2.

Somit h a b e n wir fiir Zahlen rn, die keine P r i m z a h l e n sind, und fiir die
rn rood 4 - 3 gilt die Wahrscheinlichkeit ~, 1 in einem Zufallsversuch einen
Zeugen ihrer Nichtzugeh6rigkeit zu den Primzahlen zu wS~hlen. Um mit dieser
Definition von Zeugen definitiv einverstanden zu sein, miissen wir noch fest-
n--1
stellen, dass a 2 rood n effizient zu berechnen ist. Wir k6nnen uns natiirlich
nicht leisten, ~-~-mal mit a zu multiplizieren, weil d a n n die Anzahl der Opera-
tionen exponentiell in ~log2 nl w~tre. Wenn wir a b rood p zu berechnen h a b e n
und b - 2 k gilt, d a n n kann dies mit der Methode des wiederholten Quadrierens
mit k Multiplikationen wie folgt berechnet werden"

a 2 mod p - a.a modp,


a 4 mod p - (a 2 m o d p ) - ( a 2 m o d p ) modp,
a s mod p - (a 4 m o d p ) . ( a 4 modp) modp,

a 2k m o d p - (a 2k-1 m o d p ) 2 modp.

Im Allgemeinen sei b - E i k = _ l b i 9 2 i - 1 (d.h. b - N l t l T t l T t e f ( b k b k _ l . . . bl) ) flir ein


k E IN - {0} und b~ E {0, 1} fiir i - 1 , . . . , k. D a n n ist offensichtlich

a b _ a hi'2 0 . ab2.21 . ab3.2 2 .... a b k . 2 k - 1.

U m a b mod p zu berechnen, berechnet m a n zuerst alle Zahlen ai - a 2~ mod p


durch wiederholtes Quadrieren. Danach multipliziert m a n rood p alle Zahlen
ai, fiir die bi - 1 gilt. Die A n w e n d u n g dieses Ansatzes fiir die Berechnung
n--I
yon a ~ rood n fiir ein a E { 1 , . . . , n - 1} bedeutet, dass m a n wS~hrend der
ganzen Berechnung nur mit Zahlen aus {0, 1 , . . . , n - 1} arbeitet, also mit
Zahlen der binS~ren LS~nge [log 2 hi. Offensichtlich ist die Anzahl der Multipli-
kationen solcher Zahlen hier kleiner als 2. [log 2 ~-~] E O(log 2 n). Nach dem
logarithmischen Kostenmat3 ist die gesamte KomplexitS~t der Berechnung von
a ~ 1 ( m o d n ) in O((log2n)2). D a m i t erhalten wir folgenden randomisierten
Algorithmus fiir den Primzahltest.
308 8 Randomisierung

So l o v a y - S t r a s s e n - A l g o r i t h m u s

Eingabe: Eine ungerade Zahl n mit u n g e r a d e m n-1 2 "

Phase 1. Wghle zufgllig bezfiglich der uniformen Wahrscheinlichkeitsvertei-


lung ein a E { 1 , 2 , . . . , n - 1}.
9 n~l
Phase 2 Berechne x " - a (rood n).
Phase 3. i f x E {1, n - 1} t h e n o u t p u t (,,Primzahl") ;
e l s e o u t p u t (,,keine P r i m z a h l " ) ;

Analysieren wir die Fehlerwahrscheinlichkeit dieses randomisierten Primzahl-


tests. Falls n eine P r i m z a h l ist, gilt nach (i) von Satz 8.2, dass
n--1
a 2 (modn)E {1, n - 1}

fiir alle a E { 1 , . . . , n - 1} und somit ist die Ausgabe des Algorithmus i m m e r


,,Primzahl" (d.h. die Fehlerwahrscheinlichkeit ist gleich 0).
Falls n keine P r i m z a h l ist, ist die Wahrscheinlichkeit, dass a kein Zeuge dieser
Tatsache ist, nach (ii) des 1 D a m i t ist die Fehlerwahrschein-
Satzes 8.2 gleich ~.
lichkeit in diesem Fall 7. 1 Diese Fehlerwahrscheinlichkeit ist offensichtlich zu
grog, aber wenn wir s t a t t eines a zwanzig Zahlen a l , . . . , a20 unabhS~ngig aus
n--1
{ 1, n - 1} wS~hlen und die Antwort ,,Primzahl" nur geben, wenn ai ~ rood n E
{ 1, n - 1} fiir alle i E { 1 , . . . , 20}, d a n n ist die Fehlerwahrscheinlichkeit kleiner
als 10 -6.

Aufgabe 8.8. Sei k c IN, k _> 2. Wie weit kann man die Fehlerwahrscheinlichkeit des
Solovay-Strassen-Algorithmus reduzieren, wenn man statt einem Versuch einen Zeugen zu
finden, k unabh~ngige Versuche macht? Begrtinden Sie Ihre Antwort.

8.5 Die Methode der Fingerabdriicke und


oo 9

die Aqulvalenz von zwei Polynomen

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 An-
w 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 Ob-
jekte.
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 (de-
terministischer) 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

n-k
.1 9 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 Po-
lynoms 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 erzeu-


gen. 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 A1-
gorithmus 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 (5) = )rood p,

Phase 3: 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) - - P2(Xl, ..- ,Xn)

ist gquivMent zu 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 Induktions-
annahme 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 Nicht-
5quivMenz 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 313

Beweis. 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).

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 kei-
hen 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.
(b) 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

n.d) .p~
1

Zeugen yon Q 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

rt.d)
1 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 Prim-
zahl p frei wS~hlbar ist. Dieser Freiheitsgrad kommt dadurch zustande, dass man
das Aquivalenzproblem fiir einige Objekte auf den Vergleich yon zwei Polyno-
men 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 315

8.6 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 Effizi-
enz auszeichnet. Nicht anders ist es in der Algorithmik, wo man dutch einfache
randomisierte Algorithmen Probleme viel effizienter als mit den besten deter-
ministischen 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 Ent-
wurfs eines effizienten randomisierten Protokolls basierte auf der Methode der
hgufigen Zeugen. Ein Zeuge ist eine Zusatzinformation zur Eingabe, mit de-
ren Hilfe man das Resultat effizient berechnen kann, obwohl kein effzienter
LSsungsansatz ohne einen Zeugen mSglich (oder bekannt) ist. Ftir die erfolgrei-
che 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 Zeu-
gen. 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 Zah-
len durchfiihren kann.
Ein Spezialfall der Methode der hS~ufigen Zeugen ist die Methode der Finger-
abdriicke fiir die L6sung von Aquivalenzproblemen. Die Idee ist, komplexen
Objekten mit umfangreicher Darstellung durch eine zufS~llige Abbildung soge-
nannte 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 Aquiva-
lenztest 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 auf-
grund des technischen Schwierigkeitsgrades eher ungeeignet ist. Eine Einfiih-
rung in das Gebiet des Entwurfes von randomisierten Algorithmen ist im Ka-
pitel 5 von [Hro 01] gegeben. Eine ausfiihrliche Darstellung der Methoden fiir
den Entwurf von zufallsgesteuerten Systemen, die durch viele anschauliche Bei-
spiele 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 Datenstruktu-
ren 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 Wahrscheinlich-
keitsraums 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 Er-
eignis) seine Wahrscheinlichkeit zuordnet. Die Wahrscheinlichkeit eines elementaren
Ereignisse ist der erwartete Anteil der Versuche, die mit diesem elementaren Er-
eignis 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 Wahr-
scheinlichkeit, 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 Wahr-
scheinlichkeitsraum?
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 be-
nutzen dazu das zufallsgesteuerte Kommunikationsprotokoll R. Aus wievielen Prim-
zahlen 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 an-
wenden?
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) iden-
tisch sind. Nutzen Sie diese Tatsache und den Algorithmus A Q P u m ein neues zu-
fallgesteuertes 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 Un-
tersuchung 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 Men-
schen 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 Telefon-
verbindungen 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 informatik-
bezogenen 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 gewis-
sen Grad kontraintuitive Resultate bereitstellt und dadurch auf eindrucksvolle
Weise M6glichkeiten er6ffnet, von denen die meisten Anwender nicht zu trS~um-
en wagten.
Die Organisation dieses Kapitels ist wie folgt gestaltet. Abschnitt 9.2 ist ei-
ner informellen Vorstellung der klassischen Kryptosysteme gewidmet. Der Ab-
schnitt 9.3 stellt das Konzept der Public-Key-Kryptosysteme vor und illu-
striert 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 Wissen-
schaft, Kryptosysteme zu entwickeln, und der Kryptoanalyse, der Kunst, diese
zu brechen. Hier beschSfftigen wir uns nur mit der Kryptographie. Das betrach-
tete Szenario ist in Fig. 9.1 dargestellt.

Schltissel Schliissel
Klar- 1 Krypto- 1 Klar-
text-I Verschliisselung I te~t . Entschliisselung text

~ana~
Fig. 9.1

Eine Person, genannt S e n d e r , will eine geheime Nachricht einer anderen Per-
son, 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)
320 9 Kommunikation und Kryptographie

ist ein gemeinsames Geheimnis des Senders und des EmpfS~ngers, und die Ver-
schlfisselung 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 Kryp-
totext entschliisselt, und das Ergebnis der Entschliisselung ist der urspriingli-
che Klartext.
Formal ist ein Kryptosystem ein Tripel (/C, A, $), wobei/C die Menge aller er-
laubten 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 Berech-
nung 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~tstheo-
retischen 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 brechen. Wenn man weifi, dass es sich
um CAESAR handelt, reicht es aus, alle 26 m6glichen Schliissel durchzu-
probieren. Schwerer kann man es dem Kryptoanalytiker machen, indem man
Schliissel aus {0, 1 , . . . , 26} ~ fiir ein m 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 Buchsta-
ben, der in der alphabetischen Ordnung um ai Positionen weiter hinten liegt.
Falls a = 3, 1, 6, dann erhS~lt man fiir den Klartext

K R Y P T 0 G R A P H I E
3 1 6 3 1 6 3 1 6 3 1 6 3

den Kryptotext

N S E S U U J 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 Alphabe-
ten einsetzt. Es existieren aber auch klassische Kryptosysteme, die sehr schnell
arbeiten und die man mit dem heutigen Wissen nicht brechen kann. Der Nach-
teil der klassischen Kryptosysteme liegt darin, dass sie auf einem gemeinsamen
Geheimnis von Sender und Empfgnger basieren. Die Kenntnis des Verschliisse-
lungsmechanismus impliziert direkt auch die Kenntnis des Entschliisselungs-
mechanismus (hS~ufig sind die Schl/issel f/Jr beide Verfahren gleich). Das bedeu-
tet, 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 Verschltisselungs-
verfahrens (Entschliisselungsverfahrens) einfach die Entschliisselungsprozedur
(Verschliisselungsprozedur) ableiten kann. Damit sind Sender und EmpfS~nger
gleichwertig und teilen sich den Schliissel als ein gemeinsames Geheimnis. Au-
tier 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 gesam-
ten Kommunikation bricht zusammen. Eine revolutionS~re Idee zur Uberwin-
dung 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
Name Telefonnummer
K Knuth 00128143752946
R Rivest 00173411020745
Y Yao 00127345912233
P Papadimitriou 00372453008122
T Thomas 00492417738429
O Ogden 00012739226541
R Rabin 00048327450028
A Adleman 00173555248001
P Papadimitriou 00372453008122
H Hop croft 00013782442358
I Ibarra 00124327010098
E Edmonds 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 ver-
schliisseln kann. Vorausgesetzt, dass alle aui3er dem Empf/~nger nur klassische
Telefonbiicher haben, die nach dem Namen sortiert sin(l, ist es eine sehr auf-
wendige 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 ernst-
haften Entwurf eines Kryptosystems mit 5ffentlichen Schl/isseln vorstellen, ge-
ben 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* ~ F*


heiflt E i n w e g - F u n k t i o n , falls sie folgende Eigenschaften hat.

Es existieren Konstanten c und d a u s IN - {0}, so dass fiir alle x E E*,


! . I x I <_ If (x ) <_ d. x .
{Das bedeutet nut, dass I/(x)l in linearer Relation stehen.}
(ii) Die Funktion f kann man in polynomieller Zeit berechnen.
Fiir jeden randomisierten polynomiellen Algorithmus A und jedes k E
I N - { 0 } existiert eine Konstante hA,k, 8o dass fiir jedes n >_ nA,k und ein
zufiillig ausgesuchtes w e E ~ die Wahrscheinlichkeit 2, dass A( f (w) ) -
w, kleiner als n -k ist.
{Diese Bedingung sichert, dass polynomiell viele unabhiingig wiederholte
Liiufe eines randomisierten polynomiellen Algorithmus nicht zur Berech-
hung yon f - 1 mit konstanter Fehlerwahrscheinlichkeit fiihren kdnnen.}

Bisher hat man von keiner Funktion bewiesen, dass sie eine Einweg-Funktion
ist. Dies hS~ngt hauptsS~chlich mit dem Schwierigkeitsgrad von Beweisen un-
terer Schranken in der Komplexit~tstheorie zusammen. Trotzdem kennt man
einige plausible Kandidaten. Ein Kandidat ist das Potenzieren modulo einer
natiirlichen Zahl n, das man, wie in Kapitel 8 gezeigt wurde, effizient berech-
nen kann. Die inverse Funktion ist der diskrete Logarithmus (das AuflSsen der
Gleichung a x rood n = b nach der Unbekannten x), fiir deren Berechnung kein

1Man kSnnte auch auf die Idee kommen, die Telefonnummer einfach anzurufen. Abgesehen
von den Kosten ffir die Anrufe kann man sich auch schnell in einem Experiment davon
fiberzeugen, dass dieser Weg keinen einfachen Erfolg garantiert.
2Die Wahrscheinlichkeit betrachtet man fiber zuf~llige Entscheidungen von A sowie tiber die
zuf/~llige Wahl von w.
324 9 Kommunikation und Kryptographie

effizienter (randomisierter) Algorithmus bekannt ist. Ein anderer K a n d i d a t f/Jr


eine Einweg-Funktion ist die Multiplikation von zwei Zahlen, die offensichtlich
effizient berechenbar ist. Die inverse Funktion ist die Faktorisierung, fiir die
kein etfizienter Algorithmus bekannt ist. Auf der Schwierigkeit der Faktori-
sierung basiert das folgende P u b l i c - K e y - K r y p t o s y s t e m RSA, dass nach seinen
Erfindern Rivest, Shamir und A d l e m a n b e n a n n t wurde. Sei ggT(a, b) fiir zwei
Zahlen a, b E IN der grSt3te gemeinsame Teiler yon a und b.
Der Empf~nger b e s t i m m t die Verschliisselung und die Entschltisselung durch
folgende Berechnung. Er generiert zufgllig zwei grot3e Primzahlen a p und q und
berechnet 4

n =p.q und g ( n ) = ( p - 1 ) - ( q - 1).

Dangch w~hlt er ein groi3es d > 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 Algo-
rithmus ebenfalls effizient berechnen 5 und somit ist die gesamte Schliisselbe-
rechnung 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 Zah-
len 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 Verallgemei-
nerung 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.
326 9 Kommunikation und Kryptographie

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 bestimmt. D a n n gilt fiir alle


natiirlichen Z a h l e n w k l e i n e r als n

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 und


w erffillt. D a h e r ist

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


s 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. (9.6)
Weil p die Zahl w teilt, gilt (9.6) auch modulo n - p . q , d.h.
w j~(~) rood n - 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 symmetri-


schen Kryptosystemen, weil sie uns die Herstellung von sicheren Kommuni-
kationsprotokollen fiir unterschiedliche Aufgaben ermSglichen (wie z.B. digi-
tale Unterschriften), die man mit symmetrischen Kryptosystemen nicht 15sen
kOnnte. Die klassischen symmetrischen Kryptosysteme haben aber auch einen
wesentlichen Vorteil gegeniiber den Public-Key-Kryptosystemen. Insbesonde-
re 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 sym-
metrisches 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, stel-


len wir zwei einfache Protokolle fiir digitale (elektronische) Unterschriften vor.
Handschriftliche Unterschriften sind juristisch gesehen eine Art Echtheitsga-
rantie. 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 Echt-
heitsgarantie fiir eine {Jberweisung von seinem Konto geben, oder ein anderes
Dokument fiir die Bank unterschreiben. Wir stellen folgende nattirliche Forde-
rungen an Kommunikationsprotokolle fiir solche digitalen Unterschriften.

(i) B muss v o n d e r Echtheit der Unterschrift v o n / s iiberzeugt werden. So-


wohl 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-Kryptosys-
teme.
Der Kunde K hat ein Public-Key-Kryptosystem mit der Verschliisselungsfunk-
tion E~ und der Entschlfisselungsfunktion D~:. Die Bank B kennt die 6ffent-
liche 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 M6glich-
keit, 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 Doku-
ment 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 ge-


eignet. B lernt die Unterschrift (w, D K ( w ) ) i n dieser elektronischen Kommu-
nikation und kann sich in der Kommunikation mit einem Dritten mit dieser
Unterschrift als K ausgeben. Es gibt Situationen, in denen so etwas sehr un-
erwiinscht ist. Auf3erdem kann irgendjemand der Kommunikation lauschen und
dabei auch das Paar (w, DK(w)) lernen. Er kann dann ebenfalls mit der 6ffentli-
chen Verschliisselungfunktion E~: die Echtheit der Unterschrift iiberpriifen und
sich dann als K ausgeben.

Die L6sung des Authentizitgtsproblems findet man in der Einbeziehung zwei-


er Public-Key-Kryptosysteme. K besitzt das bereits erwghnte Kryptosystem
(DK, EK) und B hat ein anderes Public-Key-Kryptosystem(DB, EB). Die Ver-
schliisselungfunktionen EK und EB sind 6ffentlich, und damit auch sowohl K
als auch B bekannt. Die Funktion DK ist alas Geheimnis von K und die Funk-
tion 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 Unter-
schrift yon K durch B ist.
330 9 Kommunikation und Kryptographie

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 Nach-
richt EB(DK(w)) kann niemand auger /? entschltisseln. Deswegen kann kein
Lauscher F die Unterschrift (w, EB(D~c(w)))lernen und deren Echtheit tiber-
prtifen. Damit ist die Bedingung (i) erftillt.
/? lernt in dieser Kommunikation die Unterschrift (w, EB(D~c(w))). Durch meh-
rere 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 Wahrschein-
lichkeit 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 331

9.5 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 polyno-
mieller 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 Berechnun-
gen statt mit deterministischen polynomiellen Berechnungen verkniipfen sollte.
So entsteht die Frage, f/ir welche Sprachen (Entscheidungsprobleme) man Be-
weise ,,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 Bewei-
set ist ein Algorithmus (eine TM), der keiner Komplexit~ttseinschr~nkung un-
terliegt. Der Verifizierer ist ein randomisierter polynomieller Algorithmus (eine
randomisierte polynomielle TM). Fiir eine Sprache L erhalten beide Teilneh-
met die gleiche Eingabe x. Der Verifizierer und der Beweiser diirfen kommuni-
zieren, 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 in-


t 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 po-
lynomieller 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 Kom-


munikation 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.}
332 9 Kommunikation und Kryptographie

(ii) falls x ~ L, dann endet fiir jeden Beweiser B die Kommunikation zwi-
schen 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 ent-


scheidend. 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 un-
ter 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 polyno-
miellen 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 Isomorphis-
mus 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 nichtdeter-
ministische 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 Permuta-
tion (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 rich-
tige 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 Beweissys-
tern 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 Iso-
morphie unterscheiden. Die Wahrscheinlichkeit, dass der Beweiser trotzdem
1 1 - a.
zweimal die richtige Antwort rS~t, ist 7.7 1 Damit ist die Fehlerwahrschein-
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 Resul-
tat.

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 Beweissy-
stem, 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 Kommunika-
tion 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 Zu-
gangskontrolle ftir einen Rechner konstruieren, die nur die Benutzung mit gtilti-
gem Passwort zul/~sst, aber dabei die Anonymitgt des Nutzers nicht verletzt.
Dies bedeutet, dass der Benutzer in die Rolle des Beweisers schltipft und ver-
sucht, 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 Verwen-
dung privater Informationen einer anderen Person zur Berechnung, ohne die
Daten dabei zu lernen. Stellen wir uns vor, dass der Verifizierer einen Funkti-
onswert 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 span-
nende Frage. Es ist ftir uns m a n c h m a l iiberraschend, wie viele Problemstel-
lungen m a n mit den Zero-Knowledge Beweissystemen bewgltigen kann. Zum
Beispiel kann m a n beweisen, dass jede Sprache aus NP ein Zero-Knowledge-
Beweissystem 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 Wahrscheinlichkeitsver-
teilung durch die zuftilligen Entscheidungen von V bestimmt wird. Ein interaktives Beweis-
system 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 Fehlerwahrscheinlich-
keit auf 2 -k.
Weil wir die formale Definition yon Zero-Knowledge-Beweissystemen nicht ge-
geben haben, k6nnen wir auch keinen formalen Beweis dieser Eigenschaft eines
Beweissystems fiihren. Trotzdem k6nnen wir intuitiv gut verstehen, warum die-
ses 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 Zufalls-
ereignis 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 ent-
weder 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 so-
mit kann er aus der Kommunikation nichts anderes erfahren, als das, was er
auch alleine berechnen kann.
336 9 Kommunikation und Kryptographie

9.6 Entwurf eines Kommunikationsnetzes

Die Kommunikation zwischen unterschiedlichen Objekten wie Menschen, Rech-


nern, 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 Glasfaser-
netzen, parallelen Rechnern usw. jeweils mit anderen Problemen beschS~ftigen.
Eine Vielfalt yon Problemstellungen tritt auch bei dem Entwurf yon Kommu-
nikationsstrategien 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-Teilneh-
mern 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 betrach-
tet 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 die-
ses 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 prak-
tisch 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 technologi-
schen 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 praktika-
ble LSsung. Jeder Knoten des Netzes darf hSchstens den Grad 4 haben, die
9.6 Entwurf eines Kommunikationsnetzes 337

X0 Xl X2 X3

Yo Yl Y2 Y3

Fig. 9.2

LO(v) ~ RO(v)
LO(v) ~ ~ v in LLRR
v in LRRL

LU(v) RU(v) LU(v) 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 ein-
fach. 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 Kommunikati-
onsanforderungen 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! Permutatio-
nen ( 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 statt-
finden 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 kommuni-
zieren 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-Teilneh-
mer. Sch6n wS~re es auch, eine regelmS~t3ige, iiberschaubare Verbindungsstruk-
tur zu erzeugen, insbesondere w/inschenswert wS~re die sogenannte Modula-
ritS~t. ModularitS~t bedeutet, dass man die Netze fiir 2n Teilnehmer als Bau-
steine fiir die Herstellung yon Netzen mit mehr (z.B. mit 4n) Teilnehmern
benutzen kann. Die ModularitS~t verringert offensichtlich die Kosten zukiinfti-
ger 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 339

XO Xl X2 X3
(0,00)1 I 1

(1,oo/I I I

(2, oo) I
Yo
I (2, Ol) I
Yl
(2, lO) I
Y2
I (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

n!
2~ 92~ _> 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, be-


ginnen 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
340 9 Kommunikation und Kryptographie

{(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 an-
schauliche 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 ver-
tikalen 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 Ent-
wurf eines 2~-Permutationsnetzes, das m a n B e n e g - N e t z w e r k nennt. Das r-
dimensionale Bene~-Netzwerk Benes~ erhS~lt man, wenn m a n zwei r-dimensio-
nale 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 Xl
(o,o) (o,1)

(i,0) (1,1)

(o, o) I I I I (2,1)
YO Yl

Fig. 9.6
9.6 Entwurf eines Kommunikationsnetzes 343

Benes~_l-Netz 2 r - 1 knotendisjunkte Wege zwischen den 2 r - 1 x-Teilneh-


mern 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 X2r-1

~ e~teS r_ 1 ~ e~teS r_ 1

A t3

II
YO Yl y2r-1--1 Y2 r-1 y2r-1+1 Y2 r-1

Fig. 9.7

Dank der Induktionsvoraussetzung ist es hinreichend, eine solche Kom-


munikationsstrategie zu finden, dass genau die HSAfte 17 der Wege fiber
den Netzteil Benes~_l A gehen wird, und dass die Kommunikationsauf-
gaben 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 Yj+2 r-1

Xi+2r-1 t?

0
XO
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 an-
deren 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 Nach-
folgerforderungen. Falls I @ - 1 - iol r 2~-~ miissen wir wegen (2) den Weg
9.6 Entwurf eines Kommunikationsnetzes 345

nach 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

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 Kan-
ten. 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 loga-
rithmisch 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]_<1.
Die Kosten eines Schnittes (V1, V2) sind

co t(v1, v=) : IE n {{v, I v c pl, c p=}l,

d.h. die Anzahl der Kanten zwischen V1 und V2. Die B i s e k t i o n s b r e i t e v o n G misst die
Kosten des minimalen balancierten Schnittes. Im Netzwerkdesign wird der Entwurf yon Net-
zen mit mSglichst grofier Bisektion angestrebt. Eine grofie Bisektion von G garantiert, dass
bei jeder Zerlegung von G in ungef~hr zwei gleich grofie Teile hinreichend viele Kommuni-
kationskan~le zwischen diesen Teilen vorhanden sind. Beweisen Sie, dass But~ und B e n e s ~
eine Bisektionsbreite in ft(2 ~) haben. 2~

18Falls I((q ~- 2r--1) mod 2r) - ((s + 2 r - l ) mod 2r)l 7~ 2 r-1.


19Damit ist die Anzahl der Schaltungsknoten in O ( n . log 2 n), wenn n der Anzahl der Teil-
nehmer entspricht.
2~ Bisektionsbreite ist ungefiihr so hoch wie die Anzahl der Teilnehmer, oder anders
ausgedriickt, ist die Bisektionsbreite in f ~ ( ~ ) , wobei m die Anzahl der Knoten ist.
346 9 Kommunikationund Kryptographie

9.7 Zusammenfassung

Die Kryptographie beschSfftigt sich mit dem Entwurf yon Kryptosystemen, die
einen sicheren Austausch yon geheimen Informationen ermSglichen. Bei den
klassischen (symmetrischen) Kryptosystemen bestimmt der Schl/issel das Ver-
schlfisselungsverfahren sowie das Entschliisselungsverfahren, und somit ist der
Schliissel das gemeinsame Geheimnis yon Sender und EmpfS~nger. Public-Key-
Kryptosysteme arbeiten mit einem 5ffentlichen Verschliisselungs-Schliissel, weil
dessen Kenntnis keine Hilfe zur Entschliisselung darstellt. Die Public-Key-
Kryptosysteme basieren auf der Idee der Einweg-Funktionen. Eine Einweg-
Funktion ist effzient berechenbar, aber die zugehSrige inverse Funktion ist oh-
ne zusS~tzliches Wissen (ein Geheimnis, das nur der EmpfS~nger besitzt) nicht
etfizient berechenbar. Kandidaten fiir Einweg-Funktionen sind die Multiplikati-
on, deren inverse Funktion die Faktorisierung ist, und die Potenzierung modulo
einer natfirlichen Zahl n, deren inverse Funktion der diskrete Logarithmus ist.
Interaktive Beweissysteme ermSglichen effizient auf randomisierte Weise die
/Jberprfifung der Existenz yon Beweisen. Alle Sprachen in PSPACE haben
interaktive Beweissysteme. Zero-Knowledge-Beweissysteme ermSglichen es, zu
iiberpriifen, ob andere Personen im Besitz eines Beweises (Geheimnisses) sind,
ohne ein einziges Bit des Beweises zu lernen. Alle Sprachen in NP haben Zero-
Knowledge-Beweissysteme.
Die Qualit~t yon Verbindungsnetzen wird auch an der Menge der zu tiber-
tragenden Daten oder der Menge von realisierten Kommunikationsanforde-
rungen in einem kurzen Zeitraum gemessen. Der Entwurf eines Netzes, das
optimal beziiglich gegebener Qualitgtsparameter sein sollte, fiihrt meistens auf
nichttriviale Optimierungsprobleme, die man mit den Methoden der diskreten
Mathematik zu 15sen versucht.
Das Konzept der Public-Key-Kryptosysteme wurde erstmals yon Diffie und
Hellman [DH 76] vorgeschlagen. Das bekannte RSA-Kryptosystem ist nach
seinen Erfindern Rivest, Shamir und Adleman [RSA 78] benannt. Die interak-
tiven und Zero-Knowledge-Beweissysteme gehen auf Goldwasser, Micali und
Rackoff [GMR 85] zuriick. Shamir [Sha 92] war der erste, der IP = PSPACE
bewiesen hat.
Das Bene~-Netzwerk hat Bene~ in seinen Arbeiten fiber Telefonnetze [Ben 64,
Ben 65] entworfen. Die Tatsache, dass Bene~-Netzwerke Permutationsnetze
sind, wurde yon Waksman [Wak 68] bewiesen.
Fiir eine anschauliche didaktisch gute Einleitung in die Kryptographie empfeh-
len wir wgrmstens Dells und Knebl [DK 02] und Salomaa [Sal 96]. Ausfiihrli-
9.7 Zusammenfassung 347

chere A u s k u n f t fiber i n t e r a k t i v e S y s t e m e k a n n m a n in L e h r b i i c h e r n von Bovet


u n d Crescenzi [BC 94] u n d Sipser [Sip 97] finden. Ausftihrliche I n f o r m a t i o n e n
tiber K o m m u n i k a t i o n s p r o b l e m e in N e t z e n k a n n m a n i m h e r v o r r a g e n d e n u n d
..

u m f a n g r e i c h e n L e h r b u c h yon L e i g h t o n [Lei 92] u n d in d e m U b e r s i c h t s a r t i k e l


von Hromkovi~: Klasing~ M o n i e n u n d Peine [ H K M P 96] finden.

Kontrollaufgaben
1. Was ist ein Kryptosystem? Wie kann man den Grad seiner Sicherheit messen?
2. Erkl~ren Sie das Konzept der Einweg-Funktionen. Welche Kandidaten flit Einweg-
Funktionen kennen Sie?
3. Erkl~ren Sie~ wie man ein RSA baut und beweisen Sie die Eindeutigkeit der RSA-
Kodierung.
4. Wie kSnnen Public-Key-Kryptosysteme angewendet werden~ um Protokolle flit digi-
tale Unterschriften zu entwerfen? Warum ist das Authentizit~tsproblem schwerer als
das Problem der digitalen Unterschrift?
5. Erkl~ren Sie das Konzept yon interaktiven Beweissystemen. Wie definiert man ein
Zero-Knowledge-Beweissystem? Wo kSnnen solchc Systeme Anwendungen finden?
6. Warum unterscheiden sich die Beweissysteme flit das Graphenisomorphieproblem und
das Graphennichtisomorphieproblem so stark? Bei welchem dieser zwei Beweissyste-
me ist ein berechnungs-st~rkerer Beweiser gefordert?
7. Was ist ein n-Permutationsnetzwerk? Entwerfen Sie ein 3-Permutationsnetzwerk und
ein 7-Permutationsnetzwerk.
8. Zeichnen Sie einen 4-dimensionalen Schmetterling. Erkl~ren Sie anschaulich, wie man
aus einem k-dimensionalen Schmetterling einen (k + 1)-dimensionalen Schmetterling
bauen kann.
.Zeichnen Sie Benes2.
10. Beweisen Sie, dass Benes3 ein 8-Permutationsnetzwerk ist.
11. Bestimmen Sie die Wege in, die die Permutationen (4 3 2 1), (4 1 2 3) und (3 1 4 2)
realisieren.
Ich h a b e viel von m e i n e m L e h r e r gelernt, 9 J.:
n o c h m e h r von m e i n e n F r e u n d e n ,
a b e r a m m e i s t e n von m e i n e n Schiilern.
Talmud
,.X.__J

10 Grammatiken und Chomsky-Hierarchie

10.1 Zielsetzung

Das Thema Grammatiken gehSrt in die Theorie der formalen Sprachen, die
eines der 5Jtesten Gebiete der Informatik ist. Der Begriff "Grammatik" liegt
in dem Schnittpunkt zwischen Linguistik und Informatik und wurde sogar auch
in der Evolutionsbiologie zur Wachstumsmodellierung eingesetzt.
Das Konzept von Grammatiken ist einfach. Unsere bisherigen Berechnungsmo-
delle wie endliche Automaten und Turingmaschinen haben wir als Akzeptoren
von Sprachen betrachtet. Diese Modelle sind eine MSglichkeit, unendliche Ob-
jekte wie Sprachen (oder Mengen) auf endliche Weise zu beschreiben. Eine
Maschine A, die eine Sprache L = L(A) akzeptiert, ist eine eindeutige endli-
the Representation der Sprache L. Grammatiken bieten einen anderen Weg,
unendliche Sprachen auf endliche Weise eindeutig zu beschreiben. Gramma-
tiken sind Mechanismen zur Generierung (Erzeugung) von WSrtern. Fiir die
Menge L aller W6rter, die ein solcher Mechanismus erzeugt, ist der Mechanis-
mus eine Beschreibung yon L. Fiir die Linguisten ist diese Art yon Mechanis-
mus deswegen yon grofier Bedeutung, weil sie auf diese Weise versuchen, die
Mengen yon syntaktisch (grammatisch) korrekten Texten in konkreten natiirli-
chert Sprachen zu beschreiben, und auf diese Weise ein formales Mittel fiir
die Untersuchung und die automatische Ubersetzung yon natiirlichen Spra-
chert gewinnen. Die Bedeutung in der Informatik beschrS~nkt sich nicht nur auf
die M6glichkeit, iiberschaubar unendliche Objekte zu beschreiben. Sogenannte
kontextfreie Grammatiken, die eine einfache spezielle Art yon Grammatiken
darstellen, nutzt man, um Programmiersprachen darzustellen. So entsprechen
die durch solche Grammatiken generierten W6rter syntaktisch korrekten Pro-
grammen in der modellierten Programmiersprache. Damit ist das Konzept der
kontextfreien Grammatiken zentral fiir den Compilerbau. Aus der Sicht der
Berechenbarkeit ist es wichtig zu bemerken, dass die Menge der Sprachen, die
10.1 Zielsetzung 349

durch allgemeine Grammatiken erzeugbar sind~ genau der Menge der rekursiv
aufz~thlbaren Sprachen entspricht. Damit ist das Konzept von Grammatiken
genau so stark wie das Konzept von Turingmaschinen~ was eine weitere Best~tti-
gung der Church'schen These ist.
Das Kapitel ist wie folgt gegliedert. In Abschnitt 10.2 stellen wir das Konzept
von Grammatiken vor. Die Zielsetzung ist es zu erkl~tren~ wie der Generierungs-
mechanismus von Grammatiken funktioniert und in welche Klassen man die
Menge aller Grammatiken einteilt und warum die Grammatiken klassifiziert
werden.
Abschnitt 10.3 behandelt die einfachste Klasse von Grammatiken~ die soge-
nannten regul~tren Grammatiken. Wir zeigen~ dass diese Grammatiken ge-
nau die Klasse der regul~tren Sprachen generieren und somit in der Beschrei-
bungsst~trke ~quivalent zu den endlichen Automaten sind. Zusammen mit dem
Erlernen des Entwurfs von regul~tren Grammatiken sind es die Hauptzielset-
zungen dieses Abschnittes.
Abschnitt 10.4 ist von zentraler Bedeutung fiir dieses Kapitel. Die Zielset-
zung ist zu zeigen~ dass die kontextfreien Grammatiken eine natiirliche Art
einer nichtdeterministischen Rekursion sind. Auf der Suche nach einem Be-
rechnungsmodell~ das genau die bei kontextfreien Grammatiken generierten
Sprachen akzeptieren kann~ landen wit bei nichtdeterministischen Kellerau-
tomaten. Der Keller ist gerade die Datenstruktur~ die wir in der Informatik
benutzen, um Rekursion zu modellieren und implementieren. AuBerdem ler-
nen wir hier kontextfreie Grammatiken zu entwerfen, spezielle Normalformen
zu konstruieren und das Pumping Lemma fiir kontextfreie Sprachen, das ein
Instrument zum Beweisen der Nichtkontextfreiheit einer Sprache darstellt.
In Abschnitt 10.5 beschgftigen wit uns mit den allgemeinen (unbeschrgnkten)
Grammatiken und mit den sogenannten kontextsensitiven Grammatiken. Das
Hauptziel ist, die Aquivalenz zwischen den Konzepten von Grammatiken und
Turingmaschinen zu zeigen und damit den Glauben in die Church'sche These
noch zu verstgrken. Weiter bemerken wir, dass das Konzept der kontextsen-
sitiven Grammatiken genau den nichtdeterministischen Turingmaschinen mit
linearem Speicherplatz entspricht.
Dieses Kapitel wurde auf den Wunsch einiger Leser fiir die dritte Auflage des
Buches hinzugefiigt. Die Idee war dabei, die Abdeckung des klassischen Stoffs
der Theoretischen Informatik fiir einen Anfgngerkurs zu garantieren. Damit
sollte die fiir einige Kollegen zu starke Fokussierung auf die neueren Informa-
tikkonzepte kompensiert werden und das Buch auch fiir klassisch gestaltete
Grundvorlesungen fiber Theoretische Informatik als fast vollstgndiges Mate-
350 10 Grammatiken und Chomsky-Hierarchie

rial zur Verftigung stehen. In der Vorlesung kann dieses Kapitel auch schon
direkt nach Kapitel 4 fiber Turingmaschinen eingesetzt werden. Die Teile fiber
regulSxe und kontextfreie Grammatiken sind auch dazu geeignet, direkt nach
Kapitel 3 fiber endliche Automaten behandelt zu werden. Bei einer stark ein-
geschrS~nkten I Nutzung dieses Kapitels empfehlen wir, nur das Konzept der
allgemeinen und der kontextfreien Grammatiken in die Vorlesung aufzuneh-
men, weil gerade die Aquivalenz zu den Turingmaschinen und das Konzept
der Rekursion mit der Anwendung in Compilerbau die wichtigsten 2 BeitrS~ge
dieses Kapitels sind.

10.2 Das Konzept der Grammatiken

Die Zielsetzung dieses Kapitels ist, zun/ichst die Grammatiken als ein weiteres
Konzept zur formalen Beschreibung von Sprachen vorzustellen. Bisher haben
wir die Sprachen entweder durch die Beschreibung der Eigenschaften der in der
Sprache enthaltenen W6rter oder durch Automaten oder Maschinen, die diese
Sprachen erkennen, spezifiziert. In diesem Kapitel wollen