This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
I P c Q}, (ii) ~A = ~, (iii) q0A = ({q0}>, (iv) FA = {(P) I P c 0 und P F / F -r 0}, (v) ~A ist eine Funktion aus QA x EA nach QA, die wie folgt definiert ist. Ftir jedes (P} E QA und jedes a E EA, - 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
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
Um
3 Endliche A u t o m a t e n
L(M) - L(A)
zu zeigen, reicht es, folgende Aquivalenz zu beweisen: (3.10)
Wir beweisen (3.10) mittels Induktion bez/iglich Ixl. (i) Sei I x l - 0, d.h. x - A. Weil ~M(qo, )~)- {q0} und qoA- {{qo}}, gilt (3.10) fiir x - A. (ii) Sei (3.10) giiltig fiir alle z E E* mit _ m, m ~ . Wir beweisen, dass (3.10) auch f/Jr alle W6rter aus E "~+1 gilt. Sei y ein beliebiges Wort aus E "~+1. Dann ist y - xa ftir ein x E E "~ und ein a E E. Nach der Definition der Funktion (~A gilt
~A(qOA,xa) -- (~A(~A(qOA,X), a).
(3.11)
Wenn wir die Induktionsannahme (3.10) ftir x anwenden, erhalten wir
daher gilt
~A(qoA, Z ) - <~M(qO,Z)}. Nach Definition (v) yon
(3.12)
6A gilt
(~A((R} , a) --
(3.13)
fiir alle R C_ Q und alle a E E. Zusammenfassend ist
~A(qOA,xa)
(3.11)
5A(~A(qOA,X), a)
(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 1 1
=
0,1
0,1 Fig. 3.18 Aufgabe 3.21. Wenden Sie die Konstruktion aus Satz 3.2 an, um einen gquivalenten EA zu dem NEA aus Fig. 3.19 zu erzeugen. Aufgabe 3.22. Konstruieren Sie mittels Potenzmengenkonstruktion endliche Automaten zu den nichtdeterministischen endlichen Automaten, die Sie in der Bearbeitung der Aufgabe 3.20 (b) und (d)e~tworf~n haben. Die Folge yon Satz 3.2 ist, dass/2(EA) = Z:(NEA), d.h., die (deterministischen) endlichen A u t o m a t e n sind bez~glich der Sprachakzeptierung genauso stark wie die nichtdeterministischen endlichen A u t o m a t e n . W i t bemerken abet, dass die dutch Potenzmengenkonstruktion erzeugten endlichen A u t o m a t e n wesentlich (exponentiell) grSt3er sind, als die gegebenen nichtdeterministischen endlichen A u t o m a t e n . Die ngchste Frage ist also, ob es Sprachen gibt, bei denen m a n die Simulation von Nichtdeterminismus dutch Determinismus unausweichlich mit einem exponentiellen W a c h s t u m der Automatengr6i3e bezahlen muss, oder ob eine andere Konstruktion existiert, die die Erzeugung kleinerer gquivalenter deterministischer A u t o m a t e n sicherstellt. Wir zeigen jetzt, dass m a n die Potenzmengenkonstruktion nicht verbessern kann. Betrachten wit die folgende regulgre Sprache Lk -- { x l y
l x E (Ebool)*,Y E (Ebool) k-l}
118
3 Endliche Automaten
fiir jedes k E IN - {0}. Der NEA A~ in Fig. 3.19 akzeptiert Lk auf die Weise, dass er fiJr jedes Symbol 1 der Eingabe nichtdeterministisch im Zustand q0 rgt, ob dieses Symbol das k-te Symbol vor dem Ende der Eingabe ist. Ak verifiziert dann deterministisch, ob diese Entscheidung korrekt war. 0,1
__..~@
1
1
1
.,~~~-'~~@~_~"" 0
1
" 0
~ 0
Fig. 3.19
Aufgabe 3.23. Geben Sie eine formale Beschreibung des NEA Ak aus Fig. 3.19 und beweisen 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, mindestens 2 k Zustiinde haben. Beweis. Sei/~k - (Qk, Y]~bool, (~k, qOk, f k ) ein EA mit L(Bk) - Lk. Um zu zeigen, dass Bk mindestens 2 k viele Zustgnde haben muss, verwenden wir die gleiche grundlegende Idee, die wir in Abschnitt 3.4 f/Jr die Beweise der Nichtexistenz ~5 benutzt haben. Wenn 3~(q0k, x) - 5k(qok, Y) f/Jr irgendwelche WSrter x und y fiber Ebool, dann gilt fiir alle z E (Ebool)* xz E L(Bk) ~
y z E L(B~).
(3.14)
Die Idee des Beweises ist es, eine Menge Sk von WSrtern zu finden, so dass fiir keine zwei unterschiedlichen WSrter z, y E St, die Gleichung 5t(qok, Z) (~k(qok, Y) gelten darf. Dann miisste Bk mindestens ISkl viele Zustande haben. 16 15Dies sollte nicht iiberraschend sein, da wir im Prinzip auch einen Nichtexistenzbeweis fiihren. Wit beweisen, dass kein EA mit weniger als 2k Zust~nden fiJr Lk existiert. 16Wenn Sk unendlich w~re, dann wiirde dies die Nichtexistenz eines EA fiir die gegebene Sprache bedeuten.
3.5 Nichtdeterminismus
119
Wir wS~hlen Sk - (Y]bool)k und zeigen, dass 5k(q0~, u) paarweise unterschiedliche Zustgnde fiir alle W6rter u aus S~ sind. Beweisen wir es indirekt. Seien x
=
XlX2...
und y = y l y 2 . . , yk, xi, yi E Eboo~ ffir i = 1 , . . . , k,
X k
zwei unterschiedliche W6rter aus S k -
(Y]bool) k. Setzen wir
voraus. Weil x -r y, existiert ein j E { 1 , . . . , k}, so dass xj r yj. Ohne BeschrS~nkung der Allgemeinheit setzen wir xj = 1 und yj = 0 voraus. Betrachten wir jetzt z = 0j-1. Dann ist XZ
--
X 1 . ..
Xj_
1
lXj+l...
XkO j-1
und y z
-
Yl 9 . .
Yj-lOyj+l
9 ..
ykO j - 1
und daher x z E L~ und yz ~ Lk. Dies ist gber ein Widerspruch zu (3.14). Daher hat Bk mindestens IS Iviele 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 Automaten zur Akzeptierung konkreter regulgrer Sprachen zeigen kann. Um diese Methode noch an einem einfachen Beispiel zu vergnschgulichen, zeigen wir ihre Anwendung ffir die regulgre Sprache L = { x l l y l x ,y E {0, 1}*}, die wir schon bei der Illustrierung der Potenzmengenkonstruktion in Fig. 3.13 betr&chtet h&ben. Um zu zeigen, d&ss jeder endliche Automat fiir L mindestens drei Zustgnde hat, suchen wir uns die folgenden drei W6rter aus: A, 1, 11. Jetzt sollen wir fiir jedes Paar (x, y) aus unterschiedlichen W6rtern x, y aus S = {A, 1, 11} zeigen, dass ein Wort z existiert, so dass genau eines der W6rter x z und y z in L ist (d.h., x und y erffillen die Aquivalenz (3.14) nicht). Ffir x = A und y = 1 w5hlen wir z = 1. Dann xz=
l ~ L und y z =
ll EL.
Daher (~(q0, A) -~ 5(q0, 1) ffir jeden endlichen Automaten, der L akzeptiert.
120
3 Endliche Automaten
F/Jr x = A u n d y = 11 w ~ h l e n w i r z = 0. D a n n
x z = 0 ~ L u n d y z = 110 E L u n d d e s h a l b m i i s s e n ~(qo, A) u n d (~(qo, 11) a u c h u n t e r s c h i e d l i c h sein. Fiir x = 1 u n d y = 11 w ~ h l e n w i r z = A. D a n n
x z = 1 ~ L u n d y z = 11 E L u n d d e s h a l b m i i s s e n ~(qo, 1) u n d ~(qo, 11) e b e n f a l l s u n t e r s c h i e d l i c h sein. Zusammengefasst
miissen
(~(qo, A), ~(qo, 1) u n d ~(qo, 11) paarweise unterschiedlich akzeptiert.
sein fiir j e d e n E A A =
(Q,
}-]bool, (~, qo, F ) ,
der L
A u f g a b e 3.24. Betrachte die Sprache L = { x l l y I x,y C {0, 1}*} und die drei W6rter A, 1, 11. Bestimme fiir alle Paare x, y von unterschiedlichen WSrtern aus S = {A, 1, 11} die Menge Z(x, y) C_ (Ebool)*, so dass fiir jedes z 9 Z(x, y)
(xz ~ L und yz E L) oder (xz E L und yz ~ L). A u f g a b e 3 . 2 5 . Betrachte L = { x l l y l x , y c {0, 1}*}. WS~hle S' disjunkt zu S = {A, 1, 11} und wende S t an, um zu zeigen, dass jeder EA fiir L mindestens drei Zust~inde hat. A u f g a b e 3.26. S e i L = { x 0 1 1 y l x
,yC{O,1}*}.
(i) Konstruieren Sie einen NEA M mit vier Zust~nden fiir L und beweisen Sie L = L(M). (ii) Wenden Sie auf M die Potenzmengenkonstruktion an, um so einen (deterministischen) EA zu erhalten. A u f g a b e 3.27.* Ein EA A heit3t m i n i m a l fiir die regulate Sprache L(A), wenn kein kleinerer (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
3.6
Zusammenfassung
121
Zusammenfassung
In diesem Kapitel haben wir die endlichen Automaten als ein Modell von sehr einfachen Berechnungen, die keine Variablen und damit keinen Speicher benutzen, 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 Beschreibung des allgemeinen Zustands des betrachteten Berechnungsmodells zu einem gegebenen Zeitpunkt ist. Die Durchfiihrung eines Berechnungsschrittes 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 Berechnung beschreibt man als eine Folge von Konfigurationen mit der Eigenschaft, dass man aus jeder Konfiguration zu ihrer Nachfolgekonfiguration in einem Berechnungsschritt 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 Spracherkennung (zur L6sung yon Entscheidungsproblemen), die sich zwischen (inneren) ZustS~nden aus einer endlichen Zustandsmenge beim Lesen yon Eingabesymbolen 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 Algorithmenklasse nicht 16sbar ist, bedeutet, einen Nichtexistenzbeweis zu fiihren. Dies fordert meistens ein tieferes Verstgndnis der Natur der betrachteten AIgorithmenklasse. 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 charakterisieren kann. Mit anderen Worten reichen endlich viele Zustgnde als Speicher nicht aus, um alle wichtigen Eigenschaften (Charakteristika) der bisher gelesenen Prgfixe yon Eingabew6rtern zu speichern. Diese Art der Argumentation 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-
3 Endliche Automaten
122
terschied zu deterministischen eine Auswahl von mehreren (endlich vielen) Aktionen in jedem Berechnungsschritt. Dadurch kann ein nichtdeterministischer Algorithmus exponentiell viele (beziiglich der EingabelS~nge) unterschiedliche Berechnungen auf einer Eingabe haben. Die Interpretation der Arbeit eines nichtdeterministischen Algorithmus A ist o p t i m i s t i s c h - wir setzen voraus, dass A in jeder nichtdeterministischen Wahl eine richtige Entscheidung trifft, falls eine solche existiert. Dies bedeutet, dass ein nichtdeterministischer AIgorithmus erfolgreich bei der L6sung eines Problems ist, wenn ftir jede Eingabeinstanz z mindestens eine der Berechnungen von A auf z das richtige Resultat liefert. Bei einem Entscheidungsproblem (E, L) bedeutet dies, dass A fiir alle z E L mindestens eine akzeptierende Berechnung 17 auf z hat und alle Berechnungen von A auf y fiir jedes y r L nichtakzeptierend is sind. Im Allgemeinen kennen wir keine etiizientere Art, nichtdeterministische Algorithmen A durch deterministische Algorithmen B zu simulieren, als alle m6glichen Berechnungen von A durch B zu simulieren. Dies ist auch der Fall bei endlichen Automaten, wo die Simulation einer Breitensuche im Berechnungsbaum von A auf gegebener Eingabe entspricht. Weil B dabei nach dem Lesen eines Prefixes z des Eingabewortes alle Zustgnde speichert, die A beim Lesen von z erreichen kann, nennt man die Konstruktion des EA B aus dem NEA A die Potenzmengenkonstruktion. Dieses Kapitel ist nur einigen elementaren Aspekten der Automatentheorie gewidmet und erhebt deswegen keinen weiteren Anspruch, als eine Einfiihrung in dieses Gebiet zu sein. Was die Kenntnisse der Klasse regul~irer Sprachen anbelangt, liefert diese Kapitel einen noch unwesentlicheren Beitrag. RegulS~re Sprachen k6nnen nicht nur durch andere Automatenmodelle charakterisiert werden, sondern auch durch weitere wichtige Mechanismen, die nicht auf Maschinenmodellen (Berechnungsmodellen) basieren. Die wichtigsten Beispiele solcher Formalisierungen sind die regul~iren Grammatiken als Generierungsmechanismen und die algebraische Darstellung durch regulS~re Ausdriicke. Fiir die Erweiterung des Kenntnisse fiber die Klasse der regulS~ren Sprachen empfehlen wir w~irmstens HopcroR, Motwani und Ullman [HMU 01].
Kontrollaufgaben 1. Wie kann man das Modell des endlichen Automaten mit der Hilfe von Programmen erklS~ren? Warum benutzen wit einen endlichen Automat nicht zur Modellierung von Rechnern, obwohl die Rechner (wie auch alles andere was wit kennen) endlich sind? 2. Definieren Sie einen EA formal als ein Quintupel und erkl~iren Sie die Bedeutung der 17Eine Berechnung mit der Aussage ,,x c L". lSMit dem Resultat ,,y ~ L" enden.
3.6 Zusammenfassung
123
Grundbegriffe der Theorie der Berechnungen, wie Konfiguration, Berechnungssschritt und Berechnung. 3. Erkl~tren Sie, wie die Zust~tnde eines endlichen Automaten A die Menge aller Eingaben fiber E* in endlich viele Klassen zerlegen. Wie kann dies beim Entwurf und der Verifikation eines endlichen Automaten helfen? Zeigen Sie ein paar Beispiele. 4. Entwerfen Sie basierend auf der Bedeutung der Zust~nde endliche Automaten fiir folgende Sprachen.
(i) { z l l l l p I z,y E {0, 1,2,3}*}, (ii) (iii) (iv) (v) (vi) (vii) (viii)
{ x l l O l l O Y l x, y C {O, 1,2}*}, {x010101y[ x,y E {0, 1}*}, {xOY l x ,y 6 {O,1}*}, {z0ylz I x,y, z 6 {0, 1}*}, {z E {0,1}* l lxl0 _> 3}, {x 6 {0,1}*13 _< Ixl0 _< 5}, {z001yl01zlz, p, zE{0,1}*},
(ix) {x0011lx c {0,1}*}, (x) {xl00111x c {0,1}*}, (xi) { l x l l 0 0 1 l x ~ {0,1}*}, (xii) {xll001y0 I x, y c {0, 1}*}. W~hlen Sie sich drei dieser Sprachen aus und beweisen Sie mit Induktion die Korrektheit der von Ihnen entworfenen Automaten. 5. Entwerfen Sie Automaten fiir die folgenden Sprachen. (i) {x c {0, 1}*Ix enthalt 11 als Teilwort oder endet mit dem Suffix 10},
(ii) {A,0,11, x00Ix ~ {0,1}*}, (iii) {z C {0, 1}*ix enthalt 00 oder 11 als Teilwort }. 6. Erkl~ren Sie, wie ein EA simultan mehrere endliche Automaten simulieren kann. Wenden Sie diese Simulationstechnik an, um den modularen Entwurf von endlichen Automaten fiir folgende Sprachen zu realisieren. (i) {x E {0, 1}* I Ixll ist gerade und x enthalt das Teilwort 001}, (ii) {x E {0, 1}*ix e n t h a l t das Teilwort 000 u n d x e n t h a l t das Teilwort 111}, (iii) {x C {0, 1, 2}*Ix enthalt die Teilworte 021 und 2110}, (iv) {x c {0,1}* I IXll (rood 3)= 1 und x endet mit dem Suffix 0011}. 7. Erkl~ren Sie die drei Methoden zum Beweisen, dass eine Sprache keine regul~re Sprache ist. 8. Beweisen Sie, dass folgende Sprachen nichtregul~tr sind. Wenden Sie dabei jede der drei gelernten Methoden mindestens einmal an.
(i) {o~ I~ ~ ~}, (ii) {0~12~0~ I n c IN}, (iii) { z y C {0, 1}*ix ist ein prafix yon y}, (iv) { x 2 y l x , y E {0, 1}*, Ixll lYlo}, =
(v) {o~ I~ c ~}. 9. Erkl~tren Sie das Konzept von nichtdeterministischen endlichen Automaten. Geben Sie ein Beispiel eines NEA an, der auf jeder Eingabe der L~nge n exponentiell viele unterschiedliche Berechnungen hat.
3 Endliche Automaten
124
10. Erkl~tren Sie, warum deterministische endliche Automaten nichtdeterministische endliche Automaten (trotz der M6glichkeit vieler Berechnungen auf einer Aufgabe) simulieren k6nnen. 11. Fiir welche Sprachen ist es wesentlich einfacher einen NEA als einen EA zu entwerfen? 12. Entwerfen Sie nichtdeterministische endliche Automaten fiir folgende Sprachen: (i) {zl010yl z , y c {0,1}*} O {z010l z c {0, 1}*}, (ii) {z c {0, 1 } * I x enthalt 001 oder 110 als ein Teilwort}, (iii) {z E {0, 1}* I lzl~ (rood 3) = 0 oder z = yl01z fiir y,z E {0,1}*},
(iv) {z ~ {0,1, 2}*lz enthalt eines der W6rter 012, 00, 22, 111 als Teilwort}. Wenden Sie die Potenzmengenkonstruktion fiir mindestens einen der entworfenen NEAs an, um einen/~quivalenten EA zu bauen. 13. Beweisen Sie, dass jeder EA fiir eine der folgenden Sprachen mindestens 4 Zust/~nde hat. (i) {z E {0, 1 } * l l z I ( m o d 4 ) = 2},
(ii) {z0011y I z, y C {0, 1}*}, (iii) {01zl0 I z C {0, 1}}, (iv) {z C {0, 1, 2}* I IZlo ist gerade und IXll ist teilbar durch 3}. KOnnen Sie fiir einige dieser Sprachen sogar eine h6here untere Schranke fiir die Anzahl der Zustgnde beweisen?
Die Menschen, die die Geduld haben, auch einfache Sachen vollkommen zu machen, gewinnen die F~thigkeit, auch schwere Sachen einfach zu meistern. F. Schiller
4
Turingmaschinen
4.1
Zielsetzung
Wenn man ursprtinglich in der Mathematik einen Ansatz zur L6sung gewisser Probleme vermitteln wollte, hat man ihn als eine mathematische Methode formal genau beschrieben. Eine sorgfSJtige Beschreibung einer Methode hatte die Eigenschaft, dass ein Anwender gar nicht verstehen brauchte, warum die Methode funktioniert, und trotzdem die Methode erfolgreich zur L6sung seiner Probleminstanz verwenden konnte. Die einzige Voraussetzung fiir eine erfolgreiche Anwendung war das Verst~ndnis des mathematischen Formalismus, in dem die Methode dargestellt wurde. Die Entwicklung des Rechners fiihrte dazu, dass man Methoden zur L6sung von Problemen dutch Programme beschreibt. Der mathematische Formalismus ist hier durch die benutzte Programmiersprache gegeben. Das wichtigste Merkmal aber bleibt. Der Rechner, der keinen Intellekt besitzt und daher kein Verst~ndnis fiir das Problem sowie fiir die Methode zu seiner L6sung besitzt, kann das Programm ausfiihren und dadurch das Problem 16sen. Deswegen k6nnen wit fiber automatische oder algorithmische L6sbarkeit von Problemen sprechen. Um zu zeigen, dass ein Problem automatisch 16sbar ist, reicht es aus, eine Methode zu seiner L6sung zu finden und diese in Form eines Programms (Algorithmus) darzustellen. Deswegen kommen positive Aussagen fiber algorithmische (automatische) Probleml6sbarkeit gut ohne eine Festlegung auf eine Formalisierung des Begriffs Algorithmus aus. Es reicht oft, eine Methode halb informell und grob zu beschreiben, und jedem wird klar, dass sich die Methode in die Form eines Programms umsetzen l~tsst. Daher ist es nicht verwunderlich, dass die Mathematik schon lange vor der Existenz von Rechnern die L6sbarkeit mathematischer Probleme mit der Existenz allgemeiner L6sungsmethoden I im Sinne von ,,automatischer L6sbarkeit" verkniipft hat. 1Heute wiirden wir Algorithmen sagen.
126
4 Turingmaschinen
Die Notwendigkeit der Formalisierung des Begriffs Algorithmus (L6sungsmethode) kam erst mit dem Gedanken, mathematisch die automatische Unl6sbarkeit von konkreten Problemen zu beweisen. Zu diesem Zweck hat man mehrere Formalismen entwickelt, die sich alle als gquivalent beziiglich des Begriffs ,,automatische (algorithmische) L6sbarkeit" erwiesen haben. Auch jede verntinftige Programmiersprache ist eine zul/~ssige Formalisierung der automatischen L6sbarkeit. Aber solche Formalisierungen sind nicht so gut geeignet ffir Beweise der Nichtexistenz von Algorithmen fiir konkrete Probleme, weil sie wegen der Anwendungsfreundlichkeit eine Menge komplexer Operationen (Befehle) enthalten. Daher braucht man sehr einfache Modelle, die nur ein paar elementare Operationen erlauben und trotzdem die volle Berechnungsstgrke von Programmen beliebiger Programmiersprachen besitzen. Ein solches Modell, das sich in der Theorie zum Standard entwickelt hat, ist die Turingmaschine. Die Zielsetzung dieses Kapitels ist, dieses Modell vorzustellen und so die Basis fiir die Theorie der Berechenbarkeit (der algorithmischen L6sbarkeit) und f~r die KomplexitS~tstheorie im ngchsten Kapitel zu legen. Der Stoff dieses Kapitels ist in vier Abschnitte unterteilt. Abschnitt 4.2 stellt das grundlegende Modell der Turingmaschine vor und iibt den Umgang mit Turingmaschinen. Abschnitt 4.3 prgsentiert die Mehrband-Varianten von Turingmaschinen, die das grundlegende Modell der abstrakten KomplexitS~tstheorie sind. In diesem Abschnitt wird auch die Aquivalenz zwischen Programmen in einer beliebigen Programmiersprache und Turingmaschinen diskutiert. Abschnitt 4.4 fiihrt die nichtdeterministische Turingmaschine ein und untersucht die M6glichkeiten der Simulation von nichtdeterministischen Turingmaschinen durch (deterministische) Turingmaschinen. Abschnitt 4.5 prgsentiert eine m6gliche Kodierung von Turingmaschinen als W6rter fiber dem Alphabet
~bool"
4.2
Das Modell der Turingmaschine
Eine Turingmaschine kann als eine Verallgemeinerung eines EA gesehen werden. Informell besteht sie (Fig. 4.1) aus (i) einer endlichen Kontrolle, die das Programm enthglt, (ii) einem unendlichem Band, das als Eingabeband, abet auch als Speicher (Arbeitsband) zur Verftigung steht, und
127
4.2 Das Modell der Turingmaschine
(iii) einem Lese-/Schreibkopf, der sich in beiden Richtungen auf dem Band bewegen kann. Die Ahnlichkeit zu einem EA besteht in der Kontrolle fiber einer endlichen Zustandsmenge und dem Band, das am Anfang das Eingabewort enthglt. Der Hauptunterschied zwischen Turingmaschinen und endlichen Automaten besteht darin, dass eine Turingmaschine das Band auch als Speicher benutzen kann und dass dieses Band unendlich lang ist. Das erreicht man dadurch, dass der Lesekopf des EA mit einem Lese-/Schreibkopf vertauscht wird und dass man diesem Kopf auch die Bewegung nach links erlaubt. Eine elementare Operation von Turingmaschinen kann also als folgende Aktion beschrieben werden. Die Argumente sind (i) der Zustand, in dem sich die Maschine befindet, und (ii) das Symbol auf dem Feld des Bandes, auf dem sich gerade der Lese/Schreibkopf befindet. Abhgngig yon diesen Argumenten macht die Turingmaschine folgendes. Sie (i) gndert den Zustand, (ii) schreibt ein Symbol auf das Feld des Bandes, yon dem gerade gelesen wurde 2 (dieses kann man also als ein Ersetzen des gelesenen Symbols durch ein neues Symbol sehen), und (iii) bewegt den Lese-/Schreibkopf ein Feld nach links oder rechts oder sie bewegt ihn gar nicht.
0 1 2 3 I r I Xl I X2 I X3 I unendliches Band
i-1
"~
i
i+1
I Lese-/Schreibkopf
endliche Kontrolle (Programm) Fig. 4.1
2Wo sich der Lese-/Schreibkopf gerade befindet.
n
n+l
n+2
128
4 Turingmaschinen
Wichtig dabei ist, dass I. das Band auf der linken Seite das Randsymbol r enth~it, fiber das die Turingmaschine nach links nicht weiter gehen und welches nie durch ein anderes Symbol ersetzt werden darf (Die Einfiihrung eines linken Randes ermSglicht die Nummerierung der Felder des Bandes von links nach rechts, wobei wir dem Bandfeld mit Symbol r die Nummer 0 zuordnen.), und 2. das Band nach rechts unendlich ist3, wobei die nicht beschrifteten Felder die Symbole u enthalten. Jetzt geben wir die formale Beschreibung einer Turingmaschine in der Weise an, wie wit es bei der Definition yon endlichen Automaten gelernt haben. Zuerst beschreiben wir die Komponenten und die elementaren Operationen. Dann w/~hlen wir eine Darstellung yon Konfigurationen und definieren den Berechnungsschritt als eine Relation auf Konfigurationen. Danach folgen die Definitionen yon Berechnung und der vonder Turingmaschine akzeptierten Sprache. Definition
4 . 1 . Eine
Turingmaschine
(kurz,
TM)
ist
ein
7- Tupel
M - (Q, E, F, 6, q0, qaccept~ qreject). D abei ist
(i) Q eine endliche Menge, die Z u s t a n d s m e n g e v o n M genannt wird, (~) E das E i n g a b e a l p h a b e t , wobei r und das Blanksymbol u nicht in E sind {E dient genau wie bei EA zur Darstellung der Eingabe.}, E F, (iii) F ein Alphabet, A r b e i t s a l p h a b e t genannt, wobei E c_ F, r
rnQ-0 {F enthiilt alle Symbole, die in Feldern des Bandes auftreten diirfen, d.h. die Symbole, die M als Speicherinhalte (variable Werte) benutzt.}, 5" (Q - {qaccept~ qreject}) X F --+ Q x P x {L~ R~ N} r162 Abbild~Ttg, Wberg a n g s f u n k t i o n v o n M genannt, mit der Eigenschaft
5(q,r
Q •
{r • {R, N}
fiir alle q E Q {6 beschreibt die elementave Operation von M. M kann eine Aktion (q. x . z ) e Q • r • {L. R. N} ~ ~ . ~ ~ k t ~ l l ~ Z ~ t ~ d p b~.~ L ~ ~ 3Man bemerke, dass man in endlicher Zeit h6chstens endlich viele Felder des Bandes beschriften kann und damit die aktuelle SpeichergrSfie (die Anzahl der Nicht-u-Felder) immer endlich ist. Der Sinn der Forderung eines unbeschr/inkten Speichers ist nur, dass man nach Bedarf einen beliebig grofien endlichen Speicher zur Verfiigung hat.
4.2 Das Modell der Turingmaschine
129
. .
( ii)
tet den Ubergang von p nach q, das Ersetzen von Y dutch X und die Bewegung des Kopfes entsprechend Z. Z = L bedeutet die Bewegung des Kopfes nach links, Z = R nach rechts und Z = N bedeutet keine Bewegung. Die Eigenschaft 5(q, r E Q • {r • {R, N} verbietet das Ersetzen des Symbols r dutch ein anderes Symbol und die Bewegung des Kopfes nach links iiber die Randbezeichnung r qo C Q der A n f a n g s z u s t a n d , qaccept E Q der a k z e p t i e r e n d e Zustand { M hat genau einen akzeptierenden Zustand. Wenn M den Zustand qaccept erreicht, akzeptiert M die Eingabe, egal wo sich dabei der Kopf auf dem Band befindet. Aus qaccept ist keine Aktion von M mehr mSglich.}, qreject E Q -- {qaccept} der v e r w e r f e n d e Zustand { Wenn M den Zustand qreject erreicht, dann endet damit die Berechnung und M verwirft die Eingabe. Das heiflt insbesondere auch, dass M nicht die komplette Eingabe lesen muss, urn sie zu akzeptiern bzw. zu
Eine K o n f i g u r a t i o n
C von M i s t ein Element aus
Konf(M) = (r
F*. Q. F + U Q. { r
F*.
{Eine Konfiguration wlqaw2, wl C {r w2 E F*, a C F, q E Q (Fig. ~.2), ist eine vollstiindige Beschreibung folgender Situation. M ist im Zustand q, der Inhalt des Bandes ist r und der Kopf steht auf dem ([Wl[ + 1)ten Feld des Bandes und liest das Symbol a. Eine Konfiguration pr p E Q, w E F*, beschreibt die Situation, in der der Inhalt des Bandes r ist und der Kopf auf dem O-ten Feld des Bandes steht und das Randsymbol r liest. 4} W1
a
w2
uu 9 9 9
t
q
Fig. 4.2 4Man bemerke, dass man fiir die Darstellung der Konfigurationen zwischen mehreren guten M6glichkeiten wghlen kann. Z.B. k6nnte man die Darstellung (q, w, i) c Q x F* x IN verwenden, um die Situation zu beschreiben, in der M im Zustand q ist, Wuuu... auf dem Band steht und der Kopf auf dem/-ten Feld des Bandes steht.
130
Eine Ein
(--K-
4 Turingmaschinen
Startkonfiguration Schritt
von
fiir
M
C Konf(M)
ist
eine
Eingabewort
Relation
• Konf(M))
xlx2
ein
---j--
definiert
9 .. xi-lqxixi+l
x
auf
der
ist
qor
Menge
der
Konfigurationen
durch
9 .. Xn
--if- X l X 2
9 .. Xi-lpyxi+l
9 .. Xn~
f~ll~ ~(q~ ~ ) : (;~ y~ N) (Fig. ~.J(~))~ XlX2 9 9 9 X i - l q x i x i + l
9 9 9Xn
--M--
XlX2 9 9 9 X i - 2 p X i - l Y X i + l
9 9 9Xnv
f~ll~ 5(q, ~ ) = (p, y, L) (rig. 4.J(b)), xlx2
. . . xi-lqxixi+l
xlx2
...
x~_lqx~
9 9 9Xn
--K- x l x 2
~
XlX2
...
x~-lypu
9 9 9Xi-lypxi+l
9 9 9 Xn~
f~ll~ 5(q~ ~ ) = (p~ y~ R) (Fig ~ J(d))
Xl
x2
...
xi-1
xi
xi-}-i
...
Xn
...
xl
x2
9 9 9
xi--1
y
xi§
9 9 9
Xn
9 9 9
Xl
x2
9 9 9
xi-1
y
Xi§
9 9 9
Xn
9 9 9
Xi§
9 9 9
Xn
9 9 9
(a) xl
x2
...
xi-1
xi
xi-J-1
...
xn
...
-~
(b)
Xl
x2
...
xi-1
xi
xi-}-i
...
xn
...
Xl
X2
9 9 9
Xi--1
y
) f
Xl
Fig. 4.3
X2
9 9 9
Xn--1
Xn
9 9 9
Xl
X2
...
Xn--1
y
U
"'"
4.2 Das Modell der Turingmaschine
131
Eine Berechnung yon M ist eine (potentiell unendliche) Folge von Konfigurationen Co, C1, C2,..., so dass Ci ~ Ci+l fiir alle i - O, 1, 2, .... Wenn Co ~ C1 ~ ... ~ Ci fiir ein i E IN, dann Co - ~ Ci. Die Berechnung yon M auf einer Eingabe x ist eine Berechnung, die mit der Startkonfiguration Co - qor beginnt und entweder unendlich ist oder in einer Konfiguration w l q w 2 endet, wobei q E {qaccept, qreject}Die Berechnung von M auf x heiflt akzeptierend, falls sie in einer akzeptierenden Konfiguration wlqacceptW2 endet. Die Berechnung yon M auf x heiflt verwerfend, wenn sie in einer verwerfenden Konfiguration WlqrejectW2 endet. Eine nicht-akzeptierende Berechnung von M auf x ist entweder eine vetwerfende oder eine unendliche Berechnung von M auf x. Die v o n d e r T u r i n g m a s c h i n e L(M)
M akzeptierte Sprache ist
- {w E E* I qor
-~-yqaccept Z, fiir iFgeTtdwelche y , z E P*}.
Wit sagen, dass M eine Funktion F " E* --+ F* berechnet, falls f{<
9 qor
9
Eine Sprache heiflt r e k u r s i v aufz~ihlbar, falls eine T M M existiert, so dass L- L(M). s
{ L ( M ) I M ist eine TM}
ist die Menge aller rekursiv aufz~ihlbaren Sprachen. 5 Eine Sprache L c_ E* heiflt r e k u r s i v ( e n t s c h e i d b a r 6 ) , falls L eine TM M , fiir die fiir alle x E E* gilt:
(i)
qor qor
L ( M ) fiir
-~-YqacceptZ, Y, Z E F*, falls x E L und ~ UqrejectV, U, V E r*, falls x ~ L.
{Dies bedeutet, dass M keine unendlichen Berechnungen besitzt.} Wenn (i) und (ii) gelten, sagen wir, dass M auf jeder Eingabe h~ilt oder dass M i m m e r h~ilt. 5Die Bezeichnung s kommt aus dem Englischen ,,recursively enumerable". aGenauer miisste man sagen, dass das Entscheidungsproblem (E, L) entscheidbar ist.
132
4 Turingmaschinen
{Eine TM, die immer hiilt, ist ein formales Modell des Begriffs Algorithmus.} s
{L(M) I M ist eine TM, die immer hiilt}
ist die M e n g e d e r r e k u r s i v e n ( a l g o r i t h m i s c h e r k e n n b a r e n )
Sprachen.
Eine Funktion F" E~ ~ E~ fiir zwei Alphabete E,, E2 heiflt t o t a l b e r e c h e n b a r , falls eine TM M existiert, die F berechnet, r Die Turingmaschinen, die immer halten, reprgsentieren die Algorithmen, die immer terminieren und die richtige Ausgabe liefern. So sind gerade die rekursiren Sprachen (entscheidbaren Entscheidungsprobleme) die Sprachen (Entscheidungsprobleme), die algorithmisch erkennbar (15sbar) sind. Aufgabe 4.1. Andern Sie die Definition einer TM, indem Sie als Konfiguration die Tripel (q, Cw, i) C Q • {r • IN nehmen. Ein Tripel (q, Cw, i) beschreibt die Situation, wenn die TM im Zustand q ist, der Bandinhalt Cwuuu... ist und der Kopf auf das i-te Feld des Bandes zeigt. Geben Sie dann eine Definition des Schrittes und der Berechnung, die mit dieser Darstellung yon Konfigurationen arbeitet. Im Folgenden zeigen wir ein paar konkrete Turingmaschinen und ghnlich wie bei endlichen A u t o m a t e n entwickeln wir eine anschauliche graphische Darstellung von Turingmaschinen. Sei LMitt~ = {w 6 (P,boo,)*lW- xly, wobei I x [ - [y[}. So enthglt LMitte alle W 6 r t e r ungerader Lgnge, die in der Mitte eine 1 haben. Aufgabe 4.2. Beweisen Sie, dass LMitte ~ Z:(EA). Wir beschreiben eine TM M, so dass L(M) = LMitte. Die Idee ist, zuerst zu /iberpriifen, ob die Eingabelgnge ungerade ist und dann das mittlere Symbol zu bestimmen. Sei M = (Q, E, F, 5, q0, qaccept, qreject), wobei Q = {q0, qeven, qodd~ qaccept, qreject, qA, qB, ql, qleft ~qright, qmiddle}, r=
{0, 1},
r = E u {r
u (E • { A , B } ) und
a(q0, r 5(q0, a) (~(qeven, b)
---
(qeven, r Dr), (qreject, a, N) fi/lr &lle a E {0, 1, ,,}, (qodd, b, R) f ~ ~1~ b e {0, 1},
rBeachten Sie, dass die TM M immer hglt.
4.2 Das Modell der Turingmaschine
133
(~(qeven, II) = (~(qodd, b) =
(qreject, II, g), (qeven, b, l:{) fiir alle b E {0, 1},
(~(qodd, .,) =
(qB, u,
L).
Wir beobachten, dass nach dem Lesen eines PrSofixes gerader (ungerader) LS~nge M i m Zustand qeven (qodd) ist. Wenn also M das Symbol u im Zustand qeven liest, ist das Eingabewort gerader L~nge und muss verworfen werden. Wenn M das Symbol u im Zustand qodd liest, geht M in den Zustand qB fiber, in dem die zweite Phase der Berechnung anfgngt. In dieser Phase bestimmt M die Mitte des Eingabewortes, indem M abwechselnd das am weitesten rechts stehende Symbol a E {0, 1} in (;) umwandelt und das am weitesten links stehende Symbol b E {0, 1} durch (Ab) ersetzt. Dieses kann man mit folgenden Transitionen (0berg~ngen) realisieren:
~(q,,a)
-
-
(ql, (B)' L) ftir alle a E {0, 1},
5(ql, a) (~(ql, c)
:
(qleft, a, L) fiir alle 8 C {0, 1},
--
(qmiddle, C, _~) ftir alle c E {r (A), (A)},
(~(qmiddle, (O))
=
(qreject, O, N),
= ~(q~oft, ~) = ~(q~of~, ~) ---
(~(qmiddle, ( ; ) )
(~(qright, b) (~(qright, d)
= -
(qaccept ~ 1~ N)~ (qleft,a, L) ftir alle a E {0, 1}, (qA, c, R) fiir alle c E { ( o ) , (A), r (qright, (b), R) ftir alle b E {0, 1}, (qright, b, l:{) ftir alle b E {0, 1}, (q,, d, L) f/Jr alled E {(o), (;)}.
Die fehlenden Argumentenpaare wie z.B. (qright, ~) k6nnen nicht auftreten und deswegen kann man die Definitionen von ~ so vervollstSmdigen, dass man ftir alle fehlenden Argumente den Ubergang nach qreject hinzunimmt. Wenn man einen Befehl (~(q,a) = ( p , b , X ) f/Jr q,p E ~, a,b E E und X E {L, R, N} graphisch wie in der Fig. 4.4 darstellt, dann kann man die konstruierte 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 Kantenbeschriftung, bei der zusS~tzlich zu dem gelesenen Symbol a noch das neue Symbol b und die Bewegungsrichtung X notiert wird.
134
4 Turingmaschinen
a~b,X
Fig. 4.4
(g) + o , N 1 ---~ 1, N 0-+ O,N
u --, u , N
U~u~N
O~O,R
@
0 --+ O,R
u --+ u,L -~ 1, R R ~
Jo--+ 1--+
1
(~ (~),L
(o)--+ (o), L (1) + (1), L
0~0, 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 r M~--r r ~ r
M~ r M~ r ~ r
135
4.2 Das Modell der Turingmaschine
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 010011 und I01 auf.
von der TM
M
aus Fig. 4.5 auf den W6rtern
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:
4 Turingmaschinen
136 a --~ a,R
a --~ a,R
%v
r162
O~O,L a --+ a , L
a ---~ a , L
O~O,L Fig. 4.6 1. Laufe fiber das B a n d yon r bis z u m ersten u (yon links nach rechts) u n d ,,16sche" jede zweite 0, d.h. ersetze sie durch a. Falls die Anzahl von Nullen auf d e m B a n d ungerade ist, h a r e im Z u s t a n d qreject- Sonst, fahre fort mit Schritt 2. 2. Laufe fiber das B a n d von dem a m weitesten links stehenden u his z u m r u n d iiberprtife, ob auf d e m B a n d genau eine Null oder mehrere Nullen stehen. 9 Falls auf d e m B a n d genau eine Null steht, akzeptiere. 9 Falls auf d e m B a n d mindestens zwei Nullen stehen, wiederhole Schritt 1. Die Idee dieser Strategie ist, dass m a n eine Zahl 2 i mit i _> 1 solange ohne Rest durch 2 teilen kann, his m a n eine 1 erhglt. Eine m6gliche Realisierung dieser Strategie in F o r m einer T M ist A - ({q0, qeven~ qodd~ ql~ q2~ q3~ qaccept ~qreject }~ {0}~ {0, a, r u}, ~A, q0, qaccept, qreject) mit der graphischen Darstellung in Fig. 4.6. Aufgabe 4.5. Eine andere Strategie die Sprache L p zu erkennen ist, die Eingabe 0~ im ersten Lauf durch das Band in 0J l J umzuwandeln, falls i - 2j gerade ist. Im n/~chsten Lauf iiberpriift man, ob j gerade ist, indem man im positiven Fall 0Jl j dutch 0~ 1~ lJ ersetzt. Akzeptiert wird nur wenn durch diese Art des Halbierens auf dem Band das Wort 01 i-1
4.3 Mehrband-Turingmaschinen und Church'sche These
137
erzeugt wurde. Dieses Halbieren kSnnte man mit der Strategie zur Suche der Mitte einer Eingabe realisieren. Konstruieren Sie eine TM, die als eine Implementierung des beschriebenen Verfahrens gesehen werden kann. A u f g a b e 4.6. Entwerfen Sie Turingmaschinen ftir folgende Sprachen: (i) {anb n I n E IN}, (ii) {x:/=/:y l x, y E {0, 1}*, N u m m e r ( x ) = N u m m e r ( y ) + 1} (iii) {w://:w I w E {0, 1}*}, (iv)* {0 n~ ] n C IN}. A u f g a b e 4.7. Entwerfen Sie Turingmaschinen, die fiir jedes Wort x c (Ebool)* im Zustand qaccept mit folgendem Bandinhalt halten: (i) (ii) (iii) (iv)
4.3
y c (Ebool)*, so dass N u m m e r ( y ) = N u m m e r ( x ) + 1, x:/Cx, z E (Ebool)*, so dass N u m m e r ( z ) = 2. N u m m e r ( x ) , ###x.
Mehrband-Turingmaschinen und Church'sche These
Die Turingmaschinen sind das Standardmodell der Theorie der Berechenbarkeit, wenn es um die Klassifizierung der Entscheidungsprobleme in rekursive (rekursiv aufzS~hlbare) und nicht rekursive (nicht rekursiv aufzS~hlbare) geht. Dieses Modell ist aber nicht so gut ftir die KomplexitS~tstheorie geeignet. Der Hauptpunkt der Kritik ist, dass dieses Modell nicht dem des allgemein akzeptierten Modells des Von-Neumann-Rechners entspricht. Dieses fordert, dass alle Komponenten des R e c h n e r s - Speicher fiir Programm, Speicher fiir Daten, CPU und das E i n g a b e m e d i u m - physikalisch unabhS~ngige Teile der Rechners sind. In dem Modell der Turingmaschine sind das Eingabemedium und der Speicher eins - das Band. Der zweite Kritikpunkt ist die zu starke Vereinfachung in Bezug auf die benutzten Operationen und die LinearitS~t des Speichers. Wenn man nS~mlich zwei Felderinhalte, die weit voneinander entfernt liegen, vergleichen m6chte, braucht man mindestens so viele Operationen (Berechnungsschritte) wie die zwei Felder voneinander entfernt liegen. Das folgende Modell der Mehrband-Turingmaschine ist das grundlegende Modell der KomplexitS~tstheorie. F/Jr jede positive ganze Zahl k hat eine k-BandTuringmaschine folgende Komponenten (Fig. 4.7): 9 eine endliche Kontrolle (Programm),
4 Turingmaschinen
138 9 ein endliches Band mit einem Lesekopf, 9 k Arbeitsb~nder, jedes mit eigenem Lese/Schreibkopf.
w
I$1
Eingabeband
A Lesekopf [ Progamm [ Lese- / S chreibk6p fe 1. Arbeitsband
2. Arbeitsband
u
...
k-tes Arbeitsband
Fig. 4.7 Am Anfang jeder Berechnung auf einem Wort w ist die k-Band-Turingmaschine in folgender Situation. 9 Das Eingabeband enthglt r wobei r und $ die linke bzw. die rechte SeRe der Eingabe markieren. 9 Der Lesekopf des Eingabebandes zeigt auf r 9 Der Inhalt aller ArbeitsbS~nder ist Cuuu... und deren Lese-/Schreibk6pfe zeigen auf r 9 Die endliche Kontrolle ist im Anfangszustand q0. WS~hrend der Berechnung diirfen sich alle k + 1 K6pfe in beide Richtungen links und rechts bewegen, nur darf sich kein Kopf fiber das Randsymbol r nach links bewegen und der Lesekopf des Eingabebandes darf sich nicht fiber das rechte Randsymbol $ nach rechts bewegen. Der Lesekopf darf nicht schreiben, und deswegen bleibt der Inhalt r des Eingabebandes wghrend der ganzen
4.3 Mehrband-Turingmaschinen und Church'sche These
139
Berechnung gleich. Ftir die Feldinhalte der ArbeitsbS~nder betrachtet man wie bei einer TM ein Arbeitsalphabet F. Die Felder aller k + 1 Bgnder kann man von links nach rechts nummerieren, beginnend mit 0 bei r So kann man eine Konfiguration einer k-Band-TM M wie folgt darstellen. Eine Konfiguration (q, w, i, Ul, il, U2, i 2 , . . . , u~, ik) ist ein Element aus Q x E* x IN x (F x IN) ~
mit folgender Bedeutung: 9 M ist im Zustand q, 9 der Inhalt des Eingabebandes ist r und der Lesekopf des Eingabebandes zeigt auf das i-te Feld des Eingabebandes (d.h. falls w = ala2.., an dann liest der Lesekopf das Symbol ai), 9 ftir j E {1, 2, . . . . . . ist der Inhalt des j-ten Bandes Cujuuu..., und ij <_ lujl ist die Position des Feldes, auf das der Kopf des j-ten Bandes zeigt. Die Berechnungsschritte von M kSnnen mit einer Transitionsfunktion
• (r u {r $ } ) • r
# • {L,R,N} • (r • {L, R, N})
beschrieben werden. Die Argumente (q, a, b l , . . . , bk) E Q x (}-]u{r $ } ) x r k sind der aktuelle Zustand q, das gelesene Symbol a E E U {r $} auf dem Eingabeband und die k Symbole b l , . . . , bk E F, auf denen die KSpfe der Arbeitsbgnder stehen. Diese k Symbole werden yon den K6pfen der k ArbeitsbS~nder durch andere Symbole ersetzt, und die Position aller k + 1 K6pfe wird um maximal 1 geS~ndert. Die Eingabe w wird yon M akzeptiert, falls M in der Berechnung auf w den Sonderzustand qaccept erreicht. Die Eingabe w wird nicht akzeptiert, falls M die Eingabe w i m Zustand qreject verwirft oder die Berechnung von M auf w nicht terminiert (unendlich ist). Wir verzichten auf die formale Definition der k-Band-Turingmaschine. Der oben gegebenen Beschreibung folgend ist die Herstellung einer solchen Definition eine Routinearbeit und wir iiberlassen dies dem Leser zum Training. Aufgabe 4.8. Geben Sie eine exakte formale Definition einer k-Band-Turingmaschine. Folgen Sie dabei allen Schritten der Definition von Turingmaschinen.
140
4 Turingmaschinen
F/Jr jedes k E I N - {0} nennen wir eine k-Band-Turingmaschine (k-BandTM) auch M e h r b a n d - T u r i n g m a s c h i n e ( M T M ) . Weil die Operationen einer MTM ein bisschen komplexer als die elementaren Operationen einer TM sind, kann man erwarten, dass Mehrband-Turingmaschinen gewisse Probleme einfacher oder schneller als Turingmaschinen 15sen kSnnen. Betrachten wir die Sprache Lgleich : {W--~W I W E (~bool)*}. Eine TM, die das erste w mit dem zweiten w vergleicht, muss mit dem Kopf fiber das Band viele Male fiber lange Entfernungen hin und her laufen.
I el...
9 I'...
Fig. 4.8 Eine 1-Band-TM A kann Lgleich mit folgender Strategie einfach erkennen: 1. A iiberpriift, ob die Eingabe die Form x # y mit x, y E (~bool)* hat. s Falls nicht, verwirft A die Eingabe. 2. Fiir die Eingabe x # y kopiert A das Wort x auf das Arbeitsband (d.h. nach diesem Schritt entha~t das Arbeitsband Cx (Fig. 4.8)). 3. A positioniert den Kopf des Arbeitsbandes auf r Dann bewegt A simultan beide KSpfe nach rechts und vergleicht x und y. Falls x r y, liest A in einem der Schritte zwei unterschiedliche Symbole. In diesem Fall verwirft A die Eingabe. Falls alle Paare yon Symbolen gleich sind und beide K6pfe gleichzeitig u erreichen, akzeptiert A die Eingabe. Eine Transition 5(p, a, b) = (q, X, d, Y) einer 1-Band-TM kann man graphisch wie in Fig 4.9 darstellen. Der Ubergang yon p zu q findet beim Lesen von a auf dem Eingabeband und gleichzeitigem Lesen yon b auf dem Arbeitsband SDies bedeutet, dass A wie ein EA einfach verifizieren kann, ob die Eingabe genau ein r hat.
4.3 Mehrband-Turingmaschinen und Church'sche These
@
141
a , b ~ X,d,Y @
Fig. 4.9 statt. Das Symbol b wird durch d ersetzt, X E {L, R, N} determiniert die Bewegung 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 Beschreibung einer 1-Band-TM M, die eine Implementierung der oben beschriebenen 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 Eingabe 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 Arbeitsband (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 qrejectAufgabe 4.9. Beschreiben Sie informell und auch in der Form eines Diagramms 1-BandTuringmaschinen, die folgende Sprachen akzeptieren: (i) L = {anbn i n E IN}, (ii) L = { w E (Ebool)*iiwi0=iwI1}, (iii) L = {anbncn i n c IN}, (iv) L = {www I w C (Ebool)*}, (v) L = {an21 n C IN}. Wir haben jetzt zwei unterschiedliche M o d e l l e - die TM und die MTM. Um beide gleichzeitig benutzen zu dfirfen, mfissen wir deren Aquivalenz beziiglich der Menge der akzeptierten Sprachen beweisen. Seien A und B zwei Maschinen (TM, MTM), die mit dem gleichen Eingabealphabet E arbeiten. Im Folgenden sagen wir, dass eine M a s c h i n e A fiquivalent zu e i n e r M a s c h i n e B ist, falls f/Jr jede Eingabe x E (2bool)*: (i) A akzeptiert x e=~ B akzeptiert x, (ii) A verwirft x e=~ 13 verwirft x, (iii) A arbeitet unendlich lange auf x e=~ B arbeitet unendlich lange auf x.
4 Turingmaschinen
142 .
S
1,r ~ R , r 0,r ~ R , r r162~ R , r
1,r ~ R , r 0,r ~ R , r
$,r ~ N , r
:/#, r ~ N, r N
.
1, 0 0, 1 $, 0 $, 1 0, u 1, u
1,r ~ L,r
r r ---, R, r R
Ir
~ N, 0, N ~ N, 1, N ---, N, 0, N ~ N, 1, N ~ N,u,N ~ N,u,N
~r
1, u ~ R, 1, R 0, u ~ R, 0, R
I
#,u~N,u,L
@,0 ~ N, 0, L @, 1 ~ N, 1, L
R,r
$,u ~ N , u , N ~
0,0 ~ R, 0, R 1, 1 ~ R, 1, R
Fig. 4.10 Es ist klar, dass L(A) : L(B), wenn A und B 5~quivalent sind. Die Tatsache L(A) = L ( B ) ist aber keine Garantie dafiir, dass A und B 5~quivalent sind. L e m m a 4.1. Zu jeder TM A existiert eine zu A iiquivalente 1-Band-TM B.
Beweis. Wir beschreiben die Simulation yon A durch t3, ohne die formale Konstruktion von B aus A anzugeben. B arbeitet in zwei Phasen:
4.3 Mehrband-Turingmaschinen und Church'sche These
143
1. B kopiert die ganze Eingabe w auf das Arbeitsband. 2. B simuliert Schritt fiir Schritt die Arbeit von A auf dem Arbeitsband (dies bedeutet, dass B auf dem unendlichen Arbeitsband genau das Gleiche tut was A auf seinem unendlichen Eingabeband gemacht hS~tte). Es ist klar, dass A und B gquivalent sind. Aufgabe 4.10. Geben Sie eine formale Konstruktion einer 1-Band-TM B, die gquivalent zu TM A = (Q, E, F, 5, q0, qaccept,qreject) ist. Im Folgenden werden wir meistens auf formale Konstruktionen von Turingmaschinen und formale Beweise der Aquivalenzen (oder von L(A) - L ( B ) ) verzichten. Der Grund ist ghnlich wie bei der Beschreibung von Algorithmen oder bei formalen Beweisen der Korrektheit von Programmen. Wir ersparen uns viel Kleinarbeit, wenn uns intuitiv klar ist, dass ein P r o g r a m m (eine TM) die gewiinschte Tgtigkeit realisiert, und wir auf einen formalen Beweis verzichten. L e m m a 4.2. Fiir jede Mehrband-TM A existiert eine zu A iiquivalente TM B.
Beweis. Sei A eine k-Band-Turingmaschine fiir ein k E I N - {0}. Wir zeigen, wie sich eine TM B konstruieren lgsst, die Schritt fiir Schritt A simulieren kann. Eine gute Strategie, um so eine Simulation zu erklgren, ist, zuerst die Darstellung yon Konfigurationen der zu simulierenden Maschine A festzulegen, und dann erst die Simulation der einzelnen Schritte zu erklgren. Die Idee der Darstellung der aktuellen Konfiguration von A und B ist in Fig. 4.11 anschaulich beschrieben. B speichert die Inhalte aller k + 1 Bgnder von A auf seinem einzigen Band. Anschaulich gesehen zerlegt B sein Band in 2(k + 1) Spuren. Dies kann man wie folgt erreichen. Falls F A das Arbeitsalphabet von A ist, so ist
-
u {r $, ,,}) • {,,, 1"} x
x {,,, 1-}) u
u {r
das Arbeitsalphabet yon B. F/Jr ein Symbol ct = (ao, a l , a 2 , . . . ,a2k+l) E FB sagen wir, dass ai auf d e r / - t e n Spur liegt. Daher bestimmen d i e / - t e n Elemente der Symbole auf dem Band yon B den Inhalt d e r / - t e n Spur. Eine Konfiguration (q, w, i, Xl, il, x2, i 2 , . . . , xk, ik) von A ist dann in B wie folgt gespeichert. Der Zustand q ist in der endlichen Kontrolle von B gespeichert. Die 0-te Spur des Bandes yon B enthglt r d.h. den Inhalt des Eingabebandes yon A. F/Jr alle i E {1,..., k} enthalt die (2i)-te Spur des Bandes von B das Wort Cx~, d.h.
144
4 Turingmaschinen
A
I
is1
W
I* I,,...
B: U
U
U
U
U
U
T
U
U
r U
Xl
U
U
T
U
U
U
U
U
U
T
U
zl
r U
T
z2
X2
r
1
;
xk
Fig. 4.11
den Inhalt des/-ten Arbeitsbandes von A. Fiir alle i E { 1 , . . . , k}, bestimmt die (2i + 1)-te Spur mit dem Symbol T die Position des Kopfes auf d e m / - t e n Arbeitsband yon A. Ein Schritt von A kann jetzt durch folgende Prozedur von B simuliert werden: 1. B liest einmal den ganzen Inhalt seines Bandes von links nach rechts und speichert dabei in seinem Zustand die k + 1 Symbole 9, die bei den k + 1 K6pfen von A gelesen worden sind (das sind genau die Symbole der geraden Spuren, auf die die Symbole T auf den ungeraden Spuren zeigen). 2. Nach der ersten Phase kennt B das ganze Argument (der Zustand yon A ist auch in dem Zustand yon B gespeichert) der Transitionsfunktion yon A und kann also genau die entsprechenden Aktionen (K6pfe bewegen, Ersetzen von Symbolen) von A bestimmen. Diese Anderungen fiihrt B in einem Lauf fiber sein Band yon rechts nach links durch.
A u f g a b e 4.11. Geben Sie eine formale Konstruktion einer TM an, die die Phase 1 der Simulation eines Schrittes von A aus Lemma 4.2 realisiert. 9Dies bedeutet, dass die Zustandsmenge von t3 die Menge Q • (EU{0, $}) • F k enth~lt, was kein Problem ist, da diese Menge endlich ist.
4.3 Mehrband-Turingmaschinen und Church'sche These
145
D e f i n i t i o n 4.2. Zwei Maschinenmodelle (Maschinenklassen) A und B fiir Entscheidungsprobleme sind ~iquivalent, falls
(i) fiir jede Maschine A E A eine zu A ~iquivalente Maschine B E B existiert, und (ii) fiir jede Maschine C E B eine zu C iiquivalente Maschine D E A existiert. 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 Aquivalenz 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 Turingmaschinen sind iiquivalent.
von
Turingmaschinen
und
Mehrband-
Die Kenntnis, dass diese beiden Maschinenmodelle als gleichberechtigt zur A1gorithmenmodellierung 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 meistens 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 Turingmaschinen und einer h6heren Programmiersprache zu beweisen. Ein formaler Beweis erfordert eine grofie Menge an technischer Kleinarbeit, die sehr zeitaufwendig 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 hoffentlich 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 Eingabealphabet yon M. Danach simuliert CTM die Arbeit yon M auf w.
146
4 Turingmaschinen
Wie kann m a n jetzt zu einem P r o g r a m m einer komplexeren P r o g r a m m i e r sprache eine T M bauen? Dazu sollte sich m a n den Weg der Entwicklung der P r o g r a m m i e r s p r a c h e n anschauen. A m Anfang hat m a n nur in Assembler oder sogar noch in Maschinencode p r o g r a m m i e r t . Die einzigen e r l a u b t e n Operationen waren Vergleiche von zwei Zahlen und die a r i t h m e t i s c h e n O p e r a t i o n e n . Alle anderen Befehle w u r d e n als kleine P r o g r a m m e aus diesem G r u n d r e p e r toire z u s a m m e n g e s e t z t , u m dem P r o g r a m m i e r e r die Arbeit zu vereinfachen. Deswegen werden wir keine Zweifel an der Aquivalenz von Assembler u n d beliebigen P r o g r a m m i e r s p r a c h e n haben; insbesondere weil wir wissen, dass die Compiler P r o g r a m m e in h6heren P r o g r a m m i e r s p r a c h e n in Assembler oder Maschinencode iibersetzen. Daher reicht es, die Aquivalenz zwischen Assembler u n d T u r i n g m a s c h i n e n zu beweisen. Den Assembler kann m a n durch sogenannte R e g i s t e r m a s c h i n e n modellieren u n d d a n n diese durch T u r i n g m a s c h i n e n simulieren lassen. Diesen Weg werden wir jetzt aber nicht gehen. W i r k6nnen unsere Aufgabe noch vereinfachen. W i r kSnnen Multiplikation u n d Division yon zwei Zahlen a u n d b durch P r o g r a m m e , die nur mit den G r u n d o p e r a t i o n e n A d d i t i o n u n d S u b t r a k t i o n arbeiten, realisieren. Aufgabe 4.13. Schreiben Sie ein Programm, dass fiir zwei gegebene Zahlen a und b das Produkt a. b berechnet. Dabei darf das Programm nur die Addition, die Subtraktion und Vergleich von zwei Zahlen in Verbindung mit i f ... t h e n . . , else benutzen. D a n a c h kann m a n einen Vergleich yon zwei Zahlen durch P r o g r a m m e durchfiihren, die nur die O p e r a t i o n + 1 (I " - I + 1), - 1 (I " - I - 1) u n d den Test auf 0 ( i f I - 0 t h e n . . . e l s e . . . ) benutzen. Aufgabe 4.14. Schreiben Sie ein Programm, dass den Befehl i f I _> J t h e n g o t o 1 e l s e goto 2 nur mit Hilfe von Operationen +1, - 1 und dem Test auf 0 realisiert. A m Ende kSnnen wir auch noch auf A d d i t i o n u n d S u b t r a k t i o n verzichten. Aufgabe 4.15. Schreiben Sie Programme, die fiir zwei gegebene Zahlen a, b E IN die Addition a + b und die Subtraktion a - b nur mit Hilfe der Operationen + 1, - 1 und dem Test auf 0 berechnen. Die Aufgabe, die P r o g r a m m e mit O p e r a t i o n e n + 1 , - 1 u n d if I = 0 t h e n . . . e l s e . . . auf M e h r b a n d - T u r i n g m a s c h i n e n zu simulieren, ist nicht mehr so schwer. Die Variablen werden auf den A r b e i t s b ~ n d e r n in der F o r m xC~y gespeichert, wobei x die bin~re K o d i e r u n g des N a m e n s der Variablen Ix u n d y die bin~re K o d i e r u n g des Wertes yon Ix ist. Die O p e r a t i o n e n + 1 , - 1 u n d den Test y = 0 kann eine M T M einfach realisieren. Der einzige grSf3ere Aufwand entsteht, wenn ein B a n d z.B. CxC~YC~C~zC~ur162 enth~lt u n d der Platz zur
4.3 Mehrband-Turingmaschinen und Church'sche These
147
Speicherung des Wertes yon Ix in y nicht mehr reicht (mehr Felder fiir y werden gebraucht). In einem solchen Fall muss die M e h r b a n d - T M den Inhalt ~z~u~... rechts yon y nach rechts verschieben, u m mehr Platz fiir die Speicherung von y zu gewinnen. In der Theoretischen Informatik hat man Hunderte von formellen Modellen (nicht nur in Form von Maschinenmodellen) zur Spezifikation der algorithmischen LSsbarkeit entwickelt. Alle verntinftigen Modelle sind ~quivalent zu Turingmaschinen. Dies fiihrte zu der Formulierung der sogenannten Church'schen These:
Church'sche These
Die Turingmaschinen sind die Formalisierung des Begriffes ,,Algorithmus", d.h. die Klasse der rekursiven Sprachen (der entscheidbaren Entscheidungsprobleme) stimmt mit der Klasse der algorithmisch (automatisch) erkennbaren Sprachen iiberein. Die Church'sche These ist nicht beweisbar, weil sie einer Formalisierung des intuitiven Begriffes Algorithmus entspricht. Es ist nicht m6glich zu beweisen, dass keine andere formale Modellierung des intuitiven Begriffes Algorithmus existiert, die (i) unserer Intuition fiber diesen Begriff entspricht, und (ii) die algorithmische LSsung von Entscheidungsproblemen ermSglicht, die m a n mit der Hilfe von Turingmaschinen nicht entscheiden kann. Das einzige, was passieren k6nnte, ist, dass jemand ein solches stS~rkeres Modell findet. In diesem Fall wS~ren die Grundlagen der Theoretischen Informatik zu revidieren. Die Suche nach einem solchen Modell war aber bisher vergeblich, und wir wissen heute, dass sogar das physikalische Modell des Quantenrechhers ~~ zu Turingmaschinen 5~quivalent ist. Die Situation ist also 5~hnlich wie in der M a t h e m a t i k und Physik. Wir akzeptieren die Church'sche These, weil sie unserer Erfahrung entspricht, und postulieren sie als ein Axiom. Wie wir schon bemerkt haben, hat sie die Eigenschaften yon mathematischen A x i o m e n - sie kann nicht bewiesen werden, aber m a n kann nicht ausschliefien, dass sie eines Tages widerlegt wird. 11 Die l~ arbeiten nach dem Prinzip der Quantenmechanik. 11Die Widerlegung eines Axioms oder einer These sollte man nicht als ,,Katastrophe" betrachten. Solche Resultate gehSren zur Entwicklung der Wissenschaften dazu. Die bisherigen Resultate und Kenntnisse muss man deswegen nicht verwerfen, nur relativieren. Sie gelten einfach weiter unter der Voraussetzung, dass das Axiom gilt.
148
4 Turingmaschinen
Church'sche These ist das einzige informatikspezifische Axiom auf welchem die Theoretische Informatik aufgebaut wird. Alle anderen benutzten Axiome sind die Axiome der Mathematik.
4.4
Nichtdeterministische Turingmaschinen
Den Nichtdeterminismus kann man in das Modell der Turingmaschinen auf gleichem Wege einfiihren wie wir den Nichtdeterminismus bei den endlichen Automaten eingefiihrt haben. Fiir jedes Argument besteht die M6glichkeit einer Auswahl aus endlich vielen Aktionen. Auf der Ebene der Transitionsregeln bedeutet dies, dass die Transitionsfunktion 5 nicht yon Q • F nach Q x F x { L, R, N } geht, sondern von Q x F nach 7)(Q • F x { L, R, N }). Eine andere formale M6glichkeit ist, 5 als eine Relation auf (Q x F) • (Q • F • {L, R, N}) zu betrachten. Eine nichtdeterministische Turingmaschine M akzeptiert ein Eingabewort w genau dann, wenn es mindestens eine akzeptierende Berechnung yon M auf w gibt. Die formale Definition einer nichtdeterministischen Turingmaschine folgt.
Definition 4.3. Eine nichtdeterministische Turingmaschine (NTM) ist ein 7-Tupel M = (Q, E, F, 6, q0, qaccept, qreject), wobei
(/) Q, E, F, q0, qaccept, qreject die gleiche Bedeutung wie bei einer TM haben, und 5"(Q-
{qaccept, qreject}) X r --+ ~P(Q X r X {g, 1~, N)) die Ubergangs-
funktion von M ist und die folgende Eigenschaft hat:
5(p, r c {(q,r
Iq c Q,x
{R, N}}
fiir alle q E Q. {Das Randsymbol darf nicht dutch ein anderes Symbol ersetzt werden, und der Kopf darf sich nicht von r aus nach links bewegen.} Eine Konfiguration von M i s t ein Element aus
Konf(M) = ({r
F*. Q. F*) O (Q. {r
F*)
{mit der gleichen Bedeutung wie bei einer TM}. Die Konfiguration qoCw ist die A nfangskonfiguration fiir das Wort w E E*. Eine Konfiguration heiflt akzeptierend, falls sie den Zustand qaccept enthiilt. Eine Konfiguration heiflt verwerfend, falls sie den Zustand qreject enthiilt.
4.4 Nichtdeterministische Turingmaschinen
149
Ein S c h r i t t von M ist eine Relation ---M-, die auf der Menge der Konfigurationen ( --~ C_ Konf(M) • Konf(M)) wie folgt definiert ist. Fiir alle p, q E Q und alle X l , X 2 , . . . , x ~ , y E F, XlX2
9 9 9 Xi-lqXiXi+l
9 9 9 Xn
~
XlX2
9 9 9 Xi-lPyXi+l
9 9 9 Xn~
(p, y, N) XlX2
9 9 9 Xi-2~
Xi-lqxixi+l
9 9 9 Xn
~
XlX2
9 9 9 Xi-2pXi-lyxi+l
9 9 9 Xn~
falls (p, XlX2
9 9 9
x~_~qx~x~+~ . . . x~ ~
x~xe . . . x~_~ypx~+~ . . . x~,
falls (p, XlX 2 . . . x~_lqx~ ~ falls (p, y, R) e
Die Relation - ~
xlx2 . . . x ~ - l y p u ,
ist die reflexive und transitive Hiille von
M 9
Eine B e r e c h n u n g y o n M ist eine Folge von Konfigurationen Co, C 1 , . . . so dass Ci ~ C~+1 fiir i - O, 1, 2, .... Eine B e r e c h n u n g v o n M a u f e i n e r E i n g a b e x ist cine Bcrcchnung, die mit dcr Anfangskonfiguration qor beginnt und die entweder unendlich ist, oder in einer Konfiguration wlqw2 endet, wobei q E {qaccept, qreject}. Eine Berechnung von M auf x heiflt a k z e p t i e r e n d , falls sie in einer akzeptierenden Konfiguration endet. Eine Berechnung von M auf x heiflt v e r w e r f e n d , falls sie in einer verwerfenden Konfiguration endet. Die v o n d e r N T M L(M)
M a k z e p t i e r t e S p r a c h e ist
- {w E E* I qor
~
yq~eptZ fiir irgendwelche y, z E F*}.
A u f g a b e 4.16. Beschreiben und definieren Sie formal eine nichtdeterministische k-BandTuringmaschine far jedes k E IN - {0}. A u f g a b e 4.17. Sei M eine nichtdeterministische Mehrband-Turingmaschine. Beschreiben Sie eine N T M M', so dass L ( M ) L(M').
Ahnlich wie im Fall der endlichen Automaten k6nnen auch bei Turingmaschinen nichtdeterministische Strategien die Berechnungen vereinfachen. Betrachten wir die Sprache Lungleich --
{X~=~YlX~
Y
E
(~bool)*~ X ~ A~ X ~A y } .
Eine (deterministische) TM miisste Buchstabe fiir Buchstabe x und y vergleichen, um den Unterschied feststellen zu k6nnen. Eine NTM kann die Position i, an der sich x = X l . . . x ~ und y = y l . . . y,~ unterscheiden, nichtdeterministisch raten und dann die Korrektheit des Ratens durch den Vergleich von xi
150
4 Turingmaschinen
und yi verifizieren. Im Folgenden beschreiben wir eine nichtdeterministische l-Band-TM A, die Lungleich akzeptiert (die formale Darstellung findet sich in Fig. 4.12). A arbeitet auf einer Eingabe w wie folgt: 1. A iiberprtift deterministisch mit einem Lauf des Lesekopfes fiber das Eingabeband, ob w genau ein Symbol ~ enthS~lt (ZustS~nde q0, ql, qr~j~ct in Fig. 4.12). Falls das nicht der Fall ist, verwirft A die Eingabe w. Falls w = z--#y fiir z, y E (Ebool)*, setzt A die Arbeit mit Phase 2 fort (ira Zustand q2 in Fig.
4.12). 2. A stellt die K6pfe auf beiden B~ndern auf # (Zustand qs in Fig. 4.12). 3. A bewegt beide K6pfe simultan nach rechts (dabei ersetzt der Kopf auf dem Arbeitsband die Symbole u durch die Symbole a) und in jedem Schritt trifft sie nichtdeterministisch die Entscheidung, ob der Unterschied in der Position des gelesenen Feldes vorkommt oder nicht (Zustand qg~ess in Fig. 4.12). Falls b E {0, 1} auf dem Eingabeband gelesen wird und A r~tt, dass der Unterschied an dieser Position auftritt, speichert A das Symbol b in seinem Zustand und geht zur Phase 4 fiber (A geht in Zustand pb fiber in Fig. 4.12). Falls A das Symbol # liest (Ixl < lYl rS~t), geht A in p# fiber. 4. Jetzt ist die Entfernung des Kopfes von # auf dem Arbeitsband gleich der Position des gespeicherten Symboles b E {0, 1, r in xCp. A geht zuerst mit dem Lesekopf auf 4P ohne den Kopf auf dem Arbeitsband zu bewegen (Zustgnde p0 und Pl in Fig. 4.12). Danach bewegt sich in jedem weiteren Schritt der Lesekopf nach rechts, und der Kopf auf dem Arbeitsband nach links (Zustgnde So und Sl in Fig. 4.12). Wenn der Kopf auf dem Arbeitsband # erreicht, steht der Kopf des Eingabebandes auf der geratenen Position von y. Falls das gespeicherte Symbol b in sb ungleich dem gelesenen Symbol des Eingabebandes ist, akzeptiert A das Eingabewort w = x--#y. A akzeptiert w auch, wenn < lyl ((qaccop, N, r N) 6(p#, c,N) fiir alle c E {0, 1} in Fig. 4.12) oder wenn > lyl (~(~b, $, d) {(qacc~pt, N, d, N)} fiir alle b E {0, 1}, d E {a, r in Fig. 4.12). Die Strategie des nichtdeterministischen Ratens und nachfolgenden deterministischen Verifizieren der Korrektheit des Geratenen ist typisch fiir nichtdeterministische Berechnungen. 12 Ein anderes Beispiel ist das Akzeptieren der Sprache
Lquad - {a~21 ~ E IN} 12Wie stark man dadurch den Nichtdeterminismus charakterisieren kann, erfahren wir in Kapitel 6.
4.4 Nichtdeterministische Turingmaschinen
151
r162162 0,r ~ R,r 1,r ~ R,r
1,r ~ R,r 0,r ~ R,r
T
$ r ~ N,r
$, r --+ L,r
I, r --+ L,r
#,r
L ,N
r r --+ R, r R
1, u ~ R , a , R / 0, u ~ R , a , R 0, u ~ R,a,N
~ ( 1, a --~ R,a,N 0, a --~ R,a,N
~
~
~
~ , a ~ R,u,L
1, a ~ R,u,L 0, a --~ R,u,L
1, r ---~N, ~, N~.... $,a ~ N,a,N $, r --+ N, r Fig. 4.12
~
~
/
1, u ~ R,a,N
~ , u ---~R,N a, ~
( ~ ~
(
~
~
1, a --~ R,u,L 0, a --~ R,u,L
~ , a ~ R,u,L
1, a ~ R,u,L 0, a ~ R,u,L
0,r ~ N,C,N 1, r --+ N,r
/
1, a --~ R, a, N 0, a ~ R,a,N
o,r ~ N,r $, a --+ N,r
152
4 Turingmaschinen
yon einer nichtdeterministischen 2-Band-TM B. B kann zuerst fiir jede Eingabe w eine Zahl n raten (n kann durch die Positionen der KSpfe auf den ArbeitsbS~ndern gespeichert werden) und dann Iwl = n 2 iiberpriifen. Aufgabe 4.18. Beschreiben Sie die Berechnungsstrategie einer nichtdeterministischen 2Band-TM, die Lquad akzeptiert und implementieren Sie ihre Strategie in der Form eines Diagramms. Die wichtigste Frage ist nun, ob die nichtdeterministischen Turingmaschinen Sprachen akzeptieren, die man mit (deterministischen) Turingmaschinen nicht akzeptieren kann. ]~hnlich wie bei endlichen A u t o m a t e n ist die Antwort auf diese Frage negativ, und die Simulationsstrategie basiert auf der Breitensuche in den Berechnungsbgumen der nichtdeterministischen TM. D e f i n i t i o n 4.4. Sei M = (Q, E, F, 6, q0, qaccept, qreject) sine NTM und sei x sin Wort iiber dem Eingabealphabet E von M. Ein B e r e c h n u n g s b a u m TM, x y o n M a u f x ist ein (potentiell unendlicher) gerichteter Baum mit einer Wurzel, der wie folgt definiert wird.
(/) (ii)
Jeder Knoten von TM,x ist mit einer Konfiguration beschriftet. Die Wurzel ist der einzige Knoten von TM,x rnit dern Eingrad 0 und ist rnit der Ausgangskonfiguration qoCx beschriftet. Jeder Knoten des Baurnes, d e r m i t einer Konfiguration C beschriftet ist, hat genauso viele SShne wie C Nachfolgekonfigurationen hat, und diese SShne sind rnit diesen Nachfolgekonfigurationen von C markiert.
Die Definition von Berechnungsbgumen kann man natiirlich deterministische Mehrband-Turingmaschine verwenden.
auch fiir nicht-
Aufgabe 4.19. Zeichnen Sie die Berechnungsb~ume der nichtdeterministischen l-BandTM aus Fig. 4.12 fiir die Eingaben 01~p01r und 01~p0. Es gibt zwei wesentliche Unterschiede zwischen den BerechnungsbS~umen eines NEA und einer NTM. Die Berechnungsbgume von nichtdeterministischen endlichen A u t o m a t e n sind immer endlich, was bei nichtdeterministischen Turingmaschinen nicht immer der Fall sein muss. Zweitens miissen die Konfigurationen in der gleichen Entfernung zur Wurzel eines Berechnungsbaumes T~,x einer NTM M auf x keine Ahnlichkeiten haben und deshalb kSnnen im Unterschied zu nichtdeterministischen endlichen A u t o m a t e n die Positionen der KSpfe auf dem Eingabeband unterschiedlich sein. S a t z 4.2. Sei M sine NTM. Dann existiert sine TM A, so dass
4.4 Nichtdeterministische Turingmaschinen
153
L ( M ) = L(A), und falls M keine unendlichen Berechnungen auf WSrtern aus (L(M)) C hat, dann hiilt A immer. Beweis. Nach Lemma 4.2 geniigt es, eine 2-Band TM A mit den EigenschaRen (i) und (ii) zu konstruieren. Wir beschrS~nken uns auf eine Beschreibung der Arbeit von A und verzichten auf die formale Konstruktion. Die Strategie von A heit3t Breitensuche in den Berechnungsbgumen von M. Eingabe: ein Wort w Phase 1: A kopiert die Anfangskonfiguration qoCw auf das erste Arbeitsband. Phase 2: A iiberprtift, ob das erste Band eine akzeptierende Konfiguration enthglt. Falls ja, hglt A und akzeptiert w. Sonst setzt A die Berechnung mit Phase 3 fort. Phase 3: A schreibt alle Nachfolgekonfigurationen der Konfigurationen aus dem ersten Arbeitsband auf das zweite Arbeitsband (man beachte, dass eine NTM nur endlich viele Aktionen fiir ein gegebenes Argument zur Wahl hat und A somit immer alle MSglichkeiten realisieren kann). Falls es keine Nachfolgekonfigurationen gibt (das zweite Arbeitband leer bleibt), hS~lt A i m Zustand qreject. Phase 4: A 15scht den Inhalt des ersten Arbeitsbandes und kopiert den Inhalt des zweiten Arbeitsbandes auf das erste. Danach 15scht A den Inhalt des zweiten Bandes und fS~hrt mit Phase 2 fort. Wir bemerken, dass nach d e m / - t e n Durchlauf der Phasen 3 und 4 das erste Arbeitsband alle Konfigurationen des Berechnungsbaumes TM,w mit der Entfernung i von der Wurzel (alle in i Schritten erreichbaren Konfigurationen) enthS~lt. Falls w E L ( M ) , dann existiert eine akzeptierende Berechnung von M auf w von einer L~nge j ftir ein j E IN, und somit wird w nach j Durchlgufen der Phasen 3 und 4 in der Phase 2 akzeptiert. Falls w ~ L ( M ) , wird w bei A nicht akzeptiert. Falls TM,x endlich ist, hS~lt A i m Zustand qreject[-1 A u f g a b e 4.20. Sei A die NTM aus Fig. 4.13. (i) Geben Sic der ersten sechs Ebenen (alle Konfigurationen nach hSchstens fiinf Berech-
nungsschritten) der Berechnungsbaume TA(X) far x = 01 und mr x = 0010 an. (ii) Bestimmen Sie die Sprache
L(A).
154
4 Turingmaschinen r
0 -+ 0, R r R.~@ ~ ( q ~ , 2 1 --+ 1,L
r
r
@
0 --+ 0, N 1--+ 1, N
0 --+ 0, R (
1,N
Q
0 -+ 0, N 1-+ 1, N @ . ~ !L
1-+1
Fig. 4.13
4.5
Kodierung von Turingmaschinen
Jedes Programm hat eine bin~re Darstellung in Form des Maschinencodes. Fiir die Transformation eines Programms, das fiber dem Alphabet ETastatur entsprechend der Syntax der Programmiersprache gegeben ist, in den Maschinencode sorgen Ubersetzer (Compiler). Das Ziel dieses Kapitels ist, eine einfache binSze Kodierung von Turingmaschinen zu entwickeln. Wir beginnen zun~chst damit, dass wir eine Kodierung von Turingmaschinen fiber {0, 1, r entwickeln. Sei M = (Q, E, F, ~, q0, qaccept, qreject) eine TM, wobei Q = {q0~ql~...~qm~qaccept~qreject} u n d P = { A I ~ A 2 ~ . . . ~Ar}.
Wir definieren zuerst die Kodierung der einzelnen Symbole wie folgt: Code(qi)
-
10i+11 fiir i - 0, 1 , . . . , m ,
Code(qaccept)
-
10"~+21, 10"~+31, 110Jll fiir j 1110111, 11102111, 11103111.
Code(qreject) Code(Aj) Code(N) = Code(R)Code(L)-
1,...,r,
Diese Kodierung von Symbolen nutzen wir zu folgender Darstellung einzelner Transitionen. Code(6(p, A1) : (q, A,~, c~))
4.5 Kodierung von Turingmaschinen
155
fi]r jede Transition 5(p, Al) = (q, A,~, c~), p E {q0, q l , . . . , qm}, q E Q, l, ~7t E { 1 , . . . ,r}, c~ E {N, L, R}. Die Kodierung der Turingmaschine M gibt zuerst die globalen D a t e n - die Anzahl der Zustande (IQI) und die a n z a h l der Symbole aus dem a r b e i t s a l p h a b e t (Irl). Danach folgt die Liste aller Transitionen. Daher Code(M) = #0"~+3#0~##Code(
TfaTtsitioTt1)#COde( Transition2)#... i-~ I,R -
v\ a --~ a,N \
-
/~
0 -~ O,R
(
o -~ o,R
/ / r --~ r --~ u,L
b --~ b,N
r
a~
Fig. 4.14 Aufgabe 4.21. Sei M die TM aus Fig. 4.14. (i) Geben Sie Code(M) von M an. Gliedern Sie iibersichtlich den Code mittels Kommentaren. (ii) Geben Sie die Sprache L(M) an. (iii) Ist L(M) regular oder nicht? Beweisen Sie Ihre Behauptung. U m eine Kodierung fiber Ebool zu erhalten, benutzen wir folgenden Homomorphismus h : {0, 1, # } * --~ (Ebool)*: h ( # ) = Ol,
h(o) = oo,
....
= 11.
D e f i n i t i o n 4.5. Fiir jede Turingmaschine M wird Kod(M)
die K o d i e r u n g
= h(Code(M))
d e r T M M genannt.
KodTM
: (Kod(M) I Mist
eine TM}
bezeichnet die Menge der Kodierungen aller Turingmaschinen.
156
4 Turingmaschinen
Es ist klar, dass die Abbildung von M auf Kod(M) injektiv ist und daher determiniert Kod(M) eindeutig eine Turingmaschine. Aufgabe 4 . 2 2 . Beschreiben Sie ein Programm, dass jede formale Beschreibung einer TM M nach Definition 4.5 in Code(M) umwandelt. Aufgabe 4.23. Beschreiben Sie ein Programm, das fiir jedes Wort x c {0, 1}* entscheidet, ob x = Kod(M) fiir eine TM M. Im Folgenden bezeichnet Aver ein Programm (eine TM), das fiir jedes x E (Ebool)* entscheidet, ob x die Kodierung einer TM ist. Die wichtigste Beobachtung ist, dass die Festlegung auf eine Kodierung Kod(M) von Turingmaschinen eine lineare Ordnung auf den Turingmaschinen wie folgt definiert. D e f i n i t i o n 4.6. Sei x E die K o d i e r u n g d e r / - t e n
(Y]bool)*. /b~F jedes
i E I N - {0} sagen wir, dass x
T M ist, falls
x = Kod(M) fiir eine TM M und die Menge {y E (Eboo])* I Y ist vor x in kanonischer Ordnung} enth~lt genau i - 1 WSrter, die Kodierungen von Turingmaschinen sind.
Falls x = Kod(M) die Kodierung der i-ten TM ist, dann ist M die i - t e T u r i n g m a s c h i n e M i . Die Zahl i ist die O r d n u n g d e r T M M i . Wir beobachten, dass es nicht schwer ist, fiir eine gegebene Zahl i die Kodierung Kod(Mi) d e r / - t e n Turing Maschine zu berechnen. Sei Gen eine Funktion aus I N - {0} nach (2bool)* definiert durch G e n ( i ) = Kod(M~). L e m m a 4.3. Die Funktion Gen ist total rekursiv, d.h., es existiert eine Turingmaschine (Programm) Aar die fiir eine gegebene Zahl i die Kodierung Kod (Mi) berechnet.
Beweis. Ein Programm, das Gen berechnet, kann wie folgt arbeiten. Eingabe: ein i E I N - {0} Schritt 1: x := 1 {x ist ein Wort fiber (Ebool)*} I:=0 Schritt 2: while I < i do b e g i n benutze Aver um zu entscheiden, ob x E KodTM; if x C KodTM
I:=I+1;
then begin
4.6 Zusammenfassung
157
y:zX
end; x :=Nachfolger yon x in kanonischer 0 r d n u n g auf end Schritt 3:
(}-]bool)*
output(y).
Schreiben Sie ein Programm, das fiir eine gegebene Kodierung Kod(M) C (Ebool)* die Ordnung der TM M berechnet.
Aufgabe 4.24.
4.6
Zusammenfassung
Die Turingmaschine ist ein abstraktes Rechnermodell mit der BerechnungsstS~rke realer Rechner. Die Komponenten einer TM sind ein unendliches Band, eine endliche Kontrolle und ein Lese-/Schreibkopf. Das Band ist aufgeteilt in Felder. Jedes Feld enth~lt ein Symbol des Arbeitsalphabets (ein Computerwort). Das Band wird als das Eingabemedium der TM sowie als der Speicher der TM benutzt. Die elementaren Aktionen (Transitionen) einer TM hgngen vom aktuellen Zustand der TM und dem Symbol ab, das der Kopf auf dem Band liest. In einer Aktion darf die TM den Zustand 5mdern, das gelesene Symbol durch ein neues ersetzen und den Kopf um ein Feld auf dem Band bewegen. Eine Berechnung entsteht durch eine Folge von elementaren Aktionen. Eine TM akzeptiert (verwirft) ein Wort x, wenn sie in einem Sonderzustand qaccept (qreject) die Berechnung auf x beendet. Ein Wort x wird vonder TM nicht akzeptiert, wenn x verworfen wird oder wenn die Berechnung der TM auf x unendlich ist. Die von einer TM M akzeptierte Sprache L(M) ist die Menge aller W6rter, die M akzeptiert. Eine Sprache L heif3t rekursiv aufz~hlbar, falls L = L(M) fiir eine TM M. Eine Sprache L heifit rekursiv (oder entscheidbar), falls L = L(M) fiir eine TM M, die keine unendliche Berechnung hat (d.h. alle Berechnungen enden entweder in qaccept oder in qreject). Das Modell der Mehrband-TM hat statt einem unendlichen Band (das f/Jr die Eingabe sowie fiir die Speicherung yon Daten bei einer TM dient) ein endliches Band, das nur die Eingabe enthglt, und eine endliche Anzahl von unendlichen ArbeitsbSmdern. Die Modelle der Turingmaschinen und MehrbandTuringmaschinen sind 5~quivalent in dem Sinne, dass jede TM durch eine MTM simuliert werden kann und umgekehrt. Diese Turingmaschinenmodelle sind ~quivalent zu Programmen in jeder gelgufigen Programmiersprache.
158
4 Turingmaschinen
Die Church'sche These besagt, dass eine Turingmaschine, die keine unendliche Berechnung ausfiihrt, die Formalisierung des intuitiven Begriffs ,,Algorithmus" ist. Daher sind alle Probleme, die man mit Hilfe yon Turingmaschinen 16sen kann, algorithmisch (automatisch) 16sbar und alle Probleme, die auf Turingmaschinen nicht 16sbar sind, sind algorithmisch (automatisch) unl6sbar. Die Church'sche These ist ein Axiom der Informatik, daher kann sie nie bewiesen werden. Es besteht nur die M6glichkeit, sie zu widerlegen. Auf die gleiche Art wie bei endlichen Automaten kann man Turingmaschinen zu nichtdeterministischen Turingmaschinen verallgemeinern. Eine nichtdeterministische TM kann mehrere Berechnungen auf einer Eingabe haben. Die Eingabe wird akzeptiert, falls mindestens eine dieser Berechnungen in qaccept endet. Durch eine Breitensuche der Berechnungsb~tume (dies entspricht der Potenzmengenkonstruktion bei endlichen Automaten) k6nnen nichtdeterministische Turingmaschinen durch deterministische Turingmaschinen simuliert werden. Wie Programme k6nnen auch Turingmaschinen eindeutig als W6rter fiber Ebool dargestellt werden. Weil die W6rter fiber Ebool durch die kanonische Ordnung linear geordnet sind, gewinnt man durch diese Darstellung eine lineare Ordnung fiir die Menge der Turingmaschinen. Fiir eine gegebene Zahl i kann man die Kodierung der/-ten TM berechnen. Ebenfalls kann man zu einer gegebenen TM ihre Ordnung berechnen. Die Einfiihrung eines formalen Modells von Algorithmen war der erste Schritt, der zur Griindung der Theoretischen Informatik fiihrte. Diesen Fortschritt hat Kurt G6del mit seiner grundlegenden Arbeit [G6d 31] initiiert. In dieser Arbeit wurde erstmals bewiesen, dass es mathematische Probleme gibt, die man nicht ,,automatisch" 16sen kann. Dies motivierte Church [Chu 36], Kleene [Kle 36], Post [Pos 36] und Turing [Tur 36] zum Entwurf formaler Modelle des algorithmischen Rechnens. Alle diese Modelle und auch viele andere, die spS~ter definiert wurden, sind ~tquivalent. Die Folge dieser Aquivalenzen ist die Church'sche These. Das Modell der Turingmaschine aus [Tur 36] wurde zum Basismodell des Rechners in der Theoretischen Informatik, obwohl die urspr/inglichen Gedanken yon Turing nicht gerade mit einem Rechner verkniipft waren. Turing wollte die Verfahren (Algorithmen) zur Symbolmanipulation prS~zise formalisieren. Statt an einen Rechner dachte er an einen Menschen (menschlichen Rechner), der ein Rechenverfahren mit einem Stift auf einem Blatt Papier ausfiihrt. Das eindimensionale Band als Speichermedium ist dadurch motiviert, dass man auf einem Blatt zeilenweise schreibt. Die endlich vielen Symbole, die man benutzen darf, bestimmen dann das Arbeitsalphabet. Um das alles systematisch zu machen, teilte Turing das Bands in Felder
4.6 Zusammenfassung
159
ein, wobei jedes Feld g e n a u ein S y m b o l b e i n h a l t e n durfte. Der I n h a l t des ganzen B a n d e s m u s s t e i m m e r endlich sein, a b e r die Lgnge des B a n d e s (die Gr6fie des Papiers) war u n b e s c h r ~ n k t . T u r i n g setzte voraus, dass der R e c h n e r (das menschliche Gehirn) endlich grog ist, u n d sich somit nur in einem yon endlich vielen m6glichen ZustSmde befinden kann. D a h e r s t a m m t die endliche Zus t a n d s m e n g e fiir das Modell der T u r i n g m a s c h i n e . Aus einem 5~hnlichen G r u n d setzte T u r i n g voraus, dass eine A k t i o n eines R e c h n e r s in einem Augenblick nur d u r c h einen Anteil des B a n d e s yon beschrS~nkter ( k o n s t a n t e r ) Gr6fie beeinflusst w e r d e n kann. Weil m a n jede solche A k t i o n d u r c h eine Folge yon e l e m e n t a r e n O p e r a t i o n e n , bei d e n e n nur ein S y m b o l des B a n d e s b e t r a c h t e t wird, simulieren kann, fiihrte T u r i n g die F e s t l e g u n g der B e r e c h n u n g s s c h r i t t e d u r c h die in A b s c h n i t t 4.2 vorgestellte T r a n s i t i o n s f u n k t i o n ein. Die M e h r b a n d - T u r i n g m a s c h i n e w u r d e yon H a r t m a n i s u n d S t e a r n s [HS 65] eingefiihrt. M e h r b a n d - T u r i n g m a s c h i n e n w u r d e n z u m B a s i s m o d e l l fiir B e r e c h n u n gen in der KomplexitS~tstheorie. Eine hinreii3ende Diskussion zu d e m T h e m a dieses K a p i t e l s k a n n m a n bei Harel [Har 93] finden.
Kontrollaufgaben 1. Beschreiben Sie das Modell der Turingmaschine. Was sind die wesentlichen Unterschiede zu einem endlichen Automaten? 2. Definieren Sie die Begriffe ,,Konfiguration", ,,Berechnungssschritt" und ,,Berechnung" einer Turingmaschine. Wie definiert man die von einer TM M akzeptierte Sprache L(M)? 3. Was sind rekursive Sprachen und was sind rekursiv aufzS~hlbare Sprachen? 4. Entwerfen Sie eine Turingmaschine fiir die Sprache {a~b~c ~ In c IN} und stellen sie die TM in der Form eines Diagramms dar. 5. Was wiirde sich an der Berechnungssttirke der Turingmaschine 5mdern, wenn wit mehrere akzeptierende Zust~inde erlauben? 6. ErklS~renSie das Konzept von Mehrband-Turingmaschinen. Warum fiihren wit dieses Konzept ein? 7. Wie definiert man die _~quivalenz von zwei Maschinen und die _~quivalenz von zwei Maschinenmodellen? 8. Wie wiirden Sie vorgehen, um die Aquivalenz zwischen Java und Turingmaschinen zu zeigen? 9. Was sagt die Church'sche These aus? Warum betrachten wit die Church'sche These als ein Axiom? Warum glauben wir an dieses Axiom? 10. Erkl~iren Sie das Konzept von nichtdeterministischen Turingmaschinen! Wieviele unterschiedliche Berechnungen kann eine NTM auf einer Eingabe der L~inge n haben? 11. Geben Sie ein Beispiel einer Sprache an, fiir die es einfacher ist, eine NTM anstatt einer TM zu entwerfen. 12. Wie kann man zu jeder NTM ein ~iquivalente TM bauen?
160 13.
14. 15.
4 Turingmaschinen Wie kann man Turingmaschinen durch W/Srter fiber {0, 1} kodieren? Entwerfen Sie eine eigene Kodierung fiir Turingmaschinen und schreiben Sie ein Programm, das aus Ihrer Kodierung eine konkrete TM erstellt. Wie kann man Turingmaschinen linear ordnen? Kann man ffir eine gegebene natfirliche Zahl i algorithmisch die i-te TM konstruieren? Kann man ffir eine gegebene TM ihre Ordnung algorithmisch bestimmen?
H u n d e r t e von Talenten zeigen die Gr6fie ihrer Epoche, aber nur ein Genie ahnt, was ihr fehlt.
5
j
Berechenbarkeit 3(..
5.1 Zielsetzung Die Theorie der Berechenbarkeit ist die erste Theorie, die in der Informatik entstanden ist. Sie entwickelte Methoden zur Klassifizierung von Problemen in algorithmisch 16sbare und algorithmisch unl6sbare. Dies bedeutet, dass diese Theorie uns Techniken zum Beweisen der Nichtexistenz von Algorithmen zur L6sung konkreter Probleme liefert. Das Erlernen dieser Techniken ist das Hauptziel dieses Kapitels. Wir beschrgnken uns in diesem Kapitel auf Entscheidungsprobleme. Unser erstes Ziel ist es zu zeigen, dass es Sprachen gibt, die von keiner Turingmaschine akzeptiert werden. Dies ist einfach einzusehen, wenn man begreift, dass es viel mehr Sprachen gibt als Turingmaschinen. Aber von beiden gibt es unendlich vide, d.h. wir miissen lernen, wie man beweisen kann, dass eine unendliche Zahl gr6fier ist als eine andere. Dazu prgsentieren wir im Abschnitt 5.2 die Diagonalisierungstechnik aus der Mengenlehre. Die Methode der Diagonalisierung erm6glicht es uns, auch ftir eine konkrete Sprache, Diagonalsprache genannt, ihre Nichtzugeh6rigkeit zu ERE zu zeigen. Unser zweites Ziel ist es, die Methode der Reduktion vorzustellen. Diese Methode erm6glicht, ausgehend von einer nichtentscheidbaren Sprache die Unentscheidbarkeit weiterer Sprachen zu beweisen, und stellt das Hauptinstrument zur Klassifizierung der Sprachen beziiglich ihrer Entscheidbarkeit dar. Wir wenden diese Methode an, um die Unentscheidbarkeit einiger Entscheidungsprobleme fiber Turingmaschinen (Programmen) in Abschnitt 5.3 zu beweisen. Dabei lernen wir, dass die praktisch relevante Aufgabe der Korrektheitsiiberpriifung (des Testens) von Programmen ein algorithmisch unl6sbares Problem darstellt. In Abschnitt 5.4 stellen wir den Satz von Rice vor, der besagt, dass fast alle nicht-trivialen Probleme fiber Turingmaschinen (Pro-
162
5 Berechenbarkeit
grammen) unentscheidbar sind. In Abschnitt 5.5 zeigen wir, dass man die Methode der Reduktion auch zum Beweis der Unentscheidbarkeit anderer als nur turingmaschinen-bezogener Probleme benutzen kann. Als ein Beispiel beweisen wir die Unentscheidbarkeit eines Entscheidungsproblems fiber einer Art von Dominospiel, das als Post'sches Korrespondenzproblem bezeichnet wird. Im Abschnitt 5.6 zeigen wir eine andere Methode zum Beweisen der algorithmischen Unl6sbarkeit konkreter Probleme. Diese Methode basiert auf der Kolmogorov-KomplexitS~t und kann als eine Alternative zur Diagonalisierungstechnik in dem Sinne gesehen werden, dass man mittels der KolmogorovKomplexitS~t die Unl6sbarkeit eines konkreten Problems beweisen und dadurch den Startpunkt fiir die Anwendung der Reduktionsmethode erhalten kann.
5.2
Die Methode der Diagonalisierung
Unser erstes Ziel ist es zu zeigen, dass es nicht rekursiv aufzS~hlbare Sprachen gibt. Dazu wollen wir folgendes quantitative Argument benutzen. Wir wollen zeigen, dass
die Miichtigkeit IKodTM[ der Menge aller Turingmaschinen kleiner als die M6chtigkeit aller Sprachen iiber Ebool ist. Dabei bezeichnet KodTM die Menge der binS~ren Kodierungen aller Turingmaschinen wie im Abschnitt 4.5 definiert. Die Anzahl aller Turingmaschinen ist unendlich und kann von oben durch I(Ebool)*l beschrS~nkt werden, weil KodTM C_ (Ebool)*. Die KardinalitS~t aller Sprachen fiber Ebool ist 79((Ebool)*)l, was offensichtlich auch eine unendliche Zahl ist. Um zu beweisen, dass
I(Y]bool)*l < I~]')((~bool)*))l, ben6tigen wir eine Methode zum Vergleich der Gr6fien von unendlichen Zahlen (yon MS~chtigkeiten unendlicher Mengen). Das folgende Konzept von Cantor zum Vergleich der M/ichtigkeiten von zwei (unendlichen) Mengen ber/ihrt die philosophischen und axiomatischen Wurzeln der Mathematik und ist die Grundlage der modernen Mengenlehre. Die Idee des Konzeptes yon Cantor ist wie folgt. Ein Hirte hat ein Herde weifier Schafe und eine Herde schwarzer Schafe. Er will feststellen, welche der Herden zahlreicher ist, also ob er mehr schwarze als weifie Schafe hat oder umgekehrt.
5.2 Die Methode der Diagonalisierung
163
Das P r o b l e m ist, er kann nur bis 5 zS~hlen, was nicht ausreichend ist. Was kann er tun? Er n i m m t ein weifies uns ein schwarzes Schaf u n d fiihrt dieses P a a r auf eine andere Wiese Dies macht er so lange, bis eine der beiden urspriingliche Herden aufgel6st ist. Die Sorte, deren Herde noch nicht ausgesch6pft ist, ist zahlreicher. G e n a u diese Idee setzen wir in folgender Definition urn. D e f i n i t i o n 5.1. Seien A und t3 zwei Mengen. W i t sagen, dass
IAI ~ IBI, falls eine injektive Funktion f von A nach t3 existiert. Wir sagen, dass
IAI = IBI, fall~ IAI ~ IBI ~ d IBI t3). W i t sagen, dass
~ IAI
(d.h. ~ existiert eine Bijektion I zwischen A und
IAI < IBI, falls IA[ < IB[ und es existiert keine injektive Abbildung yon B nach A. Zuerst b e o b a c h t e n wir, dass fiir endliche Mengen Definition 5.1 exakt mit unserem Verstgndnis fiir den Vergleich der M~chtigkeiten von A und B iibereins t i m m t (Fig. 5.1). W e n n fiir alle x, y E A mit x # y auch f (x) # f (y) gilt, d a n n muss B mindestens so viele Elemente wie A haben. W e n n { f ( x ) I x E A} = B, d a n n ist f eine Bijektion und IAI = IBI.
A
B
Fig. 5.1 Nach Definition 5.1 reicht es daher aus zu beweisen, dass keine injektive Abbildung v o n d e r Menge aller Sprachen fiber Ebool in die Menge aller Turingma1Der Satz von Cantor und Bernstein sagt, dass aus der Existenz von injektiven Abbildungen F1 : A ~ B und F2 : B ~ A die Existenz einer Bijektion zwischen A und B folgt.
164
5 Berechenbarkeit
schinen existiert. Das heifit, es existiert keine Abbildung y o n ~]P((}-]bool)*) n a c h KodTM, die jeder Sprache L eine TM M mit L ( M ) - L zuordnet. 2 A u f g a b e 5.1. Seien A, B und C Mengen. Beweisen Sie, dass IB _< IAI und C I _< B die Relation C _< A impliziert. A u f g a b e 5.2. Seien A und B Mengen. Beweisen Sie, dass A c_ B die Ungleichung IA _< B I impliziert.
Definition 5.1 hat aber auch ihre paradoxe SeRe. Sei ]Ngerad e Nach Definition 5.1 gilt
{2ili e
weil die Funktion f : IN ~ ]Ngerad e m i t f ( i ) = 2i fiir alle i E IN offensichtlich eine Bijektion ist. So haben IN und ]Ngerad e gleiche M~chtigkeiten, obwohl ]Ngerad e eine echte Teilmenge yon IN ist. Dies ist ein Paradoxon, das beim Vergleich der Mgchtigkeiten von endlichen Mengen nicht auftreten kann. Dieses Paradoxon widerspricht der Erfahrung aus der endlichen Welt, wo das Ganze immer gr6fier ist als eines seiner Teile. Dies zeigt aber nicht, dass das Cantor'sche Konzept zum Vergleich der M~chtigkeit von Mengen falsch ist, sondern nur, dass die Welt unendlicher Mengen und Zahlen Gesetzen unterliegen k6nnte, die den Erfahrungen aus der Behandlung endlicher Objekte nicht entsprechen. Der Schluss IINI = IINgeradel scheint in der ,,unendlichen Welt" richtig zu sein, weil die Bijektion f ( i ) = 2i die Elemente aus IN und INgerade paart, und so erscheinen beide Mengen gleich m~chtig zu sein. Vielleicht ist es wichtig, an dieser Stelle zu bemerken, dass dieses Konzept auf der axiomatischen Ebene liegt. Daher kann man nicht beweisen, dass dies die einzige sinnvolle (korrekte) M6glichkeit zum Vergleich der MSochtigkeit unendlicher Mengen ist. Definition 5.1 ist nur ein Versuch, das intuitive Verstgndnis der Mathematiker fiir den Mgchtigkeitsvergleich zu formalisieren. Es ist nicht auszuschliefien, dass jemand noch eine andere, geeignetere Formalisierung a findet. Ftir uns ist aber nur wichtig, dass das Konzept aus Definition 5.1 dazu geeignet ist, die Existenz yon nicht rekursiv aufzS~hlbaren Sprachen zu beweisen. A u f g a b e 5.3. Das Hilbert'sche Hotel besteht aus unendlich vielen Zimmern, die mit den natfirliche Zahlen 1, 2, 3 , . . . nummeriert sind. Das Hotel ist besetzt, also in jedem Zimmer verweilt ein Gast. Jetzt kommt ein neuer Gast und fragt, ob er ein Zimmer bekommen kann. Der Portier sagt locker ,,Kein Problem". Er 15~sst ffir alle i = 1, 2, 3 , . . . den Gast aus dem Zimmer i in das Zimmer i + 1 umziehen und gibt Zimmer 1 dem neuen Gast. 2Weil jede solche Abbildung injektiv sein muss. aDies ghnelt unserer Diskussion fiber die Church'sche These.
5.2 Die Methode der Diagonalisierung
165
(i) Gibt es auch ein L6sung, wenn der Gast unbedingt das Zimmer 7 haben wollte? (ii) Es kommen 32 neue G~ste. Was macht der Portier jetzt? (iii) Es kommt ein voll besetzter, unendlich grof3er Bus an. Die Pl~tze sind mit positiven ganzen Zahlen 1, 2, 3,... nummeriert. Kann der Portier alle unterbringen? Im Folgenden b e t r a c h t e n wir IN als die ,,kleinste" unendliche Menge u n d stellen die Frage, welche unendlichen Mengen die gleiche M~chtigkeit wie IN haben, u n d ob eine unendliche Menge A mit IA > existiert. D e f i n i t i o n 5.2. Eine Menge A heiflt a b z ~ i h l b a r 4, falls A endlich ist oder
IAI-
Die intuitive B e d e u t u n g der Abz~hlbarkeit einer Menge A ist, dass m a n die Elemente aus A als erstes, zweites, drittes, . . . n u m m e r i e r e n kann. Dies ist offensichtlich, weil jede injektive F u n k t i o n f : A ~ IN eine lineare O r d n u n g auf A b e s t i m m t , die eine N u m m e r i e r u n g 5 ist, (ein O b j e k t a E A ist vor d e m O b j e k t b E A 4=~ f(a) < f(b)). Deswegen iiberrascht es nicht, dass (Ebool)* u n d K o d T M abz~thlbar sind. Lemma
5.1. Sei E ein beliebiges Alphabet. Dann ist E* abziihlbar.
Beweis. Sei E = { a l , . . . , am} eine beliebige endliche Menge. M a n definiere eine lineare O r d n u n g al < a2 < --- < am auf E. Diese lineare O r d n u n g b e s t i m m t die kanonische O r d n u n g auf E* (vgl. Definition 2.7). Die kanonische O r d n u n g auf E* ist eine N u m m e r i e r u n g u n d b e s t i m m t daher eine injektive F u n k t i o n yon E* nach IN. D S a t z 5.1. Die Menge K o d T M der Turingmaschinenkodierungen ist abziihlbar.
Beweis.
Satz 5.1 ist eine direkte Folge von L e m m a 5.1 u n d der Tatsache K o d T M C_ (Ebool)*. [-1 Aufgabe 5.4. Geben Sie explizit die Nummerierung yon (Ebool)* an, die der kanonischen Ordnung auf (Ebool)* entspricht. 4Eine ~iquivalente Definition der Abz~hlbarkeit einer Menge A ist folgende. A ist abz~hlbar 4=~ es existiert eine injektive Funktion f : A ---, IN Dies beseutet, dass keine unendliche Menge B mit IBI < IINI existiert. Auf den Beweis dieses Fakts verzichten wit hier. SEine Nummerierung auf einer Menge A determiniert eine lineare Ordnung, in der zwischen zwei beliebigen Elementen h6chstens endlich viele Elemente aus A liegen. Umgekehrt ist eine lineare Ordnung mit dieser Eigenschaft eine Nummerierung.
5 Berechenbarkeit
166
Aufgabe 5.5. Beweisen Sie, dass die Menge 77 der ganzen Zahlen abz~hlbar ist. Aufgabe 5.6. Sei A eine abz~hlbare Menge und a ein Element mit a ~ A. Beweisen Sie, dass A U {a} auch abz~hlbar ist. Aufgabe 5.7. Seien A und B zwei abz~ihlbare Mengen. Beweisen Sie, dass A OB abz~hlbar ist. Das nS~chste Resultat kann ein bisschen iiberraschend wirken. Wir beweisen, dass die Mgchtigkeit der Menge Q+ der positiven rationalen Zahlen der Mgchtigkeit yon [IN[ entspricht. Dabei weiss man, dass die rationalen Zahlen sehr dicht nebeneinander auf der reellen Achse liegen (zwischen beliebigen rationalen Zahlen a und b m i t a < b liegen unendlich viele rationale Zahlen c mit der Eigenschaft a < c < b), und dass die nattirlichen Zahlen auf der reellen Achse den Abstand 1 besitzen. Weil man die positiven rationalen Zahlen als Pq mit p, q E IN - {0} darstellen kann, w/irde man erwarten, dass IQ+I ungefS~hr IIN x IN I ist, was nach ,,unendlich real unendlich" aussieht. In der endlichen Welt wtirde man fiber den Vergleich von n 2 mit n sprechen. Trotzdem ist IQ+I- I~1, w~il die Elemente aus IN x IN sich nummerieren lassen. Die folgende Methode zur Nummerierung yon rationalen Zahlen ist einfach und elegant und findet auch Anwendung in der Theorie der Berechenbarkeit. 1
2
3
4
5
6
(1, 1) (2,1) (3, 1) (4,1) (5,1) (6,1)
(1, 2) (2,2) (3, 2) (4,2) (5, 2) (6,2)
(1, 3) (2,3) (3, 3) (4,3) (5, 3) (6,3)
(1,4) (2,4) (3, 4) (4,4) (5, 4) (6,4)
(1, 5) (2,5) (3, 5) (4,5) (5, 5) (6,5)
(1, 6) (2,6) (3, 6) (4,6) (5, 6) (6,6)
Fig. 5.2 L e m m a 5.2. ( I N - { 0 } ) x ( I N - { 0 } ) i s t abziihlbar. Beweis. Wir konstruieren eine unendliche Matrix M ~ • wie in Fig. 5.2. Die Matrix hat unendlich viele Zeilen und unendlich viele Spalten, die durch nattirliche Zahlen 1, 2, 3 , . . . nummeriert sind. An der Kreuzung d e r / - t e n Zeile und der j - t e n SpaRe befindet sich das Element (i, j) E ( I N - {0}) x ( I N - { 0 } ) . Es ist offensichtlich, dass M ~ x ~ alle Elemente aus ( I N - {0}) x ( I N - {0}) enthglt.
5.2 Die M e t h o d e der Diagonalisierung
167
Der Versuch, die Elemente aus ( I N - {0}) x ( I N - {0}) so zu ordnen, dass man mit den Elementen der ersten Zeile beginnt und danach die Elemente weiterer Zeilen nummeriert, muss scheitern, weil man wegen der Unendlichkeit der ersten Zeile hie zu der Nummerierung der zweiten Zeile gelangt. Eine passende M6glichkeit, die Elemente der Matrix M ~ • zu nummerieren, ist durch die Zick-Zack-Linie in Fig. 5.3 gegeben. Auf diese Weise nimmt man eine endliche Nebendiagonale nach der anderen, und es ist offensichtlich, dass jedes Element von M ~ • eine Nummer bekommt. Die resultierende Folge ist al = (1, 1), a2 = (2, 1), a3 = (1, 2), a4 = (3, 1), a5 = (2,2), a6 = (1, 3), a 7 : (4, 1), ....
1
2
3
4
5
6
..-
Fig. 5.3
Formal definiert man dabei die lineare Ordnung (a,b)<(c,d)<=>a+b
f((a,b)) - (a + b-1)2
+b,
(a+b=c+dundb
168
5 Berechenbarkeit
weil das Element (a, b) das b-te Element auf der ( a + b - 1)-sten Nebendiagonalen ist und die Anzahl der Elemente auf den ersten a + b - 2 Nebendiagonalen
a+b-2Ki (a+b-2).(l+a+b-2)2
(a + 1b )-2
i=1
ist. Es ist offensichtlich, dass f eine Bijektion ist.
1
2
3
4
5
6
...
Fig. 5.4 Aufgabe 5.8. Um die Abz/~hlbarkeit der Menge (IN- {0}) • (IN- {0}) zu beweisen, kann man auch die Nummerierung aus Fig. 5.4 verwenden. Bestimmen Sie die entsprechende injektive Abbildung yon (IN- {0})• (IN- {0})nach IN. Wie viele unterschiedliche injektive Abbildungen von (IN- {0}) x (IN- {0}) nach IN gibt es? S a t z 5.2. Q+ ist abziihlbar.
t?eweis. Sei h folgende Abbildung von Q+ nach ( I N - { 0 } ) x (IN-{0})" h ( ~ ) (p, q) fiir alle p, q mit dem gr6f3ten gemeinsamen Teller 1. Offensichtlich ist h injektiv. Weil ( I N - {0}) x ( I N - {0}) nach L e m m a 5.2 abz~thlbar ist, ist auch Q+ abzghlbar. D Aufgabe 5.9. In das voll besetzte undendliche Hilbert'sche Hotel kommen unendlich viele unendlich grof3e Busse. Die Busse haben Nummern 1, 2, 3, .... Alle Busse sind voll besetzt
5.2 Die Methode der Diagonalisierung
169
und die Plgtze in jedem Bus haben die N u m m e r n 1, 2, 3, .... K a n n der Pottier jetzt alle unterbringen? A u f g a b e 5.10. Beweisen Sie, dass IN • IN • IN abzghlbar ist. A u f g a b e 5.11. Seien A und B zwei abzghlbare Mengen. Beweisen Sie, dass A • B eine abzghlbare Menge ist.
Trotz ihrer Dichte auf der reellen Achse sind die positiven rationalen Zahlen abzS~hlbar. Nach der Aussage yon Aufgabe 5.11 ist auch (Q+)i f/Jr jedes i E I N {0} abz~hlbar. Man k6nnte denken, dass alle unendlichen Mengen abz~hlbar sind. Wir zeigen jetzt, dass die Menge IR der reellen Zahlen nicht abzS~hlbar ist. Dazu reicht es zu zeigen, dass die Menge [0, 1] der reellen Zahlen gr6fier gleich 0 und kleiner gleich 1 nicht abzghlbar ist. Also besitzt IR einen anderen, h6heren Typ von Unendlichkeit als IN und Q+. S a t z 5.3. [0, 1] ist nicht abziihlbar. Beweis. Wir miissen zeigen, dass keine injektive Funktion von [0, 1] nach I N - {0} existiert. Wir ffihren einen indirekten Beweis dieser Behauptung. Wir setzen voraus, dass [0, 1] abzghlbar ist und dass f eine injektive Abbildung von [0, 1] nach I N - {0} ist. Daher bestimmt f eine Nummerierung der rellen Zahlen aus [0, 1], die wir in Fig. 5.5 verdeutlichen k6nnen. Die i-te Zahl aus [0, 1] ist ai = O.ailai2aia... (d.h. f ( a i ) = i), wobei aij Ziffern aus {0, 1, 2 , . . . , 9} ffir j = 1 , 2 , . . . sind. f(x) 0.
~-]
a12
x C [0, 1] a13 a14
0.
a21
~a~
a23
0.
a31
a32
0.
a41
a42
a43
I a44 I
O.
all
ai2
ai3
ai4
[~
a24 a34
Fig. 5.5
Jetzt wenden wir die sogenannte D i a g o n a l i s i e r u n g s m e t h o d e an, um zu zeigen, dass in der Tabelle in Fig. 5.5 mindestens eine reelle Zahl aus [0, 1] fehlt, und daher f keine Nummerierung von [0, 1] ist. Die Auflistung der reellen
170
5 Berechenbarkeit
Zahlen in Fig. 5.5 kann man als unendliche Matrix M [aij]i=l,...,cc,j=l,...,cc interpretieren. 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 einer 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) aufz~hlbar ist. Um zu zeigen, dass es Probleme gibt, die algorithmisch nicht 15sbar sind, reicht es, die Nichtabzghlbarkeit der Menge aller Sprachen (Entscheidungsprobleme) fiber {0, 1} zu beweisen. Wir beweisen dies auf zwei unterschiedliche a r t e n . Zuerst zeigen wir I[0, 1]l _< I~-)((}-]~bool)*)l und dann konstruieren wir direkt mit der Diagonalisierungsmethode eine Sprache, die yon keiner Turingmaschine akzeptiert wird. S a t z 5.4. ~((}-]~bool)*) ist 7ticht abzahlbar. B e w e i s . Wir zeigen, IP((Ebool)*)l _> I[0,111. Jede reelle Zahl aus [0, 1] kann man binS~r wie folgt darstellen. Durch b = O . b l b 2 b 3 . . . mit bi E Ebod fiir i = 1, 2, 3 , . . . wird die Zahl (ND -
i=1
dargestellt. Wir benutzen diese Darstellung, um folgende Abbildung f aus [0, 1] in 79((Ebool) *) zu definieren. Fiir jede bin~tre Darstellung a = O . a l a 2 a 3 . . . einer reellen Zahl aus [0, 1] ist f (a) -
{a~, a2a3, a 4 a s a 6 , . . . , a ( ~ ) + ~ a ( ~ ) + 2 . . . a(n+~), . . .}.
Offensichtlich ist f ( a ) eine Sprache fiber Ebool, die genau ein Wort der LS~nge n fiir alle n E IN - {0} enthglt. Deswegen fiihrt jeder Unterschied in einer Ziffer zweier bingrer Darstellungen b und c zu f ( b ) # f ( c ) . Daher ist f injektiv und 7)((Ebool) *) nicht abzS~hlbar. D 6Man bemerke, dass 1.000 und 0.99wzwei unterschiedliche Darstellungen der gleichen Zahl 1 sind.
5.2 Die Methode
171
der Diagonalisierung
K o r o l l a r 5.1. IKodTM[< Z)((~boo~)*)[ und somit existieren unendlich vide nicht rekursiv abzShlbare Sprachen iiber 2bool. A u f g a b e 5.12. Beweisen Sie [0, 1]l -
P((Ebool)*) 9
Wir benutzen jetzt die Diagonalisierungsmethode, um eine konkrete nicht rekursiv abz/~hlbare Sprache zu konstruieren. Sei Wl, w2, w3, ... die kanonische Ordnung aller WSrter fiber Eboo~, und sei M1, M2, M3, ... die Folge aller Turingmaschinen. Wir definieren eine unendliche Boole'sche Matrix A
=
(Fig. 5.6) mit
[dij]i,j:l,...,oo
dij-
1r
Mi akzeptiert
Wj.
Damit bestimmt die i-te Zeile dildi2di3.., der Matrix A die Sprache
L(Mi) - { w j [ d i j - 1 fiir alle j E IN - {0}}.
Wl
M1
d~
W2
W3
999
Wi
d12
d13
9..
dli
d23
9..
d2~
di3
...
M2
d21
M3
d31
[d22[
d32
Mi
dil
di2
i
Fig. 5.6
i
I
Analog zum Beweis des Satzes 5.3, in dem wir eine reelle Zahl konstruieren, die nicht in der Nummerierung in Fig. 5.5 enthalten ist, konstruieren wir jetzt eine Sprache Ldiag, D i a g o n a l s p r a c h e genannt, die keiner der Sprachen L(Mi) entspricht. Wir definieren
Ldiag
{W E (}--]bool)* [ W - - W i fiir ein i E IN - {0} und Mi akzeptiert wi nicht} {w E (Ebool)* [ w -
S a t z 5.5.
wi ffir ein i E I N - {0} und d i i - 0}.
Ldiag ~ s
Beweis. Wir beweisen Ldiag ~ s indirekt. Sei Ldiag C s Dann ist Ldiag = L ( M ) fiir eine TM M. Weil M eine der Turingmaschinen in der Nummerierung
172
5 Berechenbarkeit
aller T u r i n g m a s c h i n e n sein muss, existiert ein i E I N - {0}, so dass M = Mi. Aber Ldiag kann nicht gleich L(Mi) sein, weil
Wi E Ldiag r
dii = 0 r wi ~ L(Mi).
Aufgabe 5.13. Betrachte die Sprache
L2diag : {W C (~bool)*
I w = w2i fiir ein i C I N - {0} und Mi akzeptiert w2i nicht (di,2i = 0)}.
Beweisen Sie, dass L2aiag ~ LRE. Aufgabe 5.14. Sei far jedes k E IN
Lk,diag = {W C (~bool)*
I w = wi+k fiir ein i C I N - {0} und M~ akzeptiert w~+k nicht (d~,~+k = 0)}.
Beweisen Sie, dass Lk,diag ~ LRE fiir jedes k E ]hi.
5.3
Die M e t h o d e der Reduktion
Die M e t h o d e der R e d u k t i o n ist die am hgufigsten b e n u t z t e M e t h o d e zur Klassifikation der E n t s c h e i d u n g s p r o b l e m e bezfiglich der algorithmischen L6sbarkeit. Die Idee ist sehr einfach. Sei A ein Problem, ffir das wir beweisen wollen, dass es nicht algorithmisch 16sbar ist. W e n n wit jetzt ein P r o b l e m B finden, von dem schon b e k a n n t ist, dass es nicht algorithmisch 16sbar ist, aber die algorithmische L6sbarkeit yon A die algorithmische LSsbarkeit von B implizieren wiirde, d a n n k6nnen wir schliefien, dass A nicht algorithmisch 16sbar ist. Dieses nennen wir eine R e d u k t i o n von B auf A. D e f i n i t i o n 5.3. Seien L1 G E~ und L2 G E~ zwei Sprachen. Wit sagen, dass L1 a u f L2 r e k u r s i v r e d u z i e r b a r ist, L1 ~ R L2, falls L2 E s
~ L1 E s
Die Bezeichnung L1 ~R L2
5.3 Die Methode der Reduktion
173
entspricht der intuitiven Bedeutung, dass
,,L2 beziiglich der algorithmischen LSsbarkeit mindestens so schwer wie L1 ist ", denn wenn L2 algorithmisch 15sbar wS~re (d.h. L2 = L(A) fiir einen Algorithmus A), dann wSze auch L1 algorithmisch 15sbar (d.h. L1 = L(B) fiir einen Algorithmus B). Wir kennen bereits die Diagonalsprache Ldiag, yon der wir wissen, dass sie nicht in Z2RE und somit auch nicht in Z2a liegt. Wir brauchen jetzt konkrete Techniken fiir die Beweise von Resultaten der Art L1 _
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 _
174
5 Berechenbarkeit TM B m i t L(B) xEE*1
TM M
M(x) ~xE L1 r
= L1
'- TM A
(x)E L2 ~
Fig. 5.7
Beweis. Sei L1 _<EE L2. Um L1 _ L1 _<EE L3).
Wir bemerken, dass die TM B m i t L(B) = L1 die TM A als ein Teilprogramm benutzt (Fig. 5.7), und zwar so, dass B die TM A fiir jede Eingabe einmal laufen 15~sst und die Ausgabe yon A als eigene Ausgabe tibernimmt. Dies ist aber eine unn6tige Einschrgnkung. Im Allgemeinen kann man B so bauen, dass B die TM A mehrmals auf unterschiedlichen Eingaben aufruft und abhtingig von den Resultaten der Arbeit von A die TM B die Entscheidung beztiglich X E L1 trifft (Fig. 5.8). Wir sind jetzt imstande, Beweise fiir Aussagen der Form L ~ s ftir konkrete Sprachen zu ftihren. Wir fangen mit einer allgemeinen Bemerkung an, und zwar, dass eine Sprache L in s ist genau dann, wenn das Komplement yon L in/2a ist.
5.3 Die Methode der Reduktion
175 TM B mit
L(B)- L1 xEL1
TM A
-I 'I
y
--Ira..
L(A) - L2
I
x~L1
I_ I-
Fig. 5.8 Lemma
5.4. Sei E ein Alphabet. Fiir jede Sprache L C_ E* gilt:
L
qreject)
T M B m i t L(B) - L 0
xEL
xEE* rTMA
Fig. 5.9
K o r o l l a r 5.2. (Ldi~g) 0 ~ /~R.
x~L
xEL ~
X
x~L ~
176
5 Berechenbarkeit
Beweis. Wir haben gezeigt, dass Ldiag ~ /~RE und damit auch Ldiag ~ /~RNach Lemma 5.4 ist Ldiag ~R (Ldiag) If. Weil nach gemma 5.4 (Ldiag) C E s auch Ldiag E /2R implizieren wiirde, kSnnen wir schliegen, dass (Ldiag) C ~ /2R. D Aus den bisher prS~sentierten Tatsachen kSnnen wir aber nicht schliegen, dass (Ldiag) c @ s Das Gegenteil ist wahr, und somit beweisen wir Z;a C s L e m m a 5.5. (Ldiag) [I E s
Beweis. Nach der Definition yon Ldiag erhalten wir (Ldiag) [I
{x E (Y]bool)* I falls
x
:
w i
f/Jr ein i E IN - {0},
dann akzeptiert Midas Wort wi}. Eine TM D, die (Ldiag) [I akzeptiert, kann wie folgt arbeiten. Eingabe: ein x E (Ebool)*. (i) Berechne i, so dass x das i-te Wort wi in der kanonischen Ordnung fiber Ebool ist. (ii) Generiere die Kodierung Kod(M~) d e r / - t e n TM M~. (iii) Simuliere die Berechnung yon Mi auf dem Wort wi = x. Falls M i d a s Wort wi akzeptiert, dann akzeptiert D auch x. Falls M i d a s Wort wi verwirft (d.h. in qreject hglt), dann hglt D und verwirft x = wi auch. Falls M~ auf w~ unendlich lange arbeitet (d.h. w~ ~ L(M~)), simuliert D die unendliche Arbeit yon Mi auf wi. Daher hS~lt D auf x nicht und somit x ~ L(D). Es ist offensichtlich, dass L ( D ) - (Ldiag) C. K o r o l l a r 5.3. (Ldiag) [I E /~RE- /~R, und daher s
Cs
Im Folgenden prS~sentieren wir weitere Sprachen, die nicht rekursiv sind, aber in 12RE liegen (Fig. 5.10). D e f i n i t i o n 5.5. Die u n i v e r s e l l e S p r a c h e ist die Sprache L u = { K o d ( M ) # w I w E (Ebool)* und M akzeptiert w}
5.3 Die Methode der Reduktion
177
S a t z 5.6. Es gibt eine TM U, u n i v e r s e l l e T M genannt, so dass
L(U) = Lu. Daher gilt Lu E s Beweis. Es reicht aus, eine 2-Band-TM U mit L(U) = Lu zu konstruieren. U kann wie folgt auf einer Eingabe z C {0, 1, r arbeiten. (i) U iiberprfift, ob z genau ein r enthglt. Falls nicht, verwirft U das Wort Z.
(ii) Sei z = y--#x mit y, z E (Ebool)*. U fiberpriift, ob y eine Kodierung einer TM ist. Falls y keine TM kodiert, verwirft U die Eingabe y--#x. (iii) Falls y = Kod(M) fiir eine TM M, schreibt U die Anfangskonfiguration yon M auf x auf das Arbeitsband. (iv) U simuliert schrittweise die Berechnung von M auf x wie folgt. while der Zustand der Konfigurationen von M auf dem Arbeitsband unterschiedlich yon %cc~pt und qr~j~ct ist do simuliere einen Schritt von M auf dem Arbeitsband {die Aktion, die zu silnulieren ist, kann U aus der Kodierung Kod(M) auf dem Arbeitsband leicht ablesen} od i f der Zustand von M i s t q~ccept t h e n U akzeptiert z = Kod(M)C/:x. e l s e U verwirft z = Kod(M)Cfix. Man bemerke, dass eine unendliche Berechnung von M auf x eine unendliche Berechnung von U auf Kod(M):#:z bedeutet und U deshalb in diesem Fall die Eingabe Kod(M)CPx nicht akzeptiert. Somit ist L ( U ) = gu. D Was bedeutet eigentlich die Tatsache, dass Lu E/2a~,? Dies bedeutet die Existenz einer TM (eines Programmes) ohne Haltegarantie, die eine beliebige Turingmaschine auf einer gegebenen Eingabe simulieren kann. Dies ist aber eine ganz natiirliche Forderung, die man als ein Axiom an jede formale Definition 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 Betriebssystem) 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 Beweise prgsentieren wir zweimal. Einmal anschaulich auf der Ebene von Algorithmen als Programmen in irgendeiner Programmiersprache und das zweite Mal im Formalismus der Turingmaschinen und der EE-Reduktion.
Satz 5.7. Lu ~ Z;a.
Beweis. Es reicht zu zeigen, dass (Ldiag)C _~R Lu. Nach Korollar 5.2 gilt (Ldiag)C ~ s und damit folgt Lu ~ s Sei A ein Algorithmus (Programm), der Lu entscheidet. Wir bauen einen A1gorithmus B, der mit A als Teilprogramm die Sprache (Ldiag)C entscheidet. Algorithmus/3 ist so strukturiert wie in Fig. 5.11 abgebildet. Ftir eine Eingabe 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 Eingabe. 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
w~ C L(M~)
X -- W i
Wi E (Ldiag) [I
A
3; E (}--]bool)*
--- C
Kod(M~) L ( A ) - L u
Wi ~ (Ldiag) C
,,..-
Fig. 5.11
eine Abbildung fM yon (Y]bool)* nach {0, 1, @}* berechnet, so dass X E (Ldiag) C r
f M ( X ) E LU.
M arbeitet wie folgt. Ffir eine Eingabe x berechnet M zuerst ein i, so dass x - wi. Danach berechnet M die Kodierung Kod(Mi) d e r / - t e n TM. M h~lt mit dem Inhalt Kod[Mi)@x auf dem Band. Weil x - wi, ist es nach der Definition v o n (Ldiag) U offensichtlich, dass 3; -- Wi E (Ldiag) C e=~ Mi akzeptiert wi
Kod(M )#x E Lu.
A u f g a b e 5.16. Zeigen Sie, dass die folgende Sprache {Kod(M)@x@0 i
x E {0, 1}*, i E IN, M hat mindestens i + 1 Zust/~nde und w~hrend der Berechnung von
M auf x wird der i-te Zustand von M mindestens einmal erreicht} keine rekursive Sprache ist.
Wir sehen, dass eines der zentralen Probleme in der Theorie der Berechenbarker stark mit dem Halten der Turingmaschinen (mit der Endlichkeit der Berechnungen) zusammenhS~ngt. Ftir die Sprachen (Ldiag) C und Lu gibt es Turingmaschinen (Programme), die diese Sprachen akzeptieren, aber es gibt keine Turingmaschinen, die (Ldiag)c und Lu entscheiden (d.h. keine unendlichen Berechnungen machen). Deswegen betrachten wir jetzt das folgende Problem.
180
5 Berechenbarkeit
D e f i n i t i o n 5.6. Das
Halteproblem
ist
das
Ents cheidungspro blem
({ 0, 1, r }*, LH), wobei LH -- {Kod(M)Cpx Ix E {0, 1}* und M hiilt auf x}. A u f g a b e 5.17. Beweisen Sie, dass LH E s
Das folgende Resultat besagt, dass es keinen Algorithmus gibt, der testen kann, ob ein gegebenes Programm immer terminiert. S a t z 5.8.
LH ~ s
Beweis. Wir fiihren zuerst einen Beweis auf der Ebene yon Programmen. Wir zeigen Lu _
I
m
Kod(Mj I ...-.
y=/=/=xE Lu
am.
A x
M akzeptiert
Kod(M)r
L(A) - LH
M h~lt auf x
U
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 _
Wir beweisen jetzt Lu _ M(w) E LH. Sei w E Lu. Daher ist w = K o d ( M ) # x fiir eine TM M und ein Wort x E {0, 1}* und x E L(M). Dann ist M(w) - Kod(M2)~x mit L(M2) - L(M) ein Wort in LH. Sei w ~ Lu. Wir unterscheiden zwei M6glichkeiten. Wenn w nicht die Form K o d ( M ) # x fiir eine TM M hat, dann ist M(w) = Kod(M1)#x, wobei M1 auf keiner Eingabe halt. Daher ist M(w) nicht in LH. Wenn w die Form K o d ( M ) # x fiir eine TM M hat und K o d ( M ) # x ~ Lu, bedeutet das, dass x ~ L(M). In diesem Fall ist aber M(w) = Kod(M2)#x, wobei M2 auf keiner Eingabe aus (Eboo~)* -- L(M) halt. Weil x ~ L(M), gilt K o d ( M ) # x ~ LH.
Aufgabe 5.18. Beweisen Sie die folgenden Aussagen: (i) Lu _
182
5 Berechenbarkeit
(iii) Ldiag
Lempty
{Kod(M)[L(M) = 0},
die die Kodierungen aller Turingmaschinen enth~lt, die die leere Menge (kein Wort) akzeptieren. Offensichtlich ist
(Lempty) C - {X E (}--]bool)* I x -r Kod(M) fttr alle TM M oder x = Kod(M) und L(M) =/=0} L e m m a 5.6. (Lempty) C E /2RE.
Beweis. Wir fiihren zwei unterschiedliche Beweise f/Jr (Lempty) c E s Im ersten Beweis zeigen wir, dass es ntitzlich ist, dass Modell der nichtdeterministischen Turingmaschinen zur Verfiigung zu haben. Der zweite Beweis zeigt, wie man die Ideen aus der Mengenlehre, speziell aus dem Beweis [IN[- [Q+[, in der Theorie der Berechenbarkeit anwenden kann. Weil f~r jede NTM 3/1 eine TM M2 existiert, so dass L(M~) : L(M2), reicht es zu zeigen, dass eine NTM M1 mit L(M,) (Lempty)C existiert. M, arbeitet auf einer Eingabe x wie folgt. -
(i) M, tiberpriift deterministisch, ob x = Kod(M) ftir eine TM M. Falls x keine TM kodiert, akzeptiert M, das Wort x. (ii) Falls x = Kod(M) fttr eine TM M, wghlt M, nichtdeterministisch ein Wort y E (2bool)* und simuliert deterministisch die Berechnung von M auf y. (iii) Falls M das Wort y akzeptiert (d.h. L(M) =/=0), so akzeptiert M1 die Eingabe x = Kod(M). Falls M das Wort y verwirft, akzeptiert M1 in diesem Lauf die Eingabe x nicht. Falls die Berechnung von M auf y unendlich ist, rechnet M1 auch in diesem Lauf auf x unendlich lange und akzeptiert so dass Wort x = Kod(M) in diesem Lauf nicht. Nach Schritt (i) akzeptiert M1 alle W6rter, die keine TM kodieren.
5.3 Die Methode der Reduktion
183
Falls z = Kod(M) und L(M) r O, dann existiert ein Wort y mit y E L(M). Deswegen existiert eine Berechnung yon M1 auf z = Kod(M), in der z akzeptiert 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 (deterministische) TM A, die (Lempty) C akzeptiert. A arbeitet auf einer Eingabe w wie folgt. (i) Falls w keine Kodierung einer Turingmaschine ist, so akzeptiert A die Eingabe w. (ii) Falls w = Kod(M) f/Jr eine TM M, arbeitet A wie folgt. A konstruiert systematisch (in der Reihenfolge aus Fig. 5.3 oder Fig. 5.4) alle Paare (i, j) E ( I N - {0})• ( I N - {0}). Fiir jedes Paar (i, j) generiert A das i-te Wort wi fiber dem Eingabealphabet der TM M und simuliert j Berechnungsschritte von M auf wi. Falls ftir ein (k, l) die TM M das Wort wk in 1 Schritten akzeptiert, hglt A und akzeptiert seine Eingabe w = Kod(M). Sonst arbeitet A unendlich lange und akzeptiert damit die Eingabe w nicht. Der Kernpunkt der Beweisidee ist, dass wenn ein Wort y mit y E L(M) existiert, 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 Nichtexistenz eines Algorithmus zur fJberprtifung, ob ein gegebenes Programm eine leere Menge akzeptiert. Daher k6nnen wir im Allgemeinen nicht die Korrektheit 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~)*, generiert A die Kodierung Kod(Bx) einer TM Bx als seine Ausgabe. Die TM Bx arbeitet f/Jr jede Eingabe y (unabhS~ngig von dem Inhalt der eigenen Eingabe y) wie folgt. (a) Bx generiert x = K o d ( M ) # w auf dem Band. {Das Wort x kann durch die ZustS~nde und die ~-Funktion von Bx beschrieben werden}. (b) Bx simuliert die Arbeit yon M auf w. Falls M das Wort w akzeptiert, akzeptiert Bx seine Eingabe y. Falls M das Wort w verwirft, verwirR Bx seine Eingabe y. Falls M auf w nicht hS~lt, dann arbeitet auch Bx unendlich lange. Folglich akzeptiert Bx seine Eingabe y nicht. Wir beweisen jetzt, dass X E L U ~=} A ( x ) -
Kod(J~x) E (Lempty) C
ftir alle x E {0, 1, r Sei x E Lu. Daher x - K o d ( M ) # w fiir eine TM M und w E L(M). In diesem Fall L(Bx) - (Eboo~)* r 0 und somit Kod(Bx) E (Lempty) C. Sei x ~ Lu. Dann hat x entweder nicht die Form Kod(M')fpz ftir eine TM M' und ein z E {0, 1}* oder x - Kod(M)Cpw ftir eine TM M und w ~ L(M). In beiden Fgllen gilt L(Bx) - 0 und somit Kod(Bx) ~ (Lempty) c. [-I
K~
I
Ai
Kod(Bx)
TM E
L(Bx)~=O
L(E) -- L(Bx) - 0 (Lempty)C
M akzeptiert w D.
M akzeptiert w nicht p.
Fig. 5.13
K o r o l l a r 5.4. Lempty @ /2R.
Beweis. Wenn Lempty C s sein.
wS~re, m/isste nach Lemma 5.4 auch (Lempty) C C s D
5.4 Satz yon Rice
185
Aufgabe 5.19.* Beweisen Sie, dass die folgenden Sprachen nicht in ERE sind:
(a) Lempty~ (b) (LH)C und (c) (Lu) C. Die nS~chste Folgerung aus Lemma 5.7 ist, dass das Aquivalenzproblem f/Jr zwei Turingmaschinen unentscheidbar ist. Man kann also kein Programm entwerfen, das ffir zwei gegebene Programme testen kann, ob die Programme das gleiche Problem 16sen (die gleiche semantische Bedeutung haben). K o r o l l a r 5.5. Die Sprache LEQ = nicht entscheidbar (d.h. LEQ ~ s
{Kod(M)#Kod(M)] L(M)=
L(M)}
ist
Beweis. Die Beweisidee ist einfach, weil Lempty als ein Spezialfall von LEQ betrachtet werden kann. Formal reicht es zu zeigen, dass Lempty _~EELEQ. Es ist einfach, eine TM A zu konstruieren, die ffir eine Eingabe Kod(M) die Ausgabe K o d ( M ) # K o d ( C ) generiert, wobei C eine feste triviale TM mit L(C) = 0 ist. Es ist klar, dass K o d ( M ) # K o d ( C ) E LEQ r
L ( M ) : L ( C ) : 0 r Kod(M) E Lempty.
Aufgabe 5.20. Beweisen Sie, dass die Sprache {Kod(M)#Kod(M) I
nicht in s
5.4
L(M) c_ L(M')}
ist.
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 akzeptiert (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 entscheidbar sind. Die Zielsetzung dieses Abschnittes ist zu zeigen, dass alle in gewissem Sinne nichttrivialen Probleme fiber Programmen (Turingmaschinen)
186
5 Berechenbarkeit
unentscheidbar sind. Was mit dem Begriff nichttrivial gemeint ist, spezifiert die folgende Definition. D e f i n i t i o n 5.7. Eine Sprache L c_ {Kod(M) I M ist eine TM} heiflt sem a n t i s c h n i c h t t r i v i a l e s E n t s c h e i d u n g s p r o b l e m fiber T u r i n g m a s c h i nen, falls folgende Bedingungen gelten:
(ii) #ii)
Es gibt eine TM M1, so dass Kod(M1) E L (daher L 5r 0), Es gibt eine TM 512, so dass Kod(M2) ~ L (daher enthglt L nicht die Kodierungen aller Turingmaschinen), fiir zwei Turingmaschinen A und B impliziert L(A) = L(B) Kod(d) e n r
Kod(B) e n.
Bevor wir zum Beweis der Unentscheidbarkeit semantisch nichttrivialer Entscheidungsprobleme iibergehen, betrachten wir aus technischen Griinden noch die folgende Sprache LH,a -- {Kod(M) I M hglt auf A} als ein spezifisches Halteproblem. L e m m a 5.8.
LH,A ~ /~R-
Beweis. Wir zeigen LH ~EE LH,~. Eine TM A kann LH auf LH,~ wie folgt reduzieren. Ffir eine Eingabe x, die nicht die Form K o d ( M ) # w hat, generiert A eine einfache TM Hx, die auf jeder Eingabe unendlich lguft. Falls x = K o d ( M ) # w fiir eine TM M und ein Wort w, generiert A eine Kodierung Kod(Hx) einer TM Hx, die wie folgt arbeitet: 1. Ohne die eigene Eingabe y anzuschauen, generiert die TM Hx das Wort x = K o d ( M ) # w auf dem Band. 2. Hx simuliert die Berechnung yon M auf w. Fails M auf w hglt, dann hglt H, auch und akzeptiert die eigene Eingabe. Falls die Berechnung von M auf w unendlich ist, dann arbeitet Hx auch unendlich lange. Offensichtlich xELH
<=> x = K o d ( M ) # w u n d M h g l t a u f w r H, hglt immer (fiir jede eigene Eingabe y)
Hx hglt auf A <=> Kod(Hx) E LH,~ fiir jedes z E {0, 1, #}*.
5.4 Satz yon Rice S a t z 5.9.*
187
Satz von Rice
Jedes semantisch nichttriviale Entscheidungsproblem iiber Turingmaschinen ist unentscheidbar. Beweis. Sei L ein beliebiges semantisch nichttriviales Entscheidungsproblem fiber Turingmaschinen. Wir zeigen entweder LH,a _<EE L oder LH,a _<EE L c.
Sei M0 eine TM mit der Eigenschaft, dass L(Mo) - O. Wir unterscheiden jetzt zwei MSglichkeiten beziiglich der ZugehSrigkeit von Kod(M0) zu L" I. Sei Kod(Mo) E L. In diesem Fall beweisen wir LH,,~ _~EE L C. Nach (ii) von Definition 5.7 existiert eine TM M, so dass Kod(M) ~ L. Wir beschreiben jetzt die Arbeit einer TM S, die LH,~ auf L c reduziert. Fiir jede Eingabe x E (Ebool)* berechnet S (i) entweder S(x) = Kod(M') mit L(M') = L(Mo) = 0 (wenn x ~ LH,a), also Kod(M') ~ L c. (ii) oder S(x) = K o d ( M ' ) m i t L(M') = L ( M ) (wenn x E LH,a), also Kod(M') E L c. S fiihrt die Berechnung auf folgende Weise durch (Fig. 5.14): Eingabe: ein z E (Ebool)*. 1. S iiberpriift, ob z = Kod(M) fiir eine TM M. Falls z keine Kodierung einer TM ist, schreibt S das Wort S(z) = Kod(M0) auf das Band (Fig. 5.14). 2. Falls x = Kod(M) fiir eine TM M, dann generiert S die Kodierung K o d ( M ~) einer TM M ~, die wie folgt arbeitet. (a) Das Eingabealphabet vom M ~ ist E ~ also das Eingabealphabet der TM M mit K o d ( M ) ~ L, d.h. K o d ( M ) E L C. (b) Fiir jedes y E (rV)* generiert M' das Wort x = Kod(M) auf dem Band hinter y (also wird y dabei nicht iiberschrieben) und simuliert die Berechnung yon M auf A. Falls M auf A nicht halt (d.h. Kod(M) r LH,a), dann halt auch M' auf y nicht, und deshalb y r L(M'). {Weft diese Simulation der Berechnung yon M auf A unabhS~ngig yon der Eingabe y yon M' 15~uft, ist L(M') = 0 = L(Mo) und damit Kod(M') E L, also K o d ( M ' ) r LC.}
188
5 Berechenbarkeit Falls M auf A h~lt (d.h. Kod(M) E LH,~), dann generiert M ' die Kodierung Kod(M) der TM M auf dem Band. Dann simuliert M' die Arbeit yon M auf der eigenen Eingabe y E (E~)*. M ~ akzeptiert y genau dann, wenn M das Wort y akzeptiert. {Damit L(M') = L(M)und daher Kod(M') ~ L, also Kod(M') E
Lc.}
Wir sehen, dass (Fig. 5.14) x E LH,,X ~=} S(X) E L c fiir alle x E (Ebool)* und somit
LH,~ ~EE LC. II. Sei Kod(Mo) r L. Nach Bedingung (i) der Definition 5.7 muss eine TM f / existieren, so dass Kod(M) E L. Jetzt kann auf die gleiche Weise LH,~ < E E L bewiesen werden wie LH,~ _<EE L c in Teil I bewiesen wurde, f / s p i e l t dabei die Rolle von M.
Aufgabe 5.21. Fiihren Sie einen detaillierten Beweis von LH,X _<EEL, falls Kod(M0) r L. Der Satz von Rice hat folgende Konsequenz. Sei L eine beliebige rekursive Sprache und sei K o d L - {Kod(M) [ M i s t eine TM und
L(M)- L}
die Sprache der Kodierungen aller Turingmaschinen, die die Sprache L akzeptieren. Weil L rekursiv ist, ist K o d / ~ 0. Offensichtlich existieren Turingmaschinen, deren Kodierung nicht in KodL ist, und K o d / erffillt die Bedingung (iii) von Definition 5.7. Damit ist KodL ein semantisch nichttriviales Problem fiber Turingmaschinen, und nach dem Satz yon Rice ist KodL ~ s Dies bedeutet, dass wir fiir kein algorithmisch lasbares Problem algorithmisch testen kannen, ob ein entworfener Algorithmus eine korrekte Lasung des Problems ist. Die Verifikation von Programmen ist also eine schwere Aufgabe, und deswegen ist ein gut strukturierter und modularer Entwurf von Programmen so wichtig fiir die Zuverl~ssigkeit des entstehenden Softwareproduktes. Aufgabe 5.22. Beweisen Sie die folgende Aussage. Sei E ein Alphabet und sei L c_ E*. L, L c E ERE <=>L E s
5.4 Satz yon Rice
189 9 e {0,1}*
eine TM fiir LH,~ x
x ist keine Kodierung einer TM
S falls x - Kod(M) fiir eine TM M, dann generiert S eine TM M ~. M ~ simuliert M auf A. Falls M auf ~ h~lt, simuliert M ~ die Arbeit yon M auf eigener Eingabe. S ( x ) - Kod(M')
S ( x ) - Kod(Mo) {Mo ~ L C}
{ L ( M ' ) - 0 - L(Mo) wenn M auf A nicht h~ilt} { L ( M ' ) - L ( M ) mit Kod(M) E L C wenn M auf A hSJt.} eine TM, die L C akzeptiert
JA S(x) C L C
M h~lt auf A Fig. 5.14
NEIN S(x) ~ L c
M h~lt nicht auf ~.
190
5.5
5 Berechenbarkeit
Das Post'sche Korrespondenzproblem
In den letzten Abschnitten haben wir gezeigt, dass fast alle Probleme fiber Turingmaschinen (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 Reduktionen 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 Dominosteintypen eines Dominospieles fiber {0, 1, @}. Die graphische Darstellung der Dominosteintypen s l, s2, s3 und s4 ist in Fig. 5.16 gegeben.
#o #o 81 Fig. 5.16 SUnendlich vide.
#
01 82
01@
83
84
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
#0
82
81
01#
#
01 83
82
84
Fig. 5.17
1 o
# 82
o 81
o 83
]
#
#
o 82
84
Fig. 5.18
Ftir das Dominospiel 81 = (00,001), S2 = (0,001), Sa = (1, 11) gibt es keine L6sung, weil alle zweiten Elemente der Dominosteintypen lgnger sind als die entsprechenden ersten Elemente. Dieses Dominospiel nennt man das Post'sche Korrespondenzproblem, und seine formMe Definition Ms Entscheidungsproblem ist wie folgt. D e f i n i t i o n 5.8. Sei E ein Alphabet. Eine I n s t a n z des P o s t ' s c h e n K o r r e s p o n d e n z p r o b l e m s iiber E ist ein P a a r (A, B ) , wobei A = Wl, . . . , wk, t? = x ~ , . . . , x k fiir ein k E I N - {0}, w~,x~ E E* fiir i = 1 , . . . , k. Fiir jedes i E { 1 , . . . , k} wird (wi, xi) ein D o m i n o s t e i n t y p genannt. W i t sagen, dass die I n s t a n z (A, B ) des P o s t ' s c h e n K o r r e s p o n d e n z p r o b l e m s eine L S s u n g hat, falls m E IN - {0} und i~, i 2 , . . . , i,~ E IN - {0} cxistieren, so dass Wi 1 Wi 2 9 . . Wim
~
Xil
Xi 2 9 . . Xim.
Das P o s t ' s c h e K o r r e s p o n d e n z p r o b l e m ( P K P ) ist zu entscheiden, ob eine gegebene I n s t a n z von P K P eine L S s u n g hat oder nicht.
192
5 Berechenbarkeit
L e m m a 5.9. Falls eine Instanz (A, B) des P K P eine LSsung hat, dann hat (A, B) unendlich viele LSsungen.
Beweis. Falls il, i2,..., ik eine L6sung des Instanz (A, B) ist, dann ist auch (il, i 2 , . . . , i~) j eine L6sung fiir jedes j E I N - {0}. D Aufgabe 5.23. Definieren Sie das PKP als ein Entscheidungsproblem (LpKp, Ebool) fiir eine Sprache LpKp C_ (Ebool)*. Beweisen Sie LpKp C L;RE. Aufgabe 5.24. Beweisen Sie, dass die Instanz ((10,011,101), (101, 11,011)) des PKP keine LSsung hat. Aufgabe 5.25. Hat die Instanz ((1, 1110111, 101), (111, 1110, 01)) des PKP eine LSsung?
Unser Ziel ist es zu zeigen, dass das P K P unentscheidbar ist. Die Idee des Beweises basiert auf der Tatsache, dass unser Dominospiel gentigende Ausdrucksstgrke hat, um Berechnungen von Turingmaschinen simulieren zu kSnnen. Aus rein technischen Grfinden betrachten wir zuerst eine Spezialform des P KP, bei dem das Dominospiel immer mit dem ersten Dominosteintyp anfangen muss. D e f i n i t i o n 5.9. Sei E ein Alphabet. Eine I n s t a n z des m o d i f i z i e r t e n P o s t ' schen Korrespondenzproblems iiber E ist ein Paar (C, D), wobei C = u l , . . . , u k , D - v l , . . . , v k fiir ein k E I N - {0}, ui, vi E E* fiir i - 1 , . . . , k .
Wir sagen, dass die Instanz (C, D) des modifizierten Post'schen Korrespondenzproblems eine L S s u n g hat, falls m E IN und j l , j 2 , . . . , j , ~ E I N - {0} existieren, so dass 'ltlUjl
Uj2
9 9 9 Ujm
--
VlVjl
Vj2
9 9 9 Vim"
Das m o d i f i z i e r t e P o s t ' s c h e K o r r e s p o n d e n z p r o b l e m ( M P K P ) ist zu entscheiden, ob eine gegebene Instanz des M P K P iiber einem beliebigen E eine LSsung hat. Betrachten wir folgende Instanz ( A , B ) des PKP. Seien A = 0, 11, 1, B = 001, 1, 11, d.h. S 1 ---- ( 0 , 0 0 1 ) , s2 = (11, 1) und s3 = (1, 11). Offensichtlich ist s2sa eine L6sung des PKP. Wenn wir (A, B) als eine Instanz des M P K P betrachten, dann stellen wir fest, dass (A, B) keine LSsung hat. Dies bedeutet, dass es fiir ein gegebenes Dominospiel (A, B) wichtig ist, ob (A, B) als eine Instanz des P KP oder des M P K P zu betrachten ist. Aufgabe 5.26. Beweisen MPKP keine LSsung hat.
Sie,
dass
die
Instanz
((0, 11, 1), (001, 1, 11))
des
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 entscheidbar.
Sei (A, B) eine Instanz des MPKP. Wir konstruieren eine Instanz (C, D) des PKP, so dass
Beweis.
M P K P (A, B) hat eine LOsung <=> P K P (C, D) hat eine LOsung. Sei A = W l , . . . , w k , B = X l , . . . , x k , k E IN {0}, Wi,& E E* fiir i = 1 , . . . , k und ein Alphabet E. Sei r ~ E. Wir konstruieren eine Instanz (6', D) des P K P fiber dem Alphabet E~ = E U {r $}. Zuerst definieren wir zwei Homomorphismen hL und ha von E* nach E~ wie folgt. Fiir alle a E E ist h ~ ( a ) -- Ca ~ n d h ~ ( a ) - ar
Wir sehen, dass hL das Symbol r links neben jeden Buchstaben setzt und hR das Symbol r rechts neben jeden Buchstaben setzt. Z.B. ist fiir das Wort 0110 hL(0110) = r162162162und ha(0110) = 0r162162162 Wir setzen C = yl,y2,...,yk+2 und D = Zl,Z2,...,zk+2, wobei
Yl -Y2-
ChR(Wl) hR(Wl)
Zl -Z2-
9
o
9
o
hR(Wi)
Yid-1
Zid-1
hL(Xl) hL(Xl)
hL(Xi)
9
o
9
o
Yk-bl
hR(Wk)
Zk-bl
hL(Xk)
y~+2
$
zk+2
r
Zum Beispiel ist fiir die Instanz ((0, 11, 1), (001, 1, 11)) des MPKP die entsprechende Instanz des P KP
((r162 or 1r162 1r $), (r162162 r162162 r r162 r Es ist offensichtlich, dass eine TM (ein Algorithmus) die Konstruktion von (6', D) aus (A, B) realisieren kann. Es bleibt also zu zeigen, dass entweder beide MPKP(A, B) und PKP(C, D) LSsungen besitzen oder beide keine LSsung haben.
194
5 Berechenbarkeit
1. Zuerst beweisen wir, dass man aus jeder LSsung fiir M P K P ( A , B ) eine L6sung ftir PKP(C, D) bestimmen kann. Sei i l , i 2 , . . . , i m eine L6sung fiir MPKP(A, B). Daher ist U ~ WlWilWi2 ...Wire
~ XlXilXi2 ...Xim.
Die entsprechende Indexfolge 2, il + 1, i2 + 1 , . . . , i,~ + 1 fiir PKP(C, D) entspricht der Anwendung yon ha auf Wl wi~wi~.., wi,~ und hL auf Xl Xil xi~.., xi,~. Damit ist ChR(U)
=
CY2Yi~+I
. . . Yi~+l
=
. . . Zim+lr
z2Zil+l
=
hL(U)r
Daher unterscheiden sich ha(u) = Y~Y~I+I.-- y ~ + l und hL(u) = z~z~l+l.-- z~+l nur in dem ersten Symbol r und dem letzten Symbol r Weil in der Konstruktion Yx = r und Zx = z2, ersetzen wir den ersten Index 2 durch 1. So bekommen wir die Folge 1, i l + 1, i2 + 1 , . . . , i m + 1, fiir die YlYil+lYi2+I
...
Yi~+l
=
Z1Zil+lZi2+l
...
Zim+l~
gilt. Um eine L6sung des P K P zu erhalten, konkatenieren wir von rechts den (k + 2)-ten Dominostein (r r Damit gilt YlYil+lYi2+I
9 9 9Yi.~+lYk+2
--
Z1Zil+IZi2+I
9 9 9 Zim+lZk+2
und damit ist 1, il + 1, i2 + 1 , . . . , i,~ + 1, k + 2 eine L6sung von PKP(C, D). 2. Wir miissen noch beweisen, dass die Existenz einer L6sung fiir P K P (C, D) die Existenz einer L6sung fiir MPKP(A, B) impliziert. Zuerst bemerken wir, dass alle zi mit r anfangen und yon den yi's nur Yl mit r anfS~ngt. Damit muss jede LSsung ftir PKP(C, D) mit dem ersten Dominostein anfangen. Weil die einzigen zwei Dominosteine mit gleichem letzten Symbol die (k + 2)-ten Dominosteintypen sind, muss jede L6sung yon PKP(C, D) mit dem Index k t 2 enden. Sei 1,jl,j2,... , j ~ , k + 2 eine L6sung fiir PKP(C, D). Wir behaupten, dass 1,jl-
1,j2- 1,...,j,~-
1
die L6sung yon MPKP(C, D) ist. Die Begriindung ist, dass die Entfernung der Symbole r und $ a u s Y l Y j l Y j 2 . . . Yj~Yk+2 zum Wort W l W j l _ l W j 2 _ I . . . W j m _ 1 fiihrt, und die Entfernung der Symbole r und $ aus ZlZjlZj~... zj~zk+2 in X l X j l _ l X j 2 _ 1 . . . X j m _ l X k + 2 resultiert. Weil 1, j l , . . , j,~, k + 2 eine L6sung yon PKP(C, D ) i s t , gilt Yl , Yjl Yj2 '''
Yj.~Yk+2
-
-
Z1ZjlZj2
...
Zjm Zk+2"
5.5 Das Post'sche Korrespondenzproblem
195
Dies impliziert WlWjl--lWj2--1
9 .. Wjm--1
:
XlXjl_lXj2_
1 9 .. Xjm--1.
Damit ist 1, jl - 1, j2 - 1 , . . . , j,~ - 1 eine LSsung yon MPKP(A, B).
Aufgabe 5.27. Beweisen Sie, dass die Entscheidbarkeit yon MPKP die Entscheidbarkeit von PKP impliziert. Wir beweisen jetzt die Unendscheidbarkeit von MPKP, indem wir zeigen, dass man mit diesem Dominospiel die Berechnung einer TM auf einer Eingabe simulieren kann. L e m m a 5.11.* barkeit von L u . Beweis.
Die Entscheidbarkeit von M P K P impliziert die Entscheid-
Sei x E {0, 1, #}*. Wir konstruieren eine Instanz (A, B) des MPKP,
SO d&ss
x E Lu r
MPKP(A, B) hat eine LSsung.
Wenn x nicht die Form K o d ( M ) # w hat (d.h. x ~ Lu), dann setzen wir A = 0 und B = 1. Es ist klar, dass ein Dominospiel mit einem einzigen Dominosteintyp (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 eine 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 simulieren. Dadurch kann man Dominosteintypen benutzen, bei denen das erste Element das Argument (den Zustand und das gelesene Symbol) bestimmt und das zweite Element die Nachfolgekonfiguration entsprechend der &Funktion beschreibt. Durch spezielle Dominosteintypen wird die M6glichkeit gegeben, die Versptitung von A nachzuholen, wenn die Berechnung in qaccept endet. Sei r ein neues Symbol, das nicht in F enthalten ist. 1. Die erste Gruppe enthS~lt nur einen Dominosteintyp
(#,
196
5 Berechenbarkeit
Dieser Dominostein startet die Simulation der Berechnung yon M auf w. Unten steht die Ausgangskonfiguration yon M auf w und oben haben wir die VerspS~tung qor162 2. Die zweite Gruppe enthSJt folgende IFI + 1 Dominosteintypen: (X, X)
ffir alle X E F
(#, #). Diese Gruppe benutzt man zum Kopieren der Teile yon Konfigurationen, die sich in einem Schritt nicht 5mdern. 3. Die dritte Gruppe dient zur Simulation der Berechnungsschritte von M. Fiir alle q E Q - {qaccept}, P E Q, X, Y, Z E F nehmen wir folgende Dominosteintypen:
(qX, Yp) (ZqX, pZY) (q--/C,Yp--/r (Zq#, pZY--/r
falls 6(q, X) = (p, Y, R) falls 6(q, X) - (p, Y, L) falls 6(q, u) : (p, Y, R) falls 6(q, u) : (p, Y, L).
Dieses erm6glicht, oben die Konfiguration von unten zu kopieren und unten mit dem Vorsprung die Nachfolgerkonfiguration zu generieren. 4. Die vierte Gruppe yon Dominosteinen erm6glicht es, die unten entwickelte Berechnung oben nachzuholen, falls unten die Berechnung in dem akzeptierenden Zustand qaccept geendet hat. Mit folgenden Dominosteintypen kann der Zustand qaccept die Symbole aus F O {r ,,schlucken". Fiir alle X, Y E F O {r nehmen wir
(X qacceptY~ qaccept) (X qaccept, qaccept)
(qacco Y, qacco )Wenn qacc~pt unten alle Bandsymbole geschluckt hat, ist der Vorsprung unten auf qaccept~ geschrumpft. Der folgende Dominosteintyp
(qacce ##,#) erm6glicht das definitive Nachholen des Wortinhaltes yon unten bei dem Wort oben. Illustrieren wir die Konstruktion einer MPKP-Instanz (A, B) fiir die TM M = ({q0, ql, qaccept, qreject}, {0, 1}, {r 0, 1, u}, (~M,qaccept, qreject) in Fig. 5.19. Die konstruierten Dominosteintypen fiir die Eingabe 01 sind die folgenden:
5.5 Das Post'sche Korrespondenzproblem O~I,R
-.(
197 I~I,R
(
r r 0~0, R
)
0 ---, 0, R u -~ u , L
u-~ u,L
Fig. 5.19 (i) Die erste Gruppe"
(#, #qor (ii) Die zweite Gruppe: (0, 0), (1, 1), (r r
($, $), (#, #).
(iii) Die dritte Gruppe:
(q01, lq0), (q00, 0ql), (q0~, ~ql), (lq0#, qaccept1#), (0q0#, qaccept0#) (q11, lql), (ql0, 0q0), (lq1#, qreject1#), (0ql#, qreject0#). (iv) Die vierte Gruppe:
(0qaccept 0~ qaccept)~ (lq.cc~pt 1, qaccept )~ (lqaccept 0~ qaccept)~ (0qaccep t 1~ qaccept)~ (0qaccept ~qaccept )~ (lqaccept ~qaccept)~ (qaccept0, qaccept), (qaccept1, qaccept),
(r (r
qaccep~), (qaccep~r qaccep~), a, q.cc~pt), (aq.cc~ptr qaccept) fiir alle a E { 0, 1 }
(q.cco~##, #). Der Anfang der Simulation der Berechnung von M auf 01 durch das Dominospiel (A, B) ist in Fig. 5.20 gezeigt.
5 Berechenbarkeit
198
# #q0
0 0 1 # r ql 0 1 # 0 0 q0 1 # r 0 1 q0 # r
0 qaccept 1 :H:]
Fig. 5.20
# #
r
0
qaccept 1
#
r
qaccept #
qaccept #
#
Fig. 5.21
In Fig. 5.21 ist die Phase des Schrumpfens gezeigt, in der der Wortinhalt oben den Wortinhalt unten nachholt. Es ist offensichtlich, dass das MPKP(A, B) aus einer gegebenen TM M und einem Wort w algorithmisch erzeugt werden kann. Es bleibt zu beweisen, dass die folgende Aquivalenz gilt: M akzeptiert w e=~ MPKP(A, B) hat eine L6sung. Um unn6tige technische Details zu vermeiden, bleiben wir bei einer halbinformellen Begrfindung. Wenn w E L(M), dann existiert eine akzeptierende Berechnung von M auf w. Zu dieser Berechnung kann man eine L6sung des MPKP(A, B) wie folgt bauen. Die L6sung beginnt mit dem Dominostein (r ~qoCw~) der ersten Gruppe. Dann benutzen wir Dominosteine aus Gruppe 2, um die Symbole der Konfigurationen zu kopieren, die im ngchsten Schritt unvergndert bleiben. Die Dominosteine aus Gruppe 3 werden benutzt, um die Nachfolgekonfiguration unten zu erzeugen. Nach jedem Symbol r ist das Wort unten um genau eine Konfiguration 15~nger als das Wort oben, das ein PrS~fix des Wortes unten ist. Wenn man unten die akzeptierende Konfiguration mit qaccept erreicht, erm6glithen die Dominosteine der vierten Gruppe dem Wort oben, das Wort unten nachzuholen und so eine L6sung des MPKP(A, B) zu erhalten. Sei w ~ L(M). Jede L6sung des M P K P ( A , B ) muss mit dem Dominostein (~, ~qoCw-~) der ersten Gruppe anfangen. Weil die Steine der Gruppe 2 und 3 nur solche Anderungen der letzten Konfiguration unten erm6glichen, die einem Berechnungsschritt entsprechen, wird der Zustand qaccept hie als Symbol im Wort unten auftreten. Dann bleibt aber der untere Teil immer lgnger
5.6 Die Methode der Kolmogorov-Komplexit~t
199
als der obere Teil der gelegten Dominosteine. Also gibt es keine L6sung des MPKP(A, B). D A u f g a b e 5.28. Schreiben Sie ein MPKP(A, B) zu der TM in Fig. 4.6. A u f g a b e 5.29. Sei (A, B) eine Instanz des MPKP ffir eine TM M und ein Wort w nach der Konstruktion des Lemmas 5.11. Beweisen Sie durch Induktion folgende Aussage: Falls w E L ( M ) , dann existiert eine Folge von Indizes, so dass (i) der untere Teil der gelegten Dominosteine die komplette Berechnung von M auf w enthglt, wobei die einzelnen Konfigurationen durch das Symbol 5r getrennt sind, und (ii) der obere Teil der gelegten Dominosteine ist ein echter PrSofix des unteren Teils, der die ganze Berechnung bis auf die letzte Konfiguration enth~lt.
S a t z 5.10. Das P K P ist unentscheidbar.
Beweis. Nach Lemma 5.11 ist M P K P unentscheidbar und nach Lemma 5.10 ist P KP mindestens so schwer wie MPKP. D A u f g a b e 5.30.* Betrachten Sie eine beschr~nkte Version des PKP, bei dem alle Dominosteintypen fiber dem festen einelementigen Alphabet {0} definiert sind. Ist dieses Problem
entscheidbar?
5.6
Die Methode der Kolmogorov-Komplexit
it
In Abschnitt 5.2 haben wir die Methode der Diagonalisierung angewendet, um das erste algorithmisch unl6sbare Problem Ldiag ZU finden. Damit haben wir einen Startpunkt ftir den Aufbau der Theorie der Berechenbarkeit erzeugt, von dem aus man mittels der Methode der Reduktion in den Abschnitten 5.3, 5.4 und 5.5 die Unentscheidbarkeit weiterer Probleme beweisen konnte. Die Zielsetzung dieses Abschnittes ist es, einen alternativen Weg fiir den Aufbau der Theorie der Berechenbarkeit anzudeuten. Ohne jede Voraussetzung fiber die Existenz eines algorithmisch unl6sbaren Problems, benutzen wir die Theorie der Kolmogorov-KomplexitS~t, um zu zeigen, dass kein Algorithmus existiert, der die Kolmogorov-Komplexitat K(x) des Wortes x fiir jedes x E (Ebool)* berechnen kann. Ausgehend yon diesem Startpunkt kann man dann wieder mittels der Reduktionsmethode die Unentscheidbarkeit yon allen in den vorigen Abschnitten vorgestellten unentscheidbaren Sprachen beweisen.
200
5 Berechenbarkeit
S a t z 5.11. Das Problem, fiiv jedes x E (Y]bool)* die Kolmogorov-Komplezitiit K ( z ) yon z zu berechnen, ist algorithmisch unlSsbar. 9
Beweis. Wir beweisen dies indirekt. Sei A ein Algorithmus, der fiir jedes x E (Eboo~)* das Wort K(x) berechnet. Sei x~ das erste Wort beziiglich der kanonischen O r d n u n g fiber Ebool mit K(x~) >_ n. Wir beschreiben nun einen Algorithmus B~, n E IN - {0}, der
(i)
A als ein Teilprogramm benutzt, und
(ii) fiir die leere Eingabe A das Wort x~ generiert. B~ arbeitet wie folgt. B~
begin x := A Berechne K(x) mit dem Algorithmus A; w h i l e K(x) < n do b e g i n x := Nachfolger von x in kanonischer O r d n u n g ; Berechne K(x) mit dem Algorithmus A end; output(z) end
Offensichtlich berechnet B~ das Wort x~ fiir a l l e n E IN. Wir beobachten, dass alle Algorithmen B~ bis auf die Zahl n identisch sind. Sei c die L~nge des Maschinencodes yon B~ bis auf n. D a n n ist die bin~re LS~nge von B~ h6chstens [log 2 n] + c fiir alle n E IN und fiir eine Konstante c unabh~ngig von n, da der Algorithmus A eine konstante Gr6f3e hat. Well B~ das Wort z~ generiert, gilt
fiir alle n E I N - {0}. Nach der Definition von x~ gilt aber
9Wenn man K als eine Funktion von (Xbool)* nach (Y]bool)* start als Funktion von (Xbool)* nach IN betrachtet (dies bedeutet, dass K(z) die bin~tre Kodierung der KolmogorovKomplexit~t von z w~re), dann besagt Satz 5.11, dass die Funktion K nicht total rekursiv ist.
5.6 Die Methode der Kolmogorov-Komplexit~t
201
fiir a l l e n E I N - {0}. Die Ungleichung
[log
+
>
>
kann hSchstens ftir endlich viele Zahlen n E I N - {0} gelten und somit haben wir einen Widerspruch zu der Voraussetzung, dass ein Algorithmus A zur Berechnung von K(x) existiert. D Aufgabe 5.31. Beweisen Sie, dass das Problem, fiir jede Zahl n E IN- {0} das erste Wort xn mit K(xn) >_n zu generieren, ein algorithmisch unlSsbares Problem ist. Um zu zeigen, dass m a n mittels der Reduktionsmethode zum Beweis der Unentscheidbarkeit der grundlegenden Sprachen wie Lu, LH, Lempty usw. iibergehen kann, reduzieren wir die Berechnung der Funktion K auf das Halteproblem. Das folgende L e m m a bietet einen alternativen Beweis der Tatsache LH ~ Z;R aus dem Satz 5.8. 5.12. Falls LH E s dann existiert ein Algorithmus zur Berechnung der Kolmogorov-Komplexitiit K(x) fiir jedes x E (Ebool)*.
Lemma
Beweis. Sei LH E Z;R und sei H ein Algorithmus, der LH entscheidet. Der folgende Algorithmus A (Fig. 5.22) berechnet K ( x ) fiir jedes x E (Ebool)*. A generiert in kanonischer Folge die WSrter Wl, w2, w3, .... Fiir jedes i fiberpriift A, ob wi die binSze Kodierung eines Pascal-Programmes M ist (Fig. 5.22). Falls wi = K o d ( M ) fiir ein Pascal-Programm M, wendet A das Teilprog r a m m H an, um festzustellen, ob M auf dem Wort A hS~lt. Falls M auf dem Wort A h~lt, simuliert A die Arbeit von M auf A (Fig. 5.22). Falls M mit der Ausgabe u = M(A) endet, iiberpriift A, ob u = x. Falls u = x, dann gibt A die Ausgabe K ( x ) = Iw~I aus. Wenn Iwil die Ausgabe yon A ftir die Eingabe x ist, dann ist wi das kiirzeste Wort mit der Eigenschaft wi = K o d ( M ) fiir ein Pascal-Programm M, und M generiert x. Damit hat A die Kolmogorov-Komplexitgt von x tats~chlich bestimmt. D Aufgabe 5.32. Beweisen Sie folgende Aussagen: (i) Falls Lu c s X C (Y]bool)*" (ii) Falls Lempty E s x E (2bool)*.
dann existiert ein Algorithmus zur Berechnung von K(x) fiir jedes dann existiert ein Algorithmus zur Berechnung von K(x) ftir jedes
202
5
Algorithmus A mit A(x) - K ( x ) fiir alle x E {0, 1}*
Berechenbarkeit
x E {0,1}*
Ir x
Ir
ein Generator ftir W l ~ W2~ W3~ 9 9 9
i-i+1
wi
Ir NEIN
F
Testen, ob wi = K o d ( M ) ftir ein Pascal-Programm M Ir
A
K o d ( M ) = wi
Ir
TM H L ( H ) = LH
NEIN
JA
M hS~lt nicht auf A Simulation von M auf A
~(~) Testen, ob
~(~)-~ NEIN
JA
IKod(M)l Fig. 5.22
5.7 Zusammenfassung
5.7
203
Zusammenfassung
Die beweistechnischen Grundlagen der Theorie der Berechenbarkeit liegen in der Mengenlehre. Die grundlegenden Konzepte sind 9 der Vergleich von unendlichen Zahlen, 9 die Methode der Diagonalisierung und 9 die Methode der Reduktion. Eine Menge A hat eine M~chtigkeit, die mindestens so grog ist wie die Mgchtigkeit einer Menge B, wenn eine injektive Abbildung von B nach A existiert. Fiir jede unendliche Menge A gilt I A I - IA • A und daher IINI - I Q + I . Die kleinste unendliche Menge ist IN, und jede Menge 6' mit 16'1 _< IINI heii3t abzghlbar. Jede Menge B mit IBI > IINI heit3t nicht aufghlbar. Die Menge aller Turingmaschinen (Programme) ist abzghlbar, und die Menge aller Sprachen (Probleme) ist nicht abz/~hlbar. Damit sind die meisten Probleme nicht algorithmisch 16sbar. Falls IAI < IBI ffir zwei unendliche Mengen A und B gilt, erm6glicht uns die Diagonalisierungstechnik, ein Element aus B - A zu konstruieren. Eine Sprache L, die von einer Turingmaschine akzeptiert wird, heit3t rekursiv aufzghlbar. Eine Sprache L mit L = L(M) ftir eine TM M, die auf jeder Eingabe in qaccept oder qrej~ct hglt, heif3t rekursiv oder auch entscheidbar. Die Diagonalisierungsmethode erm6glicht es uns, eine Sprache Ldiag , Diagonalsprache genannt, zu konstruieren, die nicht rekursiv aufzghlbar ist. Mit Hilfe der Methode der Reduktion kann man zeigen, dass einige Probleme beztiglich Rekursivitgt mindestens so schwer wie Ldiag und damit nicht rekursiv sind. Die wichtigsten Beispiele nichtrekursiver Entscheidungsprobleme sind die universelle Sprache und das Halteproblem. Die universelle Sprache enthglt alle W6rter, die eine TM M und ein Wort w kodieren und w E L(M). Das Halteproblem ist zu entscheiden, ob ftir eine TM M und ein Wort w die TM M auf w hglt. Der Satz von Rice besagt, dass jedes nichttriviale Entscheidungsproblem nicht rekursiv ist. Daher gibt es keine Algorithmen zum Testen von Programmen auf Korrektheit und Terminierung. Mit der Methode der Reduktion kann man Beweise der Unentscheidbarkeit auch aut3erhalb der Welt der Probleme fiber Turingmaschinen f/ihren. Ein Beispiel hierf/ir ist das Post'sche Korrespondenzproblem.
204
5 Berechenbarkeit
Die Motivation, die Entscheidbarkeit und Unentscheidbarkeit zu studieren, s t a m m t urspriinglich von dem bekannten Mathematiker David Hilbert. Anfang des 19. Jahrhunderts formulierte er einen Forschungsplan, dessen Ziel die Entwicklung eines Formalismus war, in dem man alle mathematischen Probleme 16sen k6nnte. Kurt G6del [G6d 31] bewies 1931, dass der Hilbert'sche Plan nicht realisierbar ist, weil jede mathematische Theorie, die mindestens die Prgdikatenlogik erster Stufe enthglt, unentscheidbar ist. Diese fundamentale Arbeit [GSd 31] fiihrte zur Formalisierung des Begriffs Algorithmus und legte die Grundlage der Theorie der Berechenbarkeit. Die Unentscheidbarkeit der universellen Sprache hat Turing in [Tur 36] bewiesen. In [Ric 53] verSffentliche Rice den nach ihm benannten Satz. Die Unentscheidbarkeit des Post'schen Korrespondenzproblems wurde von Post in [Pos 46] gezeigt. Als weiterfiihrende Literatur fiber die elementaren Grundlagen der Theorie der Berechenbarkeit hinaus empfehlen wir w~rmstens die entsprechenden Kapitel in [HU 79, HMU 01, Sip 97]. Wenn m a n die EE-Reduktion benutzt, um die Aquivalenz zwischen Problemen beztiglich der RekursivitS~t zu definieren, zerf~llt die Menge der nichtrekursiven Sprachen in unendlich viele Klassen s i = 1, 2, .... Wenn eine Sprache L in/2i ist, bedeutet dies, dass L nicht entscheidbar bleiben wiirde, auch wenn wir fiir alle unentscheidbaren Probleme aus den Klassen s s s Algorithmen hS~tten. Interessanterweise gibt es praktische Probleme, die in h6here Klassen dieser Hierarchie geh6ren. Fiir eine Vertiefung der Theorie der Berechenbarkeit empfehlen wir die klassischen B/icher yon Trakhtenbrot [Tra 63] und Rogers [Rog 67].
Kontrollaufgaben 1. Erkl~ren Sie das Cantor'sche Konzept zum Vergleich der M~chtigkeiten zweier Mengen. Warum betrachten wir dieses Konzept als natiirlich? 2. Was ist der Hauptunterschied zwischen endlichen und unendlichen Mengen? (Oder wie wfirden Sic eine unendliche Menge definieren?) 3. Wann ist eine Menge abz~hlbar? Geben Sie mehrere Beispiele von abz~hlbaren Mengen an. Wann ist ein Sprache rekursiv und wann ist sie rekursiv aufz~hlbar? 4. Warum ergibt das kartesische Produkt zweier abzS~hlbarer Mengen eine abzS~hlbare Menge? 5. Erkl~ren Sie die Diagonalisierungsmethode. Beweisen Sie, dass es Sprachen gibt, die keine endliche Darstellung haben. 6. Die reellen sowie die rationalen Zahlen liegen auf der Zahlenachse. Beide Zahlenmengen Q und IR haben die Eigenschaft, dass zwischen zwei beliebigen Zahlen unendlich
5.7 Zusammenfassung
10.
11. 12.
13.
205
viele Zahlen aus dieser entsprechenden Menge liegen. Trotzdem gibt es mehr reelle Zahlen als rationale Zahlen (IQI < IIRI) 9 Wie ist das mOglich? Was ist der Hauptunterschied zwischen rationalen und reellen Zahlen bez/iglich ihrer Darstellungsm6glichkeiten? Wann sagen wit, dass eine Sprache L1 auf eine Sprache L2 reduzierbar ist? Wie wendet man das Konzept der Reduzierbarkeit an, um zu zeigen, dass eine Sprache nicht rekursiv ist? Sei f ( x ) = c eine konstante Funktion yon IN nach IN fiir eine Konstante c E IN. Beweisen Sie, dass es fiir eine gegebene TM (ein gegebenes Programm) nicht entscheidbar ist, ob sie (es) die Funktion f berechnet. Wie baut man eine Instanz des modifizierten Post'schen Korrespondenzproblems f/it eine gegebene Turingmaschine? Um das erste nichtrekursive Problem zu finden, wendet man iiblicherweise die Diagonalisierungsmethode an. Wie kann man dies ohne die Diagonalisierungsmethode schaffen? Die Kolmogorov-Komplexitgt eines Wortes ist wohl definiert. Warum kann man sie nicht algorithmisch fiir jedes Wort bestimmen? Beweisen Sie folgende Aussagen. (i) Wenn man f/ir jede Zahl n E IN die Kolmogorov-Komplexitgt K(n) bestimmen k6nnte, dann w/~re LH E /ZR. (ii) Falls K(n) f~r jede Zahl n E IN algorithmisch berechenbar ist, dann ist Lu rekursiv (entscheidbar). Betrachten Sie die Sprache LKol =
{(w,x) I K(w) <_Nurnrner(x), w,x E {0,1}*}.
Beweisen Sie dass LKol unentscheidbar ist. Ist LKol rekursiv aufzghlbar?
Es gibt keinen grSBeren Schaden als verlorene Zeit.
Michelangelo
6
Komplexit
6.1
Zielsetzung
itstheorie
Z:
Die Theorie der Berechenbarkeit liefert uns Methoden zur Klassifizierung von Problemen beziiglich ihrer algorithmischen LSsbarkeit. So ist ein Problem algorithmisch 15sbar, wenn ein Algorithmus zur LSsung dieses Problems existiert, und ein Problem ist algorithmisch unlSsbar, wenn kein Algorithmus fiir dieses Problem existiert. Die KomplexitS~tstheorie ist eine Fortsetzung der Theorie der Berechenbarkeit in dem Sinne, dass sie eine feinere Einteilung der Klasse algorithmisch 15sbarer Probleme anstrebt. In den sechziger Jahren, als der Einsatz von Rechnern zur LSsung von Problemen nicht mehr nur auf ein paar Forschungsinstitute beschrS~nkt war, stellte man fest, dass alleine die Existenz eines Algorithmus zur LSsung eines Problems noch keine Garantie fiir eine erfolgreiche rechnerunterstiitzte LSsung des Problems ist. Es gab viele praxisrelevante, algorithmisch 15sbare Probleme, fiir die alle entworfenen Programme tagelang auf gegebenen Eingaben ohne Erfolg arbeiteten. In solchen Fgllen stiirzte der Rechner ab, bevor er zu irgendeinem Resultat kam. Dies warf die Frage auf, ob dieser Misserfolg eine Folge unserer Unf~ihigkeit ist, einen effizienten Ansatz zur LSsung des betrachteten Problems zu finden, oder aber, ob es sich um eine inh~rente Eigenschaft des Problems handelt, die keine effiziente algorithmische LSsung des Problems zul~sst. Dies fiihrte dazu, dass man anfing, die Schwierigkeit der algorithmisch 16sbaren Probleme beziiglich des Rechenaufwandes zu messen, um so die Probleme nach deren Schwierigkeitsgrad zu klassifizieren. Die KomplexitS~tstheorie ist die Theorie der quantitativen Gesetze und Grenzen der algorithmischen Informationsverarbeitung. Diese Theorie hat auch eine 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 Universum gibt. Die Hauptziele der Komplexit~ttstheorie sind:
(i) Die Bestimmung der BerechnungskomplexitSoten (ZeitkomplexitSot als die Anzahl der Rechenoperationen, Speicherplatzkomplexit~t) konkreter Probleme.
(ii) Die Spezifikation der Klasse ,,praktisch '~ (effizient) 16sbarer Probleme und die Entwicklung von Methoden zur Klassifikation der algorithmisch 16sbaren Probleme in ,,praktisch 16sbare" und ,,praktisch unl6sbare". (iii) Vergleiche der Ettizienz (der Berechnungsst~rke) yon deterministischen, nichtdeterministischen und zufallsgesteuerten (randomisierten) Algorithmen.
In unserer ersten Begegnung mit der KomplexitS~tstheorie in diesem Kapitel beschr~tnken wir uns auf folgende Zielsetzung. In Abschnitt 6.2 lernen wir, wie man die Komplexit~tsmafie in dem Berechnungsmodell der Turingmaschine definiert (d.h. wie man die Komplexit~tt misst) und welche Eigenschaften diese Marie haben. In Abschnitt 6.3 definieren wir die grundlegenden KomplexitSotsklassen als Klassen yon Sprachen, die mit der gegebenen KomplexitSot entscheidbar sind. Hier diskutieren wir auch die Spezifikation der Klasse praktisch 16sbarer Probleme. In Abschnitt 6.4 zeigen wir, wie man die Komplexit~t von nichtdeterministischen Berechnungen misst, und wir definieren die fundamentalen nichtdeterministischen KomplexitS~tsklassen. Abschnitt 6.5 ist dem Vergleich der Effizienz yon deterministischen und nichtdeterministischen Berechnungen gewidmet. Dieser Vergleich beriihrt die philosophischen Grundlagen der Mathematik. Wir zeigen, dass die Komplexit~t von nichtdeterministischen Berechnungen der Komplexit~tt des deterministischen Verifizierens (Korrektheitspriifung) eines gegebenen mathematischen Beweises entspricht, und dass die deterministische KomplexitSot der KomplexitSot der Herstellung eines mathematischen Beweises entspricht. Damit ist die Frage, ob nichtdeterministische Algorithmen effizienter als die deterministischen Algorithmen sein k6nnen, 5,quivalent zu der Frage, ob es einfacher ist, mathematische Beweise algorithmisch zu verifizieren als sie algorithmisch herzustellen. Abschnitt 6.6 stellt das Konzept der NP-VollstSondigkeit vor, das uns eine Methode zum Beweisen gewisser Schwierigkeitsgrade konkreter Probleme beziiglich praktischer L6sbarkeit liefert.
6 Komplexit~ttstheorie
208
6.2
Komplexit itsmaBe
Zur Definition der Komplexit~tsmafie benutzen wir das Modell der MehrbandTuringmaschine. Die Gr~nde daf/ir sind, dass dieses Berechnungsmodell einerseits 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 definierter 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 entspricht 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 Speicherplatzkomplexitgt ist die GrSfie des benutzten Speichers, ausgedrtickt in der Anzahl der gespeicherten Rechnerw6rter. In den auf Turingmaschinen hasierten Modellen bestimmt das Arbeitsalphabet die Gr6fie des Rechnerwortes, weil die Symbole des Arbeitsalphabetes genau die erlaubten Inhalte der Rechnerw6rter darstellen. D e f i n i t i o n 6.1. Sei M eine Mehrband-Turingmaschine oder TM, die i m m e r hiilt. Sei E das Eingabealphabet von M . Sei x E E* und sei D = C1, C 2 , . . . , C~ die Berechnung von M auf x. Dann ist die Zeitkomplexit~it T i m e M ( x ) d e r B e r e c h n u n g von M a u f x definiert dutch T i m e M ( x ) = k - 1, d.h. dutch die Anzahl der Berechnungsschritte in D. Die Zeitkomplexit~it von M dutch
ist die Funktion TimeM : IN --+ IN, definiert
T i m e M ( n ) = m a x { T i m e M ( x ) [ x E E~}. Wir bemerken, dass TimeM(n) fiir jedes n E IN die minimale Zeitkomplexitgt ist, mit der M jede Probleminstanz der Lgnge n 16st. Anders ausgedriickt ist TimeM(n) die ZeitkomplexitS~t der lgngsten Berechnung auf Eingaben der L~tnge n (auf der ,,schwersten" Probleminstanz aus E~). Deswegen
6.2 Komplexitgtsmafie
209
nennt man diese Art der KomplexitS~tsmessung ,,die Komplexitgt im schlechtesten Fall". Eine andere MSglichkeit wgre z.B., die durchschnittliche KomplexitS~t auf W6rtern der LS~nge n zu betrachten. Die zwei Hauptgriinde ffir die Art der Messung aus Definition 6.1 sind folgende. Die Menschen wollen oft die maximale Sicherheit haben, und die KomplexitS~t im schlechtesten Fall gibt uns die Garantie, dass jede Eingabe (Probleminstanz) der GrSfie n durch M in TimeM(n) gelSst wird. Der andere praktische Grund ist, dass die Analyse der KomplexitS~t eines Algorithmus im schlechtesten Fall meist einfacher ist als eine KomplexitS~tsanalyse im durchschnittlichen Fall. Wir werden uns deswegen in diesem Buch auf die KomplexitS~t im schlechtesten Fall beschrS~nken. D e f i n i t i o n 6.2. Sei k E I N - {0}. Sei M eine k-Band-Turingmaschine, die i m m e r hiilt. Sei C - (q, x, i, ctl, il, ct2, i 2 , . . . , c~k, ik) mit 0 <_ i <_ Izl + 1 ~ d 0
<_ ij <_ I jl + 1 fiir j - 1 , . . . , k
eine Konfiguration von M . Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n C ist 1 S p a c e M ( C ) -- max{lctil I i -
1 , . . . , k}.
Sei C1, C 2 , . . . , C1 die Berechnung von M a u f xitfit v o n M a u f x ist S p a c e M ( x ) -- max{SpaceM(Ci) l i Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n M i s t definiert dutch
x. Die S p e i c h e r p l a t z k o m p l e -
1 , . . . , 1}. eine Funktion Space M 9 IN ~ IN
S p a c e M ( n ) - - m a x { S p a c e M ( x ) l x E E~}. Es kSnnte iiberraschen, dass wir die Speicherplatzkomplexit~t einer Konfiguration als die maximale beschriftete LS~nge eines Arbeitsbandes statt der Summe der beschrifteten LS~ngen aller ArbeitsbSonder definiert haben. Im Prinzip ist es egal, welche der beiden M6glichkeiten man zur Definition der Speicherplatzkomplexitgt verwendet. Lemma 4.2 sagt uns, dass man k B~nder mit einem Band simulieren kann. Dabei ist die beschriftete LS~nge des Bandes genau das Maximum der beschrifteten LS~ngen der simulierten BSmder. Diese Beobachtung ffihrt uns zur folgenden Aussage. 1Man bemerke, dass die Speicherplatzkomplexit~it nicht yon der L~ingedes Eingabealphabets abh~ingt.
210
6 Komplexit~tstheorie
L e m m a 6.1. Sei k eine positive ganze Zahl. Fiir jede k - B a n d - T M A die iramer hiilt, existiert eine iiquivalente l - B a n d - T M B, so dass Space B (n) _< Space A(n). Der Grund fiir diese Eigenschaft der SpeicherplatzkomplexitS~t ist, dass die M~chtigkeit des Arbeitsalphabetes von M (die Lgnge der Rechnerwortes) keinen Einfluss auf SpaceM(n) hat. Daher ist diese Definition nicht zur Untersuchung von Unterschieden in der Gr6fie eines konstanten multiplikativen Faktors geeignet. L e m m a 6.2. Sei k eine positive ganze Zahl. Fiir jede k - B a n d - T M A existiert
Space B(n) _< SpaceA2(n) + 2 . Beweis. Wir liefern nur die Idee des Beweises. Sei F A das Arbeitsalphabet von A. Wir konstruieren das Arbeitsalphabet F B von B, so dass F B alle Symbole aus F A x F A enthglt. Wenn a,, a 2 , . . . , a,~ der Inhalt d e s / - t e n Bandes von A ist, i E {1, 2 , . . . , k}, und der Kopf auf c~j zeigt, enthglt das i-te Band von B das Wort
falls m gerade ist, und
falls m ungerade ist. Der Kopf des Bandes zeigt auf das Tupel, das cti enth/ilt 2, und in dem Zustand speichert B, auf welches der zwei Symbole in dem Tupel der Kopf auf dem /-ten Band von A zeigt. Offensichtlich ist es fiir B kein Problem, die Schritte von A einen nach dem anderen zu simulieren, und die Speicherplatzkomplexitgt von B ist h6chstens 1 + [SpaceA(n)/2 ] . D Durch iterative Anwendung von Lemma 6.2 ist es m6glich, fiir jede Konstante k und jede Mehrband-Turingmaschine M eine 5~quivalente MehrbandTuringmaschine 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 A1phabeten entsprechen aber zweifellos komplizierteren Operationen als Transitionen fiber kleineren Alphabeten. Dies ffihrt auch zu der M6glichkeit, die Arbeit yon Mehrband-Turingmaschinen um einen konstanten Faktor zu beschleunigen, wie es in der folgenden Aufgabe formuliert wird. Aufgabe 6.1. Beweisen Sie die folgende Behauptung: Sei M eine Mehrband-Turingmaschine, die immer hglt. Dann existiert eine zu M gquivalente Mehrband-Turingmaschine A mit TimeA(n) < Ti (~__meM,n, + 2n. -
2
Die Aussagen des Lemmas 6.2 und der Aufgabe 6.1 zeigen, dass die vorgestellte Art der Komplexit~tsmessung relativ grob ist. Fiir unsere Ziele entsteht dadurch kein Nachteil, weil die Unterschiede zwischen den KomplexitS~tsmagen 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 wichtiger als eine genaue Bestimmung derer Funktionswerte. Ffir die asymptotische Analyse yon KomplexitS~tsfunktionen benutzen wir die iibliche f~-, O-, (~- und o-Notation. D e f i n i t i o n 6.3. Fiir jede Funktion f " IN ~ IR + definieren wit {r" IN ~ IR+ [ 3n0 E IN, 3c E IN, so dass
>
<
f
}
Fiirjede Funktion r E O ( f (n)) sagen wit, dass r a s y m p t o t i s c h n i c h t schneller w~ichst als f . Fiir jede Funktion g" IN -+ IR + definieren wir
{s" IN --~ IR + [3n0 C IN, 3d E IN, so dass 1 fiir alle n > no" s(n) _> ~ - g ( n ) } .
Fiir jede Funktion s C f~(g(n)) sagen wit, dass s a s y m p t o t i s c h m i n d e s t e n s so schnell w~ichst wie g.
212
6 Komplexit~tstheorie
Fiir jede Funktion h" IN ~ IR + definieren wit O(h(n))
-
{q" IN ~ IR + [ 3c, d, no E IN, so dass fiir a l l e n >_ no " 1
_<
_<
n
=
Falls g E ~)(h(n)) sagen wir, dass g und h a s y m p t o t i s c h Seien f u n d
gleich sind.
g zwei Funktionen yon IN nach IR +. Falls
lira f (n)
O,
dann sagen wir, dass g a s y m p t o t i s c h sch iben f ( n ) -- o ( g ( n ) ) .
schneller
w ~ i c h s t als f u n d
wir
Aufgabe 6.2. Welche der folgenden Aussagen sind korrekt? Begriinden Sie Ihre Antwort. (i) (ii) (iii) (iv) (v)
2~ E 0(2 ~+a) fiir jede positive Konstante a E IN. 2b~ E 0(2 n) fiir jede positive Zonstante b E IN. log b n E O(log c n) fiir alle reellen Zahlen b, c > 1. ( n + 1)! E O(n!). log(n!) c O(n. logn).
Aufgabe 6.3. Beweisen Sie fiir alle Funktionen f u n d g : IN ~ IR+, dass folgende Aussagen gelten: (i) f E O(g) und g E O(h) impliziert f E O(h). (ii) f E O(g) ~=>g E ft(f). (iii) f c (~(g) e=> g c O ( f ) e=~ O ( f ) = O(g). B e t r a c h t e n wir jetzt die T M M aus Fig. 4.5, die die Sprache LMitte akzeptiert. M 15~uft v o m linken his z u m rechten R a n d des B a n d e s u n d zuriick u n d bewegt dabei den linken R a n d ein Feld nach rechts u n d den rechten R a n d ein Feld nach links. Auf diese Weise b e s t i m m t M das m i t t l e r e Feld. Die Z e i t k o m p l e x i t g t von TimeM von M ist offensichtlich in O(n2). Aufgabe 6.4. Bestimmen Sie fiir die TM aus Fig. 4.5 TimeM(n) genau. Aufgabe 6.5. Entwerfen Sie eine 1-Band-Turingmaschine B mit L(B)
-
-
LMitte und Time. (n) E
o(~) Aufgabe 6.6. Analysieren Sie asymptotisch die Zeitkomplexit~t der TM A aus Fig. 4.6, die die Sprache L7) akzeptiert.
6.2 Komplexitgtsmafie
213
Die 1-Band-Turingmaschine A aus Fig. 4.10 akzeptiert die Sprache Lgleich = {wCpw I w E (Eboo~)*}, indem das Prefix des Eingabewortes his zum # auf das Arbeitsband kopiert und dann der Inhalt des Arbeitsbandes mit dem Suffix des Eingabewortes nach dem # verglichen wird. Offensichtlich ist TimeA(n) _<
Aufgabe 6.7. Entwerfen Sie eine 2-Band-Turingmaschine M mit den Eigenschaften L(M) Lgleich, TimeM(n) E 0(lo--Q-~2 ~) und SpaceM(n) E O(log2 n). n 2
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 klassifizieren 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 (asymptotischen) 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 asymptotisch 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 betrachten. Obwohl diese Idee natiirlich und verniinftig aussieht, zeigt folgender Satz, dass man sie nicht zur Definition der Komplexitgt im Allgemeinen benutzen kann. Wegen des hohen Schwierigkeitsgrades verzichten wir auf einen Beweis. S a t z 6.1. Es ezistiert ein Entscheidungsproblem (L, }--]%ool), 8 0 dass fiir jede MTM A, die (L, Ebool) entscheidet, eine MTM t3 existiert, die (L, Ebool) auch entscheidet, und fiir die gilt TimeB(n) _< log2(TimeA(n))
fiir unendlich viele n E IN. Satz 6.1 besagt, dass es Probleme gibt, fiir die man jeden gegebenen Algorithmus fiir dieses Problem wesentlich verbessern kann 3. Dies bedeutet, dass fiir solche Probleme keine optimalen Algorithmen existieren und man deshalb fiir diese Probleme die Komplexit~tt nicht in dem oben beschriebenen Sinne definieren kann. Deswegen spricht man in der KomplexitSotstheorie nur fiber obere und untere Schranken f/Jr die KomplexitS~t eines Problems im Sinne der folgenden Definition. aMan bemerke, dass diese VerbesserungsmSglichkeit nach Satz 6.1 zu einer unendlichen Folge von Verbesserungen fiihrt.
214
6 Komplexit~tstheorie
D e f i n i t i o n 6.4. Sei L eine Sprache. Seinen f und g zwei Funktionen yon IN nach IR +. Wir sagen, dass O(g(n)) eine obere Schranke ffir die Zeitkomplexit~it v o n L ist, falls eine MTM A existiert, so dass A die Sprache L entscheidet und TimeA(n) E O(g(n)).
Wir sagen, dass ~ ( f (n)) eine untere Schranke ffir die Zeitkomplexit~it v o n L ist, falls fiir jede MTM B, die L entscheidet, TimeB(n) E ~ ( f ( n ) ) . Eine MTM C heiflt o p t i m a l m r L, falls Timec(n) E O(f(n)) und f~(f(n)) eine untere Schranke fiir die Zeitkomplexitiit von L i s t . Die Bestimmung einer oberen Schranke fiir die Zeitkomplexitgt eines Problems ist meistens nicht sehr schwer, weil es hinreichend ist, einen Algorithmus zur LSsung des Problems zu finden. Eine nichttriviale untere Schranke fiir die Komplexit~t konkreter Probleme zu beweisen, gehSrt zu den technisch schwierigsten Aufgaben der Informatik, weil dies einen Beweis der Nichtexistenz eines effizienten Algorithmus fiir das betrachtete Problem erfordert. Wie schwer diese Aufgabe ist, kann man damit illustrieren, dass wir tausende Probleme kennen, 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 abstrakten 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 logarithmischem 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 Berechnung 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 folgendem Beispiel. Seien a _> 2 und k zwei positive ganze Zahlen. Die Aufgabe ist, a 2k zu bestimmen. Dies kann man mit dem Programm f ori-- 1 to kdo
a'--a.a
6.3
Komplexittitsklassen
und
die Klasse
P
215
berechnen. Das Programm berechnet tatsS~chlich mit den folgenden k Multiplikationen a 2 "-- a 9
a,
a 4 --
a 2 9 a 2,
a s --
a 4 9 a 4,
...,
a 2k - -
a 2k-1
9 a 2k-1
den Wert a 2k. Bei der Messung mit uniformem Kostenmafi ist die Speicherplatzkomplexit~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) Operationen 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 exponentiellen 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 Berechnung ist die Summe der Preise der in der Berechnung durchgefiihrten Operationen. Die Speicherplatzkomplexittit ist die Summe der Darstellungslgngen der Inhalte der benutzten Variablen. Die Messung mit logarithmischem Kostenmafi ist immer realistisch, sie kann nur manchmal sehr aufwendig sein.
6.3
Komplexitiitsklassen und die Klasse P
Fiir die Definition yon KomplexitS~tsklassen benutzen wir das Modell der Mehrband-Turingmaschine. Wir betrachten hier KomplexitS~tsklassen nur als Sprachklassen, also als Mengen von Entscheidungsproblemen. D e f i n i t i o n 6.5. Fiir alle Funktionen f , g yon IN nach IR + definieren wir:
TIME(f) = {L(B) I B ist eine MTM mit TimeB(n) E O ( f ( n ) ) } , SPACE(g) = {L(A) I A ist eine MTM mit SpaceA(n ) E O(g(n))}, DLOG = SPACE(log 2 n), P -
0
TIME(nC)'
cEIN
PSPACE
-
[..J SPACE(nC), cEIN
216
6 Komplexit~tstheorie
EXPTIME
=
0
TIME(2~d).
dEIN
Im Folgenden beschSfftigen wir uns mit den grundlegenden Beziehungen zwischen den Komplexit/~tsklassen und den Eigenschaften der ZeitkomplexitS~t und der SpeicherplatzkomplexitS~t. L e m m a 6.3. Fiir jede Funktion t : IN ~ IR + gilt TIME(t(n)) C_ SPACE(t(n)). Beweis. Jede MTM M, die in der Zeit TimeM(n) arbeitet, kann nicht mehr ale TimeM(n) Felder eines arbeitsbandes beschriften. Also gilt SpaceM(n ) _< TimeM(n) fiir jede MTM M. D Korollar
P c PSPACE
6.1.
Fiir die anderen Vergleiche brauchen wir den Begriff der konstruierbaren Funktionen. Die Idee dabei ist, Mehrband-Turingmaschinen zu bauen, die auf sich selbst aufpassen in dem Sinne, dass sie gewisse Komplexit/ttsschranken in keiner ihrer Berechnungen iiberschreiten. D e f i n i t i o n 6 . 6 . Eine Funktion s :IN ~ IN heiflt p l a t z k o n s t r u i e r b a r , eine I - B a n d - T M M existiert, so dass
falls
_< (ii) fiir jede Eingabe 0~, n E IN, generiert M das Wort 0 s(~) auf seinem Arbeitsband und hiilt in qaccept. Eine Funktion t : lN ~ IN heiflt z e i t k o n s t r u i e r b a r , stiert, so dass
falls eine MTM A exi-
(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-BandTM 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 Arbeitsband jeweils die binS~re Darstellung der aktuellen Position des Kopfes auf dem Eingabeband, indem A fiir jede Bewegung um ein Feld nach rechts auf dem
6.3 Komplexittitsklassen und die Klasse P
217
E i n g a b e b a n d zu dem Inhalt des Arbeitsbandes eine Eins addiert. Wenn der Kopf auf dem E i n g a b e b a n d das erste u Symbol erreicht, d a n n hat der beschriftete Teil des Arbeitsbandes die LS~nge [log2(n + 1)]. Wenn m a n d a n n alle Einsen auf dem A r b e i t s b a n d durch Nullen ersetzt, enth~ilt das A r b e i t s b a n d das Wort 0 [1~ . Wir beobachten, dass die B e n u t z u n g einer 1-Band-TM M in der Definition der Platzkonstruierbarkeit unwesentlich ist, weil jede M T M mit der gleichen Speicherplatzkomplexit~t durch eine 1-Band-TM simuliert werden kann. Eine M T M M kann die Funktion [x/~] wie folgt konstruieren. M versucht auf einer Eingabe 0 i fiir i - 1, 2 , . . . festzustellen, ob i 2 _< n < (i + 1) 2. Ffir ein festes i kann die Uberpriifung wie folgt laufen. Das erste und das zweite Band enthalten 0 i. D a n n bewegt m a n den Kopf auf dem E i n g a b e b a n d i. i-real nach rechts, u m festzustellen, ob i - i > n i s t . Diese i - i Schritte nach rechts auf dem E i n g a b e b a n d realisiert m a n wie folgt. Der Kopf auf dem E i n g a b e b a n d und der Kopf auf dem ersten Band bewegen sich immer simultan nach rechts, der Kopf auf dem zweiten B a n d bleibt stehen. Wenn der Kopf auf dem ersten Band das Symbol u erreicht, geht er zuriick an den linken R a n d des Bandes und der Kopf auf dem zweiten Band geht einen Schritt nach rechts. D a m i t wird der Kopf auf dem E i n g a b e b a n d so viele Schritte nach rechts machen, dass es dem P r o d u k t der InhaltslS~ngen der beiden ArbeitsbS~nder entspricht. Aufgabe 6.8. Beschreiben Sie in Form von Diagrammen die zwei oben beschriebenen Mehrband-Turingmaschinen zur Konstruktion der Funktionen [log2(n + 1)] und [v/-~]. Offensichtlich funktioniert die Idee der Multiplikation der InhaltslS~ngen von zwei BS~ndern auch, u m zu zeigen, dass die Funktion f ( n ) - n q fiir ein beliebiges q E IN zeitkonstruierbar ist. Aufgabe 6.9. Beweisen Sie, dass folgende Funktionen platzkonstruierbar sind: (i) [v/~n]q ft~r jede positive ganze Zahl q, (ii) (iii) |n2| f~r jede positive ganze Zahl q _> 2, (iv) 2 n" Aufgabe 6.10. Zeigen Sie, dass folgende Funktionen zeitkonstruierbar sind: (i) (ii) (iii) (iv)
n j fiir jedes j E I N - {0}, c. n fiir jedes c c N -
{O},
2~, c~ fiir jedes c E I N - {0, 1}.
Aufgabe 6.11. Beweisen Sie die folgende Aussage. Wenn s(n) und t(n) zwei platzkonstruierbare (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 ausreicht, eine MTM M mit L ( M ) = L mit s(n)-platzbeschrgnkten Berechnungen auf allen Eingaben aus L zu konstruieren, um die Existenz einer MTM A zu garantieren, die ebenfalls L akzeptiert und auf allen Eingaben (also auch auf W6rtern aus L c) die Schranke s(n) ffir die PlatzkomplexitS~t einhSJt. L e m m a 6.4. Sei s : IN ~ IN eine platzkonstruierbare Funktion. Sei M eine MTM ~it Sp~c~(~) _< ~(l~l) f ~ ~ZZ~9 ~ n ( ~ ) . D ~ ~ i ~ t i ~ t ~ i ~ MTM d mit n ( d ) = L ( M ) und
sp~~(~) _< ~(~), d.h. S P ~ A ( Y ) ~ ~(lYl) I~Z~alZ~ y ~Zb~ d~m Ei~gab~alphab~t vo~ ~ . Beweis. Sei M eine k-Band-TM ffir ein k E I N - {0} mit SpaceM(x ) _< s(lxl) fiir alle x E L ( M ) . Sei B eine 1-Band-TM, die s konstruiert. Wir konstruieren eine (k + 1)-Band-TM A, die auf jeder Eingabe x folgendermagen arbeitet. (i) A interpretiert x als 0 x und simuliert die Arbeit yon B auf 0 x auf dem (k + 1)-ten Arbeitsband. Die Simulation endet damit, dass das Wort 0~( x ) auf das (k + 1)-te Band geschrieben wird. (ii) A schreibt ein spezielles Symbol ~ r FM auf die s(lxl)-te Position von allen ArbeitsbS~ndern. (iii) A simuliert schrittweise die Arbeit yon M auf x mit den ersten k Bs Falls M versucht, ein Feld rechts yon r auf einem der k ArbeitsbS~ndern zu betreten, beendet A seine Berechnung in qreject- Falls M hS~lt, hS~lt A auch in einem Zustand mit derselben Bedeutung. Offensichtlich ist SpaceA(z ) _< ~(1~1) ffir alle Eingaben z. Wir zeigen jetzt, dass L(A) = L ( M ) . Falls x e L ( M ) , dann gilt SpaceM(x ) _< s(Ixl). Daher simuliert A die ganze Berechnung von M auf x und endet in qaccept. Also x E L(A). Wenn y ~ L ( M ) , unterscheiden wir zwei Fglle. Falls SpaceM(Y ) _< ~(lYl), dann simuliert A die ganze Berechnung von M auf y und akzeptiert dadurch y nicht. F~lls Sp~o~(y) > ~(lyl), dann bricht A die Simulation der Berechnung von M auf y in dem augenblick ab, in dem M mehr als ~(lyl) Speicherzellen auf einem Arbeitsband nutzen m6chte. Nach der Unterbrechung der Simulation geht A in den Zustand qreject fiber, also y ~ L(A). D Eine zu Lemma 6.4 analoge Behauptung ffir die ZeitkomplexitS~t gibt das folgende Lemma.
6.3 Komplexitgtsklassen und die Klasse P
219
L e m m a 6.5. Sei t : IN ~ IN eine zeitkonstruierbare Funktion. Sei M eine MTM mit TimeM(x) _< t(izl) fiir alle x E L ( M ) . Dann existiert ein MTM A mit L(A) = L ( M ) und TimeA(n) E O(t(n)). Aufgabe 6.12. Beweisen Sie Lemma 6.5.
Die obigen Lemmata zeigen, dass es fiir die Definition der Komplexitgtsklassen SPACE(s) und TIME(t) fiir eine platzkonstruierbare Funktion s und eine zeitkonstruierbare Funkion t unwesentlich ist, ob man Space M und T i m e r einer TM M als SpaceM(n) TimeM(n)
=
max{SpaceM(X) l x E E ~} und
=
m a x { T i m e M ( x ) l x E E ~}
oder als SpaceM(n ) = TimeM(n) =
max{SpaceM(X) l x E L ( M ) u n d max{TimeM(x) lx E L(M)und
= ~} = ~}
definiert. Das ngchste Resultat zeigt eine wichtige Relation zwischen Speicherplatzkomplexitgt und Zeitkomplexitgt. Satz 6.2. Fiir jede platzkonstruierbare Funktion s mit s(n) >_ log 2 n gilt SPACE(s(n)) c_ LJ TIME(c~(~))" cEIN
Beweis. Sei L E SPACE(s(n)). Nach Lemma 6.2 existiert eine 1-Band-TM V = (Q, ~, 1-', (~, q0, qaccept, qreject), SO dass L = L(_/~f) u n d Sp&eeM(Tt ) ~ s(7t) gelten und M immer hglt.
Fiir jede Konfiguration C = (q, w , i , x , j ) von M definieren wir die i n n e r e K o n f i g u r a t i o n v o n C als In(C) : (q, i, x, j). Eine innere Konfiguration enthSJt nur die Teile der Konfiguration, die sich wghrend einer Berechnung 5mdern k6nnen. Wir haben also den Inhalt w des Eingabebandes ausgelassen, der wghrend der ganzen Berechnung unvergndert
220
6 Komplexitgtstheorie
bleibt. Unsere Idee ist jetzt zu zeigen, dass es keinen Sinn macht, 15~nger als die Anzahl aller m6glichen inneren Konfigurationen zu arbeiten, weil eine Berechnung in eine Endlosschleife gerS~t, wenn sie auf einem Wort w zwei gleiche innere Konfigurationen enthS~lt. Betrachten wir jetzt die Mengen InKonf(n) aller m6glichen inneren Konfigurationen (q, i, x, j) der l-Band-TM M auf allen Eingabew6rtern der LS~nge n. Dann muss 0 _< i _< n + 1, Izl_ SpaceM(rt) _< s(rt) und 0 _< j _< SpaceM(rt ) _< s(n) gelten. Daher
IInKonfM(n)[
fiir c -
101 + 2)Irl __ (m x{2, IQI, Irl}) 4.s(~) < cS(~) <
(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 Konfigurationen 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 Konfigurationen Ci und Cj identisch sind. Weil M deterministisch ist, ist
D -- C1,...,Ci_I, Ci, Ci+I,...,Cj_I, Ci, Ci+I,...,Cj_I, C i . . . eine unendliche Berechnung mit der endlosen Schleife Ci, C i + l , . . . , Cj. Deswegen 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 insbesondere, 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 Arbeitsbandes 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 zweiten Band. Falls alle Nullen auf dem zweiten Band gel6scht worden sind und die Berechnung von M auf w nicht endet, dann hSolt A in qreject. Falls M in hachstens c~( ~ ) Schritten seine Berechnung auf w beendet, dann endet A entsprechend in qaccept oder qreject. Wir haben schon bemerkt, dass die Berechnungsphasen (i) und (ii) von A in O(d ~(~)) bzw. O(c ~(~)) Zeit durchfiihrbar sind. Die Phase (iii) von A lauft offensichtlich in Zeit O(c ~(~ )), also Timea(n) E O((max{c, d})~(~)). Falls x E L ( M ) , dann hat die Berechnung yon i F / a u f x h6chstens die LS~nge c ~(x) und damit akzeptiert A nach erfolgreicher Simulation der Berechnung yon M auf x das Wort x auch. Wenn x ~ L ( M ) , dann wird x yon A offensichtlich verworfen. K o r o l l a r 6.2. D L O G c P und PSPACE c E X P T I M E . Nach Korollar 6.1 und 6.2 erhalten wir die folgende fundamentale Hierarchie von deterministischen KomplexitS~tsklassen. D LOG c P c PSPACE c E X P T I M E . Zu den fundamentalsten Resultaten der KomplexitSotstheorie geh6ren die folgenden HierachiesSotze. Die Beweise dieser SSotze basieren auf einer komplizierten Anwendung der Diagonalisierungsmethode, und wir verzichten deshalb auf die Beweise in dieser Einfiihrung. S a t z 6.3.* Seien s l und s2 zwei Funktionen von IN nach IN mit folgenden Eigenschaften:
(ii)
82(n) > log 2 n, S2 ist platzkonstruierbar und =
Dann gilt SPACE(s~) ~ SPACE(s2). S a t z 6.4.* Seien tl und t2 zwei Funktionen von IN nach IN mit folgenden Eigenschaften:
222
6 Komplexit~tstheorie
(i) t2 ist zeitkonstruierbar und (ii) tl(n) . log2(tl(n)) - o(t2(n)). Dann gilt TIME(t1) c TIME(t2). Die Hierarchiesgtze zeigen, dass es beziiglich der Komplexitgt beliebig schwere Probleme gibt. Z.B. gibt es Probleme, die nicht in TIME(2 ~) liegen (d.h. es existiert keine TM, die das Problem effizienter als in der Zeit 2~ 16sen kann). Dass man dabei auf die Grenze des physikalisch Machbaren st6fJt, zeigt die Tabelle 6.1, die das Wachstum der Funktionen 10n, 2n 2, n 3, 2~ und n! fiir die Eingabelgngen 10, 50, 100 und 300 zeigt. Wenn die Zahlen zu grog sind, geben wir nur die Anzahl der Ziffern ihrer Dezimaldarstellung an. Tab. 6.1 n
10
50
100
300
500 5000 125000 16 Ziffern 65 Ziffern
1000 20000 1000000 31 Ziffern 158 Ziffern
3000 180000 27000000 91 Ziffern 615 Ziffern
f(n) 10n 2n 2 7t 3
2n
n!
100 200 1000 1024 3, 6 . 1 0 6
Setzen wir voraus, dass unser Rechner 106 Operationen in einer Sekunde durchfiihrt. Dann braucht ein Algorithmus A mit TimeA(n) = n 3 27 Sekunden 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 Konstante 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 exponentiell 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 Zielsetzung 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 polynomieller Algorithmus zu seiner LSsung existiert. Die Klasse P ist die Klasse der praktisch entscheidbaren Problerne. Zu dieser Entscheidung fiihrten im Wesentlichen folgende zwei Griinde.
1. Der erste Grund basiert mehr oder weniger auf einer praktischen Erfahrung. Dass die Probleme, fiir die kein polynomieller Algorithmus existiert, als praktisch unl6sbare Probleme spezifiziert werden sollen, ist aus Tabelle 6.1 ersichtlich. 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 Algorithmus 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 immer, 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 Zeitkomplexit~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. Forreal 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 Polynora 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 wachsen muss als n 3. Als Beispiel k6nnen wir die Modelle der Turingmaschinen und der Mehrband-Turingmaschinen betrachten. Offensichtlich sind Turingmaschinen 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 folgende Aussage zu beweisen. Fiir jede MTM A mit TimeA(n) _> n existiert eine gquivalente TM B, so dass TimeB(n) C O((TimeA(n))2).
6.4
Nichtdeterministische Komplexit
itsmaBe
Die nichtdeterministischen Turingmaschinen (Algorithmen) k6nnen viele 5 unterschiedliche Berechnungen auf einer Eingabe machen. Diese k6nnen alle sehr unterschiedliche Komplexitgten haben. Was ist dann die Komplexitgt der Arbeit einer nichtdeterministischen Maschine (eines nichtdeterministischen Algorithmus) M auf einer Eingabe w? Wir betrachten bei nichtdeterministischen Berechnungsmodellen die optimistische Ansicht, die besagt, dass eine nichtdeterministische Maschine immer die beste MSglichkeit aus einer bestehenden Auswahl wghlt. Die ,,beste Wahl" bedeutet nicht nur die richtige Wahl, die zu dem richtigen Resultat ftihrt, sondern auch die effizienteste Wahl, die mit minimaler Komplexitgt zu dem richtigen Resultat ftihrt. Deswegen definiert man die nichtdeterministische Komplexitgt einer Maschine M auf einer Eingabe x als die Komplexitgt der effizientesten Berechnung yon M auf x mit dem richtigen Resultat. Im Falle der Sprachenerkennung (der Entscheidungsprobleme) betrachtet man nur die Komplexitgt von Berechnungen auf WSrtern, die in der Sprache liegen. D e f i n i t i o n 6.7. Sei M eine NTM oder eine nichtdeterministische MTM. Sei x E L ( M ) c_ E*. Die Z e i t k o m p l e x i t ~ i t v o n m a u f x, T i m e M ( x ) , ist die 5Sogar unendlich (aber aufzghlbar) viele.
6.4 Nichtdeterministische Komplexit~tsmage
225
Liinge der kiirzesten akzeptierenden Berechnung von M auf x. Die Z e i t k o m plexit~it v o n M ist die Funktion TimeM" IN --+ IN, definiert dutch T i m e M ( n ) -- max{TimeM(x) i x E L ( M ) n E~}.
Sei C - C I ~ C 2 ~ . . . ~ C m eine akzeptierende Berechnung von M auf x. Sei SpaceM(C~ ) die Speicherplatzkomplexitgt der Konfiguration C~. Wit definieFen
SpaceM(C)
-
-
max{SpaceM(Ci) I i - 1, 2 , . . . ,
Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n M a u f x ist S p a c e M ( x ) -- min{SpaceM(C )
C ist eine akzeptierende Berechnung yon M auf x.}.
Die S p e i c h e r p l a t z k o m p l e x i t ~ i t v o n M i s t definiert dutch
die Funktion Space M 9 IN --+ IN
S p a c e M ( n ) -- max{SpaceM(z) I z E L ( M ) n E~}. D e f i n i t i o n 6.8. Fiir alle Funktionen f, g" IN ~ IR + definieren wit
NTIME(f) NSPACE(g)
=
{ L ( M ) I M ist eine nichtdeterministische MTM
=
mit TimeM(n) E O ( f ( n ) ) } , { L ( M ) I M ist eine nichtdeterministische MTM
NLOG = NP
-
mit SpaceM(n ) r O(g(n))}, NSPACE(log 2 n), U NTIME(nC)' und cEIN
NPSPACE -
U NSPACE(n~)" cr
Zuerst zeigen wir analog zu Lemma 6.3 und Satz 6.2 die Relation zwischen der Zeitkomplexit~t und der Speicherplatzkomplexit~t yon nichtdeterministischen Turingmaschinen. L e m m a 6.6. Fiir alle Funktionen t und s mit s(n) >_ log 2 n gilt
(i) NTIME(t)c_ NSPACE(t)
226
6 Komplexit~tstheorie
(ii) NSPACE(s)c_ U NTIME(c~(~)) cEIN
Beweis. Wir beweisen zuerst (i) und dann (ii). (i) Sei L E NTIME(t). Dann existiert eine nichtdeterministische MTM M mit L ( M ) - L und TimeM(n) <_ d. t(n) fiir eine Konstante d und alle geniigend grogen n. Dies bedeutet, dass ftir jedes gentigend lange x E L ( M ) eine akzeptierende Berechnung Cx yon M auf x yon h6chstens der Ltinge d't(lxl) existiert. Weil in d. t(n) Schritten h6chstens d. t(n) Felder eines Arbeitsbandes besucht werden, ist SpaceM(Cx ) <_ d. t(l~l). Damit ist aber SpaceM(n ) <_ d. t(n) fiir alle geniigend grogen n, also L E NSPACE(t). (ii) Sei L E NSPACE(s). Dann existiert eine nichtdeterministische MTM A mit L - L ( M ) und SpaceA(x ) _< d . ~(1~1) fiir eine Konstante d und alle geniigend langen WSrter x E L(A) - L. Dies bedeutet, dass fiir jedes geniigend lange x E L(A) eine akzeptierende Berechnung Cx mit SpaceA(Cx ) <_ d. ~(1~1) existiert. Sei Cx die kiirzeste akzeptierende Berechnung von A auf x mit dieser Eigenschaft. Mit dem gleichen Argument wie im Beweis von Satz 6.2 erhalten wir, dass es eine Konstante k gibt, so dass die Lgnge von Cx hSchstens iinKonfA(ixl)l _< ka.~( x ) fiir alle geniigend langen x E L(A) ist. Wenn die L~inge von Cx grSt3er als IInKonfA(Ixl)l w a r e , dann existierten i, j E I N - {0}, i r j, so dass G
- - C1, C 2 , . . . , C i _ I ,
Ci, Ci+I,...,Cj,
Cj+I,...,Cm
und Ci und Cj gleiche Konfigurationen w/iren. Dann ist aber die Berechnung Clx - - C1, C2, . . . , C i _ I , C i , Cjq-1, . . . , C m
auch eine akzeptierende Berechnung von A auf x. Das ist ein Widerspruch zur Annahme, dass C~ die kfirzeste akzeptierende Berechnung yon A auf x ist. Weil A fiir alle geniigend langen W6rter x E L(A) akzeptierende Berechnungen von h6chstens der Lgnge kd
( x ) =
x )
fiir Konstanten k und d hat, ist TimeA(n) E O(c ~(~)) ftir c -- k d und somit L E NTIME(c~(~)).
A u f g a b e 6.14. Sei M eine nichtdeterministische MTM mit TimeM(n) _< t(n) fiir eine zeitkonstruierbare Funktion t. Beweisen Sie die Existenz einer nichtdeterministischen MTM
6.4 Nichtdeterministische Komplexitgtsmat3e
227
A, so dass L ( A ) - L ( M ) und eine Konstante d existiert, so dass fiir jede Eingabe w C E* alle Berechnungen von A auf w h6chstens die Lange d. t(Iwl) haben.
Der folgende Satz zeigt die grundlegende Relation zwischen deterministischen und nichtdeterministischen Komplexit~tsmaf3en. Satz 6.5. Fiir jede Funktion t " IN ~ IR + und jede zeitkonstruierbare und platzkonstruierbare Funktion s" IN ~ IN m i t s(n) >_ log 2 n gilt TIME(t) c_ NTIME(t), SPACE(t) c NSPACE(t), und NTIME(s(n)) c_ SPACE(s(n))c_ U TIME(c~(~)) 9 c6lN
Beweis. Die Behauptungen (i) und (ii) sind offensichtlich giiltig, weil jede MTM auch eine nichtdeterministische MTM ist.
Die Relation SPACE(s(n)) c_ U c ~ TIME(c~(~)) wurde in Satz 6.2 bewiesen. Um (iii) zu beweisen, reicht es, NTIME(s(n)) C_ SPACE(s(n)) zu zeigen. Sei g E NTIME(s(n)). Also gibt es eine nichtdeterministische MBand-TM M - (Q, E, F, ~M, q0, qaccept, qreject) mit L -- L ( M ) und TimeM(n) E O ( s ( n ) ) . Sei -~M
-
max{l M(U)l I U - (q, a, b l , . . . ,
bk) E Q x ( ~ U {~, $}) X F k}
die obere Schranke fiir die Anzahl der m6glichen Aktionen von M aus eiher 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 Knoten) 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 dritten 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 Berechnung und wird als inkonsistent betrachtet. Dasselbe gilt, wenn die Berechnung nach 1,3,1 beendet ist und kein vierter Schritt existiert. Ohne EinschrS~nkung der Allgemeinheit (Aufgabe 6.14) setzen wir voraus, dass eine Konstante d existiert, so dass alle Berechnungen von M auf einer Eingabe
228
6 Komplexitgtstheorie
1
2
1
1
1
/j i) Fig. 6.1 w h6chstens die Lgnge d. ~(Iwl) haben. Somit benutzt keine Berechnung von M auf w mehr als d. ~(Iwl) Speicherplgtze. Jetzt beschreiben wir eine (k + 2)-Band-TM A, die alle Berechnungen yon M yon hSchstens der Lgnge IInKonf~(n)l simuliert. Ftir jedes w E E* arbeitet A wie folgt.
(i) A schreibt 0 s( ~ ) auf das (k + 2)-te Band. (ii) A schreibt 0 ds( ~ ) auf das (k + 1)-te Band und 16scht dabei den Inhalt des (k + 2)-ten Bandes. (iii) A generiert eins nach dem anderen alle W6rter z E {1, 2 , . . . , rM}* yon hSch~ton~ dor La~go ~. ~(1~1) ~uf dora (k+2)-to~ B ~ d . ~ar jodo~ ~ ~imuliert A auf den ersten k Arbeitsbgndern die entsprechende Berechnung (falls eine solche existiert) yon der nichtdeterministischen k-Band-TM M auf w. Falls M in irgendeiner dieser simulierten Berechnungen seinen akzeptierenden Zustand qaccept erreicht, dann akzeptiert A die Eingabe w. Falls in keiner Berechnung von M auf w d e r Zustand qaccept erreicht wird, verwirff A d a s Wort w. Offensichtlich ist L ( A ) = L ( M ) , weil M keine lgngeren Berechnungen als d. s(n) hat, und damit iiberpriift A im Fall des Verwerfens alle Berechnungen von M auf der Eingabe. S p a c e r ( n ) _< d. s(n) gilt, weil S p a c e r ( n ) _< TimeM(n). Somit iiberschreitet A auf den ersten k Arbeitsbgndern, die zur Simulation von
6.4 Nichtdeterministische KomplexitS~tsmafie
229
M benutzt werden, hie die SpeicherplatzkomplexitS~t SpaceM(n ) <_ d. s(n). Das (k + 1)-te Band benutzt genau d. s(n) Felder ftir 0 a~( ~ ). Weil auch das (k + 2)te Band wS~hrend der Simulation ein Wort aus {1, 2 , . . . , r}* yon h6chstens der LS~nge d. s(n) enthalt, gilt SpaceA(n ) <_ d. s(n). D
Korollar 6.3.
NP C PSPACE.
A u f g a b e 6.15. Analysieren Sie die Zeitkomplexit~t der (k+2)-Band-TM A aus dem Beweis des Satzes 6.5.
Wir kennen keine effizientere allgemeine deterministische Simulation von nichtdeterministischen Algorithmen, als systematisch alle Berechnungen eines gegebenen nichtdeterministischen Algorithmus zu simulieren 6. Dies fiihrt dann aber beim Ubergang von Nichtdeterminismus zu Determinismus zum exponentiellen Wachstum der Zeitkomplexitgt. So ist es in Satz 6.5, und wir beobachten dies auch bei der Tiefensuche-basierten Simulation in Satz 4.2. Aufgabe 6.16. Analysieren Sie die Zeitkomplexit~t der deterministischen Simulation einer NTM aus Satz 4.2.
Der n~chste Satz gibt die beste bekannte zeiteffiziente deterministische Simulation von nichtdeterministischem Speicherplatz. S a t z 6.6.*
Fiir jede platzkonstruierbare Funktion s, s(n) >_ log 2 n, gilt
NSPACE(s(n)) C_ 0 TIME(c~(~))" cEIN
Beweis.
Sei M eine nichtdeterministische MTM mit L ( M ) - L und SpaceM(n ) E O(s(n)). Ohne EinschrS~nkung der Allgemeinheit setzen wir Folgendes voraus: (i) Es existiert eine Konstante d, so dass fiir jede Eingabe w alle Berechnungen 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 Konfigur 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.
6 Komplexit~tstheorie
230
Nach (i) wissen wir, dass es eine Konstante c gibt, so dass man ftir jede Eingabe w die Anzahl unterschiedlicher Konfigurationen mit w auf dem Eingabeband durch IInKonf(Iwl)l _< c~( ~ ) beschrtinken kann. Diese Konfigurationen kann man als Co, C 1 , . . . , ClInKonf(Iwl) I in der kanonischen Ordnung numerieren. Wir konstruieren jetzt eine MTM A mit L(A) = L. Fiir eine Eingabe w arbeitet A wie folgt: (i) A konstruiert die Adjazenzmatrix M(w) des gerichteten Graphen G(w), dessert Knoten die IInKonf(Iwl)l vielen verschiedenen Konfigurationen yon Berechnungen yon M auf w entsprechen, und in dem zwei Knoten Ci und Cj genau dann durch eine gerichtete Kante yon Ci nach Cj verbunden sind, wenn die Konfiguration Cj in einem Schritt von M aus Ci erreichbar ist. (ii) Sei Ck die einzige akzeptierende Konfiguration yon M auf w. Sei Co die Anfangskonfiguration von M auf w. Offensichtlich akzeptiert M das Wort w genau dann, wenn ein Weg yon Co nach Ck in G(w) existiert. Die MTM A iiberprtift, ob ein Weg yon Co nach Ck in G(w) existiert. Falls ja, akzeptiert A die Eingabe w, sonst verwirft A die Eingabe w. Offensichtlich gilt L(A) = L(M). Wir analysieren jetzt die Zeitkomplexit~it yon A. Um M(w) zu konstruieren, muss man IInKonf(Iwl)l- IInKonf( wl)l < ca~( ~ ). ca.~(~ ) < c2a~( ~ ) Elemente mij der Matrix M(w) bestimmen. Um mij zu bestimmen, mUSS m a n Ci und Cj generieren. Eine Konfiguration kann in der Zeit
d. s(Iwl) . InKonf(Iwl) I _< c2d~(~) generiert werden. Ob Cj aus Ci in einem Schritt von M erreichbar ist, kann man in der Zeit 2 d . ~(1~1) bestimmen. So kann A den ersten Teil (i) der Berechnung in der Zeit
c2d.s(w) . (2c2d.s(w) Jr- 2d. 8 ( w l ) ) ~ c12ds(w) durchfiihren. Die Bestimmung der Existenz eines Weges von Co nach C~ in G(w) geht in polynomieller Zeit beziiglich der Kontenzahl IInKonf(Iwl)l. a u f
6.5 Die Klasse NP und Beweisverifikation
231
einer MTM kann man diese Aufgabe in O(lInKonf(Iwl)l 4) Schritten realisieren. Weil
(cd.s( w ))4
_
c4d.s( w )
ist es offensichtlich, dass Timen(n) E O((c12d)s(n)). K o r o l l a r 6.4.
NLOG c P und N P S P A C E c E X P T I M E .
Eine ein bisschen anspruchsvollere Suche 7 in dem Graph G(w) aller potentiell m6glichen Konfigurationen auf w f/ihrt zu folgendem Resultat. S a t z 6.7.* S a t z v o n S a v i t c h
Sei s mit s(n) > log 2 n eine platzkonstruierbare Funktion. Dann N S P A C E ( s ( n ) ) C_ SPACE(s(n)2). K o r o l l a r 6.5.
PSPACE = NPSPACE
Von keiner der oben abgegebenen Simulationen von nichtdeterministischen Berechnungen durch deterministische Berechnungen weit3 man, ob es die effizienteste m6gliche Simulation ist. Die Zusammenfassung vorgestellter Resultate fiihrt zu der sogenannten f u n d a m e n t a l e n K o m p l e x i t ~ t s k l a s s e n h i e r a r c h i e der s e q u e n t i e l l e n B e r e c h n u n g e n ; D LOG c NLOG c P c NP c PSPACE c E X P T I M E . Fiir jede yon diesen Inklusionen ist es unbekannt, ob es eine echte Inklusion ist. Einige echte Inklusionen miissen aber dabei sein, weil D LOG C P S P A C E und P C E X P T I M E direkte Folgerungen yon Hierarchiesgtzen sind. Die Bestimmung, welche der Inklusionen echt sind, ist seit 30 Jahren das zentrale offene Problem der Theoretischen Informatik.
6.5
Die Klasse N P und Beweisverifikation
In der fundamentalen Komplexitgtsklassenhierarchie konzentriert sich das Interesse auf die Relation zwischen P und NP. Das Problem, ob P = NP oder tin der man G(w) nie komplett konstruiert, weil dies zu hohen Speicherbedarf verursachen wiirde.
232
6 Komplexitgtstheorie
P C+ NP gilt, ist das wohl bekannteste offene Problem der Informatik und heutzutage zghlt es auch zu den wichtigsten offenen Problemen der Mathematik. 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 Herstellung von mathematischen Beweisen, wghrend die Zeitkomplexitgt nichtdeterministischer Berechnungen der Komplexitgt der algorithmischen Beweisverifikation 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 Beweisen. 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 (deterministischen) TM M auf einem Wort w ein Beweis der Behauptung ,,z ~ L(M)". Von klassischen mathematischen Beweisen ist diese Vorstellung nicht weit entfernt. Betrachten wir L als eine Sprache, die alle korrekten Stitze (Aussagen) einer mathematischen Theorie enth~ilt. Dann ist der Beweis von ,,z E L(M)" nichts anderes als der Beweis der Korrektheit (Giiltigkeit) des Satzes z und der Beweis yon ,,z ~ L(M)" ist der Beweis der Ungiiltigkeit yon z. Wenn z.B. L = SAT, wobei SAT = {z E (}-]logic)* I x kodiert eine erf/illbare Formel in KNF}, ist die Tatsache ,, (I) E SAT" ~iquivalent zu der Behauptung ,, (I) ist eine erfiillbare Formel". Versuchen wir jetzt den Zusammenhang zwischen nichtdeterministischen Berechnungen und Beweisverifikation herzustellen. Die typische nichtdeterministische 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 herstellen kann. Veranschaulichen wir dies wieder anhand des Erf/illbarkeitsproblems. Fiir eine Formel (I) fiber n Boole'schen Variablen x l , . . . , x~ rgt eine NTM M
6.5 Die Klasse NP und Beweisverifikation
233
TM, ~
x2:0/~/~:1
x2=0
x2:1 Raten
-
2 ~ Berechnungen
deterministische Verifikation 0
0
0
0
Fig. 6.2
in den ersten n Schritten die Belegung f f l , . . . , O/n fiir X l , . . . , X n . Dann berechnet M den Wahrheitswert (I)(C~l,..., c~), um zu verifizieren, ob C~l,..., c~ die Formel (I) wirklich erfiillt (Fig. 6.2). Falls C~l,..., c~ die Formel (I) erfiillt, ist es klar, dass wir den Beweis yon ,,(I) ist erfiillbar" effizient herstellen k6nnen, wenn uns jemand Ctl,..., ct~ kostenlos gibt. Der Beweis ist nichts anderes als die Auswertung yon (I) auf Ctl,..., ct~. Deswegen nennen wir C~l,..., c~ das Zertifikat oder den Zeugen fiir die Aussage ,,(I) ist erfiillbar". Die ZeitkomplexitS~t von M ist die ZeitkomplexitS~t des Ratens plus die KomplexitS~t des Verifizierens. Der wesentliche Aufwand ist dabei dem Verifizieren gewidmet. Unser Ziel ist jetzt zu zeigen, dass man alle polynomiellen nichtdeterministischen Turingmaschinen so umwandeln kann, dass sie am Anfang raten und dann das Geratene deterministisch verifizieren. Dadurch reduziert sich die Zeitkomplexitgt der nichtdeterministischen Algorithmen auf die Zeitkomplexit~t der Beweisverifikation (der Zertifikatiiberpriifung). D e f i n i t i o n 6.9. Sei L C_ E* eine Sprache und sei p" IN ~ IN eine Funktion. Wir sagen, dass eine M T M (ein Algorithmus) A ein p - V e r i f i z i e r e r fiir L
V(A)
-
L,
A
E* • (Ebool)* arbeitet: (i)
TimeA(w, x) < p([w[) fiir jede Eingabe (w, x) E E* • (}-~%ool)*. Fiir jedes w E L existiert ein x E (}-~bool)*, 80 d a s 8 I~1 - p(Iwl) (w,x) C L(A) (d.h. A akzeptiert (w,x)). Das Wort x nennt man den B e w e i s oder den Z e u g e n der Behauptung w E L.
234
6 Komplexit~tstheorie
(iii) Fiir jedes y ~ L gilt (y, z) ~ L(A) fiir alle z E (Y]bool)*. Falls p(n) E O(n k) fiir ein k E IN, so sagen wit, dass A ein P o l y n o m i a l z e i t Verifizierer ist. Wit definieren die K l a s s e der in Polynomialzeit verifizierbaren Sprachen als V P = {V(A) I A ist ein Polynomialzeit-Verifizierer}. Man bemerke, dass L(A) und V(A) unterschiedliche Sprachen fiir einen pVerifizierer A sind. Aus Definition 6.9 folgt V(A)
=
e r*l
es existiert ein x mit Ixl <_p(Iwl), so dass (w, x) E L(A) }.
Ein p-Verifizierer A fiir eine Sprache L ist also ein deterministischer Algorithmus, der fiir eine Eingabe (w, x) verifiziert, ob x ein Beweis (ein Zeuge) fiir ,,w E L" ist. A verifiziert erfolgreich (w E V(A)), wenn es einen Beweis x fiir ,,w E L" gibt mit I~1 ___ p(Iwl). Die Gleichheit V(A) = L fordert die Existenz eines Beweises x fiir ,,w C L" mit Ixl _< p(Iwl) fiir jedes w c L.
Beispiel 6.1. Ein O(n2)-Verifizierer A fiir SAT kann wie folgt arbeiten. Fiir jede Eingabe (w, x) tiberpriift A zuerst, ob w die Kodierung einer Formel (I)~ in KNF ist. Falls nicht, verwirft A die Eingabe (w, x). Ansonsten berechnet A die Anzahl n d e r in (I)w vorkommenden Variablen und tiberpriift ob die L~nge von x E {0, 1}* mindestens nist. Falls x kiirzer ist als n, verwirft A seine Eingabe. Falls Ixl _> n, interpretiert A die ersten n Bits von x als eine Belegung der Variablen in (I)~ und iiberpriift, ob diese Belegung die Formel (P~ erfiillt. Beispiel 6.2. Eine k-Clique eines Graphen G mit n Knoten, k _< n, ist ein vollstS~ndiger Teilgraph von k Knoten in G. Sei
CLIQUE
{ x # y l x , y E {0, 1}*, x kodiert einen Graphen G,, der eine Nummer (y)-Clique enthglt}.
Ein Polynomialzeit-Verifizierer B fiir CLIQUE arbeitet wie folgt. Ftir jede Eingabe (w, z) tiberprtift B, ob w = x--/Cy, wobei x die Kodierung eines Graphen Gx und y E (Eboo~)* ist. Falls nicht, verwirft B seine Eingabe. Falls ja und G, n Knoten V l , . . . , V n hat, iiberpriift B, ob Nummer(y) <_ n und Izl _> ~log2(n + 1)1. Nummer(y) gelten. Falls nicht, verwirft B seine Eingabe (w, z). Falls ja, interpretiert B das P r a f i x y o n z der Lgnge ~log2(n + 1)1. Nummer(y)
6.5 Die Klasse NP und Beweisverifikation
235
als eine Kodierung yon Nummer(y) Zahlen aus { 1, 2 , . . . , n}. B verifiziert, ob es sich u m Nummer(y) unterschiedliche Zahlen il, i2,..., iNummer(y) handelt und ob die Knoten vii, vi2,. 9 9 viN. . . . . (~) einen vollstgndigen G r a p h e n in Gx bilden. Falls ja, akzeptiert B die Eingabe (w, z), ansonsten verwirft B die Eingabe. Aufgabe 6.17. Beschreiben Sie einen Polynomialzeit-Verifizierer fiir die Sprache COMPOSITE- {x c (Ebool)* Nummer(x) ist keine Primzahl }. Aufgabe 6.18. Beschreiben Sie einen Polynomialzeit-Verifizierer und eine polynomielle NTM fiir die Sprache HK (das Problem der Hamiltonschen Kreises aus Beispiel 2.4). Die folgende B e h a u p t u n g zeigt, dass m a n jede polynomielle N T M in eine gquivalente N T M umwandeln kann, die alle nichtdeterministischen Entscheidungen am Anfang macht und dann nur die Richtigkeit des Geratenen verifiziert. S a t z 6.8.
VP-
NP.
Beweis. Wir beweisen VP - NP durch die zwei Inklusionen NP C VP und VP c NP. (i) Zuerst zeigen wir NP c_ VP. Sei L E NP, L G E* fiir ein Alphabet E. Damit ist L - L(M) fiir eine polynomielle N T M M mit TimeM(n) C O(n k) ffir ein k C IN {0}. Ohne Einschrgnkung der Allgemeinheit dfirfen wit voraussetzen, dass M fiir jedes Argument eine Wahl aus h6chstens zwei M6glichkeiten hat. W i t beschreiben jetzt einen Verifizierer A, der fiir eine Eingabe (x, c) E E* x (Eboo~)* wie folgt arbeitet" (a) A interpretiert c als einen Navigator ffir die Simulation der nichtdeterministischen Entscheidungen von M. A simuliert schrittweise die Arbeit yon M auf x. Falls M eine Wahl zwischen zwei M6glichkeiten hat, dann wghlt A die erste M6glichkeit, falls das ngchste Bit von c eine 0 ist, und A n i m m t die zweite M6glichkeit, wenn das ngchste Bit von c eine 1 ist. (Dies ist eine Strategie, u m eine Berechnung von M auf x eindeutig dutch ein Wort zu bestimmen, die ghnlich zu der Strategie im Beweis des Satzes 6.5 ist.) (b) Falls M noch eine nichtdeterministische Wahl hat, abet schon alle Bits von c verbraucht sind, dann h~lt A und verwirff die Eingabe (x, c). (c) Falls A es schafft, die durch c b e s t i m m t e Berechnung yon M auf x vollstSmdig zu simulieren, dann akzeptiert A seine Eingabe (x, c) genau dann, wenn M das Wort x in der durch c b e s t i m m t e n Berechnung akzeptiert.
6 Komplexit~tstheorie
236
Wir zeigen jetzt, dass A ein Polynomialzeit-Verifizierer mit V ( A ) - L ( M ) ist. Falls z E L ( M ) , dann l~uft die kiirzeste akzeptierende Berechnung C~,x yon M auf z in der Zeit D ~ n aber existiert ein Zertifikat (Navigator) c mit Ic _< IC ,xl, die Berechnung C~,x bestimmt. Weil A jeden Schritt yon M in einem Schritt simuliert, 15~uft die Berechnung yon A auf (z, c) in der Zeit Falls x ~ L ( M ) , existiert keine akzeptierende Berechnung yon M auf x, und so verwirft A die Eingaben (x, d) fiir alle d E (Eboo~)*. Damit ist A ein O(nk)-Verifizierer mit V ( A ) - L ( M ) . (ii) Wir zeigen jetzt VP c_ NP. Sei L E VP, L c_ E* fiir ein Alphabet E. Dann existiert ein PolynomialzeitVerifizierer A mit V ( A ) - L. Wir betrachten eine NTM M, die auf jeder Eing~be x E E* wie folgt arbeitet. (a) M generiert nichtdeterministisch ein Wort c E (Ebool)*. (b) M simuliert schrittweise die Arbeit von A auf (x, c). (c) M akzeptiert x genau dann, wenn A seine Eingabe (x, c) akzeptiert. Offensichtlich ist L ( M ) - V(A) und TimeM(x) _< 2. TimeA(x,c) ftir jedes x E L ( M ) und einem ktirzestem Zeugen c E (Ebool)* von x E L ( M ) . Somit arbeitet M in polynomieller Zeit und es gilt L E NP.
Nach Satz 6.8 ist die Klasse NP die Klasse aller Sprachen L, die ftir jedes x E L einen in x I polynomiell langen Beweis yon ,,x E L" haben, welchen man deterministisch in polynomieller Zeit beztiglich Izl verifizieren kann.
6.6
NP-Vollst indigkeit
Im Unterschied zur Theorie der Berechenbarkeit, bei der man fiber gut ausgearbeitete Methoden zur Klassifizierung der Probleme in algorithmisch 10share und algorithmisch unlSsbare verftigt, hat man in der Komplexitgtstheorie keine mathematischen Methoden zur Klassifizierung konkreter Probleme beztiglich der praktischen LSsbarkeit (der ZugehSrigkeit zu P) gefunden. Es fehlen ausreichend starke Techniken, um untere Schranken ftir die KomplexitS~t konkreter Probleme zu beweisen. Wie weit man von einem Beweis einer Aussage, dass ein konkretes Problem nicht in polynomieller Zeit 16sbar ist, entfernt ist, zeigt die folgende Tatsache. Die hSchste bekannte untere Schranke ftir die Zeitkomplexitgt von Mehrband-Turingmaschinen zur L6sung eines konkreten
6.6 NP-VollstSmdigkeit
237
Entscheidungsproblems aus NP ist die triviale untere Schranke s f~(n) (man kann bisher noch nicht einmal eine untere Schranke gt(n-log n) fiir irgendein Problem aus NP beweisen), obwohl fiir tausende Probleme aus NP die schnellsten bekannten Algorithmen in exponentieller Zeit laufen. Wir sind also bei vielen Problemen, yon denen wir glauben, dass f~(2~) eine untere Schranke fiir die ZeitkomplexitS~t ist, nicht imstande, eine h6here Schranke als f~(n) zu beweisen. Um diese Liicke zwischen der beweistechnischen Realitgt und dem Gewiinschten zumindests teilweise zu fiberwinden, iiberlegten die Forscher, ob man eine Methodik zur Klassifizierung von Problemen bezfiglich praktischer L6sbarkeit entwickeln k6nnte, wenn man sich eine zus~tzliche, zwar unbewiesene aber glaubwtirdige, Annahme erlaubt. Dies fiihrte zu dem Konzept der NPVollstgndigkeit, dass eine solche Klassifizierung von Problemen unter der Voraussetzung P c NP erm6glicht. Das Ziel dieses Abschnittes ist es, dieses Konzept vorzustellen. Zuerst diskutieren wir die Glaubwfirdigkeit der Annahme P C NP. Den theoretischen Hintergrund fiir diese Annahme haben wir im Abschnitt 6.5 vermittelt. Man glaubt nicht, dass die Beweisverifizierung den gleichen Schwierigkeitsgrad wie die Beweiserzeugung hat. Weiterhin sieht man trotz grofier Miihe keine andere M6glichkeit, nichtdeterministische Algorithmen deterministisch zu simulieren, als systematisch alle nichtdeterministischen Berechnungen zu fiberpriifen. Weil aber die nichtdeterministischen BerechnungsbS~ume in ihrer Tiefe exponentiell viele Berechnungen beinhalten kannen und die Tiefe des Baurues der ZeitkomplexitS~t entspricht, scheint ein exponentielles Wachstum der ZeitkomplexitS~t bei einer solchen deterministischen Simulation unvermeidbar. Ein praktischer Grund fiir die Annahme P c NP basiert auf der 40-j~hrigen Erfahrung in der Algorithmik. Wir kennen mehr als 3000 Probleme in NP, viele davon sehr intensiv untersucht, ftir die die besten bekannten deterministischen Algorithmen eine exponentielle Komplexit~t haben. Die Algorithmiker halten es nicht fiir sehr wahrscheinlich,
dass dieser Zustand
nur eine Folge ih-
rer UnfSohigkeit ist, existierende effiziente Algorithmen f/Jr diese Probleme zu finden. Wir setzen jetzt P c NP fiir den Rest dieses Abschnittes voraus. Wie kann uns das helfen, Resultate der Art L ~ P zu zeigen? Die Idee ist, eine Klasse von schwersten Problemen in NP zu spezifizieren. Die Spezifikation muss so erfolgen, dass die Zugeh6rigkeit eines der schwersten Probleme in P automatisch P = NP fordert. Weil wir P ~ NP vorausgesetzt haben, dfirfte dann keines der schweren Probleme in P sein. SDie Zeit, die man braucht, um iiberhaupt die ganze Eingabe einmal zu lesen.
6 Komplexit~tstheorie
238
Ahnlich wie in der Theorie der Berechenbarkeit nutzen wir jetzt den klassischen mathematischen Ansatz der Reduktion zur Definition der schwersten Probleme in NP. Ein Problem L aus NP ist schwer, wenn man jedes Problem aus NP etIizient auf L reduzieren kann.
Definition 6.10. Seien L1 C_ E~ und L2 C_ E~ zwei Sprachen. Wit sagen, dass L1 polynomiell auf L2 reduzierbar ist, L1 ~_p L2, falls eine polynomielle TM (ein polynomieller Algorithmus) A existiert (Fig. 6.3), der fiir jedes Wort x E E 1. ein Wort A(x) E E 2. berechnet 9, so dass x E L1 ~ A(x) E L2. A wird eine polynomielle Reduktion von L1 auf L2 genannt. Wir sehen, dass man die Reduktion _
Definition 6.11. Eine Sprache L i s t N P - s c h w e r , falls fiir alle Sprachen L ~ E NP gilt L ~ <_p L. Eine Sprache L ist N P - v o l l s t ~ i n d i g , falls (i) L E NP, und (ii) L ist NP-schwer. Die Menge der NP-vollstS~ndigen Sprachen betrachten wir jetzt als die gesuchte Teilklasse von schwersten Entscheidungsproblemen in NP. Die folgende Behauptung zeigt die gewiinschten Eigenschaften der schwersten Probleme in N P - die leere Schnittmenge zwischen P und der Menge der NP-vollstS~ndigen Sprachen, falls P C NP (Fig. 6.4).
Lemma 6.7. Falls L E P und L ist NP-schwer, dann P -
NP.
Beweis. Sei L eine NP-schwere Sprache und sei L E P. L E P impliziert die Existenz einer polynomiellen TM M mit L - L ( M ) . Wir beweisen, dass fiir jede Sprache U E NP, U c_ E* ftir ein Alphabet E, eine polynomielle MTM Au mit L(Au) - U existiert und deshalb U E P.
9Man bemerke, dass A(x) polynomiell in x I ist, weil A in polynomieller Zeit arbeitet.
6.6 NP-VollstSmdigkeit
239
A mit polynomieller TimeA(n)
mit x E L1 e ,
Algorithmus B
A(x) E L2
mit L(B) = L1
C mit L(C) = L2
A(x) E L2
xEL1
A(x) ~ L2
x~L1
Fig. 6.3
NP
NP-vollstgndige Sprachen Fig. 6.4
Da U -
x E U r Bu(X) E L.
240
6 Komplexit~tstheorie
Wir beschreiben jetzt eine polynomielle MTM Au mit L(Au) = U. Fiir jede Eingabe x E E* arbeitet Au wie folgt.
(i)
Au simuliert die Arbeit yon Bu auf x und berechnet Bu(X). (ii) Au simuliert die Arbeit von M auf Bv(X). Au akzeptiert x genau dann, wenn M das Wort Bv(X) akzeptiert. Weil x E U r Bv(X) E L, gilt L(Au) = U. Da Timedv(X) = T i m e B v ( x ) + TimeM(Bv(X)), IBu(x)I polynomiell in x ist, und die Turingmaschinen Bu und M in polynomieller Zeit arbeiten, arbeitet auch Au in polynomieller Zeit. D Wit haben jetzt die gewiinschte Definition der schwersten Probleme in NP, vorausgesetzt, dass die Klasse der NP-vollstgndigen Sprachen nicht leer ist. Der nS~chste Satz zeigt, dass diese Gefahr nicht besteht, well SAT NP-vollstS~ndig ist. Die NP-Schwere von SAT sagt aus, class die Ausdrucksstgrke von Boole'schen Formeln in KNF sehr hoch ist, weil man fiir jede Sprache L E NP die Frage ,,Ist x in L?" als die Frage, ob eine bestimmte Formel erfiillbar ist, ausdriicken kann. Die AusdrucksstSzke von Formeln alleine sollte abet nicht iiberraschend sein, weil man dutch Formeln beliebige Texte beschreiben kann, und diese Texte k6nnen beliebige Objekte wie Sgtze, Beweise, Berechnungen usw. darstellen. Wit illustrieren dies jetzt an einem kleinen Beispiel. Wit wollen eine Boole'sche Formel in KNF konstruieren, die es ermSglicht, Matrizen der Gr6fie 3 • 3 fiber { - 1 , 0 , 1} zu beschreiben. Sie ist genau dann erfiillbar, wenn die Matrix in jeder Zeile und in jeder SpaRe genau eine 1 enthS~lt. Dazu wS~hlen wit uns fiir alle i , j E {1, 2, 3} und alle k E { - 1 , 0, 1} die Variablen xi,j,k mit deren Belegung wir dank folgender Bedeutung der 27 betrachteten Variablen eine beliebige 3 x 3 Matrix A = ( a i j ) i , j = l , 2 , 3 fiber { - 1 , 0, 1} darstellen k6nnen. Xi,j, 1
:
Xi,j, 0
:
Xi,j,-1
1 4=> 1 4=~ 1 4=>
1
wenn
aij =
wenn
aij = 0
wenn
aij = - 1
Damit kann man die Matrix 1 -1 0
0 0 / 0 1 1 0
durch die folgende Belegung der 27 Variablen eindeutig bestimmen:
6.6 NP-VollstSmdigkeit Xl,1,1 = Xl,3,1 =
x2,2,1 = X3,1,1 =
x3,3,1 =
1, Xl,1, 0 = 0, X1,1,-- 1 = O, Xl,3,0 = 1, Xl,3,--1 = O, x2,2,o = 1, x2,2,-1 = 0, X3,1, 0 = 1, X3,1,_ 1 = 0, x3,3,o = 1, 2;3,3,_ 1 =
241
1, Xl,2,_ 1 = 0, O, X2,1,1 = O, X2,1,O = O, X2,1,--1 = 1, O, x2,3,1 = 1, x2,3,o = O, x2,3,-1 = O, 0, X3,2,1 = 1, x3,2,0 = 0, X3,2,_ 1 = 0, 0, Xl,2,1 = 0, Xl,2,0 =
0.
Wir bemerken, dass es auch Belegungen gibt, die keine M a t r i x darstellen. Z u m Beispiel ist die Belegung 2 ; 1 , 1 , 1 = 1 = 2;1,1,0 SO ZI1 interpretieren, dass a l l beide Werte 1 und 0 a n n i m m t , was nicht zulS~ssig ist. U m dieses auszuschliegen, konstruieren wir zuerst eine Formel, die nur fiir die Belegungen erfiillt ist, die eine 3 x 3 M a t r i x fiber { - 1 , 0, 1} b e s t i m m e n (d.h., jede Position der M a t r i x enthalt genau einen Wert). Ftir alle i, j E {1, 2, 3} g a r a n t i e r t die Formel
(Xi,j, 1 V Xi,j, 0 V Xi,j,_l) A (Xi,j,1 ~/ Xi,j,O) A ('Xi,j,1 ~/ 'Xi,j,--1) A (Xi,j,O ~/ Xi,j,--1) dass genau eine der Variablen xi,j,l,Xi,j,o, Xi,j,_l den Wert 1 a n n i m m t 1~ und so der Inhalt der Position (i, j) der M a t r i x eindeutig b e s t i m m t ist. Somit bes t i m m t jede Belegung, die die Formel
(I)- A F~,~ 1<_i,j<_3 erfiillt, eindeutig eine 3 • 3 M a t r i x fiber { - 1 , 1, 0}. Ftir i -
1, 2, 3 g a r a n t i e r t die Formel (X/,1,1 V Xi,2,1 V Xi,3,1) A (Xi,I,1 V ~0i,2,1)A (~0i,1,1 V X i , 3 , 1 ) A (Xi,2,1 V ;~i,3,1)
dass die i-te Zeile genau eine Eins enth/tlt. Analog g a r a n t i e r t (Xl,j, 1 V X2,j, 1 V X3,j,1) A (;~l,j,1 ~/ X2,j,1) /~ (;~l,j,1 ~/ ;~3,j,1) /~ (X2,j,1 V ;~3,j,1)
ftir j -- 1, 2, 3, dass die j-te Spalte genau eine Eins enthtilt. 1~ elementare Disjunktion Xi,j, 1 V Xi,j, 0 V Xi,j,_ 1 garantiert, dass mindestens eine der Variablen wahr ist. Die elementare Disjunktion (zi,j,1 V xi,j,o) garantiert, dass mindestens eine der Variablen xi,j,1 und xi,j,o den Wert 0 annimmt.
242
6 Komplexit~tstheorie
Somit ist
i=1,2,3
j=1,2,3
die gesuchte Boole'sche Formel in KNF. Aufgabe 6.19. Geben Sie eine Menge von Boole'schen Variablen an, mit der man jede Situation (Konfiguration) auf einem Schachbrett eindeutig bestimmen kann. Beschreiben Sie die Konstruktion einer Formel tiber diesen Variablen, die genau dann erfiillt ist, wenn auf dem Schachbrett genau acht Damen (und keine anderen Figuren) stehen, die sich gegenseitig nicht bedrohen. Mit der oben beschriebenen Strategie kann m a n Texte auf einem Blatt Papier beschreiben. Das Blatt kann m a n sich als eine passende n • rn Matrix fiber Elementen aus ETastatur vorstellen. D a n n reichen n . m . IETastaturl Boole'sche Variablen, um dieses Ziel zu realisieren. Aufgabe 6.20. Bestimmen Sie eine Menge von Variablen, mit denen man jede Textseite der Gr6fie 33 • 77 darstellen kann. Beschreiben Sie die Konstruktion einer Formel mit genau einer erfiillbaren Belegung, die dem Text auf der zweiten SeRe des Buches ,,The Design and Analysis of Computer Algorithms" von Aho, Hopcroft und Ullman entspricht. Wir sehen also, dass wir durch Formeln beliebige Texte und somit auch Konfigurationen einer T M darstellen k6nnen. Der Kern des Beweises des folgenden Satzes liegt darin, dass wir zus~ttzlich auch inhaltliche semantische Zusammenh~tnge des Textes, z.B. wie eine Konfiguration in einem Berechnungsschritt einer TM aus einer anderen Konfiguration erreichbar ist, durch die Erfiillbarkeit einer Formel ausdriicken k6nnen. Wichtig ist dabei noch, dass m a n solche Formeln effizient algorithmisch konstruieren kann, was auch bedeutet, dass die Formel nicht zu lang im Bezug auf das Eingabewort der beschriebenen Berechnung ist.
S a t z 6.9.* S a t z v o n C o o k SAT ist NP-vollstiindig.
Beweis. Im Beispiel 6.1 (siehe auch Fig 6.2) haben wir schon bewiesen, dass SAT in V P = N P liegt. Es bleibt zu zeigen, dass alle Sprachen aus NP auf SAT polynomiell reduzierbar sind. Aus der Definition der Klasse NP folgt, dass f/Jr jede Sprache L C NP eine N T M M mit L ( M ) = L und TimeM(n) E O(n ~) fiir ein c E IN existiert (d.h.,
6.6 NP-VollstSmdigkeit
243
M ist eine endliche Darstellung von L, die wir als Eingabe fiir die folgende polynomielle Reduktion benutzen diirfen). Es reicht also zu zeigen:
,,Flit jede polynomielle N T M M gilt L(M) <_pSAT." Sei M - (Q, E, F, ~, q0, qacc~pt, qreject) e i n e beliebige N T M mit TimeM(n) _< p(n) fiir ein Polynom p. Sei Q - {q0, ql,..., q s - 1 , q s } , wobei q s - 1 -- qreject und q~ -qaccept, und sei F - { X 1 , . . . , X,~}, X,~ u. Wir entwerfen eine polynomielle Reduktion BM" E* ~ (2logic)*, so dass fiir alle x E E* : x E L(M)~
BM(X) E SAT
Sei w ein beliebiges Wort aus E*.
BM soll eine Formel BM(W) konstruieren, so
dass
w E L(AJ)4=~ BM(W)ist erfiillbar. Das bedeutet, dass wir eine Formel konstruieren miissen, die alle M6glichkeiten der Arbeit yon M auf w beschreibt. Die Idee ist, die Bedeutung der Variablen so zu wSohlen, dass eine Beschreibung einer beliebigen Konfiguration zu einem beliebigen Zeitpunkt mSglich ist. Wir wissen, dass SpaceM(IWl) _< TimeM(IWl) _< P(Iwl) und somit jede Konfiguration h6chstens die Lange p ( I w l ) + 2 hat 11, was fiir die gegebene Eingabe w eine feste Zahl aus IN ist. Um uns die Beschreibung zu vereinfachen, stellen wir jede Konfiguration
(r
Yi-lqYi...Yd)
fiir d _< P(I~I) ~
(0YIY2... Y/-lqY/...
Y d Y d + l . . . Yp ( w ))
dar, wobei Yd+l -- Yd+2 . . . = Yp(~) - u. Somit haben alle Konfiguratiohen die gleiche Band]ange p(Iwl)+ 1. gm uns die Suche nach einer akzeptierenden Konfiguration zu erleichtern, erweitern wir d durch (~(qaccept,X) -(qaccept, X, IV). Damit bleibt M nach dem Erreichen des akzeptierenden Zus t a n d e s qaccept weiter in qaccept, ohne eine Anderung vorzunehmen. Um die Zugeh6rigkeit von w zu L(M) zu entscheiden, reicht es dann aus zu testen, ob eine der Konfigurationen, die nach p(l l) Schritten von M erreicht wird, den Zustand qaccept enthglt. Die Formel
BM(W) wird aus folgenden Variablenklassen entstehen:
11Die Konfiguration enth~lt den Inhalt der Bandpositionen 0,..., p( w ) und den Zustand.
244
6 Komplexit~tstheorie
9 C ( i , j, t) fiir 0 _< i _< p(lwl), 1 <_ j <_ m, o <_ t <_ p(Iwl). Die Bedeutung yon C(i, j, t) ist wie folgt" C(i, j, t) - 1 ea Die i-te Position des Bandes yon M enth~ilt das Arbeitssymbol Xj zum Zeitpunkt t (nach t Berechnungsschritten). Wir beobachten, dass die a n z a h l solcher Variablen genau m . ((P(Iwl)+ 1) 2 E O ( ( p ( I w l ) ) 2) ist. 9 S { k , t) fiir 0 _< k _< s, 0 _< t _< P(I~I). Die Bedeutung der Booie'schen Variable S{k, t) ist" S{k, t) - 1 r Die NTM M ist im Zustand qk zum Zeitpunkt t. Die a n z a h l solcher Variablen ist (s + 1). ( p ( I w l ) + 1) ~ O(p(l~l)). 9 H { i , t) fiir 0 <_ i <_ p(Iwl), 0 <_ t <_ p(l~l). Die Bedeutung yon H{i, t) ist" H{i, t) - 1 r Der Kopf yon M i s t auf d e r / - t e n Position des Bandes zum Zeitpunkt t. Es gibt genau (p(lwl)+ 1) 2 E o ( ( p ( l w l ) ) 2) solcher Variablen. Wir beobachten, dass wir durch die Belegung aller Variablen mit Werten fiir ein festes t die Beschreibung einer beliebigen Konfiguration bekommen kSnnen. Zum Beispiel lgsst sich die Konfiguration (XjOXjl
. . . xj
_i
...
)
beschreiben durch:
C(0, j0, t) - C(1, jl, t} .-- - c
6.6 NP-VollstSmdigkeit
245
bestimmen wiirde, welche Buchstaben aufjede Position (i, j), 0 <_ i, j <_p(Iwl), geschrieben werden. Es kann ein unsinniger Text entstehen, aber es gibt auch Belegungen, bei denen jede Zeile des Blattes eine Konfiguration beschreibt und Belegungen, bei denen diese Folge von Konfigurationen einer Berechnung entspricht. Diese Situation ist in Fig. 6.5 schematisch dargestellt. Unsere aufgabe ist jetzt, eine Formel B ~ ( w ) in KNF fiber den Variablen e l i , j, t}, SIk , t} und H{i, t} so zu konstruieren, dass gilt
BM(w) ist erfiillbar
e=~ es existiert eine akzeptierende Berechnung von M auf w.
BM konstruiert die Formel B M ( X ) = A A B A C A D A E A F A G in KNF in folgenden sieben Schritten. Um die Konstruktion anschaulich und iibersichtlich zu machen, beschreiben wir zuerst die Bedeutung der einzelnen Formeln A, B, C, D, E, F u n d G. A: A soil sicherstellen, dass der Kopf zu jedem Zeitpunkt genau auf einer Position des Bandes steht (d.h., A soll genau dann erfiillbar sein, wenn genau eine der Variablen H{i, t) den Wert 1 hat fiir alle festen t). B: Zu jedem Zeitpunkt ist genau ein Arbeitssymbol auf jeder Position des Bandes. C: Zu jedem Zeitpunkt ist M in genau einem Zustand. D: In jedem Schritt von M yon einer Konfiguration zur ngchsten kann nur das Symbol gegndert werden, auf dem der Lesekopf steht. E" Die Anderung des Zustandes, die Bewegung des Kopfes und die J~nderung des Bandinhalts in jedem Schritt muss einer m6glichen Aktion der NTM M (der Funktion (~) entsprechen. F: F garantiert, dass die Variablen mit t = 0 genau die Anfangskonfiguration von M auf w bestimmen. G: G garantiert, dass die letzte (((p(Iwl)+ 1)-te) Konfiguration eine akzeptierende 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 0
Konfiguration
p(l~l)
1
+ 1
Bandpositionen (Zustgnde, Kopfpositionen) Fig. 6.5 den Wert 1 hat. Seien 2 ; 1 , 2 ; 2 , . . . , X n Boole'sche Variablen. Die folgende Formel in KNF hat die gewiinschte Eigenschaft beziiglich z l, z 2 , . . . , z~" U ( x l , x 2 , . . . , xn) - ( x I V 922 V . . .
V Xn) A (
A l <_i,j <_rt
Der erste Teil der Formel 2; 1 V 2; 2 V . . . V 2; n garantiert, dass mindestens eine der Variablen z l, z 2 , . . , z . auf 1 gesetzt werden muss, um U zu erfiillen. Weil der zweite Teil der Formel die elementare Disjunktion G V ~ fiir alle Paare i,j E { 1 , . . . , n } , i r j enth~ilt, dtirfen z~ und zj nicht zugleich den Wert 1 annehmen. Daher garantiert der zweite Teil der Formel, dass h6chstens eine Variable aus { Z l , . . . ,z~} den Wert 1 annehmen daft. Wir bemerken, dass die LS~nge der Formel U(Zl,Z2,... ,zn) quadratisch in der Anzahl n d e r Variablen ist.
6.6 NP-VollstSmdigkeit
247
Jetzt konstruieren wir nacheinander die Formeln A, B, C, D, E, F und G. (a) Fiir jedes t E {0, 1, 2 , . . . , p ( I w l ) } definieren wir At -
U ( H ( O , t}, H ( 1 , t}, . . . , H i p ( I w l ) ,
t}).
A t ist nur dann erfiillt, wenn sich der Lesekopf yon M zum Zeitpunkt t genau
auf einer Position i E {0, 1 , . . . , p(Iwl)} des Bandes befindet. Die Erftillung der Formel A-
A o A A~ A . . . A Ap( ~ ) -
A
A~
O<_i<_p( w )
garantiert, dass sich der Lesekopf zu jedem Zeitpunkt t E {0,1,...,P(I~I)} auf genau einer Position des Bandes befindet. Die Anzahl der Literale in A ist in O((p(Iwl))3), weil die Anzahl der Literale in A t quadratisch in p ( I w l ) + 1 ist. (b) Fiir alle i E { 0 , 1 , 2 , . . . , p ( l w l ) } , t E {0, 1 , . . . , p ( l w l ) } definieren wir Bi,t -
U(Cii,
1, t}, C ( i , 2, t}, . . . , C i i , m , t}).
]Bi, t ist erftillt, wenn die i-te Position des Bandes nach t Berechnungsschritten von M genau ein Symbol enth~lt. Weil IFI - m eine Konstante ist, ist die Anzahl der Literale in Bi,t in O(1). Die Erfiillung der Formel A
B -
/\
Bi,t
O<_i,t<_p( w )
garantiert, dass alle Positionen des Bandes zu jedem Zeitpunkt genau ein Symbol enthalten. Die anzahl der Literale in B ist offensichtlich in (c) Wir definieren fiir alle t E {0, 1 , . . . , p ( w l ) } Ct -
U ( S i O , t}, S ( 1 , t}, . . . , S ( s , t}).
Wenn eine Belegung yon S(0, t } , . . . , S(s, t} die Formel C't erfiillt, dann ist M zum Zeitpunkt t in genau einem Zustand. Weft IQI - s + 1 eine Konstante ist, ist die Anzahl der Literale in Ct in O(1). Offensichtlich garantiert uns C0
(C(i,j,t}
~
C(i,j,t
§ 1}) V H ( i , t }
248
6 Komplexit~tstheorie
mr 0 g p(l~l), 1 _< j _< m, 0 _< t _< p(l l)- 1 sagt aus, dass ein nicht gelesenes Symbol nicht geandert werden daft (wenn H(i, t} - O, dann muss im nSochsten Schritt das Symbol auf d e r / - t e n Position unverS~ndert bleiben). Offensichtlich kann man Di,j,t in eine KNF mit O(1) Literalen umwandeln. 12 Die gesuchte Formel ist dann D --
A
Di,j,t
O<_i<_p(lw[) l<j_~m
O<_t<_p([w[)-i
und D enthalt O((p(lwl)) 2) Literale, d a m eine Konstante ist. (e) Wir betrachten fiir alle i E {0, 1 , 2 , . . . , p ( I w l ) } , j ~ { 1 , . . . , , ~ } , t { 0 , 1 , . . . , p ( [ w [ ) } , k E {0, 1 , . . . , s } die Formel
Ei,j,k,t
--
C(i,j,t} V H(i,t) V S(k,t}V V(C(i,j~,t + 1) A S(k~,t + 1) A H(i~,t +
1))
1
wobei 1 fiber alle m6glichen Aktionen der NTM M fiir das Argument 15~uft, mit
(qk, Xj)
(q~, Xj~, z~) e ~(q~, X~), z~ e {L, R, N} und il -- i + ~(zl), ~(L) - - 1 , ~(/~) - 1, ~(N) - 0.
Ei,j,k, t kann C(i, j, t},
man betrachten als die Disjunktion folgender vier Bedingungen" d.h. die i-te Position des Bandes enthS~lt nicht Xj zum Zeitpunkt
t.
H(i, t}, S(k,t},
d.h. der Kopf ist nicht auf d e r / - t e n Position zum Zeitpunkt 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 iten 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
0
O((p(Iwl))2) Literale. (f) Die Anfangskonfiguration yon M auf w muss auf dem Band Cw haben, der Kopf muss auf die 0-te Position des Bandes zeigen und M muss im Zustand q0 sein. Wenn w = Xj~Xj~... Xj, fiir j~ E {1, 2 , . . . , m}, n E IN und X1 = r dann kann man die Anforderung, dass die Konfiguration zum Zeitpunkt 0 die Anfangskonfiguration yon M auf w ist, wie folgt ausdriicken: r
=
S(0,0) A H(0,0} A C(0, 1,0}
a A
a
1
Die a n z a h l der Literale in F ist in (g) Die einfache Formel
A n + 1 _
und F ist in KNF.
cgarantiert, 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 Anzahl 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 ZeitkomplexitSot 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 darstellen kann. Daraus resultiert die Sichtweise, dass ,,die Sprache der Boole'schen Formeln" stark genug ist, um jedes Problem aus NP darzustellen.
6 Komplexit~tstheorie
250
Die NP-VollstSmdigkeit von SAT ist der Startpunkt 13 zur Klassifizierung der Entscheidungsprobleme beziiglich ihrer ZugehSrigkeit zu P. Um die NP-VollstSmdigkeit anderer Probleme zu beweisen, benutzen wir die Methode der Reduktion, die auf folgender Beobachtung basiert. L e m m a 6.8. Seien L1 und L2 zwei Sprachen. Falls L1 <_p L2 und L1 ist NP-
schwer, dann ist auch L2 NP-schwer. A u f g a b e 6.21. Beweisen Sie Lemma 6.8.
Im Folgenden benutzen wir Lemma 6.8, um die NP-VollstSmdigkeit einiger Sprachen aus NP zu beweisen. Unser erstes Ziel ist zu zeigen, dass ,,die Sprache der Graphen (Relationen)" auch ausdrucksstark genug ist, um jedes Problem aus NP darzustellen. Zur Veranschaulichung der Argumentation werden wir im Folgenden direkt mit Objekten wie Graphen und Formeln arbeiten, statt streng formal fiber die Kodierungen yon Graphen und Formeln zu sprechen. Somit gilt
SAT
=
{(I) I (I) ist eine erfiillbare Formel in KNF},
3SAT
=
{(I) I (I) ist eine erfiillbare Formel in 3KNF},
CLIQUE
=
{(G, k) lG ist ein ungerichteter Graph, der eine k-Clique enthglt}, und
VC
=
{(G, k) lG ist ein ungerichteter Graph mit einer Knoteniiberdeckung der MS~chtigkeit h6chstens k},
wobei eine Knoteniiberdeckung eines Graphen G - (V~E)jede Menge von Knoten U c_ V ist, so dass jede Kante aus E mindestens einen Endpunkt in U hat. Sei q) eine Formel und sei F eine Belegung der Variablen yon q). Im Folgenden bezeichnen wir durch p((I)) den Wahrheitswert yon (I) bei der Belegung ~. Also ist (I) erfiillbar genau dann, wenn eine Belegung ~ mit p((I)) - 1 existiert. L e m m a 6.9.
SAT
13SAT spielt also in der KomplexitStstheorie eine 5hnliche Rolle wie Ldiag in der Theorie der Berechenbarkeit.
6.6 NP-VollstSmdigkeit
251
Beweis. Sei 9 - F1 A F2 A . . . A F,~ eine Formel in KNF, Fi li~), ki E IN - {0} ftir i - 1, 2 , . . . , m .
-
(lil V
li2 V . . . V
Wir konstruieren eine Eingabe (G, k) des Cliquenproblems, so dass E SAT e=~ (G, k) E CLIQUE. Wir setzen ]~ - -
?Tt
G -- (V, n ) , wobei v - {[i, J]l 1 _< i _< m, 1 _< j _< k~}, d.h. wir nehmen einen Knoten fiir jedes Auftreten eines Literals in ~, E{{[i, j], [r,s]} I ftir alle [i, j], [r,s] E V, m i t i r r und l~j r l~}, d.h. eine Kante {u, v} verbindet nur Knoten aus unterschiedlichen Klauseln, vorausgesetzt das Literal von u ist nicht die Negation des Literals von v. Betrachten wir die folgende Formel
(I) --(X 1 V x2)A (x I Vx2 V x 3 ) A (Xl V x3)Ax2. Dgnn ist k - 4 und der Graph ist in Fig. 6.6 dgrgestellt.
F1 / /
,1 '
~ ~
/
[2,1
~
I
--..
Xl
-.
I I
\
m
X 2
r
\\
[2,3] x3
s /
[3,' 1]
I\
\\
[3, 2] \...
F3 Fig. 6.6
[4 1])
X 1
",
, X3
iI
__
\\
', /
252
6 Komplexitgtstheorie
Es ist Mar, dass (G, k) durch einen polynomiellen Algorithmus aus (I) konstruiert werden kann. Wir zeigen jetzt,
ist erfiillbar e, G enthiilt eine Clique der GrSfle k - m.
(6.1)
Die Idee des Beweises ist folgende. Die Literale lio und l~ sind in G verbunden, wenn beide aus unterschiedlichen Klauseln kommen (i ~r r) und beide gleichzeitig den Wert 1 annehmen k6nnen. Somit entspricht eine Clique in G der Belegungen von Variablen von (I), die die Literale der Knoten der Clique erfiillen (zu 1 auswerten). Z.B. bestimmt die Clique {[1, 1], [2, 1], [3, 2], [4, 1]} in Fig. 6.6 die Belegung Xl = 1, xa = 1 und g2 = 1 (x2 = 0). Wir beweisen die Aquivalenz (6.1) durch die zwei Implikationen. (i) ,,~"" Sei (I) eine erfiillbare Formel. Dann existiert eine Belegung p, so dass p((I)) - 1. Es gilt p(F~) - 1 fiir alle i E { 1 , . . . ,m}. Also existiert fiir jedes i E { 1 , . . . , m } ein Index (~i E { 1 , . . . , k i } , so dass 9 ~ ( 1 ~ ) - 1. Wir behaupten, dass die Knotenmenge {[i, ct~][ 1 _< i _< m} einen vollstgndigen Teilgraphen von G bildet. Es ist Mar, dass [1, c~1], [2, a2], ... , Ira, c~,~] aus unterschiedlichen Klauseln sind. Die Gleichheit l ~ - l j ~ fiir irgendwelche i, j, i r j, impliziert co(l~) r cv(lj~) fiir jede Belegung co, und deshalb ist p ( l ~ ) - p(li~j) - 1 nicht m6glich. Also ist l ~ r lj~ fiir alle i,j E {1, ... ,m}, i r j, und {[i,a~], [j,c~/]}} E E fiir alle i,j E {1, . . . , m } , i r j. Somit ist {[i,c~] [ 1 _< i _< m} eine Clique der Gr6fie m. (ii) ,, ~"" Sei Q eine Clique von G mit k - m Knoten. Weil zwei Knoten durch eine Kante in G nur dann verbunden sind, wenn sie zwei Literalen aus unterschiedlichen Klauseln entsprechen, existieren C~l, c~2,..., c~,~, c~v E {1, 2 , . . . , k;} fiir p - 1 , . . . , m , so dass {[1, al], [2, c~2], . . . , [m,c~,~]} die Knoten von Q sind. Folgend der Konstruktion yon G existiert eine Belegung p der Variablen yon (I), so dass P(/I~I) - 9~(12~) "" 9~(1,~,~) - 1. Das impliziert direkt p ( F 1 ) - 9~(F2) "" 9~(F,~) - 1 und so erfiillt p die Formel (I). _
Lemma
6.10.
C L I Q U E ---v VC.
Beweis. Sei G - (17, E) und k eine Eingabe des Clique-Problems. Wir konstruieren 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
V2
V5
i
V4
V3
I
~\
\ v4
G
v3/
G
Fig. 6.7 Um ,, (G, k) E CLIQUE 4=~ (G,
Iwl- k) c v c "
S C V ist eine Clique in G r
V-
~ beweisen, reicht es zu zeigen
S ist eine Knoteniiberdeckun9 in G.
In Fig. 6.7 sehen wir, dass die Clique {Vl, V2, V5} von G die Knoteniiberdeckung {v3, v4} in G bestimmt. Wir beweisen diese Behauptung durch zwei Implikationen. (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 Knotentiberdeckung folgend ist jede Kante von G adjazent zu mindestens einem Knoten aus C. Also gibt es keine Kante {u, v} in E fiir u, v E V - C . Deswegen gilt {u, v} E E fiir alle u, v E V - C, u r v. Somit ist V - C eine Clique in G.
Das folgende Resultat zeigt, dass das SAT-Problem schwer bleibt, auch wenn man sich auf eine Teilklasse yon Formeln beschrS~nkt. Wir sagen, dass eine Formel in 3KNF ist, falls sie in KNF ist und jede Klausel hSchstens aus
254
6 Komplexit~tstheorie
drei Literalen besteht. reel in 3 K N F erfiillbar Boole'schen Variablen ~ : X ~ {0, 1}. Sei Y sagen, dass cd: X U Y far L e m m a 6.11.
Das 3SAT-Problem ist zu bestimmen, ob eine Forist. Im Folgenden betrachten wir eine Belegung p von aus einer Menge X = { X l , . . . ,x~} als eine Abbildung = { y l , . . . ,y~} eine Menge Boole'scher Variablen. Wir ~ {0, 1} eine E r w e i t e r u n g v o n ~a: X ~ {0, 1} ist, x. SAT
Beweis. Sei F - F1 A F2 A ... A F,~ eine Formel in K N F fiber einer Menge yon Boole'schen Variablen {Xl, . . . , x~}. Wir konstruieren eine Formel C' in 3 K N F (alle Klauseln enthalten hSchstens 3 Literale), so dass F i s t erfiillbar ( F E SAT) <=~ C' ist erf/illbar (C' E 3SAT). Die polynomielle R e d u k t i o n fiihren wir fiir jede der Klauseln F 1 , . . . , F,~ einzeln wie folgt durch: Falls Fi weniger als 4 Literale enth~lt, d a n n setzen wir Ci Zl V z2 V - - - V zk mit k > 4, zi E {x1,~1, 9 9 - , x ~ , ~ } .
Fi. Sei Fi =
Wir konstruieren Ci fiber Variablen {Xl, ' ' ' , Xn, Yi,1, Yi,2,..., Yi,/~-3}, wobei Yi,1, Yi,2,..., Yi,k-3 neue Variablen sind, die bei der K o n s t r u k t i o n yon Cj mit j -r i nicht benutzt wurden.
G
(zl V z2 V Y~,I) A (Yi,1 V Z3 V Yi,2) A (Yi,2 V z4 V Yi3) A . . . A (Yi,~-4 V zk-2 V Yi,k-3) A (Yi,k-3 V Zk-1 V Zk).
Z.B. fiir Fi -- Xl V 2;3 V x2 V 2;7 V x9 e r h a l t e n w i r
C'i -- (xl V x3 V Yi,1) A (Yi,1 V x2 V Yi,2) A (Yi,2 V x7 V x9). Um zu zeigen, dass F - F1 A . . . A F,~ genau d a n n erfiillbar ist, wenn C = C1 A . . . A C,~ erfiillbar ist, reicht es, die folgende B e h a u p t u n g zu beweisen.
existiert eine Erweiterung p' von qp auf {Xl, ... , x~, yi,1, 99 9 Yi,k-3}, die C~ erfiillt.
6.6 NP-VollstSmdigkeit
255
(i) ,,~"" Sei p eine Belegung der Variablen in {Xl, x 2 , . . . , Xn} , SO dass p ( F i ) 1. Also existiert ein j E { 1 , . . . , k } mit ~(zj) - 1. W i r n e h m e n ~ ' " { X l , . . . , x ~ , y i , 1 , . . . , y i , k - 3 } ~ {0, 1}, so dass (a) ~ ( x l ) - p'(xl) fiir l - 1 , . . . , n , (b) p'(yi,1) . . . . p'(yi,j-2) - 1 u n d - . . . -
-
0.
Weil p'(zj) - 1, ist die ( j - 1)-te Klausel von C~ erfiillt. ~'(y~,~) - 1 g a r a n t i e r t die Erfiillung der r - t e n Klausel yon C~ fiir r - 1 , . . . , j - 2. ~'(y~,~) - 0 (d.h. y~,~ - 1) g a r a n t i e r t die Erfiillung der (s + 1)-ten Klausel von C~ fiir s j - 1, j , . . . , k - 3. D a m i t erfiillt p~ alle k - 2 Klauseln von Ci. (ii) ,,~"" Sei ~ eine Belegung, so dass ~(F~) - 0. W i r beweisen, dass keine E r w e i t e r u n g p' von p existiert, so dass p ' ( C i ) - 1. p ( F i ) - 0 impliziert p ( z l ) p(z2) - . . . p(zk) - 0. Also mug man, u m die erste Klausel zu erfiillen, fiir Yi,1 den Wert 1 einsetzen. D a n n ist p'(y~,~) - 0 u n d p'(yi,2) mug 1 sein, u m die zweite Klausel zu erfiillen. Auf diese Weise b e k o m m e n wir P'(Yi,1) - P'(Yi,2) .... P~(Yi,k-a) - 1, u m diese ersten k - 3 Klauseln zu erfiillen. D a n n ist aber P'(Y~,k-a) - 0, u n d weil p(zk_~) - p(zk) - 0, bleibt die letzte Klausel unerfiillt.
Aufgabe 6.22. Beweisen Sie folgende polynomielle Reduktionen. (i) VC
6.12. NPO
U - (Ez,
ist die Klasse der Optimierungsprobleme, wobei
Eo, L, 34, cost, goal) E N P O ,
falls folgende Bedingungen erfiillt sind:
256
6 Komplexittitstheorie
(iii)
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 EingabegrSfle.}, (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. die Funktion cost kann man in polynomieller Zeit berechnen.
Wir sehen, dass ein Optimierungsproblem U in NPO ist, falls 1. man ellizient iiberpriifen kann, ob ein gegebenes Wort ein Problemfall (eine Instanz) von U ist, 2. die Gr6fie der L6sungen polynomiell in der Gr6fie der Eingabe (des Problemfalls) 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 Optimierung einschrS.nken und damit die Einordnung der praktischen L6sbarkeit yon U unabhS.ngig machen yon solchen Entscheidungsproblemen wie, ob eine Eingabe eine Instanz von U reprtisentiert oder ob y eine zulgssige L6sung fiir z ist. Damit liegt der Schwierigkeitsgrad von Problemen in NPO eindeutig in der Suche nach einer optimalen L6sung in der Menge aller zulgssigen L6sungen. Die folgende Begriindung zeigt, dass MAX-SAT in NPO liegt. 1. Man kann effizient entscheiden, ob ein x E Elogic eine Boole'sche Formel in KNF kodiert. 2. Fiir jedes x hat jede Belegung c~ E {0, 1}* der Variablen der Formel q)x die Eigenschaft Ictl < Ixl, und man kann in linearer Zeit verifizieren, ob Ic~l gleich der Anzahl der Variablen in ~x ist. 3. Ftir jede gegebene Belegung a der Variablen von ~x kann man in linearer Zeit bez/iglich IxI die Anzahl der erfiillten Klauseln berechnen und so die Kosten der zulgssigen L6sung a bestimmen.
6.6 NP-VollstSmdigkeit
257
Betrachten wir jetzt folgende Optimierungsprobleme. Das Problem des maximalen Schnittes, M A X - C U T , ist, ftir einen Graphen G = (V, E) einen maximalen Schnitt zu finden. Ein Schnitt von G = (V, E) ist jedes Paar (V1, V2) mit V1 U V2 = V und V1 A V2 = 0. Der Preis eines Schnittes (V1, V2) yon G ist die Anzahl der Kanten zwischen V1 und V2, d.h.
Das Problem der minimalen Knotenfiberdeckung, M I N - V C , ist, ftir einen Graphen G eine minimale Knotentiberdeckung (vertex cover) zu finden. Aufgabe 6.23. Geben Sie formale Definitionen der Optimierungsprobleme MAX-CUT und MIN-VC an und zeigen Sie, dass beide in NPO liegen. Die folgende Definition definiert auf nattirliche Weise die Klasse PO von Optimierungsproblemen, die die gleiche Bedeutung wie die Klasse P fiir Entscheidungsprobleme hat. D e f i n i t i o n 6.13. P O ist die Klasse von Optimierungsproblemen U = (EI, Eo, L, Ad, cost, goal), so dass
U E NPO und es existiert ein polynomieller Algorithmus A, so dass fiir jedes x E L, A(x) eine optimale LSsung fiir x ist. Die Definition der NP-Schwierigkeit eines Optimierungsproblems erhalten wir jetzt durch geschickte Reduktion zu einem NP-schweren Entscheidungsproblem. D e f i n i t i o n 6.14. Sei U = (EI, E0, L, A/l, cost, goal) ein Optimierungsproblem aus NPO. Die S c h w e l l e n w e r t - S p r a c h e ffir U ist
L a n g U = {(x, a ) E L x E~ool ]Optu(x) <_ Nummer(a)}, falls goal = Minimum, und L a n g U : {(x, a ) E L • E~ool I Optu(x) >_ Nummer(a)}, falls goal = Maximum. Wir sagen, dass U N P - s c h w e r ist, falls Lang U NP-schwer ist.
6 Komplexit~tstheorie
258
Zuerst zeigen wir, dass das in Definition 6.14 vorgestellte Konzept der NPSchwierigkeit fiir Optimierungsprobleme zum Beweisen von Aussagen der Form U ~ PO unter der Voraussetzung P ~ NP geeignet ist. L e m m a 6.12. Falls ein Optimierungsproblem U E PO, dann Lang U E P.
Beweis. Falls U E PO, dann existiert ein polynomieller Algorithmus A, der fiir jedes x E L eine optimale LSsung fiir x berechnet und damit Optu(x) bestimmt. Also kann man A benutzen, um Langu zu entscheiden. D S a t z 6.10. Sei U E NPO. Falls U NP-schwer ist und P r NP, dann U ~ PO.
Beweis. Wir beweisen Satz 6.10 indirekt. Angenommen U E PO. Lemma 6.12 folgend gilt Lang U E P. Weil U NP-schwer ist, ist auch Lang U NP-schwer. Somit ist Lang U eine NP-schwere Sprache in P, was P = NP fordert. D Die folgenden Beispiele zeigen, dass die Definition 6.14 eine einfache Methode zum Beweisen der NP-Schwierigkeit von Optimierungsproblemen bietet. L e m m a 6.13. MAX-SAT ist NP-schwer.
Beweis. Es reicht zu zeigen, dass LangMAX_SAT NP-schwer ist. Wir zeigen SAT _
ist erfiillbar.
Das Problem der maximalen Clique, MAX-CL, ist, fiir einen gegebenen Graphen eine maximale Clique in G zu finden. L e m m a 6.14. MAX-CL ist NP-schwer.
Beweis. Man bemerke, dass CLIQUE = LangMAX_CL. Da CLIQUE NP-schwer ist, sind wir fertig. D Aufgabe 6.24. Beweisen Sie, dass MAX-CUT und MIN-VC NP-schwer sind.
6.7 Zusammenfassung
6.7
259
Zusammenfassung
Das Hauptziel der Komplexit/itstheorie ist die Klassifikation der algorithmischen Probleme beziiglich der Menge der Rechnerressourcen, die ben6tigt werden, um die Probleme zu 16sen. Dabei erforscht man quantitative Gesetze der Informationsverarbeitung und die Grenze der praktischen algorithmischen L6sbarkeit. Die wichtigsten Komplexit/itsmafie sind die ZeitkomplexitS~t und die SpeicherplatzkomplexitS~t. Das Basismodell eines Rechners ist in der abstrakten Komplexit~ttstheorie die Mehrband-Turingmaschine. Die Komplexit~tt einer MTM (eines Algorithmus) betrachtet man als eine Funktion f der Eingabel~tnge n, wobei f(n) die maximale Komplexit/~t tiber alle Berechnungen auf Eingaben der Lgnge n ist. Diese Komplexitgtsmessung nennt man die Messung im schlechtesten Fall. Es existieren algorithmisch 16sbare Probleme yon beliebig hohem Schwierigkeitsgrad. Algorithmen von exponentieller Zeitkomplexitgt hglt man nicht fiir praktisch durchftihrbar. Die praktische L6sbarkeit von Problemen wird mit der polynomiellen Zeitkomplexitgt verbunden. Die Klasse P ist die Menge aller Entscheidungsprobleme, die man mit Algorithmen in polynomieller Zeit lasen kann. Die Definition der Klasse P ist robust in dem Sinne, dass sie unabhgngig vonder Wahl des Rechnermodells ist. Die ZeitkomplexitS~t der Arbeit einer nichtdeterministischen MTM M auf einer Eingabe w ist die Lgnge der kiirzesten korrekten Berechnung von M auf w. Die typische Arbeit eines nichtdeterministischen Algorithmus besteht aus nichtdeterministischem Raten und nachfolgender deterministischer Verifikation des Geratenen. Die Klasse NP ist die Klasse aller Sprachen, die nichtdeterministisch in polynomieller Zeit entscheidbar sind. Die Frage, ob P eine echte Teilmenge von NP ist, ist wahrscheinlich die bekannteste bisher unbeantwortete Frage in der Theoretischen Informatik. Die Klasse NP enthglt viele praktisch interessante Probleme, von denen man nicht weiss, ob sie in P liegen. Man kann zeigen, dass die Frage, ob P ungleich NP ist,/~quivalent zu der Frage ist, ob es schwerer ist, mathematische Beweise algorithmisch zu finden als gegebene Beweise algorithmisch zu verifizieren. Es ist uns nicht gelungen, Beweistechniken fiir untere Schranken der Zeitkomplexitgt konkreter Probleme zu entwickeln. Damit fehlt uns die methodologische Grundlage zur Klassifikation der Probleme in praktisch 16share und praktisch unl6sbare. Das Konzept der NP-VollstS~ndigkeit erm6glicht uns aber, Resultate der Art L ~ P unter der zusgtzlichen Voraussetzung P ~ NP zu zei-
6 Komplexittitstheorie
260
gen. Die NP-vollstS~ndigen Probleme sind die schwersten Probleme in NP in dem Sinne, dass, wenn nur eines von ihnen in P w~tre, P = NP gelten miisste. Die Hierarchies~ttze wurden bei Hartmanis, Stearns und Lewis [HS 65, HSL 65] bewiesen. Die Begriffe der polynomiellen Reduktion und der NP-Vollst~tndigkeit gehen auf die a r b e i t e n yon Cook [Coo 71] und Karp [Kar 72] zuriick. Das klassische Buch yon Garey und Johnson [GJ 79] bietet eine detaillierte Darstellung der Theorie der NP-Vollstgndigkeit. Hervorragende Pr~tsentationen des T h e m a s ,,Praktische LSsbarkeit" kann m a n bei Lewis und P a p a d i m i t r i o u [LP 78] und Stockmayer und C h a n d r a [SC 79] finden. Es gibt mehrere gute Biicher, die sich mit KomplexitS~tstheorie beschSfftigen. Eine exzellente Einfiihrung in die KomplexitS~tstheorie kann m a n in Lehrbiichern yon Hopcroft und Ullman [HU 79] und Sipser [Sip 97] finden. Eine ausfiihrliche Darstellung der Komplexit~tstheorie bieten Bovet und Crescenzi [Be 94], P a p a d i m i t r i o u [Pap 94] und Balc~zar, Dfaz, und G a b a r r d [BDG 88, B DG 90]. Von der deutschsprachigen Literatur empfehlen wir wSzmstens das Lehrbuch yon Reischuk [Rei 90].
Kontrollaufgaben 1. Wie definiert man die Komplexit~it eines Algorithmus (einer TM) im schlechtesten Fall? Warum benutzt man am h~ufigsten diese Art der Komplexit~itsmessung? 2. Die ZeitkomplexitS~t einer Turingmaschine kann man immer dutch einen konstanten Faktor beschleunigen, wenn ihre Zeitkomplexit/it superlinear ist. Dies ist tiberraschend 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 Zeitkomplexit~itsklassen?
6.7 Zusammenfassung 10. 11.
12.
13.
14. 15. 16. 17.
18.
19. 20.
261
Wie definiert man nichtdeterministische KomplexitS~tsklassen? Was fiir eine Rolle spielen dabei die zeit- und platzkonstruierbaren Funktionen? Welche Simulationen von nichtdeterministischer Zeitkomplexittit dutch deterministische Zeitkomplexittit kennen Sie? Formulieren Sie die Resultate als Beziehungen zwischen Komplexittitsklassen und geben Sie eine detaillierte Beschreibung und Analyse der Simulationstechniken. Welche Griinde fiihrten dazu, dass man die Klasse P der in polynomieller Zeit 16sbaren Entscheidungsprobleme mit der Klasse der ,,praktisch" 16sbaren Probleme identifiziert? Warum hat man nicht beispielsweise die Klasse TIME (n 6) gew~ihlt? Erklttren Sie die zwei unterschiedlichen M6glichkeiten, die Klasse NP zu definieren. Wie htingt die nichtdeterministische Zeitkomplexittit mit der deterministischen Komplexitgt der algorithmischen Beweisverifikation zusammen? 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. Geben Sie Polynomialzeit-Verifizierer fiir alle NP-vollstgndigen Sprachen, die Sie kennen. Beschreiben Sie das Konzept der polynomiellen Reduktion. Was sind die Ahnlichkeiten und die Unterschiede zur Reduktion in der Berechenbarkeit? 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. 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
Wenn euch ein Wissenschaftler sagt: ,Dies ist das Ende, hier kann man nichts mehr machen", dann ist er kein Wissenschaftler. L. Goul
7
Algorithmik fiir schwere Probleme
7.1
Zielsetzung
i
Die Komplexitgtstheorie liefert uns die Methoden zur Klassifikation der algorithmischen 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 fiberraschend klingen, weil nach der in Kapitel 6 vorgestellten Komplexitgtstheorie der Versuch, ein NP-schweres Problem zu 16sen, an die Grenze des physikalisch 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 Anwendungen 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 Problemspezifikation oder der Anforderungen an die Probleml6sung einen gewaltigen Sprung machen kann, und zwar von einer physikalisch nicht machbaren Berechnungskomplexitgt zu einer Angelegenheit yon wenigen Minuten auf einem Standard-PC. Um solche Effekte, die zur L6sung gegebener Probleme in der Praxis f~hren k6nnen, zu erzielen, kann man folgende Konzepte oder deren Kombinationen benutzen.
Schwere Probleminstanzen im Gegensatz zu typischen Probleminstanzen. Wir messen die Zeitkomplexit~t als Komplexit~t im schlechtesten Fall~ was
7.1
Zielsetzung
263
bedeutet, dass die KomplexitS~t Time(n) die KomplexitS~t der Berechnungen auf den schwersten Probleminstanzen der Gr6f3e n i s t . Es ist aber oft so, dass die schwersten Probleminstanzen so unnatiirlich sind, dass sie als Aufgabenstellungen in der Praxis gar nicht vorkommen. Deswegen ist es sinnvoll, die Analyse der ProblemkomplexitS~t in dem Sinne zu verfeinern, dass man die Probleminstanzen nach ihrem Schwierigkeitsgrad klassifiziert. Eine erfolgreiche Klassifizierung k6nnte zur Spezifikation einer grogen Teilmenge von ettizient 16sbaren Probleminstanzen f~hren. Falls die in einer Anwendung typischen Eingaben zu einer solchen Probleminstanzklasse geh6ren, ist das Problem in dieser Anwendung gel6st.
Ezponentielle Algorithmen. Man versucht nicht mehr, einen polynomiellen Algorithmus zu entwerfen, sondern einen Algorithmus mit einer exponentiellen Zeitkomplexit~t. Die Idee dabei ist, dass einige exponentielle Funktionen ftir realistische Eingabegr6t3en nicht so grot3e Werte annehmen. Tab. 7.1 zeigt anschaulich, dass (1.2) ~ Rechneroperationen fiir n = 100 oder 10.2v~ Operationen f~r n = 300 in ein paar Sekunden durchf/ihrbar sind. T a b . 7.1 Komplexit~t Tt
2~
n = 10
n = 50
n = 100
n = 300
1024
16 Ziffern
31 Ziffern
91 Ziffern
32
~ 33 9 106
16 Ziffern
46 Ziffern
(1.2) ~
6
~ 9100
~ 8 3 - 106
24 Ziffern
1 0 . 2 v/-~
89
~ 1345
10240
~ 1.64.106
Abschwiichung der Anforderungen. Man kann die Anforderung, mit Sicherheit fiir jede Eingabe das richtige Resultat zu berechnen, auf unterschiedliche Art und Weise abschwS~chen. Typische ReprS~sentanten dieses Ansatzes sind randomisierte Algorithmen und Approximationsalgorithmen. Bei randomisierten Algorithmen tauscht man die deterministische Steuerung durch eine Zufallssteuerung aus. Dadurch kSnnen mit einer beschrS~nkten Wahrscheinlichkeit falsche Resultate berechnet werden. Wenn die Fehlerwahrscheinlichkeit nicht grSt3er als 10 -9 ist, dann weicht die ZuverlS~ssigkeit solcher randomisierten Algorithmen von der eines korrekten deterministischen Algorithmus' nicht allzu sehr ab. Die Approximationsalgorithmen benutzt man zur L6sung von Optimierungsproblemen. Anstatt zu fordern, eine optimale L6sung zu errechnen, geht man zu der Forderung fiber, eine L6sung zu errechnen, deren Kosten (Qualits~t) sich nicht allzu sehr yon der optimalen LSsung unterscheiden. Beide dieser AnsS~tze kSnnen einen Sprung von exponentieller zu polynomieller Komplexitgt ermSglichen.
264
7 Algorithmik fiir schwere Probleme
Die Zielsetzung dieses Kapitels ist es, einige dieser Konzepte ansatzweise vorzustellen. 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 A1gorithmen, die MSglichkeiten fiir die Realisierung aller drei oben vorgestellten Konzepte bieten. Die lokale Suche ist die Basis fiir mehrere Heuristiken. In Abschnitt 7.5 erklS~ren wir die Heuristik des Simulated Annealing, die auf einer Analogie zu einem physikalischen Vorgang basiert. Dem Konzept der Randomisierung wird wegen seiner Wichtigkeit ein eigenes Kapitel 8 gewidmet.
7.2
Pseudopolynomielle Algorithmen
In diesem Abschnitt betrachten wir eine spezielle Klasse von Problemen, deren 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 Symbolen ~ in den zulgssigen Eingaben als ein Zahlproblem verstehen k6nnen. Sei x = xl#x2CP...
ein Wort fiber {0, 1, r
r
xi E {0, 1}* fiir i =
1, 2 , . . . , n
Wir interpretieren x als folgenden Vektor
Int(x) = (Nummer(Xl),
Nummer(x2),
. . . , Nummer(Xn))
von n natiirlichen Zahlen. Jedes graphentheoretische Problem 1, deren Probleminstanzen man durch die Adjazenzmatrix repr~tsentieren kann, ist ein Zahlproblem, weil man jede Adjazenzmatrix als eine Folge von Nullen und Einsen darstellen kann. Das TSP ist ein Zahlproblem, wobei die Zahlenfolge die Kosten der einzelnen Kanten reprgsentiert. Wir definieren fiir jedes x = XlCPX2~... r MaxInt(x) = max{Nummer(xi)
mit xi E {0, 1}* f/Jr i = 1, 2 , . . . , n, l i = 1, 2 , . . . ,
n}.
1Wie das Problem der Knotentiberdeckung oder das CLIQUE-Problem.
7.2 Pseudopolynomielle Algorithmen
265
Die Hauptidee des Konzeptes der pseudopolynomiellen Algorithmen ist die Suche nach Algorithmen, die ettizient auf solchen Eingaben x sind, bei denen MaxInt(x) nicht wesentlich gr6fier ist als IxI . Weil eine Zahl Nummer(y) exponentiell gr6fier ist als die Lb~nge ihrer binbzen Darstellung y, handelt es sich um eine echte Einschrb~nkung. D e f i n i t i o n 7.1. Seibt ein Zahlproblem und sei A ein Algorithmus, derbt 15st. Wit sagen, dass A ein p s e u d o p o l y n o m i e l l e r A l g o r i t h m u s ffir U ist, falls ein Polynom p mit zwei Variablen existiert, so dass TimeA(x) E O(P(lx I, Maxlnt(x)))
fiir alle Pwbleminstanzen x von H. Wir bemerken gleich, dass fiir Probleminstanzen x mit Maxlnt(x) _< h(l ein Polynom h die Zeitkomplexitat TimeA(x) polynomiell in Izl ist.
l)
fiir
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 Problem, das man aus H dutch die Einschriinkung der Menge der zuliissigen Eingaben auf die Klasse der Probleminstanzen x mit MaxInt(x) _< h(l l) ~h~zt. Die nb~chste Behauptung zeigt, dass man auf diese Weise grofie Klassen von leichten Probleminstanzen eines schweren Problems spezifizieren kann. S a t z 7.1. Sei H ein Zahlproblem und sei A ein pseudopolynomieller Algorithruns fiir H. Dann existiert fiir jedes Polynom h ein polynomieller Algorithmus fiir das Problem Wert(h)-H. 2
Beweis. Weil A ein pseudopolynomieller Algorithmus fiir H ist, existiert ein Polynom p mit zwei Variablen, so dass TimeA(x) E O(p(lxl), MaxInt(x)) fiir jede Probleminstanz x yon/1/. Weil h e i n e polynomielle Funktion ist, existiert eine Konstante c, so dass MaxInt(x) E O(IxI ~) ffir alle Probleminstanzen x von Wert(h)-H. Damit ist TimeA(x) E O(P(Ix I, Ixlc)) und somit ist A ein polynomieller Algorithmus fiir Wert(h)-H. D 2Falls /1/ ein Entscheidungsproblem ist, bedeutet das, dass Wert(h)-H c P. Falls /1/ ein Optimierungsproblem ist, bedeutet das, dass Wert(h)-H E PO.
7 A l g o r i t h m i k fiir schwere P r o b l e m e
266
Wir zeigen die Anwendung dieses Konzeptes fiir die L6sung des RucksackProblems, 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_
{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 Objekte, die in den Rucksack eingepackt worden sind.} Ziel: Maximum. Wir m6chten jetzt einen pseudopolynomiellen Algorithmus fiir das RucksackProblem mit der Methode der dynamischen Programmierung entwerfen. Wir wollen die L6sung einer Probleminstanz I = (Wl, w 2 , . . . , w~, c1,..., c~, b) so berechnen, dass wir mit der Teilinstanz I1 = (Wl, Cl, b) anfangen und fiber /ri - - ( W l , W 2 , . . .
, Wi, C 1 , . . . , Ci,
b)
fiir i - 2, 3 , . . . , n his zu I - I~ kommen. Genauer, wir wollen fiir jede Instanz Ii und jedes k E {0, 1, 2 , . . . , E~=I cj} ein Tripel
6
{
0,1,2,...,
cj
• {0,1,2,
,b} •
j=l
bestimmen, wobei Wi,k das minimale Gewicht ist, bei dem man den Nutzen k fiir die Instanz Ii erhalten kann. Die Menge T~,k C_ { 1 , . . . , i} ist die Menge yon
7.2 Pseudopolynomielle Algorithmen
267
Indizes, die genau den Nutzen k bei dem Gesamtgewicht Wi,~ definiert, d.h. )[,
ci - k
und
j ETi,k
)[,
wi
-
W ,k .
j ETi,k
Wir bemerken, dass mehrere Indexmengen den gleichen Nutzen k und das gleiche Gewicht Wi,k bestimmen k6nnen. In solchen FS~llen wS~hlen wir beliebig eine aus, urn die Erreichbarkeit yon (k, Wi,k) zu dokumentieren. Andererseits kann es vorkommen, dass ein Gesamtnutzen k in Ii nicht erreichbar ist. In diesere Fall wird kein Tripel fiir k hergestellt. Im Folgenden bezeichnet T R I P LEi die Menge aller Tripel f~r Ii. Bemerke, dass i
ITRIPLE I <
+ 1. j=l
Ein wichtiger Punkt ist, dass man TRIPLEi+I aus TRIPLE/ in der Zeit O(TRIPLEi) berechnen kann. Urn TRIPLEi+I zu berechnen, berechnet man zuerst SET/+I
TRIPLE~ O {(k + Ci+l, Wi,k + Wi+l, ri,k U {i Jr- 1}) I (k, W~,k, T~,k)E TRIPLE~ und W~,k + W~+l _< b}
durch das zusgtzliche Einpacken des (i + 1)-ten Objektes zu jedem Tripel in TRIPLEi, falls dabei das Gewicht b nicht iiberschritten wird. TRIPLEi+I ist dann eine Teilmenge yon SETi+I, bei der man fiir jeden erreichbaren Nutzen k ein Tripel aus SETi+I mit minimalem Gewicht f/Jr den Nutzen k genommen hat. Offensichtlich bestimmt das Tripel mit dem maximalen Nutzen in TRIPLE~ eine optimale L6sung der Probleminstanz I~. Somit kann man den entworfenen Algorithmus wie folgt darstellen.
Algorithmus D P R f__/iTtgabe: Z = (Wl, w 2 , . . . , Wn, C1,... , Cn, b) ~ (IN - {0}) 2nq-1 fiir eine positive
ganze Zahl n. Phase 1. TRIPLE(I) = {(0, 0, 0)} O {(Cl, Wl, {1})} I falls Wl _< b}. Phase 2. f o r i = l t o n - l d o begin S E T ( / + 1 ) : = TRIPLE(i); f o r jedes (k, w, T) E TRIPLE(i) do begin
if w + wi+ 1 ~ b then
S E T ( / + 1 ) : : S E T ( / + 1) U {(/{ -Jr-6i+1,
w qL W i + l '
T U {i + 1})};
7 Algorithmik fiir schwere Probleme
268 e n d
Bestimme T R I P L E ( / + 1) als eine Teilmenge yon S E T ( / + 1), die fiir jeden erreichbaren Nutzen in SET(/ + 1) genau ein Tripel enthS~lt, und zwar ein Tripel mit dem minimalen Gewicht ffir den Nutzen k. e n d
Phase 3. Berechne n
c ' - max{k e { 1 , 2 , . . . ,
ci} I (k, w, T) E TRIPLE(n)}. i=1
Ausgabe: Die Indexmenge T ,so dass (c, w, T) E TRIPLE(n). Wir illustrieren die Arbeit des Algorithmus' DPR an folgender Probleminstanz I - (Wl,W2,...,ws, c l , . . . , c s , b), wobei W l - 23 w 2 - 15 Cl 33 c2 23 -
-
W 3 -C3
-
-
und b - 65. Offensichtlich ist 1 1 Nutzen sind 0 und 33. Damit gilt
15 11 --
W4--33 C4
-
-
35
w 5 - 32 c5 11 -
(23, 33, 65) und die einzig erreichbaren
TRIPLE~ - {(0, 0, 0), (33, 23, {1})}. /2 - (23, 15, 33, 23, 65) und die einzig erreichbaren Nutzwerte fiir/2 sind 0, 23, 33 und 56. Somit erh~ilt man TRIPLE2 - {(0, 0, 0), (23, 15, {2}), (33, 23, {1}), (56, 38, {1, 2})}. Es ist /3 = (23, 15, 15, 33, 23, 11, 65). Das Einpacken des dritten Objektes ist fiir jedes Tripel aus TRIPLE2 mSglich und bei jedem neuen Tripel erhalten wir dabei einen neuen Nutzwert. Damit hat TRIPLE3 die doppelte Mgchtigkeit wie TRIPLE2 (d.h. SET3 = TRIPLE3) und TRIPLE3
{(0, 0, 0), (11, 15, {3}), (23, 15, {2}), (33, 23, {1}), (34, 30, {2, 3}), (44, 38, {1, 3}), (s6, 38, {1, 2}), (67, s3, {1, 2, 3})}.
Ffir die Tripel (44, 38,{1,3}), (56, 38,{1,2}) und (67, 53,{1,2,3}) aus TRIPLE3 kann man das vierte Objekt in den Rucksack nicht mehr einpacken und so erhalten wir
7.2 PseudopolynomielleAlgorithmen
TRIPLE4
269
TRIPLEa O {(35, 33, {4}), (46, 48, (3, 4}), (58, 48, {2, 4}), (68, 56, {1, 4}), (69, 63, {2, 3, 4})}.
Am Ende erhalten wir fiir die Instanz I = / 5 TRIPLE5
{(0, 0, 0), (11, 15, {3}), (22, 47, {3, 5}), (23, 15, {2}), (33, 23, {1}), (34, 30, {2, 3}), (35, 33, {4}), (44, 38, {1, 3}), (45, 62, {2, 3, 5}), (46, 48, {3, 4}), (56, 38, {1, 2}), (58, 48, {2, 4}), (67, 53, {1, 2, 3}), (68, 56, {1, 4}), (69, 63, {2, 3, 4})}.
Damit ist {2, 3, 4} die optimale L6sung fiir I, weil (69, 63, {2, 3, 4}) ein Tripel mit dem maximalem Nutzwert 69 in TRIPLE5 ist. Aufgabe 7.1. Simulieren Sie die Arbeit des Algorithmus DPR fiir die Probleminstanz (1, 3, 5, 6, 7, 4, 8, 5, 9) des Rucksack-Problems. Im Folgenden analysieren wir die ZeitkomplexitS~t des Algorithmus DPR. Satz 7.2. Fiir jede Instanz I des Rucksack-Problems ist TimeDpa(I) E O(lII 2. MaxInt(I)) und damit ist DPR ein pseudopolynomieller Algorithmus fiir das Rucksackproblem. Beweis. Die Zeitkomplexit5t der ersten Phase ist in 0(1). Fiir die Probleminstanz I = (Wl,W2,...,w~,cl,...,c~,b) berechnet DPR n - 1 Mengen TRIPLE(/+ 1). Die Berechnung yon TRIPLE(/+ 1) aus TRIPLE(i) kann man in der Zeit O(ITRIPLE(i + 1)1) durchfiihren. Weil n
ITRIPLE(i + 1)1 _< ~
cj _< n. MaxInt(I)
j=l
fiirjedes i C {0, I,..., n}, liegt die gesamte Zeitkomplexit~t der zweiten Phase in O(n 2. MaxInt(I)).
7 Algorithmik fiir schwere Probleme
270
Die ZeitkomplexitS~t der dritten Phase liegt in O(n. MaxInt(I)), weil man da ein Maximum aus h6chstens n - M a x l n t ( I ) Werten bestimmt. Weil n _< II , WimeDpa(I) E
o(1II
MaxInt(I)).
Wir bemerken, dass pseudopolynomielle Algorithmen in der Praxis sehr erfolgreich sein diirften. Oft sind Gewichte und Nutzen Zahlen aus einem festen Intervall und damit unabhS~ngig yon der Anzahl der Parameter der Probleminstanz. Damit k6nnen die pseudopolynomiellen Algorithmen auf typischen in der Praxis auftretenden Probleminstanzen schnell die L6sung liefern. Das Interesse aus der Praxis fiir den Entwurf yon pseudopolynomiellen Algorithmen stellt uns eine neue Klassifizierungsfrage. F/Jr welche NP-schweren Probleme existieren pseudopolynomielle Algorithmen und fiir welche gibt es keine? Wir suchen nach einer Methode, mit der man zeigen k6nnte, dass ein Zahlproblem so schwer ist, dass bei der Voraussetzung P ~r NP kein polynomieller Algorithmus fiir Probleminstanzen mit kleinen Zahlen existiert. Das Konzept der NP-VollstS~ndigkeit funktioniert auch fiir diese Anwendung. D e f i n i t i o n 7.3. Ein Zahlproblem bt heiflt s t a r k N P - s c h w e r , falls ein Polynora p existiert, so dass Wert(p)-N NP-schwer ist. Die folgende Behauptung zeigt, dass die starke NP-Schwierigkeit das gesuchte Konzept fiir Beweise der Nichtexistenz von pseudopolynomiellen Algorithmen liefert. Satz 7.3. Sei bt ein stark NP-schweres Zahlpvoblern. Falls P r NP gilt, dann ezistiert kein pseudopolynomieller Algorithmus fiir ld.
Beweis. Weil b/ stark NP-schwer ist, existiert ein Polynom p, so dass das Problem Wert(p)-b/NP-schwer ist. Angenommen, es gibt einen pseudopolynomiellen Algorithmus fiir b/. Nach Satz 7.1 impliziert die Existenz eines pseudopolynomiellen Algorithmus fiir b/die Existenz eines polynomiellen Algorithmus fiir Wert(h)-b/ftir jedes Polynom h. Aber das bedeutet, dass wir einen polynomiellen 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 Nichtexistenz eines pseudopolynomiellen Algorithmus fiir ein gegebenes Problem zu zeigen. Im Folgenden illustrieren wir die Anwendung der starken NP-Schwierigkeit, indem wir zeigen, dass TSP stark NP-schwer ist. Wir benutzen dabei die
7.3 Approximationsalgorithmen
271
bekannte Tatsache, dass das Entscheidungsproblem des Hamiltonschen Kreises (HK) NP-vollstgndig ist. Das Problem HK ist zu entscheiden, ob ein gegebener Graph einen Hamiltonschen Kreis (einen Kreis, der durch jeden Knoten des Graphen genau einmal ftihrt) besitzt. L e m m a 7.1. Das TSP ist stark NP-schwer.
Beweis. Weil HK NP-schwer ist, reicht es HK <_p Langwert(p)-TSP fiir das Polynom p(n) - n zu zeigen. Sei G - (V, E) eine Eingabe von HK. Sei I V I - n fiir eine positive ganze Zahl n. Wir konstruieren einen gewichteten vollstS~ndigen Graphen (K~, c) mit K~ = (V, Evon) wie folgt. Evon - {{u, v} l u, v E V, u -r v} und die Gewichtsfunktion C'Evon ~ {1, 2} ist definiert durch
c(e)-i
falls
cEE,
c(e)-2
falls
c@E.
und
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 Knoteniiberdeckungsproblems. 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 kostengiinstige Uberdeckung sucht. Beweisen Sie, dass das gewichtete {)berdeckungsproblem stark NP-schwer ist.
7.3
Approximationsalgorithmen
In diesem Abschnitt stellen wir das Konzept der Approximationsalgorithmen zur L6sung schwerer Optimierungsprobleme vor. Die Idee ist, den Sprung yon exponentieller ZeitkomplexitS~t zu polynomieller Zeitkomplexit/~t durch die AbschwS~chung der Anforderungen zu erreichen. Statt der Berechnung einer optimalen L6sung fordern wir nur die Berechnung einer fast optimalen L6sung. Was der Begriff ,,fast optimal" bedeutet, legt die folgende Definition fest.
272
7 Algorithmik fiir schwere Probleme
D e f i n i t i o n 7.4. Sei N = (EI, Eo, L, M , cost, goal) ein Optimierungsproblem. Wir sagen, dass A ein z u l ~ s s i g e r A l g o r i t h m u s ffir /,4 ist, falls fiir jedes
x E L die Ausgabe A(x) der Berechnung von A auf x eine zuliissige LSsung (d.h. e Sei A ein zulgssiger Algorithmus fiir ld. Fiir jedes x E L definieren wit die A p p r o x i m a t i o n s g f i t e G i i t e A ( x ) v o n A a u f x dutch {cost(A(x)) GiiteA(x)
-
max
Opts(x) } Optu(x ) 'cost(A(x)) '
wobei Optu(x ) die Kosten einer optimalen LSsung fiir die Instanz x von bt sind. Fiir jede positive Zahl 6 > 1 sagen wit, dass A ein 6 - A p p r o x i m a t i o n s a l g o r i t h m u s f i b / , 4 ist, falls GiiteA(x) _< 6
fiir jedes x E L. Wir illustrieren das Konzept der Approximationsalgorithmen zuerst fiir das Problem der minimalen Knoteniiberdeckung. Die Idee ist, effizient ein maximales Matching 3 in dem gegebenen Graphen zu finden und dann die zu diesem Matching inzidenten Knoten als eine Knoteniiberdeckung auszugeben. Algorithmus VCA
Eingabe: Ein Graph G - (V, E). Phase 1. C "- 0; {Wghrend der Berechnung gilt C c_ V und am Ende der Berechnung enthglt C eine Knoteniiberdeckung fiir G.}
A.-0; {Wghrend der Berechnung gilt A c_ E und am Ende der Berechnung ist A ein maximales Matching.} E' "- E; {Wghrend der Berechnung enthglt E' C E genau die Kanten, die yon dem aktue]]en C noch nicht iiberdeckt werden. A m Ende der Berechnung gilt E ' - 0.} 3Ein Matching in G - (V, E) ist eine Menge M C_E von Kanten, so dass keine zwei Kanten aus M mit dem gleichen Knoten inzident sind. Ein Matching M ist maximal, falls fiir jedes e E E - M die Menge M O {e} kein Matching in Gist.
7.3 Approximationsalgorithmen Phase 2.
273
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 Knotentiberdeckung ist und dass diese optimale Uberdeckung bei keiner Wahl yon Kanten yon VCA erreicht werden kann.
O (~)
(c)
(b)
(d)
Fig. 7.1 Aufgabe 7.3. Finden Sie eine Wahl yon Kanten in der zweiten Phase yon VCA, so dass die resultierende Uberdeckung C alle Knoten von G in Fig. 7.1(a) enth~lt. S a t z 7.4. Der Algorithmus VCA ist ein 2-Approximationsalgorithmus fiir das
MIN-VCP ~ d Tim~vc~(C) e O(IEI) f ~ S ~ P ~ o b l ~ , ~ t ~ C - (V, E).
274
7 Algorithmik fiir schwere Probleme
Beweis. Die Behauptung TimevcA(G) E O(IEI) ist offensichtlich, weil jede Kante aus E in VCA genau einmal betrachtet wird. Weil am Ende der Berechnung E' = 0 gilt, berechnet VCA eine Knotentiberdeckung in G (d.h. VCA ist ein zulgssiger Algorithmus fiir MIN-VCP). Um GiitevcA(G) _< 2 fiir jeden Graph G zu beweisen, bemerken wir, dass ICI = 2. IAI und A ein Matching in G ist. Um IAI Kanten des Matchings A zu iiberdecken, muss man mindestens IAI Knoten wghlen. Weil A c E, ist die Mgchtigkeit jeder Knoteniiberdeckung in G mindestens IAI, d.h. OptMIN_Vcp(G) _> IAI. Daher IC I OptMiN_VCP(G)
2. A I < 2. OptMiN_VCP(G) --
Aufgabe 7.4. Konstruieren Sie fiir jedes n c IN-{0} einen zusammenh/ingenden Graphen G~, so dass die optimale Knoteniiberdeckung die M/ichtigkeit n hat und der Algorithmus VCA eine Uberdeckung mit der M~chtigkeit 2n konstruieren kann. Ob eine ApproximationsgiRe von 2 hinreichend ist, h/~ngt von der konkreten Anwendung ab. Meistens versucht man eine viel kleinere Approximationsgiite zu erreichen, was aber oft viel anspruchsvollere algorithmische Ideen erfordert. Andererseits misst man die Approximationsgtite als die Approximationsgiite im schlechtesten Fall, deshalb kann ein 2-Approximationsalgorithmus auf praktisch relevanten Eingaben viel besser laufen als mit der Approximationsgiite 2. Es gibt Optimierungsprobleme, die fiir das Konzept der Approximation zu schwer sind, in dem Sinne, dass (P r NP vorausgesetzt) keine polynomiellen d-Approximationsalgorithmen (ftir d > 1) ftir solche Probleme existieren. In Abschnitt 7.2 haben wir gezeigt, dass TSP zu schwer ftir das Konzept der pseudopolynomiellen Algorithmen ist. Im Folgenden zeigen wir, dass TSP auch mit dem Konzept der Approximation nicht zu bewS~ltigen ist. L e m m a 7.2. Falls P r NP gilt, dann existiert fiir jedes d > 1 kein polynomieller d-Approximationsalgorithmus fiir TSP.
Beweis. Wir fiihren einen indirekten Beweis. Angenommen, es gibt eine Konstante d E I N - {0}, so dass ein polynomieller d-Approximationsalgorithmus A ftir TSP existiert. Wir zeigen, dass dann ein polynomieller Algorithmus B fiir das NP-vollstS~ndige Problem des Hamiltonschen Kreises existiert, was der Annahme P r NP widerspricht.
7.3 Approximationsalgorithmen
275
Der Algorithmus B fiir das Problem des Hamiltonschen Kreises arbeitet fiir jede Eingabe G = (V, E) wie folgt. (i) B konstruiert eine Instanz ( K v , c) des TSP, wobei
Kv c(e)-(d
- (V,E'), c(e)=l, 1).IVI+2,
mit falls falls
E' - { { u , v } l u, v E V,u =/=v}, e E E , und e~E.
(ii) B simuliert die Arbeit von A auf der Eingabe (K v , c). Falls das Resultat von A ein Hamiltonscher Kreis mit Kosten genau IvI ist, akzeptiert B seine Eingabe G. Sonst verwirft A die Eingabe G. Die Konstruktion der Instanz (K v , c) kann B in der Zeit O(IVI 2) durchfiihren. Die zweite Phase yon B 15~uft in polynomieller Zeit, weil A in polynomieller Zeit arbeitet und die Graphen G und KIv I die gleiche Gr6fie haben. Wir miissen noch zeigen, dass B wirklich das Problem des Hamiltonschen Kreises entscheidet. Wir bemerken Folgendes. (i) Wenn G einen Hamiltonschen Kreis enthS~lt, dann enthS~lt KIv I einen Hamiltonschen Kreis mit den Kosten IVl, d.h. OptTsp(Klvl, c ) = IVl. (ii) Jeder Hamiltonsche Kreis in KIvI, der mindestens eine Kante aus E ' - E enthglt, hat mindestens die Kosten
I V I - 1 + ( d - 1). IVl Jr 2 = d. IVl Jr 1 > d. IVl. Sei G = (V, E) in HK, d.h. OptTsp(Klvl, c) = IVI. Nach (ii) hat jede zulS~ssige L6sung mit zu Ivl unterschiedlichen Kosten mindestens die Kosten d. Ivl + 1 > d. Ivl und so muss der d-Approximationsalgorithmus A eine optimale L6sung mit den Kosten Ivl ausgeben. Daraus folgt, dass B den Graphen G akzeptiert. Sei G = (V, E) nicht in HK. Damit hat jede zulassige L6sung ffir (KIvI, c) h6here Kosten als IVl, ~lso cost(A(Klvl, c)) > IVl. Deswegen verwirft B den Graphen G. D Um TSP mindestens teilweise zu bew~iltigen, kombinieren wir das Konzept der Approximation mit der Suche nach der Teilmenge der leichten Probleminstanzen. 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.
7 Algorithmik fiir schwere Probleme
276
Algorithmus SB
Eingabe: Ein vollstSmdiger G r a p h G = (V, E) mit einer Kostenfunktion c : E ~ IN +, die die Dreiecksungleichung
_<
+
fiir alle paarweise unterschiedlichen Knoten u, v, w E V erffillt. Phase 1. SB berechnet einen minimalen S p a n n b a u m 4 T von G bezfiglich c. Phase 2. Wghle einen beliebigen Knoten v aus V. Fiihre eine Tiefensuche von v in T aus und nummeriere die Knoten in der Reihenfolge, in der sie besucht worden sind. Sei H die Knotenfolge, die dieser N u m m e r i e r u n g entspricht. Ausgabe: Der Hamiltonsche Kreis H = H, v. Wir illustrieren die Arbeit des Algorithmus SB auf der Probleminstanz G aus Fig. 7.2(a). Ein minimaler S p a n n b a u m T = ({Vl, v2, v3, v4, vs}, {{Vl, v3}, {Vl, vs}, {v2, v3}, {v3, v4}} in G i s t in Fig. 7.2(b) dargestellt. Fig. 7.2(c) zeigt die Tiefensuche yon v3 aus in T. Wir bemerken, dass bei der Tiefensuche jede Kante yon T genau zweimal durchlaufen wird. Diese Tiefensuche determiniert die Knotenfolge H = v3, v4, Vl, vs, v2 und so ist H = v3, v4, Vl, vs, v2, v3 die a u s g a b e des Algorithmus SB (Fig. 7.2(d)). Die Kosten yon H sind 2 + 3 + 2 + 3 + 1 = 11. Eine optimale L6sung ist v3, Vx, vs, v4, v2, v3 mit den Kosten 1+2+2+2+1=8 (Fig. 7.2(e)).
Satz 7.5. Der Algorithmus SB ist ein polynomieller 2-Approximations-
algorithmus fiir A - T S P . Beweis. Analysieren wir zuerst die ZeitkomplexitS~t von SB. Ein minimaler S p a n n b a u m eines Graphen G = (V, E) kann in der Zeit OriEl) berechnet werden. Die Tiefensuche in einem B a u m T = (V, E') lguft in der Zeit O(IVl). Somit ist TimesB(G) E o(IEI), d.h. SB arbeitet in linearer Zeit. Jetzt beweisen wir, Hopt ein optimaler eine Probleminstanz SB fiir die Eingabe
dass die Approximationsgtite von SB h6chstens 2 ist. Sei Hamiltonscher Kreis mit cost(Hopt) - Optzx_Tsp(G) ffir 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 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 ~.
277
7.3 Approximationsalgorithmen V2 1
V2 2
V3
V3
Vl
V4
2
V5
1
V4
(b)
~ Vl
V5
V2 1
Vl
V3
V5
V4
(c)
V5
(d) V2 1
V4
2
V5
Fig. 7.2 der ersten Phase konstruiert. Zuerst bemerken wir, dass
(7.1) cEE ~
weil die Entfernung einer Kante a u s T ein minimaler Spannbaum ist.
Hopt
in einem Spannbaum resultiert und
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)
7 Algorithmik fiir schwere Probleme
278 Die G l e i c h u n g e n ( 7 . 1 ) u n d ( 7 . 2 ) i m p l i z i e r e n
cost(W) < 2. cost(Hopt).
(7.3)
Wir bemerken, dass man H aus W erhalten kann, indem man einige Teilwege 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 realisieren. Diese einfache O p e r a t i o n e r h 6 h t a b e r die K o s t e n des Weges nicht, weil d a n k der D r e i e c k s u n g l e i c h u n g
_<
+
Deswegen
o t(H) < o t(W)
(7.4)
Die U n g l e i c h u n g e n ( 7 . 3 ) u n d ( 7 . 4 ) l i e f e r n z u s a m m e n
cost(H) < cost(W)< 2. cost(Hopt) und so SB(I) Optzx_TSP (I)
=
cost(H) cost(Hopt)
<2.
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 ausrechnet. Aufgabe
7.6. *
Finden Sie fiir jede ganze Zahl n _> 4 eine Instanz Is des A-TSP mit der
Eigenschaft
SB(L)
> 2~-
2
Optzx_TSp(I~ ) -- n + 1
5Dies geschieht genau dann, wenn vx,..., vk schon vor u besucht worden sind, aber v noch nicht besucht wurde.
7.4 Lokale Suche
7.4
279
Lokale Suehe
Lok~le Suche ist eine Technik fiir den Algorithmenentwurf flit Optimierungsprobleme. Die Idee dieser Technik ist es, fiir die gegebene Eing~be x eine zulgssige LSsung a aus A//(x) auszurechnen und d~nn schrittweise durch kleine (lok~le) ~_nderungen von a zu einer besseren zul~ssigen LSsung zu gel~ngen. Was der Begriff ,,kleine Anderungen" bedeutet, wird durch den Begriff der Nachbarschaft definiert. D e f i n i t i o n 7.5. Sei/4 = (EI, Eo, L, AA, cost, goal) ein Optimierungsproblem. Fiir jedes x E L ist eine N a c h b a r s c h a f t in ,~d(x) eine Funktion fx :
(ii) (iii)
E fx(a) fiir jedes a e M(x), {Eine LSsung a ist immer in der Nachbarschaft yon a.} f~ll~ 9 ~ fx(~) f ~ ~, 9 ~ M ( ~ ) , d ~ i~t ~ ~ fx(/~), ~ d { Wenn/3 in der Nachbarschaft von a liegt, dann liegt auch a in der Nachbarschaft von /3.} fiir alle a,/3 E AA(x) existieren eine positive Zahl k und 7 1 , 7 2 , . . . , % E .hA(x), so dass
"~1 e L(OL), ~/i+1 e L('Ti) f~r
i =
1,..., k - i, und ~
E
fx(%).
{Flit alle zuliissigen LSsungen a und /3 ist es mSglich, von c~ zu /3 iiber die Nachbarschaftsrelation zu gelangen.} Falls a E fx(/3) sagen wit, dass c~ und /3 N a c h b a r n (bzgl. fx) in AA(x) sin& Die Menge f ~ ( ~ ) wird die N a c h b a r s c h a f t v o n c~ in ,~d(x) genannt. Eine zuliissige LSsung a E AA(x) heiflt ein lokales O p t i m u m lich d e r N a c h b a r s c h a f t f~, falls
ffir x bezfig-
~o~t(~) = go~l{~o~t(9) l Z e fx(~)}. Sei fiir jedes x E L die Funktion fx eine Nachbarschaft in A/t (x). Die Funktion
f- U({x} • M(x))-~ U ~(M(x)) xEL
xEL
definiert dutch f ( * , ~) =
fx(~)
7 Algorithmik fiir schwere Probleme
280
fiir alle z E L und alle c~ E A d ( z ) ist eine N a c h b a r s c h a f t
ffir U.
In der Anwendung bestimmt man die Nachbarschaft durch sogenannte lokale Transformationen. Der Begriff ,,lokal" ist dabei wichtig, weil er (lie Bedeutung hat, dass man nur eine kleine Anderung der Spezifikation yon ct durch eine lokale Transformation erlaubt. Eine lokale Transformation f/Jr MAX-SAT kann z.B. die Invertierung eines Bits in der Belegung sein. Dann enth/~it die Nachbarschaft einer L6sung c~ die L6sung ct selbst und alle L6sungen, die man durch die ausgewS~hlte lokale Transformation erhalten kann. Fiir eine Formel (I) von fiinf Variablen ist dann {01100, 11100, 00100, 01000, 01110, 01101} die Nachbarschaft von ct Bitinvertierung.
01100 beziiglich der lokalen Transformation der
Aufgabe 7.7. Beweisen Sie, dass die Nachbarschaft fiir MAX-SAT, die durch die lokale Transformation der Bitinvertierung bestimmt wird, die Definition 7.5 erfiillt. Fiir das T S P kann m a n folgende Nachbarschaft, 2-Exchange genannt, betrachten (Fig. 7.3). Wir entfernen zwei beliebige K a n t e n {a,b} und {c,d} mit I{a, b, c, d}l = 4 aus einem Hamiltonschen Kreis, der die K n o t e n a, b, c, d in dieser Reihenfolge besucht und fiigen s t a t t dessen die K a n t e n {a, d} und {b, c} hinzu. Wir beobachten, dass wir dadurch einen neuen Hamiltonschen Kreis erhalten und dass m a n die K a n t e n {a, b} und {c, d} durch keine anderen Kanten als {a, d} und {b, c} austauschen kann, um einen Hamiltonschen Kreis zu erhalten. a
b
a
b
c
d
c
d
Fig. 7.3 Aufgabe 7.8. Erfiillt 2-Exchange die Bedingungen der Definition 7.5? Begriinden Sie Ihre Behauptung. Aufgabe 7.9. Sei H ein Hamiltonscher Kreis in einem Graphen G. Entfernen Sie beliebige drei Kanten {a, b}, {c, d} und {e, f} mit I{a, b, c, d, e, f}l - 6 aus H. Zeichnen Sie alle unterschiedlichen Tripel von Kanten, deren Hinzuftigen zu H wieder zu einem Hamiltonschen Kreis in G fiihrt. Wie viele M6glichkeiten gibt es bei der Entfernung von k Kanten, die ein Matching bilden, fiir k > 3?
7.4 Lokale Suche
281
Die lokale Suche bez/iglich der NachbarschaR ist nichts anderes als eine iterative Bewegung von einer L6sung zu einer besseren, benachbarten L6sung bis man eine zulS~ssige L6sung/3 erreicht, in dessen Nachbarschaff keine bessere L6sung als ,3 existiert. Das Schema der lokalen Suche kann man also wie folgt formulieren. D a s S c h e m a d e r lokalen Suche beziiglich e i n e r N a c h b a r s c h a f t f LS(f)
Eingabe: Eine Instanz x eines Optimierungsproblems b/. Phase 1. Berechne eine zul~ssige L6sung c~ E A/t(x) Phase 2. while a ist kein lokales Optimum beziiglich fx do begin finde ein/3 E fx(C~), so dass cost(fl) < cost(c~) falls b/ein Minimierungsproblem ist und cost(~3) > cost(a) falls b/ein Maximierungsproblem ist; Ct : :
/~
end
Ausgabe: o~ Wir bemerken, dass LS(f) immer ein lokales Optimum beziiglich der NachbarschaR f liefert. Falls alle lokalen Optima auch globale Optima sind, garantiert die lokale Suche die L6sung des Optimierungsproblems. Dies ist der Fall bei dem Optimierungsproblem des minimalen Spannbaumes, wenn die Nachbarschaff durch den Austausch einer Kante bestimmt wird. Wenn sich die Kosten der lokalen Optima nicht zu sehr von den Kosten der optimalen L6sungen unterscheiden, kann die lokale Suche zum Entwurf eines Approximationsalgorithmus fiihren. Dies ist der Fall bei dem Problem des maximalen Schnittes MAX-CUT. Gegeben sei ein Graph G = (If, E). Jedes Paar (V1, V2) mit V10 V2 = V und V1 A V2 = 0 ist ein Schnitt von G. Der Preis des Schnittes (1/1, V2) ist die Anzahl der Kanten zwischen den Knoten aus V1 und V2, d.h.
o t((Vl,
G) : IE n
Vl,
Das Ziel ist die Maximierung. Wir betrachten lokale Transformationen, die einen Knoten aus einer Seite auf die andere Seite schieben. Der auf lokaler Suche basierte Algorithmus kann wie folgt beschrieben werden.
282 Algorithmus
7 Algorithmik fiir schwere Probleme LS-CUT
Eingabe: Ein Graph G = (V, E). Phase 1. S = 0. {WS~hrend der Berechnung betrachten wir den Schnitt (S, V - S). Am Anfang ist der Schnitt (0, V).} Phase 2. w h i l e ein Knoten v E V existiert, so dass cost(S U { v } , V - (S U { v } ) ) > cost(S, V - S), oder cost(S - {v}, (V - S) U {v}) > cost(S, V - S) gilt do begin nehme v und bringe es auf die andere Seite des Schnittes; end Attsgabe: (S, V - S). S a t z 7.6. LS-CUT ist ein 2 - A p p r o z i m a t i o n s a l g o r i t h m u s fiir M A X - C U T .
Beweis. Es ist offensichtlich, dass der Algorithmus LS-CUT eine zulS~ssige L6sung ffir M A X - C U T ausgibt. Es bleibt zu zeigen, dass GiiteLs-CuT(G) _< 2 fiir jeden Graph G = (V, E). Sei (]/'1, }/2) die Ausgabe yon LS-CUT. Weil (YI, Y2) ein lokales Maximum beziiglich des Austauschs eines Knotens ist, hat jeder Knoten v E Y1 (Y2) mindestens so viele Kanten zu Knoten in Y2 (Y1) wie die Anzahl der Kanten zwischen v und Knoten aus Y1 (Y2) ist. Damit ist mindestens die Ua~fte aller Kanten im Schnitt (Y1, Y2). Weil OptMIN_CuT(G ) nicht grat3er als IEI sein kann, ist GtiteLs-CuT(G) _< 2. D Aufgabe 7.10. Beweisen Sie, dass LS-CUT ein polynomieller Algorithmus ist. Aufgabe 7.11. Betrachten Sie das Problem des gewichteten maximales Schnittes, MAX-GEW-CUT, das eine Verallgemeinerung von MAX-CUT ist. Eine Eingabe yon MAX-GEW-CUT ist ein Graph G = (V, E) und eine Kostenfunktion c: E --~ IN, die jeder Kante e ihre Kosten c(e) zuordnet. Die Kosten eines Schnittes sind die Summe der Kosten der Kanten des Schnittes. Das Ziel ist, eine L6sung mit maximalen Kosten zu finden. Offensichtlich ist MAX-GEW-CUT ein Zahlproblem. Entwerfen Sie einen Algorithmus mit lokaler Suche, der einen pseudopolynomiellen 2-Approximationsalgorithmus darstellt. Die Algorithmen, die auf lokaler Suche basieren, nennt man lokale Algorithmen. Die lokalen Algorithmen sind mehr oder weniger durch die Wahl der Nachbarschaft bestimmt. Die einzigen noch freien Parameter in dem Schema der lokalen Suche sind die Strategie nach der Suche der besseren Nachbarn und die Entscheidung, ob m a n die erste gefundene bessere L6sung als neue L6sung nimmt oder ob m a n unbedingt die beste L6sung in der Nachbarschaft bestimmen m6chte.
7.4 Lokale Suche
283
Angenommen P ~ NP, dann gibt es offensichtlich keine polynomiellen lokalen Algorithmen fiir NP-schwere Optimierungsprobleme. Wir bemerken, dass die ZeitkomplexitS~t eines lokalen Algorithmus als
(die Zeit der Suche in der Nachbarschaft) (die Anzahl der iterativen Verbesserungen) abgeschS~tzt werden kann. Wir sind jetzt an folgender Frage interessiert.
Fiir welche NP-schweren Optimierungsprobleme existiert eine Nachbarschaft F polynomieller GrSfle, so dass LS(f) immer eine optimale LSsung liefert? Dies bedeutet, dass wir bereit sind, eine im schlechtesten Fall m6gliche exponentielle Anzahl yon Verbesserungsiterationen in Kauf zu nehmen, falls jede Iteration in polynomieller Zeit l~uft und die Konvergenz zu einer optimalen L6sung gesichert ist. Die Idee dabei ist, dass die Vergr6fierung der Nachbarschaften auf der einen SeRe die Wahrscheinlichkeit verkleinert, an ein schwaches lokales Optimum zu gelangen, auf der anderen SeRe aber die Zeitkomplexit~t einer Verbesserungsiteration erh6ht. Die Frage ist, ob eine Nachbarschaft von vernfinftiger Gr6fie existiert, so dass jedes lokale Optimum auch ein globales Optimum ist. Diese Fragestellung wird wie folgt formalisiert. D e f i n i t i o n 7.6. Sei N = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem und s e i f eine Nachbarschaft fiir bt. Eine Nachbarschaft f heiflt echt, falls fiir jedes x E L jedes lokale Optimum fiir x beziiglich fx eine optimale LSsung fiir x ist.
Eine Nachbarschaft f heiflt p o l y n o m i e l l u n t e r s u c h b a r , falls ein polynomieller Algorithmus existiert, der fiir jedes x E L und jedes c~ E Ad(x) eine der besten LSsungen aus fx(a) finder. Unsere Frage kann man jetzt wie folgt formulieren:
Fiir welche Optimierungsprobleme existieren echte polynomiell untersuchbare Nachbarschaften ? Das bekannteste positive Beispiel ist der Simplex-Algorithmus ffir das Problem der linearen Programmierung. Er basiert auf der Existenz einer echten polynomiell untersuchbaren Nachbarschaft, aber er kann auf einigen Probleminstanzen exponentielle Zeitkomplexitgt beanspruchen, weil eine exponentielle Anzahl von Verbesserungsiterationen m6glich ist.
284
7 Algorithmik fiir schwere Probleme
A u f g a b e 7.12. Sei k-Exchange die Nachbarschaft fiir TSP, in d e r k Kanten ausgetauscht werden k6nnen. Wie mS~chtig ist die Nachbarschaft k-Exchangea(H ) eines Hamiltonschen Kreises H, wenn G n Knoten hat? A u f g a b e 7.13.* Beweisen Sie, dass ftir jede k-Exchange keine echte Nachbarschaft fiir TSP ist.
Konstante
k
c
IN-
{0}
Unsere Zielsetzung ist jetzt, eine Methode vorzustellen, mit der man die Nichtexistenz einer echten polynomiell untersuchbaren Nachbarschaft fiir Optimierungsprobleme beweisen kann. Wie wir sehen werden, kann das Konzept der starken NP-Schwierigkeit auch hier erfolgreich angewendet werden. D e f i n i t i o n 7.7. Sei b / = (EI, Eo, L, All, cost, goal) ein Optimierungsproblem, das ein Zahlproblem ist (Zahloptimierungsproblem). Wit sagen, dass bt kostenbeschr~inkt ist, falls fiir jede Instanz x mit Int(x) = ( i l , i 2 , . . . , G ) , ij E IN fiir j = 1, 2 , . . . , n gilt
{
n}
1,2,...,~-~ij j=l
fiir jede zuliissige LSsung ct E Ad(x). Wir bemerken, dass fast jedes bekannte Zahloptimierungsproblem kostenbeschr~tnkt ist und so die Forderung der Kostenbeschr~tnkung keine grof3e EinschrS~nkung der Anwendbarkeit folgender Methode bedeutet. Satz 7.7. Sei bt E NPO ein kostenbeschriinktes Zahloptimierungsproblem. Falls P ~ NP gilt und bt stark NP-schwer ist, dann existiert keine echte polynomiell untersuchbare Nachbarschaft fiir bt.
Beweis. Wir fiihren einen indirekten Beweis. Angenommen, b/ besitzt eine echte polynomiell untersuchbare Nachbarschaft f. Dann kann man fiir jede Eingabe x in einer polynomiellen Zeit p(l l) einen Iterationsschritt yon LS(fx) durchfiihren. Weil b/ E NPO ist, kann man dann die StartlSsung auch in polynomieller Zeit finden. In jeder Verbesserungsiteration verbessert man die Kosten der aktuellen zulS~ssigen L6sung mindestens um 1, weil die Kosten der L6sungen eines kostenbeschr~tnkten Zahlproblems nur ganze Zahlen sind. Da die Kosten der LSsungen aus dem Intervall von Ibis EjEInt(x)J -< n.MaxInt(x) sind, gibt es hSchstens Izl. MaxInt(x) Verbesserungsiterationen. Damit ist die Gesamtlaufzeit des LS(f) in O(p(Ix]) . Ixl . MaxInt(x)).
7.5 Simulated Annealing
285
Weil f eine echte Nachbarschaft ist, garantiert LS(f) eine optimale L6sung fiir z. Damit ist LS(f) ein pseudopolynomieller Algorithmus ftir b/. Weil b / s t a r k NP-schwer ist, widerspricht dies der Annahme P r NP. D In Kapitel 6 haben wir bewiesen, dass TSP und MAX-CL stark NP-schwer sind. Wir bemerken, dass beide Probleme kostenbeschrS~nkte Zahloptimierungsprobleme sind. Damit besitzen diese Optimierungsprobleme keine echte polynomiell untersuchbare Nachbarschaft. Fiir das TSP kann man sogar beweisen, 1
dass es keine echte Nachbarschaft der exponentiellen Gr6fie 2~ besitzt.
7.5
Simulated Annealing
In diesem Abschnitt stellen wir Simulated Annealing (simulierte Abkiihlung) als eine Heuristik zur L6sung schwerer Probleme vor. Der Begriff Heuristik bezeichnet hier eine Entwurfstechnik fiir Algorithmen, die keine L6sung yon hoher Qualits~t (guter Approximation) in verniinftiger Zeit fiir jede Eingabe garantieren. Dies bedeutet, dass wir bei Heuristiken viel mehr von unseren Anforderungen abgeben als in allen bisher vorgestellten Methoden. Die Hoffnung ist dabei, dass die heuristischen Algorithmen fiir die typischen anwendungsrelevanten Probleminstanzen verniinftige Resultate in kurzer Zeit liefern. Trotz der Unsicherheit beziiglich der Laufzeit und der L6sungsqualitS~t sind die Heuristiken bei den Anwendern sehr beliebt, weil sie gewisse, nicht zu unterschgtzende Vorteile haben. Sie sind meistens einfach und schnell zu implementieren und zu testen, so dass die Herstellung eines heuristischen Algorithmus viel kostengiinstiger ist als der Entwurf eines spezialisierten, auf das Problem zugeschnittenen Algorithmus. Zweitens sind Heuristiken robust, was bedeutet dass sie fiir eine breite Klasse von Problemen erfolgreich arbeiten, obwohl diese Probleme ziemlich unterschiedliche kombinatorische Strukturen haben. Dies bedeutet, dass eine Anderung der Problemspezifikation in dem Prozess des A1gorithmenentwurfs kein Problem darstellt, weil h6chstens ein paar Parameter des heuristischen Algorithmus zu 5~ndern sind. Fiir den Entwurf eines problemzugeschnittenen Optimierungsalgorithmus bedeutet eine Anderung der Aufgabenspezifikation oft eine solche Anderung der kombinatorischen Struktur, dass man mit dem Entwurf von vorne beginnen muss. Wenn man die lokale Suche auf ein schweres Problem anwendet, bei dem man das Verhalten des lokalen Algorithmus nicht bestimmen kann, dann kann man lokale Suche auch als eine Heuristik betrachten. Sie hat auch die Eigenschaft der Robustheit, weil man sie praktisch auf jedes Optimierungsproblem anwen-
7 Algorithmik fiir schwere Probleme
286
den kann. Die gr6t3te SchwS~che der lokalen Suche ist, dass sie in einem lokalen Optimum endet, egal wie gut oder schlecht dieses lokale Optimum ist. Wir wollen jetzt die Methode der lokalen Suche verbessern, indem wir die Fallen der lokalen Optima aufheben. Dabei lassen wir uns durch die physikalische Optimierung yon MetallzustS~nden in der Thermodynamik inspirieren. Der optimale Zustand eines Metalls entspricht der optimalen Kristallstruktur, wobei alle Bindungen zwischen den elementaren Teilchen gleich stark sind. Wenn einige Bindungen durch Belastung wesentlich schwgcher und andere stgrker werden, besteht Bruchgefahr und das Metall ist in einem schlechten Zustand. Der optimale Zustand entspricht also dem Zustand mit minimaler Energie. Die Optimierungsprozedur besteht aus folgenden zwei Phasen. Phase 1. Dem Metall wird yon aufien durch ein ,,heifies Bad" Energie zugefiihrt. Dadurch schwS~chen sich fast alle Bindungen und ein chaosS~hnlicher Zustand entsteht. Phase 2. Das Metall wird langsam abgekiihlt, bis es einen optimalen Zustand mit minimaler Energie erreicht. Diesen Optimierungsprozess kann man mit folgendem Algorithmus auf einem Rechner simulieren. Wir bezeichnen mit E(s) die Energie des Metallzustandes s. Sei CB die Boltzmann-Konstante.
Metropolis-Algorithmus Eingabe: Ein Zustand s des Metalls mit der Energie E(s). Phase 1. Bestimme die Anfangstemperatur T des heif3en Bades. Phase 2. Generiere einen Zustand q aus s durch eine zuf~tllige kleine Anderung (z.B. eine Positions~tnderung eines Elementarteilchens) i f E ( q ) _< E ( 8 ) t h e n 8 : - - q
{akzeptiere q als neuen Zustand} e l s e akzeptiere q als neuen Zustand mit der Wahrscheinlichkeit _ E(q)-E(~)
Phase 3:
prob(s ~ q) = e r ; {d.h. bleibe im Zustand s mit der Wahrscheinlichkeit 1 - prob(s --+ q)} Verkleinere T passend. i f T ist nicht sehr nahe bei 0 t h e n goto Phase 9;
else output(s);
7.5 Simulated Annealing
287
Zuerst beobachten wir die starke Ahnlichkeit zwischen der lokalen Suche und dem Metropolis-Algorithmus. Der Metropolis-Algorithmus besteht aus Iterationsschritten, und in einem Iterationsschritt wird ein neuer Kandidat fiir einen aktuellen Zustand durch eine lokale Transformation bestimmt. Die wesentlichen Unterschiede sind folgende. (i) Der Metropolis-Algorithmus darf mit gewisser Wahrscheinlichkeit auch in einen schlechteren Zustand mit hoher Energie iibergehen und dadurch m6gliche lokale Minima iiberwinden. (ii) Nicht die lokale Optimalit~t, sondern der Wert von T entscheidet fiber die Terminierung des Metropolis-Algorithmus. Die Wahrscheinlichkeit prob(s ~ q) folgt den Gesetzen der Thermodynamik, die besagen, dass die Wahrscheinlichkeit einer Verschlechterung (eines Energiewachstums) um einen Wert AE --AE
prob(AE) - ecBr ist. Diese Wahrscheinlichkeit hat zwei wichtige EigenschaRen. (a) Die Wahrscheinlichkeit prob(s ~ q) verkleinert sich mit wachsendem E ( q ) - E(s), d.h. starke Verschlechterungen sind weniger wahrscheinlich als schwgchere, und (b) die Wahrscheinlichkeit prob(s ~ q) wachst mit T, d.h. starke Verschlechterungen (Uberwindung yon tiefen lokalen Minima) sind am Anfang bei grof3em T wahrscheinlicher als bei kleinem T. Ein wichtiger Punkt ist, dass die MSglichkeit, die lokalen Minima durch Verschlechterung zu iiberwinden, notwendig fiir das Erreichen des Optimums ist. Um den Metropolis-Algorithmus zur LSsung von kombinatorischen Optimierungsproblemen einzusetzen, reicht es aus, die folgende Beziehung zwischen den Begriffen der Thermodynamik und den Bergriffen der kombinatorischen Optimierung festzustellen. Menge der SystemzustS~nde Energie eines Zustandes ein optimaler Zustand Temperatur
~ = = =
Menge der zulS~ssigen L6sungen Preis einer zulgssigen LSsung eine optimale LSsung ein Programmparameter
Sei b/ - (Ez, Eo, L, Ad, cost, Minimum) ein Optimierungsproblem mit einer Nachbarschaft f. Dann kann man die Simulation des Metropolis-Algorithmus wie folgt beschreiben.
7 Algorithmik fiir schwere Probleme
288 S i m u l a t e d A n n e a l i n g beziiglich f
SA(I) Eingabe: Eine Probleminstanz x E L. Phase 1. Berechne eine zulS~ssige L6sung a E 34(x). W~hle eine Anfangstemperatur T. W~hle eine Reduktionsfunktion 9, abh~ngig yon T und der Anzahl Iterationen I. Phase 2.
der
I:=0; while T > 0 (oder T ist nicht zu nah an 0) do begin w~thle zuf~tllig ein fl aus f~(a) ; i f cost(/3) <_ cost(a) then a := ,3; else begin
generiere zufS]lig eine Zahl r aus dem Intervall [0, 1]; cost(~)-cost(c~)
if r < e -
T
then a "-- ,~;
end
I--I+1;
T "- g(T, I); end end
Ausgabe: oz. Bei einer ,,vernfinftigen" Nachbarschaft und passender Wahl von T und g kann man beweisen, dass SA(f) das Optimum erreicht. Das Problem ist aber, dass man die Anzahl der dazu hinreichenden Iterationen nicht einschrS~nken kann. Selbst Versuche, eine Approximationsgfite nach einer gewissen Anzahl yon Operationen zu garantieren, ffihrten dazu, dass man eine viel gr6t3ere Anzahl an Iterationen als IM( )I fiir eine solche Garantie brS~uchte. Trotzdem gibt es viele Anwendungen, bei denen Simulated Annealing akzeptable L6sungen 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
7.6
289
Zusammenfassung
Der Algorithmenentwurf ist fiir die L6sung schwerer Probleme entscheidend, weil die qualitativen Spriinge in der Anforderung (von exponentieller zu polynomieller Komplexit~t) auf die Rechnerressourcen nicht durch die Verbesserung der Rechnertechnologie zu erreichen sind. Um ei~ziente Algorithmen fiir schwere Probleme zu erhalten, muss man etwas auf der Ebene der Anforderungen bezahlen. Entweder reduzieren wir die Menge der zul~ssigen Eingaben (d.h. wir 16sen das Problem nicht in seiner allgemeinen formalen Darstellung), oder wir verzichten auf die Sicherheit, immer die richtige oder optimale L6sung zu bekommen. Die Kunst der Algorithmik liegt darin, grofie Gewinne auf der SeRe der Ei~izienz durch kleine Nachl~sse in der Problemformulierung zu bewirken. Pseudopolynomielle Algorithmen laufen in polynomieller Zeit auf Probleminstanzen von Zahlproblemen, bei denen die Zahlen eine polynomielle Gr6~e in der Eingabel~nge haben. Einen pseudopolynomiellen Algorithmus kann man fiir das Rucksackproblem entwerfen. Das Konzept der NP-Vollst~ndigkeit ist auch hier hilfreich, um die Nichtexistenz von pseudopolynomiellen Algorithmen unter der Annahme P r NP fiir gewisse Probleme zu beweisen. Approximationsalgorithmen sind Algorithmen fiir Optimierungsprobleme, die eine zul~ssige L6sung liefern, deren Kosten sich nicht zu viel von den Kosten der optimalen L6sung unterscheiden. Fiir das metrische TSP, MAX-VC und MAX-CUT kann man polynomielle Approximationsalgorithmen entwerfen. Fiir das allgemeine TSP gibt es keinen polynomiellen Approximationsalgorithmus mit einer konstanten Approximationsgiite, falls P r NP. Die lokalen Algorithmen fiir ein Optimierungsproblem starten mit einer zul~ssigen L6sung und versuchen durch kleine Anderungen (lokale Transformationen) der L6sungsspezifikation iterativ zu einer besseren L6sung zu gelangen. Lokale Algorithmen enden immer in einem lokalen Optimum beziiglich der erlaubten lokalen Transformationen. Die Kosten der lokalen Optima k6nnen sich wesentlich von den optimalen Kosten unterscheiden. Simulated Annealing ist eine Heuristik, die auf der lokalen Suche aufbaut und das Verlassen der lokalen Optima erm6glicht. Simulated Annealing ist robust und einfach zu implementieren und wird deswegen oft in der Praxis angewendet. Die Konzepte der pseudopolynomiellen Algorithmen fiir Zahlprobleme und der starken NP-Schwierigkeit sind Garey und Johnson [GJ 79] zu verdanken. Der pseudopolynomielle Algorithmus fiir das Rucksackproblem wurde yon Ibarra und Kim [IK 74] entworfen. Der erste Approximationsalgorithmus wurde
290
7 Algorithmik fiir schwere Probleme
yon Graham [Gra 66] entworfen. Die ersten lokalen Algorithmen wurden yon Bock [Boc 58] und Croes [Cro 58] entworfen. Das Konzept der echten polynomiell untersuchbaren NachbarschaR wurde yon Papadimitriou und Steiglitz [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 kombinatorischen Optimierung anzuwenden, kam yon Cern3~ [(~er 85] und Kirkpatrick, 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 Papadimitriou 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 Protasi [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 RucksackProblem 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 polynomieller 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 Probleme 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 Konzept 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 lokaler 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 Wahrscheinlichkeitskriteriums?
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 Begriffe der Wissenschaft. Die grundlegende Frage ist, ob der Zufall objektiv existiert oder ob wir diesen Begriff nur benutzen, um Ereignisse mit unbekannter Gesetzm~fiigkeit zu erklgren und zu modellieren. Dariiber streiten die Wissenschaftler seit der Antike. Demokrit meinte, dass
das Zufiillige das Nichterkannte ist, und dass die Natur in ihrer Grundlage determiniert ist. Damit meinte Demokrit, dass in der Welt Ordnung herrscht und dass diese Ordnung durch eindeutige Gesetze bestimmt ist. Epikur widersprach Demokrit mit folgender Meinung:
,,Der Zufall ist objektiv, er ist die eigentliche Natur der Erscheinung. Die Religion und die Physik vor dem 20. Jahrhundert bauten auf der kausaldeterministischen Auffassung auf. Interessant ist zu bemerken, dass auch Albert 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 WissenschaR (insbesondere der Physik und der Biologie) im 20. Jahrhundert fiihrte eher zu der Epikur'schen Weltanschauung. Die experimentelle Physik best~itigte die Theorie der Quantenmechanik, die auf Zufallereignissen aufgebaut ist.
8.1 Zielsetzung
293
In der Evolutionsbiologie zweifelt man heute nicht an der These, dass ohne zuf~llige Mutationen der DNA die Evolution nicht stattgefunden h~tte. Am besten formulierte der ungarische Mathematiker Alfred R6nyi eine moderne, iiberwiegend akzeptierte Ansicht der Rolle des Zufalls:
,,Es gibt keinen Widerspruch zwischen Kausalitiit und dem Zufall. In der Welt herrscht der Zufall, und eben deshalb gibt es in der Welt Ordnung und Gesetz, die sich in den Massen yon zufiilligen Ereignissen, den Gesetzen der Wahrscheinlichkeit entsprechend, entfalten. Fiir uns Informatiker ist wichtig zu begreifen, dass es sich oft lohnt, statt vollst~ndig deterministischer Systeme und Algorithmen zufallsgesteuerte (randomisierte) 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 zufallsgesteuerte 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 sinnlos wgre. Dies ist auch der Grund dafiir, dass man heutzutage die Klasse der praktisch 16sbaren Probleme nicht mehr mit der deterministisch polynomiellen 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 Wahrscheinlichkeitstheorie, der Komplexitgtstheorie und der Zahlentheorie notwendig wS~ren. Wir ziehen es vor, anhand dreier Beispiele das Konzept der Zufallssteuerung zu veranschaulichen und dadurch auch ansatzweise ein etwas tieferes Verstgndnis fiir die iiberlegene Stgrke der Zufallssteuerung der deterministischen Steuerung gegeniiber zu gewinnen. Dieses Kapitel ist wie folgt aufgebaut. In Abschnitt 8.2 prS~sentieren wir einige 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 deterministische 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. Dabei 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 Polynomen zu entscheiden. Wie iiblich beenden wir das Kapitel mit einer kurzen Zusammenfassung.
8.2
Elementare Wahrscheinlichkeitstheorie
Wenn ein Ereignis (eine Erscheinung) eine unumgS~ngliche Folge eines anderen Ereignisses ist, dann sprechen wir yon KausalitS~t oder Determinismus. Wie wir schon in der Einleitung bemerkt haben, gibt es auch andere als v611ig bestimmte, eindeutige Ereignisse. Die Wahrscheinlichkeitstheorie wurde entwickelt, 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 gegenseitig 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 Definition erh6ht. Wir m6chten jetzt eine sinnvolle Theorie entwickeln, die jeder Erscheinung E C_ S eine Wahrscheinlichkeit zuordnet. Dass diese Aufgabe gar nicht so einfach ist, dokumentiert die Tatsache, dass man seit der Begriindung
8.2 Elementare Wahrscheinlichkeitstheorie
295
der Wahrscheinlichkeitstheorie in den Werken von Pascal, Fermat und Huygens in der Mitte des 17. Jahrhunderts fast 300 Jahre gebraucht hat, bis eine allgemein akzeptierte axiomatische Definition der Wahrscheinlichkeit yon Kolmogorov vorgeschlagen wurde. Unsere Einschr/~nkung der Endlichkeit yon S hilft uns, die technischen Schwierigkeiten solcher allgemeinen Definitionen zu vermeiden. Die Idee ist, die Wahrscheinlichkeit eines Ereignisses als
das Verhiiltnis der Summe der Wahrscheinlichkeiten der giinstigen (darin enthaltenen) elementaren Ereignisse zu der (8.1) Summe der Wahrscheinlichkeiten aller mSglichen elementaren Ereignisse zu sehen. Durch diese Festlegung normiert man die Wahrscheinlichkeitswerte in dem Sinne, dass die Wahrscheinlichkeit 1 der Sicherheit und die Wahrscheinlichkeit 0 einem unm6glichen Ereignis entspricht. Ein anderer zentraler Punkt ist, dass die Wahrscheinlichkeiten der elementaren Ereignisse die Wahrscheinlichkeiten aller Ereignisse eindeutig bestimmen. Bei symmetrischen Experimenten wie dem Wiirfeln will man allen elementaren Ereignissen die gleiche Wahrscheinlichkeit zuordnen. Sei Wahr(E) die Wahrscheinlichkeit des Ereighisses E. Weil in unserem Modell als Resultat des Experimentes ein elementares Ereignis auftreten muss, setzt man Wahr(S) = 1 fiir die Menge S aller elementaren Ereignisse. Dann haben wir beim Wiirfeln Wahr({2, 4, 6})
= =
Wahr({2}) + Wahr({4}) + Wahr({6}) Wahr(S) Wahr({2}) + W a h r ( { 4 } ) + Wahr({6}) 1 1 1 1
6+
+6
2'
d.h., die Wahrscheinlichkeit, eine gerade Zahl zu werfen, ist genau 1/2. Nach dem Wahrscheinlichkeitskonzept (8.1) erhalten wir fiir alle disjunkten Ereignisse X und Y Wahr(X U Y)
Wahr(X) + Wahr(Y) Wahr(S) Wahr(X) + Wahr(Y).
Diese Uberlegungen fiihren zu der folgenden axiomatischen Definition der Wahrscheinlichkeit.
296
8 Randomisierung
D e f i n i t i o n 8.1. gel S die Menge aller elementaren Ereignisse eines Wahrscheinlichkeitsexperimentes. Eine W a h r s c h e i n l i c h k e i t s v e r t e i l u n g a u f S ist jede Funktion Wahr" 79(S) --+ [0, 1], die folgende Bedingungen erfiillt: Wahr({x}) _> 0 fiir jedes elementare Ereignis x, W a h r ( S ) - 1, und W hr(X o Y) - W hr(X) + W hr(Y) XNY-O.
X, Y c_ S
W a h r ( X ) nennt man die W a h r s c h e i n l i c h k e i t des E r e i g n i s s e s X . Das Paar (S, W a h r ) wird als ein W a h r s c h e i n l i c h k e i t s r a u m bezeichnet. Falls Wahr({x}) = Wahr({y}) fiir alle x, y E S, nennt man Wahr die u n i f o r m e W a h r s c h e i n l i c h k e i t s v e r t e i l u n g (oder G l e i c h v e r t e i l u n g ) auf S. A u f g a b e 8.1. Beweisen Sie, dass folgende Eigenschaften ftir jeden Wahrscheinlichkeitsraum (S, Wahr) immer gelten: (i) (ii) (iii) (iv)
Wahr(0) - 0, W a h r ( S - X ) - 1 - Wahr(X) fiir jedes X C_ S, ftir alle X, Y c_ S mit X c_ Y gilt Wahr(X) _< Wahr(Y), Wahr(X 0 Y) - Wahr(X) + Wahr(Y) - Wahr(X N Y) _< Wahr(X) + Wahr(Y) fiir alle X, Y c_ S, (v) W a h r ( X ) - }--]xeX Wahr(z) ftir alle X G S.
Wir bemerken, dass alle Eigenschaften aus Aufgabe 8.1 unserer Zielsetzung und damit der informellen Definition (8.1) entsprechen. Somit entspricht die Addition der Wahrscheinlichkeiten unserer intuitiven Vorstellung, dass die Wahrscheinlichkeit, dass irgendeines von mehreren unvereinbaren Ereignissen eintritt, gleich der Summe der Wahrscheinlichkeiten der betrachteten Ereignisse ist. Was entspricht der Multiplikation zweier Wahrscheinlichkeiten? Betrachten wir zwei Wahrscheinlichkeitsexperimente, die in dem Sinne unabhS~ngig sind, dass kein Resultat eines Experimentes einen Einfluss auf das Resultat des anderen Experimentes hat. Ein Beispiel dafiir ist, zweimal zu wtirfeln. Egal, ob wir auf einmal mit zwei Wiirfeln spielen oder ob wir zweimal denselben Wiirfel rollen lassen, die Resultate beeinflussen sich nicht gegenseitig. Z.B. hat eine 3 beim ersten Wurf keinen Einfluss auf das Ergebnis des zweiten Wurfs. Wir wissen, dass Wahr(i) - g1 fiir beide Experimente und fiir alle i E {1 , 2 , . . . , 6}. Betrachten wir jetzt die Zusammensetzung beider Zufallsexperimente (W(irfeln) als ein Zufallsexperiment. Die Menge der elementaren Ereignisse ist hier
8.2 Elementare Wahrscheinlichkeitstheorie
297
wobei fiir ein elementares Ereignis { (i, j)} der Index i das Ergebnis des ersten Wurfs und j das des zweiten ist. Wie soll jetzt korrekterweise die Wahrscheinlichkeitsverteilung Wahr2 auf $2 aus ({1, 2 , . . . , 6}, Wahr) bestimmt werden? Wir bauen auf der Intuition auf, dass die Wahrscheinlichkeit des Eintretens yon zwei vollstS~ndig unabhS~ngigen Ereignissen gleich dem Produkt der Wahrscheinlichkeiten dieser Ereignisse ist und damit 1
1
1
Wahr2({(i, j)}) - Wahr({i}). Wahr({j}) - ~ . ~ = 36 fiir alle i, j C {1, 2 , . . . , 6}. 0berpriifen wir die Korrektheit dieser Uberlegung. Die Menge $2 beinhaltet genau 36 elementare Ereignisse, die alle gleich wahrscheinlich sind. Damit ist tatsachlich W a h r 2 ( { ( i , j ) } ) - 1 fiir alle (i,j) E $2. Aufgabe 8.2. Sei k c IN- {0}. Sei (S, Prob) ein Wahrscheinlichkeitsraum, wobei Prob eine uniforme Wahrscheinlichkeitsverteilung (Gleichverteilung) fiber S = {0, 1, 2,..., 2k - 1} ist. Erzeugen Sie (S, Prob) durch k-fachen Miinzwurf. Es bleibt zu klgren, wie man die Wahrscheinlichkeitstheorie anwendet, um zufallsgesteuerte (randomisierte) Algorithmen zu entwerfen und zu analysieren. Dazu benutzt man zwei verschiedene MSglichkeiten. Die erste MSglichkeit ist, mit dem Modell der NTM mit endlichen Berechnungen zu starten und jeden nichtdeterministischen Schritt als ein Zufallsexperiment zu betrachten. Dies bedeutet, dass man bei einer Wahl aus k MSglichkeiten jeder MSglichkeit die Wahrscheinlichkeit ;1 zuordnet Dann bestimmt man die Wahrscheinlichkeit einer Berechnung als das Produkt der Wahrscheinlichkeiten aller zufglligen Entscheidungen dieser Berechnung. Sei SA,x die Menge aller Berechnungen einer NTM (eines nichtdeterministischen Programms) A auf einer Eingabe x. Wenn man jeder Berechnung 6' aus SA,x die oben beschriebene Wahrscheinlichkeit Wahr(C) zuordnet, dann ist (Sa,x, Wahr) ein Wahrscheinlichkeitraum. Aufgabe 8.3. Beweisen Sie, dass (SA,x,Wahr) ein Wahrscheinlichkeitsraum ist. Die Summe der Wahrscheinlichkeiten der Berechnungen aus SA,x mit einer falschen Ausgabe A(x) fiir die Eingabe x ist dann die F e h l e r w a h r s c h e i n lichkeit des Algorithmus A auf der Eingabe x, F e h l e r A ( x ) . Die F e h l e r w a h r s c h e i n l i c h k e i t des A l g o r i t h m u s A definiert man als eine Funktion Fehlera :IN ~ IN wie folgt. F e h l e r A ( n ) = max{FehlerA(x) l lxl = ~}.
298
8 Randomisierung
Auger den Fehlerwahrscheinlichkeiten kann man z.B. auch untersuchen, wie grog die Wahrscheinlichkeit ist, dass eine Berechnung aus h6chstens t(n) Schritten besteht (d.h., wie grog die Summe der Wahrscheinlichkeiten der Berechnungen ist, die kiirzer als t(n) sind). Die andere M6glichkeit, die randomisierten Algorithmen zu definieren, ist einfach, einen randomisierten Algorithmus als eine Wahrscheinlichkeitsverteilung fiber einer Menge deterministischer Algorithmen zu betrachten. Dies entspricht der Vorstellung, dass man einem deterministischen Algorithmus (einer TM) A eine Folge von Zufallsbits (ein zusgtzliches Band mit einer Zufallsfolge) als zusgtzliche Eingabe gibt. Jede Folge von Zufallsbits bestimmt eindeutig eine deterministische Berechnung von A auf der gegebenen Eingabe x. Die Zufallsfolgen als elementare Ereignisse zu betrachten, entspricht also der Betrachtung der Berechnungen aus SA,, als elementare Ereignisse. Gew6hnlicherweise haben alle Zufallsfolgen die gleiche Wahrscheinlichkeit, und somit handelt es sich um die uniforme Wahrscheinlichkeitsverteilung fiber der Menge aller Berechnungen aus SA,,. Die Beispiele randomisierter Algorithmen in den ngchsten zwei Abschnitten bauen auf diesem Modell der randomisierten Algorithmen auf. Die Folgen von zufglligen Bits interpretiert man in diesen Beispielen als eine zufgllige Zahl, die dann die Berechnung und somit das Resultat der Berechnung beeinflusst.
8.3
Ein randomisiertes Kommunikationsprotokoll
Die Zielsetzung dieses Abschnittes ist zu zeigen, dass randomisierte Algorithmen wesentlich effizienter als bestm6gliche deterministische Algorithmen sein k6nnen. Betrachten wit die folgende Aufgabenstellung. Wit haben zwei Rechn e t -/~I und !~II. Urspr/inglich erhalten diese eine Datenbank mit gleichem Inhalt. Mit der Zeit hat sich der Inhalt dynamisch ge~ndert, abet wit haben versucht, die gleichen Anderungen auf beiden Rechnern zu machen, um idealerweise die gleiche Datenbank auf beiden Rechnern zu erhalten. Nach einer gewissen Zeit wollen wit nun iiberpriifen, ob RI und !~II wirklich noch die gleichen Daten haben. Im Allgemeinen bezeichnen wit dutch n die Gr/St3e der Datenbank in Bits. Konkret betrachten wir ein grofies n = 1016, was bei Gendatenbanken eine realistische Gr6fie sein diirfte. Unser Ziel ist es, einen Kommunikationsalgorithmus (ein Protokoll) zu entwerfen, der feststellt, ob die Inh a r e der Datenbanken v o n -/~I und !~II unterschiedlich oder gleich sind. Die KomplexitS~t des Kommunikationsalgorithmus messen wir in der Anzahl der ausgetauschten Bits zwischen RI und/~II. Man kann beweisen, dass jedes deter-
8.3 Ein randomisiertes Kommunikationsprotokoll
299
ministische Protokoll fiir diese Aufgabe einen Austausch von n Bits zwischen RI und RII nicht vermeiden kann. Also existiert kein Protokoll, das h6chstens n - 1 Kommunikationsbits benutzen darf und diese Aufgabe zuverlS~ssig 16st. Wenn m a n bei der D a t e n m e n g e mit n = 1016 noch sicherstellen sollte, dass alle Kommunikationsbits korrekt ankommen, wiirde m a n auf den Versuch, die Aufgabe auf diese Weise zu 16sen, wahrscheinlich verzichten. Die L6sung in dieser Situation bietet folgendes zufallsgesteuertes Protokoll. Es basiert auf dem Primzahlsatz (Satz 2.3).
/ i ~ - (/~I, / ~ I I ) ( E i n z u f a l l s g e s t e u e r t e s K o m m u n i k a t i o n s p r o t o k o l l )
Ausgangssituation: //~I hat n Bits z = X l . . . 2;n, t~ii hat n Bits y = y l . . . YnPhase 1: RI wS~hlt zufS~llig mit einer uniformen Wahrscheinlichkeitsverteilung p a l s eine yon den Prim (n 2) ~ n 2/ln / n 2 Primzahlen kleiner gleich n 2 Phase 2: RI berechnet die Zahl s = Nummer(z) rood p und schickt die bin~re Darstellung von s und p zu/~II. Phase 3: Nach
dem
Empfang
von
s
und
p
berechnet
/~II die
Zahl
q= Nummer(y) rood p. Falls q ~ s, dann gibt -/~II die Ausgabe ,,ungleich". Falls q = s, dann gibt -/~II die Ausgabe ,,gleich". Jetzt analysieren wir die Arbeit von R - (/~I,/~II)- Zuerst b e s t i m m e n wir die KomplexitS~t, gemessen als die Anzahl der Kommunikationsbits, und dann arialysieren wir die ZuverlS~ssigkeit (Fehlerwahrscheinlichkeit) yon R - (RI, RII). Die einzige K o m m u n i k a t i o n besteht darin, dass RI die Zahlen s und p an RII schickt. Weil s _< p < n 2 gilt, ist die LS~nge der bin~ren Nachricht 2. [log 2 n 2] _< 4 . [log 2 hi. F/Jr n - 1016 sind dies h6chstens 4 . 1 6 . [log 2 10] - 256 Bits. Es ist also eine sehr kurze Nachricht, die m a n problemlos zuverlS~ssig/ibertragen
kaIlI1. Bei der Analyse der Fehlerwahrscheinlichkeit unterscheiden wir zwei M6glichkeiten beztiglich der tats~chlichen Relation zwischen z und y. (i) Sei z -
y. Dann gilt
Nummer(z) rood p - Nummer(y) rood p fiir alle Primzahlen p. Also gibt -~II die Antwort ,,gleich" mit Sicherheit. In diesem Fall ist also die Fehlerwahrscheinlichkeit O.
300
8 Randomisierung
(ii) Sei x ~ y. Wir b e k o m m e n eine falsche Antwort ,,gleich" nur dann, wenn
/:~I eine zufgllige Primzahl p gewghlt hat, die die Eigenschaft hat, dass z-
Nummer(x)
rood p -
Nummer(y)
rood p
gilt. In anderer Form geschrieben: Nummer(x)
- x' . p + z und N u m m e r ( y )
- y' . p + z
fiir irgendwelche natiirliche Zahlen x' und y'. Daraus folgt, dass
also dass p die Z a h l I N u m m e r ( x ) - N u m m e r ( y ) l teilt. Also gibt unser Protokoll R = (RI, RII) eine falsche Antwort nur, wenn die gewS~hlte Primzahl p die Z a h l l N u m m e r ( x ) -Nummer(y)l teilt. Wir wissen, dass p aus P r i m (n 2) Primzahlen aus {2, 3 , . . . , n 2} mit uniformer Wahrscheinlichkeitsverteilung gewghlt wurde. Es ist also hilfreich festzustellen, wie viele yon diesen P r i m (n 2) ~ n 2 / l n n 2 Primzahlen die Z a h l l N u m m e r ( x ) N u m m e r ( y ) l teilen k6nnen. Weil die bin/~re L/~nge von x und y gleich n ist, gilt -
I
-
<
2
Sei w - pl~il~i2p2 ... pk~ik wobei pl < p2 < "'" < p~ Primzahlen und il, i2, ... , ik positive ganze Zahlen sind. Wir wissen, dass jede Zahl eine solche eindeutige Faktorisierung besitzt. Unser Ziel ist zu beweisen, dass k _< n - 1 . Wir beweisen es indirekt. A n g e n o m m e n , k > n. D a n n ist w - p i p~.i1~.i2 2 . . .Pkik > p l p 2 . . .p~ > 1 .
2 " 3 .....
n-
It!
>
2n .
Das widerspricht aber der b e k a n n t e n Tatsache, dass w < 2 ~. Also kann w h6chstens n - 1 unterschiedliche P r i m f a k t o r e n haben. Weil jede Primzahl aus {2, 3 , . . . , n 2} die gleiche Wahrscheinlichkeit hat, gewS~hlt zu werden, ist die Wahrscheinlichkeit, ein p zu wghlen, das w teilt, h6chstens n
1
n
1
P r i m (n2 ) <- n2 // ln n 2<-
in n 2 n
fiir geniigend grot3e n. Also ist die Fehlerwahrscheinlichkeit yon _/~ fiir unterschiedliche Inhalte x und y hSchstens an~ , was fiir n - 1012 h6chstens 0 , 2 7 7 . 1 0 - 1 ~ ist.
8.3 Ein randomisiertes Kommunikationsprotokoll
301
So eine kleine Fehlerwahrscheinlichkeit ist kein ernsthaftes Risiko, aber nehmen wir an, dass jemand sich noch eine kleinere Fehlerwahrscheinlichkeit wtinscht. Dann kann man das Protokoll (]~I, ]~II) 10-real mit 10 unabhS~ngigen Wahlen einer Primzahl wie folgt laufen lassen.
Protokoll R10 Anfangssituation: /~I hat n Bits x = X l . . . x~ und/~II hat n Bits y = Yl... Y~. Phase 1: RI w~hlt zufgllig mit uniformer Wahrscheinlichkeitsverteilung zehn Primzahlen pl, p2, 9 9 pl0 aus {2, 3 , . . . , n2}. Phase 2: /~I berechnet si = N u m m e r (x) rood pi ftir i = 1 , 2 , . . . , 10 und schickt die bingren Darstellungen von Pl, P 2 , . . . , Pl0, Sl, s 2 , . . . , Sl0 zu/~II. Phase 3: Nach dem Empfang von P l , P 2 , . . . , P l 0 , Sl, s 2 , . . . , Sl0 berechnet RII qi = N u m m e r ( y ) rood pi fiir i = 1, 2 , . . . , 10. Falls ein i E {1, 2 , . . . , 10} existiert, so dass qi ~ si, dann gibt /~II die Ausgabe ,,ungleich". Falls qj = sj fiir alle j E { 1 , 2 , . . . , 10}, dann gibt /~II die Ausgabe ,,gleich".
Wir bemerken, dass die Kommunikationskomplexit~tt von Rio zehnmal gr6fier ist als die Komplexit~tt von R. In unserem Fall n = 1012 sind dies aber h6chstens 1600 Bits, was kein technisches Problem darstellt. Wie 5~ndert sich aber die Fehlerwahrscheinlichkeit? Falls x = y, wird Rio wieder keinen Fehler machen und gibt die richtige Antwort ,,gleich" mit Sicherheit. Falls x y! y wird Rio eine falsche Antwort nur liefern, wenn alle 10 zuf~tllig gew~hlten Primzahlen zu den h6chstens n - 1 Primzahlen, die [ N u m m e r ( x ) N u m m e r ( y ) ] teilen, geh6ren. Weil die 10 Primzahlen in 10 unabhgngigen Experimenten gew~hlt worden sind, ist die Fehlerwahrscheinlichkeit h6chstens (n-lprim(n 2))1~
( l n ln~2 )
21~176 1~
Fiir n -- 1012 ist dies h6chstens 0 , 2 5 9 . 1 0 -105. Wenn wir bedenken, dass die Anzahl der Mikrosekunden seit dem Urknall bis zum heutigen Tag eine 24stellige Zahl ist und die Anzahl yon Protonen im bekannten Universum eine 79-stellige Zahl ist, kann man eine Fehlerwahrscheinlichkeit unter 10 -105 leichten Herzens in Kauf nehmen. Auch wenn ein deterministisches Protokoll mit Kommunikationskomplexit~tt 1012 Bits praktisch realisierbar wSre, ist es klar,
302
8 Randomisierung
dass m a n aus K o s t e n g r i i n d e n das zufallsgesteuerte Protokoll implementieren wiirde. Die K o n s t r u k t i o n yon -R10 aus _R gibt uns eine wichtige Einsicht. W i r kSnnen die Fehlerwahrscheinlichkeit von zufallsgesteuerten A l g o r i t h m e n durch mehrlaches Durchlaufen des A l g o r i t h m u s nach u n t e n driicken. Bei einigen Algor i t h m e n , wie bei unserem Protokoll, reichen wenige W i e d e r h o l u n g e n fiir einen e x t r e m e n Riickgang der Fehlerwahrscheinlichkeit. Aufgabe 8.4. Betrachten Sie das Protokoll Rk, k E I N - {0}, das auf der zuf~lligen Wahl yon k Primzahlen aus {2, 3,..., n 2} basiert. Wie entwickelt sich die Fehlerwahrscheinlichkeit yon Rk mit wachsendem k? Aufgabe 8.5. Ein anderer Ansatz, um die Fehlerwahrscheinlichkeit nach unten zu driicken, ist, das Protokoll R in ein Protokoll Q~, r E I N - {0, 1, 2} umzu~ndern. Q~ arbeitet genau wie R, nur am Anfang w~hlt Q~ zuf~llig eine Primzahl aus der Menge {2, 3,..., n ~} statt aus {2, 3,..., n2}. Bestimmen Sie die Komplexit~tt und die Fehlerwahrscheinlichkeit von Q~ fiir jedes r _> 2. Aufgabe 8.6. Sei (~ > 1 eine positive ganze Zahl. Entwerfen Sie ein randomisiertes Protokoll, das den Vergleich von zwei Datenbanken der GrSf3e n mit einer Fehlerwahrscheinlichkeit von hSchstens 1/5 realisiert. Welcher der beiden Ans~tze aus den Aufgaben 8.4 und 8.5 ist effzienter beziiglich der Kommunikationskomplexit~t? Lohnt es sich mehr, mehrere kleine Primzahlen oder eher eine (potentiell) grSfiere Primzahl zufSJlig zu w~hlen?
8.4
Die Methode der h iufigen Zeugen und der randomisierte Primzahltest
In diesem A b s c h n i t t wollen wir zuerst nach den Griinden suchen, w a r u m unser zufallsgesteuertes Protokoll _R unvergleichbar effizienter ist, als jedes deterministische Protokoll fiir die gestellte Aufgabe sein kann. Das Protokoll _R h a b e n wir durch eine einfache A n w e n d u n g der s o g e n a n n t e n M e t h o d e von hgufigen Zeugen gewonnen. W i r stellen diese M e t h o d e jetzt vor. Im Allgemeinen b e t r a c h t e t m a n ein E n t s c h e i d u n g s p r o b l e m , bei d e m m a n entscheiden soll, ob eine gegebene E i n g a b e eine gewisse Eigenschaft hat oder nicht. Setzen wir noch voraus, dass wir keinen effizienten deterministischen A l g o r i t h m u s fiir die Aufgabe gefunden h a b e n (oder sogar, dass kein etfizienter A l g o r i t h m u s fiir die Aufgabe existiert). Bei einer A n w e n d u n g der M e t h o d e der hgufigen Zeugen fgngt m a n jetzt mit der Suche nach einer passenden Definition yon Zeugen an. Ein Zeuge (vgl. Definition 6.9) sollte eine Z u s a t z i n f o r m a t i o n
8.4 Die Methode der h/~ufigen Zeugen und der randomisierte Primzahltest
303
zur Eingabe sein, mit deren Hilfe man effizient deterministisch beweisen kann, dass die Eingabe die gewiinschte Eigenschaft hat (oder dass die Eingabe die Eigenschaft nicht hat). In unserem Beispiel war eine Primzahl p der Zeuge fiir den Unterschied zwischen x und y (d.h. Zeuge yon x ~ y), falls
Nummer(x)
rood
p =/=Nummer(y)
rood p.
Wenn man also ein solches p geschenkt bekommt, kann man effizient den Fakt ,,x ist unterschiedlich von y" beweisen. In der Realitgt k6nnen wir auf ein solches Geschenk nicht hoffen und schlimmer noch, wir k6nnen uns den Zeugen nicht alleine effizient deterministisch ausrechnen (sonst hgtten wir einen effizienten deterministischen Algorithmus fiir die Aufgabe). Um einen effizienten randomisierten Algorithmus zu entwerfen, brauchen wir fiir jede Eingabe 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 mindestens ~ 2 _ ( n - 1) Zeugen und somit ist die Wahrscheinlichkeit, einen Zeugen aus der Kandidatenmenge zufgllig zu ziehen, mindestens In~2 n2
(n-l) ?%2 Inn 2
>1
i n ?%2 /1"
Das ist sehr gfinstig, weil dieser Wert sehr nahe an 1 ist. Aber auch wenn die Wahrscheinlichkeit, einen Zeugen zu ziehen, nur 1/2 wgre, sind die Zeugen noch immer ausreichend hgufig. Es reicht in diesem Fall aus, einfach mehrere Zufallsversuche zu machen. Dadurch wgchst die Wahrscheinlichkeit schnell, in mindestens einem der Versuche einen Zeugen zu bekommen, was ftir uns hinreichend ist. Jetzt kann man noch fragen, wie es m6glich ist, dass wir einen Zeugen nicht deterministisch schnell finden k6nnen, wenn es so vide zwischen den Zeugenkandidaten gibt. Eine M6glichkeit wS~re doch, systematisch der Reihe nach alle Kandidaten auf eine so geschickte Weise durchzuprobieren, dass man nach kurzer Zeit einen Zeugen findet. Das Problem ist aber, dass fiir jede Eingabe die Zeugen anders zwischen den Zeugenkandidaten verteilt sein k6nnen. Wenn man sich also auf eine Durchsuchungsstrategie festlegt, k6nnte man immer Eingaben finden, bei denen die Strategie versagt. Betrachten wir unser Beispiel. Hier kann man sogar beweisen, dass keine Strategie existiert, die effizient einen Zeugen fiir jede Eingabe (x, y) findet. Um dies zu veranschaulichen, nehmen wir die einfache Strategie, die die Primzahlen ei-
304
8 Randomisierung
ne nach der anderen beginnend mit der kleinsten ausprobiert. Es ist klar, dass sp~testens nach n Proben ein Zeuge gefunden werden muss, weil h6chstens n - 1 Nicht-Zeugen zwischen den Kandidaten sind. Leider bedeuten n Proben eine KommunikationskomplexitS~t von n . 4. log 2 n, was wir uns nicht leisten k6nnen. Warum haben wir nicht immer die M6glichkeit, nach ein paar Proben einen Zeugen zu finden? Weil unsere Strategie bei folgenden Eingaben (z, y) n mit N u m m e r ( z ) - Nummer(y) P l " P2 . . . . . P k , wobei k 2(log~)2 und Pl < P2"'" < Pk die kleinsten Primzahlen sind, k + 1 Proben braucht, um einen Zeugen zu finden. Man kann sich leicht vorstellen, dass man bei jeder anderen Aufz~hlung der Primzahlen spezifische Eingaben findet, fiir die viele Proben notwendig werden, um einen Zeugen zu finden. Die Methode der h~ufigen Zeugen ist eine erfolgreiche starke Methode zum Entwurf von zufallsgesteuerten Algorithmen. Der effiziente zufallsgesteuerte Primzahltest basiert auf dieser Methode, und der Primzahltest geh6rt zu den wichtigsten algorithmischen Aufgaben von grofier praktischer Bedeutung. Die besten bekannten deterministischen Algorithmen wiirden fiir das Testen grofier Zahlen, die in der Kryptographie verwendet werden, nicht in Milliarden von Jahren fertig. Zu erklS~ren, wie man hier die Zeugen definiert, ist eine zu komplexe Aufgabe fiir diese Einfiihrung und daher ist unsere Zielsetzung viel bescheidener. Wir zeigen nur, wie man den randomisierten Primzahltest fiir ungerade Zahlen n mit ungeradem - ~ effizient machen kann. Zuerst klgren wir, was bei den zahlentheoretischen Problemen effizient bedeutet. Fiir eine Zahl n ist die Eingabegr6f3e [log2(n + 1)]. Ein polynomieller Algorithmus fiir den Primzahltest fiir n muss also eine polynomielle Laufzeit beziiglich [log2(n + 1)] haben. In der Praxis testen wir Zahlen von mehreren Hunderten von Ziffern (z.B. log2 n ~ 500) und deswegen kann man sich eine exponentielle Komplexitgt in log 2 n nicht leisten. Somit ist der naive deterministische Algorithmus, der iiberpriift, ob eine der Zahlen aus {2, 3 , . . . , [x/~J } die gegebene Zahl n teilt, yon exponentieller Komplexitgt (mindestens x/~ = l o g 2 rt
2--w-). Bei diesem Einsatz ist ein Zeuge der Tatsache ,,p ist keine Primzahl" jede natiirliche Zahl rn > 1, rn ~ p, die p teilt. Solche Zeugen 1 sind aber im Allgemeinen nicht hgufig. Wenn n = p . q fiir zwei Primzahlen p und q, dann hat n nur zwei Zeugen p und q in der Kandidatenmenge der Mgchtigkeit f~(x/-n). Deswegen muss man versuchen, Zeugen auf eine neue Art zu bestimmen.
1Die auf der klassischen Definition von Primzahlen basieren.
8.4 Die Methode der h/~ufigen Zeugen und der randomisierte Primzahltest
305
Satz 8.1. Satz von Fermat
Fiir jede Primzahl p und jede natiirliche Zahl a mit ggT(a, p ) =
rood p =
a p-1
1 gilt
1.
Beweis. In dem Beweis nutzen wir die Tatsache, dass jede Zahl eine eindeutige Zerlegung in Primzahlfaktoren hat. Weil p eine Primzahl ist, gilt
c.d
modp=0<=>c
modp=0oderd
modp=0
(s.2)
fiir alle natiirlichen Zahlen c und d. Sei a eine beliebige Zahl mit ggT(a, p) = 1. Betrachten wir die Zahlen rrtl =
1 .a, m2 = 2 . a ,
...,
rrtp_l = (p-
1).a.
Wir behaupten, dass m~ m o d p C m ~
modp
fiir alle u, v E { 1 , . . . , p -
1} mit u r v. Wir beweisen dies indirekt.
Angenommen rn~ m o d p = r n ~
modp
fiir irgendwelche u, v E { 1 , . . . , p -
=
1}, u > v. Dann teilt p die Zahl
-
Das ist aber nicht m6glich, weil u - v Satzes ggT(a, p) = 1 ist. Somit [{rrtl
< p und nach der Voraussetzung des
rood p, m2 rood p, . . . , rrtp_l rood p}[ = p - 1.
Jetzt b e h a u p t e n wir, dass keine der Zahlen rni rood p eine 0 ist. Falls rn~ m o d p = ( u . a )
modp=0
fiir ein u gelten wiirde, dann wgre nach (8.2) u modp=0odera
modp=0.
306
8 Randomisierung
Die Primzahl p kann aber keine der Zahlen u und a teilen, weil u < p und ggT(a, p ) = 1. Somit gilt {ml m o d p , m2 m o d p , . . . , m p _ l
modp}={1,2,...,p-1}.
(8.3)
Betrachten wir jetzt die Zahl ~
~1"~2
.....
~p-1-
Der Definition yon mi folgend ist m--l.a.2.a
.....
(p-1).a--l.2
.....
(p-1).a
p-1.
(8.4)
Aus (8.3) erhalten wir m modp=l-2
.....
(p-l)
(8.5)
modp.
Die Gleichungen (8.4) und (8.5)implizieren 1.2 .....
(p-1).a
p-1 m o d p - l . 2
.....
(p-l)
modp,
d.h. a ;-1 m o d p = l .
Eine Verfeinerung des Fermatschen Satzes ist die folgende Behauptung ,,p ist eine Primzahl"
p--1
e=~ a ~
modpC{1,p-1}
fiir alle a E { 1 , . . . , p Diese Behauptung Definition kommen Zahlen a in Frage, besagt, dass solche
1}.
liefert eine neue Definition von Primzahlen. Nach dieser als Zeugen fiir die Tatsache ,,n ist keine Primzahl" die n--1 fiir die a ~ rood n ~ {1, n - 1} gilt. Der folgende Satz Zeugen f~r gewisse Zahlen n hinreichend hSoufig sind.
S a t z 8.2. Fiir jede ungerade natiirliche Zahl n mit ungeradem ~__A1 d.h. n rood 4 = 3) gilt
falls n eine Primzahl ist, dann n--1
a ~
modnE{1,
n-1}fiiralleaE{1,...,n-1}
und
8.4 Die Methode der hS~ufigen Zeugen und der randomisierte Primzahltest
307
falls n k e i n e P r i m z a h l ist, d a n n n--1
a 2
fiir m i n d e s t e n s
modn~
{1, n
1}
eine Hiilfte der Z a h l e n a aus { 1 , . . . ,
n-
1}.
Aufgabe 8.7.* Beweisen Sie Satz 8.2. Somit h a b e n wir fiir Zahlen rn, die keine P r i m z a h l e n sind, und fiir die 1 in einem Zufallsversuch einen rn rood 4 - 3 gilt die Wahrscheinlichkeit ~, Zeugen ihrer Nichtzugeh6rigkeit zu den Primzahlen zu wS~hlen. Um mit dieser Definition von Zeugen definitiv einverstanden zu sein, miissen wir noch festn--1 stellen, dass a 2 rood n effizient zu berechnen ist. Wir k6nnen uns natiirlich nicht leisten, ~-~-mal mit a zu multiplizieren, weil d a n n die Anzahl der Operationen exponentiell in ~log2 nl w~tre. Wenn wir a b rood p zu berechnen h a b e n und b - 2 k gilt, d a n n kann dies mit der Methode des wiederholten Quadrierens mit k Multiplikationen wie folgt berechnet werden" a 2 mod p
-
a.a
a 4 mod p
-
(a 2 m o d p ) - ( a 2 m o d p )
modp,
a s mod p
-
(a 4 m o d p ) . ( a
modp,
-
(a 2k-1 m o d p ) 2
a 2k m o d p
modp, 4 modp)
modp.
Im Allgemeinen sei b - E i k = _ l b i 9 2 i - 1 (d.h. b - N l t l T t l T t e f ( b k b k _ l . . . bl) ) flir ein k E IN - {0} und b~ E {0, 1} fiir i - 1 , . . . , k. D a n n ist offensichtlich a b _
a hi'2 0 . ab2.21
. ab3.2 2 ....
a b k . 2 k - 1.
U m a b mod p zu berechnen, berechnet m a n zuerst alle Zahlen ai - a 2~ mod p durch wiederholtes Quadrieren. Danach multipliziert m a n rood p alle Zahlen ai, fiir die bi - 1 gilt. Die A n w e n d u n g dieses Ansatzes fiir die Berechnung n--I yon a ~ rood n fiir ein a E { 1 , . . . , n - 1} bedeutet, dass m a n wS~hrend der ganzen Berechnung nur mit Zahlen aus {0, 1 , . . . , n 1} arbeitet, also mit Zahlen der binS~ren LS~nge [log 2 hi. Offensichtlich ist die Anzahl der Multiplikationen solcher Zahlen hier kleiner als 2. [log 2 ~-~] E O(log 2 n). Nach dem logarithmischen Kostenmat3 ist die gesamte KomplexitS~t der Berechnung von a ~ 1 ( m o d n ) in O((log2n)2). D a m i t erhalten wir folgenden randomisierten Algorithmus fiir den Primzahltest.
308
8 Randomisierung
So l o v a y - S t r a s s e n - A l g o r i t h m u s
Eingabe: Eine ungerade Zahl n mit u n g e r a d e m n-1 Phase 1. Wghle zufgllig bezfiglich der uniformen Wahrscheinlichkeitsverteilung ein a E { 1 , 2 , . . . , n 1}. 2
9
"
n~l
Phase 2 Berechne x " - a (rood n). Phase 3. i f x E {1, n - 1} t h e n o u t p u t (,,Primzahl") ; e l s e o u t p u t (,,keine P r i m z a h l " ) ; Analysieren wir die Fehlerwahrscheinlichkeit dieses randomisierten Primzahltests. Falls n eine P r i m z a h l ist, gilt nach (i) von Satz 8.2, dass n--1
a 2 (modn)E
{1, n -
1}
fiir alle a E { 1 , . . . , n - 1} und somit ist die Ausgabe des Algorithmus i m m e r ,,Primzahl" (d.h. die Fehlerwahrscheinlichkeit ist gleich 0). Falls n keine P r i m z a h l ist, Tatsache ist, nach (ii) des 1 lichkeit in diesem Fall 7. grog, aber wenn wir s t a t t
ist die Wahrscheinlichkeit, dass a kein Zeuge dieser 1 D a m i t ist die FehlerwahrscheinSatzes 8.2 gleich ~. Diese Fehlerwahrscheinlichkeit ist offensichtlich zu eines a zwanzig Zahlen a l , . . . , a20 unabhS~ngig aus n--1
{ 1, n - 1} wS~hlen und die Antwort ,,Primzahl" nur geben, wenn ai ~ rood n E { 1, n - 1} fiir alle i E { 1 , . . . , 20}, d a n n ist die Fehlerwahrscheinlichkeit kleiner als 10 -6. Aufgabe 8.8. Sei k c IN, k _> 2. Wie weit kann man die Fehlerwahrscheinlichkeit des Solovay-Strassen-Algorithmus reduzieren, wenn man statt einem Versuch einen Zeugen zu finden, k unabh~ngige Versuche macht? Begrtinden Sie Ihre Antwort.
8.5
Die Methode der Fingerabdriicke und die Aqulvalenz von zwei Polynomen oo
9
In Abschnitt 8.3 h a b e n wir die M e t h o d e der hSoufigen Zeugen benutzt, u m zwei grofie Zahlen Nummer(x) und N u m m e r ( y ) mittels eines randomisierten K o m m u n i k a t i o n s p r o t o k o l l s zu vergleichen. Die dort vorgestellte spezielle Anw e n d u n g der M e t h o d e der hSoufigen Zeugen nennt m a n auch die M e t h o d s der Fingerabdriicke, die m a n allgemein wie folgt darstellen kann.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen
309
Schema der Methode der Fingerabdrficke Aufgabe" Entscheide die Aquivalenz (ira gegebenen Sinne) yon zwei Objekten O1 und 02, deren genaue Darstellung sehr umfangreich ist. Phase 1: Sei M eine ,,geeignete" Menge von Abbildungen von vollstS~ndigen Darstellungen betrachteter Objekte in partielle Darstellungen dieser Objekte. WS~hle zufS~llig eine Abbildung h aus M. Phase 2: Berechne h(O1) und h(02). h(@) nennt man den F i n g e r a b d r u c k yon Oi fiir i = 1, 2. Phase 3: if h(O1) = h(O2) then output ,,O1 und O2 sind/~quivalent" ; e l s e o u t p u t ,,O1 und O2 sind nicht 5~quivalent" ; In unserem Beispiel in Abschnitt 8.3 w a r e n O1 und 02 zwei grofie Zahlen von n Bits (n = 1012). Die Menge M war
{hv I hp(m) - m
rood p fiir alle rn E IN, p ist eine Primzahl,p _< n2}.
Fiir die zuftillig gewahlte Primzahl p waren hp(O1) = O1 rood p und hp(O2) = 02 rood p die Fingerabdriicke yon O1 und 02. Der Kernpunkt der Methode ist, dass hp(@) im Vergleich zu Oi eine wesentlich kiirzere Darstellung hat, und dadurch der Vergleich von hp(O1) und hp(02) wesentlich einfacher ist als der Vergleich yon O1 und 02. Das kann man aber nur dadurch erreichen, dass hp(Oi) keine vollsttindige Beschreibung von @ ist. Also muss man dass Risiko einer fehlerhaften Entscheidung in Kauf nehmen. Der Rest der Grundidee basiert auf dem Prinzip der Methode der hgufigen Zeugen. Die Menge M ist die Menge der Kandidaten fiir einen Zeugen der Nicht-Aquivalenz yon O1 und 02. Wenn fiir jedes Paar yon unterschiedlichen Objekten O1 und 02 in M zahlreiche 2 Zeugen von O1 -r 02 vorhanden sind, kann man die Fehlerwahrscheinlichkeit beliebig nach unten drticken. Die Kunst der Anwendung der Methode der Fingerabdrticke besteht in der geeigneten Wahl der Menge M. Einerseits sollen die Fingerabdriicke so kurz wie m6glich sein, um einen effizienten Vergleich zu erm6glichen. Andererseits sollen sie so viele Informationen wie m6glich fiber die abgebildeten Objekte enthalten a, um die Wahrscheinlichkeit des Verlustes des Unterschiedes zwischen O1 und 02 in den Fingerabdriicken h(O1) und h(O2) gering zu halten. Somit muss bei der Wahl yon M immer der Tradeoff zwischen dem Grad der ,,Komprimierung" 2bez~glich ]M] 3Daher kommt auch der Name der Methode, weil bei Menschen Fingerabdriicke als eine fast eindeutige Identifikation gelten.
310
8 Randomisierung
yon O zu h(O) und der Fehlerwahrscheinlichkeit im Auge behalten werden. In unserer Anwendung dieser Methode in Abschnitt 8.3 gelang es uns, mit zu 0 strebender Fehlerwahrscheinlichkeit einen exponentiellen Sprung zwischen der Darstellung yon O und h(O), n/~mlich Ih(o)l ~ O(~og2 Iol), zu schafeen. Im Folgenden wollen wir ein Aquivalenzproblem betrachten, fiir das kein (deterministischer) polynomieller Algorithmus bekannt ist, und das man effizient randomisiert mit der Methode der Fingerabdriicke 15sen kann. Das Problem ist das Aquivalenzproblem von zwei Polynomen von mehreren Variablen fiber einem endlichen KSrper 77v. Zwei Polynome P~ ( x ~ , . . . , x~) und P2(x~,..., xn) heigen gquivalent fiber 7/v, falls ftir alle (c~,,..., c~) E (7/v) ~ P~ ( c ~ , . . . , c~) - P 2 ( ( ~ , . . . , c~)
(rood p).
F/Jr dieses Aquivalenzproblem ist kein polynomieller Algorithmus bekannt. Es kann jemand widersprechen, dass so ein Vergleich doch einfach ist; es reicht aus, nur die Koeffizienten bei gleichen Termen zu vergleichen. Zwei Polynome sind genau dann gleich, wenn die Koeffizienten bei allen Termen gleich sind. Die Schwierigkeit des Aquivalenztests liegt aber darin, dass fiir einen solchen einfachen Vergleich beide Polynome in der Normalform vorliegen mtissen. Die Normalform eines Polynoms yon n Variablen Xl, x 2 , . . . , x~ und Grad 4 d ist d
d
d 9
i1=0 i2=0
.;~
in=O
Die Polynome ftir unseren )~quivalenztest dtirfen aber in einer beliebigen Form, wie z.B. P ( X l , x2, x3, x4, x5, x6) -
(Xl + x2) 10. (x3 - x4) 7. (x5 + x6) 20
eingegeben werden. Wenn wir uns an die binomische Formel
.1
9
n-k X2
k=0
erinnern, wird uns Mar, dass P ( x l , x2, x3, X4, X5, X6) genau 10 9 7 9 20 -- 1400 Terme (mit Koeffizienten ungleich 0) hat. Also kann eine Normalform eines Polynoms exponentiell lgnger sein als seine eingegebene Darstellung und somit 4Der Grad eines Polynoms von mehreren Variablen ist das Maximum der Grade der einzelnen Variablen.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen
311
kann man die Normalform im Allgemeinen nicht in polynomieller Zeit erzeugen. Wir miissen versuchen, die Polynome ohne Erzeugung der Normalform zu vergleichen. Wir wghlen dazu eine sehr einfache Strategie. F~r zwei Polynome Pl(xl,...,x~) und P2(xl,...,xn), ist ein c~ = (c~1,..., cu~) E (7/p) ~ ein Zeuge
von ~Pl(Xl~...~Xn) ~ /92(Xl~...~Xn)" wenn
Pl(O~l,..., O~n) Inod p r P2(Ogl,...~ Ogn) Inod p. In der Sprache der Methode der Fingerabdriicke ist
der Fingerabdruck yon P1. Damit ist der folgende einfache randomisierte A1gorithmus bestimmt:
Algorithmus AQP Eingabe: Eine Primzahl p und zwei Polynome P1 und P2 fiber n Variablen X l , . . . , x ~ , n E IN {0}, und vom Grad h6chstens d, d E IN. Phase 1" Wghle zufgllig 5 ein c ~ - ( c ~ , . . . , c~) E (77p)~. Phase 2: Berechne die Fingerabdrticke h
Phase 3:
(5) =
)rood p,
i f h2(P~) = h2(P2) t h e n o u t p u t ,,Pl = P2"; e l s e o u t p u t ,,P1 ~ 1'2";
Untersuchen wir jetzt die Fehlerwahrscheinlichkeit yon dem Algorithmus AQP. Falls P1 und P2 gquivalent fiber 77p sind, dann gilt -
(modp)
fiir alle (c~, c~2,..., c~) E (7/v)~. Somit ist die Fehlerwahrscheinlichkeit ffir die Eingaben P1, P2 mit P1 = P2 gleich 0. Seinen P1 und P2 zwei Polynome, die nicht/~quivalent sind. Wir zeigen jetzt, dass die Fehlerwahrscheinlichkeit kleiner als 1/2 ist, wenn p > 2nd ist. Die 5bezfiglich der Gleichverteilung fiber (77p)n
312
8 Randomisierung
Frage
/91(X1,--.,Xn) ist gquivMent
zu
-
-
P2(Xl, ..- ,Xn)
der Frage
Q ( X l , . . . , Xn) -- P1 (xl, . . . , Xn) -- P2(Xl,..., Xn)
--
O.
Das heit3t, wenn P1 und P2 nicht gquivalent sind, dann ist das Polynom Q nicht identisch zu 0. Unser Ziel ist jetzt zu zeigen, dass die Anzahl der Nullstellen eines Polynomes Q ~ 0 yon n Variablen und Grad d beschrS~nkt ist. Dadurch gibt es geniigend viele Zeugen c~ E (77p)~ mit Q(a) ~ 0 (mod p) (d.h. mit Pl(a) ~ P2(c~) (rood p)). Wir fangen mit dem bekannten Satz fiber die anzahl von Nullstellen fiir Polynome mit einer Variablen an. S a t z 8.3. Sei d E IN und sei P ( x ) ein Polynom einer Variablen x vom Grad d iiber einem beliebigen KSrper. Dann ist entweder P ( x ) iiberall gleich 0 oder P hat hSchstens d Wurzeln (Nullstellen). Beweis. Wir beweisen den Satz mit Induktion beziiglich d.
(i) Sei d - 0. Dann ist P ( x ) - c fiir eine Konstante c. Falls c ~ 0, dann hat P ( x ) keine Nullstelle. (ii) Sei die Behauptung des Satzes giiltig fiir d - 1, d > 1. Wir beweisen sie fiir d. Sei P ( x ) ~ 0 und sei a eine Nullstelle von P. Dann ist e(.)
- (. - a). e'(.)
P(x) wobei P'(x) (x-~) ein Polynom vom Grad d - 1 ist. Mit der Induktionsannahme hat P'(x) h6chstens d - 1 Nullstellen. Somit hat P ( x ) h6chstens d Nullstellen.
Jetzt sind wir bereit den Beweis zu ftihren, dass es geniigend viele Zeugen (Nichtnullstellen von Q ( x l , . . . ,x~) = P l ( X l , . . . , x ~ ) - P 2 ( X l , . . . , x ~ ) ) d e r Nicht5quivMenz yon unterschiedlichen P1 und P2 fiber ;r/p f/Jr eine geniigend grofie Primzahl p gibt. S a t z 8.4. Sei p eine Primzahl, und seien n, d E I N - {0}. Sei Q ( x l , . . . , x~) 0 ein Polynom iiber 7/p mit n Variablen x l , . . . , x~, wobei jede Variable in Q hSchstens Grad d hat. Dann hat Q hSchstens n . d. pn-1 Nullstellen.
8.5 Die Methode der Fingerabdriicke und die Aquivalenz von zwei Polynomen Beweis.
313
Wir beweisen den Satz per Induktion beziiglich der Anzahl n der
Variablen. (i) Sei n = 1. Nach Satz 8.3 hat Q(Xl) h6chstens d : n . d .pn-1 (ffir n = 1) Nullstellen. (ii) Sei die Induktionsannahme giiltig ftir n - 1, n E I N - {0}. Wir beweisen sie ftir n. Wir k6nnen Q als Q(Xl,X2, . . . ,xn)
=
Q0(X2, . . - x n )
-~- X l " Q I ( X 2 , . . - , X n )
-~-...
d i i=0
fiir irgendwelche Polynome ...,
ausdrticken. Falls Q(Ctl, ct2,..., ct~) = 0 (modp) fiir ein ct = (Ctl,..., ct~) E (Z/p) ~, dann gilt entweder (a) @ ( c t 2 , . . . , c t ~ ) - 0 (modp) ftir alle i = 0, 1 , . . . , d , oder (b) es existiert ein j E {0, 1 , . . . , d } mit Qi(c~2,..., ct~) ~ 0 (modp) und c~1 ist eine Nullstelle des Polynoms Q(Xl)
=
Q 0 ( ~ 2 , . . . OLn) -~- Xl" +
Ql(O~2,...,O~n) -~-.--
in einer Variablen Xl. Wir zghlen jetzt getrennt die Anzahl der Nullstellen im Falle (a) und (b).
(b)
Weil Q ( x l , . . . ,Xn) ~ O, existiert eine Zahl k E {0, 1 , . . . , d}, so dass Q ~ ( x 2 , . . . , x ~ ) ~ O. Nach der Induktionsannahme ist die a n z a h l der Nullstellen yon Qk hSchstens ( n - 1 ) . d . p ~-2. Dann gibt es aber hSchstens ( n - 1). d. p~-2 Elemente ~ - (c~2,..., c~) E (7/p) ~-1, so dass @(~) 0 ( mo d p ) fiir alle i E {0, 1, 2 , . . . , d}. Weft der Wert ~ 1 VOI1 X 1 keihen Einfluss auf die Bedingung (a) hat und somit frei w~ihlbar ist, gibt es hSchstens p . ( n - 1). d . p~-2 = ( n - 1). d . p~-i Elemente ~ = (c~1, ct2,..., c~) E (Z/p) ~, die die Eigenschaft (a) haben. Weil Q(Xl) ~ 0, hat Q nach Satz 8.3 h6chstens d Nullstellen (d.h. h6chstens d Werte O~1 E 7/p mit Q(C~l) - 0 (mod p)). Deswegen gibt es h6chstens d . p ~-1 Werte ct - (C~l, ct2,..., ct~) C (Z/p) ~, die die Bedingung (b) erfiillen.
314
8 Randomisierung
Zusammenfassend hat Q ( X l , . . . , Xn) h6chstens (n - 1) 9d . pn-1 q_ d . pn-1 _ 7t . d . pn-1 Nullstellen.
D
K o r o l l a r 8.1. 9ei p eine Primzahl, und seien n,d E IN {0}. Fiir jedes Polynom Q ( X l , . . . , x~) ~ 0 iiber 7/p vom Grad hSchstens d gibt es mindestens
1
Zeugen yon Q
n.d)
.p~
O.
Beweis. Die Anzahl der Elemente in (77p)~ ist genau p~ und nach Satz 8.4 sind h6chstens n. d.p ~-1 davon keine Zeugen. Somit ist die Anzahl der Zeugen mindestens p~_n.d.p~_l_
(1
n.d).p~.p
Damit ist die Wahrscheinlichkeit des Ziehens eines Zeugen aus p~ Elementen von (77p)~ mindestens
1
rt.d)
p
F~r p > 2rid ist diese Wahrscheinlichkeit gr6i3er als 1/2. Durch wiederholtes zuf~lliges Ziehen aus (77p)~ kann man die Wahrscheinlichkeit, dass mindestens ein Zeuge fiir Q ~ 0 (d.h. fiir P I ( Z l , . . . ,z~) ~ P2(Zl,... ,z~)) gefunden wird, beliebig nah an 1 bringen. Fiir mehrere Anwendungen des Algorithmus AQP ist es wichtig, dass die Primzahl p frei wS~hlbar ist. Dieser Freiheitsgrad kommt dadurch zustande, dass man das Aquivalenzproblem fiir einige Objekte auf den Vergleich yon zwei Polynomen reduzieren kann, ohne dabei Bedingungen an den K6rper, fiber dem die Polynome verglichen werden sollen, zu stellen.
8.6 Z u s a m m e n f a s s u n g
8.6
315
Zusammenfassung
Einen randomisierten (zufallsgesteuerten) Algorithmus kann man als einen nichtdeterministischen Algorithmus mit zugeordneten Wahrscheinlichkeiten fiir die Verzweigung der Berechnungen oder als eine Wahrscheinlichkeitsverteilung fiber deterministischen Algorithmen betrachten. Die Zufallssteuerung ist das inhS~rente Prinzip von Naturprozessen, das sich dutch Einfachheit und Effizienz auszeichnet. Nicht anders ist es in der Algorithmik, wo man dutch einfache randomisierte Algorithmen Probleme viel effizienter als mit den besten deterministischen Algorithmen 16sen kann. Am Beispiel des Entwurfs eines Kommunikationsprotokolls fiir den Vergleich der Inhalte von zwei Datenbanken haben wir gesehen, dass Randomisierung exponentiell effzienter als Determinismus sein kann. Die Grundidee des Entwurfs eines effizienten randomisierten Protokolls basierte auf der Methode der hgufigen Zeugen. Ein Zeuge ist eine Zusatzinformation zur Eingabe, mit deren Hilfe man das Resultat effizient berechnen kann, obwohl kein effzienter LSsungsansatz ohne einen Zeugen mSglich (oder bekannt) ist. Ftir die erfolgreiche Anwendung der Methode der hSoufigen Zeugen ist es wichtig, dass man fiir jede Eingabe (Probleminstanz) eine Menge yon Zeugenkandidaten bestimmen kann und dass ein grof3er Anteil der Kandidaten Zeugen sind. Einen Zeugen kann man dann einfach durch (wiederholtes) zufglliges Ziehen aus der Menge der Zeugenkandidaten mit groiJer Wahrscheinlichkeit gewinnen. Der Grund, warum man durch systematisches deterministisches Durchsuchen der Menge der Zeugenkandidaten einen Zeugen nicht effizient finden kann, liegt darin, dass die Zeugen in der Kandidatenmenge regellos verteilt sind. Bei diesem ,,chaotischen" Struktur der Kandidatenmenge riskiert jeder deterministische Suchalgorithmus zu viele Fehlversuche bei der Suche nach einem Zeugen. Die Kunst diese Methode anzuwenden liegt in einer geeigneten Definition von Zeugen. Wit haben gezeigt, wie man Zeugen definieren kann, um einen effizienten randomisierten Primzahltest fiir ungerade Zahlen n mit ungeradem (~-1) 2 ZU entwickeln. Fiir den Primzahltest kann man unsere Definition yon Zeugen so weiter entwickeln, dass man effzient den Primzahltest fiir alle natiirlichen Zahlen durchfiihren kann. Ein Spezialfall der Methode der hS~ufigen Zeugen ist die Methode der Fingerabdriicke fiir die L6sung von Aquivalenzproblemen. Die Idee ist, komplexen Objekten mit umfangreicher Darstellung durch eine zufS~llige Abbildung sogenannte Fingerabdrticke (kurze partielle Darstellungen) zuzuordnen, und so den Aquivalenztest auf den etIizient durchfiihrbaren Vergleich der Fingerabdriicke zu reduzieren. Die zufgllig ausgesuchten Abbildungen spielen in diesem Fall die
316
8 Randomisierung
Rolle der Zeugen. Auf diese Weise kann man einen effizienten randomisierten Test fiir die Aquivalenz von zwei Polynomen entwickeln. Fiir diesen Aquivalenztest ist kein (deterministischer) polynomieller Algorithmus bekannt, und es gibt rnehrere weitere Aquivalenztests, die sich effizient zu den Vergleich von zwei Polynomen reduzieren lassen. Eine ausfiihrliche Ubersicht fiber randomisierte Algorithmen kann man in dem Buch [MR 95] von Motwani und Raghavan finden, dass aber fiir Anf~nger aufgrund des technischen Schwierigkeitsgrades eher ungeeignet ist. Eine Einfiihrung in das Gebiet des Entwurfes von randomisierten Algorithmen ist im Kapitel 5 von [Hro 01] gegeben. Eine ausfiihrliche Darstellung der Methoden fiir den Entwurf von zufallsgesteuerten Systemen, die durch viele anschauliche Beispiele transparent gemacht werden, ist in [Hro 04] zu finden. Mehr fiber die zufallsgesteuerten Kommunikationsprotokolle kann man in [Hro 97] erfahren. Eine anschaulich pr~sentierte Anwendung des randomisierten Aquivalenztests von zwei Polynomen f/Jr den semantischen Vergleich von zwei Datenstrukturen zur ReprS~sentierung yon Boole'schen Funktionen findet man in [Sip 97]. Eine eindrucksvolle Ubersicht fiber die Konzepte im Bereich des Entwurfs yon randomisierten Algorithmen hat Karp in [Kar 91] zusammengestellt.
Kontrollaufgaben 1. Um Zufallsexperimente zu modellieren fiihrten wir den Begriff des Wahrscheinlichkeitsraums ein. Ein Wahrscheinlichkeitsraum ist gegeben durch die Menge S aller mSglichen Ergebnisse (Endresultate, elementare Ereignisse) des Experiments und dutch die Wahrscheinlichkeitsverteilung fiber S, die jedem Ergebnis (elementaren Ereignis) seine Wahrscheinlichkeit zuordnet. Die Wahrscheinlichkeit eines elementaren Ereignisse ist der erwartete Anteil der Versuche, die mit diesem elementaren Ereignis enden. Welche Konsequenzen hat diese Bedeutung der Wahrscheinlichkeit ffir die Bestimmung der Wahrscheinlichkeiten beliebiger Ereignisse, falls S endlich (oder abz~hlbar) ist? 2. Modellieren Sie das Experiment des ffinffachen Mtinzwurfs. Wie hoch ist die Wahrscheinlichkeit, dass die Anzahl der gefallenen KSpfe und die Anzahl der gefallenen Zahlen sich h6chstens um 1 unterscheidet? 3. Wie modelliert man randomisierte Algorithmen? Was entspricht hier einem Wahrscheinlichkeitsraum? 4. Bertachten Sie folgende Aufgabe. Zwei Rechner haben jeweils ein Wort mit einer L~inge von 18 Bits gespeichert und sollen feststellen, ob die WSrter gleich sind. Sie benutzen dazu das zufallsgesteuerte Kommunikationsprotokoll R. Aus wievielen Primzahlen wird zuf~llig eine gew~hlt? K6nnen sie alle auflisten? Wieviele Bits werden kommuniziert und wie grog ist die Fehlerwahrscheinlichkeit? Lohnt es sich hier das Protokoll R10 anzuwenden? 5. Analysieren Sie die Komplexitgt und die Fehlerwahrscheinlichkeit einer Modifikation
des Protokolls R, in dem R statt aus PRIM
(n 2) aus der Menge
PRIM
(~n3/2j) eine
8.6 Zusammenfassung
317
P r i m z a h l zufSJlig w~hlt. Wie ~ndert sich die Fehlerwahrscheinlichkeit, wenn m a n die P r i m z a h l aus P R I M ( n . ( l n n ) 2) oder aus P R I M (100. n - l n n ) w~hlt? Erkl~ren Sie die G r u n d i d e e der M e t h o d e der hgufigen Zeugen. Wie kann m a n diese M e t h o d e zum E n t w u r f eines r a n d o m i s i e r t e n Algorithmus ffir den P r i m z a h l t e s t anwenden? ErklSzen Sie die G r u n d i d e e der M e t h o d e der Fingerabdriicke. Wie kann m a n diese M e t h o d e zum Vergleich von zwei P o l y n o m e n anwenden? B e t r a c h t e n wir das randomisierte Protokoll zum Vergleich von zwei n-Bit Strings a = a l . . . a ~ und b = b l . . . b n , ai, bi E {0,1} ffir i = 1 , . . . , n . Sei p eine Primzahl. W i t b e t r a c h t e n die P o l y n o m e n
n
Pa(X)- Z
a(x)- Z
i=1
i=1
fiber 7/p. Offensichtlich sind a und b genau d a n n gleich, wenn Pa(z) und Pb(z) identisch sind. Nutzen Sie diese Tatsache und den Algorithmus A Q P u m ein neues zufallgesteuertes Protokoll fiir den Vergleich von a und b zu entwerfen. Wie beeinflusst die Wahl von p die Fehlerwahrscheinlichkeit und die Kommunikationskomplexit~tt? Gibt es eine Wahl von p, so dass das neue Protokoll ,,effizienter" als R eine kleine Fehlerwahrscheinlichkeit g a r a n t i e r t ?
Ihre Idee ist echt wahnsinnig. Die Grundfrage ist, ob sie wahnsinnig genug ist, um wahrhaftig sein zu k6nnen. N. Bohr
9
Kommunikation und Kryptographie
9.1
Zielsetzung
Im 20. Jahrhundert hat sich die theoretische Informatik iiberwiegend der Untersuchung der sequentiellen Rechnermodelle gewidmet, die der Vorstellung von Neumanns entsprechen. Was sollten die zukiinftigen Kernprobleme der Informatik sein? Die Vernetzung der Rechner konfrontiert den Nutzer nicht mehr nur mit einem einzelnen Rechner, sondern mit einer untibersichtlichen vernetzten Welt von vielen asynchronen und unvorhersehbaren Aktivit~ten. Das Verstgndnis vom Rechnen in der vernetzten Welt ist derzeit nicht sehr tief und seine Entwicklung wird eine der Hauptaufgaben der Informatik sein. Die Vielfalt der Forschungsfragen, die im Zusammenhang mit verteiltem Rechnen, Kooperation und Kommunikation zwischen Rechnern, Prozessen und Menschen gestellt worden sind, kann man in dieser beschrgnkten Ubersicht gar nicht vorstellen. Die Probleme, bezogen auf den Entwurf und die Analyse von effizienten Kommunikationsalgorithmen (Protokollen) und auf den Entwurf von leistungsfghigen Netzen, sind stark von den zug~nglichen Technologien abh~ngig. Diese Technologien entwickelten sich schnell von klassischen Telefonverbindungen his hin zu optischen Netzen, und jede Technologie ist an anderen Problemen und Fragestellungen interessiert. Weil wir keine M6glichkeit sehen, eine kurze, verstS~ndliche Ubersicht fiber dieses Thema zu geben, beschrS~nken wir uns hier auf ein Beispiel eines Netzentwurfes und konzentrieren uns mehr auf das Gebiet der Kryptographie, das sich mit der sicheren Kommunikation in Netzen beschgftigt. Unsere erste Zielsetzung ist, den Leser mit einigen grundlegenden Konzepten und Ideen aus dem Gebiet der Kryptologie bekannt zu machen. Dabei halten wir auch die gerade Linie der kontinuierlichen Entwicklung der informatikbezogenen Konzepte in diesem Buch ein, weil die wesentlichen Fortschritte der Kryptographie auf den in den vorhergehenden Kapiteln vorgestellten Kon-
9.2 Klassische Kryptosysteme
319
zepten der KomplexitS~tstheorie, Algorithmik und Randomisierung aufbauen. Aut3erdem ist gerade die Kryptographie das Gebiet, das his zu einem gewissen Grad kontraintuitive Resultate bereitstellt und dadurch auf eindrucksvolle Weise M6glichkeiten er6ffnet, von denen die meisten Anwender nicht zu trS~umen wagten. Die Organisation dieses Kapitels ist wie folgt gestaltet. Abschnitt 9.2 ist einer informellen Vorstellung der klassischen Kryptosysteme gewidmet. Der Abschnitt 9.3 stellt das Konzept der Public-Key-Kryptosysteme vor und illustriert es anhand des RSA-Kryptosystems. In Abschnit 9.4 wenden wir das Konzept der Public-Key-Kryptosysteme an, um zwei Protokolle fiir digitale Unterschriften zu entwerfen. In Abschnitt 9.5 lernen wir interaktive Protokolle und Zero-Knowledge-Beweissysteme kennen, mit denen man etIizient Beweise verifizieren kann, ohne sie zu lesen. Abschnitt 9.6 pr~sentiert den Entwurf eines Kommunikationsnetzes.
9.2
Klassische Kryptosysteme
Kryptologie bezeichnet urspriinglich die Lehre der Geheimsprachen. Innerhalb der Kryptologie unterscheidet man zwischen der Kryptographie, der Wissenschaft, Kryptosysteme zu entwickeln, und der Kryptoanalyse, der Kunst, diese zu brechen. Hier beschSfftigen wir uns nur mit der Kryptographie. Das betrachtete Szenario ist in Fig. 9.1 dargestellt.
Schltissel Schliissel Klar1 Krypto1 text-I Verschliisselung I te~t . Entschliisselung
Klartext
~ana~ Fig. 9.1 Eine Person, genannt S e n d e r , will eine geheime Nachricht einer anderen Person, genannt E m p f i i n g e r , zuschicken. Die geheime Nachricht ist in Form eines Textes dargestellt und wir nennen diesen Text K l a r t e x t . Um zu verhindern, dass ein Unbefugter, der auf irgendeinem Weg in den Besitz der Nachricht gelangt, den geheimen Inhalt lesen kann, schickt man die Nachricht in einer chiffrierten (verschliisselten) Form. Die Art der Chiffrierung (Verschliisselung)
9 Kommunikation und Kryptographie
320
ist ein gemeinsames Geheimnis des Senders und des EmpfS~ngers, und die Verschlfisselung wird mit Hilfe eines sogenannten SchHissels durchgeffihrt. Der verschliisselte Klartext heifit K r y p t o t e x t . Nach dem Empfang wird der Kryptotext entschliisselt, und das Ergebnis der Entschliisselung ist der urspriingliche Klartext. Formal ist ein Kryptosystem ein Tripel (/C, A, $), wobei/C die Menge aller erlaubten Klartexte, A die Menge aller m6glichen Kryptotexte und $ die Menge der Schliissel ist. Oft ist/C - 2 ~ fiir ein m E IN und ein Alphabet 2, d.h., dass man den zu verschliisselnden Text in B16cke der Lgnge m auReilt und jeden Block einzeln verschliisselt. In diesem Fall ist auch A - I~k fiir ein k E IN und ein Alphabet F. Jeder Schliissel c~ E $ bestimmt eindeutig eine injektive Funktion E~ von/C nach A. Die Verschliisselung entspricht also der Berechnung yon E~(z) fiir einen Klartext z E/C und die Entschliisselung entspricht der Berechnung von E21(c) fiir einen Kryptotext c E A. Die inverse Funktion E~ 1 zu der Funktion E~ bezeichnet man gew6hnlich mit D~. Die Anforderungen an ein Kryptosystem sind" (i) Die Funktion E~ und D~ sollen effizient berechenbar sein, und (ii) ohne c~ zu kennen ist es unm6glich oder zumindest im komplexitS~tstheoretischen Sinne schwer, aus einem gegebenen Kryptotext E~(z) den Klartext z zu berechnen. Wahrscheinlich ist CAESAR das einfachste Kryptosystem. Seien die Klartexte W6rter fiber dem lateinischen Alphabet mit 26 Buchstaben. Die Menge der Schliissel $ ist {0, 1, 2 , . . . , 25}. Fiir einen gegebenen Schliissel k E $ ersetzt man bei der Verschliisselung jeden Buchstaben des Klartextes durch einen Buchstaben, der in der alphabetischen Ordnung um k Positionen weiter hinten liegt. Am Ende des Alphabets geht man zyklisch wieder zum Anfang. So erhS~lt man f/ir k = 3 und den Klartext KRYPTOGRAPHIEISTFASZINIEREND
den Kryptotext NUBSWRJUDSKLHLVWIDVCLQLHUHQG.
Dieses Kryptosystem ist aber leicht zu um CAESAR handelt, reicht es aus, probieren. Schwerer kann man es dem Schliissel aus {0, 1 , . . . , 26} ~ fiir ein m
brechen. Wenn man weifi, dass es sich alle 26 m6glichen Schliissel durchzuKryptoanalytiker machen, indem man E I N - {0} betrachtet. Fiir einen sol-
9.3 Public-Key-Kryptosysteme und RSA
321
chen Schliissel (~ = al, a 2 , . . . , (~,~ zerteilt man den Klartext in Bl6cke der L~nge rn und ersetzt d e n / - t e n Buchstaben jedes Blocks durch den Buchstaben, der in der alphabetischen Ordnung um ai Positionen weiter hinten liegt. Falls a = 3, 1, 6, dann erhS~lt man fiir den Klartext K 3
R 1
Y 6
P 3
T 1
0 6
G 3
E
S
U
U
J
R 1
A 6
P 3
H 1
I 6
E 3
den Kryptotext N
S
S
G
S
I
0
H.
Dieses Kryptosystem kann man auch brechen, wenn man z.B. die Kenntnis der H~ufigkeit des Auftretens der Buchstaben in konkreten natiirlichen Alphabeten einsetzt. Es existieren aber auch klassische Kryptosysteme, die sehr schnell arbeiten und die man mit dem heutigen Wissen nicht brechen kann. Der Nachteil der klassischen Kryptosysteme liegt darin, dass sie auf einem gemeinsamen Geheimnis von Sender und Empfgnger basieren. Die Kenntnis des Verschliisselungsmechanismus impliziert direkt auch die Kenntnis des Entschliisselungsmechanismus (hS~ufig sind die Schl/issel f/Jr beide Verfahren gleich). Das bedeutet, dass der Sender und der Empf~nger sich zuerst auf einen festen Schliissel einigen miissen, ohne fiber ein Kryptosystem zur sicheren Kommunikation zu verfiigen. Wie man dieses Problem 16sen kann, ist das Thema des nS~chsten Abschnitts.
9.3
Public-Key-Kryptosysteme und RSA
Die in Abschnitt 9.2 vorgestellten klassischen Kryptosysteme nennt man auch symmetrische Kryptosysteme, weil man mit Kenntnis des Verschltisselungsverfahrens (Entschliisselungsverfahrens) einfach die Entschliisselungsprozedur (Verschliisselungsprozedur) ableiten kann. Damit sind Sender und EmpfS~nger gleichwertig und teilen sich den Schliissel als ein gemeinsames Geheimnis. Autier dem bereits erwS~hnten Problem der Realisierung einer sicheren Einigung auf einen gemeinsamen Schliissel hat das System noch eine andere SchwS~che. Wenn man ein Kommunikationssystem hat, in dem sich mehrere Teilnehmer den gleichen Schliissel teilen, reicht ein VerrS~ter, und die Sicherheit der gesamten Kommunikation bricht zusammen. Eine revolutionS~re Idee zur Uberwindung dieses Problems basiert auf einer komplexitgtstheoretischen Uberlegung.
322
9 Kommunikation und Kryptographie
Ftir die Verschliisselung sucht man eine sogenannte E i n w e g - F u n k t i o n f, die folgende Eigenschaften haben soll: (i) f ist effizient berechenbar, (ii) f - 1 ist nicht effizient berechenbar, und (iii) f - 1 ist effizient berechenbar, falls man eine geheime Information kennt (in Analogie zu Zeugen und Zertifikaten in Kapitel 6 und 8). Wenn man eine solche Einweg-Funktion f hSotte, k6nnte der EmpfS~nger f ver6ffentlichen, und die Sender k6nnten f zur Verschliisselung der Nachrichten benutzen. Trotz der Ver6ffentlichung von f (z.B. in einem Telefonbuch) sichert uns die Eigenschaft (ii), dass niemand die Kryptotexte entschliisseln kann. Nur der Empfgnger, der als einziger eine geheime zusgtzliche Information fiber f besitzt, kann die Kryptotexte entschliisseln. Kryptosysteme, die auf diesem Prinzip basieren, nennt man P u b l i c - K e y - K r y p t o s y s t e m e (Kryptosysteme mit einem 6ffentlichen Schliissel). Die Frage ist, ob solche Einweg-Funktionen iiberhaupt existieren. Man k6nnte sogar meinen, dass die Antwort nein sein sollte, weil die drei Eigenschaften (i), (ii) und (iii) fiir eine Funktion f zusammen unnatiirlich aussehen. Dass die Idee doch nicht so abwegig ist, zeigt das folgende Beispiel. Tab. 9.1 K R
Y P T O R
A P H I
E
Name Knuth Rivest Yao Papadimitriou Thomas Ogden Rabin Adleman Papadimitriou Hop croft Ibarra Edmonds
Telefonnummer 00128143752946 00173411020745 00127345912233 00372453008122 00492417738429 00012739226541 00048327450028 00173555248001 00372453008122 00013782442358 00124327010098 00183274553211
Betrachten wir die folgende Verschliisselung. Jeder Buchstabe wird einzeln durch eine Folge von 14 Dezimalziffern verschliisselt. Fiir jeden Buchstaben wSohlt man nichtdeterministisch aus irgendeinem Telefonbuch einen Namen, der mit diesem Buchstaben anfS~ngt, und die entsprechende Telefonnummer nimmt man in den Kryptotext auf. Falls die Nummer weniger als 14 Ziffern
9.3 Public-Key-Kryptosysteme und RSA
323
hat, setzt man an den Anfang entsprechend viele Nullen. Tab. 9.1 enthS~it eine Tabelle, die zeigt, wie man auf diese Weise das Wort Kryptographie verschliisseln kann. Vorausgesetzt, dass alle aui3er dem Empf/~nger nur klassische Telefonbiicher haben, die nach dem Namen sortiert sin(l, ist es eine sehr aufwendige Aufgabe, die Telefonnummer in dem Telefonbuch zu finden, um den der Nummer zugeh6rigen Namen zu erfahren 1. Nur der EmpfS~nger, der ein nach Telefonnummern sortiertes Welttelefonbuch besitzt, kann effizient den Kryptotext entschliisseln. Das vorgestellte Beispiel ist nur eine Ideenillustration und wir wollen es nicht ernsthaft als ein Kryptosystem in Betracht ziehen. Bevor wir aber einen ernsthaften Entwurf eines Kryptosystems mit 5ffentlichen Schl/isseln vorstellen, geben wir eine formale Definition einer Einweg-Funktion. D e f i n i t i o n 9.1. Seien E und F zwei Alphabete. Eine Funktion f " E* ~ heiflt E i n w e g - F u n k t i o n , falls sie folgende Eigenschaften hat.
(ii)
F*
Es existieren Konstanten c und d a u s IN - {0}, so dass fiir alle x E E*, ! . I x I <_ If (x ) <_ d. x . {Das bedeutet nut, dass I/(x)l in linearer Relation stehen.} Die Funktion f kann man in polynomieller Zeit berechnen. Fiir jeden randomisierten polynomiellen Algorithmus A und jedes k E I N - { 0 } existiert eine Konstante hA,k, 8o dass fiir jedes n >_ nA,k und ein zufiillig ausgesuchtes w e E ~ die Wahrscheinlichkeit 2, dass A( f (w) ) w, kleiner als n -k ist. {Diese Bedingung sichert, dass polynomiell viele unabhiingig wiederholte Liiufe eines randomisierten polynomiellen Algorithmus nicht zur Berechhung yon f - 1 mit konstanter Fehlerwahrscheinlichkeit fiihren kdnnen.}
Bisher hat man von keiner Funktion bewiesen, dass sie eine Einweg-Funktion ist. Dies hS~ngt hauptsS~chlich mit dem Schwierigkeitsgrad von Beweisen unterer 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 berechnen kann. Die inverse Funktion ist der diskrete Logarithmus (das AuflSsen der Gleichung a x rood n = b nach der Unbekannten x), fiir deren Berechnung kein 1Man kSnnte auch auf die Idee kommen, die Telefonnummer einfach anzurufen. Abgesehen von den Kosten ffir die Anrufe kann man sich auch schnell in einem Experiment davon fiberzeugen, dass dieser Weg keinen einfachen Erfolg garantiert. 2Die Wahrscheinlichkeit betrachtet man fiber zuf~llige Entscheidungen von A sowie tiber die zuf/~llige Wahl von w.
324
9 Kommunikation und Kryptographie
effizienter (randomisierter) Algorithmus bekannt ist. Ein anderer K a n d i d a t f/Jr eine Einweg-Funktion ist die Multiplikation von zwei Zahlen, die offensichtlich effizient berechenbar ist. Die inverse Funktion ist die Faktorisierung, fiir die kein etfizienter Algorithmus bekannt ist. Auf der Schwierigkeit der Faktorisierung basiert das folgende P u b l i c - K e y - K r y p t o s y s t e m RSA, dass nach seinen Erfindern Rivest, Shamir und A d l e m a n b e n a n n t wurde. Sei ggT(a, b) fiir zwei Zahlen a, b E IN der grSt3te gemeinsame Teiler yon a und b. Der Empf~nger b e s t i m m t die Verschliisselung und die Entschltisselung durch folgende Berechnung. Er generiert zufgllig zwei grot3e Primzahlen a p und q und berechnet 4 n =p.q
und g ( n ) = ( p - 1 ) - ( q -
1).
Dangch w~hlt er ein groi3es d > 1, so dgss ggT(d, p ( n ) ) = 1
(9.1)
gilt und berechnet die Zahl e, 1 < e < ~(n), so dass e. d mod ~(n) = 1.
(9.2)
Die Zahlen n und e bilden den 5ffentlichen Schliissel und die Zahlen p, q, ~(n) und d bleiben das Geheimnis des EmpfSongers. Bei der Chiffrierung betrachten wir Klartext als eine Dezimalzahl, die kleiner als n ist. Wenn der Klartext 15~nger ist oder anders dargestellt wird, wandelt m a n ihn zuerst injektiv in eine Folge yon Dezimalzahlen der LS~nge [log10 n 1 - 1 u m und d a n n verschltisselt m a n die Dezimalzahlen der LS~nge ~lOgl0 n 1 - 1 einzeln. F/Jr eine Zahl w E {0, 1 , . . . , n - 1} ist die Verschliisselungsfunktion E~,~(w) = w ~ mod n. Fiir einen K r y p t o t e x t c ist die Entschliisselungsfunktion Dd,~(c) --
cd
modn.
Wie wir schon in Kapitel 8 gezeigt haben, sind E~,~ und Da,~ durch die Methode des wiederholten Quadrierens etIizient berechenbar. D a n k des randomisierten Primzahltests aus Abschnitt 8.4 kann m a n auch zufgllige Primzahlen effizient 3Grot3 bedeutet mehrere hundert Bits lang. 4Hierbei ist ~ die sogenannte Euler'sche Funktion. Fiir jede Zahl n ist ~(n) die Anzahl von Zahlen a E IN, so dass ggT(a, n) = 1 und a < n.
9.3 Public-Key-Kryptosysteme und RSA
325
generieren. Die Zahlen d und e kann m a n mit Hilfe des Euklidischen Algorithmus ebenfalls effizient berechnen 5 und somit ist die gesamte Schliisselberechnung des EmpfSmgers effizient durchfiihrbar. M a n kennt keinen effizienten (randomisierten) Algorithmus, der aus der Kenntnis yon e und n e i n e der Zahlen d, p, q oder p ( n ) berechnen kann. Die Kenntnis einer dieser vier geheimen Zahlen reicht allerdings aus, u m alle restlichen effizient zu berechnen. Genauso kennt m a n keinen effizienten Algorithmus, der aus E~,~(x), e und n (ohne d zu kennen) den K l a r t e x t x b e s t i m m e n kann. Jetzt wollen wir zeigen, dass RSA wirklich funktioniert, d.h., dass Da,~ (E~,~ (w)) = w fiir alle w < n. Dazu b e n u t z e n wir den Euler'schen Satz, der eine Verallgemeinerung des F e r m a t ' s c h e n Satzes ist. Satz 9.1. Satz von Euler
Seien w und n zwei positive natiirliche Zahlen mit g g T ( w , n ) = 1, und sei p ( n ) die Euler'sche Zahl yon n (p(n) = I{a E { 1 , 2 , . . . , n } l g g T ( a ,n) = 1}1 ). D a n n gilt w ~(~) m o d n = l . Der Euler'sche Satz ist eine Folgerung aus R e s u l t a t e n der G r u p p e n t h e o r i e , die besagen, dass die O r d n u n g jedes Elementes die O r d n u n g der G r u p p e teilt, und dass die zyklische G r u p p e (Z//(n)) * modulo n die O r d n u n g ~ ( n ) h~t. Nach der Definition der O r d n u n g von Elementen einer G r u p p e gilt ftir jedes w E ( Z / ( n ) ) * mit einer O r d n u n g k w k m o d n = 1. Weil p ( n ) = k . b ftir eine positive natiirliche Zahl b, erhalten wir w ~(~) rood n
w kb rood n (w k m o d n ) b m o d n (1) b m o d n - 1 .
5Genauer: d wird als eine grot3e Zahl zufgllig gewghlt. Dann wird getestet, ob d teilerfremd mit ~(n) ist. Falls nicht, wghlt man ein neues d. Da es hinreichend viele zu ~(n) teilerfremde Zahlen gibt, wird d schnell gefunden. Die Zahl e wird automatisch durch den Euklidischen Algotithmus zum Testen von ggT(d, ~(n)) = 1 mitbestimmt.
9 Kommunikation und Kryptographie
326
A u f g a b e 9.1. Fiihren Sie einen alternativen Beweis des Euler'schen Satzes, indem Sie den Beweis des Fermat'schen Satzes aus dem Abschnitt 8.4 verMlgemeinern. Das heii3t, beweisen Sie Folgendes. Seien xl, x 2 , . . . , x~(n) E {1, 2 , . . . , n - 1} alle Zahlen b mit der Eigenschaft ggT(b, n) = 1. Dann ist fiir jedes a c {1, 2 , . . . , n - 1}, (axl mod n, ax2 mod n , . . . , axe(n) mod n) eine Permutation yon Xl,X2,... ,X~(n). J e t z t sind wir b e r e i t , die K o r r e k t h e i t von R S A zu beweisen. S a t z 9 . 2 . S e i e n p, q, n, e u n d d wie in R S A natiirlichen Z a h l e n w k l e i n e r als n
bestimmt.
D a n n gilt fiir alle
Da,~(E~,n(w)) - w ~d rood n - w. Beweis.
N a c h der W a h l von d u n d e beziiglich (9.1) u n d (9.2) gilt (9.3)
fiir ein j E I N -
{0}. W i r m i i s s e n also beweisen, dass
w i~(~)+1 rood n - w
(9.4)
fiir alle w < n. W i r u n t e r s c h e i d e n drei M 6 g l i c h k e i t e n beziiglich der R e l a t i o n z w i s c h e n p, q u n d w. (i) K e i n e der P r i m z a h l e n p, q teilt w. W e n n p u n d q die Zahl w nicht t e i l e n u n d w < p . q , d a n n g g T ( p , q,
= 1
u n d d a m i t sind die V o r a u s s e t z u n g e n der E u l e r ' s c h e n S a t z e s fiir n = p . q w erffillt. D a h e r ist
und
w ~(~) m o d n = l und w i~(~) rood n - 1.
(9.5)
W e n n m a n b e i d e S e i t e n von (9.5) m i t w m u l t i p l i z i e r t , erhSJt m a n die anges t r e b t e G l e i c h u n g (9.4).
9.4 Digitale Unterschriften
327
(ii) Eine der P r i m z a h l e n p und q teilt w, und die andere teilt w nicht. O.B.d.A. setzen wir voraus, dass p die Zahl w teilt und dann q die Zahl w nicht teilt. Aus dem Satz von Fermat folgt w q-1 rood q - 1, w a s w ( q - 1 ) ( p - 1 ) rood q 1 impliziert, d.h. w ~(~) m o d q - 1 und somit W j~(n)
rood q -
1.
Weil p die Zahl w teilt, gilt (9.6) auch modulo n - p . q , w j~(~) rood n -
(9.6) d.h.
1.
Durch Multiplizieren mit w erreicht man auch hier das gewiinschte Ergebnis. (iii) Beide Zahlen p und q teilen w. Diese M6glichkeit kann nicht auftreten, weil p und q Primzahlen sind und p.q>w.
Die Public-Key-Kryptosysteme haben viele Vorteile gegenfiber den symmetrischen Kryptosystemen, weil sie uns die Herstellung von sicheren Kommunikationsprotokollen fiir unterschiedliche Aufgaben ermSglichen (wie z.B. digitale Unterschriften), die man mit symmetrischen Kryptosystemen nicht 15sen kOnnte. Die klassischen symmetrischen Kryptosysteme haben aber auch einen wesentlichen Vorteil gegeniiber den Public-Key-Kryptosystemen. Insbesondere auch aufgrund der Hardwarerealisierung sind sie in der Praxis oft 100-real schneller als Public-Key-Verfahren. Das fiihrt meistens dazu, dass man ein Public-Key-Kryptosystem nur zum Austausch eines Schliissels fiir ein symmetrisches Kryptosystem verwendet und den Rest der Kommunikation mit symmetrischen Kryptosystemen realisiert.
9.4
Digitale Unterschriften
Um eine einfache Anwendung der Public-Key-Kryptosysteme zu zeigen, stellen wir zwei einfache Protokolle fiir digitale (elektronische) Unterschriften vor. Handschriftliche Unterschriften sind juristisch gesehen eine Art Echtheitsgarantie. In der digitalen Kommunikation kann man aber keine handschriftlichen Unterschriften leisten. Aufierdem hS~tte man gerne noch fS~lschungssicherere Unterschriften, als es die handschriftlichen sind.
328
9 Kommunikation und Kryptographie
Betrachten wir folgendes Szenario. Ein Kunde K will der Bank B eine Echtheitsgarantie fiir eine {Jberweisung von seinem Konto geben, oder ein anderes Dokument fiir die Bank unterschreiben. Wir stellen folgende nattirliche Forderungen an Kommunikationsprotokolle fiir solche digitalen Unterschriften. (i) B muss v o n d e r Echtheit der Unterschrift v o n / s iiberzeugt werden. Sowohl B als auch K miissen vor einem Dritten (Fglscher) F geschiitzt werden, der sich als K gegen/iber B ausgeben m6chte. (ii) K sollte vor solchen Aktivit/~ten von B geschfitzt werden, bei denen B behauptet, ein unterschriebenes Dokument von K zu haben, obwohl K dieses Dokument nicht unterschrieben hat (d.h. B darf es nicht erlernen k6nnen, die Unterschrift yon K zu fglschen). Aufgabe 9.2. Entwerfen Sie ein Kommunikationsprotokoll fiir digitale Unterschriften, dass auf einem klassischen Kryptosystem basiert und die Erfiillung der Forderung (i) garantiert. Die Eigenschaft (ii) ist schwerer als (i) zu erffillen, weil sie auf den ersten Blick kontraintuitiv aussieht. Einerseits soll B v o n d e r Echtheit der Unterschrift von K fiberzeugt werden, und ffir die Uberprfifung muss er etwas fiber die Generierung (Erzeugung) der Unterschrift wissen. Andererseits darf B nicht zu viel fiber die Art, wie K unterschreibt, wissen, weil sonst B die Unterschrift von K nachmachen k6nnte. Die folgende einfache L6sung bietet das Konzept der Public-Key-Kryptosysteme. Der Kunde K hat ein Public-Key-Kryptosystem mit der Verschliisselungsfunktion E~ und der Entschlfisselungsfunktion D~:. Die Bank B kennt die 6ffentliche Verschliisselungsfunktion EK. Dann kann K wie folgt eine Unterschrift leisten. K nimmt das Dokument w und schickt (w, DK(w)) an B. B iiberprfift dann mit dem Test ,,w = EK(DK(w))"die Echtheit der Unterschrift. Weil kein anderer auger K die Nachricht DK(w) berechnen kann, ist B von der Echtheit der Unterschrift (w, DK(w)) /iberzeugt. Damit ist die Forderung (i)erf/illt. Weil der Schliissel EK 6ffentlich ist, hat auch B noch zusgtzlich die M6glichkeit, jeden Dritten 6 mit dem Paar (w, Dk(w)) iiberzeugen zu k6nnen, dass K das Dokument w unterschrieben hat. Die Forderung (ii) ist auch erfiillt, weil die Kenntnis von (w, Dk(w)) B nicht helfen kann, ein anderes Dokument u mit D~c(u) zu unterschreiben. Aufgabe 9.3. Das vorgestellte Protokoll hglt das Dokument w nicht geheim. Jeder, der lauscht, kann w lernen. Stellen wir also die folgende zus/~tzliche Bedingung. 6der E/( kennt und mit Sicherheit weiI3, dasses der 6ffentliche Schliissel von K ist
9.4 Digitale Unterschriften
329
(iii) Kein Dritter, der die Kommunikation zwischen B und K belauscht, darf den Inhalt des unterschriebenen Dokumentes erfahren. Entwerfen Sie ein Kommunikationsprotokoll, das alle drei Bedingungen (i), (ii) und (iii) erfiillt.
Betrachten wir jetzt eine kompliziertere Version von digitalen Unterschriften, die man das A u t h e n t i z i t ~ i t s p r o b l e m nennt. Hier braucht man kein Dokument zu unterschreiben, sondern man muss nur den anderen von seiner eigenen Identitgt fiberzeugen. Die Forderungen an ein Kommunikationsprotokoll fiir die Authentifizierung sind wie folgt:
(i') genau wie (i) (ii')
K sollte von solchen Aktivitgten von B geschiitzt werden, bei denen B sich gegenfiber einem Dritten als K ausgeben m6chte r.
Unser Kommunikationsprotokoll ist nicht fiir das Authentizitgtsproblem geeignet. B lernt die Unterschrift (w, D K ( w ) ) i n dieser elektronischen Kommunikation und kann sich in der Kommunikation mit einem Dritten mit dieser Unterschrift als K ausgeben. Es gibt Situationen, in denen so etwas sehr unerwiinscht ist. Auf3erdem kann irgendjemand der Kommunikation lauschen und dabei auch das Paar (w, DK(w)) lernen. Er kann dann ebenfalls mit der 6ffentlichen Verschliisselungfunktion E~: die Echtheit der Unterschrift iiberpriifen und sich dann als K ausgeben. Die L6sung des Authentizitgtsproblems findet man in der Einbeziehung zweier Public-Key-Kryptosysteme. K besitzt das bereits erwghnte Kryptosystem (DK, EK) und B hat ein anderes Public-Key-Kryptosystem(DB, EB). Die Verschliisselungfunktionen EK und EB sind 6ffentlich, und damit auch sowohl K als auch B bekannt. Die Funktion DK ist alas Geheimnis von K und die Funktion DB ist das Geheimnis von B. K leistet seine Unterschrift entsprechend dem folgenden Protokoll.
r Also ist (ii') ghnlich zu (ii), weil es eine Forderung gegen potentielle F/ilschung der Unterschrift yon K durch B ist.
9 Kommunikation und Kryptographie
330
9 B wS~hlt zufS~llig eine Zahl w und schickt E~c(w) an K. 9 K
dur
h
K berechnet c = EB(D~c(w)) und schickt es an B. 9 B iiberpriift, ob w = EK(DB(c)) =
EK(DB(EB(DK(w)))).
Es ist offensichtlich, dass/? vonder Echtheit der Unterschrift v o n / ( iiberzeugt ist. K ist der Einzige, der D~: kennt und somit der Einzige, der aus E~c(w) die Zahl w bestimmen kann, und so die Nachricht D~c(w) und somit auch Die Nachricht EK(w) kann niemand auger K entschltisseln und die Nachricht EB(DK(w)) kann niemand auger /? entschltisseln. Deswegen kann kein Lauscher F die Unterschrift (w, EB(D~c(w)))lernen und deren Echtheit tiberprtifen. Damit ist die Bedingung (i) erftillt. /? lernt in dieser Kommunikation die Unterschrift (w, EB(D~c(w))). Durch mehrere Auftr~ge von K kann/3 mehrere solche Paare kennenlernen. Das hilft ihm aber nicht dabei, sich als K auszugeben. Wenn man in dem ganzen Netz unter diesem Protokoll arbeitet, wird jeder Dritte C' zuerst E~c(u) an B, der sich als K ausgibt, schicken. Weil B kein D~: besitzt, kann er u nicht bestimmen. B kann hgchstens f/Jr alle gespeicherten Paare (w, EB(D~c(w))) den Wert E~c(w) berechnen und mit E~c(u) vergleichen. Falls E~c(w)= E~c(u)ist, hat B Gltick gehabt und kann sich als K ausgeben. Weil aber ~t zufS~llig als eine Zahl yon mehreren hundert Dezimalziffern gewS~hlt wurde, ist die Wahrscheinlichkeit des Erfolges yon B auch bei einer groBen Unterschriftensammlung kleiner als 1 durch die Anzahl der Protonen im bekannten Universum. Diese Wahrscheinlichkeit kann man noch geringer halten, indem man regelm~gig die Schltissel ~ndert.8
Aufgabe 9.4. Betrachten Sie das Authentizit/Rsproblem, bei dem man eine Unterschrift leistet, um sich als Person K auszugeben, und nicht um ein Dokument zu unterschreiben. In diesem Fall arbeitet das vorgestellte Protokoll mit groger Wahrscheinlichkeit zuverl~ssig. Bewirken Sie durch eine kleine Anderung dieses Protokolles, dass die Wahrscheinlichkeit, dass sich/3 als K gegeniiber einem Dritten ausgeben kann, gleich 0 ist. Dies muss unabh/~ngig davon gelten, wie grog die Liste der von B gesammelten Unterschriften yon K ist.
8Es gibt auch bessere Protokolle fiir digitale Unterschriften, deren Vorstellung aber den Rahmen dieses Lehrbuches sprengen wiirde. Die weiterfiihrende Literatur ist im Abschnitt 9.7 angegeben.
9.5 Interaktive Beweissysteme und Zero-Knowledge-Beweise
9.5
331
Interaktive Beweissysteme und Zero-Knowledge-Beweise
In Kapitel 6 haben wir gelernt, dass jede Sprache aus NP einen polynomiellen Verifizierer hat. Dies bedeutet, dass alle Aussagen x E L fiir ein L E NP einen Beweis polynomieller LS~nge in Ixl haben, und dass dieser Beweis in polynomieller Zeit verifiziert werden kann, d.h., dass beziiglich der Verifikation die Sprachen aus NP leicht sind. In Kapitel 8 gelangten wir zu der Einsicht, dass man die praktische LSsbarkeit mit randomisierten polynomiellen Berechnungen statt mit deterministischen polynomiellen Berechnungen verkniipfen sollte. So entsteht die Frage, f/ir welche Sprachen (Entscheidungsprobleme) man Beweise ,,praktisch" verifizieren kann. Um diese Fragestellung zu untersuchen, betrachten wir folgendes Kommunikationsprotokoll. Wit haben zwei Teilnehmer- den B e w e i s e r und den Verifizierer. Der Beweiset ist ein Algorithmus (eine TM), der keiner Komplexit~ttseinschr~nkung unterliegt. Der Verifizierer ist ein randomisierter polynomieller Algorithmus (eine randomisierte polynomielle TM). Fiir eine Sprache L erhalten beide Teilnehmet die gleiche Eingabe x. Der Verifizierer und der Beweiser diirfen kommunizieren, indem sie Nachrichten (WSrter) polynomieller L~nge in IxI austauschen. Der Beweiser mit unbeschr~nkter Berechnungsst~trke will den Verifizierer yon der Tatsache ,,x E L" tiberzeugen, und zu diesem Zweck darf er auch ltigen (falsche Aussagen produzieren). Die Aufgabe des Verifizierers ist es, Fragen an den Beweiser zu stellen, so dass er mit hoher Wahrscheinlichkeit bestimmen kann, ob der Beweiser einen Beweis von ,,x E L" hat oder nicht. Die Anzahl der Kommunikationsrunden ist hSchstens polynomiell in Ixl und die gesamte Berechnung des Verifizierers l~iuft in polynomieller Zeit. Der Verifizierer muss die Kommunikation mit der Entscheidung x E L oder x ~ L beenden. Dieses Kommunikationsprotokoll zwischen Beweiser und Verifizierer nennt man ein interaktives Beweissystem. D e f i n i t i o n 9.2. Sei L c E* fiir ein Alphabet E. W i t sagen, dass L ein int e r a k t i v e s B e w e i s s y s t e m b e s i t z t , falls ein Verifizierer (randomisierter polynomieller Algorithmus) V existiert, so dass fiir alle x E E* gilt: falls x E L, dann existiert ein Beweiser B, so dass V nach der Kommunikation mit B das Wort x mit der Wahrscheinlichkeit gr6fler als 52 akzeptiert, und { Wenn x C L, existiert ein Beweiser, der einen Beweis von ,,x C L " hat, und diesen Beweis kann der Verifizierer effizient iiberpriifen.}
9 Kommunikation und Kryptographie
332
(ii) falls x ~ L, dann endet fiir jeden Beweiser B die Kommunikation zwischen V und B mit dem Verwerfen von x mit einer Wahrscheinlichkeit 2 grSfler als 5" { Wenn x ~ L, gibt es keinen Beweis von ,,x E L " und so muss jede Strategie, den Verifizierer vom ungiiltigen ,,x E L " zu iiberzeugen, mit hoher Wahrscheinlichkeit entdeckt werden.} W i t definieren die Klasse IP dutch I P = {L [ L besitzt ein interaktives Beweissystem}. Die BeschrSmkung der Fehlerwahrscheinlichkeit in Definition 9.2 ist nicht entscheidend. Nach O(Ixl) unabhS~ngigen Wiederholungen der K o m m u n i k a t i o n eines interaktiven Beweissystems kann m a n die Fehlerwahrscheinlichkeit unter 2 - ~ driicken, und so ~tndert die Forderung der richtigen Ausgabe mit einer Wahrscheinlichkeit von mindestens 1 - 2-1xl nichts an der Definition der Klasse IP. Das folgende Resultat haben wir schon vorhergesagt. Lemma
9.1.
N P C IP.
Bowels. Weil NP = VP gilt, existiert fiir jede Sprache L c NP und jedes x E L ein Zeuge (Beweis, Zertifikat) c von ,,x E L" mit einer in Ixl polynomiellen L~tnge. Ein Beweiser, der c besitzt, schickt einfach c dem Verifizierer, der in polynomieller Zeit deterministisch mit Sicherheit die Tatsache ,,x E L" iiberpriift. Wenn x ~ L, existiert kein Beweis von ,,x E L" und so gibt es keine MSglichkeit, den deterministischen Verifizierer in polynomieller Zeit in Ixl von ,,x E L" zu tiberzeugen. D Die Frage ist jetzt, ob es auch interaktive Beweissysteme fiir Sprachen gibt, die auf3erhalb NP liegen. Wir betrachten folgendes Problem. Gegeben sind zwei Graphen G1 und G2, und m a n soll entscheiden, ob G1 und G2 isomorph 9 sind. Das Problem der Graphenisomorphie ist in NP, weil m a n den Isomorphismus nichtdeterministisch erraten und dann effizient deterministisch verifizieren kann. Von dem komplementgren Problem weir3 m a n nicht, ob es in NP liegt. Die Vermutung ist eher negativ, weil m a n nicht glaubt, dass das nichtdeterministische R a t e n fiir die Uberpr/ifung der Nichtexistenz eines Isomorphismus 9Zwei Graphen sind isomorph, wenn man die Knoten eines der Graphen so nummerieren kann, dass man einen Graph bekommt, der identisch mit dem anderen Graphen ist.
9.5 Interaktive Beweissystemeund Zero-Knowledge-Beweise
333
zwischen zwei gegebenen Graphen hilfreich sein k6nnte. Sei NICHTISO = {(G1, G2) [ G1 und G2 sind nicht isomorph}. Wir beschreiben jetzt ein interaktives Beweissystem fiir NICHTISO. Sei (G1, G2) eine Eingabe hierfiir. Der Verifizierer V iiberpriift zuerst, ob G1 und G2 die gleiche Anzahl yon Kanten und Knoten haben. Falls nicht, akzeptiert V die Eingabe (G1, G2) mit Sicherheit. Wenn G1 und G2 die gleiche Anzahl yon Kanten und Knoten haben, wS~hlt V zufgllig ein i E { 1, 2} und eine Permutation (jl, j2,..-, jn) von (1, 2 , . . . , n), wobei n die anzahl der Knoten ist, beide mit uniformer Wahrscheinlichkeitsverteilung. Dann nimmt V den Graphen Gi und permutiert seine Knoten entsprechend (j,, j 2 , . . . , j~). Den resultierenden Graphen Gi(jl, j2,..., jn) schickt V zu dem Beweiser B mit der Aufforderung zu deklarieren, ob Gi(jl,j2,... ,jn) isomorph zu G1 oder zu G2 ist. Wenn G1 und G2 nicht isomorph sind, kann B erkennen (berechnen), dass Gi isomorph zu Gi(jl, j2,..., j~) ist und schickt die richtige Antwort i zu V. Falls aber G, und G2 isomorph sind, hat B keine M6glichkeit auszurechnen, welche zufgllige Zahl i der Verifizierer gezogen hat. Dem Beweiser bleibt nicht anderes iibrig, als ein j C {1, 2} zu raten und an V zu schicken. Die Wahrscheinlichkeit, dass 1 Falls j -/= i verwirft V die Eingabe. Falls j - i, wiederholt V j - i i s t 5" die Kommunikation mit einem neuen zufgllig gewghlten i und mit einer neuen zufgllig gewghlten Permutation. Wenn danach der Beweiser wieder die richtige Antwort gibt, dann akzeptiert V die Eingabe (G1, G2). Wenn die zweite Antwort falsch ist, dann verwirft V die Eingabe. Wir zeigen jetzt, dass das beschriebene Protokoll ein interaktives Beweissystern fiir NICHTISO ist. Falls (G1, G2) E NICHTISO, existiert ein Beweiser, der zwischen G1 und G2 unterscheiden kann und deswegen gibt er immer die richtige Antwort. Daher akzeptiert V die Eingabe (G1, G2) mit Sicherheit. Falls (G,, G2) r NICHTISO, kann kein Beweiser zwischen G, und G2 beziiglich Isomorphie unterscheiden. Die Wahrscheinlichkeit, dass der Beweiser trotzdem 1 1 - a. 1 Damit ist die Fehlerwahrscheinzweimal die richtige Antwort rS~t, ist 7.7 1 lichkeit in diesem Fall a. Wenn der Verifizierer k Anfragen an B stellen wiirde, wiirde sich die Fehlerwahrscheinlichkeit auf 2 -k reduzieren. Wie stark das randomisierte Verifizieren wirklich ist, zeigt das folgende Resultat.
S a t z 9.3.* S a t z v o n S h a m i r
IP = PSPACE.
334
9 Kommunikation und Kryptographie
Das Bemerkenswerte an diesem Resultat ist, dass die Aussagen ,,x E L " f/Jr die Sprachen L E P S P A C E exponentiell lange Beweise haben diirfen, die m a n wegen ihrer L/~nge nicht vollst/~ndig iibertragen und lesen kann, und t r o t z d e m kann m a n deren Existenz in polynomieller Zeit randomisiert tiberpr~fen. 1~ Als letztes m6chten wir die Zero-Knowledge-Beweissysteme betrachten, die kryptographische Anwendungen haben. Hier verzichten wir auf die formale Definition. Die Idee besteht in der zusgtzlichen Forderung an das Beweissystem, dass der Verifizierer in der K o m m u n i k a t i o n mit dem Beweiser nichts (kein einziges Bit) lernt auger dem, was er sich auch alleine ohne Kommunikation mit dem Beweiser ausrechnen kann 11. Dies bedeutet unter anderem, dass V kein Bit des Beweises, in dessert Besitz sich der Beweiser befindet, erfghrt. Zero-Knowledge-Beweissysteme sind von grofier praktischer Bedeutung. Eine mSgliche Anwendung liegt z.B. in folgender Situation. Wir wollen eine Zugangskontrolle ftir einen Rechner konstruieren, die nur die Benutzung mit gtiltigem Passwort zul/~sst, aber dabei die Anonymitgt des Nutzers nicht verletzt. Dies bedeutet, dass der Benutzer in die Rolle des Beweisers schltipft und versucht, die Zugangskontrolle (den Verifizierer) davon zu iiberzeugen, dass er im Besitz eines Passwortes ist, ohne ein einziges Bit dieses Passwortes zu verraten. Eine andere Anwendung ftir Zero-Knowledge-Beweissysteme ist die Verwendung privater Informationen einer anderen Person zur Berechnung, ohne die Daten dabei zu lernen. Stellen wir uns vor, dass der Verifizierer einen Funktionswert f ( x , y) berechnen will und dabei nur den Wert y kennt. Der Beweiser kennt x und ist bereit, dem Verifizierer zu helfen, aber nur unter der Bedingung, dass der Verifizierer kein einziges Bit yon x erfghrt. Fiir welche Funktionen und Entscheidungsprobleme es Zero-Knowledge-Beweissysteme gibt, ist eine spannende Frage. Es ist ftir uns m a n c h m a l iiberraschend, wie viele Problemstellungen m a n mit den Zero-Knowledge Beweissystemen bewgltigen kann. Zum Beispiel kann m a n beweisen, dass jede Sprache aus NP ein Zero-KnowledgeBeweissystem hat. Wegen des Schwierigkeitsgrades und der umfangreichen ben6tigten Vorkenntnisse verzichten wir auf die Beweise und stellen nur ein Zero-Knowledge-Beweissystem fiir den Graphenisomorphismus vor. 1~ Tatsache L c PSPACE besagt nur, dass die Beweise von ,,x c L" eine polynomielle ,,Breite" haben, wobei die Breite eines Beweises als die Ltinge der ltingsten Aussagen in einer Folge gquivalenter Aussagen betrachtet wird. 11Dieses ,,nichts lernen" formalisiert man so, dass man die gesamte Kommunikation zwischen V und B als einen Wahrscheinlichkeitsraum betrachtet, wobei die Wahrscheinlichkeitsverteilung durch die zuftilligen Entscheidungen von V bestimmt wird. Ein interaktives Beweissystem ist dann Zero-Knowledge, wenn eine randomisierte polynomielle TM M existiert, die diese Kommunikation mit der gleichen Wahrscheinlichkeitsverteilung generiert.
9.5 Interaktive Beweissysteme und Zero-Knowledge-Beweise
335
Eingabe: (G1,G2) f/Jr B und V. Sei n die Anzahl der Knoten in G1 und G2. B: Der Beweiser w~thlt zuf~tllig ein i E {1, 2} und eine Permutation 7r = (jl, j 2 , . . . , jn) yon (1, 2 , . . . , n). Danach wendet er 7c auf G~ an und schickt den resultierenden Graphen Gi(Tr) an den Verifizierer. V: Der Verifizierer wS~hlt zufS~llig ein j E { 1, 2} und schickt es an den Beweiser. Dies entspricht der Anforderung, einen Beweis fiir den Isomorphismus yon Gi(zr) und Gj zu liefern. B: Falls G1 und G2 isomorph sind, bestimmt der Beweiser den Isomorphismus ~, so dass Gj(~) = Gi(Tr) und schickt ~ an den Verifizierer. Falls G1 und G2 nicht isomorph sind und i = j, dann schickt der Beweiser die Permutation ~ = 7r. Sonst (wenn kein Isomorphismus zwischen Gj und G~(Tr) existiert) schickt der Beweiser ebenfalls ~ = 7r. V: Der Verifizierer akzeptiert (G1, G2) genau dann, w e n n G j ( 5 ) = Gi(71-). Analysieren wir zuerst, ob dieses Protokoll ein interaktives Beweissystem ist. Falls G1 und G2 isomorph sind, kann der Beweiser immer eine Permutation 5 finden, so dass Gj(~) = G~(Tr) gilt. Damit akzeptiert V die Eingabe (G1, G2) mit Sicherheit (d.h. mit der Fehlerwahrscheinlichkeit 0). Falls G1 und G2 nicht isomorph sind, kann B ein 5 mit Gj(5) = Gi(Tc) nur dann schicken, wenn i = j. Die Wahrscheinlichkeit, dass i = j fiir zwei zufS~llige Zahlen i,j E {1,2}, ist genau ~.1 Das k-malige Wiederholen dieses Protokolls, in dem V nur akzeptiert wenn er k-real die richtige Antwort bekommt, driickt die Fehlerwahrscheinlichkeit auf 2 -k. Weil wir die formale Definition yon Zero-Knowledge-Beweissystemen nicht gegeben haben, k6nnen wir auch keinen formalen Beweis dieser Eigenschaft eines Beweissystems fiihren. Trotzdem k6nnen wir intuitiv gut verstehen, warum dieses Protokoll ein Zero-Knowledge-Beweissystem ist. 0 h e r den Isomorphismus zwischen G1 und G2 (sofern einer existiert) wird in der Kommunikation nichts verraten. Die erste Kommunikationsnachricht Gi(~r) kann man als ein Zufallsereignis betrachten, dass durch die zuf~tllige Wahl von i und ~r bestimmt wird. Die zweite Nachricht j ist auch eine Zufallszahl und die Permutation 5 ist ebenfalls durch die zufS~llig ausgesuchte Permutation 7r bestimmt (5 ist entweder direkt 7r oder eine Anwendung der zufS~lligen Permutation 7r auf den Isomorphismus zwischen G1 und G2). Damit bildet fiir ein festes (G1, G2) die Menge aller mSglichen Kommunikationen (G~(Tr), j, 5) zwischen B und V einen Wahrscheinlichkeitsraum. Man kann zeigen, dass der Verifizierer die Tripel (G~(Tc),j, 5) auch alleine mit gleicher Wahrscheinlichkeitsverteilung erzeugen kann. Daher kann der Verifizierer die Arbeit des Beweisers simulieren und somit kann er aus der Kommunikation nichts anderes erfahren, als das, was er auch alleine berechnen kann.
9 Kommunikation und Kryptographie
336
9.6
Entwurf eines Kommunikationsnetzes
Die Kommunikation zwischen unterschiedlichen Objekten wie Menschen, Rechnern, Prozessoren eines Parallelrechners usw. kann man durch unterschiedliche Verbindungsarten realisieren. Jede Technologie stellt andere MSglichkeiten und andere Einschrgnkungen dar und deswegen muss man sich bei dem Entwurf von Telegraphennetzen, festen und drahtlosen Telefonnetzen, optischen Glasfasernetzen, parallelen Rechnern usw. jeweils mit anderen Problemen beschS~ftigen. Eine Vielfalt yon Problemstellungen tritt auch bei dem Entwurf yon Kommunikationsstrategien in gegebenen Netzen auf. Diese Vielfalt ist zu grog, um sie systematisch in einem Abschnitt darzustellen. Deswegen ist unsere Zielsetzung hier viel bescheidener. Wir wollen die Art der Problemstellung anhand eines beispielhaften Entwurfes eines festen Verbindungsnetzes illustrieren. Betrachten wir die folgende Aufgabenstellung. Wir haben 2n Teilnehmer XO~
Xl
~ 9 9 9 ~ Xn-1
~ YO~ Yl
, 9 9 9 , Yn-1
die wir als Knoten eines Netzes darstellen. Wir sollen zwischen den x-Teilnehmern x0, X l , . . . , X~_l und den y-Teilnehmern Y0, Y l , . . . , Y~-I ein Netz bauen, so dass jederzeit jeder der x-Teilnehmer eine Verbindung fiir ein GesprS~ch mit einem ausgew~hlten y-Teilnehmer bekommen kann. Das Netz betrachtet man als einen Graphen G = (V, E), x0, X l , . . . , X~_l, Y0, Y l , . . . , Y~-I E V und die Bereitstellung einer Verbindung yon xi zu yj bedeutet, einen Weg xi, V l , . . . , v~, yj zwischen xi und yj in G zu finden, bei dem keine Kante dieses Weges fiir GesprS~che zwischen anderen Paaren yon Knoten benutzt wird. Dies bedeutet, dass jede Kante zu jedem Zeitpunkt nur ausschliefilich fiir ein einziges Gespr~ch benutzt werden darf. Die einfachste LSsung wiirde aus jedem Knoten xi eine Verbindung zu jedem y-Teilnehmer ziehen. Dadurch bekommt man einen vollstgndigen bipartiten Graphen, wie fiir n = 4 in Fig. 9.2 dargestellt. Diese LSsung ist aber praktisch nicht realisierbar. Erstens hat man n 2 Kanten fiir 2n Teilnehmer, was fiir n = 10000 die Anzahl der Verbindungsdr~hte auf 100 Millionen wachsen l~sst. Auger den hohen Herstellungskosten und der hohen Kabelzahl, die das Netz uniibersichtlich erscheinen lassen, kann man so ein Netz auch aus technologischen Griinden nicht realisieren. Die Anzahl der zu einem Knoten inzidenten Kanten (der Knotengrad) muss eine Konstante sein, d.h. darf nicht mit der Anzahl der Teilnehmer wachsen. Formulieren wir jetzt genauer die Anforderungen an eine mSgliche praktikable LSsung. Jeder Knoten des Netzes darf hSchstens den Grad 4 haben, die
9.6 Entwurf eines Kommunikationsnetzes X0
Xl
Yo
Yl
337 X2
X3
Y2
Y3
Fig. 9.2
LO(v) ~ LO(v) ~
LU(v)
RO(v)
~ v in LLRR
RU(v)
v in
LU(v)
LRRL
RU(v)
(b) Fig. 9.3 Teilnehmerknoten haben h6chstens den Grad 2. Im Folgenden nennen wir die Knoten, die nicht den Teilnehmern entsprechen, die Schaltungsknoten. Die Schaltungsknoten sind von der S t r u k t u r her alle gleich (Fig 9.3) und sehr einfach. Jeder Schaltungsknoten v hat genau 4 inzidente K a n t e n LO(v), LU(v), I~O(v) und RU(v). Der Knoten v kann in einem yon zwei Zustgnden LL_RR oder LRRL sein. Wenn v in dem LLRR Zustand ist, bedeutet das, dass die K a n t e n LO(v) und LU(v) miteinander verbunden sind, und auch die Kanten I~O(v) und RU(v) (Fig 9.3(a)). Wenn v in dem Zustand LI~_RList, liegen LO(v) und RU(v) auf einem gemeinsamen Kommunikationsweg und _RO(v) verkn/ipft mit LU(v) ist ein Teil eines anderen Kommunikationsweges (Fig 9.3(b)). Ein x-Teilnehmerknoten u hat nur zwei K a n t e n L(u) und R(u) und er kann sich alleine entscheiden, welche yon diesen beiden er fiir die K o m m u nikation benutzen will. Damit hat u auch zwei Zustgnde L und _R beziiglich der Kante, die er zur K o m m u n i k a t i o n benutzt. Die erlaubten Kommunikationsanforderungen an das Netz sind durch eine P e r m u t a t i o n (i0, il,...,/n-i) von (0, 1 , . . . , n - 1) gegeben. Eine Kommunikationsaufgabe (i0, i l , . . . , i~-1)
338
9 Kommunikation und Kryptographie
bedeutet, dass der x-Teilnehmer xj mit dem y-Teilnehmer Yi~ sprechen will f~r j = 0, 1 , . . . , n - 1. Wir fordern, dass man ftir jede der n! Permutationen ( i 0 , . . . , in-l) eine solche Zustandszuordnung der Schaltungsknoten finden kann, dass die n Gesprache (x0, Y~0), (Xl, Y~I),--., (X~-l, Y~-I) simultan stattfinden k6nnen. Ein Netz mit 2n Teilnehmern, das alle Permutationen yon (0, 1 , . . . , n - 1) realisieren kann, nennt man n - P e r m u t a t i o n s n e t z w e r k . Im Prinzip bedeutet dies, dass eine Festlegung von n kantendisjunkten Wegen zwischen xj und yi~ ffir j = 0, 1 , . . . , n - 1 mSglich ist. Wir bemerken, dass die Vereinigung von Knoten xi und yi zu einem Knoten fiir i = 0, 1 , . . . , n - 1 zu einem Telefonnetz fiihrt, in dem beliebige Paare yon Teilnehmern kommunizieren kSnnen. Als die Kosten eines Permutationsnetzwerkes betrachten wir die Anzahl der Schaltungsknoten 12 und diese Kosten wollen wir natiirlich minimieren. Der zweite Parameter, den wir auch in dem Entwurf minimieren wollen, ist die LS~nge des 15~ngsten Pfades zwischen einem x-Teilnehmer und einem y-Teilnehmer. Sch6n wS~re es auch, eine regelmS~t3ige, iiberschaubare Verbindungsstruktur zu erzeugen, insbesondere w/inschenswert wS~re die sogenannte ModularitS~t. ModularitS~t bedeutet, dass man die Netze fiir 2n Teilnehmer als Bausteine fiir die Herstellung yon Netzen mit mehr (z.B. mit 4n) Teilnehmern benutzen kann. Die ModularitS~t verringert offensichtlich die Kosten zukiinftiger Netzwerkerweiterungen und ist damit auch von grot3er Bedeutung. Das Netz in Fig 9.4 stellt eine preiswerte LSsung fiir die acht Teilnehmer Xo, Xl,X2, X3, Yo, yl, y2, Y3 dar. Die Anzahl der Schaltungsknoten ist nur 4 und alle Kommunikationswege zwischen x-Teilnehmern und y-Teilnehmern haben genau die Lgnge 2. Die Zustgnde der Knoten des 4-Permutationsnetzwerkes in Fig. 9.4 bestimmen die Realisierung der Permutation (3, 0, 2, 1). Aufgabe 9.5. Beweisen Sie, dass das Netz in Fig. 9.4 eine LSsung unseres Entwurfproblems darstellt. Unsere Zielsetzung ist jetzt, ein asymptotisch optimales Netzwerk ftir diese Kommunikationsaufgabe zu entwerfen. Zuerst zeigen wir, dass jedes Netz fiir 2n Teilnehmer mindestens gt(n log n) Schaltungsknoten haben muss. S a t z 9.4. Sei n E I N - {0}. Jedes n-Permutationsnetzwerk hat mindestens f~(n log n) Schaltungsknoten. Beweis. Sei n E I N - { 0 } und sei Net~ ein n-Permutationsnetzwerk. Wenn man in Net~ eine Permutation realisieren will, muss man eine passende Zuordnung
12und damit auch die Anzahl der Kanten (Verbindungsdr~hte)
9.6 Entwurf eines Kommunikationsnetzes XO
339
Xl
(0,00)1 I
X2
X3
1 I
(1,oo/I I (2, oo) I
I Yo
(2, Ol) I
(2, lO) I Yl
I Y2
(2,11) I Y3
I
Fig. 9.4 der Z u s t g n d e fiir die K n o t e n des Netzes finden. Zwei unterschiedliche P e r m u t a tionen erfordern offensichtlich unterschiedliche Z u s t a n d s z u o r d n u n g e n . D a m i t muss die Anzahl der m6glichen Z u s t a n d s z u o r d n u n g e n in Net~ mindestens n!, also die Anzahl der P e r m u t a t i o n e n von n Elementen, sein. Sei m die Anzahl der S c h a l t u n g s k n o t e n in Net~. Die Anzahl unterschiedlicher Z u s t a n d s z u o r d n u n g e n in Net~ ist genau 2 ~. 2 "~. D a m i t ist
2~ 92~
_> n!
n!
(d.h. 2 ~ _> 2-~),
u n d somit13 gilt
.~ > ~og~(~!)
~ > ~ . ~og ~
~ . (1~ r + 1) ~ a ( ~ ~og~).
Aufgabe 9.6. Beweisen Sie, dass jedes n-Permutationsnetzwerk mindestens einen Weg der L~nge log 2 n zwischen x-Teilnehmern und y-Teilnehmern beinhalten muss. U m ein n - P e r m u t a t i o n s n e t z w e r k einer Gr6fie in O(nlogn) zu entwerfen, beginnen wir mit s o g e n a n n t e n r - d i m e n s i o n a l e n S c h m e t t e r l i n g e n 14 But~ fiir jedes r E IN. But~ - (V~, E~), wobei 13Entsprechend der Stirling schen Formel n] ~ 7nn" 2~--~. 14butterfly in der englischsprachigen Literatur
9 Kommunikation und Kryptographie
340
{(i, w) l i E {o, 1 , . . . , r}, w E {0, 1}~}, und { { (i, w), (i + 1, w) } I i
{o, 1 , . . . ,
r - 1}} U
{{(i, zay), (i + 1, zby)} I i E {0, 1 , . . . , r - 1}, z E {0, 1}i, a, b c {0, 1},a-~ b, y c {0, 1}~-i-1}. Der 2-dimensionale Schmetterling But2 ist in Fig. 9.4 dargestellt. Eine anschauliche Darstellung yon But~ legt die (r + 1). 2 ~ Knoten von But~ als eine Matrix von r + 1 Zeilen und 2 ~ Spalten an. Auf der Position (i, j) der Matrix liegt genau der Knoten (i, w ) m i t N u m m e r ( w ) - j. Eine Kante liegt zwischen (i, x) und (i + 1, y) nur dann wenn entweder x - y gilt (die vertikMen Kanten, die in jeder Spalte yon oben nach unten laufen), oder wenn sich x und y nur i m / - t e n Bit unterscheiden (Fig. 9.4). Wenn man f/Jr j - 0, 1 , . . . , 2 ~ - 1 dem Teilnehmer xj den Knoten (0, w) mit N u m m e r ( w ) - j und dem Teilnehmer yj den Knoten (r, w') mit Nummer(w') = j zuordnet, dann enthS~lt But~ fiir jedes Paar (xa, y~), d, c E {0, 1 , . . . , 2 ~ - 1}, folgenden Weg zwischen xa und y~. Seien
Nummer(aoa~... a~_~) - d und Nummer(bob~... b~_~) - c ffir irgendwelche ak, bk E {0, 1} fiir k = 0, 1 , . . . , r - 1. Damit entspricht der Knoten (0, aoa~...a~_~) den Teilnehmer Zd und der Knoten (r, bobs.., b~_~) entspricht dem Teilnehmer y~. Wenn ao = bo gilt, startet der Weg mit der vertikalen Kante { (0, aoa~.., a~_~), (1, aoa~.., a~_~)}. Wenn ao -r bo, dann nimmt man die Kante {(0, aoal.., a~_l), (1, boal.., a~_l)}. Damit erreicht man nach dem ersten Zug in beiden F~tllen den Knoten (1, boal . . . a t - l ) . Im Allgemeinen erreicht der Weg von (0, a~... a~_~) nach (r, bobs.., b~_~) nach k Kantenziigen den Knoten (k, bob1.., bk-lakak+lak+2.., a~) und wird mit der Kante
{(It, b o b 1 . . ,
bk_lakak+l
. . . ar_l)
, (It -Jr- 1, b o b 1 . . ,
bkak+l
. . .
at-l)}
fort gesetzt. Damit sorgt die s-te Kante fiir die Umstellung des s-ten Bits a~ auf das s-te Zielbit b~. In But~ kann man also jeden x-Teilnehmer mit einem beliebigen y-Teilnehmer verbinden. Leider reicht das Netzwerk nicht aus, um eine beliebige Permutation zu reMisieren. Uber den Knoten
(L J,bobs..,
bL
/2jaL
/2j§
. . .
a _1)
9.6 Entwurf eines Kommunikationsnetzes
341
ftihren in unserer Strategie alle Wege mit einem Zielknoten aus der Menge {(r, bob1.., bLr/2JeLr/2J+l
.
.
.
er-1)
ej E {0,1} J --
Jr 1 , . . . ,
1}
und mit einem S t a r t k n o t e n aus der Menge {(0, for1.., fk~/2JaL~/2J+l...a~-i I
~ {0, 1} ftir i - o, 1 , . . . , L~J}.
Es gibt bis zu 2~ -1 solcher Wege, aber wir diirfen tiber einen K n o t e n h6chstens zwei Wege ftihren. Wir nutzen jetzt die r-dimensionalen Schmetterlinge als Bausteine zum Entwurf eines 2~-Permutationsnetzes, das m a n B e n e g - N e t z w e r k nennt. Das rdimensionale Bene~-Netzwerk Benes~ erhS~lt man, wenn m a n zwei r-dimensionale B u G - N e t z w e r k e A und B zusammenfiigt, indem m a n die entsprechenden K n o t e n der r - t e n (letzten) Zeilen yon A und B m i t e i n a n d e r verschmilzt. Fig. 9.5 zeigt Benes3. Wir sehen, dass das Benes~ 2r + 1 Zeilen hat, die ersten r + 1 Zeilen bilden ein B u G - N e t z und die letzten r + 1 Zeilen bilden auch ein B n G - N e t z . Fig. 9.7 zeigt eine rekursive Definition des Benes~-Netzes aus zwei
Benes~_l-Netzen. Aufgabe 9.7. Geben Sie fiir jedes r c I N - {0} eine formale Beschreibung von Benes~ als einen Graphen an. S a t z 9.5. Fiir jedes r E IN
{0} ist Benes~ ein 2~-Permutationsnetzwerk.
Beweis. Wir zeigen, dass m a n ftir jede P e r m u t a t i o n ( i 0 , . . . , i2~-1) 2 ~ Wege yon xj nach yi~ ftir j = 0, 1 , . . . 2 ~ - 1 so w~hlen kann, dass keine K a n t e auf m e h r als einem Weg liegt und jeder K n o t e n auf genau einem Weg liegt 15. D a m i t ist offensichtlich, dass eine Z u s t a n d s z u o r d n u n g fiir die K n o t e n existiert, die die K o m m u n i k a t i o n realisiert, die durch die P e r m u t a t i o n ( i 0 , . . . , i2~-1) b e s t i m m t ist. Wir beweisen diese Aussage mit I n d u k t i o n beziiglich r. (i)
Sei r = 1. D a n n ist (Fig. 9.6) Benesl offensichtlich ein 2 - P e r m u t a t i o n s n e t z w e r k . 16 (ii) Sei r > 2. Wir setzen voraus, dass fiir jede P e r m u t a t i o n yon (0, 1 , . . . , 2 ~-1 - 1) im 15Solche Gruppen von Wegen nennt man paarweise knotendisjunkte Wege. 16Bemerke, dass fiir r = 1 sogar BuG hinreichend ist.
342
9 Kommunikation und Kryptographie XO
Xl
X2
X3
X4
X5
X6
X7
Yo
Yl
Y2
Y3
Y4
Y5
Y6
Y7
Fig. 9.5 Xo
(o,o)
(o,1)
(i,0)
(1,1)
(o, o) I I YO Fig. 9.6
Xl
I I (2,1) Yl
9.6 Entwurf eines Kommunikationsnetzes
343
Benes~_l-Netz 2 r - 1 knotendisjunkte Wege zwischen den 2 r - 1 x-Teilnehmern und den 2 r - 1 y-Teilnehmern existieren. Wir k6nnen jetzt Benes~ als ein Netz ansehen (Fig. 9.7), das aus zwei Benes~_l-Netzen A und B und aus zwei ,,ersten Zeilen" yon But~ besteht. XO
Xl
X2r-l--1
X2r-1
X2r-ld-1
~ e~teS r_ 1
~ e~teS r_ 1
A
t3
YO
Yl
y2r-1--1
Y2 r-1
y2r-1+1
X2r-1
II Y2 r-1
Fig. 9.7 Dank der Induktionsvoraussetzung ist es hinreichend, eine solche Kommunikationsstrategie zu finden, dass genau die HSAfte 17 der Wege fiber den Netzteil Benes~_l A gehen wird, und dass die Kommunikationsaufgaben fiir A und B genau zwei P e r m u t a t i o n e n yon (0, 1 , . . . , 2 r - 1 -- 1) entsprechen. Um dieses zu garantieren, reicht es aus, die Wege in den ersten und letzten Zwischenzeilen yon Benes~ so zu wS~hlen, dass kein Knoten v in den ersten Zeilen yon A und B (also in der zweiten Zeile yon BeheSt) auf zwei Wegen liegt (nur eine Kante zwischen v und der 0-ten Zeile yon Benes~ daft benutzt werden), und dass kein Knoten u aus der letzten Zeile yon A und B auf zwei Wegen liegt (nur eine der K a n t e n yon u zu den y-Teilnehmern daft benutzt werden). Formal kann m a n diese Forderung wie folgt ausdriicken: (1)
Fiir alle i E {0, 1 , . . . , 2 ~-1} miissen die zwei Wege von xi und xi+2~-1 unterschiedliche Benes~_l-Netze benutzen (ein Weg muss fiber A und ein Weg muss fiber B gef/ihrt werden (Fig. 9.8(a))).
17also 2~- 1 viele
344
9 Kommunikation und Kryptographie (2) Fiir alle j E {0, 1 , . . . , jr--l} milSSeI1 die zwei Wege nach yj und yj+2~-i fiber unterschiedliche Benes,_l-Netze gefiihrt werden (Fig.
9.8(a)).
Xi
I
A
P
~o t?
Xi+2r-1
XO
Yj+2 r-1
0
Yi2r-1 Y i o + 2 ~-1 m o d 2~
X2r-1 Yi2r- 1 +2 r-
1
Yio
(b) Fig. 9.8 Eine transponierte Darstellung des Benes~-Netzes. Im Folgenden zeigen wir, dass man die Wege einfach einen nach dem anderen bestimmen kann. Sei (i0, il,..-,i2~-1) eine beliebige Permutation yon (0, 1 , . . . , 2~ - 1). Wir nehmen jetzt die Paare (Xo, Y~o) und (x2~-1, Y~-I) und legen den Weg von Xo nach Yio fiber A und den Weg von x2~-1 nach yi~_l fiber B (Fig. 9.8(b)). Falls l i 2 ~ - 1 - / o l - 2~-1, entstehen dabei keine Nachfolgerforderungen. Falls I @ - 1 - iol r 2~-~ miissen wir wegen (2) den Weg
9.6 Entwurf eines Kommunikationsnetzes
345
Yio+2r-1 mod 2r fiber B und den Weg nach Yi2r_l+2r-1 mod 2r fiber A leiten (Fig. 9.8(b)). Dadurch k6nnen wieder Anforderungen an die Fiihrung von zwei Wegen aus den Knoten Xq+2~-i mod 2~ und x~+2~-1 mod 2~ ftir nach
iq -- (i2.-1 + 2 r - l ) r o o d 2 r o n d is -
(io + 2 r - l ) r o o d 2 r
entstehen. 18 Wir sehen, dass die Fortsetzung dieser Strategie immer in h6chstens zwei erfiillbaren Anforderungen auf die Fiihrung von zwei Wegen resultiert. Ein Weg muss fiber A und ein Weg muss fiber B gefiihrt werden. Damit kann die vorgestellte Strategie erfolgreich die Wege zur Realisierung der gegebenen P e r m u t a t i o n bestimmen. D A u f g a b e 9.8. Bestimmen Sie die Wege in B e n e s 3 , die die Permutationen (7 2 1 3 0 5 64), (0 1 2 3 7 6 5 4) und (0 71 6 2 5 3 4) realisieren.
Mit dem Satz 9.5 haben wir unsere Zielsetzung erfiillt. Benes~ ist ein 2 ~Permutationsnetzwerk mit insgesamt (2r + 1). 2 ~ Knoten und r . 2 ~+2 Kanten. 19 Zus~tzlich haben die Bene~-Netzwerke eine regelm~fiige Struktur mit hohem Grad an ModularitS~t (Fig. 9.7). Die Entfernung zwischen beliebigen x-Teilnehmern und einem y-Teilnehmer betrS~gt genau 2r und ist daher logarithmisch in der Anzahl der Teilnehmer. A u f g a b e 9.9.* Sei G = (V, E) ein Graph. Ein b a l a n c i e r t e r S c h n i t t von G i s t ein Paar (V1, V2), so dass (i) V = VI O V2, VI A V2 = O, und
(ii) -1_< ]V1]-]V2]_<1. Die Kosten eines Schnittes (V1, V2) sind
co t(v1, v=) : IE n {{v,
I v c pl,
c p=}l,
d.h. die Anzahl der Kanten zwischen V1 und V2. Die B i s e k t i o n s b r e i t e v o n G misst die Kosten des minimalen balancierten Schnittes. Im Netzwerkdesign wird der Entwurf yon Netzen 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 Kommunikationskan~le zwischen diesen Teilen vorhanden sind. Beweisen Sie, dass But~ und B e n e s ~ eine Bisektionsbreite in ft(2 ~) haben. 2~ 18Falls I((q ~- 2r--1) mod 2r) - ((s + 2 r - l ) mod 2r)l 7~ 2 r-1. 19Damit ist die Anzahl der Schaltungsknoten in O ( n . log 2 n), wenn n der Anzahl der Teilnehmer entspricht. 2~ Bisektionsbreite ist ungefiihr so hoch wie die Anzahl der Teilnehmer, oder anders ausgedriickt, ist die Bisektionsbreite in f ~ ( ~ ) , wobei m die Anzahl der Knoten ist.
9 Kommunikationund Kryptographie
346
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 Verschlfisselungsverfahren sowie das Entschliisselungsverfahren, und somit ist der Schliissel das gemeinsame Geheimnis yon Sender und EmpfS~nger. Public-KeyKryptosysteme arbeiten mit einem 5ffentlichen Verschliisselungs-Schliissel, weil dessen Kenntnis keine Hilfe zur Entschliisselung darstellt. Die Public-KeyKryptosysteme basieren auf der Idee der Einweg-Funktionen. Eine EinwegFunktion ist effzient berechenbar, aber die zugehSrige inverse Funktion ist ohne zusS~tzliches Wissen (ein Geheimnis, das nur der EmpfS~nger besitzt) nicht etfizient berechenbar. Kandidaten fiir Einweg-Funktionen sind die Multiplikation, 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 ZeroKnowledge-Beweissysteme. Die Qualit~t yon Verbindungsnetzen wird auch an der Menge der zu tibertragenden Daten oder der Menge von realisierten Kommunikationsanforderungen 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 interaktiven 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 empfehlen wir wgrmstens Dells und Knebl [DK 02] und Salomaa [Sal 96]. Ausfiihrli-
9.7 Zusammenfassung
347
chere A u s k u n f t fiber i n t e r a k t i v e S y s t e m e k a n n m a n in L e h r b i i c h e r n von Bovet u n d Crescenzi [BC 94] u n d Sipser [Sip 97] finden. Ausftihrliche I n f o r m a t i o n e n tiber K o m m u n i k a t i o n s p r o b l e m e in N e t z e n k a n n m a n i m h e r v o r r a g e n d e n u n d u m f a n g r e i c h e n L e h r b u c h yon L e i g h t o n [Lei 92] u n d in d e m U b e r s i c h t s a r t i k e l von Hromkovi~: Klasing~ M o n i e n u n d Peine [ H K M P 96] finden. ..
Kontrollaufgaben 1. Was ist ein Kryptosystem? Wie kann man den Grad seiner Sicherheit messen? 2. Erkl~ren Sie das Konzept der Einweg-Funktionen. Welche Kandidaten flit EinwegFunktionen kennen Sie? 3. Erkl~ren Sie~ wie man ein RSA baut und beweisen Sie die Eindeutigkeit der RSAKodierung. 4. Wie kSnnen Public-Key-Kryptosysteme angewendet werden~ um Protokolle flit digitale 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 Beweissysteme 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. .
9
Ich h a b e viel von m e i n e m L e h r e r gelernt, 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
J.:
,.X.__J
10
Grammatiken und Chomsky-Hierarchie
10.1
Zielsetzung
Das Thema Grammatiken gehSrt in die Theorie der formalen Sprachen, die eines der 5Jtesten Gebiete der Informatik ist. Der Begriff "Grammatik" liegt in dem Schnittpunkt zwischen Linguistik und Informatik und wurde sogar auch in der Evolutionsbiologie zur Wachstumsmodellierung eingesetzt. Das Konzept von Grammatiken ist einfach. Unsere bisherigen Berechnungsmodelle wie endliche Automaten und Turingmaschinen haben wir als Akzeptoren von Sprachen betrachtet. Diese Modelle sind eine MSglichkeit, unendliche Objekte wie Sprachen (oder Mengen) auf endliche Weise zu beschreiben. Eine Maschine A, die eine Sprache L = L(A) akzeptiert, ist eine eindeutige endlithe Representation der Sprache L. Grammatiken bieten einen anderen Weg, unendliche Sprachen auf endliche Weise eindeutig zu beschreiben. Grammatiken sind Mechanismen zur Generierung (Erzeugung) von WSrtern. Fiir die Menge L aller W6rter, die ein solcher Mechanismus erzeugt, ist der Mechanismus eine Beschreibung yon L. Fiir die Linguisten ist diese Art yon Mechanismus deswegen yon grofier Bedeutung, weil sie auf diese Weise versuchen, die Mengen yon syntaktisch (grammatisch) korrekten Texten in konkreten natiirlichert Sprachen zu beschreiben, und auf diese Weise ein formales Mittel fiir die Untersuchung und die automatische Ubersetzung yon natiirlichen Sprachert 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 Programmen 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~ttigung 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 Generierungsmechanismus 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 sogenannten regul~tren Grammatiken. Wir zeigen~ dass diese Grammatiken genau die Klasse der regul~tren Sprachen generieren und somit in der Beschreibungsst~trke ~quivalent zu den endlichen Automaten sind. Zusammen mit dem Erlernen des Entwurfs von regul~tren Grammatiken sind es die Hauptzielsetzungen dieses Abschnittes. Abschnitt 10.4 ist von zentraler Bedeutung fiir dieses Kapitel. Die Zielsetzung ist zu zeigen~ dass die kontextfreien Grammatiken eine natiirliche Art einer nichtdeterministischen Rekursion sind. Auf der Suche nach einem Berechnungsmodell~ das genau die bei kontextfreien Grammatiken generierten Sprachen akzeptieren kann~ landen wit bei nichtdeterministischen Kellerautomaten. Der Keller ist gerade die Datenstruktur~ die wir in der Informatik benutzen, um Rekursion zu modellieren und implementieren. AuBerdem lernen 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 kontextsensitiven 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 Informatikkonzepte kompensiert werden und das Buch auch fiir klassisch gestaltete Grundvorlesungen fiber Theoretische Informatik als fast vollstgndiges Mate-
10 Grammatiken und Chomsky-Hierarchie
350
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 eingeschrS~nkten I Nutzung dieses Kapitels empfehlen wir, nur das Konzept der allgemeinen und der kontextfreien Grammatiken in die Vorlesung aufzunehmen, weil gerade die Aquivalenz zu den Turingmaschinen und das Konzept der Rekursion mit der Anwendung in Compilerbau die wichtigsten 2 BeitrS~ge dieses Kapitels sind.
10.2
Das Konzept der Grammatiken
Die Zielsetzung dieses Kapitels ist, zun/ichst die Grammatiken als ein weiteres Konzept zur formalen Beschreibung von Sprachen vorzustellen. Bisher haben wir die Sprachen entweder durch die Beschreibung der Eigenschaften der in der Sprache enthaltenen W6rter oder durch Automaten oder Maschinen, die diese Sprachen erkennen, spezifiziert. In diesem Kapitel wollen wir eine neue formale Beschreibungsmethode vorstellen. Diese Methode basiert auf einem Erzeugungsverfahren. Mechanismen zur Erzeugung von gewissen Objekten werden in der Mathematik oft zum axiomatischen Definieren yon Objektklassen verwendet. Nehmen wir als Beispiel die Definition einer Booleschen Formel fiber einer Variablenmenge {xi, x 2 , . . . , x~}: (i) Die Konstanten 0 und 1 und die Variablen X l , X 2 , . . . , X n sind Boolesche Formeln. (ii) Wenn A eine Boolesche Formel ist, dann ist auch ~A (die Negation yon A) eine Boolesche Formel. (iii) Wenn A und B Boolesche Formeln sind, dann sind auch (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 entscheidet, 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, (,)} betrachten und somit bestimmt der angegebene Erzeugungsmechanismus die Sprache aller Booleschen Formeln fiber {Xl, x 2 , . . . , x~} mit den logischen Operationen 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. B e i s p i e l 10.1. Wir betrachten das folgende Erzeugungsverfahren fiir eine Sprache L fiber dem Alphabet {a, b}" (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}.
Wir beweisen dies durch separate Beweise fiir beide Inklusionen. (i)
W i t zeigen, dass {a~b~ I i E IN} c L. Wir beweisen aib ~ E L ffir alle i E ]N mittels Induktion bezfiglich i. I n d u k t i o n s a n f a n g : Fiir i - 0 haben wir aib i - a~ ~ - A. Nach der Regel (i) ist A in L. I n d u k t i o n s s c h r i t t : Nach der Induktionsannahme ist ai-lb i-1 in L. Wir sollen zeigen, dass auch aib i E L. Wenn man x gleich ai-lb i-1 setzt, folgert die Regel (ii), dass auch a x b - a a i - l b i - l b - aib ~ in L sein muss. (ii) W i t zeigen, dass n c_ {a~b~ ] i E IN}. Wir beobachten, dass n nach den Regeln (i) und (ii) nur W6rter gerader Lgnge enthalten kann. 3 Wir zeigen mittels Induktion bezfiglich i, dass ffir alle i E IN der String aib ~ das einzige Wort der Lgnge 2i in L ist. I n d u k t i o n s a n f a n g : Sei i - 0. Das Wort a~ ~ - A ist das einzige Wort der Lgnge 0 in L. I n d u k t i o n s s c h r i t t : Unter der Induktionsannahme, dass ffir alle j E
aEin formaler Induktionsbeweis dieser Tatsache ist offensichtlich.
10 Grammatiken und Chomsky-Hierarchie
352
{0, 1 , . . . , i - 1} der String aJb j das einzige Wort der LS~nge 2j in L i s t , folgern wir nach (ii) und (iii), dass a~b~ das einzige Wort der Lange 2i in List. D Aufgabe 10.1. Sei L wie folgt definiert: (i) (ii) (iii) (iv)
AEL. Falls x c L, dann sind auch axb und bxa in L. Falls x, y C L, dann ist auch xy in L. Keine anderen W6rter geh6ren zu L als diejenigen, die man dutch die Anwendung der Regeln (i), (ii) und (iii)erzeugen kann.
Welche Sprache L wird auf diese Weise generiert? Beweisen Sie ihre Behauptung. Aufgabe 10.2. Geben Sie Erzeugungsmechanismen zur Generierung folgender Sprachen an;
(i) (ii) (iii) (iv)
{xabby l x ,y E {a,b}*}, {xly I Ixl- lYl und z, y c {0, 1,2}*}, {x1110 I x c {0, 1}*}, {x c {0,1}* l lxl0 _> 3}.
Das Konzept der Grammatiken basiert auf der vorgestellten Idee der axiomatischen 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 Nichtterminalsymbole 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 Symbole lest. (i) Ffir die Terminalsymbole nutzen wir die Kleinbuchstaben a, b, c, d, e und die Ziffern. (ii) Die Grofibuchstaben, vorzugsweise A, B, C, D, X, Y, Z, nutzen wir, um Nichtterminale zu bezeichnen. (iii) Mit den Kleinbuchstaben u, v, w, x, y und z werden WSrter fiber ET bezeichnet. (iv) Die griechischen Buchstaben wie ct, ~ und 7 werden f/Jr beliebige W6rter fiber ET U EN verwendet. 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.
Eine Grammatik G ist ein ~-Tupel G = (EN, ET, P, S), wobei: (a) EN ist ein Alphabet, genannt N i c h t t e r m i n a l a l p h a b e t oder die M e n g e d e r N i c h t t e r m i n a l e v o n G. Die Symbole aus EN nennt man N i c h t t e r m i n a l e . (b) ET ist ein Alphabet, genannt T e r m i n a l a l p h a b e t oder die M e n g e d e r T e r m i n a l s y m b o l e v o n G. Die Symbole aus ET nennt man T e r m i n a l s y m b o l e . Es gilt E N N E T = 0. (c) S E EN heiflt S t a r t s y m b o l oder S t a r t n i c h t t e r m i n a l . { Jede Generierung eines Wortes muss mit dem Wort S starten.} (d) P ist eine endliche Teilmenge von E*ENE* x E* fiir E = EN 0 ET ist die M e n g e d e r A b l e i t u n g s r e g e l n y o n G. Die Elemente von P heiflen R e g e l n oder auch P r o d u k t i o n e n . Start (c~,fl) E P schreiben wir auch Oz ----+G ~
in Worten: c~ k a n n i n G d u t c h ~ e r s e t z t w e r d e n . {Es ist wichtig zu beobachten, dass fiir alle (c~,fl) E P das Wort c~ mindestens ein Nichtterminalsymbol aus Ezv enthalten muss, was dutch c~ E E*ENE* gefordert wird. Die Bedeutung ist, dass in einem
10 G r a m m a t i k e n und Chomsky-Hierarchie
354
Wort 7a~z mit 7, a; E E* ~ d u t c h / 3 ersetzt werden kann, wodurch das Wort 7 ~ entsteht. } Seien 7, 5 E (EN U ET)*. Wir sagen, dass 5 a u s ~ i n e i n e m A b l e i t u n g s s c h r i t t i n G a b l e i t b a r i s t (oder dass 7 in G in 5 iibergeht), 7 ~G
5,
existieren, so dass 7 = ('J10L(M2 u n d 5 = a21~(.~2.
W i t sagen, dass 5 a u s ~ i n G a b l e i t b a r ist,
genau dann, wenn (a)
entweder 7 = 5,
(b)
oder ein n E I N - {0} und n + 1 WSrter ~o, ~1, . . . , ~ existieren, so dass 7 = ~o,5 = ~
E (EN U ET)*
und ~i ~ G ~i+1 fiir i = O, 1 , 2 , . . . , n -
{ S o m i t ist ~*c eine reflexive und transitive Hiille von ~ a , ~ a als eine Relation auf WSrtern betrachtet.} Eine Folge von A bleitungsschritten aJ o
:::~ G
a31
:::~ G
a3 2
:::~ G
...
:::~ G
1.
wenn m a n
a3 n
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 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
G
Im Folgenden nutzen wir die Bezeichnung a = ~ c / 3 ffir eine Ableitung a ~ a / 3 , die aus genau i Ableitungsschritten besteht. Beispiel 10.2. Sei G = (EN, ET, P, S), wobei
(i) (ii) (iii)
= {s} = {a, b} P=
{ S ~ A, S ~ S S , S ~ aSb, S ~ bSa}.
10.2 Das Konzept der Grammatiken
355
Ein Beispiel einer Ableitung des Wortes baabaabb in G ist
S ~G
SS =~a SaSb ~ a
~G
baaSSb ~ a
~G
baabaaSbb ~ a
SaSSb ~ a
baabSaSb ~ a
bSaaSSb
baabaSb
baabaabb.
Der erste Ableitungsschritt entspricht der Anwendung der Regel S ---+ S S zustande. In dem zweiten Ableitungsschritt wurde gemS~fi S ---+aSb das zweite S von links ersetzt. Die Regel S ~ S S wurde zur Ersetzung des zweiten S i m dritten Schritt angewendet. Im vierten Schritt haben wir das erste S von links nach der Regel S ~ bSa durch bSa ersetzt, und so weiter. Wir vermuten, dass
L(G) : Lg~ : {w E {a,
b}* l lwla :
Iwlb}.
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 Induktionsannahme eine Ableitung :
S~ay in G. Somit gibt es folgende Ableitung
S =~a aSb ~*a a y b - x yon x in G.
10 Grammatiken und Chomsky-Hierarchie
356
(ii.2) (ii.3)
Der Fall x = bya ist analog zu (ii.1). Statt der Regel S ~ m a n die Regel S ~ bSa im ersten Ableitungsschritt an. Sei x = aya. Weil IXla = IXlb = 7t~ gilt = lyl
a S b wendet
= lYla + 2
Damit muss es eine Zerlegung von y y=uv
geben, so dass lUlb :
lUla-~- 1 und Ivlb = IVla @ 1.
Damit gilt x = a u r a , au E Lg~ und va E Lg~.
Nach der I n d u k t i o n s a n n a h m e existieren Ableitungen S
=~a a u u n d S = ~ a
va
yon au und va in G. Damit erhalten wir die Ableitung S ~a
(ii.4)
SS
~ G* a u S
=~*c a u v a - x
von x in G. 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 ~ SAB, A~a,
S ~ BSA,
S ~ ABS,
S ~ BAS, S ~ SBA,
S ~ SS,
B~b}.
Welche Sprache wird durch G erzeugt? Begriinden Sie ihre Behauptung.
Wir beobachten, dass G r a m m a t i k e n nichtdeterministische Erzeugungsmechanismen sind. F/Jr den Nichtdeterminismus bestehen zwei Griinde. Zuerst dfirfen mehrere Regeln existieren, die die gleiche linke Seite haben. Wir haben die freie Wahl, eine yon diesen Regeln anzuwenden, falls die linke Seite der Regel irgendwo als Teilwort in dem bisher abgeleiteten Wort vorhanden ist. Zweitens kSnnen mehrere linke Seiten yon Regeln als TeilwSrter auftreten, und es ist nicht festgelegt, welches yon den Teilw6rtern als erstes ersetzt wird. Zum Beispiel zerst6rt die Anwendung der Regel a X ~ by im Wort a a a X b b die
10.2 Das Konzept der Grammatiken
357
M6glichkeit, im nS~chsten Ableitungsschritt die Regel X b ~ X Z anzuwenden, obwohl diese Regel fiir das Wort aaaXbb anwendbar ist. B e i s p i e l 10.3. Hier m6chten wir eine G r a m m a t i k ffir die Sprache
konstruieren. Wir betrachten die G r a m m a t i k G = ({S, X } , {a, b}, P, S ) m i t 3 Regeln. Mit der Regel
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. (i)
Zuerst zeigen wir L3~ C_ L(G). Sei x E L3a. Dann ist
x = biabjab k ab"~ fiir irgendwelche i, j, k, m E IN. Urn zu zeigen, dass x E L(G), konstruieren wir eine Ableitung von x in G. S ~G XaXaXaX ~ ci b ~ X a X a X a X ~ c b ~ a X a X a X ~Ja b i a b J X a X a X ~ biabJaXaX ~ biabJabkXaX
~G
?, ]'g biabJab~aX ~ G?Yt babJab ab?Tt X
~c
biabJab~ab "~.
(ii) Wir zeigen L(G) C_ L3a. Sei w ein beliebiges Wort aus L(G). Dies bedeutet, dass eine Ableitung S ::~G COl ::~G co2 ::~ ...
:::>G ten = W
von w E {a,b}* in G existiert. Urn w E L3a zuerst mittels Induktion, dass
zu
zeigen, beweisen wir
({b}*. {x, A}. a) 3 9{b}*. {X, fiir alle i = 1 , 2 , . . . , n . Weil wir aus S starten und es nur die eine Regel S ---+ X a X a X a X zur Ersetzung von S gibt, ist c~1 = X a X a X a X und somit hat c~1 die
10 Grammatiken und Chomsky-Hierarchie
358
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
e ({b}*. {x, a}. a) 9{b}*. {x, a}. Weil ({b}*. {X, A}. a) a. {b}*. {X, A} N {a,b}* - La~, erhalten wir w E Laa.
D
Aufgabe 10.4. Entwerfen Sie Grammatiken fiir die folgenden Sprachen:
(i) {a~C{0,1}* a~1_>2}, (ii) {cz E {a, b}* a~ - zabbay, z, y E {a, b}+}, (iii) {cz E {0, 1}* cz 0 ist gerade}. 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 sogenannten 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 Terminalsymbol, das dem deutschen Wort "Brot" entspricht. Mit Regeln wie
~
<Satz>
<Satz}
~
<Subjekt}
<Subjekt}
~
~
[Vater] [lieber]
kann man Texte in der Sprache erzeugen. In der Informatik benutzt man Grammatiken im Compilerbau, um syntaktisch korrekte Programme einer Programmiersprache zu beschreiben. Die Definition yon Programmiersprachen durch relativ einfache Grammatiken hat die Konstruktion von effizienten Compilern wesentlich vereinfacht. Zum Beispiel pr~sentieren die folgenden Regeln
10.2 Das Konzept der Grammatiken
(Ausdruck}
--+ (Ausdruck} + (Ausdruck}
(Ausdruck}
--+ ( A u s d r u c k } - (Ausdruck)
(Ausdruck}
--+ { a u s d r u c k } , / a u s d r u c k }
(Ausdruck}
--+ (Ausdruck) / (Ausdruck}
(Ausdruck}
--+ ({ausdruck})
(Ausdruck}
--+
359
[id]
das System zur Erzeugung von arithmetischen Ausdr/icken. Das einzige Nichtterminal ist {Ausdruck} und die Terminalsymbole sind die arithmetischen Operationen + , - , , , / , die Klammern ( und ) und das Zeichen [id] f/Jr den Operanden. Aufgabe 10.5. Schreiben Sie eine Ableitung des arithmetischen Ausdruckes (id + id) 9 ((id)/(id - id)) durch die Anwendung der oben angegebenen Regeln. Alle bisher vorgestellten Beispiele von Grammatiken haben einfache Regeln verwendet, bei denen auf der linken Seite immer nur ein Nichtterminal stand. Es geht aber nicht immer so einfach. Regeln wie
a X b c S X --+ Saa, abXba --+ a X Z 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 betrachten wir nur vier Basisklassen, die die sogenannte Chomsky-Hierarchie bilden. D e f i n i t i o n 10.2. Sei G = (EN, ET, P, S) eine Grammatik.
# #i)
G heiflt T y p - O - G r a m m a t i k . { Typ-O-Grammatiken stellen die Klasse der allgemeinen, uneingeschriinkten Grammatiken dar. } 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 Paare
P
_<
191
4Wie dies geht, zeigen wir im Abschnitt 10.5.
10 Grammatiken und Chomsky-Hierarchie
360
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 ~ X ~ u Y fiir ein u E E~, X , Y E EN}.
u oder
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.
Zum Beispiel ist die Grammatik G3 -- ({S, X}, {a, b}, {S --~ abX, X ~ bX, X ~ a2}, S) eine regulSxe Grammatik. Die Grammatik G2 = ({S, A, B}, {a, b}, {S ~ abbAB, A ~ a, B ~ bA}, S)
ist kontextfrei, aber nicht regulSx, weil S ~ abbAB keine regulSxe Regel ist. Die restlichen Regeln A ~ a und B ~ bA sind regular. Die Grammatik Gx : ({S, A}, {a, b}, {S ~ aAb, aA ---+Sb, A ~ a}, S) ist kontextsensitiv, aber nicht kontextfrei, weil aA ~ Regel ist. Die Grammatik
Go = ({s, x, z}, {o, 1}, {s -~ x s z , s11, OZl -~ oo}, s)
Sb keine kontextfreie
s z -~ 11, x ~ A, o o x
ist eine T y p - 0 - G r a m m a t i k , die nicht kontextsensitiv ist, weil sie die sogenannten verkiirzenden Regeln X ~ A und 0Y1 ~ 00 enth~lt.
10.2 Das Konzept der Grammatiken
361
Das Hauptinteresse liegt in den Begriffen kontextsensitiv und kontextfrei. Die Definition 10.2 spiegelt die Klassifikation der Grammatiken nach dem Linguisten Chomsky wieder. Die Kontextfreiheit bedeutet, dass man ein Nichtterminal X durch ein Wort a unabhS~ngig davon ersetzen kann, wo sich das X in dem bisher abgeleiteten Wort befindet und welche Symbole seine Nachbarn sind. Im Kontrast dazu stehen die kontextsensitiven Regeln, wo das Ersetzen eines Nichtterminals von seiner Umgebung abhgngt. Zum Beispiel besagen die Regeln a a X -+ aabY, b X --+ b, Xbb--+ Zabb
folgendes: - X kann - X kann (bemerke, - X kann
durch b Y ersetzt werden, falls links von X das Wort aa steht, durch A ersetzt werden (gel6scht werden), wenn b links yon X steht dass diese Regel auch nicht kontextsensitiv ist), und 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 "Umgebungen" 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 Umgebung zu sprechen. Das ist die bedauerliche Folge des prgsentierten Formalismus, den man heute gew6hnlicherweise benutzt. Ursprfinglich war die kontextsensitive 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
geschrieben. Es kann gezeigt werden, dass diese zwei unterschiedlichen Definitionen der kontextsensitiven Ableitungsregel zu der gleichen Klasse der kontextsensitiven Sprachen fiihren. Der Hauptunterschied zwischen den kontextfreien und regulSzen Grammatiken ist zun/tchst, dass die rechte Seite einer regul/tren Regel immer h6chstens ein
10 Grammatiken und Chomsky-Hierarchie
362
Nichtterminal enthglt. Dadurch kann es in einer Ableitung nie dazu kommen, dass ein abgeleitetes Wort aus (EN tO Er)* zwei oder mehrere Nichtterminale enthglt. Zweitens daft sich das Nichtterminal auf der rechten Seite einer regul~tren Regel nur als das letzte Symbol rechts befinden. Damit sind alle ableitbaren W6rter einer regulgren Grammatik von der Form
u X oder u fiir ein u E E~ und X E EN. Der wesentlichste Unterschied zwischen kontextsensitiven Grammatiken und Typ-0-Grammatiken ist, dass die kontextsensitiven Grammatiken keine verk/irzenden Regeln a ~ fl mit Ifll < lal enthalten. Wie wir sehen werden, spielt dieser Unterschied eine wichtige Rolle. Die allgemeinen Grammatiken k6nnen beliebige Speicherinhalte oder Konfigurationen eines Rechners generieren und damit durch Ableitungen beliebige Berechnungen simulieren. Fiir die Simulation k6nnen sie beliebig viel Speicherplatz verwenden und nach dem die Berechnung beendet wurde, k6nnten die Typ-0-Grammatiken die letzte Konfiguration der Berechnungssimulation zu der ausgerechneten Ausgabe schrumpfen lassen. Im Gegensatz dazu k6nnen die kontextsensitiven Grammatiken nie W6rter aus (ENUET)* in der Ableitung verwenden, die lgnger als das erzeugte Terminalwort sind. In den folgenden Abschnitten werden wir die Nutzung und die Beschreibungsstgrke der eingefiihrten vier Grammatiktypen untersuchen.
10.3
Regul~ire Grammatiken und endliche Automaten
Die Zielsetzung dieses Abschnittes ist es, die Abgeschlossenheit der Sprachklasse s zu untersuchen und danach zu zeigen, dass /2a genau der Menge s der regulgren Sprachen entspricht. Wir beginnen mit einer einfachen Beobachtung. L e m m a 10.1. /2a enthiilt alle endlichen Sprachen.
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 -~ ~ , . . .
Offensichtlich gilt L ( G ) = L.
~s -~ ~ } ~ s).
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? Wir sagen, dass eine Sprachklasse 12 a b g e s c h l o s s e n bezfiglich e i n e r b i n / i r e n O p e r a t i o n @ fiber Sprachen ist, falls fiir alle L1, L2 E 12
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 Operationen 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 Halbgruppen oder K6rper abgeschlossen beziiglich der betrachteten Operationen sind. Die Klasse s ist eine ,,nette" Klasse, weil sie bez/iglich der meisten grundlegenden Operationen abgeschlossen ist. Im Folgenden dokumentieren wir die Abgeschlossenheit beziiglich einiger Operationen, fiir die diese Eigenschaft insbesondere leicht fiber das Konzept der Grammatiken zu beweisen ist. Wir erinnern daran, dass wir im Abschnitt 3.3 die Abgeschlossenheit yon s beziiglich O, N und Komplementbildung bewiesen haben. L e m m a 10.2. s
ist abgeschlossen beziiglich Vereinigung.
Beweis. Seien L und L ~ zwei beliebige Sprachen aus s regulS~re Grammatiken
Dann gibt es zwei
(7 - (EN, ET, P, S) und (7' - (E~v, E~, P ' S') 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 G" -
P", s")
10 Grammatiken und Chomsky-Hierarchie
364 mit
L(G") - L(G) U L(G'). 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 entsprechenden Inklusionen einzeln. (i) Wir zeigen L(G) U L(G') C_ L(G"). Sei x ein beliebiges Wort aus L(G)U L(G'). Ohne Einschr/~nkung der Allgemeinheit nehmen wir an, dass x E L(G). Dann existiert eine Ableitung
S~ax von x in G. Die folgende Ableitung S" ~ a " S ~ , ,
x
ist die Ableitung yon x in G", weil G" alle Regeln yon G besitzt. (ii) Wir zeigen L(G") C_ L ( G ) U L(G'). Sei x ein beliebiges Wort in L(G"). Sei Sll :=}G" OZl :=}G" 0~2 :::}G" . . . :::~G" O ~ n - - X
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
auch eine Ableitung in G, weil EN N E~v - 0. Somit ist x in L(G). Falls OL1 - - S I, ist diese Ableitung mit S' statt S auch eine Ableitung yon x in G' und somit x E L(G').
10.3 Regulgre Grammatiken und endliche Automaten
365
Lemma
10.3. /23 ist abgeschlossen beziiglich Konkatenation.
Beweis.
Seien L und L' zwei beliebige Sprachen aus s G
(EN, ET, P, S) und
-
G'
-
Seien
(E~v, E~, P', S')
zwei regulgre C r a m m a t i k e n mit L(G) - L, L(G') - L' und EN Cl E~v -- 0. Wir konstruieren eine G r a m m a t i k c"
-
_r,",
s")
mit
L(G")
-
L(G) . L(G').
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) rf S" E II
E N U ESv ,
ET U
E~,
S, u n d
P'U (P N E N x E~. EN) U {A ---+
S'l
A ---+ w r P, w e E~}.
Den Beweis von L(G") -- L ( G ) . L(G') iiberlassen wir dem Leser. A u f g a b e 10.7. Vervollstgndigen Sie den Beweis von Lemma 10.3. 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. A u f g a b e 10.9. Konstruieren Sie eine regulgre Grammatik fiir folgende Sprachen: (i) {abbxaaaybba I x, y c {a, b, c}*}, (ii) {aabbx I x c {a, b}* und Ixla = 3}, (iii) {xaabby I x, y E {a, b}*, Ixylb ist gerade }. 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
Fiihren Sie auch die Beweise u m zu zeigen, dass die yon I h n e n k o n s t r u i e r t e n G r a m m a t i k e n tats~chlich die Sprache erzeugen.
Wir wollen jetzt zeigen, dass s = s indem wir zu jedem endlichen Automaten eine 5~quivalente regulS~re Grammatik konstruieren und umgekehrt zu jeder regulSzen Grammatik einen 5~quivalenten endlichen Automaten entwerfen. Wir beginnen mit der einfacheren Richtung. S a t z 10.1. Zu jedem endlichen A utomaten A existiert eine regulgre Gramma-
tik G mit L(A) = L(G). 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 erzeugt wird. Die ZustS~nde von A werden in dieser Situation zu den Nichtterminalen 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 E
ET S
=
Go
P
=
{p ~ aql for alle a E ~, p, q E Q, so dass a(p, a) = q}
Wir beweisen jetzt L(G) = L(A). (i) Wir zeigen L(A) c_ L(G). Sei x - ala2.., a~ ftir ai E E ein beliebiges Wort in L(A). Sei (qo, a~a~ . . . a~)
~
(q~, a~ . . . a~)
~
(q~, a~ . . . a~)
~
. . .
~A (%-1, a~) ~A (%, A) eine akzeptierende Berechnung (% E F) yon A auf x. Weil ~(qi, ai+l) = qi+l die Existenz der Regel qi ~ ai+lqi+l in G impliziert und q~ E F die Regel q~ ~ A in P fordert, erhalten wir die folgende
10.3 Regul~re Grammatiken und endliche Automaten
367
Ableitung yon x in G: qo ~ a a~q~ ~ a ala2q2 =:~G ala2a3q3 =:~G . . . =:~G al . .. an-lqn-1
:=~G a l . . . a n - l a n q n
=:~G a l . . . a n - l a n .
(ii) L(G) c_ L ( A ) zu zeigen, iiberlassen wir dem Leser.
Aufgabe 10.10. VervollstSmdigen Sie den Beweis des Satzes 10.1. Aus dem Beweis des Satzes 10.1 sehen wir, dass die Nichtterminale beim Entwurf 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. B e i s p i e l 10.4. Im Beispiel 10.3 haben wir fiir die Sprache L3a = {w E {a, b}* I IWla = 3}
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 /-Z = ({X0, Xl, 22, 2 3 } , {a, b}, r~ X0) ,
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
fiir i = 0, 1,2, 3, um jederzeit eine beliebige Anzahl von b's generieren zu k6nnen. Die Regeln X 0 -----+ a N 1 ,
21
-----+ a N 2 ,
22
----> a N 3
garantieren uns, dass die Anzahl der erzeugten Symbole a durch das Nichtterminal Xi gespeichert wird. Mit der Regel
10 Grammatiken und Chomsky-Hierarchie
368
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 Beispiel einer Ableitung fiir das Wort bbabbbaabbb ist X o ==~H
bXo ==~H bbXo ==~H bbaXl ===H >3 bbabbbXl ==~H bbabbbaX2
==~HbbabbbaaX3 ~ 3H bbabbbaabbbX3 ~ H bbabbbaabbb.
Zu zeigen, dass
L ( H ) gilt, wird dem Leser iiberlassen.
L3a =
Aufgabe 10.11. Beweisen Sie L3a
=
D
L(H) fiir die Grammatik H aus Beispiel 10.4.
Aufgabe 10.12. Entwerfen Sie regulgxe Grammatiken fiir folgende Sprachen: (i) {x E {0, 1}* I Ixl0 ist gerade und IXll ist ungerade},
(ii) {xc{0,1}* I Ixl0 (mod3)=l}, (iii) {x C {a, b}* I IXla > 2 und IXlb (mod 3 ) : 0}~ (iv) {x = y0101z I y,z C {0, 1}*, lYl0 ist gerade, IZll ist ungerade}. Die Idee der Simulation eines endlichen Automaten durch eine regulgre Grammatik 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)
fiir ein Terminalsymbol a hS~tte, wSxe es m6glich, direkt einen 5~quivalenten nichtdeterministischen endlichen Automaten zu bauen. Fiir die Regel X ~ a Y wiirde man zum Beispiel Y E 6(X, a) nehmen, und fiir die Regel X ~ a definiert man qF E 6(X, a) fiir einen akzeptierenden Zustand qF mit 6(qF, b) = fiir alle Terminalsymbole b. Leider schaffen wir es nicht, die Regeln der Form X~Y,
X~A,
X~uYfiir
lul_>2
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. D e f i n i t i o n 10.3. Eine reguliire Grammatik G - (EN, ET, P, S) heiflt n o r m i e r t , wenn alle Regeln der Grammatik nur eine der folgenden drei Formen haben:
10.3 Regul~re Grammatiken und endliche Automaten
369
S ---+ A, wobei S das Startsymbol ist, A ~ a fiir A E EN und a E ET, und B --+ bC fiir B, C E EN und b E ET. Um zu zeigen, dass zu jeder regulgren Grammatik eine/~quivalente normierte Grammatik existiert, ersetzen wir die unerwiinschten Regelformen eine nach der anderen. Zuerst ersetzen wir die Regeln X ~ Y, die wir K e t t e n r e g e l n nennen. L e m m a 10.4. Fiir jede reguliire Grammatik G existiert eine iiquivalente re9uliire Grammatik G ~, so dass G ~ keine Regel der Form X --+ Y fiir zwei Nichtterminale X und Y enthiilt. 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, K ( A ) = {D r Ex] A :~*G D}. Die Menge K ( A ) kann algorithmisch auf folgende Weise berechnet werden: Setze
Ko(A) Ki+I(A)
=
{ A } und
=
K~(A)U { B r ENI 3 C r K~(A) so dass C---+ B r P}
ftir i = 0, 1 , . . . , I E N I - 2. Dann gilt offensichtlich CXD
I f ( A ) -- I~ ENI_ 1(A) -- U I~i(A)" i=1
Die Idee der Konstruktion yon G' ist, dass man die Ableitungsteile A ~ G A~ ~ G A2 ~ G . . .
~ G A~ ~ c c~
in G durch einen Ableitungsschritt
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.
10 Grammatiken und Chomsky-Hierarchie
370
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
A u f g a b e 10.13. Betrachten wir die folgende Grammatik G -- ( { X o , X l , X 2 , X 3 } , { a , b } , P , X o } )
mit P - { X o --+ X1, Xo --+ X3, X l -----+a X l , X l -----+X o , X l -----+)~,
X3 ---+bbX3, X3 ---+Xo, X3 ---+X2, X2 ---+ A}.
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. L e m m a 10.5. Fiirjede regul6re Grammatik G existiert eine iiquivalente Grammatik G', die keine Regel A ~ A fiir ein Nichtterminal A, welches nicht gleich dem Startsymbol ist, enthiilt. Beweis. Sei G - (2N, 2T, P, S) eine beliebige regulgre Grammatik, die keine Kettenregeln besitzt, und seien A1 --+ A, A2 --+ A, . . . , Ak --+ k alle Regeln in P aus (P~N- {S}) x {A}. Wir konstruieren eine regulgre Grammatik G' - (EN, ET, P', S) mit p'
(P-{A1
~ A, A2 ~ A,...,A~ ~ A})
k
u
U{B /=1
B
P}
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 in G erm6glichen. Mit dem Einfiihren der Regel B ~ w kann die G r a m m a tik G ~ ohne die Regel Ai ~ A diese Ableitung durch einen Ableitungsschritt nachahmen. Wir beweisen jetzt, dass L(G) = L(G'). Wie iiblich beweisen wir die entsprechenden Inklusionen separat. (i) Wir zeigen L(G) C_ L(G'). Sei x ein beliebiges Wort aus L(G) und sei
===~G WlB1 = r ~ G :::::::}G
WlW2B2
::::~G
w l w 2 . . . W n _ 2W n _ l g
...
::::~G W l W 2 . . .
n _ 1 :=:F G
Bn-2
w l w 2 . . . W n _ 2W n _ l W n
~
X
mit w~ E E~ und B~ E EN fiir i -- 1, 2 , . . . , n - 1 eine Ableitung yon x in G. Falls w~ -~ A, sind alle Regeln, die in S = ~ x benutzt werden 6, in P - {A1 ~ A , . . . , A k ~ A} und somit ist diese Ableitung auch eine Ableitung in G ~. Falls w~ = A, war die letzte angewandte Regel in der Ableitung B~_I A. Dann sieht die Ableitung yon x in G ~ folgendermassen aus: ::=F G ,
W1~1 =::F G ,
:::::::~G I
W I . . . W n_
...
=::F G , W l W 2 . . . W n - 2 ~
2 W n_
1 ~
n - 2
X .
Die ersten n - 2 Ableitungsschritte gleichen den ersten n - 2 Ableitungsschritten in (7 und der letzte Ableitungsschritt wurde durch die Regel B~_2 ~ w~-i E P~ realisiert. Die Regel B~_2 ~ w~-i ist in P~, weil die Regeln
Bn--2 ~ Wn--lBn--1 und Bn-1 ~ ,~ in P sind. (ii) Wir zeigen L(G') C_ L(G). Sei x ein beliebiges Wort aus L(G ~) und sei
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.
10 Grammatiken und Chomsky-Hierarchie
372
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 S =:kG W l D =:kG WlW2Ai =:kG WlW2
-
-
X
eine Ab]eitung von x in G.
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 konstruiert. 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. S a t z 10.2. Zu jeder reguliiren Grammatik existiert sine iiquivalente normierte
regulgre Grammatik. Beweis. Sei G eine beliebige regulgre G r a m m a t i k . Wenn m a n die Konstruktionen aus L e m m a t a 10.4 und 10.5 anwendet, erhalten wir eine regulSxe Grammatik
Go - (2N, 2r, Po, s) mit folgenden Eigenschaften"
(i) L ( G o ) - L(G) (ii)
und Po enthSJt nur Regeln folgender Formen:
(ii.1) S--+ A, (ii.2) (ii.3)
A~wfiireinAcExundwc (ET) +, B --+ u C ftir B, C E EN und u E (ET) +.
10.3 Regul~ire Grammatiken und endliche A u t o m a t e n
373
Um eine G r a m m a t i k in normierter Form zu erhalten, mtissen wir die Regeln A -~ ~ mit I~1 > 2 . n d B -~ ~ C mit I~1 > 2 d~rch R~g~ln d~r Form D ~ a und D ~ a X fiir a E ET ersetzen. Um unn6tige schwer durchschaubare formale Konstruktionsbeschreibungen zu vermeiden, zeigen wir nur, wie m a n solche Regeln eine nach der anderen ersetzen kann. Sei A ~
WlW2...
Wk.B
eine Regel aus P mit k _> 2, wi E ET fiir i -- 1 , . . . , k. Wir nehmen neue 7 Nichtterminalsymbole A1, A 2 , . . . , Ak-1 und ersetzen diese Regel durch die Regeln A ~ w l A 1 , A1 ~ w2A2, . . . , Ak-2 ~ W k - l A k - 1 , Ak-1 ~ w k B .
Analog wird eine Regel C------~ U l U 2 . . . u
m
mit m _> 2, ui E E T ftir i -
1 , . . . , m, durch die Regeln
C -----+U l C l , C l ----> 'U,2(~2,..., C k - 2 ~
U m - l C m - 1 , C m - 1 ---+ Um
ersetzt. Bei der Ersetzung jeder unerwiinschten Regel muss m a n darauf achten, dass immer neue Nichtterminalsymbole g e n o m m e n werden (also existiert nur eine Regel mit Ai auf der linken Seite, und zwar A i ~ Wi+lAi+l und Ai wird nirgendwo anders verwendet). Wenn m a n dies einh~lt, ist es offensichtlich, dass m a n dadurch eine zu Go ~iquivalente G r a m m a t i k erzeugt. D A u f g a b e 10.16. Betrachten wir die Grammatik G aus Aufgabe 10.13. Konstruieren Sie eine zu G ~iquivalente normierte regul~ire Grammatik. A u f g a b e 10.17. Betrachten wir die Grammatik G -- ({S, X I , X 2 , X 3 } , {0, 1}, P~ S)
mit P-
{S --~ 0S, S --~ 1S, S ~ 01S, S --~ l l l 0 X 1 , X 1 ----->0X1,
X 1 ----->1X1, X 1 ----->0001X2,
X2 ~ 1X2, X2 ~ 0011X3,
X3 ~ OX3, X3 ~ 1X3, X3 --+ O, X 3 ~ 7Symbole, die nicht in EN U ET vorhanden sind
1}.
10 Grammatiken und Chomsky-Hierarchie
374
Konstruieren Sie eine zu G ~quivalente normierte regul~re Grammatik. Welche Sprache erzeugt G? Jetzt pr~sentieren wir das Hauptresultat: Die Konzepte der regul~tren Grammatiken und der endlichen Automaten definieren die gleiche Klasse von regul~ren Sprachen. Satz 10.3. s
=
s
Beweis. Der Satz 10.1 besagt, dass man zu jedem EA eine ~tquivalente regulgre G r a m m a t i k konstruieren kann. Somit gilt s
c_ s
Uns bleibt zu zeigen, dass s c_ s Sei L eine beliebige Sprache aus s Aus dem Satz 10.2 wissen wir, dass L = L(G) fiir eine normierte regul~re G r a m m a t i k G. Weil zu jedem nichtdeterministischen endlichen Automaten ein ~quivalenter EA existiertS, reicht es, einen zu G ~quivalenten nichtdeterministischen endlichen Automaten M zu konstruieren. Die Idee der Konstruktion basiert auf der Umkehrung der Konstruktion aus Satz 10.2 (Fig. 10.1). Sei G = (EN~ ET~ P, S) die normierte regul~re Grammatik mit L(G) = L. Wir konstruieren
M :
u {q.}.
5. s, F).
wobei
r-
L {q'}
falls S -~ A ~ P, falls S -~ A E P
6(qF~ a) = 0
fiir alle
Y E 6 (X~ a)
falls
qr E 6 (X~ a)
falls
aE
Y]T~
X ---+a Y E P, X, Y E EN, a E ET, X~aEP, XEEN, aEET.
Wir beweisen jetzt L(G) = L(M). (i) Wir zeigen L(G) c L(M). Sei x = wlw2.., w~ ffir wi E ET ein beliebiges nichtleeres Wort aus L(G). 8potenzmengenkonstruktion aus Satz 3.2
10.3 Regul~re Grammatiken und endliche Automaten
375
j Ixl
IYI
Fig. 10.1 Der Schritt des NEA M, der der Anwendung der Regel X ~ aY in der Ableitung von G entspricht.
Sei
S
==vcwlA1 ~ G WlW2A2 ~ c ::::~ G
... ~ c
W l W 2 . . . W~_lA~_l
W l W 2 9 9 9W n
eine A b l e i t u n g yon x in (7. In dieser A b l e i t u n g w u r d e n n a c h e i n a n d e r die Regeln
S ---, wlA1, A1 ~ w 2 A 2 , . . . ,A~_2 ~ W~_lA~_l, A~_I ---, w~ von G angewendet. Der K o n s t r u k t i o n von M folgend, gilt
A1 e ~(S, ~1), A~ e ~(A1, ~ ) , . . . ,A~_I e ~(A~_~, ~ - 1 ) , qF E 8(A~-I, w~). D a d u r c h ergibt sich die folgende a k z e p t i e r e n d e B e r e c h n u n g von M auf x:
(s, ~ 1 ~ . . . ~ - 1 ~ ) , . (dl, ~ . . . ~ - 1 ~ ) , . (d~, ~ . . . ~ - 1 ~ ) " ~ . . . "~ (d~_~, ~ - 1 ~ ) Falls A E L(G), d a n n kann es nur mit der Regel S ~ werden. D a n n ist a b e t S E F u n d somit A E L ( M ) .
A E P erzeugt
(ii) L ( ~ ) c_ L(G) ~, ~ i g ~ g~ht ~ l o g , ,nd wir a b ~ r l ~ n ~ d~m L ~ r . D Aufgabe 10.18. Vervollst~ndigen Sie den Beweis des Satzes 10.3, indem Sie die Tatsache L(M) c_ L(G) formal beweisen. Aufgabe 10.19. Betrachten Sie die Grammatik H aus Beispiel 10.4. Konstruieren Sie einen zu H ~quivalenten endlichen Automaten.
10 Grammatiken und Chomsky-Hierarchie
376
Aufgabe 10.20. In Aufgabe 10.9 haben Sie regulgre Grammatiken fiir drei regulgre Sprachen entworfen. Wandeln Sie zuerst die von Ihnen entworfenen Grammatiken in gquivalente normierte regulgre Grammatiken um und konstruieren Sie dann mit Hilfe des Satzes 10.3 gquivalente nichtdeterministische endliche Automaten. Aufgabe 10.21. In Abschnitt 3.4 haben wir das Pumping-Lemma fiir regul~tre Sprachen als eine Methode zum Beweisen der Nichtregularitgt von Sprachen entwickelt. Der Beweis basierte auf der Tatsache, dass in jeder geniigend langen Berechnung sich zwei Zustgnde wiederholen mfissen. $omit entsteht die MSglichkeit eine $chleife zu bilden, die beliebig viele Male wiederholt werden daft, ohne dass es der Automat merken kann. Lange Ableitungen von regul~tren Grammatiken k6nnen auch nicht die Wiederholung von Nichtterminalen vermeiden. Benutzen Sie diese Eigenschaft, um das Pumping-Lemma in dem Formalismus der Grammatiken zu beweisen.
10.4
Kontextfreie Grammatiken und Kellerautomaten
Wie wir schon erwS~hnt haben, sind die kontextfreien G r a m m a t i k e n die G r a m matiken, die uns als I n f o r m a t i k e r a m meisten interessieren. Die Klasse s (in der L i t e r a t u r auch als s bezeichnet) der durch kontextfreie G r a m m a t i k e n e r z e u g b a r e n Sprachen n e n n t m a n die Klasse von kontextfreien Sprachen. Die Zielsetzungen dieses A b s c h n i t t e s sind: - Die Beschreibungsstgrke der kontextfreien G r a m m a t i k e n zu u n t e r s u c h e n u n d dabei ghnlich wie bei regulgren Sprachen eine P u m p i n g - M e t h o d e zu entwickeln, mit der m a n die Nichtexistenz von kontextfreien G r a m m a t i k e n fiir gewisse konkrete Sprachen zeigen kann (also die T a t s a c h e L ~ s beweisen kann). - Die K e l l e r a u t o m a t e n als ein M a s c h i n e n m o d e l l einzufiihren, das g e n a u die Beschreibungsstgrke von kontextfreien G r a m m a t i k e n hat. Zuerst b e o b a c h t e n wir, dass 9 s keine regulgren Sprachen sind.
c s
d.h. es gibt kontextfreie Sprachen, die
B e t r a c h t e n wir die G r a m m a t i k
wobei P =
0Sl}.
9Die Inklusion s C_ s ist offensichtlich, weil regul~ire Grammatiken ein Spezialfall von kontextfreien Grammatiken sind.
10.4 Kontextfreie Grammatiken und Kellerautomaten
377
Wir sehen sofort, dass L(G) = {0~1~ I n E IN}, was keine regulS~re Sprache ist. Eine andere h~tufig benutzte kontextfreie, aber nicht regulgre Sprache ist die Sprache LR-
{wwR I w E {0, 1}*}.
Diese Sprache kann anschaulich durch die folgende kontextfreie Grammatik GR = ({S}, {0, 1}, {S ~ A, S ~ 0S0, S ~ 1S1}, S) erzeugt werden. A u f g a b e 10.22. Beweisen Sie LR = L(GR). A u f g a b e 10.23. Betrachten Sie die Sprache der Palindrome Lp = {w c
{0, l}*lw = w~}.
Konstruieren Sie eine kontextfreie Grammatik G mit L(G) = Lp. Beweisen Sie, dass Lp keine regulate Sprache ist.
Die in diesem Abschnitt bisher betrachteten kontextfreien Grammatiken waren sehr einfach, weil alle rechten Seiten der Regeln jeweils nur ein Nichtterminal enthalten haben. Damit ist in jeder Ableitung solcher Grammatiken immer nur ein Nichtterminal in den erzeugten nichtterminalen WSrtern. Solche einfachen Regeln reichen aber nicht aus, um jede Sprache aus s zu erzeugen. Im Beispiel 10.2 brauchten wir fiir die Sprache Lg~ = {w E {a, b}*llWla = Iwlb} auch die Regel S ~ S S . Das folgende Beispiel zeigt eine andere Strategie um Lg~ zu generieren. B e i s p i e l 10.5. Wir betrachten die folgende Grammatik:
a = {{s, A, B}, {a, b}, P, S}. Die Bedeutung des Auftretens eines Nichtterminals A ist, dass wir die Generierung eines Symbols a schulden, um die Anzahl yon a's und b's auszugleichen. Analog bedeutet das Vorhandensein eines B in einem nichtterminalen Wort, dass wir fiir den Ausgleich ein b schulden. Wir nehmen zuerst die Regeln: S ~ A, S ~ a B und S ~ bA.
10 Grammatiken und Chomsky-Hierarchie
378
Damit kann m a n W 6 r t e r generieren, die mit a oder mit b anfangen, und wenn a [b] generiert wurde, deutet B [A] das Schulden fiir die Generierung eines b [a] an. Die Regeln A ~ a, A ~ aS, B ~ b, B ~ b e,
erm6glichen dann, den Ausgleich zu erreichen. Wenn aber in dem generierten Wort das ngchste Symbol unterschiedlich von dem Ausgleichssymbol ist, nutzen wir die folgenden Regeln A ~ bAA, B ~ a B B ,
die das Erfassen hSherer Verschuldung in der Generierung yon a's oder b's garantieren. D Aufgabe 10.24. Beweisen Sie, dass die kontextfreie Grammatik aus Beispiel 10.5 die Sprache Lge = {w E {a, b}*llwla = IWlb} erz ugt Aus dem Grund, dass in den Ableitungen von kontextfreien G r a m m a t i k e n mehrere Nichtterminale in einem Wort auftreten diirfen, suchen wir eine fiberschaubare Darstellung von Ableitungen, die unabhS~ngig von der Wahl des als nS~chsten zu ersetzenden Nichtterminals ist. D e f i n i t i o n 10.4. Sei G = (EN, ET, P, S) sine kontextfreie Grammatik und sei x sin Wort aus L(G). Sei a sine A bleitung von x in G. Der S y n t a x b a u m ( A b l e i t u n g s b a u m ) T a der A bleitung a ist ein markierter B a u m mit folgenden Eigenschaften:
(i) (iv)
Ta hat eine Wurzel, die mit S markiert ist. Jeder K n o t e n yon Ta ist mit einem Symbol aus EN U ETU {A} markiert. Innere K n o t e n sind mit Symbolen aus EN markiert. Alle Bliitter sind mit Symbolen aus ET U {A} markiert, und yon links nach rechts gelesen ergeben sis genau das Wort x. Fiir jede A n w e n d u n g einer Regel A ~ c~1c~2.., c~ in a existiert genau ein innerer K n o t e n v mit der Markierung A und k SShnen Vl, v 2 , . . . , vk von links nach rechts, die mit den Symbolen c~1, c~2, . . . , c~ markiert sind (c~i E EN U ET fiir i = 1 , 2 , . . . , k ) .
W i t sagen auch, dass Ta ein Syntaxbaum zur Generierung von x in G i s t .
Wir veranschaulichen diese Definition mit einem Beispiel. Sei
10.4 Kontextfreie Grammatiken und Kellerautomaten
379
mit p
m
{S ~ S + S,S ~ S-
S,
S---, S * S,S---, S/ S, -~ (s), s -~ [~s]} die G r a m m a t i k zur Erzeugung yon arithmetischen Ausdr/icken. S
+
S
s
S
(
s
)
(
s
)
S
*
S
$
/
$
*
[~]
s
[i~]
[~]
S
[~]
-
S
[~]
Fig. 10.2
Der Ableitungsbaum (Syntaxbaum) T in Fig. 10.2 entspricht der Ableitung S
==~G ~G
(s 9 s 9 s ) + s ~
([~], s 9 s)+ s
=>c
( [ ~ ] , [ ~ ] , [ ~ ] ) + ([~]/s)
10 Grammatiken und Chomsky-Hierarchie
380 9
9
+
9
9
+
-
x)) -
Wir beobachten, dass jede Ableitung eindeutig einen Syntaxbaum bestimmt. Andererseits k6nnen mehrere unterschiedliche Ableitungen zu dem gleichen Syntaxbaum fiihren. Zum Beispiel ist die hier vorgestellte Ableitung eine sogenannte L i n k s a b l e i t u n g , weil immer das am weitesten links stehende Nichtterminal in dem aktuellen Wort ersetzt wird. Das wird aber nicht gefordert. Durch die Ersetzung des am weitesten rechts stehenden Nichtterminals erhS~lt man eine andere Ableitung. A u f g a b e 10.25. Schreiben Sie eine R e c h t s a b l e i t u n g far den Syntaxbaum in Bild 10.2, in der immer das am weitesten rechts stehende Nichtterminal zuerst ersetzt wird. A u f g a b e 10.26. Sei G eine kontextfreie Grammatik. Fiir ein Wort z c L(G) k6nnen unterschiedliche Syntaxb~ume zur Generierung von z in G existieren. Konstruieren Sie eine kontextfreie Grammatik G fiir die Sprache L = {0nl ~ I n c IN}, so dass fiir jedes z c L - { A } mindestens zwei unterschiedliche Syntaxb~ume zur Generierung von z in G existieren. A u f g a b e 10.27. Sei G eine beliebige kontextfreie Grammatik. Konstruieren Sie eine kontextfreie Grammatik G', so dass L(G) = L(G') und G' fiir jedes nichtleere Wort z c L(G) genau doppelt soviele unterschiedliche Syntaxb~ume zur Generierung von z hat als G.
Mit ghnlichem Vorgehen wie bei regulgren Grammatiken kann man jede kontextfreie Grammatik so modifizieren, dass sie keine Regeln der Form X -+ A (auger S --~ A) und keine Kettenregeln enth~lt. A u f g a b e 10.28. Sei G eine kontextfreie Grammatik. Konstruieren Sie eine zu G ~quivalente kontextfreie Grammatik, die keine Regeln der Form X --~ A fiir X unterschiedlich von dem Startsymbol enth~lt. A u f g a b e 10.29. Sei G eine kontextfreie Grammatik ohne Regeln der Form X --~ A fiir X unterschiedlich von dem Startsymbol. Konstruieren Sie eine zu G ~quivalente kontextfreie Grammatik, die keine Kettenregel enth~lt. A u f g a b e 10.30. Sei G = (EN, ET, P, S) eine kontextfreie Grammatik. Ein Nichtterminal X E EN nennt man n u t z l o s oder ein nutzloses Symbol, wenn X in keiner aus S startenden Ableitung auftritt 1~ (nicht erreichbar ist). Schreiben Sie einen Algorithmus, der fiir eine gegebene Grammatik G effizient alle nutzlosen Symbole finder. l~ bedeutet, dass ein X c EN nicht nutzlos ist, wenn eine Ableitung S = ~ irgendwelche c~, ~ E (EN U ET)* existiert.
ctX~ fiir
10.4 Kontextfreie Grammatiken und Kellerautomaten
381
GemS~t3 der Definition yon nutzlosen Symbolen in Aufgabe 10.30 ist es oftensichtlich, dass das Entfernen aller nutzlosen Symbole aus EN und aller Regeln, die nutzlose Symbole beinhalten, keinen Einftuss auf die dutch G generierte Sprache hat. Im Folgenden sagen wir, dass eine kontextfreie G r a m m a t i k G n o r m i e r t ist, falls G
(i) keine nutzlosen Symbole, (ii) keine Regeln der Form X ~ A, und (iii) keine Kettenregeln enthS~lt. Ausgehend aus den normierten kontextfreien G r a m m a t i k e n kann m a n noch ,,regulgrere" Formen erreichen. D e f i n i t i o n 10.5. Sei G = (EN~ ET~ P~ S) eine kontextfreie Grammatik. Wit sagen, dass G in C h o m s k y - N o r m a l f o r m ist, falls alle Regeln yon der Form
A ~ B C A
---+ a
fiir A, B, C E EN, oder fiir A E EN und a E ET
sind. Wit sagen, dass G in G r e i b a c h - N o r m a l f o r m tionen von der Form A
~
ac~fiirAEEN, aEEr
ist, wenn alle Produk-
undc~EE N
sind. S a t z 10.4. Fiir jede kontextfreie Grammatik G mit A ~ L(G) existieren zu G iiquivalente Grammatiken in Chomsky-Normalform und in Greibach-Normalf o cIlt .
Der formale Beweis von Satz 10.4 ist zu technisch 11 und so verzichten wir auf ihn in dieser Einfiihrung in die Theorie der formalen Sprachen. Wir deuten nur an, wie m a n eine Chomsky-Normalform erzeugen kann. Zuerst werden nutzlose Symbole, dann (X ~ A) P r o d u k t i o n e n 12 und K e t t e n p r o d u k t i o n e n entfernt. Die normierte kontextfreie G r a m m a t i k hat dann Regeln A~aundA~ctf/ir
Ictl_>2.
Die Regel A ~ a f/ir A E EN und a E ET ist schon in Chomsky-Normalform. Wie m a n die Regeln A ~ c~ fiir a E (EN O ET)*, Ictl _> 2, ersetzt, erkl~ren wir llinsbesondere die Konstruktion einer Grammatik in Greibach-Normalform. 12Weil A ~ L(G), brauchen wir S ~ A auch nicht.
10 Grammatiken und Chomsky-Hierarchie
382
anschaulich an einigen Regelbeispielen. Zuerst nehmen wir f/Jr jedes a E ET ein neues Nichtterminal X~ und erweitern P u m die Produktion X a ----+ a .
Danach ersetzen wir alle Terminalsymbole a in den rechten Seiten der Produktionen durch die entsprechenden Nichtterminale Xa. Auf diese Weise wird, zum Beispiel, die Regel A ~
bBCaaAc
durch die Regel
A
XbBCXaX AX
ersetzt. Jetzt haben alle Regeln die Form A ~ a oder A ~ c~ fiir ein c~ E (EN)*, I~1
2o
Es bleibt noch iibrig, jede Produktion A ~ Y1Y2... Yk mit k > 2 und Yi E EN fiir i = 1 , . . . , k zu ersetzen. Wir nehmen fiir diese Regel k - 2 neue Nichtterminale Z2, Z a , . . . , Zk-,, wobei die Bedeutung von Zi ist, dass m a n aus Zi nichts anderes als YiYi+l... Yk ableiten kann. Dann ersetzen wir A ~ Y~Y2...Yk
durch die Regeln A -----+Y I Z 2 ,
Z 2 ---+ Y 2 Z 3 ,
...,
Z i ---+ Y i Z i + l ,
...,
Z k _ 1 ---+ Yk_l]Tk.
Wenn m a n diese Prozedur fiir jede Regel A + ct mit Ictl > 2 mit immer neuen Nichtterminalen Zi realisiert, erhglt m a n eine kontextfreie G r a m m a t i k in Chomsky-Normalform. Aufgabe 10.31. Wir haben im Beispiel 10.5 eine kontextfreie Grammatik fiir die Sprache Lge gesehen. Wenn wir in dieser Grammatik auf die Regel S + A verzichten, akzeptiert diese Grammatik die Sprache Lye- {A}. Konstruiere aus dieser Grammatik eine 5~quivalente Grammatik in Chomsky-Normalform. Unsere ngchste Aufgabe ist es, eine Methode zu entwickeln, mit der m a n ffir konkrete Sprachen L die Tatsache L ~ s (L ist nicht kontextfrei) beweisen kann. Die Strategie ist ghnlich wie bei regulgren Sprachen. Eine Wiederholung
10.4 Kontextfreie Grammatiken und Kellerautomaten
383
eines Nichtterminals X in der Ableitung aus diesem Nichtterminal fiihrt zur MSglichkeit, das entsprechende Stiick der Ableitung
X beliebig oft zu wiederholen und dadurch WOrter
iX/3i fiir ein beliebiges i abzuleiten. Der Unterschied zu den regul~tren Sprachen ist der, dass man, anstatt auf einer Stelle zu ,,pumpen", auf zwei Stellen gleichzeitig ,,pumpt". L e m m a 10.6. P u m p i n g - L e m m a fiir k o n t e x t f r e i e S p r a c h e n Fiir jede kontextfreie Sprache L gibt es eine n u r von L abhgngige K o n s t a n t e nL, 80 dass fiir alle W S r t e r z E L m i t [z[ _> nL eine Zerlegung Z =
Uvwxy
von z existiert, so dass
(iii) {uviwxiy l i E IN} c_ L. Beweis. Sei G = (EN, ET, P, S) eine normierte kontextfreie Grammatik mit L ( G ) = L - {A}. Sei m die maximale LS~nge der rechten Seite einer Produk-
tion und damit die maximale MS~chtigkeit ~3 m6glicher Verzweigungen in den Ableitungsb~tumen von G. Wir w~thlen Tt L - - T ~ E N +1.
Ftir jedes z E L mit Iz] _> nL muss jeder Ableitungsbaum fiir z genau Izl B15~tter haben und somit ist die Tiefe (die maximale PfadlS~nge zwischen der Wurzel und einem B latt) mindestens
12NI + 1. Betrachten wir einen Pfad mit maximaler LS~nge von der Wurzel zu einem Blatt, daher von der LS~nge mindestens ]ENI + 1. Auf diesem Weg muss mindestens ein Nichtterminal als Markierung zweimal vorkommen. Wir suchen die 13die Anzahl der aus einem Knoten ausgehenden Kanten
10 Grammatiken und Chomsky-Hierarchie
384
u
v
w
x
y
Fig. 10.3
erste Wiederholung eines Nichtterminals ausgehend yon dem Blatt in Richtung der Wurzel. Damit finden wir zwei Knoten Vl und v2 (Fig. 10.3), so dass folgendes gilt:
(i)
V1
(ii)
V1
und v2 haben die gleiche Markierung A E EN. und v2 liegen ~uf einem Pfad zwischen einem Blatt und der Wurzel und Vl ist n~her an der Wurzel als v2. (iii) Der Teil des Pfades von Vl zu dem Blatt hat eine LSmge kleiner als
Ir l
+ 1.
GemS]3 Fig. 10.3 erhalten wir die Zerlegung von z. Ausgehend von S existiert eine Ableitung S ~c
u A y mit u, y E E T.
(10.2)
Wenn m a n den Teilbaum mit der Wurzel v2 betrachtet, gibt es eine Ableitung A =*G w mit w E E ) . Der Teilbaum mit der Wurzel A ~ G* v A x ~ G* v w x
(10.3) V1
garantiert die Existenz der Ableitung (10.4)
10.4 Kontextfreie G r a m m a t i k e n und K e l l e r a u t o m a t e n
385
ftir v, x E E}. Zusammenfassend definiert die Ableitung S ~ G u A y ~ c u v A y x =~c u v w y x
(10.5)
die Zerlegung z -- u v w y x
von z. Weil G eine normierte kontextfreie Grammatik ist, ist die L/~nge der rechten Seite der in Vl ausgesuchten Regel mindestens 2. Weil keine Regeln X --+ A vorkommen, k6nnen v und x nicht beide leer sein. Somit gilt (i), d.h.
I w l _ 1. Weil der Pfad von v, fiber v2 zu dem Blatt die Lgnge hSchstens IENI + 1 hat 14, ist die Anzahl der Blgtter des Teilbaumes mit der Wurzel v, und Verzweigungsgrad hSchstens m durch /t L -- ?Tt EN +1
yon oben beschrgnkt. Also gilt IV W X
~ ?%L
und somit ist (ii) erfiillt. Wenn man die ableitungen (10.2) und (10.3) kombiniert, erhS~lt man die a b leitung S ~G
uAy
~G
uwy-uv
von u w y und somit ist u v ~ 1 7 6
~
~
in L.
Wenn wir mit der Ableitung (10.2) beginnen, dann i-real den ersten Teil von (10.4) anwenden und am Ende die a b l e i t u n g (10.3) einsetzen, erhalten wir die Ableitung * u A y =:=>G * u v A x y =vc* ... =vc* uv~Ax~y =vG * uv~wx~y S =:=>c
von uv~wz~y in G fiir jedes i e IN - {0}. Somit gilt auch (iii) und das Lemma wurde bewiesen. D 14Man bemerke, dass d a n k unserer V o r a u s s e t z u n g dieser P f a d der lgngste in dem T e i l b a u m mit der Wurzel vm ist.
10 Grammatiken und Chomsky-Hierarchie
386
Bei der Anwendung des Pumping-Lemmas fiir kontextfreie Sprachen geht man genauso vor wie bei der Anwendung des Pumping-Lemmas ftir regul~re Sprachen. Fiir eine gegebene Sprache L wollen wir zeigen, dass das PumpingLemma fiir L nicht gilt. Fiir eine gegebene Sprache L haben wir zuerst die Wahl eines geniigend langen Wortes z aus L, weil das Pumping-Lemma fiir alle ausreichend langen WSrter gelten muss. Dann m/issen wir beweisen, dass f/Jr jede Zerlegung yon z - u v w x y , die (i) und (ii) erfiillt, die Bedingung (iii) nicht gilt. Wit prS~sentieren eine Anwendung dieser Strategie in folgendem Beispiel. B e i s p i e l 10.6. Wir zeigen, dass die Sprache L = {a~b~c~ln
E IN}
keine kontextfreie Sprache ist. Um dies zu beweisen, wS~hlen wir das Wort z = a nL bnL Cn L
das offensichtlich lgnger als die durch das Lemma gegebene Konstante rtL ist. Offensichtlich beinhaltet jede Zerlegung von z = u v w x y mit der Eigenschaft (ii) Ivwxl <_ 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) (ii) (iii) (iv) (v)
{0nl~0~2 In E IN}, {a~b~c'~ l m <_ n, m , n c IN}, {aibdck l i, j, k E iN, k = m a x { i , j } } , { w w I w C {0, 1}*},
{0ili2 Ii c IN}.
Aufgabe 10.33. Die folgenden Sprachen sind kontextfrei. Deswegen kann man ihre Kontextfreiheit 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? Es gibt Situationen, wo es sehr schwer oder umst~ndlich ist, das P u m p i n g L e m m a fiir den Beweis yon L ~ s anzuwenden. Dieses I n s t r u m e n t fiir das Beweisen der Nichtexistenz einer kontextfreien G r a m m a t i k fiir eine gegebene Sprache L kann m a n verbessern, indem m a n sich in dem ausgesuchten Wort einige (aber mindestens nL vide) Symbole m a r k i e r t u n d d a n n nur die Zerlegungen b e t r a c h t e t , die (i) und (ii) fiir die a n z a h l der m a r k i e r t e n Symbole erfiillen. Diese Uberlegung fiihrt z u m folgenden Lemma. 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 von z existiert, so dass
(i)
v x mindestens einen markierten Buchstaben enthiilt, v w x hSchstens nL markierte Buchstaben enthiilt, und { u v i w z i y l i E IN} C L.
Aufgabe 10.35. Beweisen Sie das Lemma von Odgen. [Hinweis: Nehmen Sie eine Grammatik in Chomsky-Normalform als eine Darstellung von L. W~hlen Sie einen Pfad in dem Syntaxbaum fiir z ausgehend von der Wurzel und der Kante folgend, die zu einem Teilbaum mit mehreren markierten Symbolen fiihrt.] Der Vorteil des L e m m a s von Odgen liegt nicht nur darin, dass m a n die Beweise von L ~ s vereinfachen kann. Der H a u p t v o r t e i l des L e m m a s von Odgen ist, dass seine A n w e n d u n g fiir einige Sprachen zu dem Beweis L ~ L;2 fiihrt, obwohl diese Tatsache mit dem P u m p i n g - L e m m a fiir kontextfreie Sprachen nicht zu beweisen ist. B e i s p i e l 10.7. B e t r a c h t e n wir die Sprache
L-
{a~blcJd k l n , l , j , k
E lN-{O},
1-j-k}O{b,c,d}*
10 Grammatiken und Chomsky-Hierarchie
388
Zuerst zeigen wir, dass das P u m p i n g - L e m m a f/Jr kontextfreie Sprachen nicht helfen kann, u m L r Z;2 nachzuweisen. Sei z ein beliebiges 15 Wort aus L. Wir unterscheiden zwei FS~lle. (i)
Das W o r t z enthiilt kein S y m b o l a. Dann ist u v i w x i y in L fiir alle i E IN fiir jede Zerlegung z - u v w x y von z, weil {b, c, d}* c_ L. (ii) Das W o r t z enthiilt m i n d e s t e n s ein S y m b o l a, d.h. z - a~blcJd ~ ftir n, l, j, k E IN, n >_ 1, 1 - j - k. In diesem Fall gibt es folgende Zerlegung von z: z-
u v w x y mit u -
A, v - A, w -
A, x -
a und y -
a ~ - l b l d d ~,
die alle drei Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt, weil insbesondere uviwxiy-
a~+i-lblcJdk E L.
Also gibt es fiir jedes Wort z E L eine Zerlegung des Wortes z, so dass die Bedingungen (i), (ii) und (iii) des P u m p i n g Lemmas erftillt sind. Trotzdem ist L keine kontextfreie Sprache, und wir zeigen dies mit Hilfe des Lemmas von Odgen. Sei z-
ab l cld 1 E L mit 1 > nL.
Wir markieren alle Symbole des Teilwortes bcld. Aus der Bedingung (ii) des Lemmas yon Odgen erhalten wir, dass jede Zerlegung z - u v w x y yon z die Eigenschaft hat, dass v w x entweder kein Symbol b oder kein Symbol d enth~lt. Weil v x mindestens ein markiertes Symbol enthglt, wird in dem Wort uv2wx2y
mindestens eine Anzahl eines Buchstaben e E {b, c, d} erhSht ohne eine andere Anzahl eines Buchstaben h E {b, c, d } - {e} zu erh6hen. Damit gilt u v 2 w x 2 y L. D Aufgabe 10.36. Finden Sie eine andere Sprache L ~ 122, fiir die keine Anwendung des Pumping-Lemmas zu dem Beweis von L ~ 122 fiihren kann, fiir die abet die Nichtkontextfreiheit von L dutch das Lemma von Odgen bewiesen werden kann. 15Wir fordern sogar nicht, dass z >_ nL.
10.4 Kontextfreie Grammatiken und Kellerautomaten
389
A u f g a b e 10.37. Beweisen Sie mit der Hilfe des Lemmas von Odgen, dass folgende Sprachen nicht kontextfrei sind. (i) {albJc k l,j, k E IN, l ~=j , j =/=h und l -/= h}, (ii) {Onl'~Okln, m , k E IN, m - max{n,k}}, (iii) {0~1~2 k n, k E I N , h-/=n}.
Zur Beschreibung von regulgren Sprachen haben wir Berechnungsmodelle wie endliche Automaten und nichtdeterministische endliche Automaten sowie den Generierungsmechanismus yon regul/~ren Grammatiken kennengelernt. Die kontextfreien Grammatiken stellen eine natiirliche und einfache Form yon Generierungsverfahren dar und unsere ngchste Frage ist, ob man fiir die entsprechende Klasse von kontextfreien Sprachen auch ein Berechnungsmodell finden kann, das genau die Sprachen dieser Klasse akzeptiert. Anders gesagt, wir hgtten gerne eine Klasse yon Maschinen, so dass fiir jede kontextfreie Grammatik G eine zu G gquivalente Maschine aus dieser Klasse existiert und umgekehrt. Im Folgenden zeigen wir, dass ein solches Berechnungsmodell existiert. Dabei ist das Wichtigste, dass dieses zu kontextfreien Grammatiken gquivalente Maschinenmodell nicht kiinstlich erzeugt wird. Das Umgekehrte gilt. Das Modell ist im Gegenteil unter den Maschinenmodellen genauso nat/irlich, wie die kontextfreien Grammatiken unter den Grammatiken. Dieses Berechnungsmodell heif3t nichtdeterministischer Kellerautomat. Es nutzt die Datenstruktur des Kellers (last-in-first-out Speicherstrategie), die die natiirlichste Datenstruktur zur Implementierung von rekursiven Programmen ist. Wir beschreiben zuerst das Modell yon nichtdeterministischen Kellerautomaten auf eine anschauliche, nicht vollstgndig formale Weise. Ein Kellerautomat a
Eingabeband -~ Ein-Weg Lesekopf endliche q Kontrolle
Keller
Fig. 10.4
10 Grammatiken und Chomsky-Hierarchie
390
hat ein Eingabeband, das am Anfang das Eingabewort enthS~lt. Dieses Eingabeband kann genau wie bei endlichen A u t o m a t e n nur eingeschr~tnkt benutzt werden. Der Lesekopf kann aus dem Eingabeband nur lesen und darf sich nur yon links nach rechts bewegen. Dadurch dient das Eingabeband nur zum Einlesen der Eingabe und kann nicht als Speicher benutzt werden. 16 Es gibt aber einen Unterschied zu endlichen A u t o m a t e n in der Arbeit mit dem Eingabeband. Ein Kellerautomat ist nicht gezwungen, sich nach dem Lesen eines Buchstabens aus dem Eingabeband mit dem Lesekopf nach rechts zu bewegen. Er kann mit dem Kopf gewisse Zeit auf dem gleichen Feld des Bandes stehen bleiben und in dieser Zeit einige Rechnungen auf den Daten im Keller durchfiihren. Die endliche Kontrolle ist wie bei allen bisherigen Rechnermodellen durch eine endliche Menge von Zust~tnden gesteuert. Den Keller kann man als potenziell unendliches Band mit eingeschr~nkter Nutzung betrachten. Der Kellerautomat kann nur auf das Top-Symbol ganz oben im Keller zugreifen und somit nur dieses Symbol lesen (Bild 10.4). Wenn man den Keller nicht vertikal wie in Bild 10.4, sondern horizontal wie in Bild 10.5 zeichnet, dann bedeutet es, dass man nur den Inhalt der rechtesten nicht-leeren Zelle des Bandes lesen kann. Wenn man sich irgendwelche Daten anschauen will, die tiefer
zl
I
IxI Keller
9
o
.
unendlich viele leere Speicherzellen
Fig. 10.5 in dem Keller vorliegen, dann geht dies nur so, dass man zuerst dariiber liegende Daten 16schen und dadurch auch unwiderruflich vergessen muss, um die gewiinschten Daten ganz oben zugreifbar im Keller zu haben. Genauer gesagt hat die Transitionsfunktion drei Argumente: - das gelesene Symbol auf dem Eingabeband - den Zustand der endlichen Kontrolle - das Top-Symbol des Kellers. In einer Aktion kann der Kellerautomat den Zustand 5~ndern, den Lesekopf ein Feld nach rechts bewegen und das Top-Symbol X des Kellers durch ein Wort c~ ersetzen. Wenn das Wort c~ das leere Wort A ist, dann betrachten wir dies als das L6schen des Top-Symbols X, was die Schrumpfung des Kellerinhaltes 16Wie es
bei der Turingmaschine ist.
10.4 Kontextfreie Grammatiken und Kellerautomaten
391
bedeutet. Wenn das Top-Symbol X durch ein nichtleeres Wort c~ = Y1Y2... Yk ersetzt wird, dann steht danach Y1 in dem Feld, wo X vorher stand, und die nS~chsten k - 1 Symbole Y2,..., Yk liegen jeweils in den nachfolgenden 17 k - 1 Feldern des Kellers. Wenn die ganze Eingabe gelesen wurde, is betrachtet man zwei M6glichkeiten, das Akzeptieren der Eingabe zu definieren. Eine M6glichkeit ist, die Akzeptierung fiber eine ausgezeichnete Menge von akzeptierenden Zustgnden zu definieren wie bei endlichen Automaten. Die zweite M6glichkeit, die wir auch in der folgenden formalen Definition vorziehen, ist zu akzeptieren, wenn der Keller leer ist (geleert wurde). Am Anfang jeder Berechnung steht im Keller ein einziges Sonderzeichen Z0 und so weifi der Kellerautomat, w a n n e r ganz unten im Keller ist und entscheidet selbst, ob er dieses letzte Zeichen in dem Keller 16schen will oder nicht. D e f i n i t i o n 10.6. Ein n i c h t d e t e r m i n i s t i s c h e r K e l l e r a u t o m a t 19 ( N P d A ) ist ein 6-Tupel M = (Q, E, F, 5, qo, Zo), wobei die Elemente des Tupels folgende Bedeutung haben:
(ii) (ii/)
Q ist eine endliche Menge, die Z u s t a n d s m e n g e genannt wird, E ist das E i n g a b e a l p h a b e t {wie iiblich werden genau alle WSrter aus E* als mSgliche Eingaben betrachtet} , F i s t das K e l l e r a l p h a b e t 2~ {F beinhaltet alle Symbole, die im Laufe von Berechnungen im Keller auftreten diirfen}, qo E Q ist der A n f a n g s z u s t a n d {mit der gleichen Bedeutung wie bei endlichen Automaten}, Zo E F ist das I n i t i a l i s i e r u n g s s y m b o l des Kellers {Jede Berechnung von M startet in qo mit Zo als einzigem Inhalt des Kellers} , 5 ist eine Abbildun9 yon Q • (E U {A}) • F in endliche Teilmengen yon
Q• { Wenn man A als zweites Argument hat, widerspiegelt dies die Situation, in der M das Eingabesymbol nicht lesen will und damit in seiner Aktion den Lesekopf nicht bewegen wird. Wenn das zweite Argument ein Symbol lrvorher leeren lSwie bei endlichen Automaten 19pushdown automaton im Englischen 2~ zu dem Arbeitsalphabet einer Turingmaschine
10 Grammatiken und Chomsky-Hierarchie
392
a E E ist, wird der Lesekopf i m m e r automatisch ein Feld nach rechts voranschreiten} . Eine K o n f i g u r a t i o n
von M i s t ein Tripel
(q,w, c~) E Q • E* • F*~
wobei - q E Q der aktuelle Zustand ist, - w E E* der bisher nicht gelesene Teil der Eingabe ist, {Der Lesekopf zeigt auf das Feld mit dem ersten Symbol von w, falls w # A} - c~ E F* der aktuelle Kellerinhalt ist. Ein S c h r i t t ~M von M i s t
eine Relation auf Konfigurationen, definiert dutch
{ M liest im Zustand q das Eingabesymbol a und das Kellersymbol X . Danach geht M in den Zustand p, bewegt den Lesekopf ein Feld nach rechts und ersetzt das Top-Symbol X des Kellers dutch/3}, und falls (p,/3) E 5(q, A, X ) { M entscheidet sich im Zustand q, kein Eingabesymbol zu lesen, und deswegen iindert M n u t den Zustand und ersetzt X dutch/3 im Keller, ohne den Lesekopf auf dem Eingabeband zu bewegen}. Eine e n d l i c h e B e r e c h n u n g y o n M i s t eine Folge yon I(onfigurationen CI, C2~ . . . , C,~, so dass Ci ~M Ci+l fiir i = 1, 2~ . . . , m - 1 gilt. Fiir jedes Wort x E E* ist (qo, x, Zo) die A n f a n g s k o n f i g u r a t i o n
yon M
a u f x.
Eine Berechnung Co, C i r . . . , C,~ yon M heiflt einc a k z e p t i e r e n d e n u n g y o n M a u f x , falls
Co = (qo,
Zo)
= (;, A, A)
Berech-
10.4 Kontextfreie Grammatiken und Kellerautomaten
393
fiir irgendeinen Zustand p E Q. Wie iiblich 21 bezeichnet ~*M die reflexive und transitive Hiille von der Relation ~M. Die y o n d e n Kellerautomaten M akzeptierte Sprache L(M) ist deftniert dutch L(M)
: {w E E* I (q0, w, Zo) ~
(p, A, A) fiir ein p E (2}.
Wir beobachten, dass ein NPdA mit leerem Keller nicht arbeiten kann. Wenn daher in einer Berechnung der Keller geleert wurde und das Eingabewort noch nicht zu Ende gelesen wurde, wird in dieser Berechnung die Eingabe nicht akzeptiert. Andererseits liegt unten im Keller am Anfang das Sonderzeichen Z0, und wenn der NPdA dieses Initialisierungssymbol nirgendwo anders verwendet oder es nie durch ein anderes Symbol ersetzt, dann weif3 er immer, wann er auf dem untersten Boden des Kellers ist. 22 Eine andere wichtige Bemerkung ist, dass ein NPdA auf einer Eingabe auch unendliche Berechnungen haben kann. Dies kommt dadurch zustande, dass er beliebig viele Schritte machen kann, ohne ein Eingabesymbol zu lesen (sogenannte )~-Schritte). ZusS~tzlich sollen wir nicht vergessen, dass die Gr6t3e des Kellers nicht beschrS~nkt ist. Ein NPdA benutzt zwei M6glichkeiten zur nichtdeterministischen Verzweigung von Berechnungen. Zuerst kann er sich entscheiden, ob er das Eingabesymbol liest oder einen A-Schritt realisieren will. In diesen beiden Fgllen kann er sich fiir die gegebenen Argumente aus einer endlichen Menge yon Aktionen eine aussuchen. Im Folgenden geben wir zwei Beispiele von Kellerautomaten. B e i s p i e l 10.8. Wir bauen einen NPdA f/ir die nichtregulSze Sprache L = {0~1~ I n E IN}. Sei
-/~ = ({q0, ql, q2}, {0, 1}, {0, Z0}, ~, q0, Z0). Um A akzeptieren zu k6nnen, nehmen wir
(qo, a, Zo) : {(qo, a), (ql, Zo)} 21wie bei endlichen Automaten und Turingmaschinen 22Also trifft er gezielt die Entscheidung, den Keller zu leeren.
10 Grammatiken und Chomsky-Hierarchie
394
Im Zustand ql realisieren wir die Speicherung der Anzahl der Nullen des lgngsten Prefixes der Eingabe, das nur aus Nullen b e s t e h t
~(q,, o, Zo) (~(ql, o, o) -
{(q,, ZOO)}, {(ql, oo)}.
Bei dem ersten Auftreten des Symbols 1 wechselt M in den Zustand q2 und 16scht in diesem Zustand jeweils eine Null aus dem Keller fiir jede gelesene 1 auf dem Eingabeband.
~(q~, 1, o) 6(q2,1,o) -
{(q~, a)}, {(q2,t)}.
Durch 6(q2,0, X ) - 0
fiir
XC{O, Zo}
garantieren wir, dass kein Wort mit mehr als einem Wechsel zwischen Nullen und Einsen bearbeitet und so akzeptiert werden kann. Mit der Aktion
5(q~, a, Zo) - {(q~, a)} akzeptieren wir alle W6rter der Form 0~1 ~ fiir n _> 1. Wenn 0~1 ~ nur echtes Prgfix der Eingabe ist, wird die Eingabe nicht akzeptiert, weil M dem leeren Keller nicht weiterarbeiten kann. Im Detail bedeutet dies, dass fiir alle nicht eingegebenen Argumente die Menge der m6glichen Aktionen 0 setzen.
ein mit wir auf
Als Beispiel einer akzeptierenden Berechnung geben wir die Berechnung (qo, 0 a13, Zo) FM
(ql,
~ (q~, 1~, ZoOOO) ~ ~-~ (q2, 5, 5) von M auf 0 a la.
(ql,
0213, ZoO) FM
(q~, 1 ~, ZoOO) ~
(q~, 1, ZoO) ~
0al 3, Zo) FM
(ql,
01 a, Zo00)
(q~, ~, Zo) D
Aufgabe 10.38. Entwerfen Sie einen NPdA fiir die Sprache {0~1~ I rt c IN-{0}}, der nur einen Zustand hat. Aufgabe 10.39. Beweisen Sie, dass der Automat aus Beispiel 10.8 wirklich die Sprache L = {0nl ~ I n c IN} akzeptiert. Im Einzelnen bedeutet dies zu zeigen, dass fiir jedes Wort 0nl n eine akzeptierende Berechnung von M existiert und dass eine akzeptierende Berechnung nur auf einem Wort aus L vorkommen kann.
10.4 Kontextfreie Grammatiken und Kellerautomaten
395
Aufgabe 10.40. Entwerfen Sie nichtdeterministische Kellerautomaten fiir die folgenden Sprachen: (i) {0~12~+3 In E IN}, (ii) {OilJ2k l i,j ,k E IN, k >_ i + j}, (iii) {0ilJ2 k I i, j, k c IN, i = j oder k = 2i}. B e i s p i e l 10.9. B e t r a c h t e n wir die Sprache LR-
{ w ~ w R I w E {0, 1}*}
fiber dem A l p h a b e t {0, 1, ~}. Wir beschreiben einen N P d A M mit L ( M ) = L, ohne die detaillierte Darstellung yon (~ anzugeben. M arbeitet auf einer E i n g a b e x~y mit x E {0, 1}* wie folgt. Jeder gelesene B u c h s t a b e auf dem E i n g a b e b a n d wird zuerst im Keller gespeichert. Somit erreicht M einmal die Konfiguration
(q0,
z0 ).
Nach dem ersten Lesen von ~ ~ndert M den Z u s t a n d u n d beginnt, das oberste Kellersymbol mit dem gelesenen E i n g a b e s y m b o l zu vergleichen. Wenn die Symbole fibereinstimmen, wird das oberste Kellersymbol gel6scht. Auf diese Weise kann m a n iiberprfifen, ob y = x R, weil das Wort x so in dem Keller gespeichert wird, dass es vom Ende z u m Anfang aus d e m Keller gelesen wird. Wenn M den Kellerboden mit dem Symbol Z0 erreicht, erhS~lt er die M6glichkeit, in einem A-Schritt den Keller zu leeren. D Aufgabe 10.41. Geben Sie eine formale Beschreibung des NPdA aus Beispiel 10.9 an. Aufgabe 10.42. Entwerfen Sie nichtdeterministische Kellerautomaten fiir die folgenden Sprachen: (i) (ii) (iii) (iv)
{wwR I w c {a,b}*} {wuwR I w E {a,b}*,u E {0,1}*} {wc{O,1}*iiwi0=iwI1} {w c {0,1}* I Iwl0 _< 3lWll + 4}.
Aufgabe 10.43. * Definieren Sic einen nichtdeterministischen Kellerautomaten, der ~hnlich wie ein NEA mit akzeptierenden Zust~nden akzeptiert, d.h. er akzeptiert, wenn das ganze Eingabewort gelesen wurde und er sich in einem akzeptierenden Zustand befindet. Zeigen Sie, dass dieses Modell von NPdA ~tquivalent zu unserem Modell ist, d.h. zu jedem NPdA, der mit akzeptierenden Zusts akzeptiert, existiert ein s NPdA, der mit dem leeren Keller akzeptiert, und umgekehrt.
10 Grammatiken und Chomsky-Hierarchie
396
Jetzt zeigen wir, dass die NPdAs genau die Klasse der kontextfreien Sprachen akzeptieren. Wir beginnen mit der einfacheren Richtung, zu jeder kontextfreien G r a m m a t i k einen 5~quivalenten N P d A zu konstruieren. 10.8. Sei L sine kontextfreie Sprache, die A nicht enthiilt. Dann existiert ein NPdA M, so dass L - L ( M ) gilt.
Lemma
Beweis.
Sei G - (EN, ET, P , S ) eine kontextfreie G r a m m a t i k in GreibachNormalform mit L - L(G). Die Idee ist, einen N P d A M mit nur einem Zustand zu konstruieren, so dass fiir jede Ableitung 2a
mit w E E~ und c~ E E~v eine Berechnung von M existiert, in der bisher das Wort w gelesen wurde und der Keller das Wort c~R enthSJt. Dieses soll deswegen m6glich sein, weil G in jedem Ableitungsschritt ein Terminalsymbol generiert, was m a n durch das Lesen dieses Symbols auf dem Eingabeband yon M nachahmen kann. Formal setzen wir M - ({q0}, ET, EN, 5, q0, S), wobei
fiir alle a E ET und A E EN. Wir beweisen jetzt L(G) - L(M), indem wir fiir jedes i E IN zeigen: "G kann genau dann in i Linksableitungsschritten die Wortform w ~ . . . w~c~fiir wj E ET und c~ E E~v erreichen (d.h. S ==>~ w ~ . . . w~c~), wenn M in i Schritten w ~ . . . w~ lesen und dabei die Konfiguration (q0, x, c~R) fiir ein beliebiges x erreichen kann." Wir beweisen diese Aussage mit Induktion bez/iglich i. Fiir i - 0 ist die Beh a u p t u n g trivial. Sei nun i _> 1 und die B e h a u p t u n g gelte fiir alle j < i. Sei
S :=~iG--1 WlW2... Wi_lA/3 ~ c
WlW2"'" Wi--lWi~
23Wir bemerken, dass alle W6rter einer Linksableitung einer Grammatik in GreibachNormalform aus E~. E~v sein miissen.
10.4 Kontextfreie Grammatiken und Kellerautomaten
397
die Linksableitung yon W l . . . WiO[ in G m i t c t = -yfl. In dem letzten Ableitungsschritt wurde die Regel A ~ wit angewendet. Aus der K o n s t r u k t i o n yon M folgt d a n n (Fig. 10.6) (10.6)
(q0, 7R) E 5(q0, wi, A)
Durch die I n d u k t i o n s a n n a h m e und die A n w e n d u n g von (10.6) erhalten wir fiir ein beliebiges x E E~
(qo, Wl . . . Wi--lWiX, S)
~i~l
(qo, WiX, /3RA)
~M (qo, x,/3RTR).
Weil flR7R = (Tfl)R = c~R, ist d a m i t der Beweis abgeschlossen. Die Beweisrichtung von einer Berechnung von M zu einer Linksableitung von G ist analog und wir iiberlassen dies dem Leser. D
1w2 Iw lx
T
q0
9
WllW21 I A ~ wi'y
/
q0
I
Fig. 10.6 Der Berechnungsschritt des NPdA M, der der Anwendung der Regel A ~ wit in der Ableitung von G entspricht. Aufgabe 10.44. Erweitern Sie die Aussage yon Lemma 10.8 auch fiir kontextfreie Sprachen, die A beinhalten. Jetzt wollen wir zu jedem N P d A M eine zu M gquivalente kontextfreie G r a m m a t i k konstruieren. Zuerst b e m e r k e n wir, dass diese Aufgabe einfach ist, wenn M nur einen Z u s t a n d hat, also wenn M unabhS~ngig von seinen ZustS~nden arbeitet. Lemma textfrei.
10.9. Sei M ein NPclA mit nut einem Zustand. Dann ist L(M) kon-
10 Grammatiken und Chomsky-Hierarchie
398
Aufgabe 10.45. Beweisen Sie Lemma 10.9. [Hinweis: Die Konstruktion von G aus Mist nur eine Umkehrung der Konstruktion von M aus G in Lemma 10.8]. Was k6nnen wir aber bei allgemeinen nichtdeterministischen Kellerautomaten tun? {)berraschenderweise kSnnen wir zu jedem NPdA einen gquivalenten konstruieren, der nur einen Zustand besitzt. Die Idee ist dabei, die durch die Zustgnde gespeicherte Information in dem Keller zu speichern. Zum Beispiel statt einem obersten Symbol X in den Keller, wiirde man das Symbol (X, q) schreiben, wobei q der aktuelle Zustand ist. Das geht so weit gut in Berechnungsschritten, in denen man etwas in den Keller schreibt. Wenn man aber nur das oberste Kellersymbol 16scht, besteht die M6glichkeit nicht, den aktuellen Zustand in das oberste Symbol hineinzuschreiben (einzukodieren). Das folgende Lemma zeigt uns, wie man diese Schwierigkeit mit Hilfe des Nichtdeterminismus tiberwinden kann. L e m m a 10.10. Fiir jeden nichtdeterministischen Kellerautomat M existiert ein iiquivalenter nichtdeterministischer Kellerautomat M1, der nut einen Zustand hat. Beweis. Sei M = (Q, E, F, ~, q0, Z0) mit [Q[ > 1 ein Kellerautomat. Unsere Aufgabe ist jetzt, einen Kellerautomaten
]~/1 -- (Q1, }--],rl, (51, q~, Z~) mit Q1 - {q~} und L ( M ) - L(M1) zu konstruieren. Die einfachste Idee wgre, die Arbeitssymbole aus P 1 als Paare (p, A) E Q • P zu betrachten und auf diese Weise den aktuellen Zustand p C Q immer in dem obersten Kellersymbol zur Verfiigung zu haben. Diese Idee funktioniert aber nicht, weil bei der Simulation yon Berechnungsschritten, in denen das oberste Kellersymbol ohne Ersatz gel6scht wird, keine M6glichkeit besteht, den neuen aktuellen Zustand zu speichern (die Information fiber diesen Zustand zu bewahren). Deswegen wghlen wir Pl=0XPX0,
wobei die Bedeutung von A ' = (q,A,p) E r l ist, dass der Kellerautomat M das Symbol A nur bei einem /Ubergang vom Zustand q in den Zustand p 16schen dare Wenn A' das oberste Symbol des
10.4 Kontextfreie Grammatiken und Kellerautomaten
399
Kellers von M1 ist, ist q der aktuelle Zustand von M. Wie soll uns diese Idee mit einem zweiten gespeicherten Zustand helfen? Wir wollen immer darauf achten, dass der Kellerinhalt wie in Fig. 10.7 aussieht. q pl p2 p3 pi P/+I
A1 A2 A3 A4
pl p2 p3 p4
Ai+l pi+l A i + 2 P~+2
Fig. 10.7 Formal bedeutet dies, wenn ein Tripel (q, A, p) direkt fiber einem Tripel (r, B, s) im Keller liegt, so muss p - r sein. Wenn dies so ist und wir das L6schen yon A 1 in M (von (q, A, p) in M1) nur b e i m / J b e r g a n g von q nach p erlauben, dann enthglt das neue oberste Kellersymbol (r, B, s) - (p, B, s) den aktuellen neuen Zustand p.
Wie erreicht man, dass der Keller immer einen Inhalt wie in Fig. 10.7 enthiilt ? Dazu nutzt m a n den Nichtdeterminismus von M1. Wenn M aus dem Zustand r nach s iibergeht und dabei das oberste Kellersymbol A durch C D E ersetzt
(d.h. (~, ODE) e a(~, a, A) far ~in a e P~), d ~ bol 24
~r~t~t ~ 1 d ~ ob~r~t~ Sym-
(r,A,h) durch die drei Symbole
(~,c, D) 24Wenn (r, A, s) nicht das oberste Symbol ist, dann scheitert M1 in dieser Berechnung.
10 G r a m m a t i k e n und Chomsky-Hierarchie
400
(D,D,A) (A,E, h) fiir alle M6glichkeiten, D und A aus Q zu w/~hlen und damit zu raten, bei welchen {}berggngen diese Symbole gel6scht werden diirfen. Wichtig ist zu bemerken, dass der aktuelle Zustand s als erstes Element des obersten Tripels steht und dass die ehemalige Position yon den tiberschriebenen (r, A, h) nur beim {)bergang in denselben Zustand h gelSscht werden kann. Weft unter (r, A, h)irgendein (h,., .)liegt, liegt jetzt (h,., .) unter (A, E, h) und damit ist die Konsistenz gewghrleistet. Jetzt setzen wir dieses Konzept in die formale Konstruktion von/141 urn.
Q1 z F1
u Q • 2 1 5 Q, (q0, z0, q)) I q e Q},
--
(51(q~,/~, Z~) -(51(ql, a, (p, A, h)) -
{(ql
((8~1~82)(82~2~83)...
(Sm~]Bm~~))R) I
ftir alle (s, ( ~ 1 ~ 2 . . . ~m) -R) e ~5(r, a, A) und alle s2, s 3 , . . . , s,~ E Q} u { (ql, A) I (h, A) e ~(r, a, A)} fiir alle a e E U {A}, A e F, r, s, h e Q (siehe Fig. 10.8 und Fig. 10.9).
D
Lemmata 10.8, 10.9 und 10.10 ergeben zusammen das folgende Resultat.
Satz 10.5. Die nichtdeterministischen Kellerautomaten erkennen genau die Klasse von kontextfreien Sprachen (d.h. die Formalismen yon nichtdeterministischen Kellerautomaten und kontextfreien Grammatiken sind beziiglich ihrer Beschreibungsstiirke iiquivalent).
L(M)
A u f g a b e 1 0 . 4 6 . B e t r a c h t e n Sie den N P d A M mit = {0~1 ~ [ n c IN} aus Beispiel 10.8. W e n d e n Sie die K o n s t r u k t i o n aus L e m m a 10.10 an, um einen gquivalenten N P d A M mit nur einem Z u s t a n d zu konstruieren.
104
Kontextfreie G r a m m a t i k e n u n d K e l l e r a u t o m a t e n
I
lalbl
9
T
. .
401
lalbl
...
I
U
r
A
B1
D
B2
Bm
D
Fig. 1 0 8
lalb
lalbl
I
ql
q~ t ~
Fig. 10.9
r
A
h
s
B1
s2
h
D
u
s2
B2
s3
8m-- 1
J~m-- 1
8m
s.~
B.~
h
h
D
u
402
10.5
10 Grammatiken und Chomsky-Hierarchie
Allgemeine Grammatiken und Turingmaschinen
Grammatiken ohne Einschr~nkungen sind ein starker Generierungsmechanismus. Die Zielsetzung dieses Abschnittes ist zu zeigen, dass allgemeine Grammatiken der stgrkste Formalismus zur Sprachgenerierung sind. Wir zeigen dies durch den Beweis ihrer Aquivalenz zu Turingmaschinen, was gleichzeitig die Church'sche These untermauert. Um die Intuition fiir die StS~rke der allgemeinen Grammatiken zu gewinnen, starten wir 5~hnlich wie bei Turingmaschinen und konstruieren eine Grammatik fiir die Sprache L-
{0 2n I ~'~ ~ IN},
Sei G = (EN, ET, P, S) mit ET = {0} und EN = {A, B, C, D, S}. Wir beginnen mit den Startregeln S ~
C A O D und S ~ 0,
die uns ermSglichen, das Wort 0 abzuleiten und die Anfangsform C A O D mit einer 0 zu erzeugen. Die nEchste Idee ist, die Anzahl Nullen zu verdoppeln, indem A in der bisher abgeleiteten Form von links nach rechts "wandert" und jede 0 gegen zwei Nullen austauscht. AO ~
OOA, A D ~
B D.
Ahnlich kann B yon rechts nach links wandern und die Anzahl der Nullen wieder verdoppeln. OB ~
BOO, C B ~
CA.
Am Rande der bisher abgeleiteten Form kann man sich entscheiden, die Ableitung zu beenden, indem man alle Nichtterminalsymbole 15scht. Am linken Rand erreicht man es durch die Regel CB ~
A, D ~
A.
Wenn man sich am rechten Rand entscheidet, die Ableitung zu beenden, dann kann man folgende Regel benutzen: AD~A,
C~A.
10.5 Allgemeine Grammatiken und Turingmaschinen
403
Aufgabe 10.47. Die Regeln D ~ A und C ~ A in der oben beschriebenen Grammatik kann man unabhgmgig davon anwenden, wo sich A oder B in der bisher abgeleiteten Form befinden. Warum gehen wit dabei kein Risiko ein, dass eine unerwfinschte Anzahl von Symbolen 0 generiert wird? Aufgabe 10.48. Konstruieren Sie eine Grammatik fiir folgende Sprachen:
(i) (ii) (iii) (iv) (v)
{anbnc n [ n E IN},
{0nl ~2 [n C I N - {0}}, {03n [n C IN},
{aibJck I k - - i . j , k,i,j 9 {0P p C PRIM}
Die Konstruktion der G r a m m a t i k G deutet auf die Ahnlichkeit zu Turingmaschinen hin. Ahnlich wie der Zustand in einer Konfiguration fiber das Band wandert, bewegen sich die Nichtterminale A und B fiber die bisher abgeleitete Form. Also besteht die MSglichkeit, durch Nichtterminale die ZustS~nde zu reprS~sentieren und die Arbeit einer Turingmaschine nachzuahmen. Satz 10.6.
s
=
s
d.h. die Menge der rekursiv aufziihlbaren Sprachen ist genau die gleiche Menge wie die Menge aller Sprachen, die dutch Grammatiken generiert werden kSnnen. Beweis. Wir fiihren den Beweis, indem wir nacheinander s Z2Rz C/20 zeigen.
c_ 12RE und
(i) ~--'0 ~ ~-,RE. Sei G eine beliebige G r a m m a t i k . Wir sollen eine T M M konstruieren, so class L(G) = L(M) gilt. Weil die Idee sehr anschaulich ist, verzichten wir auf die formale Konstruktion yon M. Ohne Einschr~nkung der Allgemeinheit b e t r a c h t e n wir M als eine nichtdeterministische 1-Band-TM. Die 1-Band-TM M soll fiir jede gegebene Eingabe w E L auf dem E i n g a b e b a n d akzeptieren. 25 Dies schafft sie, indem sie eine Ableitung aus S in G auf dem A r b e i t s b a n d n a c h a h m t und das Resultat mit der Eingabe vergleicht. Genauer kann dies wie folgt ablaufen. M schreibt S auf das Arbeitsband. D a n n geht M wiederholt wie folgt vor. 1. M wS~hlt nichtdeterministisch eine nichtleere Position i auf dem A r b e i t s b a n d und eine Regel c~ ---, ~ aus G. 26 25Fiir eine Eingabe w ~ L kann M verwerfen oder unendlich lange arbeiten. 26M kann die Regel c~ ~ ~ in seinem Zustand speichern.
404
10 Grammatiken und Chomsky-Hierarchie 2. M fiberpriift, ob c~ auf dem Band rechts v o n d e r / - t e n Position liegt. Wenn nicht, endet M in qreject. Wenn ja, ersetzt 2r M das Teilwort c~ durch/3. 3. M iiberprtift, ob der Inhalt des Arbeitsbandes ein Terminalwort ist. Falls nein, setzt M mit Schritt 1 fort. Falls ja, vergleicht M das Eingabewort mit dem abgeleiteten Wort auf dem Arbeitsband. Falls die W6rter gleich sind, akzeptiert M die Eingabe. Sonst verwirft M die Eingabe.
(ii) ERE C_ /20. Sei M = ((2, E, F, (~,qo, qaccept,qreject) eine TM. Eine Grammatik G kann M so simulieren, dass G zuerst "doppelspurig" ein beliebiges Wort erzeugt. Die obere Spur beinhaltet das Wort, die untere Spur die Startkonfiguration von M auf diesem Wort. Dieses kann durch folgende Regel fiir alle a E E bewirkt werden.
s--,(o) s--,(o)A (a)A, (a), qoa
~
qoa
(f)c,
Somit erhalten wir die Ableitung
S ~c (qoa~a~)(222)(233)"'" ka~_~(a~-~)(~~) (BB)J :r
fiir ein beliebiges Wort ala2...a~ (ai E E fiir i = 1 , . . . , n ) und ein beliebiges j E IN. Dabei ist j so eine nichtdeterministisch geratene Zahl, dass die TM M bei der Arbeit auf der Eingabe a l, a 2 . . . a~ genau n + j Zellen des Bandes benutzt. Der grofie Buchstabe B symbolisiert eine leere Zelle des Bandes. Danach simuliert G auf der unteren Spur die Berechnung der TM M auf ala2.., an. Die Simulation kann man durch folgende Regeln realisieren: Fiir alle a, b E E U {B}, p, q E Q, X, Y, Z E F U {B}, so dass (p, Y, R) E ~(q, X), nehmen wir die Regel
2rWenn ]c~]r ]/3], erfordert dies natiirlich die Verschiebung des Suffixes des Arbeitsbandes rechts von a.
405
10.6 Zusammenfassung
Ftir alle (p, Y, L) E 6(q,
X)nehmen wir
Far m ~ (p,Y, 5:) ~ ~(q,x ) ~ h m ~
(<)
wir
-----+
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.
qacceptCt
--~ a,
a --~ ba,
a(bct),
--~ ab,
B --~ A
fiir alle a,b E E O {B}, ct E F O {B}. Auf den formalen Beweis der Korrektheit dieser Konstruktion verzichten wir hier.
A u f g a b e 10.49. Beweise, dass s
10.6
= NSPACE(n).
Zusammenfassung
Grammatiken sind Mechanismen zur Generierung yon Sprachen und damit ftir eine endliche Darstellung yon Sprachen eine Alternative zu Maschinenmodellen. Die Ausdrucksstgrke von allgemeinen Grammatiken gleicht der AusdrucksstS~rke der Turingmaschinen, was eine weitere Unterstiitzung der Glaubwiirdigkeit der Church'schen These ist. Die Grammatiken werden nach Chomsky klassifiziert. Die einfachste Form sind die regulgren Grammatiken, die genau die Beschreibungsstgrke von endlichen Automaten haben. Die wichtigste Klasse von Grammatiken sind die kontextfreien Grammatiken. Aus linguistischer Sicht ist diese Klasse wichtig, weil die kontextfreien Regeln der Ersetzung yon Nichtterminalsymbolen unabhSmgig yon deren Umgebung (Kontext) entsprechen, und der Grad der Kontextsensitivitgt zentral fiir die
406
10 Grammatiken und Chomsky-Hierarchie
U n t e r s u c h u n g der G e n e r i e r u n g von nat/irlichen S p r a c h e n ist. In der I n f o r m a t i k k a n n m a n P r o g r a m m i e r s p r a c h e n mit HiKe von k o n t e x t f r e i e n G r a m m a t i k e n beschreiben, u n d d a m i t sind die k o n t e x t f r e i e n G r a m m a t i k e n ein wichtiges Werkzeug z u m C o m p i l e r b a u . Die n i c h t d e t e r m i n i s t i s c h e n K e l l e r a u t o m a t e n stellen ein natiirliches R e c h e n m o d e l l zur I m p l e m e n t i e r u n g der R e k u r s i o n dar u n d sind in ihrer BeschreibungsstS~rke 5~quivalent zu den k o n t e x t f r e i e n G r a m m a t i k e n . Die Klasse der regulgren S p r a c h e n ist eine echte Teilmenge der M e n g e der kont e x t f r e i e n Sprachen, was relativ einfach d u r c h die A n w e n d u n g der P u m p i n g t e c h n i k bewiesen w e r d e n kann. Diese p u m p i n g b a s i e r t e B e w e i s m e t h o d e k a n n m a n weiterentwickeln, u m I n s t r u m e n t e zu b a u e n , mit d e n e n m a n die Nichtk o n t e x t f r e i h e i t von S p r a c h e n beweisen kann. D a n k der A n w e n d u n g der P u r e p i n g t e c h n i k e n wissen wir, dass die Klasse der k o n t e x t f r e i e n S p r a c h e n eine echte Teilmenge der Klasse der k o n t e x t s e n s i t i v e n S p r a c h e n ist.
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 klassifiziert? 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 Ahnlichkeit 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 nehIIleIl?
12. Entwerfen Sie nichtdeterministische Kellerautomaten, die die Sprachen aus Kontrollaufgabe 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.; MarchettiSpaccamela, A.; Protasi, M.: Complexity and Approximation. Combinatorial Optimization Problems and their Approximability Properties. Springer-Verlag 1999 Bovet, D. P.; Crescenzi, P.: Introduction to the Theory of Com[BC 94] plexity. Prentice-Hall 1994 [BDG 88] Balc~zar, J.; Dfaz, J.; Gabarrd, J.: Structural Complexity I. Springer-Verlag 1988 Balc~zar, J.; Dfaz, J.; Gabarrd, J.: Structural Complexity II. [BDG 90] Springer-Verlag 1990 [Ben 64] Bench, V.: Permutation groups, complexes and rearrangable multistage connecting networks. Bell System Technical Journal 43 (1964) 1619-1640 [Ben 65] Bene~, V.: Mathematical Theory of Connecting Networks and Telephone Traffic. Academic Press 1965 Bock, F.: An algorithm for solving "traveling-salesman" and rela[Boc 58] ted network optimization problems: abstract. Bulletin 14th National Meeting of the Operations Research Society of America (1958) 897 Cernr V." A thermodynamical approach to the traveling salesman [(~er 85] problem: An efficient simulation algorithm. Journal of Optimization Theory and Applications 45 (1985) 41-55 Chaitin, G.: On the length of programs for computing finite binary [Cha 66] sequences. Journal of the ACM 13 (1966) 407-412 Chaitin, G.: On the simplicity and speed of programs for com[Cha 69] puting definite sets of natural numbers. Journal of the ACM 16 (1969) 407-412 Chaitin, G.: Information-theoretic limitations of formal systems. [Cha 74] Journal of the ACM 13 (1974) 403-424 Church, A.: An undecidable problem in elementary number theory. [Chu 36] American Journal of Mathematics 58 (1936) 345-363
Literaturverzeichnis [CLR 90]
409
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: Proceedings of 3rd ACM STOC. 1971 S. 151-157 [Cro 58] Croes, G.: A method for solving traveling salesman problem. Operations 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. SpringerVerlag 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 Computation. ACM, 1985 S. 291-304 [G6d 31] G6del, K." Uber formal unentscheidbare Sgtze der Principia Mathematica 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.: Dissemination of Information in Communication Networks. Broadcasting, Gossiping, Leader Election and Fault-Tolerance. SpringerVerlag 2005 [HMU 01] Hopcroft, J. E.; Motwani, R.; Ullman, J. D.: Introduction to Automata 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 Computing. Springer-Verlag 1997
410 [Hro 01]
[Hro 04]
[HS 65]
[HSL 65] [HU 79] [IK 74]
[Kar 72]
[Kar 91] [KGV 83] [Kle 36] [Kol 65] [Kol 68]
[Lei 92]
[LP 78]
[LV 9S] IMPS 98]
Literaturverzeichnis Hromkovi~, J.: Algorithms for Hard Problems. Introduction to Combinatorial Optimization, Randomization, Approximation and Heuristics. Springer-Verlag 2001 Hromkovi~, J.: Randomisierte Algorithmen. Methoden zum Entwurf yon zufallsgesteuerten Systemen fiir Einsteiger. B.G. Teubner, Wiesbaden 2004 Hartmanis, J.; Stearns, R.: On the computational complexity of algorithms. Transactions of ASM 117 (1965) 285-306 Hartmanis, J.; Stearns, R.; Lewis, P.: Hierarchies of memory limited computations. In: Proceedings of 6th IEEE Syrup. on Switching Circuit Theory and Logical Design. 1965 S. 179-190 Hopcroft, J.; Ullman, J.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Readings 1979 Ibarra, O.; Kim, C.: Fast approximation algorithms for the knapsack and sum of subsets problem. Journal of the ACM 21 (1974) 294-303 Karp, R.: Reducibility among combinatorial problems. In: R. Miller (Hrsg.), Complezity of Computer Computation. Plenum Press, 1972 S. 85-104 Karp, R.: An introduction to randomized algorithms. Discrete Applied Mathematics 34 (1991) 165-201 Kirkpatrick, S.; Gellat, P.; Vecchi, M.: Optimization by simulated annealing. Science 220 (1983) 671-680 Kleene, S.: General recursive functions of natural numbers. Mathematische Annalen 112 (1936) 727-742 Kolmogorov, A.: Three approaches for defining the concept of information quantity. Probl. Information Transmission 1 (1965) 1-7 Kolmogorov, A.: Logical basis for information theory and probability theory. IEEE Transactions on Information Theory 14 (1968) 662-664 Leighton, F.: Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes. Morgan Kaufmann Publ. Inc. 1992 Lewis, H. R.; Papadimitriou, C.: The efficiency of algorithms. Scientific American 238 (1978) 1 Li, M.; Vit~nyi, P." An Introduction to Kolmogorov Complexity and Its Applications. Springer-Verlag 1993 Mayr, E.; Pr6mel, H.; Steger, A. (Hrsg.): Lectures on Proof Verification and Approximation Algorithms. Lecture Notes in Computer Science. Nr. 1967. Springer-Verlag 1998
Literaturverzeichnis
411
Motwani, R.; Raghavan, P.: Randomized Algorithms. Cambridge University Press 1995 [MRR + 53] Metropolis, N.; Rosenbluth, A.; Rosenbluth, M.; Teller, A.; Teller, E.: Equation of state calculation by fast computing machines. Journal of Chemical Physics 21 (1953) 1087-1091 [Pap 94] Papadimitriou, C. H.: Computational Complexity. AddisonWesley 1994 Post, E.: Finite combinatory process-formulation. Journal of Sym[Pos 36] bolic Logic 1 (1936) 103-105 [Pos 46] Post, E.: A variant of a recursively unsolvable problem. Transactions of ASM 52 (1946) 264-268 [PS 8:2] Papadimitriou, C. H.; Steiglitz, K.: Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall 1982 Reischuk, R.: Einfiihrung in die Komplexitgtstheorie. B.G. Teub[Rei 90] her 1990 Rice, H.: Classes of recursively enumerable sets and their decision [Ric 53] problems. Transactions of ASM 89 (1953) 25-59 [Rog 67] Rogers, H.: Theory of Recursive Functions and Effective Computability. McGraw-Hill, New York 1967 [RSA 78] Rivest, R.; Shamir, A.; Adleman, L.: A method for obtaining digital signatures and public-key cryptosystems. Comm. Assoc. Cornput. Mach. 21 (1978) 120-12 Salomaa, A.: Formal Languages. Academic Press 1973 [Sal 73] Salomaa, A.: Public-Key Cryptographie. Springer-Verlag 1996 [Sal 96] Stockmeyer, L. J.; Chandra, A. K.: Intrinsically difficult problems. [SC 79] Scientific American 240 (1979) 5 Sch6ning, U.: Perlen der Theoretischen Informatik. BI-Wissen[Sch 95] schaftsverlag, Mannheim, Leipzig, Wien, Ziirich 1995 Sch6ning, U.: Algorithmik. Spektrum Akademischer Verlag, Hei[Sch 01] delberg, Berlin 2001 Shamir, A.: IP = PSPACE. Journal of the ACM 39 (1992) 869[Sha 92] 877 Sipser, M.: Introduction to the Theory of Computation. PWS [Sip 97] Publ. Comp. 1997 Trakhtenbrot, B.: Algorithms and Automatic Computing Machi[Tra 63] nes. D.C. Heath & Co., Boston 1963 Turing, A.: On computable numbers with an application to the [Tur 36] Entscheidungsproblem. In: Proceedings of London Mathematical Society, Bd. 42 yon 2. 1936 S. 230-265 Vazirani, V.: Approximation Algorithms. Springer-Verlag 2001 [Vaz 01] [MR 95]
412
[Wak 6S] [Weg 05]
Literaturverzeichnis Waksman, A." A Permutation Network. Journal of ACM 15 (1968) 159-163 Wegener, I." Theoretische Informatik- eine algorithmenorientierte Einfiihrung. B.G. Teubner, Wiesbaden 2005
Saehverzeiehnis Aquivalenzproblem, 309 SAT, 248 ableitbar, 353 Ableitung, 353 Ableitungsbaum, 377 Ableitungsregeln, 351 Ableitungsschritt, 353 Abzghlbarkeit, 164 Algorithmus, 45, 125 pseudopolynomiell, 264 randomisiert, 297 Solovay-Strassen-, 306 Alphabet, 33 Approximationsalgorithmus, 270 AuthentizitS~tsproblem, 328 Bene~-Netzwerk, 340 Beweiser, 330 Beweissystem interaktives, 330, 332, 334 Zero-Knowledge-, 333, 334, 345 Beweissysteme, 345 Beweisverifikation, 232 Bisektion, 344 Boolesche Formel, 349
Diagonalisierungsmethode, 169 Diagonalsprache, 170 digitale Unterschriften, 326 Einweg-Funktion, 320,322,323,345 endlicher Automat, 76, 107 nichtdeterministisch, 107 Entscheidungsproblem, 45 Entschliisselung, 318, 319 Ereignis, 293 elementares, 293 erzeugte Sprache, 353 Faktorisierung, 323, 345 Fehlerwahrscheinlichkeit, 296, 300, 307, 309, 310 Fingerabdruck, 308, 310
Chomsky, 403 Chomsky-Normalform, 380 Church'sche These, 146, 400 Compilerbau, 347, 403
Grammatik, 352 kontextsensitive, 358 normierte, 368 normierte kontextfreie, 382 regulgre, 359, 361 Typ-0-, 358 Typ- 1-, 358 Typ-2-, 359 Typ-3-, 359 Grammatiken, 347, 399, 403 kontextfreie, 375 Greibach-Normalform, 380
Determinismus, 293
Halteproblem, 178
414 Implementierung 403
Sachverzeichnis der
Rekursion,
kanonische Ordnung, 40 Kellerautomat, 388 nichtdeterministischer, 390 Kellerautomaten, 403 Kettenregeln, 368 Klartext, 318 Kolmogorov-KomplexitS~t, 58, 198 Kommunikation, 317, 335 Kommunikationsprotokoll, 328 Kommunikationsweg, 335 KomplexitS~tsklassen, 214 Komplexitgtsmase, 207 kontextfrei, 359 kontextsensitiv, 358 Kontextsensitivit 5~t, 403 Kryptoanalyse, 318 Kryptoanalytiker, 319 Kryptographie, 317, 318, 345 Kryptologie, 317, 318 Kryptosystem, 318 Public-Key-, 321,327 symmetrisch, 320 Kryptotext, 318 Lemma von Odgen, 386 Linksableitung, 379 Logarithmus diskreter, 322, 345 lokale Suche, 279 Mehrband-Turingmaschine, 136, 214 Methode der Fingerabdrticke, 307, 310, 314 Methode der hSoufigen Zeugen, 303, 314 Metropolis-Algorithmus, 286 Modularitgt, 337, 344
Nachbarschaft, 277 echt, 284 polynomiell untersuchbar, 283 Netz, 335 Netzwerk, 337 Bene~-, 340 Netzwerkdesign, 344 Nichtdeterminismus, 107, 147 Nichtterminalalphabet, 352 Nichtterminale, 351 Nichtterminalsymbole, 351 Normalform Chomsky-, 380 Greibach-, 380 NP, 230, 235, 330 NP-schwer, 237, 257, 269, 284 NP-Schwierigkeit, 256 NP-stark, 269, 284 NP-vollst~ndig, 237 NP-Vollst~ndigkeit, 248 NPdA, 390 NPO, 255 Optimierungsproblem, 49
P, 222, 230, 235 Permutation, 335, 337 Permutationsnetzwerk, 337, 340 platzkonstruierbar, 215 PO, 256 Polynome, 309 polynomialzeit-reduzierbar, 223 polynomielle Reduktion, 237 Post'sche Korrespondenzproblem, 190 Potenzmengenkonstruktion, i13 Primzahlsatz, 65, 298 Primzahltest, 303, 306, 314 Produktionen, 351 Protokoll zufallsgesteuert, 298
Sachverzeichnis
415
Pumping-Lemma, 101 fiir kontextfreie Sprachen, 382 Pumpingtechnik, 404
Startnichtterminal, 352 Startsymbol, 352 Syntaxbaum, 377
Rechtsableitung, 379 Reduktion, 171 Regeln, 351 regulS~r, 359 rekursiv, 46, 130, 161 rekursiv aufzS~hlbar, 130 RSA, 323, 325 Rucksack-Problem, 264
Telefonnetze, 345 Terminalalphabet, 352 Terminalsymbole, 351 TSP, 51 Turingmaschine, 125 nichtdeterministisch, 147 Turingmaschinen, 400
Satz von Cook, 241 von Euler, 324 von Fermat, 304 von Rice, 185 von Shamir, 332 Schaltungsknoten, 335 Schltissel, 318 Schmetterling, 339 Schmetterlinge r-dimensionale, 340 Simulated Annealing, 284 Simulation, 92 SpeicherplatzkomplexitS~t, 207 Sprache, 40 Sprachen kontextfreie, 375
universelle Sprache, 175 Verifizierer, 233, 330 Verschliisselung, 318 Wahrscheinlichkeit, 293, 294 Wahrscheinlichkeitsraum, 295 Wahrscheinlichkeitstheorie, 293 Wahrscheinlichkeitsverteilung, 294 Wort, 33 Zahlproblem, 263 Zeitkomplexitgt, 207 zeitkonstruierbar, 215 Zertifikat, 231 Zeuge, 231,302, 310, 314 Zufall, 291 Zufallssteuerung, 292