Professional Documents
Culture Documents
Juraj Hromkovicˇ
Theoretische Informatik
Leitfäden der Informatik
Herausgegeben von
Theoretische Informatik
Formale Sprachen,
Berechenbarkeit,
Komplexitätstheorie, Algorithmik,
Kommunikation und
Kryptographie
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
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.
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,
Khalil Gibran
Meinen Eltern
~ " ~ ~--
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.
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
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
http://www-i 1. infor mat ik. rwt h-aachen, de /Vero effent lichungen / AK dI/.
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
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.4 A u f b a u des L e h r m a t e r i a l s . . . . . . . . . . . . . . . . . . . . 29
2.4 K o l m o g o r o v - K o m p l e x i t 5~t . . . . . . . . . . . . . . . . . . . . 56
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
Turingmaschinen 125
4.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
B erechenbarkeit 161
5.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Komplexit~itstheorie 206
6.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
8 Randomisierung 292
8.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.2 Elementare Wahrscheinlichkeitstheorie . . . . . . . . . . . . . 294
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
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.
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:
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
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
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
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.
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
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
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.
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."
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:
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.
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
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
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.
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.
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
- 2
i=1
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)?
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
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
0 0 1 1
001 1
0101 "
0 0 0 0
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.
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
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
Eine niitzliche Operation fiber W6rter ist die einfache Verkettung zweier W6r-
ter hintereinander.
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.
a, ,a
Teilwort PrS~fix Suffix
Fig. 2.3
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.
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'
Unter dem Begriff Sprache verstehen wir jede Menge yon W6rtern fiber einem
festen Alphabet.
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
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
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
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
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
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}
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.
A u f g a b e 2.9. Seien L1, L2 und L3 Sprachen fiber dem Alphabet {0}. Gilt
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.
h(A) = A und
(//) = r?
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 ( ~ ) .
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).
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 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
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.
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
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.
Eingabe: x ~ (ETastatur)*-
Ausgabe: Ja, falls x E L,
Nein, sonst.
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
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
(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.
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
cost(~,x) - O p t u ( x ) - goal{cost(/3, x) l /3 E M ( x ) } .
(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(~)}
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:
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 .
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
_< +
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.
Vl
V5 V2
v4 v3
Fig. 2.5
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.
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
Ziel: Minimum.
2.3 Algorithmische Probleme 55
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
011011011011011011011011
0101101000101101001110110010
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?
100011110111000000.
;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
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.
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.
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.
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(
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
Aufgabe 2.23. Beweisen Sie die folgende Behauptung: Es existiert eine Konstante c, so
dass fiir jedes n c I N - {0}
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.
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
K(x) _> ~ - i.
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).
(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)
_<
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
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
I, 2, _3,4, 5, 6, _7, 8, 9, I0, ii, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,...
Prim (n)
lira =1.
~-~o~ n / l n n
Prim(n)
n Prim (n) (n/inn)
103 168 I, 161
106 78498 I, 084
109 50847478 I, 053
3 n 1
inn < < inn
2 Prim (n) 2
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
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.
I N - {0}} ist eine endliche Menge. Sei p,~ die gr6t3te Primzahl in Q. Dann kann
man jede Zahl ni eindeutig als
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
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.
k
Prim (k) >
- 64 log 2 k . (log 2 log 2 k ) 2"
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
Wo~t(.~, ~/p~) =
Bin(Flog2Flog2(m + 1)]])Bin(Flog2(m + 1)])Bin(m)Bin(n/p.~).
und
Daher 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.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.
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
- -
/)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
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
Wenn man ein Berechnungsmodell definieren will, muss man folgende Fragen
beantworten:
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
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
~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.
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
{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
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
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
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
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:
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.
Beweis. Zuerst bemerken wir, dass jeder EA die Menge E* in IQI Klassen
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
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:
Weil
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
(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.
F i i r j e {0,1}
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]
qo,o 0
ql,o
0
q2,o
0
q3,o
> 0
q4,o
__ ..a"-h ~ ~ _)) 0
1 1 1 1 1
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
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
(p2, 1) = P0.
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
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:
O/ \1 O/ \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
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
zu ersetzen u n d
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.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
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
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
~ 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
Gleichheit zu zeigen:
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
Def.5
(~1 (a,(q0,, ~), a), a~(3~(q0~, ~), a))
((~1(q101, za), (~2(q202, za))
((~1(q101, w), ~2(q202, w)).
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.
0 0 0 0,1
Fig. 3.11 M2
) 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
Das bedeutet: die akzeptierenden Zustgnde von M sind genau die Zustgnde,
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
L1 U L2 = L(M1)U L(M2)
Das bedeutet: die akzeptierenden ZustSonde yon M sind genau die 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:
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
x z E L ( A ) ~ yz E L(A).
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
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 -
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}.
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 P P
y x x
t
qo
t
p p p
t p r
Fig. 3.13
i, j E {0, 1 , . . . , no}, i < j, so dass qi = qj. Daher l~tsst sich (3.2) als
Es ist klar, dass w = yxz. Wir iiberpriifen die Eigenschaften (i), (ii) und
(iii).
(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.
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
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
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
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.
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.
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
Weil K(1) auch eine Konstante ist, gilt fiir eine Konstante d - K(1) + c
(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.
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
Fig. 3.14
{ 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
Die Sprache
ist die v o n M a k z e p t i e r t e S p r a c h 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
0,1
Fig. 3.15
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
(q0,110) {q0}
Beweis. Wir beweisen diese Gleichheit zweier Mengen durch zwei Inklusionen.
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).
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.
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"
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
(3.10)
daher gilt
~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.
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
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
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)*
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
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).
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
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
Zusammengefasst miissen
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)
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
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
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.
(iii) einem Lese-/Schreibkopf, der sich in beiden Richtungen auf dem Band
bewegen kann.
I r I Xl I X2 I X3 I
unendliches "~ I Lese-/Schreibkopf
Band
endliche
Kontrolle
(Programm)
Fig. 4.1
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.
. .
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
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
Ein Schritt von M ist eine Relation ---j-- auf der Menge der Konfigurationen
(a)
(b) -~
f
)
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
f{< 9 qor 9
{Eine TM, die immer hiilt, ist ein formales Modell des Begriffs Algorithmus.}
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
So enthglt LMitte alle W 6 r t e r ungerader Lgnge, die in der Mitte eine 1 haben.
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
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:
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
-~ 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
%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.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.
w I$1 Eingabeband
A Lesekopf
[ Progamm [
Lese- / S chreibk6p fe
1. Arbeitsband
2. Arbeitsband
Fig. 4.7
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.
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 x E* x IN x (F x IN) ~
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.
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
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
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}.
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.
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
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.
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
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
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
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.
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.
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.
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 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
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
Church'sche These ist das einzige informatikspezifische Axiom auf welchem die
Theoretische Informatik aufgebaut wird. Alle anderen benutzten Axiome sind
die Axiome der Mathematik.
(/) 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.}
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,
(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
Ahnlich wie im Fall der endlichen Automaten k6nnen auch bei Turingmaschi-
nen nichtdeterministische Strategien die Berechnungen vereinfachen. Betrach-
ten wir die Sprache
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).
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
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.
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.
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
(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
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:
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
Kod(M) = h(Code(M))
die K o d i e r u n g d e r T M M genannt.
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.
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.
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 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
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.
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
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
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.
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
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
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
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.
(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?
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.
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.
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
(a,b)<(c,d)<=>a+b<c+doder (a+b=c+dundb<d).
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
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?
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.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+.
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
Fig. 5.5
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.
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
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
Damit bestimmt die i-te Zeile dildi2di3.., der Matrix A die Sprache
Wl W2 W3 999 Wi
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
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
L2 E s ~ L1 E s
Die Bezeichnung
L1 ~R L2
5.3 Die Methode der Reduktion 173
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).
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.
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
(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.
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 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
L <RLO u n d L 0 <R L.
T M B m i t L(B) - L 0
xEL xEL ~
xEE*
rTMA x~L
X x~L ~
Fig. 5.9
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
Im Folgenden prS~sentieren wir weitere Sprachen, die nicht rekursiv sind, aber
in 12RE liegen (Fig. 5.10).
L(U) = Lu.
Daher gilt Lu E s
(i) U iiberprfift, ob z genau ein r enthglt. Falls nicht, verwirft U das Wort
Z.
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.
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
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
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
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
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
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.
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.
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
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).
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
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.
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:
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
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)
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
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}*
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.}
JA NEIN
S(x) C L C S(x) ~ L c
Fig. 5.14
190 5 Berechenbarkeit
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
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.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.
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
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
9 o
Zum Beispiel ist fiir die Instanz ((0, 11, 1), (001, 1, 11)) des MPKP die entspre-
chende Instanz des P KP
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
gilt. Um eine L6sung des P K P zu erhalten, konkatenieren wir von rechts den
(k + 2)-ten Dominostein (r r Damit gilt
Dies impliziert
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.
Beweis. Sei x E {0, 1, #}*. Wir konstruieren eine Instanz (A, B) des MPKP,
SO d&ss
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.
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:
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.
O~I,R I~I,R
( r r
0~0, R )
-.(
0 ---, 0, R
u-~ u,L u -~ u , L
Fig. 5.19
#
#q0 0 0 1 # r ql 0 1 # 0 0 q0 1 # r 0 1 q0 # r 0 qaccept 1 :H:]
Fig. 5.20
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:
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.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.
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?
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
[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
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
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.
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
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
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
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
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 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:
(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".
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.
T i m e M ( x ) = k - 1,
T i m e M ( n ) = m a x { T i m e M ( x ) [ x E E~}.
S p a c e M ( C ) -- max{lctil I i - 1 , . . . , k}.
S p a c e M ( x ) -- max{SpaceM(Ci) l i - 1 , . . . , 1}.
S p a c e M ( n ) - - m a x { S p a c e M ( x ) l x E E~}.
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
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.
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 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.
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.
lira f (n) O,
Aufgabe 6.2. Welche der folgenden Aussagen sind korrekt? Begriinden Sie Ihre Antwort.
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
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.
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
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
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.
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.
EXPTIME = 0 TIME(2~d).
dEIN
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
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.
_<
(ii) fiir jede Eingabe 0~, n E IN, generiert M das Wort 0 s(~) auf seinem
Arbeitsband und hiilt in qaccept.
(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
Aufgabe 6.8. Beschreiben Sie in Form von Diagrammen die zwei oben beschriebenen
Mehrband-Turingmaschinen zur Konstruktion der Funktionen [log2(n + 1)] und [v/-~].
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.
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
TimeA(n) E O(t(n)).
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
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
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
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.
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 .
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.
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).
T i m e M ( n ) -- max{TimeM(x) i x E L ( M ) n E~}.
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 ( n ) -- max{SpaceM(z) I z E L ( M ) n E~}.
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
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
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
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.
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.
NSPACE(s(n)) C_ 0 TIME(c~(~))"
cEIN
(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
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).
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.
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
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, ~
Raten
- 2 ~ Berechnungen
deterministische
Verifikation
0 0 0 0
Fig. 6.2
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
Man bemerke, dass L(A) und V(A) unterschiedliche Sprachen fiir einen p-
Verifizierer A sind. Aus Definition 6.9 folgt
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
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.
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
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.
x E L1 ~ A(x) E L2.
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.
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).
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
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.
1 0 0 /
-1 0 1
0 1 0
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
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
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:
Sei w ein beliebiges Wort aus E*. BM soll eine Formel BM(W) konstruieren, so
dass
(r Yi-lqYi...Yd)
fiir d _< P(I~I) ~
(0YIY2... Y/-lqY/... Y d Y d + l . . . Yp ( w ))
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
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
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 )
]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 ) }
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
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
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:
a A a A
1<r<n n + 1 _<d_<p([ w ])
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.
13SAT spielt also in der KomplexitStstheorie eine 5hnliche Rolle wie Ldiag in der Theorie
der Berechenbarkeit.
6.6 NP-VollstSmdigkeit 251
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.
F1
/ ~
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,
(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).
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
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
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.
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.
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.
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.
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.
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.
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.
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.
Das Problem der maximalen Clique, MAX-CL, ist, fiir einen gegebenen Gra-
phen eine maximale Clique in G zu finden.
Aufgabe 6.24. Beweisen Sie, dass MAX-CUT und MIN-VC NP-schwer sind.
6.7 Zusammenfassung 259
6.7 Zusammenfassung
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
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.
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
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
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.
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.
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.
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
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
Phase 3. Berechne
n
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
/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
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
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.
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
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 ,
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
HK <_p Langwert(p)-TSP
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
{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.
Algorithmus VCA
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.
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.
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) 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
_< +
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
(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
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
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
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
5Dies geschieht genau dann, wenn vx,..., vk schon vor u besucht worden sind, aber v noch
nicht besucht wurde.
7.4 Lokale Suche 279
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.
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
Sei fiir jedes x E L die Funktion fx eine Nachbarschaft in A/t (x). Die Funktion
definiert dutch
f ( * , ~) = fx(~)
280 7 Algorithmik fiir schwere Probleme
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.
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)
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
Aufgabe 7.10. Beweisen Sie, dass LS-CUT ein polynomieller Algorithmus ist.
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
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.
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
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.
{ n}
ij E IN fiir j = 1, 2 , . . . , n gilt
1,2,...,~-~ij
j=l
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.
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.
Metropolis-Algorithmus
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.
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)
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
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
Damit meinte Demokrit, dass in der Welt Ordnung herrscht und dass diese
Ordnung durch eindeutige Gesetze bestimmt ist. Epikur widersprach Demokrit
mit folgender Meinung:
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:
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.
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
Wahr(X) + Wahr(Y)
Wahr(X U Y)
Wahr(S)
Wahr(X) + Wahr(Y).
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.
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.
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 )
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.
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
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 .
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
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?
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
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.
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
m~ m o d p C m ~ modp
rn~ m o d p = r n ~ modp
- = -
Das ist aber nicht m6glich, weil u - v < p und nach der Voraussetzung des
Satzes ggT(a, p) = 1 ist. Somit
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
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
d.h.
a ;-1 m o d p = l .
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 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}.
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 2k m o d p - (a 2k-1 m o d p ) 2 modp.
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
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.
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" ;
{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
d d d
9 .;~
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
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
~Pl(Xl~...~Xn) ~ /92(Xl~...~Xn)"
wenn
der Fingerabdruck yon P1. Damit ist der folgende einfache randomisierte A1-
gorithmus bestimmt:
Algorithmus AQP
- (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
Frage
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).
(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.
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).
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
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
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.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
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"
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.
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
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.
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
ggT(d, p ( n ) ) = 1 (9.1)
E~,~(w) = w ~ mod n.
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
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
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.
w ~(~) m o d n = l .
w k 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},
Da,~(E~,n(w)) - w ~d rood n - w.
(9.3)
g g T ( p , q, = 1
w ~(~) m o d n = l
und
(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.
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.
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.
(ii') K sollte von solchen Aktivitgten von B geschiitzt werden, bei denen B
sich gegenfiber einem Dritten als K ausgeben m6chte r.
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
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
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.
(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.}
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
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-).
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
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.
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
n!
2~ 92~ _> n! (d.h. 2 ~ _> 2-~),
u n d somit13 gilt
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.
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
ftihren in unserer Strategie alle Wege mit einem Zielknoten aus der Menge
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.
(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
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
~ 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
(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
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.
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~
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
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.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.
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 wir eine neue forma-
le Beschreibungsmethode vorstellen. Diese Methode basiert auf einem Erzeu-
gungsverfahren. Mechanismen zur Erzeugung von gewissen Objekten werden
in der Mathematik oft zum axiomatischen Definieren yon Objektklassen ver-
wendet. Nehmen wir als Beispiel die Definition einer Booleschen Formel fiber
einer Variablenmenge {xi, x 2 , . . . , x~}:
(A V B) und (A A B)
Boolesche Formeln.
(iv) Kein Objekt, das sieh nicht dureh die Anwendung der Regeln (i), (ii) und
(iii) erzeugen lgsst, ist eine Boolesche Formel fiber {,1, * 2 , . . . , ,~}.
1Das Material in diesem Buch iibersteigt die KapazitS~t einer Einftihrungsveranstaltung fiber
Theoretische Informatik. Wenn man sich auch fiir die Vorstellung neuerer Konzepte entschei-
det, muss man auf die Vorstellung einiger Teilbereiche der klassischen Themen verzichten.
2Aus der Sicht der Informatik.
10.2 Das Konzept der Grammatiken 351
Auf die oben beschriebene Weise haben wir eine axiomatische Definition yon
Booleschen Formeln fiber der Variablenmenge {Xl,... ,x~} und den logischen
Verkn~pfungen ~, V und A erhalten. Nat~rlich k6nnen wir solche Booleschen
Formeln als W6rter fiber dem Alphabet {0, 1, x l, x 2 , . . . , xn,--n, V, A, (,)} be-
trachten und somit bestimmt der angegebene Erzeugungsmechanismus die
Sprache aller Booleschen Formeln fiber {Xl, x 2 , . . . , x~} mit den logischen Ope-
rationen der Negation, der Disjunktion und der Konjunktion.
Das folgende Beispiel prgsentiert ein Erzeugungsverfahren ftir eine Sprache
fiber {a, b}, die zu den typischen hier behandelten Sprachen gehSrt.
(i) AEL.
(ii) Falls x E L, dann ist auch axb E L.
(iii) Keine anderen als die durch (i) und (ii) erzeugten WSrter gehSren zu L.
Wir bemerken, dass wir, beginnend mit x - A nach (i), durch dreimaliges
Anwenden der Regel (ii) zu dem Wort aab 3 kommen. Die Hypothese liegt nah,
dass
L- {a~bi l i E IN}.
Das Konzept der Grammatiken basiert auf der vorgestellten Idee der axio-
matischen Definition, ist aber etwas anders umgesetzt. Man betrachtet zuerst
zwei disjunkte Alphabete ET und EN. Die Symbole aus ET werden T e r m i n a l -
s y m b o l e genannt und entsprechen der bisherigen Nutzung zur Gestaltung von
W6rtern aus der betrachteten Sprache. Die Symbole aus EN werden N i c h t -
t e r m i n a l s y m b o l e (oder kurz N i c h t t e r m i n a l e ) genannt. Die Nichtterminale
spielen die Rolle von Variablen und diirfen in den W6rtern der generierten
Sprache nicht auftreten. Nichtterminale oder W6rter, die Nichtterminalsymbo-
le enthalten, diirfen durch andere W6rter ersetzt werden. Wie und was ersetzt
wird, wird durch die sogenannten Regeln (auch P r o d u k t i o n e n oder A b l e i -
t u n g s r e g e l n genannt) bestimmt, die den Regeln eines axiomatischen Systems
entsprechen. Grob betrachtet, ist eine G r a m m a t i k eine Menge von Regeln. Eine
Regel ist zum Beispiel
X ~aXb.
Diese Regel besagt, dass man jedes Auftreten des Nichtterminals X durch a X b
ersetzen darf. Wenn man zu dieser Regel noch die Regel X ~ A nimmt, die
das Nichtterminal X durch das leere Wort A ersetzt (also X 16scht), dann kann
man durch diese zwei Regeln, ausgehend yon X, ein beliebiges Wort aus L =
{a~b~li E IN} erzeugen. Das Konzept yon Grammatiken fordert, dass man bei
der Generierung yon W6rtern immer mit einem fest gegebenen ausgezeichneten
Nichtterminal anfangen muss und die gegebenen Regeln so lange anwendet, bis
10.2 Das Konzept der Grammatiken 353
das generierte Wort kein Nichtterminalsymbol mehr enthS~lt. Wenn man ein
Wort fiber ET erreicht, ist der Erzeugungsprozess beendet und das generierte
Wort geh6rt in die Menge der durch die Grammatik erzeugten W6rter.
Fiir den Rest dieses Kapitels legen wir die Nutzung der vorkommenden Sym-
bole lest.
Jetzt fiihren wir eine formale Definition einer Grammatik ein. Ahnlich wie
bei Maschinenmodellen definieren wir zuerst eine Struktur (in diesem Fall ein
4-Tupel) und dann ihre Semantik durch die Beschreibung ihrer Dynamik.
Definition 10.1.
7 ~G 5,
existieren, so dass
7 = ('J10L(M2 u n d 5 = a21~(.~2.
heiflt eine A b l e i t u n g i n G.
(iii) Falls S ~ w fiir ein Wort w E E~, dann sagen wit, dass w y o n G
e r z e u g t w i r d . Die v o n G e r z e u g t e S p r a c h e ist
(i) = {s}
(ii) = {a, b}
(iii) P= { S ~ A, S ~ S S , S ~ aSb, S ~ bSa}.
10.2 Das Konzept der Grammatiken 355
Die Tatsache, dass L(G) nur W6rter mit einer gleichen Anzahl yon a's und
b's generieren kann, ist offensichtlich, weil jede Regel die gleiche Anzahl von
a's und b's erzeugt. Es bleibt also nur zu tiberpriifen, ob in G alle WSrter mit
gleicher Anzahl von a's und b's ableitbar sind.
Wir zeigen dies mit Induktion bez/iglich der WortlSmge, die f/Jr alle W6rter in
Lg~ gerade ist.
(i) Induktionsanfang: Sei n = 0. Das Wort A E Lg~ kann man durch die
Regel S --+ A in einem Berechnungsschritt S =~a A erzeugen. Somit gilt
S~o A
und A E L(G).
(ii) Sei Lg~ N [_]2~-i
i:1 (Y]T) i ~ L(G) fiir ein n C IN-{0}. Wir sollen zeigen, dass
alle W6rter der LS~nge 2n aus Lgr auch in L(G) sind. Formal bedeutet
dies, dass wir f/Jr jedes Wort x aus Lgr N {a,b} 2~ die Existenz einer
Ableitung von x in G begrilnden milssen. Sei x ein beliebiges Wort aus
Lg~ N {a, b} 2~. Wir unterscheiden 4 FS~lle beziiglich des ersten und des
letzten Symbols yon x.
(ii.1) Sei x : ayb. Weil lyl : 2 n - 2 und lyla : lYlb, existiert nach Induktions-
annahme eine Ableitung
S~ay
in G. Somit gibt es folgende Ableitung
S =~a aSb ~*a a y b - x
yon x in G.
356 10 Grammatiken und Chomsky-Hierarchie
(ii.2) Der Fall x = bya ist analog zu (ii.1). Statt der Regel S ~ a S b wendet
m a n die Regel S ~ bSa im ersten Ableitungsschritt an.
(ii.3) Sei x = aya. Weil IXla = IXlb = 7t~ gilt
= lyl = lYla + 2
geben, so dass
S ~a SS ~ G* a u S =~*c a u v a - x
von x in G.
(ii.4) Der Fall x = byb fiir ein y E (ET) 2~-2 kann analog zu dem Fall (ii.3)
gelSst werden. D
A u f g a b e 10.3. Betrachten Sie die folgende Grammatik G = (EN, ET, P, S), wobei EN =
{S, A, B}, ET = {a, b} und
P ={ S ~ A, S ~ A S B , S ~ BSA, S ~ ABS,
S ~ SAB, S ~ BAS, S ~ SBA, S ~ SS,
A~a, B~b}.
S ---+X a X a X a X
garantieren wir, dass genau 3 Symbole a erzeugt werden. Mit den Regeln
X --+ A und X ~ bX
erm6glichen wir es, aus jedem Nichtterminal X ein beliebiges Wort aus {b}*
zu generieren.
Im Folgenden fiihren wir einen formalen Beweis von L(G) = L3a.
gewiinschte Form.
Sei wi-1 in ({b}*- {X, A } - a ) 3- {b}*-{X, A} fiir ein i _< n. Wir zeigen,
dass auch c~i die gewtinschte Form hat.
Weil X das einzige Nichtterminal in c~i-1 ist, wird bei c~i-1 =>G c~i die
Regel X --+ A oder X ~ b X angewendet. Somit gilt
Bisher haben wir nur Grammatiken fiir einfache formale Sprachen betrachtet.
Die Linguisten versuchen, die Grammatiken zur syntaktischen Beschreibung
natfirlicher Sprachen zu nutzen. Ffir diesen Zweck betrachtet man die soge-
nannten syntaktischen Kategorien wie {Satz}, {Text}, {Nomen} und {Adjektiv}
als Nichtterminalsymbole. Beachten Sie, dass {Nomen} ein Symbol darstellt,
aus dem man ein beliebiges Nomen ableiten kann. Die Terminalsymbole sind
alle W6rter aus dem W6rterbuch. Somit nutzen wir z.B. [Brot] als ein Termi-
nalsymbol, das dem deutschen Wort "Brot" entspricht. Mit Regeln wie
<Text} ~ <Satz><Text>
<Satz} ~ <Subjekt}<Verb}<Objekt}
<Subjekt} ~ <Adjektiv}<Nomen}
<Nomen>--~ [Vater]
(Adjektiv} ~ [lieber]
das System zur Erzeugung von arithmetischen Ausdr/icken. Das einzige Nicht-
terminal ist {Ausdruck} und die Terminalsymbole sind die arithmetischen Ope-
rationen + , - , , , / , die Klammern ( und ) und das Zeichen [id] f/Jr den Ope-
randen.
Aufgabe 10.5. Schreiben Sie eine Ableitung des arithmetischen Ausdruckes (id + id) 9
((id)/(id - id)) durch die Anwendung der oben angegebenen Regeln.
sind manchmal nicht zu vermeiden, wenn man zum Beispiel eine Berechnung
einer Turingmaschine nachahmen will. 4
In der Literatur unterscheidet man viele spezielle Grammatikklassen. Hier be-
trachten wir nur vier Basisklassen, die die sogenannte Chomsky-Hierarchie
bilden.
# G heiflt T y p - O - G r a m m a t i k .
{ Typ-O-Grammatiken stellen die Klasse der allgemeinen, uneingeschriink-
ten Grammatiken dar. }
#i) G heiflt k o n t e x t s e n s i t i v e oder T y p - l - G r a m m a t i k , falls fiir alle Paa-
re P
_< 191
4Wie dies geht, zeigen wir im Abschnitt 10.5.
360 10 Grammatiken und Chomsky-Hierarchie
gilt.
{Also kann man kein Teilwort c~ dutch ein kiirzeres Teilwort /3 ersetzen}.
(iii) G heiflt k o n t e x t f r e i oder T y p - 2 - G r a m m a t i k , falls fiir alle Regeln
(~, 9 ) ~ P
c~ E EN und fl E (EN LJ ET)*
gilt.
{Also haben alle Regeln die Form X ---,/3 fiir ein Nichtterminal X } .
~) G hciflt r e g u l d r oder T y p - 3 - G r a m m a t i k , falls fiir alle Regeln (c~, ~) E
P
a E EN und/3 E E ) . EN U E}
gilt.
{Die Regeln einer regulgren Grammatik haben die Form X ~ u oder
X ~ u Y fiir ein u E E~, X , Y E EN}.
Fiir i = O, 1, 2, 3 ist eine Sprache L v o m Typ i genau dann, wenn sie von
einer Grammatik G vom Typ i erzeugt wird. Die F a m i l i e a l l e r S p r a c h e n
v o m Typ i wird mit s bezeichnet.
ist kontextfrei, aber nicht regulSx, weil S ~ abbAB keine regulSxe Regel ist.
Die restlichen Regeln A ~ a und B ~ bA sind regular. Die Grammatik
ist eine T y p - 0 - G r a m m a t i k , die nicht kontextsensitiv ist, weil sie die soge-
nannten verkiirzenden Regeln X ~ A und 0Y1 ~ 00 enth~lt.
10.2 Das Konzept der Grammatiken 361
folgendes:
- X kann durch b Y ersetzt werden, falls links von X das Wort aa steht,
- X kann durch A ersetzt werden (gel6scht werden), wenn b links yon X steht
(bemerke, dass diese Regel auch nicht kontextsensitiv ist), und
- X kann durch Z a ersetzt werden, wenn das Wort bb rechts von X steht.
Wenn die drei oben geschriebenen Regeln die einzigen Regeln mit X auf der
linken Seite sind, dann bedeutet dies, dass man bei allen anderen "Umgebun-
gen" von X das Nichtterminal X nicht ersetzen daft. Bei einer Regel wie
a X Z b -~ S Y b b
ist es natfirlich schwer, fiber die Ersetzung eines Nichtterminals in einer Um-
gebung zu sprechen. Das ist die bedauerliche Folge des prgsentierten Forma-
lismus, den man heute gew6hnlicherweise benutzt. Ursprfinglich war die kon-
textsensitive Grammatik durch Regeln der Form
x , 9) -+
definiert, wobei die Bedeutung war, dass X durch 7 ersetzt werden daft, wenn
a links und fl rechts yon X stehen. In unserem Formalismus wtirde die Regel
als
u X oder u
Die Zielsetzung dieses Abschnittes ist es, die Abgeschlossenheit der Sprach-
klasse s zu untersuchen und danach zu zeigen, dass /2a genau der Menge
s der regulgren Sprachen entspricht.
Wir beginnen mit einer einfachen Beobachtung.
Beweis. Sei L = {wl, w 2 , . . . , wk} eine endliche Sprache fiber einem Alphabet
E. Wir konstruieren eine regulgre Grammatik G wie folgt:
a = ( { s } ~ s~ { s -~ ~ , s -~ ~ , . . . ~s -~ ~ } ~ s).
Offensichtlich gilt L ( G ) = L.
10.3 Regulg~reGrammatiken und endliche Automaten 363
Aufgabe 10.6. Beweisen Sie im Formalismus der endlichen Automaten, dass 12 (EA) alle
endlichen Sprachen enth/ilt. Gelingt Ihnen auch ein so einfacher Beweis wie in Lemma 10.1?
LI @ L2 E s
gilt.
Wir sagen, dass eine Sprachklasse/2 a b g e s c h l o s s e n b e z i i g l i c h e i n e r u n / i r e n
O p e r a t i o n 49 ist, falls fiir jede Sprache L E 12
gilt.
In der Theorie der formalen Sprachen betrachtet man die bin~ren Opera-
tionen Vereinigung (U), Schnitt (N) und Konkatenation (.) und die unS~ren
Operationen Kleene'scher Stern (*), Kleene'sches +, Homomorphismus und
Komplement. Der Begriff der Abgeschlossenheit kommt aus der Algebra, wo
gefordert wird, dass alle algebraischen Strukturen (Algebren) wie Halbgrup-
pen oder K6rper abgeschlossen beziiglich der betrachteten Operationen sind.
Die Klasse s ist eine ,,nette" Klasse, weil sie bez/iglich der meisten grund-
legenden Operationen abgeschlossen ist. Im Folgenden dokumentieren wir die
Abgeschlossenheit beziiglich einiger Operationen, fiir die diese Eigenschaft ins-
besondere leicht fiber das Konzept der Grammatiken zu beweisen ist. Wir er-
innern daran, dass wir im Abschnitt 3.3 die Abgeschlossenheit yon s
beziiglich O, N und Komplementbildung bewiesen haben.
Beweis. Seien L und L ~ zwei beliebige Sprachen aus s Dann gibt es zwei
regulS~re Grammatiken
so dass L(G) = L und L(G') : L'. Weil die Nichtterminale nach Bedarf
umbenannt werden diirfen, nehmen wir ohne Beschr~inkung der Allgemeinheit
an, dass EN A E~v -- 0.
Wir konstruieren eine Grammatik
mit
Die Idee ist sehr einfach. Wir nehmen ein neues Startsymbol S" r ENUE~v und
erlauben, es durch die Startsymbole der G r a m m a t i k e n G und G' zu ersetzen.
Wenn wir dann P und P ' zur neuen Menge der Regeln vereinigen, erhalten
wir die gewtinschte G r a m m a t i k G". Formal sieht dies folgendermassen aus:
{s"} u u
ET U E~, und
pll
_pu p ' u {s"' -, s"'}.
Es bleibt zu beweisen, dass L(G") - L(G)U L(G') gilt. Wir zeigen die ent-
sprechenden Inklusionen einzeln.
eine Ableitung yon x in G". Wir haben nur die Regeln S" ~ S ~ und
S" ~ S mit der linken Seite S". Deswegen gibt es nur zwei M6glichkeiten
ftir al, entweder a l = S oder a l = S ~.
Falls a l = S, dann ist
:==}Gl/ O~2 :==}Gl/ " ' " ==}G" O @ t - - X
Die Idee der Konstruktion ist wie folgt: Wir setzen S" = S und lassen G"
die Ableitungen von G bis zum letzten Ableitungsschritt nachmachen. Eine
Ableitung endet immer durch die Anwendung einer Regel A --+ w, wobei w
ein Terminalwort (w E E}) ist. Wir ersetzen jede solche Regel A --+ w in G
durch eine neue Regel A --+ w S ' in G". Dadurch kann in G" Ableitung eines
Wortes aus L(G') angeh/~ngt werden, s Eine formale Konstruktion yon G" kann
wie folgt beschrieben werden:
r) E N U ESv ,
rf ET U E~,
S" S, u n d
E II P'U (P N E N x E~. EN) U {A ---+ S'l A ---+ w r P, w e E~}.
A u f g a b e 10.8. Verwenden Sie die Beweisidee aus Lemma 10.3, um zu zeigen, dass s
abgeschlossen beziiglich des Kleene'schen Sterns ist.
5Und nicht nut das. Es kann in G" kein Wort abgeleitet werden, das nicht einen Suffix aus
G' enth/~lt.
366 10 G r a m m a t i k e n u n d C h o m s k y - H i e r a r c h i e
Wir wollen jetzt zeigen, dass s = s indem wir zu jedem endlichen Au-
tomaten eine 5~quivalente regulS~re Grammatik konstruieren und umgekehrt zu
jeder regulSzen Grammatik einen 5~quivalenten endlichen Automaten entwer-
fen. Wir beginnen mit der einfacheren Richtung.
Beweis. Sei A = (Q, E, 5, q0, F) ein endlicher Automat. Wir konstruieren eine
regulare Grammatik G = (EN, ET, P, S) mit L(G) = L(A). Die Idee ist, jede
Berechnung von A auf einem Wort durch eine Ableitung dieses Wortes in G
zu simulieren. Der endliche Automat liest in jedem Berechnungsschritt einen
Buchstaben a aus der Eingabe und 5~ndert dabei den Zustand. Die Grammatik
G kann diesen Schritt durch einen Ableitungsschritt simulieren, in dem a er-
zeugt wird. Die ZustS~nde von A werden in dieser Situation zu den Nichttermi-
nalen von G. Wenn A in einem akzeptierenden Zustand endet, dann akzeptiert
A das gelesene Wort. Also erlauben wir G nur dann zu terminieren, wenn das
aktuelle Nichtterminal einem akzeptierenden Zustand entspricht. Die formale
Konstruktion sieht wie folgt aus:
Y]N z Q
ET E
S = Go
P = {p ~ aql for alle a E ~, p, q E Q, so dass a(p, a) = q}
Ableitung yon x in G:
qo ~ a a~q~ ~ a ala2q2 =:~G ala2a3q3 =:~G . . . =:~G
Aus dem Beweis des Satzes 10.1 sehen wir, dass die Nichtterminale beim Ent-
wurf von regul~ren Grammatiken die gleiche Rolle spielen kannen wie die
Zustgnde beim Entwurf von endlichen Automaten. In dem Zustand haben
wir immer die notwendige Information fiber den bisher gelesenen Prefix der
Eingabe gespeichert. Analog kann das aktuelle Nichtterminal der TrS~ger der
gleichen Information fiber den bisher erzeugten Prefix sein. Wir illustrieren
dies durch folgendes Beispiel.
eine Grammatik konstruiert. Diese Grammatik ist aber nicht regulS~r, weil die
Regel S ~ X a X a X a X dieser Grammatik nicht regulS~r ist. Wir konstruieren
eine regul~ire Grammatik
wobei die Bedeutung des Nichtterminals Xi ist, dass bisher i Symbole a erzeugt
worden sind. Um ein beliebiges Wort aus Laa zu generieren, verwenden wir die
Regel
garantieren uns, dass die Anzahl der erzeugten Symbole a durch das Nichtter-
minal Xi gespeichert wird. Mit der Regel
368 10 Grammatiken und Chomsky-Hierarchie
garantieren wir, dass eine Ableitung in H nur dann mit einem Wort aus {a, b}*
terminieren kann, wenn genau drei Symbole a generiert worden sind. Ein Bei-
spiel einer Ableitung fiir das Wort bbabbbaabbb ist
Aufgabe 10.11. Beweisen Sie L3a = L(H) fiir die Grammatik H aus Beispiel 10.4.
Die Idee der Simulation eines endlichen Automaten durch eine regulgre Gram-
matik war einfach; die Nichtterminale haben als Informationstr~ger die Rolle
der ZustSmde iibernommen. Diese Idee m6chten wir auch gerne fiir den Weg
von regulSxen Grammatiken zu endlichen Automaten benutzen. Wenn eine
regulSxe G r a m m a t i k nur Regeln der Form
X -~ a und X -~ aY (10.1)
direkt in die Konstruktion eines NEA umzusetzen. Die Beweisidee, die wir
hier verfolgen, besteht darin, zuerst zu zeigen, dass jede regulSxe G r a m m a t i k
in eine ~quivalente regul~re Grammatik, die nur die Regeln der Form (10.1)
hat, transformiert werden kann.
Beweis. Sei G = (EN, ET, P, S) eine beliebige regulSxe Grammatik. Fiir jedes
Nichtterminal A E E x bestimmen wir die Menge K ( A ) der Nichtterminale,
die yon A ausgehend durch die ausschlief31iche Anwendung der Kettenregel
erreicht werden k6nnen. Formal geschrieben,
Ko(A) = { A } und
Ki+I(A) = K~(A)U { B r ENI 3 C r K~(A) so dass C---+ B r P}
Die Idee der Konstruktion yon G' ist, dass man die Ableitungsteile
A ~ G A~ ~ G A2 ~ G . . . ~ G A~ ~ c c~
in G' ersetzt. Das kann man erreichen durch das Hinzufiigen der Regel A --+ ct
fiir alle rechten Seiten c~ c E } U E +. EN der Regeln, deren linke Seiten in K ( A )
liegen.
370 10 Grammatiken und Chomsky-Hierarchie
Die formale Konstruktion sieht wie folgt aus" G ' - (EN, ET, P', S), wobei
a E ET U ET+EX und })
3U E K ( A ) mit C --+ c~
AEEN
EN • EN.
Wir verzichten auf den formalen Beweis der Aquivalenz L(G) - L(G'). D
G -- ( { X o , X l , X 2 , X 3 } , { a , b } , P , X o } )
mit
Verwenden Sie die Konstruktion aus Lemma 10.4, um alle Kettenregeln von G zu beseitigen.
Als Ngchstes beseitigen wir alle Regeln A + A fiir alle Nichtterminale A, die
nicht gleich dem Startsymbol S sind. Wir bemerken, dass S + A nicht entfernt
werden kann, weil dann keine Maglichkeit mehr besteht, das leere Wort aus
der Sprache L(G) zu generieren.
Beweis. Sei G - (2N, 2T, P, S) eine beliebige regulgre Grammatik, die keine
Kettenregeln besitzt, und seien
alle Regeln in P aus (P~N- {S}) x {A}. Wir konstruieren eine regulgre Gram-
matik G' - (EN, ET, P', S) mit
p' (P-{A1 ~ A, A2 ~ A,...,A~ ~ A})
k
u U{B B P}
/=1
10.3 Regul~re Grammatiken und endliche Automaten 371
Die Idee der Konstruktion ist, dass die Regeln B ~ wAi und Ai --~ A eine
Ableitung
B ~ c wA~ ~ G w
:::::::}G w l w 2 . . . W n _ 2W n _ l g n _ 1 :=:F G w l w 2 . . . W n _ 2W n _ l W n ~ X
:::::::~G I W I . . . W n_ 2 W n_ 1 ~ X .
S :=~*G'WlD :=~G' W l W 2 -- X
6Bemerken Sie, dass in einer Ableitung einer regulgren Grammatik h6chstens einmal eine
Regel der Form A --~ A angewendet werden kann.
372 10 Grammatiken und Chomsky-Hierarchie
fiir ein D E EN und Wl, W 2 E }-]} eine Ableitung yon x in G'. Der Teil der
Ableitung S ~*a, WlD benutzt nur Regeln aus P, weil D E EN. Somit
gilt
S ==~G wlD.
Falls D --+ w2 E P, dann gilt auch w l D ~ G WlW2 = x.
Falls D ~ w2 ~ P, dann existiert ein Ai E EN so dass
D ~ w2Ai, Ai ~ A E P.
D a n n ist
Aufgabe 10.14. Im Beispiel 10.4 haben wir eine regulgre Grammatik fiir die Sprache L3a
konstruiert. Diese Grammatik enthglt die Regel Xa + I. Beniitzen Sie Lemma 10.5, um
diese Regel zu eliminieren.
Aufgabe 10.15. In der Aufgabe 10.13 haben Sie eine Grammatik ohne Kettenregel kon-
struiert. Diese Grammatik enthglt abet mehrere Regeln der Form X + A. Konstruieren Sie
nach Lemma 10.5 eine gquivalente regulgre Grammatik, die keine solche Regel auger S + A
enthglt.
Jetzt sind wir soweit, dass wir unsere H a u p t b e h a u p t u n g fiber die Formen der
regulgren G r a m m a t i k e n formulieren kSnnen.
A ~ WlW2... Wk.B
eine Regel aus P mit k _> 2, wi E ET fiir i -- 1 , . . . , k. Wir nehmen neue 7 Nicht-
terminalsymbole A1, A 2 , . . . , Ak-1 und ersetzen diese Regel durch die Regeln
C------~ U l U 2 . . . u m
ersetzt. Bei der Ersetzung jeder unerwiinschten Regel muss m a n darauf achten,
dass immer neue Nichtterminalsymbole g e n o m m e n werden (also existiert nur
eine Regel mit Ai auf der linken Seite, und zwar A i ~ Wi+lAi+l und Ai wird
nirgendwo anders verwendet). Wenn m a n dies einh~lt, ist es offensichtlich, dass
m a n dadurch eine zu Go ~iquivalente G r a m m a t i k erzeugt. D
A u f g a b e 10.16. Betrachten wir die Grammatik G aus Aufgabe 10.13. Konstruieren Sie
eine zu G ~iquivalente normierte regul~ire Grammatik.
mit
Jetzt pr~sentieren wir das Hauptresultat: Die Konzepte der regul~tren Gram-
matiken und der endlichen Automaten definieren die gleiche Klasse von re-
gul~ren Sprachen.
Satz 10.3. s = s
Beweis. Der Satz 10.1 besagt, dass man zu jedem EA eine ~tquivalente regulgre
G r a m m a t i k konstruieren kann. Somit gilt
s c_ s
M : u {q.}. 5. s, F).
wobei
falls S -~ A ~ P,
r-
L {q'} falls S -~ A E P
j
Ixl IYI
Fig. 10.1 Der Schritt des NEA M, der der Anwendung der Regel X ~ aY in der Ableitung
von G entspricht.
Sei
qF E 8(A~-I, w~).
(s, ~ 1 ~ . . . ~ - 1 ~ ) , . (dl, ~ . . . ~ - 1 ~ )
, . (d~, ~ . . . ~ - 1 ~ ) " ~ . . . "~ (d~_~, ~ - 1 ~ )
Aufgabe 10.18. Vervollst~ndigen Sie den Beweis des Satzes 10.3, indem Sie die Tatsache
L(M) c_ L(G) formal beweisen.
Aufgabe 10.19. Betrachten Sie die Grammatik H aus Beispiel 10.4. Konstruieren Sie einen
zu H ~quivalenten endlichen Automaten.
376 10 Grammatiken und Chomsky-Hierarchie
Aufgabe 10.20. In Aufgabe 10.9 haben Sie regulgre Grammatiken fiir drei regulgre Spra-
chen entworfen. Wandeln Sie zuerst die von Ihnen entworfenen Grammatiken in gquivalente
normierte regulgre Grammatiken um und konstruieren Sie dann mit Hilfe des Satzes 10.3
gquivalente nichtdeterministische endliche Automaten.
Aufgabe 10.21. In Abschnitt 3.4 haben wir das Pumping-Lemma fiir regul~tre Sprachen
als eine Methode zum Beweisen der Nichtregularitgt von Sprachen entwickelt. Der Beweis
basierte auf der Tatsache, dass in jeder geniigend langen Berechnung sich zwei Zustgnde
wiederholen mfissen. $omit entsteht die MSglichkeit eine $chleife zu bilden, die beliebig vie-
le Male wiederholt werden daft, ohne dass es der Automat merken kann. Lange Ableitungen
von regul~tren Grammatiken k6nnen auch nicht die Wiederholung von Nichtterminalen ver-
meiden. Benutzen Sie diese Eigenschaft, um das Pumping-Lemma in dem Formalismus der
Grammatiken zu beweisen.
wobei
P = 0Sl}.
9Die Inklusion s C_ s ist offensichtlich, weil regul~ire Grammatiken ein Spezialfall von
kontextfreien Grammatiken sind.
10.4 Kontextfreie Grammatiken und Kellerautomaten 377
Wir sehen sofort, dass L(G) = {0~1~ I n E IN}, was keine regulS~re Sprache ist.
Eine andere h~tufig benutzte kontextfreie, aber nicht regulgre Sprache ist die
Sprache
erzeugt werden.
Die Bedeutung des Auftretens eines Nichtterminals A ist, dass wir die Generie-
rung eines Symbols a schulden, um die Anzahl yon a's und b's auszugleichen.
Analog bedeutet das Vorhandensein eines B in einem nichtterminalen Wort,
dass wir fiir den Ausgleich ein b schulden.
Wir nehmen zuerst die Regeln:
S ~ A, S ~ a B und S ~ bA.
378 10 Grammatiken und Chomsky-Hierarchie
Damit kann m a n W 6 r t e r generieren, die mit a oder mit b anfangen, und wenn
a [b] generiert wurde, deutet B [A] das Schulden fiir die Generierung eines b [a]
an. Die Regeln
A ~ a, A ~ aS, B ~ b, B ~ b e,
A ~ bAA, B ~ a B B ,
die das Erfassen hSherer Verschuldung in der Generierung yon a's oder b's
garantieren. D
Aufgabe 10.24. Beweisen Sie, dass die kontextfreie Grammatik aus Beispiel 10.5 die Spra-
che Lge = {w E {a, b}*llwla = IWlb} erz ugt
mit
p m
{S ~ S + S,S ~ S- S,
S---, S * S,S---, S/ S,
-~ (s), s -~ [~s]}
S + S
( s ) ( s )
S * S $ / $
s * s [i~]
[~] [~] S - S
[~] [~]
Fig. 10.2
S ==~G
~G (s 9 s 9 s ) + s ~ ([~], s 9 s)+ s
=>c
( [ ~ ] , [ ~ ] , [ ~ ] ) + ([~]/s)
380 10 Grammatiken und Chomsky-Hierarchie
9 9 + - x))
9 9 + -
A u f g a b e 10.26. Sei G eine kontextfreie Grammatik. Fiir ein Wort z c L(G) k6nnen un-
terschiedliche Syntaxb~ume zur Generierung von z in G existieren. Konstruieren Sie eine
kontextfreie Grammatik G fiir die Sprache L = {0nl ~ I n c IN}, so dass fiir jedes z c L - { A }
mindestens zwei unterschiedliche Syntaxb~ume zur Generierung von z in G existieren.
A u f g a b e 10.27. Sei G eine beliebige kontextfreie Grammatik. Konstruieren Sie eine kon-
textfreie Grammatik G', so dass L(G) = L(G') und G' fiir jedes nichtleere Wort z c L(G)
genau doppelt soviele unterschiedliche Syntaxb~ume zur Generierung von z hat als G.
Mit ghnlichem Vorgehen wie bei regulgren Grammatiken kann man jede kon-
textfreie Grammatik so modifizieren, dass sie keine Regeln der Form X -+ A
(auger S --~ A) und keine Kettenregeln enth~lt.
A u f g a b e 10.29. Sei G eine kontextfreie Grammatik ohne Regeln der Form X --~ A fiir X
unterschiedlich von dem Startsymbol. Konstruieren Sie eine zu G ~quivalente kontextfreie
Grammatik, die keine Kettenregel enth~lt.
l~ bedeutet, dass ein X c EN nicht nutzlos ist, wenn eine Ableitung S = ~ ctX~ fiir
irgendwelche c~, ~ E (EN U ET)* existiert.
10.4 Kontextfreie Grammatiken und Kellerautomaten 381
GemS~t3 der Definition yon nutzlosen Symbolen in Aufgabe 10.30 ist es often-
sichtlich, dass das Entfernen aller nutzlosen Symbole aus EN und aller Regeln,
die nutzlose Symbole beinhalten, keinen Einftuss auf die dutch G generierte
Sprache hat. Im Folgenden sagen wir, dass eine kontextfreie G r a m m a t i k G
n o r m i e r t ist, falls G
sind.
Der formale Beweis von Satz 10.4 ist zu technisch 11 und so verzichten wir auf
ihn in dieser Einfiihrung in die Theorie der formalen Sprachen. Wir deuten
nur an, wie m a n eine Chomsky-Normalform erzeugen kann. Zuerst werden
nutzlose Symbole, dann (X ~ A) P r o d u k t i o n e n 12 und K e t t e n p r o d u k t i o n e n
entfernt. Die normierte kontextfreie G r a m m a t i k hat dann Regeln
A~aundA~ctf/ir Ictl_>2.
X a ----+ a .
Danach ersetzen wir alle Terminalsymbole a in den rechten Seiten der Pro-
duktionen durch die entsprechenden Nichtterminale Xa. Auf diese Weise wird,
zum Beispiel, die Regel
A ~ bBCaaAc
A XbBCXaX AX
A ~ Y~Y2...Yk
Wenn m a n diese Prozedur fiir jede Regel A + ct mit Ictl > 2 mit immer
neuen Nichtterminalen Zi realisiert, erhglt m a n eine kontextfreie G r a m m a t i k
in Chomsky-Normalform.
Aufgabe 10.31. Wir haben im Beispiel 10.5 eine kontextfreie Grammatik fiir die Sprache
Lge gesehen. Wenn wir in dieser Grammatik auf die Regel S + A verzichten, akzeptiert
diese Grammatik die Sprache Lye- {A}. Konstruiere aus dieser Grammatik eine 5~quivalente
Grammatik in Chomsky-Normalform.
Unsere ngchste Aufgabe ist es, eine Methode zu entwickeln, mit der m a n ffir
konkrete Sprachen L die Tatsache L ~ s (L ist nicht kontextfrei) beweisen
kann. Die Strategie ist ghnlich wie bei regulgren Sprachen. Eine Wiederholung
10.4 Kontextfreie Grammatiken und Kellerautomaten 383
iX/3i
fiir ein beliebiges i abzuleiten. Der Unterschied zu den regul~tren Sprachen ist
der, dass man, anstatt auf einer Stelle zu ,,pumpen", auf zwei Stellen gleich-
zeitig ,,pumpt".
L e m m a 10.6. P u m p i n g - L e m m a fiir k o n t e x t f r e i e S p r a c h e n
Fiir jede kontextfreie Sprache L gibt es eine n u r von L abhgngige K o n s t a n t e
nL, 80 dass fiir alle W S r t e r z E L m i t [z[ _> nL eine Zerlegung
Z = Uvwxy
Tt L - - T ~ E N +1.
Ftir jedes z E L mit Iz] _> nL muss jeder Ableitungsbaum fiir z genau Izl
B15~tter haben und somit ist die Tiefe (die maximale PfadlS~nge zwischen der
Wurzel und einem B latt) mindestens
12NI + 1.
Betrachten wir einen Pfad mit maximaler LS~nge von der Wurzel zu einem
Blatt, daher von der LS~nge mindestens ]ENI + 1. Auf diesem Weg muss minde-
stens ein Nichtterminal als Markierung zweimal vorkommen. Wir suchen die
13die Anzahl der aus einem Knoten ausgehenden Kanten
384 10 Grammatiken und Chomsky-Hierarchie
u v w x y
Fig. 10.3
(ii) und v2 liegen ~uf einem Pfad zwischen einem Blatt und der Wurzel
V1
GemS]3 Fig. 10.3 erhalten wir die Zerlegung von z. Ausgehend von S existiert
eine Ableitung
S ~c u A y mit u, y E E T. (10.2)
Wenn m a n den Teilbaum mit der Wurzel v2 betrachtet, gibt es eine Ableitung
Der Teilbaum mit der Wurzel V1 garantiert die Existenz der Ableitung
A ~ G* v A x ~ G* v w x (10.4)
10.4 Kontextfreie G r a m m a t i k e n und K e l l e r a u t o m a t e n 385
S ~ G u A y ~ c u v A y x =~c u v w y x (10.5)
die Zerlegung
z -- u v w y x
von z. Weil G eine normierte kontextfreie Grammatik ist, ist die L/~nge der
rechten Seite der in Vl ausgesuchten Regel mindestens 2. Weil keine Regeln
X --+ A vorkommen, k6nnen v und x nicht beide leer sein. Somit gilt (i), d.h.
I w l _ 1.
Weil der Pfad von v, fiber v2 zu dem Blatt die Lgnge hSchstens IENI + 1 hat 14,
ist die Anzahl der Blgtter des Teilbaumes mit der Wurzel v, und Verzwei-
gungsgrad hSchstens m durch
/t L -- ?Tt EN +1
IV W X ~ ?%L
S ~G uAy ~G uwy-uv ~ ~
* u A y =:=>G
S =:=>c * u v A x y =vc* ... =vc* uv~Ax~y =vG
* uv~wx~y
von uv~wz~y in G fiir jedes i e IN - {0}. Somit gilt auch (iii) und das Lemma
wurde bewiesen. D
Bei der Anwendung des Pumping-Lemmas fiir kontextfreie Sprachen geht man
genauso vor wie bei der Anwendung des Pumping-Lemmas ftir regul~re Spra-
chen. Fiir eine gegebene Sprache L wollen wir zeigen, dass das Pumping-
Lemma fiir L nicht gilt. Fiir eine gegebene Sprache L haben wir zuerst die
Wahl eines geniigend langen Wortes z aus L, weil das Pumping-Lemma fiir al-
le ausreichend langen WSrter gelten muss. Dann m/issen wir beweisen, dass f/Jr
jede Zerlegung yon z - u v w x y , die (i) und (ii) erfiillt, die Bedingung (iii) nicht
gilt. Wit prS~sentieren eine Anwendung dieser Strategie in folgendem Beispiel.
L = {a~b~c~ln E IN}
keine kontextfreie Sprache ist. Um dies zu beweisen, wS~hlen wir das Wort
z = a nL bnL Cn L
das offensichtlich lgnger als die durch das Lemma gegebene Konstante rtL ist.
Offensichtlich beinhaltet jede Zerlegung von z = u v w x y mit der Eigenschaft
(ii) Ivwxl <_ nL in dem Teilwort v w x und somit in v und x h6chstens zwei
unterschiedliche Buchstaben. Weil nach (i) Ivxl _> 1 gilt, enth~lt das Wort
uv2wx2y
keinesfalls die gleiche Anzahl a's, b's und c's. Somit ist u v 2 w x 2 y nicht in L und
die Bedingung (iii) des Pumping-Lemmas ist nicht erf/illt. D
Aufgabe 10.32. Beweisen Sie, dass die folgenden Sprachen keine kontextfreien Sprachen
sind.
(i) {0nl~0~2 In E IN},
(ii) {a~b~c'~ l m <_ n, m , n c IN},
(iii) {aibdck l i, j, k E iN, k = m a x { i , j } } ,
(iv) { w w I w C {0, 1}*},
(v) {0ili2 Ii c IN}.
Aufgabe 10.33. Die folgenden Sprachen sind kontextfrei. Deswegen kann man ihre Kon-
textfreiheit mit dem Pumping-Lemma nicht widerlegen. Wenn man trotzdem versuchen
wiirde, mit dem Pumping-Lemma die Nichtkontextfreiheit dieser Sprachen zu beweisen, wird
man offensichtlich scheitern. Erkl~ren Sie in Detail wo der Beweisversuch scheitert.
(i) {0,001, 00001},
(ii) {OnlnlnElN},
(iii) {w C {a,b}* [ [wla = Iwlb}.
10.4 Kontextfreie Grammatiken und Kellerautomaten 387
Aufgabe 10.34. In dem Beweis des Pumping-Lemmas fiir kontextfreie Sprachen haben wir
die normierten kontextfreien Grammatiken benutzt. Schreiben Sie den Beweis urn, in dem
Sie die Grammatik fiir L in Chomsky-Normalform annehmen. Wo und wie vereinfacht dies
den Beweis?
L e m m a 10.7. L e m m a y o n O d g e n
Fiir jede kontextfreie Sprache L gibt es eine n u t yon L abhiingige Konstante
nL, so class fiir alle WSrter z E L mit Izl >_ nL und alle Markierungen yon
mindestens nL Buchstaben in z eine Zerlegung
z = uvwxy
Der Vorteil des L e m m a s von Odgen liegt nicht nur darin, dass m a n die Beweise
von L ~ s vereinfachen kann. Der H a u p t v o r t e i l des L e m m a s von Odgen ist,
dass seine A n w e n d u n g fiir einige Sprachen zu dem Beweis L ~ L;2 fiihrt, obwohl
diese Tatsache mit dem P u m p i n g - L e m m a fiir kontextfreie Sprachen nicht zu
beweisen ist.
z- u v w x y mit u - A, v - A, w - A, x - a und y - a ~ - l b l d d ~,
die alle drei Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt,
weil insbesondere
uviwxiy- a~+i-lblcJdk E L.
Also gibt es fiir jedes Wort z E L eine Zerlegung des Wortes z, so dass die
Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt sind. Trotzdem ist
L keine kontextfreie Sprache, und wir zeigen dies mit Hilfe des Lemmas von
Odgen.
Sei
Wir markieren alle Symbole des Teilwortes bcld. Aus der Bedingung (ii) des
Lemmas yon Odgen erhalten wir, dass jede Zerlegung z - u v w x y yon z die
Eigenschaft hat, dass v w x entweder kein Symbol b oder kein Symbol d enth~lt.
Weil v x mindestens ein markiertes Symbol enthglt, wird in dem Wort
uv2wx2y
mindestens eine Anzahl eines Buchstaben e E {b, c, d} erhSht ohne eine andere
Anzahl eines Buchstaben h E {b, c, d } - {e} zu erh6hen. Damit gilt u v 2 w x 2 y
L. D
Aufgabe 10.36. Finden Sie eine andere Sprache L ~ 122, fiir die keine Anwendung des
Pumping-Lemmas zu dem Beweis von L ~ 122 fiihren kann, fiir die abet die Nichtkontext-
freiheit von L dutch das Lemma von Odgen bewiesen werden kann.
A u f g a b e 10.37. Beweisen Sie mit der Hilfe des Lemmas von Odgen, dass folgende Spra-
chen nicht kontextfrei sind.
(i) {albJc k l,j, k E IN, l ~=j , j =/=h und l -/= h},
(ii) {Onl'~Okln, m , k E IN, m - max{n,k}},
(iii) {0~1~2 k n, k E I N , h-/=n}.
a
Eingabeband
-~ Ein-Weg Lesekopf
endliche q
Kontrolle
Keller
Fig. 10.4
390 10 Grammatiken und Chomsky-Hierarchie
hat ein Eingabeband, das am Anfang das Eingabewort enthS~lt. Dieses Einga-
beband kann genau wie bei endlichen A u t o m a t e n nur eingeschr~tnkt benutzt
werden. Der Lesekopf kann aus dem Eingabeband nur lesen und darf sich
nur yon links nach rechts bewegen. Dadurch dient das Eingabeband nur zum
Einlesen der Eingabe und kann nicht als Speicher benutzt werden. 16 Es gibt
aber einen Unterschied zu endlichen A u t o m a t e n in der Arbeit mit dem Ein-
gabeband. Ein Kellerautomat ist nicht gezwungen, sich nach dem Lesen eines
Buchstabens aus dem Eingabeband mit dem Lesekopf nach rechts zu bewe-
gen. Er kann mit dem Kopf gewisse Zeit auf dem gleichen Feld des Bandes
stehen bleiben und in dieser Zeit einige Rechnungen auf den Daten im Keller
durchfiihren. Die endliche Kontrolle ist wie bei allen bisherigen Rechnermodel-
len durch eine endliche Menge von Zust~tnden gesteuert. Den Keller kann man
als potenziell unendliches Band mit eingeschr~nkter Nutzung betrachten. Der
Kellerautomat kann nur auf das Top-Symbol ganz oben im Keller zugreifen
und somit nur dieses Symbol lesen (Bild 10.4). Wenn man den Keller nicht
vertikal wie in Bild 10.4, sondern horizontal wie in Bild 10.5 zeichnet, dann
bedeutet es, dass man nur den Inhalt der rechtesten nicht-leeren Zelle des Ban-
des lesen kann. Wenn man sich irgendwelche Daten anschauen will, die tiefer
zl I IxI 9 o .
unendlich viele
Keller
leere Speicherzellen
Fig. 10.5
in dem Keller vorliegen, dann geht dies nur so, dass man zuerst dariiber lie-
gende Daten 16schen und dadurch auch unwiderruflich vergessen muss, um die
gewiinschten Daten ganz oben zugreifbar im Keller zu haben. Genauer gesagt
hat die Transitionsfunktion drei Argumente:
In einer Aktion kann der Kellerautomat den Zustand 5~ndern, den Lesekopf ein
Feld nach rechts bewegen und das Top-Symbol X des Kellers durch ein Wort
c~ ersetzen. Wenn das Wort c~ das leere Wort A ist, dann betrachten wir dies
als das L6schen des Top-Symbols X, was die Schrumpfung des Kellerinhaltes
D e f i n i t i o n 10.6. Ein n i c h t d e t e r m i n i s t i s c h e r K e l l e r a u t o m a t 19 ( N P d A )
ist ein 6-Tupel M = (Q, E, F, 5, qo, Zo), wobei die Elemente des Tupels folgende
Bedeutung haben:
lrvorher leeren
lSwie bei endlichen Automaten
19pushdown automaton im Englischen
2~ zu dem Arbeitsalphabet einer Turingmaschine
392 10 Grammatiken und Chomsky-Hierarchie
wobei
(qo, x, Zo)
die A n f a n g s k o n f i g u r a t i o n yon M a u f x.
Eine Berechnung Co, C i r . . . , C,~ yon M heiflt einc a k z e p t i e r e n d e Berech-
n u n g y o n M a u f x , falls
fiir irgendeinen Zustand p E Q. Wie iiblich 21 bezeichnet ~*M die reflexive und
transitive Hiille von der Relation ~M.
Die y o n d e n Kellerautomaten M akzeptierte Sprache L(M) ist deft-
niert dutch
Wir beobachten, dass ein NPdA mit leerem Keller nicht arbeiten kann. Wenn
daher in einer Berechnung der Keller geleert wurde und das Eingabewort noch
nicht zu Ende gelesen wurde, wird in dieser Berechnung die Eingabe nicht
akzeptiert.
Andererseits liegt unten im Keller am Anfang das Sonderzeichen Z0, und wenn
der NPdA dieses Initialisierungssymbol nirgendwo anders verwendet oder es
nie durch ein anderes Symbol ersetzt, dann weif3 er immer, wann er auf dem
untersten Boden des Kellers ist. 22
Eine andere wichtige Bemerkung ist, dass ein NPdA auf einer Eingabe auch
unendliche Berechnungen haben kann. Dies kommt dadurch zustande, dass er
beliebig viele Schritte machen kann, ohne ein Eingabesymbol zu lesen (soge-
nannte )~-Schritte). ZusS~tzlich sollen wir nicht vergessen, dass die Gr6t3e des
Kellers nicht beschrS~nkt ist.
Ein NPdA benutzt zwei M6glichkeiten zur nichtdeterministischen Verzweigung
von Berechnungen. Zuerst kann er sich entscheiden, ob er das Eingabesymbol
liest oder einen A-Schritt realisieren will. In diesen beiden Fgllen kann er sich
fiir die gegebenen Argumente aus einer endlichen Menge yon Aktionen eine
aussuchen.
Im Folgenden geben wir zwei Beispiele von Kellerautomaten.
-/~ = ({q0, ql, q2}, {0, 1}, {0, Z0}, ~, q0, Z0).
Im Zustand ql realisieren wir die Speicherung der Anzahl der Nullen des lgng-
sten Prefixes der Eingabe, das nur aus Nullen b e s t e h t
(qo, 0 a13, Zo) FM (ql, 0al 3, Zo) FM (ql, 0213, ZoO) FM (ql, 01 a, Zo00)
~ (q~, 1~, ZoOOO) ~ (q~, 1 ~, ZoOO) ~ (q~, 1, ZoO) ~ (q~, ~, Zo)
~-~ (q2, 5, 5)
von M auf 0 a la. D
Aufgabe 10.38. Entwerfen Sie einen NPdA fiir die Sprache {0~1~ I rt c IN-{0}}, der nur
einen Zustand hat.
Aufgabe 10.39. Beweisen Sie, dass der Automat aus Beispiel 10.8 wirklich die Sprache
L = {0nl ~ I n c IN} akzeptiert. Im Einzelnen bedeutet dies zu zeigen, dass fiir jedes
Wort 0nl n eine akzeptierende Berechnung von M existiert und dass eine akzeptierende
Berechnung nur auf einem Wort aus L vorkommen kann.
10.4 Kontextfreie Grammatiken und Kellerautomaten 395
(q0, z0 ).
Nach dem ersten Lesen von ~ ~ndert M den Z u s t a n d u n d beginnt, das ober-
ste Kellersymbol mit dem gelesenen E i n g a b e s y m b o l zu vergleichen. Wenn die
Symbole fibereinstimmen, wird das oberste Kellersymbol gel6scht. Auf diese
Weise kann m a n iiberprfifen, ob y = x R, weil das Wort x so in dem Keller
gespeichert wird, dass es vom Ende z u m Anfang aus d e m Keller gelesen wird.
Wenn M den Kellerboden mit dem Symbol Z0 erreicht, erhS~lt er die M6glich-
keit, in einem A-Schritt den Keller zu leeren. D
Aufgabe 10.41. Geben Sie eine formale Beschreibung des NPdA aus Beispiel 10.9 an.
Jetzt zeigen wir, dass die NPdAs genau die Klasse der kontextfreien Sprachen
akzeptieren. Wir beginnen mit der einfacheren Richtung, zu jeder kontextfreien
G r a m m a t i k einen 5~quivalenten N P d A zu konstruieren.
Lemma 10.8. Sei L sine kontextfreie Sprache, die A nicht enthiilt. Dann exi-
stiert ein NPdA M, so dass L - L ( M ) gilt.
Wir beweisen diese Aussage mit Induktion bez/iglich i. Fiir i - 0 ist die Be-
h a u p t u n g trivial. Sei nun i _> 1 und die B e h a u p t u n g gelte fiir alle j < i.
Sei
23Wir bemerken, dass alle W6rter einer Linksableitung einer Grammatik in Greibach-
Normalform aus E~. E~v sein miissen.
10.4 Kontextfreie Grammatiken und Kellerautomaten 397
A ~ wit
1w2 Iw lx WllW21 I
T
q0 A ~ wi'y q0
/
9 I
Fig. 10.6 Der Berechnungsschritt des NPdA M, der der Anwendung der Regel A ~ wit in
der Ableitung von G entspricht.
Aufgabe 10.44. Erweitern Sie die Aussage yon Lemma 10.8 auch fiir kontextfreie Spra-
chen, die A beinhalten.
Lemma 10.9. Sei M ein NPclA mit nut einem Zustand. Dann ist L(M) kon-
textfrei.
398 10 Grammatiken und Chomsky-Hierarchie
Beweis. Sei M = (Q, E, F, ~, q0, Z0) mit [Q[ > 1 ein Kellerautomat. Unsere
Aufgabe ist jetzt, einen Kellerautomaten
Pl=0XPX0,
A ' = (q,A,p) E r l
ist, dass der Kellerautomat M das Symbol A nur bei einem /Ubergang vom
Zustand q in den Zustand p 16schen dare Wenn A' das oberste Symbol des
10.4 Kontextfreie Grammatiken und Kellerautomaten 399
Wie soll uns diese Idee mit einem zweiten gespeicherten Zustand
helfen?
Wir wollen immer darauf achten, dass der Kellerinhalt wie in Fig. 10.7 aussieht.
q A1 pl
pl A2 p2
p2 A3 p3
p3 A4 p4
pi Ai+l pi+l
P/+I A i + 2 P~+2
Fig. 10.7
Formal bedeutet dies, wenn ein Tripel (q, A, p) direkt fiber einem Tripel (r, B, s)
im Keller liegt, so muss p - r sein. Wenn dies so ist und wir das L6schen yon
A 1 in M (von (q, A, p) in M1) nur b e i m / J b e r g a n g von q nach p erlauben, dann
enthglt das neue oberste Kellersymbol (r, B, s) - (p, B, s) den aktuellen neuen
Zustand p.
Wie erreicht man, dass der Keller immer einen Inhalt wie in Fig.
10.7 enthiilt ?
Dazu nutzt m a n den Nichtdeterminismus von M1. Wenn M aus dem Zustand
r nach s iibergeht und dabei das oberste Kellersymbol A durch C D E ersetzt
(d.h. (~, ODE) e a(~, a, A) far ~in a e P~), d ~ ~r~t~t ~ 1 d ~ ob~r~t~ Sym-
bol 24
(r,A,h)
(~,c, D)
24Wenn (r, A, s) nicht das oberste Symbol ist, dann scheitert M1 in dieser Berechnung.
400 10 G r a m m a t i k e n und Chomsky-Hierarchie
(D,D,A)
(A,E, h)
fiir alle M6glichkeiten, D und A aus Q zu w/~hlen und damit zu raten, bei
welchen {}berggngen diese Symbole gel6scht werden diirfen. Wichtig ist zu
bemerken, dass der aktuelle Zustand s als erstes Element des obersten Tri-
pels steht und dass die ehemalige Position yon den tiberschriebenen (r, A, h)
nur beim {)bergang in denselben Zustand h gelSscht werden kann. Weft unter
(r, A, h)irgendein (h,., .)liegt, liegt jetzt (h,., .) unter (A, E, h) und damit ist
die Konsistenz gewghrleistet.
Jetzt setzen wir dieses Konzept in die formale Konstruktion von/141 urn.
Q1 z
F1 -- u Q • 2 1 5 Q,
(51(q~,/~, Z~) -- (q0, z0, q)) I q e Q},
(51(ql, a, (p, A, h)) - {(ql ((8~1~82)(82~2~83)... (Sm~]Bm~~))R) I
ftir alle (s, ( ~ 1 ~ 2 . . . ~m) -R) e ~5(r, a, A)
und alle s2, s 3 , . . . , s,~ E Q}
u { (ql, A) I (h, A) e ~(r, a, A)}
Lemmata 10.8, 10.9 und 10.10 ergeben zusammen das folgende Resultat.
L(M)
A u f g a b e 1 0 . 4 6 . B e t r a c h t e n Sie den N P d A M mit = {0~1 ~ [ n c IN} aus Beispiel
10.8. W e n d e n Sie die K o n s t r u k t i o n aus L e m m a 10.10 an, um einen gquivalenten N P d A M
mit nur einem Z u s t a n d zu konstruieren.
104 Kontextfreie G r a m m a t i k e n u n d K e l l e r a u t o m a t e n 401
A B1
D B2
Bm
Fig. 1 0 8
lalb I lalbl
q~ ql
t ~
r A h s B1 s2
h D u s2 B2 s3
8m-- 1 J~m-- 1 8m
s.~ B.~ h
h D u
Fig. 10.9
402 10 Grammatiken und Chomsky-Hierarchie
L- {0 2n I ~'~ ~ IN},
S ~ C A O D und S ~ 0,
die uns ermSglichen, das Wort 0 abzuleiten und die Anfangsform C A O D mit
einer 0 zu erzeugen. Die nEchste Idee ist, die Anzahl Nullen zu verdoppeln,
indem A in der bisher abgeleiteten Form von links nach rechts "wandert" und
jede 0 gegen zwei Nullen austauscht.
AO ~ OOA, A D ~ B D.
Ahnlich kann B yon rechts nach links wandern und die Anzahl der Nullen
wieder verdoppeln.
OB ~ BOO, C B ~ CA.
Am Rande der bisher abgeleiteten Form kann man sich entscheiden, die Ab-
leitung zu beenden, indem man alle Nichtterminalsymbole 15scht. Am linken
Rand erreicht man es durch die Regel
CB ~ A, D ~ A.
Wenn man sich am rechten Rand entscheidet, die Ableitung zu beenden, dann
kann man folgende Regel benutzen:
AD~A, C~A.
10.5 Allgemeine Grammatiken und Turingmaschinen 403
Satz 10.6. s = s
d.h. die Menge der rekursiv aufziihlbaren Sprachen ist genau die gleiche Men-
ge wie die Menge aller Sprachen, die dutch Grammatiken generiert werden
kSnnen.
Beweis. Wir fiihren den Beweis, indem wir nacheinander s c_ 12RE und
Z2Rz C/20 zeigen.
s--,(o) s--,(o)A
qoa ~ qoa
2rWenn ]c~]r ]/3], erfordert dies natiirlich die Verschiebung des Suffixes des Arbeitsbandes
rechts von a.
10.6 Zusammenfassung 405
(<)
q
-----+
p
Falls M den Zustand qaccept erreicht, ist a l . . . a ~ in L ( M ) und somit
muss G dieses Terminalwort ableiten. Dies erreichen wir durch folgende
Regeln, die die untere Spur verwischen.
s = NSPACE(n).
10.6 Zusammenfassung
Kontrollaufgaben
1. Erkl/~ren Sie das Konzept von Grammatiken. Was ist eine Ableitung? Generiert jede
Ableitung in einer Grammatik G ein Terminalwort aus L(G)?
2. Die Grammatiken sind nichtdeterministische Generierungsmechanismen. Wo fiberall
tritt der Nichtdeterminismus auf?
3. Welche Grammatiktypen kennen wir und nach welchen Kriterien werden sie klassifi-
ziert?
4. Wir k6nnen die Nichtterminale regul/~rer Grammatiken als Informationstr/~ger deuten,
die die wichtigsten Merkmale des bisher abgeleiteten Pr/~fixes repr/~sentieren. Dies
bietet uns eine/~hnliche Entwurfsmethode von regul/~ren Grammatiken wie wir durch
die Zuordnung der Bedeutung einzelnen Zust/~nden fiir den Entwurf von endlichen
Automaten gewonnen haben. Nutzen Sie diese Strategie um regul/~re Grammatiken
fiir die regul/~ren Sprachen aus Aufgabe 3.5 zu entwerfen! Beweisen Sie die Korrektheit
ffir mindestens eine der entworfenen Grammatiken!
5. Welche Abgeschlossenheitseigenschaften der Klasse/23 = s kann man einfach
mittels regul/~ren Grammatiken beweisen? Ftir welche Operationen fiber Sprachen
wtirde man eher die endlichen Automaten benutzen?
6. Beschreiben Sie Algorithmen, die Folgendes tun:
(i) Entfernung aller nutzlosen Symbole aus einer Grammatik.
(ii) Entfernung aller Kettenregeln aus einer regul/~ren Grammatik.
(iii) Entfernung aller Regeln X ~ A aus einer regul/~ren Grammatik.
7. Obwohl endliche Automaten ein Maschinenmodell sind und regul/~re Grammatiken
einen Generierungsmechanismus darstellen, haben diese Modelle eine starke Ahnlich-
keit in ihrer Arbeitsweise. Wie wtirden Sie diese Ahnlichkeit spezifizieren und wie
nutzt man sie zur gegenseitigen Simulation aus?
8. Entwerfen Sie kontextfreie Grammatiken ffir die folgenden Sprachen:
(i) {aibJckdl l i,j,k,1 c IN, i ~ j und k = 2/}
(ii) {aibJct~dl [ i,j,k, l c IN, j r k oder i r l}
(iii) {aibJckdl l i, j,k,1 E IN, j ~ k und i ~ l}
10.6 Zusammenfassung 407
(iv) {0~12~2iln , i 9
(v) {0ilJ2 k l i,j, k 9 IN, i + k = j}
(vi) {wOOOlllwR l w 9 {O, 1}*}.
Wandeln Sie die entworfenen kontextfreien Grammatiken in die Chomsky-Normalform
llm.
9. Entwerfen Sie eine kontextfreie Grammatik fiir die Sprache
L = {anbic j I n , i , j 9 i+j=n},
die ftir jedes Wort aus L mindestens zwei unterschiedliche Ableitungsbgume hat.
10. Welche der folgenden Sprachen ist kontextfrei? Beweisen Sie ihre Behauptung:
(i) { w O ~ l ~ w R [ w c {0, 1,}*, n c IN}
(ii) {wwRw [ w c {0, 1}*}
(iii) {O~l~']n~IN}
(iv) {wwRuu R [ u, w E {O, 1}* }
(v) {aibYckdl l i, j,k,1 E IN, i + l = j + k}
(vi) {a'~b'~c2'~d 2'~ I n, m 9 IN}.
11. Fiihren Sie den Beweis des Pumping-Lemmas f/it kontextfreie Sprachen, in dem Sie
annehmen, dass Sie eine Grammatik in Chomsky-Normalform haben! Wie wird durch
diese Annahme der Beweis vereinfacht?
Wgre es auch eine Erleichterung, eine Grammatik in Greibach-Normalform zu neh-
IIleIl?
12. Entwerfen Sie nichtdeterministische Kellerautomaten, die die Sprachen aus Kontroll-
aufgabe 8 akzeptieren! Wandeln Sie mindestens einen dieser Kellerautomaten in einen
/~quivalenten NPdA, d e r n u r einen Zustand hat! Konstruieren Sie dann zu diesem
NPdA mit einem Zustand eine gquivalente kontextfreie Grammatik.
13. Konstruieren Sie eine kontextsensitive Grammatik fiir die Sprachen {02~ I n 9 IN}
und {anbnc '~ I n 9 IN}.
L it e r a t u r v e r ze i e h n i s
[ACG + 99] Ausiello, G.; Crescenzi, P.; Gambosi, G.; Kann, V.; Marchetti-
Spaccamela, A.; Protasi, M.: Complexity and Approximation.
Combinatorial Optimization Problems and their Approximabili-
ty Properties. Springer-Verlag 1999
[BC 94] Bovet, D. P.; Crescenzi, P.: Introduction to the Theory of Com-
plexity. Prentice-Hall 1994
[BDG 88] Balc~zar, J.; Dfaz, J.; Gabarrd, J.: Structural Complexity I.
Springer-Verlag 1988
[BDG 90] Balc~zar, J.; Dfaz, J.; Gabarrd, J.: Structural Complexity II.
Springer-Verlag 1990
[Ben 64] Bench, V.: Permutation groups, complexes and rearrangable mul-
tistage connecting networks. Bell System Technical Journal 43
(1964) 1619-1640
[Ben 65] Bene~, V.: Mathematical Theory of Connecting Networks and Te-
lephone Traffic. Academic Press 1965
[Boc 58] Bock, F.: An algorithm for solving "traveling-salesman" and rela-
ted network optimization problems: abstract. Bulletin 14th Natio-
nal Meeting of the Operations Research Society of America (1958)
897
[(~er 85] Cernr V." A thermodynamical approach to the traveling salesman
problem: An efficient simulation algorithm. Journal of Optimiza-
tion Theory and Applications 45 (1985) 41-55
[Cha 66] Chaitin, G.: On the length of programs for computing finite binary
sequences. Journal of the ACM 13 (1966) 407-412
[Cha 69] Chaitin, G.: On the simplicity and speed of programs for com-
puting definite sets of natural numbers. Journal of the ACM 16
(1969) 407-412
[Cha 74] Chaitin, G.: Information-theoretic limitations of formal systems.
Journal of the ACM 13 (1974) 403-424
[Chu 36] Church, A.: An undecidable problem in elementary number theory.
American Journal of Mathematics 58 (1936) 345-363
Literaturverzeichnis 409
[CLR 90] Cormen, T.; Leiserson, C.; Rivest, R.: Introduction to Algorithms.
MIT Press and McGraw-Hill 1990
[Coo 71] Cook, S.: The complexity of theorem-proving procedures. In: Pro-
ceedings of 3rd ACM STOC. 1971 S. 151-157
[Cro 58] Croes, G.: A method for solving traveling salesman problem. Ope-
rations Research 6 (1958) 791-812
[DH 76] Diffie,W.; Hellman, M.: New directions in Cryptographie. IEEE
Transitions Inform. Theory 26 (1976) 644-654
[DK 02] Dells, H.; Knebl, H.: Introduction to Cryptography. Springer-
Verlag 2002
[EP 00] Erk, K.; Priese, L.: Theoretische Informatik (Eine umfassende
Einftihrung). Springer-Verlag 2000
[GJ 79] Garey, M.; Johnson, D.: Computers and Intractability. Freeman
1979
[GMR 85] Goldwasser, S.; Micali, S.; Rackoff, C.: Knowledge complexity of
interactive proofs. In: Proc. 17th A CM Syrnp. on Theory of Com-
putation. ACM, 1985 S. 291-304
[G6d 31] G6del, K." Uber formal unentscheidbare Sgtze der Principia Ma-
thematica und verwandter Systeme. MonatsheRe fiir Mathematik
und Physik 38 (1931) 173-198
[Gra 66] Graham, R.: Bounds for certain multiprocessor anomalies. Bell
System Technical Journal 45 (1966) 1563-1581
[Har 93] Harel, D.: Algorithmics. The Spirit of Computing. Addison Wesley
1993
[HKMP 96] Hromkovi~, J.; Klasing, R.; Monien, B.; Peine, R.: Dissemination
of Information in Interconnection Networks. In: Combinational
Network Theory. 1996 S. 125-212
[HKP + 05] Hromkovi~, J.; Klasing, R.; Pele, A.; Ru~i~ka, P.; Unger, W.: Dis-
semination of Information in Communication Networks. Broadca-
sting, Gossiping, Leader Election and Fault-Tolerance. Springer-
Verlag 2005
[HMU 01] Hopcroft, J. E.; Motwani, R.; Ullman, J. D.: Introduction to Au-
tomata Theory, Languages, and Computation. Addison-Wesley,
Readings, MA 2001
[Hoc 97] Hochbaum, D.: Approximation Algorithms for NP-hard Problems.
Boston: PWS Publishing Company 1997
[Hro 97] Hromkovi~, J.: Communication Complexity and Parallel Compu-
ting. Springer-Verlag 1997
410 Literaturverzeichnis