Theoretische Informatik Dr. Stefan Edelkamp 23. Februar 2001
2
Vorwort Dieses Skript ist nach den Vorlesungsunterlage...
28 downloads
1032 Views
1MB Size
Report
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!
Report copyright / DMCA form
Theoretische Informatik Dr. Stefan Edelkamp 23. Februar 2001
2
Vorwort Dieses Skript ist nach den Vorlesungsunterlagen von Prof. Dr. Ottmann im WS 2000/2001 entstanden und enthalt U bungen, sowie Musterlosungen zum Selbststudium. Der Bereich der theoretischen Informatik gehort zum Grundvorlesungskanon in der Informatik und wird von vielen Buchern erortert. Im deutschen Sprachraum sind hier insbesondere die Bucher von Prof. Dr. Ingo Wegener (Teubner), Prof. Dr. Uwe Schoning (Spektrum), Prof. Dr. Erich Priebe (Springer), Prof. Dr. Norbert Blum (Oldenburg), Prof. Dr. Ulrich Hedstuck (Oldenburg) und das (recht betagte) Buch von Prof. Dr. Jurgen Albert, Prof. Dr. Thomas Ottmann (BI) zu nennen. Die hier gebotene Sicht startet von dem unteren Ende der Chomsky-Hierarchie, den regularen Sprachen, und arbeitet sich uber kontextsensitive und kontextfreie bis hin zu Berechenbarkeits- und Entscheidbarkeitsfragen herauf. Der abschlieende Teil des Skriptes befat sich mit praktischen Fragen der Berechenbarkeit der NP-Vollstandigkeitstheorie und des aus ihr erwachsenen Gebietes der Komplexitatstheorie. Vielfacher Dank gilt Dr. Sabine Hanke und Bernhard Seckinger, die einen Groteil der U bungen entworfen haben. Ich wunsche allen Studenten und Studentinnen einen groen Lernerfolg insbesondere bei der Prufungsvorbereitung. Fur Hinweise uber aufgesprurte Fehler bin ich immer sehr dankbar Freiburg, den 23. Februar 2001
Stefan Edelkamp
Inhaltsverzeichnis 1 Einfuhrung 1.1 1.2 1.3 1.4
Mathematische Grundbegrie . . . . . . . . Alphabete, Worte, Sprachen . . . . . . . . . Aussagenlogik . . . . . . . . . . . . . . . . . Satze, Beweise, Beweismethoden . . . . . . . 1.4.1 Direkter Beweis . . . . . . . . . . . . 1.4.2 Indirekter Beweis . . . . . . . . . . . 1.4.3 Beweis durch vollstandige Induktion 1.4.4 Schubfachprinzip . . . . . . . . . . . 1.4.5 Diagonalschlu . . . . . . . . . . . . 1.5 U bungen . . . . . . . . . . . . . . . . . . . .
2 Endliche Automaten 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
Deterministische endliche Automaten Regulare Operationen auf Sprachen . Nichtdeterministische Automaten . . Regulare Ausdrucke . . . . . . . . . . Weitere Abschluseigenschaften . . . . Algebraische Charakterisierung . . . Reduzierte endliche Automaten . . . Pumping Lemma . . . . . . . . . . . 3
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
5
5 7 8 8 8 9 10 10 12 12
15
15 19 21 25 28 29 31 33
INHALTSVERZEICHNIS
4
2.9 Entscheidbarkeitsfragen . . . . . . . . . . . . . . . . . . . . . . 34 2.10 U bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3 Grammatiken 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12
Kontextfreie Sprachen . . . . . . . Spezielle kontextfreie Grammatiken Normalformen von Grammatiken . Chomsky-Normalform . . . . . . . Greibach-Normalform . . . . . . . . Pumping Lemma . . . . . . . . . . Kontextsensitive Sprachen . . . . . Abschlueigenschaften . . . . . . . Analyseproblem . . . . . . . . . . . Exkurs L-Systeme . . . . . . . . . . Pushdown-Automaten . . . . . . . U bungen . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
4 Rekursionstheorie und Registermaschinen 4.1 4.2 4.3 4.4 4.5
Berechenbarkeit . . . . . . . . Registermaschinen . . . . . . Primitiv rekursive Funktionen Partiell rekursive Funktionen . U bungen . . . . . . . . . . . .
5 Berechenbarkeit 5.1 5.2 5.3 5.4
. . . . .
. . . . .
. . . . .
. . . . .
Churche These . . . . . . . . . . . . Das (spezielle) Halteproblem . . . . . Unentscheidbare RM-Probleme . . . Entscheidbarkeit und Aufzahlbarkeit
. . . . .
. . . .
. . . . .
. . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
43
43 46 49 50 52 53 55 56 57 59 60 68
75
75 76 78 81 83
89
89 90 90 93
INHALTSVERZEICHNIS
5
5.5 Unlosbare Probleme . . . . . . . . . . . . . . . . 5.5.1 Semi-Thue-Systeme . . . . . . . . . . . . . 5.5.2 Wortproblem der Gruppentheorie . . . . . 5.5.3 Zehntes Hilbert'sches Problem . . . . . . . 5.5.4 Conway's Game of Life . . . . . . . . . . . 5.5.5 Parkettierungsprobleme fur Dominospiele . 5.5.6 Post'sches Korrespondenzproblem . . . . . 5.6 Turingmaschinen . . . . . . . . . . . . . . . . . . 5.6.1 TM-Programme . . . . . . . . . . . . . . . 5.6.2 Automatenmodell . . . . . . . . . . . . . . 5.6.3 Simulation von RM durch TM . . . . . . . 5.6.4 Kodierungen von TM, Halteproblem . . . 5.7 Der Satz von Godel . . . . . . . . . . . . . . . . . 5.8 Weitere unentscheidbare Probleme . . . . . . . . 5.9 U bungen . . . . . . . . . . . . . . . . . . . . . . .
6 Komplexitatstheorie 6.1 6.2 6.3 6.4 6.5 6.6 6.7
Die Klasse P . . . . . . . . . . . . . . Die Klasse NP . . . . . . . . . . . . . NP -Vollstandigkeit . . . . . . . . . . . NP -Vollstandigkeit wichtiger Probleme Das Hamiltonkreisproblem und TSP . Pseudopolynomielle Probleme . . . . . U bungen . . . . . . . . . . . . . . . . .
7 Losungsvorschlage zu Ubungsaufgaben
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. 94 . 94 . 95 . 95 . 95 . 96 . 97 . 98 . 98 . 100 . 102 . 104 . 105 . 109 . 111
117
. 117 . 122 . 124 . 127 . 129 . 133 . 136
139
6
INHALTSVERZEICHNIS
Kapitel 1 Einfuhrung, Mathematische Voraussetzungen Das Ziel der Theoretischen Informatik ist die Klarung grundsatzlicher Fragen, wie z.B.: 1. Was kann uberhaupt (nicht) mit einem Computer gelost werden? 2. Was sind inharente Grenzen der Berechenbarkeit? 3. Was macht Probleme (mit Computern) schwer zu losen? Mathematische Modelle von Rechnern: 1. Endliche Automaten 2. Kellerautomaten 3. Register-/Turingmaschinen
1.1 Mathematische Grundbegrie De nition 1 Sei R eine zweistellige Relation. Dann heit R A quivalenzrelation, wenn gilt:
7
KAPITEL 1. EINFUHRUNG
8
1. R ist re exiv, d.h., fur alle x ist xRx bzw. (x; x) 2 R. 2. R ist symmetrisch, d.h., fur alle x gilt: xRy ) yRx. 3. R ist transitiv, d.h., fur alle x; y; z gilt xRy; yRz ) xRz .
Beispiel 1 Die Kongruenzrelation 7 auf IN IN ist wie folgt de niert: x 7 y () (x y) ist Vielfaches von 7 1. x 7 x, denn (x x) = 0 ist Vielfaches von 7. 2.
x 7 y () (x y) ist Vielfaches von 7 () (y x) ist Vielfaches von 7 () (y x) ist Vielfaches von 7 () y 7 x 3. (x 7 y () (x y ) ist Vielfaches von 7) und (y 7 z () (y z) ist Vielfaches von 7) ziehen nach sich, da (x y) + (y z) = (x z) ist Vielfaches von 7. Damit x 7 z. Die Aquivalenzklassen dieser Relation sind (IN= 7 ) = f0; 1; : : : ; 6g mit i = fj j j 7 ig, z.B. 2 = f2; 9; 16; 23; : : :g
De nition 2 Die Potenzmenge 2M ist Menge aller Teilmengen einer gegebenen Menge M .
Man unterscheidet endliche Mengen und unendlichen Mengen.
De nition 3 Eine Menge S heit abzahlbar, wenn es eine eineindeutige Abbildung (Bijektion) f von IN auf S gibt: f : IN ! S . Zwei Mengen A und B sind gleichmachtig, genau dann, wenn es eine eineindeutige Abbildung f von A auf B gibt: f : A ! B . Somit ist S abzahlbar, genau dann, wenn S und IN gleichmachtig sind.
Beispiel 2 A = f1; 2; 3; 4; : : :g und B = f7; 8; 9; : : :g sind gleichmachtig. Wahle f (n) = n + 6:
1.2. ALPHABETE, WORTE, SPRACHEN
9
1.2 Alphabete, Worte, Sprachen De nition 4 Ein Alphabet besteht aus einer endlichen Menge von Symbolen, z.B. = f0; 1g; = fa; b; : : : ; y; z g. Ein Wort bzw. eine Zeichenreihe
ist jede endliche Aneinanderreihung von Symbolen des zugrunde liegenden Alphabets (inklusive des leeren Wortes ). Sei ein Alphabet. 1. (das leere Wort) ist Wort uber dem Alphabet . 2. Ist w Wort uber , a 2 , dann ist auch wa Wort uber . 3. sonst nichts
bezeichnet die Menge aller Worte uber dem Alphabet . Daher kann obige De nition auch so geschriben werden: ist die kleinste Menge mit 1. 2 und 2. w 2 , a 2 ) wa 2 . Jede Teilmenge L heit Sprache uber dem Alphabet . Worten kann man eine Lange wie folgt zuordnen: 1. jj = 0. 2. jwaj = jwj + 1. Fur Worte kann man die Teilwortrelation, die Verkettungsoperation, und die Lexikographische Ordnung de nieren.
Beispiel 3 Verkettungsoperation: x; y 2 ) xy 2 Beispiel 4 Teilwortrelation: = f0; 1g, 0110 ist Teilwort von 101101101110. Beispiel 5 Lexikographische Ordnung von = f0; 1g:
KAPITEL 1. EINFUHRUNG
10
0; 1; 00; 01; 10; 11; 000; 001; ...
Sortierung: Zuerst nach Lange, dann alphabetisch.
1.3 Aussagenlogik De nition 5 Wahrheitswerte sind extensional festgelegt. Aussagenlogische Operatoren/ Junktoren sind f_; ^; :; !; $; g Satz 1 Die Menge f^; :g sind aussagenlogisch vollstandig, d.h. jeder zwei-
stellige Boolsche Operator kann mit Hilfe dieser Operatoren de niert werden.
Beweis: P _ Q () :(:P ^ :Q) P ! Q () :P _ Q P $ Q () (P ! Q) ^ (Q ! P ) P Q () :(P $ Q)
1.4 Mathematische Satze, Beweise, Beweismethoden 1.4.1 Direkter Beweis Betrachte als Beispiel die Menge aller binaren 2 2-Matrizen
1.4. SATZE, BEWEISE, BEWEISMETHODEN
11
b b M = 11 12 , mit bij 2 f0; 1g
b21 b22 und in M die Vektoren (Zeilen- und Spaltenvektor): (b11 ; b12 ),(b21 ; b22 ),(b11 ; b21 ), (b12 ; b22 ), Satz 2 In jeder binaren 2 2-Matrix kommen hochstens 3 der 4 moglichen Bitvektoren der Lange 2 vor.
Beweis: Zahle die 16 moglichen Falle fur M vollstandig auf und sehe nach:
0 0
0 01 01
0
0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 1
1 0
1 1
0 1 0 1 0 1 01 10 11 00 11 10 01 11 11 01 11 11 0 1
1 0
1 1
1.4.2 Indirekter Beweis
p Satz 3 2 ist irrational. p p Beweis: Annahme: 2 ist rational. Dann lat sich 2 als gekurzter Bruch m=n schreiben. Damit ist p n 2 = m ) 2n2 = m2 ) m2 ist gerade Zahl ) m ist gerade Zahl, denn das Quadrat einer ungeraden Zahl ist stets wieder ungerade. Also m = 2k, fur ein geeignetes k. Also ist 2n2 = 4k2 ) n2 = 2k2 ) n2 ist gerade Zahl ) n ist gerade Zahl. Nun steht der gemeinsame Teiler 2 in m und n im Widerspruch da m=n gekurzt vorliegt.
KAPITEL 1. EINFUHRUNG
12
1.4.3 Beweis durch vollstandige Induktion Sei P (k) eine (von k abhangige) Behauptung. Um nachzuweisen, da fur alle k b die Aussage P (k) gilt, genugt es zu zeigen, da 1. Induktionsanfang: Es gilt P (b) 2. Induktionsschritt: Wenn P (k) gilt, so gilt auch P (k + 1). Sei Sn = 1 + 3 + : : : + (2n 1), fur alle n 1. Dann gilt
Satz 4 Fur alle n 1 ist Sn = n2 . Beweis: 1. S1 = 1 = 12 2. Sei Sn = n2 , dann gilt
Sn+1 = 1 + 3 + : : : + (2n 1) + (2(n + 1) 1) = n2 + 2n + 1 = (n + 1)2
1.4.4 Schubfachprinzip Wenn (n + 1) - oder mehr - Objekte auf n Schubfacher verteilt werden, gibt es bei jeder moglichen Verteilung stets ein Schubfach, das notwendigerweise 2 - oder mehr - Objekte enthalt.
Satz 5 Sei G = (V; E ) ein gerichteter Graph mit jV j = n 1 Knoten. Dann hat G einen Zyklus, genau dann, wenn es in G einen Pfad mindestens mit Lange n gibt (die Lange des Pfades entspricht der Anzahl der Kanten auf dem Pfad).
1.4. SATZE, BEWEISE, BEWEISMETHODEN
13
Beweis: ( Wir nehmen also zunachst an, G habe einen Pfad mit Lange m n: (u0; u1); (u1; u2); : : : ; (um 1; um): Wir betrachten nur das Anfangsstuck dieses Pfades mit Lange n. Die Knoten auf diesem Anfangsstuck seien u0; u1; : : : ; un, also (n + 1) Knoten. Weil G (in V ) nur n verschieden Knoten hat, folgt nach dem Schubfachprinzip: Es gibt i, j mit i < j , soda ui = uj ist. Damit ist der Teil (ui; ui+1); ; : : : ; (uj 1; uj ) ein Zyklus mit der Mindestlange 1. ) Falls G einen Zyklus hat, also einen Pfad (u0; u1); (u1; u2); : : : ; (um 1; um) mit u0 = um und m 1, dann ist entweder bereits m n und nichts zu beweisen, oder wir konnen diesen Pfad n mal durchlaufen (hintereinanderschreiben) und erhalten einen Pfad der Gesamtlange nm n, da m 1.
Eine Variante des Schubfachprinzips sind Zahlargumente. Wir erlautern das an einer Erweiterung des Beispiels der quadratischen Bitmatrizen.
Satz 6 Fur alle n 1 gilt: Die Zeilen- und Spaltenvektoren einer n n Bit-Matrix schopfen nicht alle moglichen (n Bit) Vektoren aus.
00 B1 Beispiel 6 In B @0
1 0 0 0 1
0 1 1 0
0 1 0 1
1 CC kommt (1101) nicht vor. A
Beweis: Fur n = 1; 2 ist die Aussage trivial bzw. schon bewiesen. Sei eine beliebige n n Bitmatrix A gegeben. A hat 2n Zeilen- und Spaltenvektoren.
Anderseits ist die Anzahl der verschiedenen Bitvektoren der Lange n gleich 2n. Wegen 2n < 2n fur n 3, folgt die Behauptung.
KAPITEL 1. EINFUHRUNG
14
1.4.5 Diagonalschlu Fur die Boole'sche Variable x sei x = :x.
Satz 7 Fur alle n 1 und jede beliebige n n Matrix M = (Mij ) gilt: Der Bitvektor
V = (M11 ; M22 ; : : : ; Mnn)
tritt weder als Zeilen- noch als Spaltenvektor auf.
Beweis: Angenommen, V kommt als i-ter Zeilenvektor vor, d.h. V = (Mi1 ; Mi2; : : : ; Min) dann folgt Mij = Mij fur alle j , also insbesondere Mii = Mii. Widerspruch. Genauso sieht man, da V nicht als Spaltenvektor vorkommen kann.
Satz 8 Die Menge der reellen Zahlen ist nicht abzahlbar. Beweis: Jede reelle Zahl (im Intervall (0,1) ist als unendlicher Dualbruch 0; b1b2 : : : darstellbar1. Angenommen, die Menge der reellen Zahlen sei doch abzahlbar, dann betrachte die Aufzahlung 0; m11m12 m13 : : : 0; m21m22 m23 : : : ... Oenbar kommt die reele Zahl m11 ; m22 ; : : : ; nicht in dieser Aufzahlung vor.
1.5 U bungen Von den unterschiedlichen Darstellungen einer Zahl mit Endstuck Null-Periode bzw. und Endstuck Neun-Periode wahlen wir immer eine aus. 1
1.5. UBUNGEN
15
Aufgabe 1:
Die Sprache L uber = fa; bg sei wie folgt induktiv de niert: 1. Fur alle w 2 mit jwj = 5 gilt: w 2 L. 2. Falls w1; w2 2 L, so ist auch w1 w2 2 L.
3. Falls w1; w2 2 L, so ist auch w1jw2j = w | 1w1{z: : : w}1 2 L. jw2 j mal 4. Keine anderen Worter sind in L. (a) Geben Sie L explizit in Mengennotation an. (b) Beweisen Sie, dass L abzahlbar unendlich viele Worter enthalt.
Aufgabe 2:
Beweisen Sie durch vollstandige Induktion: (a) 2n < 2n fur n 3. (b)
n X 3
n !2 X
i=1
i=1
i =
i .
Aufgabe 3:
Professor Hurtig hat folgendermaen bewiesen, dass alle Menschen die gleiche Haarfarbe haben: Aussage: Gegeben eine beliebige Menge von n Personen, n 1. Dann haben alle diese Personen die gleiche Haarfarbe.
Beweis durch Induktion: Induktionsanfang: n = 1. Eine einzelne Person hat oensichtlich die gleiche
Haarfarbe wie sie selbst. Induktionsschluss: Sei n fest und sei die Aussage fur alle k, 1 k n, schon bewiesen. Sei M eine Menge von n + 1 Personen und A 2 M eine
16
KAPITEL 1. EINFUHRUNG
beliebige Person aus dieser Menge. Betrachtet man die Menge M n fAg, so haben nach Induktionsvoraussetzung alle Personen in dieser Menge die gleiche Haarfarbe. Wahlt man eine andere Person B 2 M aus, so haben ebenfalls nach Induktionsvoraussetzung alle Personen in der Menge M nfB g die gleiche Haarfarbe. Somit haben A und B die gleiche Haarfarbe, und damit alle Personen aus M . Was hat Professor Hurtig hier falsch gemacht?
Aufgabe 4:
Betrachte alle 4 4-Bitmatrizen. Zeilenvektoren konnen gebildet werden, indem man eine Zeile von links nach rechts, oder von rechts nach links liest. Genauso konnen Spaltenvektoren von oben nach unten oder von unten nach oben gebildet werden. Beispiel: In der Matrix 00 1 0 01 BB 1 1 1 1 CC @0 1 0 0A 0 0 1 0 kommt der Vektor (0; 1; 1; 1) in der zweiten Spalte von unten nach oben vor. Beweisen Sie, dass es keine 4 4-Bitmatrix gibt, in der alle moglichen Bitvektoren der Lange 4 auf diese Weise vorkommen.
Aufgabe 5:
Zeigen Sie mit einem geeigneten Diagonalverfahren, dass die Menge der positiven rationalen Zahlen (Bruchzahlen) abzahlbar ist.
Aufgabe 6:
Gegeben sei ein gerichteter Graph G = (V; E ). Zeigen Sie, dass die Summe der Eingangsgrade aller Knoten gleich der Summe der Ausgangsgrade aller Knoten ist.
Kapitel 2 Endliche Automaten 2.1 Deterministische endliche Automaten Endliche Automaten sind das einfachste Modell eines Rechners und charakterisierbar durch die Konzepte Zustand und Zustandsubergang. Sie dienen zum Erkennen von Eingabefolgen.
Beispiel 7 Elektrisches Gerat (Fernseher) der ein- oder ausgschaltet wer-
den kann. Oenbar kann man die Betrachtung verfeinern und z.B. fur jedes mogliche Programm einen eigenen Zustand vorsehen.
Begrie: Eingabealphabet, Zustand, (gewunschter) Endzustand, Anfangszustand . . .
Beispiel 8 Fahrscheinautomat (Fahrkarten fur 3.- DM). Eingabealphabet : 1: Einwerfen einer 1.- DM Munze. 2: Einwerfen einer 2.- DM Munze. A: Drucken der Ausgabetaste. Zustande
s0 : Anfangszustand, auf Einwurf der ersten Munze wird gewartet. 17
KAPITEL 2. ENDLICHE AUTOMATEN
18
s1: 1 DM bereits eingeworfen, weitere werden erwartet. s2: 2 DM bereits eingeworfen, weitere werden erwartet. s3: 3 DM bereits eingeworfen, Bestatigung der Ausgabetaste wird erwartet. Wenn in einem der Zustand s0 , s1 , s2 die A-Taste gedruckt wird, soll keine Zustandsanderung bewirkt werden. Wenn im Zustand s3 die A-Taste gedruckt wird, soll der Automat in den Zustand s0 zuruckkehren und eine Fahrkarte ausgeben. Was passiert, wenn im Zustand s2 eine 2.- DM-Munze eingeworfen wird? Mehrere Moglichkeiten, z.B. Fehlerzustand f . 11A1A wird vom Automaten akzeptiert, A2AA1A wird vom Automaten akzeptiert, aber 22 wird vom Automaten nicht akzeptiert.
De nition 6 Die Menge aller vom Automaten A akzeptierten Eingabefolgen T (A) heit Sprache von A. Der Graph mit den Zustanden als Knoten und die ange symbolisierenden Kanten reprasentiert eine U bergangsfunktion, Uberg die wir auch komplett tabellarisch mitteilen konnen
ange: Beispiel 9 (Fortfuhrung) Anfangszustand s0, Endzustande fs0 g, Uberg
s0 s1 s2 s3 f
1
s1 s2 s3 f f
2
A s0 s1 s2 s0
s2 s3 f f f (f oder s0)
De nition 7 Ein deterministischer endlicher Automat (DFA) A ist gegeben durch
eine endliche Menge S (oder Q) von Zustanden eine endliche Menge von Eingabezeichen einen Anfangszustand s0 2 S
2.1. DETERMINISTISCHE ENDLICHE AUTOMATEN
19
eine Endzustandsmenge F S eine Ubergangsfunktion : S ! S, kurz: A = (S; ; s0 ; F; ).
Kanonische Erweiterung der U bergangsfunktion 1. (s; ) = s und 2. (s; aw) = ((s; a); w) fur alle Worte s 2 und Zeichen a 2 .
De nition 8 Die von einem endlichen Automaten A akzeptierte Sprache T (A) ist wie folgt festgelegt: T (A) = fsj(s0; w) 2 F g M.a.W.: A akzeptiert das Wort w = w1 w2 : : : wn genau dann, wenn es eine Folge r0; r1 ; : : : ; rn von Zustanden gibt, mit 1. r0 = s0 2. (ri ; wi+1) = ri+1 , fur alle i 2 f0; : : : ; n 1g 3. rn 2 F
Beispiel 10 A = (fq1; q2g; f0; 1g; q1; fq2g; ) mit der folgenden Funktion : 0 1 q1 q1 q2 q2 q1 q2 Berechnung von
(q1; 01001) = = = =
((q1; 0); 1001) (q1; 1001) ((q1; 1); 001) (q2; 001)
KAPITEL 2. ENDLICHE AUTOMATEN
20
= = = = =
((q2 ; 0); 01) (q1 ; 01) ((q1 ; 0); 1) (q1 ; 1) q2
T (A) besteht genau aus den nicht-leeren Worten aus f0; 1g, die mit einer 1 enden, d.h.
T (A) = fw 2 f0; 1gj letzter Buchstabe von w ist eine 1g Fur alle Worte w = a1 : : : an , ai 2 gilt:
(s; a1 : : : an) = ((s; a1); a2 : : : an) = ((s; a1a2); a3 : : : an ) ... = ((s; a1; : : : ; an 1); an)
Beispiel 11 Weitere Sprachen sind 1. T (A) = fw 2 f0; 1gj w endet auf 0g [ fg: 2. T (A) = fw 2 fa; bg j w beginnt und endet mit dem selben Zeicheng: 3. Modulo-3-Zahler mit Reset. 4. Modulo-i-Zahler mit Reset.
Zentrale Fragen: 1. Wie entwirft man endliche Automaten fur bestimmte Aufgaben? 2. Wie analysiert man endliche Automaten fur bestimmte Aufgaben?
OPERATIONEN AUF SPRACHEN 2.2. REGULARE
21
3. Wie vereinfacht (reduziert) man endliche Automaten, d.h., wie eliminiert man uber ussige Zustande und U bergange? Punkt 1 ist ein kreativer Proze. Eine Moglichkeit ist es, die Sichtweise/Rolle des Automaten anzunehmen.
Beispiel 12 Betrachte die Menge aller Worte uber = f0; 1g, die eine
ungerade Anzahl von Vorkommen von 1 enthalten. Es genugt oenbar, sich zwei Zustande zu merken:
qg : Bisher gesehene Anahl von 1-en ist gerade. qu: Bisher gesehene Anahl von 1-en ist ungerade. Der endliche Automat, der genau die richtigen Zeichenreihen erkennt (her aus ltert) ist durch die Angabe der passenden Ubergangsfunktion nun leicht zu bestimmen.
Beispiel 13 Entwurf eines endlichen Automaten, der alle Worte uber f0; 1g
akzeptiert, die das Wort 001 als Teilwort enthalten. Es genugt oenbar, sich vier Zustande zu merken:
q: Es wurde noch nichts gelesen. q0 : Zeichen 0 wurde gelesen. q00 : Zeichen 00 wurden gelesen. q002 : Zeichen 001 wurden gelesen. Wieder ist die Transitionsfunktion schnell bestimmt.
2.2 Regulare Operationen auf Sprachen De nition 9 Sei ein fest gewahltes endliches Alphabet. Fur Sprachen A; B de niert man: Vereinigung: A [ B = fwj w 2 A oder w 2 B g
KAPITEL 2. ENDLICHE AUTOMATEN
22
Verkettung: A B = fxyj x 2 A und y 2 B g Iteration: A = fx1 : : : xk j k 0 und xi 2 Ag. Rekursiv: 1. 2. 3.
A0 = Ai+1 = Ai A S A = i0 Ai
Beispiel 14 = fa; b; : : : ; zg A = fgood; badg, B = fboy; girlg A B = fgoodboy; goodgirl; badboy; badgirlg A = f; good; bad; goodgood; goodbad; : : :g De nition 10 Die von endlichen Automaten akzeptierte Menge von Worten heit regular. M.a.W. L heit regular, wenn es einen endliche Automaten A mit L = T (A) gibt.
Satz 9 Die Klasse der regularen Sprachen is abgeschlossen gegenuber Vereinigung, kurz: Sind A und B regular, so auch A [ B . Beweis: Konstruiere aus den Automaten, die A und B erkennen, einen, der
beide gleichzeitig simuliert. D.h. Sei A = T (MA) und B = T (MB ). Dann mussen wir einen Automaten MA[B konstruieren, soda gilt:
w 2 T (MA[B ) () w 2 T (MA) oder w 2 T (MB ): Also verfolgen wir die Zustandsubergange, die MA und MB machen, gleichzeitig. Sei MA = (SA; ; sA0 ; A; FA) und MB = (SB ; ; sB0 ; B ; FB ). De niere MA[B = (SA SB ; ; ; s0 ; F ) wie folgt:
s0 = (sA0 ; sB0 ) ((sA; sB )) = ((sA; a); (sB ; a)), fur sA 2 SA; sb 2 SB ; a 2 F = f(sA; sB )j sA 2 FA oder sB 2 FB g Jetzt zeigt man durch Induktion uber die Lange von w, w 2 , da gilt:
2.3. NICHTDETERMINISTISCHE AUTOMATEN
23
((sA; sB ); w) = (A(sA; w); B (sB ; w)): Also folgt
(s0; w) 2 F () (A(sA0 ; w); B (sB0 ; w)) 2 F () A(sA0 ; w) 2 FA oder B (sB0 ; w) 2 FB () w 2 T (MA) oder w 2 T (MB ) () w 2 T (MA) [ T (MB )
Auf ganz ahnliche Weise kann man zeigen, da die Klasse der regularen Sprachen gegen Durchschnitt (\) und Komplement (:) abgeschlossen ist. Schwierigkeiten treten allerdings auf, wenn man zeigen will, da mit A und B auch A B regular ist.
2.3 Nichtdeterministische endliche Automaten Ein nichtdeterministischer endlicher Automat (NFA) kann zu einem Paar (q; a) 2 Q mehr als einen, oder keinen Folgezustand haben. Zusatzlich erlaubt man spontatne Zustandswechsel. Formal: Erweitere zu [ fg.
De nition 11 Ein nichtdeterministischer endlicher Automat (NFA) A = (S; ; s0 ; F; ) ist gegeben durch
eine endliche Menge S (oder Q) von Zustanden eine endliche Menge von Eingabezeichen einen Anfangszustand s0 2 S eine Endzustandsmenge F S eine Ubergangsfunktion : S ! 2S .
KAPITEL 2. ENDLICHE AUTOMATEN
24
Beispiel 15 Q = fq1 ; q2; q3 ; q4g, F = fq4 g, = f0; 1g ist de niert durch die folgende Tabelle.
0 1 q1 fq1g fq1 ; q2g ; q2 fq3g ; fq3g q3 ; q2 ; q4 fq4g fq4g ;
De nition 12 Die von einen NFA akzeptierte Sprache T (N ) ist festgelegt durch
T (N ) = fw 2 j w = y1 : : : yn; yi 2 [ fg und 9z0 ; : : : ; zn : z0 = s0; zi+1 2 (zi; yi); zn 2 F g:
Damit ist 2 T (N ) () s0 2 F
Beispiel 16
1. NFA N , der genau die Worte uber f0; 1g akzeptiert, die an der drittletzten Stelle vom Ende eine 1 haben.
2. Automat A mit T (A) = f0i j i 0; (i 0 mod 2)g
Satz 10 Zu jedem NFA N = (S; ; s0; F; ) kann man einern DFA N 0 konstruieren mit T (N ) = T (N 0 )
Beweis: Idee: Verfolge fur einen Eingabewort alle mit diesem Wort moglichen U bergangsfolgen von Zustanden von N simultan und sehe nach, ob wenigstens eine U bergangsfolge vom Anfangs- zu einem Endzustand fuhrt. Wir nehmen der Einfachheit halber zunachst an, da N keine (spontanen) -U bergange hat, also fur alle s 2 S gilt: (s; ) = ;. Wir de nieren den deterministischen Automat N 0 = (S 0; ; s00; F 0; 0) wie folgt 1. S 0 = 2S 2. Fur R S und a 2 setze 0(R; a) = 3. s00 = fs0g
S (r; a) r2R
2.3. NICHTDETERMINISTISCHE AUTOMATEN
25
4. F 0 = fR S j R \ F 6= ;g Fur ein Wort w = a1 ; : : : ; an ist 0(R; w) gleich der Menge aller moglichen Zustande, in der N ausgehend von einem Zustand aus R bei Eingabe von a1 ; : : : ; an ubergehen kann. Nun gilt fur ein Wort w 2 , w = a1 : : : an : w 2 T (N ) genau dann, wenn es Zustande z0 ; z1 ; : : : ; zn gibt mit z0 ist gleich s0 und z1 = (z0 ; a1), z2 = (z1 ; a2), . . . zn = (zn 1; an) und qn 2 F . Dies wiederum gilt genau dann, wenn 0(fq0 g; a1 : : : an) \ F 6= ; ist, also, falls w 2 T (N 0) liegt. Wir mussen jetzt nur noch den Fall berucksichtigen, da der NFA N auch -U bergange hat. Dazu de nieren wir die Menge E (R) als die Menge der Zustande s, die von einem Zustand in R mit einem oder mehreren -U bergangen erreichbar ist. Wenn wir nun fur einen beliebigen NFA, der auch -U bergange haben kann, die U bergangsfunktion wie folgt modi zieren:
0 (R; a) =
[
r 2R
E ((r; a))
und entsprechend den Anfangszustand auf E (fs0g) = s00 setzen, dann gilt wieder: 0(s0; w) ist gleich der Menge aller moglichen Zustande, in der N ausgehend von einem Zustand aus R bei Eingabe von a1 ; : : : ; an (inklusive U bergange) ubergehen kann. Damit folgt wieder w 2 T (N ) () w 2 T (N 0)
Beispiel 17 Wir betrachten den Automaten N = (f1; 2; 3g; fa; bg; ; 1; f1g) mit (1; ) = f3g, (1; b) = f2g, (2; a) = f2; 3g, (2; b) = f3g und (3; a) = f1g. Dann gilt z.B. ; a; baa; baba 2 T (N ) und bb; ba; ab 2= T (N ). Der DFA N 0 = (S 0; fa; bg; 0; s00 ; F 0) mit S 0 = f;; f1g; f2g; f3g; f1; 2g; f1; 3g; f2; 3g; f1; 2; 3gg s0 = E (f1g) = f1; 3g F 0 = (f1g; f1; 2g; f1; 3g; f1; 2; 3g)
KAPITEL 2. ENDLICHE AUTOMATEN
26
besitzt eine graphisch zu reprasentierende Ubergangsfunktion 0 (Ubung). Der Automat kann vereinfacht werden, indem man die Zustande f1g und f1; 2g, die von keinem anderen Zustand aus erreichbar sind, weglat. Diese Zustande sind von Anfangszustand aus nicht erreichbar.
Jetzt kann man auf relativ einfache Weise den folgenden Satz beweisen.
Satz 11 Die Klasse der regularen Sprachen ist abgeschlossen gegenuber [, und .
Beweis: Seien A; B regular und seien NA, NB zwei NFAs mit T (NA) = A und T (NB ) = B .
1. Konstruiere NA[B mit T (NA[B ) = A [ B , soda die Startzustande in NA und NB mit einem -U bergang vom ubergeordneten Automat NA[B aus erreicht werden. 2. Konstruiere NAB mit T (NAB ) = A B , soda der Startzustand in NB mit einem -U bergang von den Endzustanden von NA aus erreichbar ist. 3. Konstruiere NA mit T (NA ) = A , soda der Startzustand von allen Endzustanden mittels -U bergangen erreichbar ist. Weiterhin schae einen neuen, akzeptierenden Startzustand s in T (NA ), der s0 mit einem -U bergang erreicht. Formal wird N = (S; ; s0; F; ) der NFA N 0 = (S 0; ; s00; F 0; 0) wie folgt konstruiert:
S 0 = S [ fsg s00 = s F 0 = F [ fsg
mit 0(s; a) = (s; a), falls s 2 Q n F oder s 2 F mit a 6= , 0(s; ) = (s; ) [ fs0g, falls s 2 F , 0(s; ) = fs0g 0(s; a) = ;, falls a 6= .
AUSDRUCKE 2.4. REGULARE
27
2.4 Regulare Ausdrucke Regulare Ausdrucke sind Namen zur Bezeichnung von Mengen von Worten uber einem bestimmten Alphabet. Ist ein solcher Ausdruck, so bezeichnet die Menge L() von Worten. Wir de nieren die Klasse der regularen Ausdrucke uber einem Alphabet und die von ihnen bezeichneten Mengen von Worten induktiv simultan: 1. 2. 3. 4.
; ist ein regularer Ausdruck uber und L(;) = ;. ist ein regularer Ausdruck und L() = fg Fur jedes a 2 ist a ein regularer Ausdruck und L(a) = fag. Sind und regulare Ausdrucke, so auch [ , , und L( [ ) = L() [ L( ) L( ) = L() L( ) L() = (L())
Konvention: Klammern konnen weggelassen werden, wenn keine Uneindeutigkeiten zu befurchten sind.
Bemerkung: Unterschied zwischen (Namen) und L() (Menge von Worten) ist analog z.B. zu arithmetischen Ausdrucken, z.B. sind (7 + 5)=6 und 1+1 zwei verschiedene Namen fur dieselbe Zahl 2. Hau g macht man jedoch die scharfe Unterscheidung zwischen und L() nicht.
Beispiel 18 Sei = f0; 1g. 0(0 [ 1) bezeichnet die Menge aller Bitfolgen, die mit 0 beginnen. 010 bezeichnete die Menge aller Bitfolgen, die genau eine 1 enthalten. (0 [ 1)1(0 [ 1) bezeichnet die Menge aller Bitfolgen, die mindestens eine 1 enthalten.
((0[1)(0[1)) bezeichnet die Menge aller Bitfolgen, mit gerader Lange.
KAPITEL 2. ENDLICHE AUTOMATEN
28
L(((0 [ )(1 [ ))) bezeichnet die Menge f0; 1; 01; g.
Bemerkung: Fur jeden regularen Ausdruck gilt: L( [ ;) = L() und L() = L() aber im allgmeinen gilt
L( [ ) 6= L() und L(;) 6= L() Zum Beispiel gilt fur = 0: L(0 [ ) = f0; g, L(0) = f0g und L(0;) = ;. Regulare Sprachen sind ein ubliches Sprachmittel zur Beschreibung von Mengen von Worten.
Beispiel 19 Die Menge der syntaktisch korrekt gebildeten Gleitpunktzahlen lat sich wie folgt beschreiben:
f+; ; g(DD [ DD:D [ D:DD) mit D = f0; 1; 2; : : : ; 9g.
Ziel: Mit regularen Ausdrucken kann man genau die regularen Sprachen beschreiben.
Satz 12 Zu jedem regularen Ausdruck uber dem Alphabet kann man einen NFA N = (S; ; s0; F; ) angeben mit T (N ) = L().
Beweis: Durch Induktion uber dem Alphabet von . 1. = ;. Dann ist L() = T (N ) fur den wie folgt de nierten NFA: ! 2. = . Dann ist L() = T (N ) fur den wie folgt de nierten NFA: ! 3. = a; aa 2 . Dann ist L() = T (N ) fur den wie folgt de nierten NFA:
! !
AUSDRUCKE 2.4. REGULARE
29
4. Hat man bereits NFA's N und N mit L() = T (N) und L( ) = T (N ), so kann man NFA's konstruieren, die L(( [ )), L(( )) und L() akzeptieren, weil die Klasse der regularen Sprachen gegenuber [, und abgeschlossen ist.
Beispiel 20 Gegeben sei der regulare Ausdruck = (ab [ a) . Wir konstru-
ieren einen NFA der L() akzeptiert, schrittweise wie folgt: Zuerst wird ein a NFA fur L(a): ! !
und L(b) : ! !b konstruiert, dann fur L(ab) : ! !a ! !b Letztendlich wird der Automat fur L(ab [ a) und L((ab [ a) ) konstruiert. Der entstehende NFA ist nicht minimal.
Wir zeigen jetzt, da auch umgekehrt jede von einem NFA akzeptierte Menge von Worten von einem regularen Ausdruck beschrieben werden kann.
Satz 13 Zu jedem (determ.) endlichen Automaten A = (S; ; s1; F; ) kann man einen regularen Ausdruck angeben mit T () = L().
Beweis: Zum Beweis nehmen wir an, da die Menge S von Zustanden von A gleich S = fs1; s2 ; : : : ; sng, also s1 der Anfangszustand ist. Dann de nieren wir:
E (i; j; k) = f Menge aller Worte x 2 , die den Zustand si in sj uberfuhren, so da nur Zwischenzustande mit Index k auftreteng = fw j w 2 ; (si; w) = sj ; 8w0Anfang von w; 1 jw0j jwj: (si; w) = sk0 ; k0 kg Jetzt lassen sich die Mengen E (i; j; k) fur beliebige 1 i; j n; i j und k n wie folgt induktiv de nieren:
E (i; j; 0) = fa 2 j (si; a) = sj g E (i; j; k) = E (i; j; k 1) [ (E (i; k; k 1) E (k; k; k 1) E (k; j; k 1)) Nun ist oenbar
30
KAPITEL 2. ENDLICHE AUTOMATEN
0 1 [ T (A) = @ E (1; j; n)A [ R j;sj 2F
mit
R = fg, falls s1 2 F , R = ; sonst. Es ist klar, da man fur alle i; j regulare Ausdrucke angeben kann, die E (i; j; 0) bezeichnen. Ferner zeigen die obigen Gleichungen, wie man induktiv fur beliebige i; j und k regulare Ausdrucke konstruieren kann, die E (i; j; k) bezeichnen.
2.5 Weitere Abschluseigenschaften Sei fur ein Wort w = a1 : : : an , n 0, w 2 das Spiegelbild sp(w) = an; an 1 : : : a1. Satz 14 Zu jedem regularen Ausdruck kann man einen regularen Ausdruck angeben mit L() = fsp(w)jw 2 L()g Beweis: Wir konstruieren induktiv uber den Aufbau von : ; = ;; = ; a = a und fur regulare Ausdrucke , : ( ) = ( ); ( [ ) = ( [ ); = () Dann zeigt man leicht fur beliebige Worte w: w 2 L() () sp(w) 2 L()
Satz 15 Seien L1 und L2 regulare Teilmengen von . Dann sind auch die
folgenden Mengen regular: L1 L2 , L1 \ L2 , L1 [ L2 , L1 , L+1 = L1 L1 , L1 = n L1 , L1 n L2 , sp(L1 ) = fsp(w)j w 2 L1 g.
2.6. ALGEBRAISCHE CHARAKTERISIERUNG
31
2.6 Eine algebraische Charakterisierung der regularen Sprachen Man kann jeder Sprache L 2 eine A quivalenzrelation RL auf wie folgt zuordnen:
De nition 13 Fur beliebige Worte x; y 2 gilt: xRL y genau dann, wenn 8z 2 (xz 2 L () yz 2 L)
(2.1)
Intuitiv: x und y verhalten sich bei Anfugen beliebiger Worte aus bzgl. ihrer Mitgliedschaft in L identisch. Satz 16 RL ist Aquivalenzrelation.
Beweis: 1. RL ist re exiv, d.h. fur alle x 2 gilt xRL x, denn das ist aquivalent zu 8z 2 (xz 2 L () xz 2 L) 2. RL ist symmetrisch, d.h. aus xRL y folgt xRL y fur alle x; y 2 . Dies ist klar denn die Bedingung in Gleichung 2.1 ist symmetrisch. 3. RL ist transitiv. Denn sei
xRL y genau dann, wenn 8w 2 (xw 2 L () yw 2 L) yRLz genau dann, wenn 8w 2 (yw 2 L () zw 2 L) Dann folgt xRL z genau dann, wenn 8w 2 (xw 2 L () zw 2 L)
Weil in der Bedingung 2.1 z = miteingeschlossen ist, folgt insbesondere, da xRL y die Eigenschaft x 2 L () y 2 L impliziert. Entscheidend fur die Regularitat von L ist, ob die von RL erzeugte Anzahl von A quivalenzklassen endlich ist. Es gilt der folgenden Satz.
32
KAPITEL 2. ENDLICHE AUTOMATEN
Satz 17 (Myhill/Nerode) Eine Sprache L ist regular genau dann, wenn RL eine Aquivalenzrelation mit endlichem Index ist.
Beweis: ) Sei L = T (A), A = (S; ; s0 ; F; ) ein DFA. Dann kann man A eine
A quivalenzrelation RA wie folgt zuordnen: xRA y () (s0 ; x) = (s0; y) Also: Alle Worte, die A beginnend im Anfangszustand in denselben Zustand uberfuhren, werden als aquivalent angesehen. Wir zeigen: RA RL , d.h. RA ist Verfeinerung von RL: Aus xRA y folgt xRLy. Sei also xRA y, z beliebig.
xz 2 L = T (A) () (s0; xz) 2 F () ((s0; x); z) 2 F () ((s0; y); z) 2 F () (s0; yz) 2 F () yz 2 L = T (A) Dies zeigt, da xRL y gilt. Damit kann die Anzahl der A quivalenzklassen von RL hochstens kleiner sein, als die von RA. Letztere ist aber jS j und damit endlich. ( Sei der Index von RL endlich, d.h. zerfallt bezuglich RL in endlich viele A quivalenzklassen. Seien x1 ; : : : ; xk Reprasentanten. dieser Klassen, also = [x1 ] [ [x2 ] [ : : : [ [xk ]. Man de niere nun einen DFA A = (S; ; s0; F; ), dessen Zustande gerade diese A quivalenzklassen sind. S = f[x1 ]; [x2 ]; : : : ; [xk ]g, s0 = [], F = f[x]jx 2 Lg, ([x]; a) = [xa]. Dann gilt insbesondere ([]; x) = [x]. Es folgt: x 2 T (A) () (s0; x) 2 F () ([]; x) 2 F () [x] 2 F () x 2 L
2.7. REDUZIERTE ENDLICHE AUTOMATEN
33
Also ist L = T (A).
Beispiel 21 L = fx 2 f0; 1gj x endet mit 00g Es gilt: [] = fx 2 f0; 1gj x endet nicht mit 0g [0] = fx 2 f0; 1gj x endet mit 0, aber nicht mit 00g [00] = fx 2 f0; 1gj x endet mit 00g Das sind alle Aquivalenzklassen von RL , also = [] [ [0] [ [00] Der Aquivalenzklassenautomat hat drei Zustande []; [0]; [00] und die folgende Ubergangsfunktion:
([]; 0) = [0]; ([]; 1) = [] ([0]; 0) = [00]; ([0]; 1) = [01] = [] ([00]; 0) = [000] = [00]; ([00]; 1) = [001] = [] Dies ist zugleich der Minimalautomat, der L akzeptiert.
2.7 Reduzierte endliche Automaten De nition 14 Sei A = (S; ; s0; F; ) ein DFA. Zwei Zustande s; s0 2 S heien aquivalent bezgl. A, s A s0 , wenn fur alle Worte w 2 gilt: (s; w) 2 F () (s0; w) 2 F . Der Automat A heit reduziert, wenn fur alle Zustande s; s0 2 S aus s A s0 schon s = s0 folgt und wenn alle Zustande in A vom Anfangszustand aus erreichbar sind, d.h., fur jedes s 2 S gibt es ein Wort w 2 : s = (s0 ; w). Satz 18 A ist eine Aquivalenzrelation.
Verfahren zur Reduktion eines endlichen Automaten A = (S; ; s0 ; F; ): 1. Losche alle vom Anfangszustand aus nicht erreichbaren Zustande
KAPITEL 2. ENDLICHE AUTOMATEN
34
2. \Dividiere A bzgl. A", d.h., de niere A = (S 0; ; s00 ; F 0; 0) wie folgt:
S0 s0 F0 0 ([s]A; a)
= = = =
f[s]Aj s 2 S g mit [s]A = fs0j s A s0g [s0 ]A f[s]Aj s 2 F g [(s; a)]A; a 2
1. Zunachst mu man sich davon uberzeugen, da diese De nition vernunftig in dem Sinne ist, da die De nition von 0 unabhangig vom Reprasentanten der Klasse [s]A ist. Sei beispielsweise s0 2 [s]A also s A s0. Dann mussen wir zeigen, da auch [(s; a)]A = [(s0; a)]A ist, d.h., (s; a) A (s0; a), fur ein beliebiges a 2 . Um das nachzuweisen, mussen wir zeigen, da fur alle Worte w 2 gilt:
((s; a); w) 2 F () ((s0; a); w) 2 F Das gilt aber fur beliebige a 2 , weil s A s0 ist. 2. Wir zeigen, da T (A) = T (A0) ist, denn
w 2 T (A0) () 0(s00; w) 2 F 0 () 0([s0 ]A; w) 2 F 0 () [0(s0 ; w)]A 2 F 0 () (s0; w) 2 F () w 2 T (A) 3. Schlielich mu man zeigen, da A0 reduziert ist, d.h. je zwei bzgl. A0 aquivalente Zustande s und s0 sind schon identisch. Seien also s; s0 2 S 0. Dann gilt
s A0 s0 () 8w 2 (0(s; w) 2 F 0 () 0(s0; w) 2 F 0) () 8w 2 (0([s]A; w) 2 F 0 () 0([s0 ]A; w) 2 F 0) () 8w 2 ([(s; w)]A 2 F 0 () [(s0; w)]A 2 F 0)
2.8. PUMPING LEMMA
() () () ()
35
8w 2 ((s; w) 2 F () (s0; w) 2 F ) s A s0
[s]A = [s0]A s = s0
Frage: Wie fuhrt man die Reduktion praktisch durch? Antwort: state-merging Verfahren. o.E. genugt es, die A quivalenzklassen [s]A fur alle Zustande s 2 S von A zu bestimmen. Beginne mit der Aufteilung von S in Blocke S und S F . Fur jeden Block und jedes Zustandspaar (s; s0) untersuche, ob fur jedes Zeichen a 2 jeweils (s; a) und (s0; a) im gleichen oder in verschiedenen Blocken der aktuellen Aufteilung liegen. Wenn sie nicht im gleichen Block liegen, teile auf. Wiederhole den Vorgang solange, bis keine Aufteilung mehr moglich ist.
Schritt 1: S1;1 = F und S1;2 = S F bilden Partition 1 . Schritt 2: Sei k die Partition bestehend aus Sk;1; : : : ; Sk;j . Dann entsteht
k+1 durch evtl. Aufteilen von Blocken von k , so da s und s0 genau dann zum gleichen Block von k+1 gehoren, wenn fur jedes a 2 gilt: (s; a) und (s0; a) gehoren zum selben Block von k Schritt 3: Wiederhole Schritt 2 solange, bis keine Aufteilung mehr moglich ist.
2.8 Pumping Lemma Wie zeigt man von einer gegebenen Sprache L , da sie nicht regular ist?
Satz 19 Sei L regular. Dann gibt es eine Zahl n, soda sich alle Worte x 2 L mit jxj n zerlegen lassen in x = uvw mit 1. jv j 1
KAPITEL 2. ENDLICHE AUTOMATEN
36 2. juvj n 3. 8i : uv iw 2 L
Beweis: Sei L = T (A) mit DFA A = (S; ; s1 ; F; ) und sei jS j = n. Betrachte nun das Wort w = a1 : : : an , ai 2 mit Lange n Dann konnen die
Zustande s1 , s2 = (s1; a1 ), s3 = (s2; a2), . . . , sn+1 = (sn; an) nach dem Schubfachprinzip nicht alle verschieden sein. Sei si = sj fur 1 i < j n + 1. Setze u = ai : : : ai 1 und v = ai : : : aj 1. Dann ist si = (s1 ; u) und sj = (s1; uv). Oenbar gilt jvj 1; juvj n und
(s1; u) = (s1; uv) = (s1; uv2) = : : : Also gilt auch (s1 ; uvw) 2 L () (s1; uviw) 2 L fur alle i 0.
Satz 20 L = fanbnjn 1g ist nicht regular. Beweis: Angenommen, L sei doch regular. Wahle n wie im Pumping Lemma und betrachte das Wort an bn der Lange 2n und die Zerlegung von anbn = uvw mit jvj 1 und juvj n. Die zweite Bedingung impliziert, da v nur aus a's bestehen kann, wahrend die erste Bedingung belegt, da v 6= ist. Dann ware aber auch an jvjbn 2 L. Widerspruch. In ahnliche Weise kann man zeigen, da die Sprachen L = f0m j m ist Quadratzahlg und L = f0p j m ist Primzahlg nicht regular sind.
2.9 Entscheidbarkeitsfragen Satz 21 Es gibt Algorithmen, um fur beliebige regulare Mengen L1 und L2 und beliebige Worte zu entscheiden, ob gilt: 1. x 2 L1 (Wortproblem)
2.9. ENTSCHEIDBARKEITSFRAGEN
37
2. L1 = ; (Leerheitsproblem) 3. L1 endlich (Endlichkeitsproblem) 4. L1 \ L2 = ; (Durchschnittsproblem) 5. L1 = L2 (Aquivalenzproblem)
Beweis: 1. In Zeit O(jxj) wird x 2 L1 erkannt. 2. Man zeigt analog zum Pumping Lemma, da L1 6= ; genau dann gilt, wenn es ein akzeptiertes Wort mit Lange < n = jS j in einem L1 erkennenden Automaten gibt. 3. Wir zeigen fur die Zahl n des Pumping Lemmas: jL1 j = 1 () Es gibt ein Wort mit Lange n und < 2n in L1 . ( Sei x 2 L; n jxj < 2n. Nach dem Pumping Lemma kann man x schreiben in der Form x = uvw; mit x sind aber auch alle Worte uviw, i 0, in L1 und damit ist L1 unendlich. ) Angenommen, das kurzeste Wort x 2 L1 mit Lange n habe eine Lange 2n. Scheibe x = uvw, soda uv0w = uw 2 L1 ist. Da jvj juvj n (letzte Ungleichung gilt nach dem Pumping Lemma) mu das Wort uw eine Lange juwj n haben, und uw ist kurzer als x. Dies ist ein Widerspruch zur De nition von x. Das Verfahren zur Entscheidung, ob jL1 j = 1 ist, lauft also so ab, da alle Worte x der Lange n und < 2n daraufhin uberpruft werden mussen, ob x 2 L liegt. 4. Durch Konstruktion des Durchschnittsautomaten unmittelbar klar. 5. L1 = L2 () (L1 \ L2 ) [ (L2 \ L1) = ;. Alternativ: Konstruiere zu L1 und L2 den Minimalautomaten und prufe in einem parallelen Tiefensuchlauf, ob diese isomorph sind.
38
2.10 U bungen
KAPITEL 2. ENDLICHE AUTOMATEN
2.10. UBUNGEN
39
Aufgabe 7:
Die Mensa hat sich aus Rationalisierungsgrunden entschlossen, einen Essensausgabeautomaten zu benutzen. Der Automat (ein DFA=deterministic nite automaton ) soll Folgendes konnen: Es gibt vier Wahlmoglichkeiten: Eine Suppe, das Tagesgericht, das Tagesgericht mit Suppe und das Menu. Fur jede Wahl gibt es eine Taste, die nach Eingabe der entsprechenden Marken gedruckt werden muss. Es gibt genau drei Marken: Eine Tagesgericht-Marke (=T-Marke), sowie 0,50 DM und 1,00 DM-Marken, wobei zwei 0,50 DM-Marken wie eine 1,00 DM-Marke zahlen. Folgende Preise gelten in der Mensa: Gericht Suppe Tagesgericht Tagesgericht mit Suppe Menu
Preis 0,50 DM T-Marke T-Marke und 0,50 DM T-Marke und 1,00 DM
Will man nun ein Gericht haben, so muss man zuerst die richtigen Marken in den Automaten eingeben, und dann die entsprechende Taste drucken. Der Automat soll bei falscher Eingabe in einen Fehlerzustand ubergehen. Wie beim Automaten in der Vorlesung darf der Automat den "Fehler\ haben, dass er das leere Wort akzeptiert. Geben Sie den vollstandigen Automaten als Graphen an.
Aufgabe 8:
Konstruieren Sie zu folgenden Sprachen L einen DFA: (a) L = ; uber dem Alphabet = fA; B; C g. (b) L ist die Menge der korrekten Dualzahlen uber den Alphabet = f0; 1g. Korrekte Dualzahlen haben keine fuhrenden Nullen. Das leere Wort ist auch keine korrekte Dualzahl. (c) Sei = f0; 1g. Alle uber gebildeten Worter seien nun Dualzahlen, das leere Wort habe den Wert 0. L sei die Menge der Dualzahlen, die beim Teilen durch 5 den Rest 3 lassen.
KAPITEL 2. ENDLICHE AUTOMATEN
40
Aufgabe 9:
Zeigen Sie, dass jede endliche Sprache regular ist.
Aufgabe 10:
Eine korrekte Real-Zahl sieht so aus: Zuerst kommt der Vorkommaanteil, dann kann durch einen Punkt getrennt ein Nachkommaanteil folgen und anschliessend kann noch ein Exponent folgen. Der Vorkommaanteil besteht aus einer beliebigen Anzahl von Ziern, aber mindestens einer. Der Nachkommaanteil besteht aus einer beliebigen Anzahl von Ziern { auch keine. Der Exponent besteht aus einem "E\ und einer beliebigen Anzahl von Ziern, aber mindestens einer. Ausserdem kann vor dem Vorkommaanteil sowie nach dem "E\ im Exponenten ein Minus stehen. Beispiele: 42, -1.234, 17., 1E100003 und 0000.E-0000 sind korrekte RealZahlen, 1E, .17, 1E1E1 und -Zwanzig sind keine korrekten Real-Zahlen. Geben Sie den Graphen eines NFA(=nondeterministic nite automaton ) an, der korrekte Real-Zahlen akzeptiert.
Aufgabe 11:
Gegeben sei folgender NFA N = (fa; b; cg; fs1; s2; s3g; s1; fs2g; ). b
s1
b,c
s2
a
c
s3
b,c
(a) Welche Sprache erkennt der Automat? (b) Konstruieren Sie mit Hilfe der Potenzmengenkonstruktion einen aquivalenten DFA.
2.10. UBUNGEN
41
Aufgabe 12:
Geben Sie zu folgenden Sprachen L einen regularen Ausdruck an und begrunden Sie kurz informal, warum dieser Ausdruck gerade die Sprache beschreibt. (a) Sei = f0; 1g. L enthalt alle Worter w 2 , die drei aufeinanderfolgende Nullen oder drei aufeinanderfolgende Einsen haben (oder beides). (b) Sei = f0; 1g. L enthalt alle Worter w 2 , die drei aufeinanderfolgende Nullen und drei aufeinanderfolgende Einsen haben. (c) Sei = fa; b; cg. L enthalt alle Worter w 2 , bei denen direkt vor einem a mindestens ein b kommt und direkt nach einem c mindestens zwei bs kommen.
Aufgabe 13:
Wir sagen, "zwei regulare Ausdrucke und sind gleich ( = )\, wenn sie dieselbe Sprache beschreiben. Zeigen Sie fur beliebige Ausdrucke und : (a) = [ (b) ( [ ) = ( [ )
S k ) Hinweis: Beachten Sie, dass L( ) = L( 1 k=0 Aufgabe 14:
Zeigen Sie, dass die regularen Sprachen bezuglich Mengendierenz abgeschlossen sind. D.h. sind L1 und L2 regulare Sprachen, dann ist L1 n L2 auch regular.
Aufgabe 15: Sei = f0; 1g. Konstruieren Sie induktiv1 einen NFA N , der L(10 [ (0 [ 11)1) akzeptiert.
D. h. zuerst konstruiere man einen Automaten, der L(1) erkennt, dann baue man daraus einen, der L(1 ) erkennt, dann einen, der L(0) erkennt, aus diesen beiden einen, der L(1 0) erkennt und so weiter. 1
KAPITEL 2. ENDLICHE AUTOMATEN
42
Aufgabe 16: Sei = f0; 1g und L = fw 2 : w enthalt drei aufeinanderfolgende Nulleng. Geben Sie die A quivalenzklassen der Relation RL an.
Aufgabe 17:
Bei Aufgabe 5(b) auf dem letzten U bungsblatt war folgender Automat die korrekte Losung: a a,b,c
; a 1; 2 b,c
1
a,c
2
b b,c
a
b
c
1; 3 b
a b
b
c 2; 3
a c
3 a c
Berechnen Sie zu diesem DFA den Minimal-Automaten mit dem in der Vorlesung vorgestellten Algorithmus (state-merging ) und geben Sie ihn als Graphen an.
2.10. UBUNGEN
43
Aufgabe 18:
Welche der folgenden Sprachen uber = f0; 1g ist regular? Beweisen Sie Ihre Antwort. (a) (b) (c) (d)
L = f0k 1l 0k+l : k; l 2 N g L = f02m : m 2 N g L = fxyz : x; y 2 ^ jxj; jyj 1 ^ z = sp(x)g L = fw 2 : w = sp(w)g
Dabei bedeutet sp(w) das gespiegelte Wort von w.
Aufgabe 19: Sei L = fb; cg [ fak bm cm : k > 0; m > 0g (a) Zeigen Sie, da es eine naturliche Zahl n gibt, so da sich jedes Wort x 2 L mit jxj n in x = uvw zerlegen lat mit jvj 1, juvj n und uviw 2 L fur jedes i 2 N . (b) Zeigen Sie, da der Index von RL unendlich ist. (c) Was bedeutet dieses Ergebnis fur das Pumping-Lemma?
44
KAPITEL 2. ENDLICHE AUTOMATEN
Kapitel 3 Grammatiken 3.1 Kontextfreie Sprachen De nition 15 Eine (generative) Grammatik ist ein Formalismus zur Erzeugung der korrekt gebildeten Worte ( Satze) einer (formalen) Sprache.
Beispiel 22
1. Programmiersprachensyntax, Backus-Naur-Form (aus PascalReport von Jensen/Wirth) h statement i ::= h unlabeled statement i j h label i : unlabeled statement
i h unlabeled statement i ::= h simple statement i j h structured statement i h label i ::= h unsigned integer i h structured statement i ::= h compound statement i j h conditional statement i j h repetive statement i h compound statement i ::= begin h statement i f ; h statement i g end
2. Grammatik zur Beschreibung eines Fragments der englischen Sprache. h sentence i ::= h noun-phrase i h verb-phrase i h noun-phrase i ::= h complex-noun-phrase i j h complex-noun-phrase i h prep-phase i
45
KAPITEL 3. GRAMMATIKEN
46
h verb-phrase i ::= h complex-verb-phrase i j h complex-noun-phrase i h prep-phase i h complex-noun-phrase i ::= h article i h noun i h complex-verb-phrase i ::= h verb i j h verb i h noun-phrase i h article i ::= a j the h noun i ::= boy j girl j ower h verb i ::= touches j likes j sees h prep i ::= with 10 Variablen, 27 Terminale (Buchstaben + ), 10 Regeln. Forgendes Beispiel einer Herleitung:
hsentencei = hnoun-phraseihverb-phrasei = hcomplex-noun-phraseihverb-phrasei = harticleihnounihverb-phrasei = a hnounihverb-phrasei = a boy hverb-phrasei = a boy hcomplex-verb-phrasei = a boy hverbi = a boy sees
Weitere Worte in L(G) : the boy sees a ower , a girl with a ower sees the boy 3. Grammatik zum Erzeugen der (beliebig geklammerten) arithmetischen Ausdrucke
E ! T j E+T T ! F j T F F ! a j (E ) Startsymbol ist hier E und herleitbar ist, z.B.:
3.1. KONTEXTFREIE SPRACHEN E = = = = = = = = = =
47
E+T T +T T F +T (E ) F + T (T ) F + T (F ) F + T (a) F + T (a) a + T (a) a + F (a) a + a
De nition 16 Eine kontextfreie Grammatik ( cf-Grammatik) G = (V; ; R; S ) besteht aus:
1. Einer endlichen Menge V von Variablen/ Nichtterminalen 2. Einem endlichem Alphabet von Terminalzeichen. 3. Einer endlichen Menge von R von Regeln der Form A ! w mit A 2 V und w 2 (V [ ) 4. Einer Startvariablen S (Satzsymbol)
Fur u; v; w 2 (V [ ) ; A ! w 2 R schreiben wir:
uAv ) uwv Wir schreiben u ) v, wenn u = v oder es k Worte gibt mit u ) u1 ) u2 ) : : : ) uk ) v.
De nition 17 Die von der cf-Grammatik erzeugte Sprache L(G) ist de niert durch
L(G) = fw 2 j S ) wg
KAPITEL 3. GRAMMATIKEN
48
Beispiel 23
1. G = (fS g; fa; bg; R; S ) mit R : S ! aSb j . Dann ist L(G) = fanbn j n 0g.
2. G = (fS g; f(; )g; R; S ) mit R : S ! (S ) j SS j . Dann ist L(G) = f Menge der korrekt gebildeten Klammerungen uber f(; )g g, z.B. S ) SS ) (S )S ) ((S ))(S ) ) (())(S ) ) (())() 3. cf-Grammatik, die die Sprache L = f0n1n j n 0g [ f1n0n j n 0g erzeugt.
S ! S1 j S2 S1 ! 0S11 j S2 ! 1S20 j
3.2 Spezielle kontextfreie Grammatiken De nition 18 Eine kontextfreie Grammatik G = (V; ; R; S ) heit rechtsli-
near bzw. linkslinear, wenn alle Regeln in R von einer der folgenden Formen ist: rechtslinear: linkslinear:
A A A A
! ! ! !
aB B a
A A A A
! ! ! !
Ba B a
mit A; B 2 V; a 2 .
Satz 22 Sei A = (Q; ; q0 ; F; ) ein deterministischer endlicher Automat.
Zu A kann man eine rechtslineare Grammatik G angeben mit T (A) = L(G).
Beweis: De niere G = (V; ; R; S ) wie folgt zu A: V = Q, S = q0 , R enthalte fur jedes a 2 und q 2 Q eine Regel: q ! a(q; a)
3.2. SPEZIELLE KONTEXTFREIE GRAMMATIKEN
49
und fur jedes q 2 F eine Regel q ! . Zum Nachweis, da T (A) = L(G) ist, konnen wir o.E. annehmen, da 62 L(G) ist, denn es gilt:
2 T (A) () q0 2 F () q0 ! 2 R () 2 L(G) T (A) L(G): Sei w 2 T (A), w = a1 : : : ar , r 1, ai 2 . Dann folgt aus (q0 ; w) 2 F , da (q0 ; w) ! 2 R. Also folgt q0 ) a1 (q0; a1 ) ) a1 a2((q0 ; a1); a2) ) a1 a2(q0 ; a1a2 ) ... ) a1 : : : ar (q0; a1 : : : ar ) ) a1 : : : ar Demnach ist w in L(G). L(G) T (A): Sei w 2 L(G), w 6= und q0 ) w1 ) : : : ) wr+1 = w eine Ableitung von w. Aus der Struktur der Regeln von R folgt 1. Die letzte angewandte Regel mu eine mit rechter Seite gewesen sein (sonst ware w 6= ) 2. Falls in wj ein Symbol aus V vorkommt, so hat wj die Form wj = a1 : : : aj q mit q 2 (q0; a1 : : : aj ). (Beweis durch Induktion uber j .) Damit wr = a1 : : : ar q mit q = (q0; a1 : : : ar ) wr+1 = a1 : : : ar und q ! 2 R Nach Konstruktion von R mu dann aber q 2 F und damit (q0; a1 : : : ; ar ) 2 F also w 2 T (A) sein.
Im gewissen Sinne gilt auch die Umkehrung:
KAPITEL 3. GRAMMATIKEN
50
Satz 23 Zu jeder rechtslinearen Grammatik G = (V; ; R; S ) kann man einen NFA A angeben mit L(G) = T (A).
Beweis: Wir de nieren A = (Q; ; q0 ; F; ) wie folgt: Q = V [ fsf ; s0 = S g, sf neuer Zielzustand Fur die Regeln von R sehe man U bergange in A wie folgt vor:
A ! aB A!B A!a A!
B 2 (A; a) B 2 (A; ) sf 2 (A; a) sf 2 (A; )
Dann gilt w 2 L(G) genau dann, wenn es einen Pfad vom Anfangszustand s0 = S zum Endzustand sf von A gibt, wobei die Beschriftung langs dieses Pfades w ergibt. Dies wiederum gilt genau dann, wenn w 2 T (A) liegt.
Bemerkung: 1. Zu jeder rechtslinearen Grammatik G kann man eine linkslineare Grammatik G0 angeben mit L(G) = L(G0). 2. Zu jeder rechtslinearen Grammatik G mit 2= L(G) kann man eine rechtslineare Grammatik G0 angeben, mit L(G) = L(G0), die nur Regel der Form A ! aB , A ! a enthalt (Entsprechendes gilt fur linkslineare Grammatiken) Rechts- bzw. linkslineare Grammatiken sind echt weniger machtig als cfGrammatiken, denn fanbn j n 0g kann zwar von einer cf-Grammatik, nicht aber von einer rechtslinearen Grammatik erzeugt werden.
3.3. NORMALFORMEN VON GRAMMATIKEN
51
3.3 Normalformen von Grammatiken Satz 24 Auf Regeln der Form A ! kann bei cf-Grammatiken verzichtet werden, wenn 2= L(G) ist. Wenn 2 L(G) liegt genugt es S ! als einzige -Regel zuzulassen.
Beweis: Sei also G = (V; ; R; S ) eine cf-Grammatik mit 62 L(G). Zerlege V = V1 [ V2 mit A ) fur alle A 2 V1. Dabei wird V1 induktiv wie folgt de niert
1. A 2 V1, fur jedes A 2 V mit A ! 2 R 2. Falls A1; : : : ; Ak 2 V1 und A ! A1 : : : Ak 2 R, so auch A 2 V1. Dann entfernen wir alle -Regeln aus R und fugen fur jede Regel, die auf der rechten Seite Variablen aus V1 enthalt, eine Regel hinzu, die durch Ersetzen eines oder mehrerer Vorkommen von solchen Variablen durch entsteht. Formal fugen wir fur jede Regel der Form B ! xAy mit B 2 V; A 2 V1 ; xy 2 (V [ ) die Regel B ! xy zu R hinzu. Ableitungsbaume /Linksableitungen entsprechen in naturlicher Weise Ableitungen in G.
Beispiel 24 Sei G = (fE; T; F g; f(; +; ; )g; R; E ) mit folgender Regelmenge R:
E ! EjT T ! T F j F F ! (E ) j a Eine Linksableitung wurde schon im Eingangsbeispiel beschrieben. Die Korrespondenz zwischen Linksableitungen und Ableitungsbaumen ist eindeutig.
De nition 19 Ein Wort w 2 L(G) heit mit G mehrdeutig ableitbar, wenn es zwei verschiedenen Linksableitungen (Ableitungsbaume) fur w 2 G gibt. Eine Sprache L 2 heit inharent mehrdeutig, wenn es fur jede Grammatik G mit L = L(G) Worte gibt, die mit G mehrdeutig ableitbar sind.
KAPITEL 3. GRAMMATIKEN
52
Beispiel 25 Die Sprache L = f0i1j 2k j i = j oder j = kg ist inharent mehrdeutig.
3.4 Chomsky-Normalform De nition 20 Eine Grammatik G = (V; ; R; S ) ist in Chomsky-Normalform, wenn alle Regeln von R die Form X ! Y Z oder X ! a mit X; Y; Z 2 V , a 2 , haben. Satz 25 Zu jeder cf-Grammatik G = (V; ; R; S ) mit 2= L(G) kann man
eine cf-Grammatik G0 = (V 0 ; ; R0 ; S 0 ) in Chomsky Normalform angeben mit L(G) = L(G0 ).
Beweis: o.E. ist G -frei, d.h. G hat keine Regel mit rechter Seite . G0 kann in drei Schritten konstruiert werden
1. Elimination von Regeln der Form: X ! Y mit X; Y 2 V 2. Reduktion auf Regeln der Form: X ! Y1 : : : Yn mit n 2, und X ! a. 3. Herstellen der Chomsky Normalform.
zu 1.: Wir bestimmen fur jedes X 2 V die Menge der aus X ableitbaren einzelnen Terminal- und Nichtterminalzeichen U (X ).
1. X 2 U (X ) 2. Falls Y 2 V oder es existiert ein Z 2 U (X ) mit Z ! Y 2 R, dann ist auch Y 2 U (X ) Da V endlich ist, mu das Verfahren zur Bestimmung von U (X ) nach endlich vielen Schritten abbrechen. Oenbar gilt fur jedes S 2 V , Y 2 V [ : X ) Y () Y 2 U (X )
3.4. CHOMSKY-NORMALFORM
53
und damit fur jedes a 2 :
a 2 L(G) () S ) a () a 2 U (S ) Jetzt de nieren wir zu G = (V; ; R; S ) die Grammatik G1 = (V1 ; ; R1; S1) wie folgt: R1 enthalt genau die Regeln 1. s1 ! a, , fur all a 2 \ U (S ) 2. Fur jede Regel X ! X1 X2 : : : Xn; n 2, alle Regeln der Form X ! Y1 : : : Yn mit X 2 U (Y ) und Yi 2 U (Xi). Falls Xi 2 ist naturlich Yi = Xi moglich. Es ist oensichtlich, da L(G) = L(G1 ) ist und G1 keine Regeln der Form X ! Y mit X; Y 2 V mehr enthalt.
zu 2.: Wir ersetzen nun jedes Terminalzeichen a in allen Regeln von G1,
deren rechte Seite mindestens die Lange 2 hat, durch eine Variable Xa und fugen Xa ! a als neue Regel zu den Regeln von G1 hinzu. Dadurch entsteht eine Grammatik G2, deren samtliche Regeln die Form
X ! a, mit X 2 V; a 2 oder X ! X1 X2 : : : Xn, mit Xi 2 V; n 2 haben.
zu 3.: Wir ersetzen nun alle Regeln der form X ! X1 X2 : : : Xn mit n 3 durch n 1 Regeln
X ! X1Z1 Z1 ! X2Z2 ... Zn 2 ! Xn 1Xn Fur die dadurch entstehende Grammatik G0 gilt L(G) = L(G0)
KAPITEL 3. GRAMMATIKEN
54
Beispiel 26 Die Sprache L = fanbncm j n; m 1g is kontextfrei und wird von
S ! AB A ! ab j aAb B ! c j cB erzeugt. Umformen in Chomsky-Normalform ergibt
S A Z B Xa Xb Xc
! ! ! ! ! ! !
AB XaXb j Xa Z AXb c j XcB a b c
3.5 Greibach-Normalform Eine Verallgemeinerung der cf-Grammatiken in Chomsky-Normalform ist die sogenannte Greibach -Normalform.
De nition 21 Eine cf-Grammatik G = (V; ; R; S ) ist in Greibach-Normalform, wenn jede Regel von R die Form X ! aW mit a 2 ; w 2 V hat. Satz 26 Zu jeder cf-Grammatik G kann man eine Grammatik G0 in GreibachNormalform angeben, mit L(G) = L(G0 ).
Beispiel 27 Zur Grammatik E ! EjT T ! T F j F F ! (E ) j a
3.6. PUMPING LEMMA
55
gehort die Greibach Normalform
E ! (EK j aOE j a K ! ) OE j ) O ! +j Vorteil einer Grammatik in Greibach-Normalform ist, da in jedem Ableitungsschritt ein Terminalzeichen erzeugt wird.
3.6 Pumping Lemma Satz 27 Fur jede cf-Sprache L gibt es naturliche Zahlen p und q, so da jedes Wort z 2 L mit jzj > p sich in der Form z = uvwxy schreiben lat mit 1. jvwxj q 2. vx 6= , und 3. uviwxi y 2 L fur alle i 0.
Beweis: Ist L endlich, wahle n = maxfjwj j w 2 Lg + 1: Wir konnen o.E. annehmen, da 2= L ist und L = L(G) mit G = (V; ; R; S )
in Chomsky Normalform gegeben ist, d.h. alle Regeln in R haben die Form A ! BC , A ! a. Ableitungsbaume fur Worte aus L mit G sind also Binarbaume. Damit kann ein Ableitungsbaum in G, fur den jeder Pfad hochstens k + 1 Knoten hat, nur ein Wort mit Lange 2k erzeugen. Sei nun n = jV j und wahle p = 2n und q = 2n+1. Existiert also ein z in L mit jzj > p = 2n, so gibt es im zu z gehorenden Ableitungsbaum einen Pfad mit n + 2 Knoten. Darunter mussen (n + 1) Knoten mit Nichtterminalzeichen aus V beschriftet sein. Wegen jV j = n gibt es nach dem Schubfachprinzip Knoten v1 und v2 auf dem Pfad, die mit derselben Variable X 2 V beschriftet sind. O.E. sei v1 oberhalb von v2 und der langste Pfad im Teilbaum von v1 enthalt hochstens (n + 2) Knoten.
KAPITEL 3. GRAMMATIKEN
56
Sei z = uvwxy das generiert Wort, wobei vwx das im Teilbaum von v1 und w das im Teilbaum von v2 erzeugte Teilwort ist. Dann gilt: jvwxj 2n+1 = q und fur jedes i 0 gilt: Alle Worte uviwxiy 2 L, weil sie durch das i-malige Wiederholen des Teilstucks von v1 nach v2 erzeugt werden konnen.
Beispiel 28 L = fanbncn j n 0g ist nicht kontextfrei. Denn anderenfalls
seien p; q die nach dem Pumpinglemma zu L gehorenden Zahlen. Wahle k > p=3 und betrachte das Wort z = ak bk ck , Dann ist jz j > p und z ist zerlegbar in der Form z = uvwxy = ak bk ck , soda fur jedes i 0 zi = uviwxiy in L ist. Oenbar kann weder v noch x zwei verschiedene Buchstaben enthalten, denn andernfalls wurden Worte in L liegen, bei denen nicht alle vorkommenden a's vor allen b's auftreten und diese vor allen c's stehen. Dann bleibt aber mit wachsenem i die Anzahl der Vorkommen wenigstens eines der drei Buchstaben konstand. Damit z0 2= L.
Satz 28 Zu jeder kontextfreien Sprache L existiert ein n 0, so da gilt: Fur alle z 2 L mit jz j > n existieren u; v; w; x; y 2 mit 1. z = uvwxy 2. uv 6= 3. juvwj < n 4. uviwxiy 2 L fur alle i 0.
Pradikatenlogisch:
9n 0 8z 2 L (jzj > n ) 9u; v; w; x; y 2 (z = uvwxy ^ uv 6= ^ juvwj < n ^ 8 i 0 uviwxiy 2 L)). mit Negation
8n 0 9z 2 L (jzj > n ^ 8u; v; w; x; y 2 ((z = uvwxy^uv 6= ^juvwj < n) ) 9 i 0 uviwxiy 2= L)).
3.7. KONTEXTSENSITIVE SPRACHEN
57
3.7 Kontextsensitive Sprachen Man kann jedoch L = fanbn cng durch einen allgemeineren Typ von Grammatik mit folgenden Regeln erzeugen:
S aB bB CB C
! ! ! ! !
aSBC j ab bb BC c
Beispiel 29 S ) aaaBCBCBC ) aaabCBCBC ) aaabBCCBC ) aaabbCCBC ) aaabbCBCC ) aaabbBCCC ) aaabbbCCC ) aaabbbccc
De nition 22 Eine Grammatik G = (V; ; R; S ) heit kontextsensitiv, wenn alle Regeln aus R die Form
A ! , mit ; ; 2 (V [ ) , 6= , A 2 V ; oder S ! , haben. Erscheint S ! in R, so kommt S in keiner anderen rechten Seite einer Regel aus R vor.
Beispiel 30 Ersetze die Vertauschungs-Regel im vorhergehenden Beispiel durch
CB ! CX; CX ! BX; BX ! BC
KAPITEL 3. GRAMMATIKEN
58
De nition 23 L1 = Familie der kontextsensitiven Sprachen L2 = Familie der kontextfreien Sprachen L3 = Familie der regularen Sprachen Wir wissen bereits da ist.
L3 6= L2 6= L1
Beispiel 31 Weiteres Beispiel einer nicht kontextfreien Sprache ist L = fww j w 2 fa; bgg
3.8 Abschlueigenschaften Satz 29 Die Familie der kontextfreien Sprachen L2 ist abgeschlossen gegenuber [; ; und Spiegelbild. Beweis: Seien Li = L(Gi ); Gi = (Vi; ; Ri; Si); i = 1; 2. Dann lassen sich die jeweiligen Sprachen wie folgt generieren:
[ : S ! S1 j S2 : S ! S1 S2 * : S ! S0 S1 j sp(L(G1)) kann erzeugt werden, indem man alle rechten Seiten von R1 spiegelt.
Satz 30 Die Familie der kontextfreien Sprachen L2 ist nicht abgeschlossen gegenuber \ und Komplement.
3.9. ANALYSEPROBLEM
59
Beweis: L1 = fanbncm j n; m 0g ist kontextfrei. L1 = L(G1) mit Regelmenge
S ! AC A ! aAb j C ! CC jcj Ebenso ist L2 = fam bncn j n; m 0g kontextfrei. Aber wir wissen bereits, da L1 \ L2 = fanbn cn j n 0g nicht kontextfrei is Wegen L1 \ L2 = L1 [ L2 gilt die Nichtabgeschlossenheit auch fur das Komplement.
Satz 31 Falls L kontextfrei und R regular, so ist L \ R kontextfrei.
3.9 Analyseproblem Wie entscheidet man fur w 2 , L kontextfrei, ob w 2 L gilt?
Kontextfreie Sprachen (Algorithmus von Cocke/Younger/Kasami) Gegeben: Eine cf-Grammatik G = (V; ; S; R) in Chomsky Normalform, ein Wort w = a1 ; : : : ; an; n 1. Frage: Ist w 2 L(G)? Idee: Bestimme fur jedes i; j; 0 i < j n die Menge Mi;j = fA 2 V j A ) ai+1 : : : aj g Dann gilt
w 2 L(G) () S 2 M0;n: Die Mengen Mi;j werden durch Induktion uber die Dierenz j i bestimmt.
KAPITEL 3. GRAMMATIKEN
60
Fall 1: j = i + 1; 0 i < n Dann ist Mi;j = fA j A ! ai+1 2 Rg:
Fall 2: Angenommen, Mi;k und Mk;j sind fur alle i < k < j schon bekannt. Dann ist
Mi;j =
[ i 0 in G gemacht?
Aufgabe 31:
Gegeben sei die folgende Grammatik G = (fS; A; B; C; Dg; fa; b; d; k; o; rg; S; R) mit R wie folgt: S ! AB B ! BA j BD j BB j k j d A ! DC j o C ! CC j CD j b j r j d D !a U berprufen Sie mit Hilfe des Algorithmus aus der Cocke-Younger-Kasami, ob folgende Worte in L(G) liegen: kakao und abrakadabra.
76
KAPITEL 3. GRAMMATIKEN
Kapitel 4 Rekursionstheorie und Registermaschinen 4.1 Berechenbarkeit Prazisierung des Algorithmenbegris notig fur Unmoglichkeitsbeweise. Es gibt zahlreiche Moglichkeiten, die praktische Berechenbarkeit festzulegen
Mit Hilfe von Maschinen Weil Algorithmen rein mechanisch ausfuhrbar
sind, konnen sie im Prinzip auch von Maschinen ausgefuhrt werden. Als mathematische Modelle solcher (Rechen-) Maschinen wurden vorgeschlagen: Turingmaschinen, Registermaschinen Random Access Maschinen, etc.
Mit Hilfe von Funktionen Es werden aus der Mathematik Erfahrngen
gemacht, die beim Auswerten (Ausrechnen) von Funktionen gesammelt wurden. Dabei beschrankt man sich ublicherweise auf Funktionen mit Argumenten und Werten im Bereich der naturlichen Zahlen (sogenannte zahlentheoretische Funktionen ). Statt den Algorithmenbegri zu prazisieren, de niert man den Begri der der berechenbaren zahlentheoretischen Funktion. Beispiele derartige De nitionen sind: -rekursive, allgemein rekursive, partiell rekursive, -de nierbare Funktionen. 77
78KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
Mit Hilfe von Worten verarbeitender Kalkule Eine Analyse des schrift-
lichen Rechnens und auch etwa im Bereich (formaler) Sprachen gemachte Beobachtungen fuhrten dazu, Eingabe- und Ausgabedaten von Algorithmen stets als Worte (Zeichenreihen) uber einem jeweils passenden endlichen Alphabet aufzufassen und einen Algorithmus als eine Vorschrift (ein Kalkul) zur schrittweisen Veranderung von Zeichenreihen zu de nieren. Beispiele solcher De nitionen sind Markov Algorithmen, Post'sche normale Systeme, Grammatiken/Chomsky-Sprachen, aber auch die bereits genannten Turingmaschinen.
4.2 Registermaschinen De nition 27 Sei n 1 eine naturliche Zahl. Eine Registermaschine mit
n Registern besitzt eine Speicherungsmoglichkeit fur n beliebig groer nicht negativer Zahlen. Diese Register sind der Reihe nach angeordnet, so da man vom 1., 2., 3., . . . ., n-ten Register sprechen kann. Die Inhalte der Re-
gister konnen (programmgesteuert, schrittweise) verandert werden. Welche Anderung es gibt, ist durch die Maschinensprache festgelegt.
De nition 28 Wir de nieren RM-Programme einer Registermaschine mit n Registern induktiv simultan.
1. ai ist ein RM-Programm, 1 i n. Wirkung: Es wird eine 1 zum Inhalt des i-ten Registers addiert. 2. ai ist ein RM-Programm, 1 i n. Wirkung: Es wird eine 1 vom Inhalt des i-ten Registers subtrahiert, wenn dieser von 0 verschieden ist, sonst bleibt der Inhalt unverandert. 3. (Hinternanderausfuhrung, Komposition) Sind M1 und M2 zwei RMProgramme, so auch M1 M2. Wirkung: Es wird zuerst M1 und anschlieend M2 ausgefuhrt. 4. (Iteration) Ist M eine RM-Programm, so auch (M )i , 1 i n. Wirkung: Solange der Inhalt des i-ten Registers verschieden von 0 ist, wird M ausgefuhrt.
4.2. REGISTERMASCHINEN
79
Oenbar ist jedes RM-Programme einer Registermaschine mit n Registern auch ein RM-Programm einer Registermaschine mit m Registern, m n.
Beispiel 37 Leeren eines Registers i geschieht durch (si)i Verschieben eines Registerinhaltes von i nach j 6= i wird erreicht durch (siaj )i
Kopieren eines Registerinhaltes von i nach j 6= i mit (anfangs leeren) Hilfsregister k: (siaj ak )i gefolgt von (sk ai )k .
Konkatenation zweier Registerinhalte , hier 1 und 2, d.h. Wir suchen ein RM-Programm M mit
x; y; 0; 0 #M x; y; xy; 0 Dieses wird erreicht durch Konkatenation von K und (N )5 mit N = (s2a3 a4 )2(s4a2 )4s5 und K = (s1a4 a5)1 (s4a1 )4
De nition 29 Eine n-stellige (partielle) Funktion f mit Argumenten und
Werten in den naturlichen Zahlen heit RM-berechenbar, wenn es ein Programm M und eine RM mit wenigstens (n + 1) Registern gibt, so da fur beliebige nicht-negative Zahlen x1 ; : : : ; xn gilt: 1. M halt, angesetzt auf x1 ; : : : ; xn; 0 genau dann nach endlich vielen Schritten, wenn f (x1; : : : ; xn) de niert ist. 2. Wenn f (x1 ; : : : ; xn) de niert ist, so gilt:
x1 ; : : : ; xn; 0 #M x1 ; : : : ; xn; f (x1; : : : ; xn); 0 Wir verlangen also, da die Argumente einer n-stelligen RM-berechenbaren Funktion stets in den ersten n Registern stehen.
80KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
4.3 Primitiv rekursive Funktionen Prozesse zur Erzeugung von Funktionen sind
1. Einsetzen von Funktionen ineinander, z.B. f (x) = x2 + 3x + 7 = add(x2; 3x) + 7 = add(add(quad(x); mult(3; x)); 7) inklusive: Einsetzen von Konstanten, Vertauschen von Variablen Identi zierung von Variablen, etc. 2. Induktive De nitionen z.B. x + 0 = x und x + (y + 1) = (x + y) + 1 x 0 = 0 und x (y + 1) = x y + x 20 = 1 und 2m+1 = 2m 2
De nition 30 die Menge der primitiv rekursiven Funktionen P ist wie folgt de niert.
Fur jedes n und k gilt Cnk 2 P mit Cnk (x1 ; : : : ; xn ) = k Fur jedes n und i gilt Uin 2 P mit Uin (x1 ; : : : ; xn) = xi add(x; y), s(x) = x + 1, m(x; y) = xy 2 P . (Einsetzung) Sind h1 ; : : : ; hr n-stellige Funktionen in P und g r-stellige Funktion in P , so liegt auch f (x1; : : : ; xn) = g(h1(x1 ; : : : ; xn); : : : ; hr (x1; : : : ; xn)) in P . 5. (Primitive Rekursion) Seien g n-stellige Funktion in P und h n + 2stellige Funktion in P , dann ist auch f (n + 1-stellige Funktion) in P mit f (x1 ; : : : ; xn ; 0) = g(x1; : : : ; xn) f (x1; : : : ; xn; y + 1) = h(x1 ; : : : ; xn; y; f (x1; : : : ; xn; y))
1. 2. 3. 4.
4.3. PRIMITIV REKURSIVE FUNKTIONEN
81
Beispiel 38
1. f (y ) = 2y : Dann ist f (0) = 20 = 1 = C01 und f (y + 1) = 2f (y) = f (y) + f (y) = h(y; f (y)) mit h(u; v) = add(U22 (u; v); U22(u; v)) 2. g (x; y ) = xy : Dann ist g (x; 0) = 1 = C11 (x) und g (x; y +1) = xg (x; y) = mult(x; g(x; y)) = h(x; y; g(x; y)) mit h(x; y; z) = mult(U31 (x; y; z); U33(x; y; z))
Satz 37 Jede primitiv rekursive Funktion ist RM-berechenbar. Beweis: Durch Induktion uber den aufbau von P . 1. 2. 3. 4.
folgt direkt aus der De nition. folgt direkt aus der De nition. folgt direkt aus der De nition. (Einsetzung) Seien M1 ; : : : ; Mr RM-Programme (mit k n + 1 Registern), die h1 ; : : : ; hr berechnen und sei M0 eine RM-Programm das g berechnet. Wir konstruieren daraus wie folgt eine RM-Programm zur Berechnung von f . Ausgehend von den Registerinhalten x1 ; : : : ; xn; 0 berechnen wir zunachst der Reihe nach fur i = 1; : : : ; r mit Hilfe von Mi den Wert hi(x1 ; : : : ; xn; 0) und speichern den Wert jeweils in dem Register k + i zwischen. Dann merken wir uns die Ausgangsargumente in einem (geeigneten) Register mit Index > k und schreiben die Zwischenergebnisse in die ersten r Register. Das liefert die folgende Situation:
h1(x1 ; : : : ; xn); h2(x1 ; : : : ; xn); : : : ; hr (x1 ; : : : ; xn); 0; x1 ; : : : ; xn; 0 Nun konnen wir das Programm M0 anwenden und erhalten im (r + 1)ten Register den gesuchten Funktionswert, wenn er uberhaupt existiert. Abschlieend mussen wir nur noch die Zwischenergebnisse in den ersten r Registern loschen, den Funktionswert in das (n + 1)-te Register schreiben und die n Argumente in die ersten Register zuruckschreiben, um x1 ; : : : ; xn; f (x1; : : : ; xn); 0 zu erhalten. Nach unseren Kenntnissen uber RM-Programme ist es nicht schwer, entlang dieser Idee ein von M0 ; M1; : : : ; Mr abhangiges RM-Programm zur Berechnung von f anzugeben.
82KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN 5. (Primitive Rekursion) Wir konstruieren zunachst ein RM-Programm P , das das folgende leistet.
x1 ; : : : ; xn; y; z; 0 #P x1 ; : : : ; xn; y + 1; h(x1 ; : : : ; xn; y; z); 0 Die Funktion h wird durch das RM-Programm N berechnet und liefert den Wert h(x1 ; : : : ; xn ; y; z) im (n + 3)-ten Register. Daher ist P = N (sn+2 )n+2(sn+3an+2)n+3an+1 Wir nehmen an, da die RM-Programme M und P nur auf Registern mit Indizes k zugreifen, so da wir das (k + 1)-te Register zur Speicherung von Zwischenergebnissen benutzen konnen. Die durch primitive Rekursion aus g und h entstehende Funktion f wird nun durch ein RM-Programm berechnet, das man wie folgt erhalt:
x1; : : : ; xn; y; 0 # (sn+1ak+1)n+1M x1 ; : : : ; xn; g(x1; : : : ; xn); 0; y # (sn+1an+2)n+1 x1 ; : : : ; xn; 0; g(x1; : : : ; xn); 0; y # (Psk+1)k+1 x1; : : : ; xn; y; f (x1; : : : ; xn; y); 0
Beispiel 39 Eine berechenbare Funktion A 2= P ist die Ackermann-Funktion A(0; y) = y + 1 A(x + 1; 0) = A(x; 1) A(x + 1; y + 1) = A(x; A(x + 1; y)) Z.B. ist A(2; 1) = 5.
4.4. PARTIELL REKURSIVE FUNKTIONEN
83
4.4 Partiell rekursive Funktionen De nition 31 Seien g und h zwei totale (d.h stets de nierte) Funktionen
mit den Argumenten x1 ; : : : ; xn und y . Mit h als Testfunktion kann man die aus g und h durch bedingte Iteration entstehende Funktion f mit den Argumenten x1 ; : : : ; xn und y wie folgt erhalten: g wird solange iteriert, bis die Testfunktion h erstmals den Wert h(x1 ; : : : ; xn; y ) = 0 liefert. Dann ist der (letzte) Wert y das Resultat.
De nition 32 Die Klasse der partiell rekursiven Funktionen F ist die kleinste Klasse von Funktionen mit P F und F ist abgeschlossen gegenuber Einsetzung, primitiver Rekursion und bedingter Iteration.
Beispiel 40 Ulam-Funktion. Ulam(y) wird wie folgt berechnet: Solange y 6= 1 ist wird y durch
g(y) =
y=2;
falls y gerade 3y + 1; falls y ungerade
ersetzt. Ulam(7) liefert die folgenden Werte fur y: 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. 1. Wenn Ulam(y ) de niert ist, dann ist Ulam(y ) = 1. 2. Es ist nicht bekannt, ob fur alle y Ulam(y ) de niert ist.
Satz 38 Jede partiell rekursive Funktion ist RM-berechenbar. Beweis: Aufgrund der Aussage, da jede primitiv rekursive Funktion RM-
berechenbar ist genugt es z.z.: Falls f durch bedingte Iteration aus g und h entsteht und g und h berechenbar sind, so ist auch f berechenbar. Seien M bzw. N die RM-Programme, die g bzw. h berechnen. Wir kurzen im folgenden x1 ; : : : ; xn durch x ab. Ausgehend von den Registerinhalten x; y; 0 wenden wir das einmal N an und erhalten x; y; h(x; y); 0. Wenn wir vorher das Programm M auf die Eingabe
84KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
x; y; 0 anwenden und y im (n + 1) Register durch g(x; y) im (n + 2) Register uberschreiben, so erhalten wir letztendlich x; g(x; y); h(x; g(x; y)); 0 Wieder prufen wir, ob der Inhalt des (n + 2)-ten Registerns 0 ist. Falls nicht, gehen wir genauso vor wie vorher: Der Inhalt des (n + 2)-ten Registers wird geloscht und der Inhalt z des (n +1)-ten Registers durch g(x; z) ersetzt, usw. Wir benotigen also ein Programm M 0 das folgendes leistet:
x; y; u; 0 # M0 x; g(x; z); 0; 0 Oenbar kann man M 0 = (sn+2)n+2M (sn+1 )n+1(sn+2an+1)n+2 setzen. M und N werden solange ausgefuhrt, bis das (n + 2)-te Register leer ist. Nehmen wir etwa an, das sei nach endlich vielen Schritten der Fall, d.h. es sei f (x; y) de niert. Dann gilt auf Grund unser vorherigen U berlegungen
x; y; 0 #N x; y; h(x; y); 0; 0 # (M 0 N )n+2 x; f (x; y); 0; 0 Das RM-Programm (M 0 N )n+2 leistet nicht ganz das Gewunschte, denn es zerstort im Verlauf der Berechnung (moglicherweise) das Argument y und liefert den gesuchten Funktionswert auch nicht im richtigen, namlich im (n + 2)-ten Register. Beides lat sich aber leicht beheben, wenn man y vor Beginn der o.a. Rechnung in ein nicht bein utes Register schreibt und am Ende in das (n+1)-te Register zuruckkopiert. Insgesamt erhalt man so das gewunschte Resultat.
Annahme 1 Es gibt eine Codierung de von RM-Programmen. Programm-
stapeln, Zahlentupeln und Zustanden und primitive, rekursive, totale Funktionen en (fur jedes n 1), g , s, r und nz derart, da gilt:
4.5. UBUNGEN
85
1. Fur beliebige RM-Programme M und Zahlen x1 ; : : : ; xn ist en(dM e; x1; : : : ; xn) = dM e genau dann, wenn Z der Anfangszustand von M bei Eingabe x1 ; : : : ; xn ist. 2. Fur beliebige Zahlentupel x und naturliche Zahlen i 1 ist g (dxe; i) = xi . 3. Fur beliebige Zustande Z liefert r(dZ e) die das Kodi kat des den Registerinhalten entsprechenden Zahlentupels von Z und nz (dZ e) das Kodi kat des Nachfolgezustandes von Z .
Die Funktionen lassen sich auch explizit angeben, worauf hier verzichtet werden soll.
Satz 39 Jede RM-berechenbare Funktion ist partiell rekursiv. Beweis: Zu einer RM-berechenbaren Funktion f sei M die assoziierte RM. Dann gilt:
f (x1 ; : : : ; xn) = g(r(nz(en(dM e; x1; : : : ; xn))); n + 1) Alle angewendeten Funktionen insbesondere nz (entsteht durch bedingte Iteration) sind partiell rekursiv, somit auch f .
Satz 40 (Kleen'sches Aufzahlungstheorem) Es gilt: 1. Fur jede Zahl m ist Um (m; x1 ; : : : ; xn ) eine n-stellige partiell rekursive Funktion der Argumente x1 ; : : : ; xn . 2. Zu jeder n-stelligen partiell rekursiven Funktion f gibt es eine Zahl m, so da fur alle x1 ; : : : ; xn gilt: Un(m; x1 ; : : : ; xn) = f (x1 ; : : : ; xn )
Beweis: Es genugt, m als Kodi kat eines f berechnenden Programms zu wahlen.
4.5 U bungen
86KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
Aufgabe 32:
Ein Sprache L heit kanonisch aufzahlbar, wenn es einen Algorithmus gibt, der die Worte aus L in kanonischer Reihenfolge aufzahlt. Zeigen Sie: Eine Sprache ist genau dann entscheidbar, wenn sie kanonisch aufzahlbar ist. Hinweis: Ein Wort a kommt kanonisch vor einem Wort b, wenn entweder jaj < jbj oder, falls jaj = jbj, wenn a alphabetisch vor b kommt.
Aufgabe 33:
Geben Sie ein RM-Programm an, welches die folgende if -Anweisung berechnet: if xi 6= 0 then M1 else M2
Die Semantik der if -Anweisung ist Folgende: Ist der Wert des Registers xi ungleich 0, so wird das RM-Programm M1 ausgefuhrt, ansonsten das RM-Programm M2. Sie konnen dabei davon ausgehen, dass weder M1 noch M2 das Register xi verandern. Hinweis: U berlegen Sie sich erst den Fall ohne den else -Teil. Berechnen Sie dann 1 falls x = 0 xj = 0 falls xi 6= 0 ; i
indem Sie zuerst xj auf 1 setzen und danach eine entsprechende if-then -Anweisung ausfuhren.
Aufgabe 34:
Geben Sie ein RM-Programm an, welches die Funktion div berechnet. Der Funktion div werden zwei Argumente x und y ubergeben und sie liefert den ganzteiligen Anteil von xy zuruck, falls y 6= 0 ist, und ist ansonsten unde niert. Gehen Sie von folgender Struktur aus: x, y, 0 # (Ihr Programm) x, y, x div y, 0
4.5. UBUNGEN
87
Um das Programm ubersichtlicher zu gestalten, durfen Sie den Befehl copy (xi ; xj ) (kopiert den Inhalt von Register xi in das Register xj ) und die if -Anweisung (s. o.) verwenden.
Aufgabe 35:
Ein LOOP-Programm ist wie folgt de niert:
ai, si sind LOOP-Programme mit der selben Semantik wie bei den
RM-Maschinen. Sind M1 und M2 LOOP-Programme, so ist auch M1 M2 ein LOOP-Programm, mit der Semantik, dass zuerst M1 ausgefuhrt wird und dann M2 . Ist M ein LOOP-Programm, so ist auch loop xi do M end ein LOOP-Programm mit der Semantik, dass das Programm M genau so oft ausgefuhrt wird, wie der Wert im Registers xi zu Beginn der Schleife angibt. Insbesondere andert sich die Anzahl der Durchlaufe nicht, wenn M das Register xi verandert.
Zeigen Sie induktiv: Jede primitiv rekursive Funktion lasst sich durch ein LOOP-Programm berechnen. Gehen Sie dazu wie folgt vor:
Zeigen Sie: Cnk , Unk , add und mult sind LOOP-berechenbar (= es gibt
ein LOOP-Programm, welches das Ergebnis berechnet). Zeigen Sie: Simultanes Einsetzen LOOP-berechenbarer Funktionen liefert wieder eine LOOP-berechenbare Funktion. Geben Sie hierbei nur grob an, wie der Algorithmus funktioniert. Zeigen Sie: Primitive Rekursion LOOP-berechenbarer Funktionen liefert wieder eine LOOP-berechenbare Funktion. Geben Sie auch hier nur grob an, wie der Algorithmus funktioniert.
Anmerkung: Die Umkehrung der Aussage gilt ebenfalls, ist aber etwas schwerer zu zeigen, da das Ergebnis eines LOOP-Programmes auch aus mehr als einem Wert bestehen kann. Wer sich dafur interessiert, kann dies im Buch "Theoretische Informatik \ von Erk und Priese nachlesen.
88KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
Aufgabe 36:
Zeigen Sie, dass die durch
0
falls n > 0 1 falls n = 0 de nierte Funktion primitiv rekursiv ist.
(n) :=
Aufgabe 37:
Gegeben sei eine zweistellige primitiv rekursive Funktion g. Zeigen Sie dass
G(x; y) := primitiv rekursiv ist.
x X i=0
g(i; y)
Aufgabe 38:
Zeigen Sie, dass die Funktion px x eine Quadratzahl ist w(x) := unde niert falls sonst partiell rekursiv ist. Beweisen Sie dieses (a) unter Verwendung von bedingter Iteration und (b) mit Hilfe des -Operators. Sie konnen dabei benutzen, dass die Funktionen u(x; y) := jx yj und 0 x=0 v(x) := x 1 falls sonst primitiv rekursiv sind.
Aufgabe 39:
Beweisen Sie, dass fur die Ackermann-Funktion A(0; y) = y + 1 A(x + 1; 0) = A(x; 1) A(x + 1; y + 1) = A(x; A(x + 1; y)) folgende Aussagen gelten:
4.5. UBUNGEN (a) A(1; y) = y + 2 (b) A(2; y) = 3 + 2y (c) y < A(x; y)
89
90KAPITEL 4. REKURSIONSTHEORIE UND REGISTERMASCHINEN
Kapitel 5 Berechenbarkeit 5.1 Churche These Die Klassen der partiell rekursiven und der Registermaschinen (RM) - berechenbaren Funktionen stimmen uberein. Ferner hat man bis heute keine im intuitiven Sinne berechenbare Funktion mit Argumenten und Werten im Bereich der naturlichen Zahlen gefunden, von der man nicht zeigen konnte, da sie partiell rekursiv oder RM-berechenbar ist. Diese U berzeugung hat ihren Niederschlag in der 1936 von A. Church formulierten und heute allgemein anerkannten Churchen These gefunden.
These 1 (Church) Die im intuitiven Sinne berechenbaren partiellen Funk-
tionen (mit Argumenten und Werten im Bereich der nicht negativen ganzen Zahlen) sind genau die partiell rekursiven (RM-berechenbaren) Funktionen.
1. Da eine Funktion f genau dann berechenbar ist, wenn es einen Algorithmus zur Berechnung von f gibt, hat man mit dem Begri der berechenbaren Funktion auch den Begri des Algorithmus prazisiert. 2. Beschrankung auf naturliche Zahlen nicht wesentlich, denn in vielen anderen, von den naturlichen Zahlen verschiedenen Bereichen, wie ganze, rationale Zahlen oder auch dem Bereich der Worte uber einem endlichen Alphabet lassen sich eindeutig und eektiv in die Menge der naturlichen Zahlen kodieren. 91
KAPITEL 5. BERECHENBARKEIT
92
5.2 Das (spezielle) Halteproblem De nition 33 Unter dem speziellen Halteproblem fur Registermaschinen-
Programmen (Selbstanwendungsproblem) versteht man das Problem, fur ein beliebiges RM-Programm festzustellen, ob M angesetzt auf dM e; 0 nach endlich vielen Schritten halt (dMe ist die Kodenummer von M ).
Satz 41 Das spezielle Halteproblem fur RM-Programme ist unentscheidbar. Beweis: Angenommen, das spezielle Halteproblem sei algorithmisch doch
losbar. Dann gibt es einen Algorithmus, der fur jedes RM-Programm M feststellt, ob M angesetzt auf dM e; 0 nach endlich vielen Schritten schlielich halt oder nicht. Unter Benutzung dieses Algorithmus ergibt sich, da die folgende Funktion im intuitiven Sinne berechenbar ist:
8 0; < f (m) = : unde niert,
falls m Kodi kat eines RM-Programms M , also m = dM e, das angesetzt auf dM e; 0 nicht halt sonst
Nach der Churchen These ist f partiell rekursiv, also RM-berechenbar. Sei M ein f berechnendes RM-Programm. Dann gilt fur beliebige Zahlen x (nach der De nition von RM-berechenbaren Funktionen ): M halt auf dM e; 0 nach endlich vielen Schritten () f (x) ist de niert. Daraus ergibt sich speziell fur x = dM e ein Widerspruch:
M halt auf dM e; 0 () f (dM e) de niert () M halt nicht auf dM e; 0:
5.3 Unentscheidbare RM-Probleme De nition 34 Ein RM-Programm heit universell, wenn fur beliebige n 1
ein beliebiges Programm M einer RM mit n Registern und beliebige Anfangsinhalte x1 ; : : : ; xn gilt (x1: : : : :xn ist der Zahlvektor von x1 ; : : : ; xn):
5.3. UNENTSCHEIDBARE RM-PROBLEME
93
1. M halt angesetzt auf x1 ; : : : ; xn , genau dann, wenn U angesetzt auf dM e; dx1 : : : : :xn :0e; 0 (nach endlich vielen Schritten) halt 2. Wenn M angesetzt auf x1; : : : ; xn halt, dann gilt
x1 : : : ; xn dM e; dx1 : : : : :xn:0e; 0 # M () #U y1 : : : ; yn 0; dy1: : : : :yn:0e; 0
Satz 42 Es gibt ein universelles RM-Programm U . Beweis: Man benotigt ein RM-Programm Mz , das zum Kodi kat dS e eines Programmstapels S im ersten und zum Kodi kat dxe eines Zahlentupels
x = x1 : : : : :xn :0 im zweiten Registern die Kodi kate des nachsten Programmstapels dNS (S; x)e und des nachsten Zahlentupels dNT (S; x)e wieder im ersten und zweiten Register erechnet. Mz mu so lange iteriert werden, bis im ersten Register das Kodi kat des leeren Programmstapels steht. Nehmen wir an, da der leere Programmstapel mit 0 kodiert wird, so berechnet (Mz )1 das Kodi kat desjenigen Zahlentupels im zweiten Register, das durch Anwendung des RM-Programms M auf die Anfangsinhalte x1 ; : : : ; xn herauskommt (wenn M halt). Wahle U = Mz , dann x1 : : : ; xn dM e; dx1 : : : : :xn:0e; 0 # M () # U = Mz y1 : : : ; yn 0; dy1: : : : :yn:0e; 0
Satz 43 Es gibt keinen Algorithmus, mit dessen Hilfe man feststellen kann, ob
1. Ein beliebiges RM-Programm M angesetzt auf leere Register nach endlich vielen Schritten halt. 2. das universelle RM-Programm U angesetzt auf beliebige gegebenen Registerinhalte nach endlich vielen Schritten halt.
Beweis:
94
KAPITEL 5. BERECHENBARKEIT 1. Angenommen, so ein Algorithmus existiert. Dann benutzen wir ihn, um fur eine beliebige RM M festzustellen, ob M angesetzt auf dM e; 0 halt oder nicht. Betrachte statt M das Programm N = a| 1 :{z: : a}1 M dM emal D.h. N halt angesetzt auf das leere Register genau, dann, wenn M angesetzt auf dM e; 0 halt. 2. U simuliert jede RM M wie folgt: x1 : : : ; xn dM e; dx1 : : : : :xn :0e; 0 # M () # U = Mz y1 : : : ; yn 0; dy1: : : : :yn:0e; 0 Um also festzustellen, ob M auf x1; : : : ; xn halt, prufe einfach, ob U angesetzt auf dM e; dx1 : : : : :xn:0e; 0 halt.
Satz 44 (Rice) Sei F eine Menge von partiell rekursiven Funktionen und
P (F ) die Menge aller RM-Programme, die die Funktionen aus F berechnen. Dann gilt: Ist P (F ) 6= ; und P (F ) nicht die Menge aller RM-Programme, so gibt es keinen Algorithmus, der fur ein beliebiges RM-Programm M feststellt, ob M 2 P (F ) ist oder nicht.
Beispiel 41 Sei F = ff g, f feste RM-berechenbare Funktion. Dann ist P (F ) = 6 ;, da f RM-berechenbar. Weiterhin ist P (F ) nicht die Menge aller RM-Programme. Es gibt keinen Algorithmus, um fur ein beliebiges RMProgramm M festzustellen, ob M f berechnet, oder nicht.
Beweis: o.E. sei die einstellige, nirgends de nierte Funktion g 62 F (andern-
falls betrachte F die Klasse aller nicht zu F gehorenden Funktionen. Sei f 2 F eine beliebige (o.E. 1-stellige) Funktion, f RM-berechenbar. Konstruiere zu jeder RM M eine RM M 0 mit folgenden Eigenschaften: 1. Falls M angesetzt auf dM e; 0 halt, berechnet M 0 die Funktion f . Somit ist M 0 2 P (F )
5.4. ENTSCHEIDBARKEIT UND AUFZAHLBARKEIT
95
2. Falls M angesetzt auf dM e; 0 nicht halt, berechnet M 0 die Funktion g. Somit ist M 0 2= P (F ). Gabe es nun ein Verfahren, fur eine beliebieges RM-Programm zu entscheiden, ob es in P (F ) liegt oder nicht, so konnten wir auch fur ein beliebieges RM M entscheiden, ob M angesetzt auf dM e; 0 halt oder nicht: Prufe einfach, ob die M erweiternde Funktion M 0 in P (F ) ist oder nicht.
5.4 Entscheidbarkeit und Aufzahlbarkeit Wir wissen bereits, da eine Menge entscheidbar ist, wenn sie selbst und ihr Komplement aufzahlbar ist. Wir kennen aber keine einzige aufzahlbare, aber nicht entscheidbare Menge. Hierzu betrachten wir
L = fm j m = dM e und M halt angesetzt auf dM e; 0g Wir wissen bereits, da L nicht entscheidbar ist. L ist aufzahlbar wie folgende U berlegung zeigt (Dove-Tailing-Argument): 1. Wir erzeugen die Folge der naturlichen Zahlen 1,2,. . . ,m,. . . 2. Wir prufen (der Reihe nach) fur jede Zahl m, ob m = dM e ist oder nicht, streichen also aus der Folge alle Zahlen, die keine RM kodieren. 3. Es bleiben ubrig: dM0 e; dM1 e; dM2 e; : : : 4. Wir verfolgen simultan alle Rechnungen aller RM wie folgt Schritt 1. Schritt 2. Schritt 3. Schritt 4. Schritt 5. ...
dM0 e dM1 e dM2 e dM3e dM5 e : : : 1 3 6 10 15 2 5 9 14 20 4 8 13 19 26 7 12 18 25 33 11 17 24 32 41 ...
...
...
...
KAPITEL 5. BERECHENBARKEIT
96
Sobald irgendwo (in der Rechnung von Mi angesetzt auf dMi e; 0) ein Endzustand erreicht ist, nehmen wir dMi e in L auf. Auf diese Weise werden schlielich genau alle Nummern von RM M in L aufgenommen, fur die gilt, da M angesetzt auf dM e; 0 halt. Damit haben wir die folgende Chomsky-Hierarchie :
L3 |{z}
6=
L2 |{z}
6=
L1 |{z}
regulare Sprachen kontextfreie Sprachen kontextsensitive Sprachen L 6= L0 |{z} |{z} entscheidbare Sprachen aufzahlbare Sprachen
6=
5.5 Unlosbare Probleme Es ist unmoglich, eine erschopfende Liste aller als algorithmisch und folglich auch mit Hilfe von Computern als unlosbar nachgewiesener Probleme aufzustellen. Wir begnugen uns daher damit, einige historisch besonders wichtige und interessante Probleme zu nennen.
5.5.1 Semi-Thue-Systeme Ein Semi-Thue System uber dem Alphabet = N [ T ist gegeben durch eine Menge von Ersetzungsregeln
L1 ! R1 ; L2 ! R2 ; : : : Lr ! Rr Dabei sind die Li und Ri Worte uber dem Alphabet . Die Ersetzungsregeln kann man dazu verwenden, Worte uber dem Alphabet schrittweise zu verandern, indem man jeweils ein Vorkommen von Li durch das dazugehorige Wort Ri ersetzt. Das (allgemeine) Wortproblem fur Semi-Thue-Systeme ist nun das Problem, fur zwei beliebige Worte x und y uber dem Alphabet festzustellen, ob das Wort x mit Hilfe der Ersetzungsregeln in endlich vielen Schritten in das Wort y uberfuhrt werden kann oder nicht. Das Problem ist fur jj > 1 unentscheidbar.
5.5. UNLOSBARE PROBLEME
97
Besteht das Startwort aus einem einzigen Nichtteminalzeichen S und enthalt R keine Regel der Form ! ist die Grammatik vom Typ 0, das sich somit leicht als unentscheidbar herausstellt.
5.5.2 Wortproblem der Gruppentheorie Alle endlichen und viele unendliche Gruppen lassen sich durch endlich viele de nierende Relationen beschreiben. Das sind spezielle Gleichungen zwischen Darstellungen von Gruppenelementen. Betrachten wir die Permutationsgruppe S3 von 3 Elementen: Man kann samtliche Elemente dieser Gruppe und 123 darstellen als Produkt der drei Transpositionen 1 = 213 , 2 = 123 132 3 = 123 . Die Darstellung eines Gruppenelementes ist nicht eindeutig, z.B. 321 gilt 1 2 3 1 = 3 und 1 1 = id. Das Wortproblem beschteht nun darin, zu jeder durch endlich vielen Erzeugende und endlich viele de nierende Relationen gegebenen Gruppe und je zwei Worten w1 und w2 uber dem Alphabet der Erzeugenden festzustellen, ob w1 und w2 dasselbe Gruppenelement darstellen oder nicht.
5.5.3 Zehntes Hilbert'sches Problem Als zehntes von 23 Problemen stellte Hilbert 1900 die Aufgabe, ein Verfahren zu nden, das fur jede diophantische Gleichung in endliche vielen Schritten feststellt, ob sie eine ganzzahlige Losung besitzt. Eine diophantische Gleichung ist gegeben durch ein von n Variablen abhangiges Polynom P (x1; : : : ; xn) mit ganzzahligen Koezienten, und sie heit losbar, wenn es ganze Zahlen z1 ; : : : ; zn gibt mit P (x1; : : : ; xn) = 0. Auch diese Problem ist unentscheidbar.
5.5.4 Conway's Game of Life Dieses Spiel kann man auf einem sehr groen, bei Bedarf erweiterbaren (also potentiell unendlichen) Schachbrett spielen. Dazu benotigt man Spielmarken, die Lebewesen reprasentieren: Jedes Feld des Schachbretts kann hochstens eine Marke enthalten.
98
KAPITEL 5. BERECHENBARKEIT
Man beginnt mit einer Anfangskon guration, die in der Verteilung endlich vieler Marken auf dem Schachbrett besteht. In Abhangigkeit von der Besetzung der acht Nachbarfelder mit Marken, kann die Marke eines Feldes entfernt werden (sterben ), unverandert bleiben (uberleben ) oder neu gesetzt werden (geboren werden ). Dies geschieht nach den folgenden Regeln: 1. U berlebensregel: Jede Marke mit zwei oder drei Marken in Nachbarfeldern uberlebt fur die nachste Generation. 2. Sterberegel(n): Jede Marke mit 4 oder mehr Marken in Nachbarfeldern stirbt (wegen U berbevolkerung). Jede Marke mit einer oder keiner Marke in allen Nachbarfeldern stribt (wegen Isolation). 3. Geburtsregel: In jedes leere Feld, das genau drei Nachbarfelder mit Marken besitzt, wird eine neue Marke gesetzt. Beim U bergang von einer Kon guration zur nachstfolgenden Generation erfolgen alle Sterbe- und Geburtsvorgange simultan. Man kann zeigen, da es keinen Algorithmus gibt, der fur zwei gegebene Kon gurationen K1 und K2 feststellt ob K2 in der Lebensgeschichte von K1 vorkommt.
5.5.5 Parkettierungsprobleme fur Dominospiele Ein Domino ist ein quadratisches Plattchen mit Kantenlange 1, das an seinen vier Seiten/Kanten bis zu vier verschiedene Farben haben kann. Zwei Dominos heien aquivalent, wenn sie auf entsprechenden Seiten jeweils dieselben Farben haben. A quivalente Dominos gehoren zur selben Dominoklasse. Zur Charakterisierung einer Dominoklasse genugt die Angaben eine darin vorkommenden Dominos. Ein (allgemeines) Dominospiel ist gegeben durch eine nichtleere Menge D von Dominoklassen. Eine Parkettierung der Z Z Ebene mit D erhalt man, wenn man auf jedes Feld der Ebene einen Domino aus einer der Klassen von D legen. Eine Parkettierung ist koharent, wenn je zwei aneinanderstoende Seiten zweier Dominos die gleichen Farben haben. Drehungen sind nicht erlaubt. Erhalt D nur Dominos vom Typ (schwarz,wei,schwarz,wei) {im Uhrzeigersinn gelesen{ so ist oenbar eine koharente Parkettierung moglich. Bei Dominos vom Typ (blau,blau,wei,rot) und (rot,grun,rot,gelb) ist keine koharente
5.5. UNLOSBARE PROBLEME
99
Parkettierung moglich. Jedoch gibt es kein allgemeines Verfahren, mit dem man fur jedes Dominospiel D festlegen kann, ob eine koharente Parkettierung der Z Z Ebene mit D moglich ist oder nicht.
5.5.6 Post'sches Korrespondenzproblem De nition 35 Ein Post'sches Korrespondenzproblem uber dem Alphabet
ist gegeben durch eine endliche Liste
K = ((L1 ; R1); : : : ; (Lr ; Rr )) korrespondierender Wortpaare uber dem Alphabet , d.h. Li ; Ri 2 fur 1 i r. Das Korrespondenzproblem hat eine Losung, wenn es eine naturliche Zahl n und n Indizes i1; : : : ; in 2 f1; : : : ; rg gibt mit:
Li1 Li2 : : : Lin = Ri1 Ri2 : : : Rin
Beispiel 42 K1 = ((L1; R1 ); (L2; R2); (L3 ; R3)) = ((a; abb); (bba; abb); (bba; a)) hat eine Losung, denn es ist beispielsweise L1 L2 L2 L2L3 = R1 R2 R2 R2 R3 . Dagegen ist das folgende Korrespondenzproblem unlosbar
K1 = ((L1 ; R1 ); (L2; R2)) = ((a; ab); (ba; ab)) Man kann auch hier zeigen, da es kein allgemeines Verfahren gibt, mit dem man fur ein beliebiges Korrespondenzproblem (uber einem zweielementigen Alphabet) feststellen kann, ob es eine Losung hat oder nicht. Die Aussage bleibt richtig, wenn man Listen mit hochstens 9 Wortpaaren zulat. Fur hochstens zwei Wortpaare ist das Post'sche Korrespondenzproblem allerdings entscheidbar.
100
5.6 Turingmaschinen
KAPITEL 5. BERECHENBARKEIT
Eine Turingmaschine (kurz: TM) besitzt ein nach beiden Seiten unbegrenztes, in einzelne, linear angeordnete Felder unterteiltes (Rechen-)Band. Ferner besitzt eine TM eine Kontrolleinheit zur Steuerung des Schreib-Lese-Kopfes uber den die Beschriftung des Rechenbandes kontrolliert werden kann. Jedes Feld des Rechenbandes kann genau mit einem von endlich vielen Buchstaben (Zeichen,Symbolen) aus dem Bandalphabet der TM = f = a0 ; a1; : : : ; ang. Das vom Schreib-Lese-Kopf gerade inspizierte Feld des Rechenbandes heit Arbeitsfeld (Kopfposition). Wir fuhren TM-Programme und ihre Wirkung zuerst informell ein.
5.6.1 TM-Programme 1. Fur jedes i, 0 i n ist print(ai ) ein TM-Programm. Wirkung: Es wir ai auf das Arbeitsfeld geschrieben. 2. r bzw. l sind TM-Programme. Wirkung: Das Arbeitsfeld (AF) wird um eine Position nach recht bzw. links verschoben 3. TM-Programme konnen aus einfacheren zusammengesetzt werden, mit Hilfe von: Hintereinanderausfuhrung (Komposition) Selektion: if Bedingung then TM-Programm Iteration: while Bedingung do TM-Programm bzw. repeat TMProgramm do Bedingung Bedingungen sind von der Form AF = a oder AF 6= a, a 2
Beispiel 43
1. Das Programm while AF 6= do print( ); l lauft solange nach links und loscht alle uberlaufenden Buchstaben, bis ein Feld mit der Inschrift a0 = angetroen wird.
2. Programm, das eine Bitfolge darauf testet, ob sie nur aus Einsen besteht. Seien di 2 f0; 1g, i 2 f0; : : : ; ng, und a = 1, falls d1 = : : : = dn = 1 bzw. a = , sonst. Dann (| Kopfposition)
5.6. TURINGMASCHINEN
101
:::
d : : : dn #P : : : a|d1 : : : dn | 1
::: :::
Prufe, ob Ziernfolge leer ist: r;
if AF = then
r;
while AF = 1 do r; if AF = then 1 repeat l until l; print(1); r else wenigstens repeat l until
f d = : : : = dn = 1 g f
l;
else
AF = ;
ein di = 0 g AF = ;
f Aktionen fur leere Ziernfolge g
3. Verschiebe-Programm V , das eine Ziernfolge d1 ; : : : ; dn 2 f0; 1g um eine Postition nach rechts verschiebt.
::: :::
d : : : dn #V |d1 : : : dn
| 1
TM-Programm:
AF = ; l;
repeat r; until while do if do then Verschiebe
AF 6= AF = 0
f
eine 0 nach rechts g
::: :::
KAPITEL 5. BERECHENBARKEIT
102
print( l ); r; print(0); l; else Verschiebe eine 1 nach print( ); r; print(1); l; l repeat l until AF = ;
f
rechts g
4. TM zur Nachfolgerfunktionsberechnun, also einem Programm, das zu einer Dualzahl d1 : : : dn die nachst groere d01 : : : d0m berechnet, z.B.
::: :::
110111 #S |111000 |
::: :::
TM-Programm:
AF =
repeat r; until ; l; while do print(0); l print(1); l while ; l;
AF = 1 AF 6=
A quivalent kann man TM-Programme durch Marken und Sprung/Goto - Befehle charakterisieren. Die Marken spiegeln den aktuellen Zustand der Abarbeitung wider. TM-Programme werden durch Programmtafeln beschrieben: (Zustand, altes Zeichen, neues Zeichen, Bewegungsrichtung, neuer Zustand)
5.6.2 Automatenmodell Anstatt Turingmaschinen uber TM-Programme auszudrucken kann man auch eine gleichwertige Charakterisierung analog zum Mashinenmodell der endlichen Automaten und Pushdown-Automaten angeben.
De nition 36 Eine deterministische Turingmaschine (DTM) M = (S; ; ; s0 ; F ) besteht aus
5.6. TURINGMASCHINEN
103
1. einer endlichen Menge S von Zustanden 2. einer endlichen Menge von Bandsymbolen, unter denen insbesondere das Leerzeichen vorkommt 3. einem Startsymbol s0 2 S 4. einer Endzustandsmenge F S 5. einer Ubergangsfunktion : S n F ! S fl; 0; rg Eine TM-Kon guration sind Worte aus S , d.h. k = a1 : : : am qb1 : : : bn 2 S reprasentiert eine Turingmaschine mit der Beschriftung ::: a1 : : : amb1 : : : bn : : :, wobei sich die Kopfposition bzw. das Arbeitsfeld bei b1 be ndet.
Die U bergangsfunktion legt also das Verhalten der TM fest und ist nichts anderes als ein TM-Programm mit Marken und Sprungen. Falls (s; a) = (b; s0; d) mit s; s0 2 S ; a; b 2 ; und d 2 fl; 0; rg ist, bedeutet das: Ist die TM M im Zustand s und hat das Arbeitsfeld die Inschrift a, so geht M in den Zustand s0 uber, schreibt b auf das Arbeitsband und verschiebt den SchreibLesekopf (also die Position des Arbeitsfeldes) um ein Feld nach links, falls d = l, um ein Feld nach rechts, falls d = r, und nicht, falls d = 0 ist.
De nition 37 Eine nichtdeterministische Turingmaschine (NTM)
M = (S; ; ; s0 ; F ) besitzt (entsprechend zu NFAs) eine Ubergangsfunktion der Form
: S n F ! 2Sfl;0;rg
Bemerkung: 1. Manchmal unterscheidet man zwischen dem Eingabealphabet und dem Arbeitsalphabet und verlangt, da 2 n ist. 2. Fur die nichtdeterministischen TM reicht es aus eine Rate-Veri kationsVariante zu betrachten, in der nur zu Anfang ein String ausgewurfelt wird.
KAPITEL 5. BERECHENBARKEIT
104
Auf der Menge der Kon gurationen wird eine Ubergangsrelation ` entspre chend der Ubergangsfunktion de niert.
De nition 38 Die von einer TM M akzeptierte Sprache T (M ) ist wie folgt festgelegt:
T (M ) = fw 2 gj s0 w ` w0st w00; mit w0; w00 2 ; st 2 F g
Bemerkung: 1. T (M ) ist aufzahlbar aber unter Umstanden (u.U.) nicht entscheidbar. Denn wir nehmen ja in T (M ) alle die Worte w auf, fur die gilt: M halt angesetzt auf w nach endlich vielen Schritten. Fur ein gegebenes Wort w konnen wir aber u.U. nicht feststellen, ob dieser Fall jemals eintritt. 2. Um das Wortproblem fur eine Sprache L zu entscheiden, mu man also eine starkere Forderung stellen. Eine naheliegende Moglichkeit ist, zu fordern, da eine L entscheidende TM mindestens zwei Endzustande s1 und s2 hat und fur jedes Wort w gilt: Falls w 2 L, dann s0 w ` w0s1 w00 und falls w 2= L, dann s0 w ` w0s2 w00 mit geeigneten Worten w0 und w00. D.h. man verlangt, auf jeden Fall, da die TM M die L entscheidet, angesetzt auf ein beliebiges Wort w halt. Hier konnte man auch andere Forderungen stellen, z.B. da die L entscheidende TM ihre charakteristische Funktion L berechnet, mit
L =
1;
falls w 2 L 0; sonst
5.6.3 Simulation von RM durch TM Bezeichne fur eine Zahl x mit D2(x) die Dualdarstellung von x (ohne fuhrende Nullen).
De nition 39 Eine RM mit k Registern M wird durch die TM M 0 mit Bandalphabet f ; 0; 1g simuliert, wenn fur beliebige Zahlen x1 ; : : : ; xk gilt:
5.6. TURINGMASCHINEN
105
1. M halt angesetzt auf x1 : : : ; xk genau dann, wenn M 0 angesetzt auf : : : |D(x1) D(x2 ) : : : D(xk ) : : : halt. 2. x1 : : : ; xk : : : |D(x1) D(x2) : : : D(xk ) : : :
#M
y1 : : : ; yk
()
# M0
: : : |D(y1) D(y2) : : : D(yk ) : : :
Satz 45 Zu jedem TM-Programm M kann man eine TM M 0 angeben, so da M 0 M simuliert.
Beweis: Induktion uber den Aufbau von M . 1. M = ai, 1 i k : : : |D(x1) D(x2 ) : : : D(xk ) : : : entspricht dem folgenden i-mal durchgefuhrten Programm r; while AF 6= do r. Prufe, ob D2 (xi) = 0 oder ob D2(xi ) = 1 : : : 1 ist. Falls nicht, kann man D2 (xi) ohne Verschiebungen unterbringen und dazu das Programm zur Addition von 1 verwenden. Falls ja, verschiebe der Reihe nach um eine Postion nach rechts D2(xk ), D2(xk 1 ), . . . , D2 (xi) und erhohe xi anschlieend um 1. 2. M = si, 1 i k analog. Beachte D2(xi 1) mu eine Dualdarstellung ohne fuhrende Nullen werden! Demnach mussen die i-te, (i+1)-te,. . . ,kte Bitfolge verschoben werden, falls die fuhrende Eins verschwindet. 3. Ist M = M1 ; M2 , und simulieren die RM-Programme Mi0 die Programme Mi , i 2 f1; 2g, dann simuliert M10 ; M20 das RM-Programm M = M1 ; M2. 4. Ist M = (N )i und simuliert N 0 N , so simuliert folgendes Programm M 0 die RM M . Kurzt man das j -malige Hintereinanderschreiben eine Programmstucks P mit [P ]j ab, so erhalt man M 0 wie folgt [repeat r; until AF = ]i 1 r; while AF 6= do f D2 (xi ) noch 6= 0g f kehre zur Startposition zuruck g
KAPITEL 5. BERECHENBARKEIT
106
; [repeat [l; until AF = ]i 1 N'; f inspiziere den Anfang von D2 (xi) g [repeat r; until AF = ]i 1 r f kehre zur Startposition zuruck g l; repeat [l; until AF = ]i 1 l
Man beachte, da in jedem Fall das zu einem RM-Programm M konstruierte TM-Programm M 0 angesetzt auf die Darstellung der Registerinhalte auf dem Rechenband genau dann nach endlich vielen Schritten halt, wenn auch das RM-Programm M angesetzt auf die Registerinhalte selbst nach endlich vielen Schritten halt. Der Satz zeigt, da TM mindestens so leistungsfahig sind wie RM. Das Programmieren von TM ist allerdings wesentlich muhsamer.
5.6.4 Kodierungen von TM, Halteproblem Programmtafeln von TM kann man umkehrbar eindeutig durch Worte uber dem Alphabet f0; 1g verschlusseln.
De nition 40 Fur ein Wort w 2 f0; 1g sei Mw =
M;
falls w M kodiert M0 ; sonst
fur eine fest TM M0 . Das Halteproblem H fur TM (mit leerem Band) ist wie folgt de niert:
H = fw j Mw angesetzt auf leerem Band haltg = fw j s0 `Mw w0sf w00mit w0; w00 2 ; sf 2 F g
Satz 46 H ist nicht entscheidbar (durch eine TM)
5.7. DER SATZ VON GODEL
107
Bemerkung: Wir konnten den Satz durch einen Diagonalschlu direkt beweisen.
Beweis: Reduktion auf Halteproblem fur RM. Wir wissen, es ist nicht ent-
scheidbar, ob eine gegebene RM M (mit k Registern) angesetzt auf leere Register nach endlich vielen Schritten halt oder nicht. Angenommen, wir konnten entscheiden, ob eine beliebige TM M angesetzt auf leerem Band nach endlich vielen Schritten halt oder nicht. Dann konnen wir diese Entscheidungsverfahren nutzen, um auch fur beliebige RM M entscheiden, ob M angesetzt auf leere Register halt. Betrachte zur RM M die M simulierenden TM M 0 : M halt angesetzt auf leere Register genau dann, wenn M 0 angesetzt auf das leere Band halt.
5.7 Der Satz von Godel Unter der Arithmetik der naturlichen Zahlen in + und verstehen wir die Menge aller wahren Aussagen, die sich mit Hilfe dieser Funktionssymbole und ublichen logischen Hilfsmittel formulieren lassen. Neben logischen Variablen sind dabei die Konstanten 0 und 1 fur naturliche Zahlen zugelassen.
Beispiel 44 Formeln der Arithmetik, die im Standardmodell der naturlichen Zahlen wahr bzw. falsch sind:
8 x 9 y ((x + 1) = y) - wahr 8 x 9 y 8 z (((x y) = z) ^ ((1 + x) = (x y))) - falsch 8 x 9 y ((x + y) = (x (x + 1))) - wahr 8 x 9 y ((x = 0) ^ ((x y) = 1)) - falsch Wir wollen zeigen, da die Menge aller wahren arithmetischen Formeln nicht (rekursiv) aufzahlbar ist. Dazu genugt es zu zeigen, da die Menge der wahren arithmetischen Formeln nicht entscheidbar ist. Denn ware die Menge der arithmetischen Formeln (rekursiv) aufzahlbar, so mute sie auch entscheidbar
108
KAPITEL 5. BERECHENBARKEIT
sein, wie folgende U berlegung zeigt: Sei F eine beliebige arithmetische Formel, deren Wahrheitswert entschieden werden soll. Fur jede dieser arithmetische Formel F ist entweder F oder :F wahr. Ist jetzt die Menge der wahren arithmetischen Formeln aufzahlbar, dann sei F0 ; F1; F2 : : : ihre Aufzahlung. Da in dieser Aufzahlung alle wahren arithmetischen Formeln vorkommen, setze man sie so lange fort, bis darin entweder F oder :F erscheint. Je nachdem, welcher Fall eintritt, ist F wahr oder falsch. Sei
AR = fF j F ist wahre arithmetische Formelg Um zu zeigen, da die Menge AR der wahren arithmetischen Formeln nicht entscheidbar ist, konstruieren wir zu jeder Registermaschine (RM) M mit k Registern eine Formel F (M ) der Arithmetik, so da gilt (Bedingung 5.1):
F (M ) 2 AR () M halt angesetzt auf 0,0,. . . ,0 nach endlich vielen Schritten mit gewissen Registerinhalten y1; : : : ; yk Da wir bereits wissen, da die Eigenschaft, fur eine beliebige RM M zu entscheiden, ob sie angesetzt auf die anfangs leeren Registerinhalte nach endlich vielen Schritten schlielich halt, unentscheidbar ist, genugt es, Bedingung 5.1 zu zeigen. Zum Nachweis von Bedingung 5.1 zeigen wir etwas mehr, namlich den folgenden Satz.
Satz 47 Zu jeder RM M mit k Registern konnen wir eine arithmetische
Eigenschaft FM angeben, so da fur beliebige x1 ; : : : ; xk ; y1 ; : : : ; yk gilt: M halt angesetzt auf x1 ; : : : ; xk nach endlich vielen Schritten mit y1 ; : : : ; yk genau dann, wenn gilt: FM (x1 ; : : : ; xk ) ist wahr.
Satz 47 nennt man auch die arithmetische Reprasentierbarkeit der RM-Berechenbarkeit. Nehmen wir einmal an, Satz 47 sei schon bewiesen, dann folgt 5.1 wie folgt. Wir konstruieren F (M ) gema Satz 47 zu M und daher gilt: M halt angesetzt auf 0; : : : ; 0 nach endlich vielen Schritten, genau dann, wenn es y1; : : : ; yk gibt mit F (0; : : : ; 0; y1; : : : ; yk ). Im Beweis von 47 nutzen wir den folgenden Sachverhalt.
5.7. DER SATZ VON GODEL
109
die Godel'sche -Funktion) Es gibt eine Funktion : N 3 ! Satz 48 (Uber N mit der folgenden Eigenschaft. Zu jeder Folge (a0; : : : ; ar ), ai 2 N , existieren Zahlen a und b, so da fur alle i r gilt: 1. (a; b; i) = ai und 2. (a; b; i) = a mod (1 + (i + 1) b)
Das Zahlenpaar (a; b) kodiert also die Folge der Lange r + 1. Dieser Satz ist eine Folge aus dem sogenannten chinesischen Restsatz der Zahlentheorie (ohne Beweis).
Beweis: (von Satz 47) Durch Induktion uber den Aufbau des RM-Programms M:
1. M = ai, 1 i n. Dann ist
F (M ) = (y1 = x1 ) ^ (y2 = x2 ) ^ : : : ^ (yi 1 = xi 1 ) ^ (yi = xi + 1) ^ (yi+1 = xi+1 ) ^ : : : ^ (yk = xk ): 2. M = si, 1 i n. Dann ist
F (M ) = (y1 = x1) ^ (y2 = x2 ) ^ : : : ^ (yi 1 = xi 1) ^ ((xi = 0 ^ yi = 0) _ ((x1 > 0) ^ (xi + 1 = yi))) ^ (yi+1 = xi+1 ) ^ : : : ^ (yk = xk ): 3. M = M1 ; M2. Seien F (M1) und F (M2) die nach Induktionsvoraussetzun bereits existierenden Formeln, die das U bergangsverhalten von M1 und M2 beschreiben. Dann wird die Konkatenation M , die x1; : : : ; xk in x1 ; : : : ; xk verandert, beschrieben durch
9 z1 ; : : : ; zk : (F (M1 )(x1; : : : ; xk ; z1; : : : ; zk ) ^ F (M2 )(z1; : : : ; zk ; y1; : : : ; yk ))
4. M = (N )i . Sei F (N ) die nach Induktionsvorschrift existierende Formel, die das U bergangsverhalten von N von x1; : : : ; xk auf y1; : : : ; yk beschreibt.
110
KAPITEL 5. BERECHENBARKEIT Dann gibt es ein t (Anzahl der Schleifendurchlaufe) und ein k (t + 1)Tupel
a1;0 ; : : : ; a1;t ; a2;0; : : : ; a2;t; : : : ; ak;0; : : : ; ak;t; (das jeweils die Register zu den Zeitpunkten 0; : : : ; t reprasentiert) mit (a1;0; : : : ; ak;0) = (x1 ; : : : ; xk ) ^ (a1;t ; : : : ; ak;t) = (y1; : : : ; yk ) ^ 8j < t : (ai;j > 0) ^ (ait = 0) ^ 8j < t : F (N )(ai;j ; : : : ; ak;j ; a1;j+1; : : : ; ak;j+1; ) Das ist noch keine ganz korrekte arithmetische Formel, weil die Anzahl der Quantoren von t abhangt. Das lat sich mit Hilfe der Godel'schen Funktion vermeiden, denn mit Satz 48 ist nun leicht, ein arithmetisches Pradikat G(a; b; i; y) anzugeben mit der Eigenschaft:
G(a; b; i; y) wahr () y = ai ^ (a; b; i) = y () (a; b; i) = y () y = a mod (1 + (i + 1) b) () y < (1 + (i + 1) b) ^ 9 k(a = y + k(1 + (i + 1) b)) Mit Hilfe des Pradikats G(a; b; i; y) kann man jetzt F (M ) wie folgt arithmetisch umschreiben:
F (M ) = 9 a1 ; : : : ; ak ; b1 ; : : : ; bk ; t : G(a1 ; b1; 0; x1) ^ : : : ^ G(ak ; bk ; 0; xk ) ^ G(a1 ; b1; t; y1) ^ : : : ^ G(ak ; bk ; t; yk ) ^
5.8. WEITERE UNENTSCHEIDBARE PROBLEME
111
8 j < t 9 w (G(ai; bi ; j; w) ^ (w > 0) ^ G(ai; bi; t; 0) 8 j < t 9 w1; : : : ; wk ; w10 ; : : : ; wk0 : F (N )(w1; : : : ; wk ; w10 ; : : : ; wk0 ) ^ G(a1; b1 ; j; w1) ^ : : : ^ G(ak ; bk ; j; wk ) ^ G(a1; b1 ; j; w10 ) ^ : : : ^ G(ak ; bk ; j; wk0 )) Die in dieser Formel noch auftretenden beschrankten Quantoren konnen nach folgender Vorschrift leicht eliminiert werden:
8 x < k (: : :) wird ersetzt durch 8 x (:(x < k) _ (: : :)) und
9 x < k (: : :) wird ersetzt durch 9 x ((x < k) ^ (: : :)): Damit erhalten wir insgesamt immer eine (zulassige) arithmetische Formel F (M ). Es gibt also kein allgemeines Verfahren, das fur beliebige arithmetische Aussagen stets in endliche vielen Schritten feststellt, ob sie wahr sind oder nicht. Damit kann man also das Beweisen oder Widerlegen von mathematischen Satzen im allgemeinen nicht Computern uberlassen. Es verlangt vielmehr die menschliche Intuition in jedem Einzelfall.
5.8 Weitere unentscheidbare Probleme De nition 41 Sei L eine beliebige Sprache. Unter dem Wortproblem fur L verstehen wir das Problem fur ein beliebiges Wort w 2 zu entscheiden, ob w 2 L ist oder nicht. Unter dem Leerheitsproblem fur L verstehen wir die Frage, festzustellen, of L = ; ist oder nicht. (Hier kommt es in der
Regel darauf an, wie L spezi ziert ist, z.B. als Grammatik,. . . ) Unter dem Schnittproblem fur zwei Sprachen L1 und L2 verstehen man die Frage, zu entscheiden, ob L1 [ L2 = ; ist oder nicht. Unter dem A quivalenzproblem fur zwei Sprachen L1 und L2 verstehen man die Frage, zu entscheiden, ob L1 = L2 ist oder nicht.
112
KAPITEL 5. BERECHENBARKEIT
Satz 49 Das Schnittproblem fur kontextfreie Sprachen ist unentscheidbar. Beweis: Wir zeigen, da die Entscheidbarkeit des Schnittproblems fur kon-
textfreie Sprachen die Entscheidbarkeit des Post'schen Korrespondenzproblems (PCP) zur Folge hatte. Nehmen wir also an das Schnittproblem fur kontextfreie Sprachen sei entscheidbar. Dann nutzen wir das Entscheidungsverfahren wie folgt dazu, fur ein beliebiges PCP K zu entscheiden, ob es eine Losung hat. Wir ordnen jedem PCP K = ((L1 ; R1); : : : ; (Lr ; Rr )) eektiv zwei kontextfreie Grammatiken G1 und G2 so zu, da gilt: K hat eine Losung () L(G1 ) [ L(G2 ) = ; Idee: Konstruiere G1 bzw. G2 so, da sie die linke bzw. rechte Seite eines Losungswortes erzeugt und sorge zusatzlich durch neue Symbole dafur, da die Losungsworte aus gleichen Indexfolgen bestehen. Sei also K = ((L1 ; R1); : : : ; (Lr ; Rr )) ein PCP uber und seien fa1; : : : ; ar g 2= . De niere Gi = (fSig [ fL1 ; : : : ; Lr ; R1 ; : : : ; Rr g; [ fa1; : : : ; ar g; Pi; Si), i 2 f1; 2g, mit P1 = fS1 ! a1L1 j : : : j ar Lr ; S1 ! a1S1 L1 j : : : j ar S1Lr g P2 = fS2 ! a1R1 j : : : j ar Rr ; S2 ! a1S2 R1 j : : : j ar S2Rr g Dann gilt: K hat eine Losung i1 ; : : : ; in genau dann wenn ain : : : ai1 Li1 : : : Lin = ain : : : ai1 Ri1 : : : Rin 2 L(G1) \ L(G2 )
Die Grammatiken sind sogar deterministisch in dem Sinne, da sie von einem deterministischen Pushdown-Automat (PDA) erkannt werden konnen. Die von deterministischen PDAs akzeptierbaren Sprachen sind gegenuber Komplementbildung abgeschlossen. Damit erhalt man Satz 50 Das Aquivalenzproblem fur kontextfreie Sprachen ist unentscheidbar.
Beweis:
L(G1 ) [ L(G2) = ; () L(G1 ) L(G2) () L(G1 ) \ L(G2) = L(G2 ) () L(G0 ) = L(G00 )
5.9. UBUNGEN
113
Also ist das Schnittproblem fur deterministische kontextfreie Sprachen auf das A quivalenzproblem fur kontextfreie Sprachen reduzierbar. Eine kontextfreie Grammatik G ist mehrdeutig, wenn es wenigstens ein Wort w 2 L(G) gibt, fur das zwei strukturell verschiedene Ableitungsbaume existieren.
Satz 51 Das Problem, fur eine beliebige kontextfreie Grammatik festzustellen, ob sie mehrdeutig ist, ist unentscheidbar.
Beweis: Wir zeigen, da das PCP auf das Mehrdeutigkeitsproblem fur kon-
textfreie Grammatiken reduzierbar ist, d.h. zu jedem PCP K = ((L1 ; R1); : : : ; (Lr ; Rr )) geben wir eine kontextfreie Grammatik an, so da gilt:
K hat eine Losung () G ist mehrdeutig De niere G = (fS1; S2 ; S g [ fL1; : : : ; Lr ; R1; : : : ; Rr g; [ fa1; : : : ; ar g; P; S ), mit
P = fS ! S1 j S2 g [ fS1 ! a1L1 j : : : j ar Lr ; ! a1S1 L1 j : : : j ar S1Lr g [ fS2 ! a1R1 j : : : j ar Rr ; S2 ! a1S2 R1 j : : : j ar S2Rr g Dann hat K genau dann eine Losung, wenn das Wort
ain : : : ai1 Li1 : : : Lin = ain : : : ai1 Ri1 : : : Rin sowohl uber S ! S1 und S ! S2 abgeleitet werden kann. Die Tabelle 5.1 fat die Entscheidbarkeit- und Unentscheidbarkeitsresultate zusammen. Dabei haben wir das Leerheitsproblem fur Kontextsensitive Sprachen nicht als unentscheidbar nachgewiesen.
5.9 U bungen
114
KAPITEL 5. BERECHENBARKEIT
L w 2 L L = ; L1 [ L2 = ; L1 = L2 Regular + + + + Det. kontextfrei + + ? Kontextfrei + + Kontextsensitiv + Typ-0 (TM-akzep.) Tabelle 5.1: Zusammenstellung der Entscheidbarkeit- und Unentscheidbarkeitsresultate von Sprachfamilien (+ entspricht entscheidbar, - entspricht unentscheidbar ).
5.9. UBUNGEN
115
Aufgabe 40:
Professor Siebzehn versucht nun schon seit Wochen, ein (Registermaschinen)Programm zu schreiben, welches von einem beliebigen RegistermaschinenProgramm mit Eingabe x; 0 entscheidet, ob dieses die Ausgabe 17; 0 berechnet oder nicht. Bisher allerdings ohne Erfolg. Beweisen Sie, dass es ihm nicht gelingen wird.
Aufgabe 41: (a) Zeigen Sie, dass es algorithmisch nicht moglich ist, fur ein beliebiges Java-Programm zu entscheiden, ob alle Variablen initialisiert sind. (b) Gegeben ist folgendes Java-Programm: public class Frage { public static void main(String[] args) { int i; if (i==2) i=3; } }
Wenn man es compilieren will, beschwert sich der Compiler, dass i wohl nicht initialisiert sei. Nach Aufgabenteil (a) sollte der Compiler nicht in der Lage sein, dies zu testen. Wie erklaren Sie sich, das er es dennoch tut?
Aufgabe 42:
Geben Sie fur jedes der beiden folgenden Postschen Korrespondenzprobleme entweder eine Losung an, oder beweisen Sie, dass keine Losung existiert: (a) f(aaaaa; a); (aa; aaaaa)g (b) f(ab; aba); (baa; aa); (aba; baa)g
116
KAPITEL 5. BERECHENBARKEIT
Aufgabe 43: (a) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das die Addition zweier Zahlen in Unardarstellung durchfuhrt. Kommentieren Sie Ihr Programm. (b) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das eine Zahl in Binardarstellung um eins erhoht. Kommentieren Sie Ihr Programm. (c) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das eine Zahl in Binardarstellung um eins erniedrigt. Sie konnen dabei davon ausgehen, dass die Zahl ungleich null ist. Kommentieren Sie Ihr Programm. (d) Verwenden Sie die Aufgabenteile (b) und (c) um ein TuringmaschinenProgramm (in Pascal-ahnlicher Notation) zu schreiben, das zwei Zahlen in Binardarstellung addiert. Kommentieren Sie Ihr Programm. (e) Skizzieren Sie, wie ein Turingmaschinen-Programm vorgeht, welches nach der Schulmethode (d. h. ziernweise) zwei Zahlen in Binardarstellung addiert. (f) Vergleichen Sie den Zeit- und Platzbedarf der Turingmaschinen aus den Aufgaben (a), (d) und (e) in Abhangigkeit vom Platzbedarf der Eingabe. Hinweis: Die Programme durfen die Eingabe loschen und wie die Ein- und Ausgabe genau aussieht (Position des Programmkopfes etc.) konnen Sie sich selber aussuchen.
Aufgabe 44:
Zeigen Sie, dass das Postsche Korrespondenzproblem fur Worter uber einem Alphabet mit nur einem Symbol entscheidbar ist.
Aufgabe 45:
5.9. UBUNGEN
117
1. Seien s : N ! N und M eine Turingmaschine mit jQj Zustanden und jj Zeichen im Bandalphabet, die angesetzt auf Eingaben der Lange n nur die Felder 1; : : : ; s(n) auf dem Eingabeband benutzt. Beweisen Sie: Wenn M angesetzt auf ein Wort w der Lange n stoppt, dann stoppt M spatestens nach jQj jjs(n) s(n) Schritten. 2. Argumentieren Sie mit Hilfe von (a), dass das Halteproblem fur speicherplatzbeschrankte Turingmaschinen entscheidbar ist, wenn die Speicherplatzschranke berechenbar ist.
118
KAPITEL 5. BERECHENBARKEIT
Kapitel 6 Komplexitatstheorie EXPTIME
PSPACE NP P NC
6.1 Die Klasse P Wir haben gesehen, da es eine Reihe von Problemen gibt, die sich einer algorithmischen Losung prinzipiell entziehen. Dazu gehoren das Halteproblem fur Register- und Turingmaschinen, das A quivalenzproblem fur Programme, das zehnte Hilbertsche Problem und viele andere mehr. Man konnte jedoch umgekehrt hoen, da sich alle Probleme, deren algorithmische Losbarkeit sich theoretisch beweisen lat, auch praktisch losbar sind, also durch genugend groe, genugend leistungsfahige Rechenanlagen in absehbarer Zeit bewaltigt werden. Dies ist jedoch nicht der Fall, wie die in diesem Abschnitt erlauterte NP-Vollstandigkeitstheorie belegt. Dabei ist die Aussage schwacher als vermeindlich erhot. Wir werden eine groe Klasse von Problemen kennenlernen, von der man zwar die eziente Berechenbarkeit derzeit noch nicht beweisen kann, aber belegen kann, da, wenn man eines dieser Problem ezient lost, 119
KAPITEL 6. KOMPLEXITATSTHEORIE
120
so auch alle anderen schwierigen Probleme in dieser Klasse. In dem Klassiker von Garey und Johnson stellt sich die Situation eines Programmierers fur seinen Auftraggeber so dar, da weder er noch irgend jemand anderes auf der Welt derzeit das gestellte Problem ezient losen konnen. Im dem Sinne ist die NP-Vollstandikkeitstheorie sehr praktisch.
De nition 42 Sei M eine deterministische Turingmaschine auf dem Einga-
bealphabet . Die worst-case Rechenzeit tM (n) ist die maximale Anzahl von Rechenschritten, die M auf Eingaben aus n macht. M=(Z, Σ, Γ, δ, z0, , E)
1
0
1
0
0
Z
δ: Zx Γ
Zustand
Programm
1
0
0
Zx Γx{L,R,N}
1
De nition 43 P ist die Klasse der Probleme, fur die es eine deterministische TM M gibt, deren worst-case Rechenzeit polynomiell beschrankt ist.
Beispiel 45 L = f0k 1k j k 1g ist TM entscheidbar, und eine L entscheidende TM M = (Q; f0; 1g; ; s0; F ) verhalt sich dabei wie folgt. M wird angesetzt auf die Anfangskon guration s0 w. Dan pruft M von links
nach rechts, ob jemals eine 0 rechts von einer 1 angetroen wurde, wenn ja, akzeptiere w nicht. Sonst losche je eine durch Uberschreiben solange noch mindestens eine 0 und eine 1 auf dem Band stehen nacheinander je eine 0 und eine 1. Wenn noch eine 0 stehenbleibt, nachdem alle 1en geloscht wurden, oder umgekehrt akzeptieren nicht, sonst akzeptiere. Die worst-case Schrittanzahl ist oensichtlich O(n2 ).
De nition 44 Sei f : N ! N eine Funktion. Unter der Zeitkomplexitatsklasse TIME(f (n)) versteht man die Familie der Sprachen, die von einer TM in Zeit tM (n) = O(f (n)) erkannt werden konnen, d.h. TIME(f (n)) = fL j L ist Sprache, die von einer TM in Zeit O(f (n)) entschieden werden kann.g
Der folgende Sachverhalt ist oensichtlich.
6.1. DIE KLASSE P
Satz 52 P=
121
[ p Polynom
TIME(p(n)) =
[ k
TIME(nk )
Beispiel 46 Wir haben gesehen, da L = f0i1i j n i 1g 2 TIME(n2 ) und damit L 2 P gilt. Es gilt sogar L =2 TIME(n log n). Die Idee dabei ist,
in einem Durchgang immer wieder jede zweite Zier zu loschen. Dazu prufen wir zuerst wie gehabt, ob jemals eine 0 rechts von einer 1 auftritt, wenn ja, halte und akzeptiere w nicht. Sonst iterieren solange noch mindestens eine 0 und 1 auf dem Band steht die folgenden Schritte: Prufe, ob die Anzahl der 0en und die Anzahl der 1en gerade oder ungerade ist. Fals die Gesamtzahl ungerade akzeptiere w nicht. Losche jede zweite 0 (beginnend mit der ersten) und jede zweite 1 (beginnend mit der ersten). Falls am Ende keine 0en oder 1en auf dem Band ubrigbleiben akzeptiere, sonst akzeptiere nicht. Da die TM nur log n Iterationen ausfuhrt entscheidet das Verfahren die Frage w 2 L somit in Zeit O(n log n).
Weitere Beispiele fur Entscheidungsprobleme
Beispiel 47
1. Primzahlproblem PRIMES. Eingabe: Eine naturliche Zahl n, z.B. in Binardarstellung. Frage: Ist n prim? Als Sprache formuliert: L = fhni j n ist primg Dabei ist hni = D2 (n) die Kodierung von n. 2. PARITION. Eingabe: Eine Menge S fx1 ; : : : ; xk g positiver, ganzzahliger Gewichte in kanonischer Darstellung, d.h. alle Zahlen mindestens in Dualdarstellung. Frage: Gibt es eine Teilmenge S 0 S , so da
X
xi 2S
xi =
X
x0i 2S nS 0
x0i:
Beispiel ist S = f1; 2; 2; 3; 5; 7g mit 2 + 3 + 5 = 2 + 7 + 1 Als Sprache L bedeuted dies:
8 9 < = X X L = :hx1 ; : : : ; xni j 9 S 0 fx1 ; : : : ; xng = S : xi = x0i; xi 2S xi 2S nS 0
0
KAPITEL 6. KOMPLEXITATSTHEORIE
122
Von der Kodierung eines Problems verlangt man, da die Kodierung und Dekodierung in Polynomialzeit moglich ist, sonst macht man keine Einschrankungen. Fur einen (gerichteten) Graphen ist es somit unbedeutend, ob er als Adjazenzmatrix oder als Adjazenzliste vorliegt.
Beispiel 48 Betrachte das Problem RELPRIM, das als Sprache L wie folgt de niert ist:
RELPRIM = fhx; yi j ggT (x; y) = 1g
1. BrutForce Algorithmus: Fur jeden moglichen Teiler m x prufe, ob m Teiler von y ist. Damit sind x Zahlen zu testen, das sind exponentiell viele in der Lange der Darstellung von x. 2. Euklidischer Algorithmus while (x y) do if (x>y) then x = x-y else y = y-x if x = 1 then akzeptiere (<x,y>) else verwerfe(<x,y>)
Die if-Bedingung konnte y -mal durchgefuhrt werden, (z.B. bei x = 1). Deshalb ist der Algorithmus im worst-case exponentiell. a =x, b = y while (b>0) do c = a mod b a = b b = c if b = 1 then akzeptiere (<x,y>) else verwerfe(<x,y>)
Die Zahlenwerte die b annimmt, halbieren sich mindestens nach je zwei Schleifendurchlaufen. Schleife wird also hochstens O(log y ) mal ausgefuhrt. Damit liegt RELPRIM in P .
Die Bedeutung von P wird in der folgenden These manifestiert.
6.1. DIE KLASSE P
123
These 2 (Cobham-Edmonds 1965) Die Klasse P der in Polynomialzeit ent-
scheidbaren Probleme entspricht der intuitiv praktisch berechenbaren Probleme.
Wie lat sich nun zeigen, da ein Problem nicht in P liegt? Eine Moglichkeit ist es, zu beweisen, da das Problem algorithmisch nicht losbar ist, sich also dem Berechenbarkeitsbegri fur TM oder RM entzieht. Eine andere Moglichkeit sind Problemstellungen, deren Losungslange exponentiell lang ist. Typisch sind Optimierungsprobleme, bei denen wir nach allen optimalen Losungen fragen. Schlielich gibt es fur manche Probleme Beweise, da sie exponentielle oder gar doppelt exponentielle Rechenzeit benotigen. Ein Beispiel hierfur ist die Menge der korrekten quanti zierten arithmetischen Formeln uber f+; g (Presburger Arithmetik). Wir wenden uns Problemen zu, die als schwer gelten, von denen wir aber nicht wissen, ob sie in P liegen.
De nition 45 In einem ungerichteten Graphen G = (V; E ) bildet die Knotenmenge V 0 V eine Clique, wenn fur alle v; v 0 2 V 0 gilt: fv; v 0g 2 E: Das (Entscheidungs-) Problem CLIQUE fragt nach der Existenz einer Clique der Groe k, wobei k zur Eingabe gehort. G=(V,E) E VxV
De nition 46 Beim BIN-PACKING (BPP) sind naturliche Zahlen a1 ; : : : ; an b und k gegeben. Dabei beschreiben die ai Groen von Objekten und b die
Maximalgroe von Behaltern fur die Objekte, Gesucht ist eine Aufteilung f : f1; : : : ; ng ! f1; : : : ; kg, so da fur jedes j die Summe aller Groen der Objekte i, die in Behalter i gepackt werden (f (i) = j ), nicht groer als b ist. b
a k Bins
De nition 47 Bei dem Rucksack- bzw. KNAPSACK Problem (KP) ist ein
Rucksack mit n Objekten der Gewichte g1 ; : : : ; gn gegeben, sowie eine Gewichtsschranke G. Zusatzlich seien a1 ; : : : ; an die Nutzenwerte fur die Objekte. Frage: Gibt es zu gegebenen Nutzenwert A eine Bepackung des Rucksackes, die das Gewichtslimit respektiert und mindestens den Nutzen A erreicht.
KAPITEL 6. KOMPLEXITATSTHEORIE
124
De nition 48 Das Problem des Handlungsreisenden TRAVELING SALES-
MAN PROBLEM (TSP) stellt sich wie folgt. Gegeben sind n Orte und die Kosten c(i; j ) 2 N , um von i nach j zu reisen. Eine Rundreise ist durch eine Permutation auf f1; : : : ; ng gegeben. Ihre Kosten betragen c( (1); (2)) + : : : + c((n 1); (n)) + c((n); (1)). Gefragt ist zu weiterhin gegebenen B , ob eine Rundreise mit Kosten kleiner-gleich B existiert.
6.2 Die Klasse NP Nichtdeterministische Turningmaschinen(NTMs) wurden bereits eingefuhrt. Eine NTM akzeptiert die Eingabe w falls es mindestens einen Rechenweg gibt, der zu einem akzeptierenden Stoppzustand fuhrt.
1
0
1
0
0
1
0
0
1
0
1
B
δ : (QxΓ)x(Qx Γ x{L,R,N})
Q
M=(Q, Σ , Γ, δ ,F, q ,B)
Program
State
1
0
0
1
0
0
1
B
0
0
1
0
0
1
0
0
1
B
De nition 49 Es sei eine L akzeptierende NTM M gegeben. Die Rechenzeit fur eine Eingabe w 2 L ist die Anzahl der Rechenschritte auf einem kurzesten akzeptierenden Rechenweg, und 0, falls w 2= L. Die worst-case Rechenzeit tM (n) ist das Maximum der Rechenzeiten fur alle Eingaben w der Lange n.
De nition 50 Die Klasse NP (nichtdeterministisch polynomiell) enthalt al-
le Entscheidungsprobleme, fur die es eine NTM gibt, deren worst-case Rechenzeit polynomiell beschrankt ist.
Oensichtlich gilt: P NP . Man nennt NP auch die Klasse der polynomiell veri zierbaren Probleme, fur die eine geratene Losung in Polynomialzeit veri ziert werden kann.
Satz 53 CLIQUE, KP, BPP, TSP liegen in NP .
6.2. DIE KLASSE NP
125
Beweis: Fur CLIQUE zahlt die NTM M zunachst die Anzahl n der Knoten von G. Dann rat sie ein Wort w 2 f0; 1gn. Formal setzt sie Markierungen,
zwischen denen n leere Zellen liegen. Sie ist dann in einem nichtdeterministischen Zustand, in dem sie 0 oder 1 schreiben kann. Beim Erreichen der zweiten Markierung wechselt M wieder den Zustand. Das Wort w wird als Knotenauswahl interpretiert. d.h. V 0 enthalt alle Knoten i mit wi = 1. Es wird dann getestet, ob V 0 genau k Knoten und G eine Clique auf V 0 enthalt. Wenn beide Test positiv ausgehen, wird G = (V; E ) akzeptiert. Die Rechenzeit ist oensichtlich polynomiell. Fur BPP wird eine Codierung von f1; : : : ; ng ! f1; : : : ; kg, fur KP eine Auswahl der Objekte und fur TSP eine Rundreise geraten. In jedem Fall konnen wir einfach und ezient veri zieren, da die Losung den Anforderungen entspricht. Das im Beweis benuzte Prinzip der Rates und der Veri kation wird durch sogenannte Rate-Veri kations TMs RV-TM prazisiert. Zuerst einmal stellen wir allgemein fest, das TM mit beidseitig beschranktem Band im Reiverschlu durch eine TM mit einseitig beschranktem Band in polynomieller Zeit simuliert werden kann.
De nition 51 Eine RV-TM M 0 simuliert eine NTM M wie folgt. In der
Ratephase schreibt M 0 das Leerzeichen in die Zelle 0 und schreibt dann eine zufallige 0-1 Folge auf das Band links vom Trennsymbol in einem ausgezeichneten Ratezustand, in dem die folgenden drei Aktionen moglich sind: Das Schreiben einer 0 oder 1 mit einer Kopfbewegung nach links und die Beendigung des Ratens. In der Veri kationsphase arbeitet M 0 deterministisch. Immer wenn M die Wahl zwischen m 2 Moglichkeiten hat, markiert M 0 die gelesenen Zelle, lauft nach links uber das Trennsymbol hinaus und sucht dme Zufallsbists der Ratephase. Diese werden als Binarzahl i interpretiert. Damit wird die i-te Aktion der erlaubten Schritte ausgewahlt. Die verbrauchten Zufallsbits werden geloscht und M kehrt zur markierten Zelle zuruck. Sei p(jwj) die polynomiale worst-case Laufzeit der NTM auf dem Eingabewort w Die Rechenzeit der RV-TM Simulation ist polynomiell durch O(p2(jwj)) beschrankt, da m 3jQjjj gilt. Der zusatzliche Speicherplatz ist durch dlog(3jQjjj)ep(jwj) Zufallsbits beschrankt. Damit benotigt die RV-TM fur jeden Simulationsschritt also maximal O(p(jwj)) viele Schritte. NTMs lassen sich durch DTMs simulieren, allerdings ist die Simulationszeit exponentiell.
126
KAPITEL 6. KOMPLEXITATSTHEORIE
Satz 54 Fur jede Sprache l 2 NP gibt es ein Polynom p und eine DTM M , so da M die Sprache L in exponentieller Zeit 2p(n) akzeptiert.
Beweis: Nach Voraussetzung gibt es eine NTM M 0 = (Q; ; q0 ; F; ). Wir
zeigen nur die Existenz einer DTM, so da wir annehmen konnen, da das Polynom q, mit dem die NTM auf der Eingabe w maximal m = q(jwj) Schritte benotigt, fur die Simulation bekannt ist. Sei k = 3jQjjj. Unter (i1; : : : ; im ) 2 f1; : : : ; kgm verstehen wir folgenden Rechenweg. Zum Zeitpunkt t 2 f1; : : : ; mg wird fur das t-te Tripel (qt ; at; dt) den erreichten Zustand q und den gelesenen Buchstaben a getestet, ob (q; a; qt; at; dt) in der U bergangsfunktion von M 0 liegt. Falls nicht, so ist der Rechenweg illegal, sonst wird der Rechenschritt (q; a; qt; at; dt ) durchgefuhrt. Die DTM M simuliert nacheinander alle km Rechenwege und akzeptiert genau dann, wenn ein legaler Rechenweg in einem akzeptierenden Endzustand fuhrt. Die Zahl der Rechenwege ist durch km und damit durch 2m log k = 2p(n) fur ein geeignetes Polynom p beschrankt.
6.3 NP -Vollstandigkeit Wir haben Reduktionen bei der Berechenbarkeit kennengelernt, bei denen die algorithmischen Unlosbarkeit des einen Problems (z.B. Universelles Halteproblem) auf die Unlosbarkeit eines bekannten Problems (z.B. Spezielles Halteproblem) zuruckgefuhrt wird. Hier benuzten wir polynomielle Reduktionen, um die relative Komplexitat zu messen.
De nition 52 Es seien L1 und L2 Sprachen uber 1 und 2 . Dann heit L1 polynomiell auf L2 reduzierbar, kurz L1 p L2 , wenn es eine polynomielle Transformation von L1 nach L2 gibt, d.h., wenn es eine von einer DTM in polynomieller Zeit berechenbare Funktion f : 1 ! 2 gibt, so da fur alle w 2 1 gilt w 2 L1 () f (w) 2 L2
Da wir uns dafur interessieren, ob Entscheidungsprobleme in P liegen, spielen polynomielle Rechenzeiten keine Rolle. Falls L1 p L2 und L2 ist in Rechenzeit t(n) losbar, so ist L1 in Zeit p(n) + t(p(n)) losbar. In diesem Sinne ist L1 nicht wesentlich schwieriger als L2 .
6.3. NP -VOLLSTANDIGKEIT
127
Satz 55 Falls L1 p L2 und L2 2 P , so ist auch L1 2 P . Beweis: Sei M die DTM die in Zeit p(n) die Transformationsfunktion berechnet und M2 die DTM fur L2 die w 2 L2 in Zeit q(jwj) entscheidet.
Dann kann M1 , die DTM fur L1 , wie folgt konstruiert werden: Erst wird fur die Eingabe w die das Unterprogramm fur M aufgerufen, das f (w) berechnet, dann wird anschlieend ein Unterprogramm fur M2 aufgerufen, das f (w) 2 L2 entscheidet. Wie bereits bemerkt ist die sich ergebenen Laufzeit p(jwj) + q(p(jwj)) polynomiell.
Satz 56 Falls L1 p L2 und L2 p L3 , so gilt auch L1 p L3 . Beweis: Nach Vorraussetung gibt es Funktionen f1 : 1 ! 2 und f2 : 2 ! 3 , die in polynomieller Zeit p1 bzw. p2 berechnet werden konnen und fur die gilt:
x 2 L1 () f1 (x) 2 L2 und y 2 L2 () f2 (x) 2 L3 O.B.d.A. sei p1 monoton wachsend. Wir de nieren f3 := f2 f1 . Dann ist (da jf1(x)j p1 (jxj)) f3 in polynomieller Rechenzeit p1 + p2 p1 berechenbar und es gilt
x 2 L1 () f1 (x) 2 L2 () f2 f1(x) 2 L3 () f3(x) 2 L3
De nition 53 Eine Sprache heit NP -hart, wenn fur alle L0 2 NP gilt L0 p L. Eine Sprache heit NP -vollstandig, wenn L NP -hart ist und L zudem in NP liegt.
Satz 57 Sei L NP -vollstandig. Dann gilt: 1. Falls L 2 P liegt, so ist P = NP 2. Falls L 2= P , so gilt fur alle NP -vollstandigen Probleme L0 , da L0 2= P ist.
128
KAPITEL 6. KOMPLEXITATSTHEORIE
Beweis: 1. Sei L 2 P . Da L NP -vollstandig ist, gilt fur L0 2 NP , da L0 p L ist. Aus Satz 55 folgt L0 2 P und somit NP P . Anderseits gilt P NP . 2. Sei L 2= P . Nehmen wir an, da L0 NP -vollstandig ist und L0 2 P ist. Nach Teil 1: dieses Satzes folgt P = NP und damit L 2 P im Widerspruch zur Vorraussetzung.
Wir wiederholen die Aussage des letzten Satzes. Entweder gibt es fur alle NP-vollstandigen Probleme polynomielle Algorithmen, oder es gibt fur kein NP-vollstandiges Problem einen polynomiellen Algorithmus und P 6= NP . Fast alle Fachleute glauben, da P 6= NP gilt, daher gilt der Beweis, da ein Problem NP -vollstandig ist, als Nachweis, da dieses Problem schwierig ist. Allerdings scheint es schwierig zu sein, die NP -Vollstandigkeit einer Sprache L zu beweisen, da alle L0 2 NP betrachtet werden mussen, fur die L0 p L gelten mu. Es war daher ein groer Durchbruch als Cook im Jahre 1971 bewies da das Erfullbarkeitsproblem fur Boole'sche Formeln in konjunktiver Form NP-vollstandig ist.
De nition 54 Das SATISFIABILITY PROBLEM SAT ist wie folgt de -
niert. Als Eingabe dient eine Konjunktion von Boole'schen Klauseln uber den Literalen xj und xj mit j 2 f1; : : : ; ng. Es soll getestet werden, ob es eine Belegung a = (a1 ; : : : ; an) der Variablen x1 ; : : : ; xn gibt, so da alle Klauseln erfullt sind.
Satz 58 SAT is NP -vollstandig.
6.4. NP -VOLLSTANDIGKEIT WICHTIGER PROBLEME Ratestring B B 0 1 0 1 0
Beweis:
B B
B B
129
0 w
B B B B B
B B B B B B B B B B B
p(|w|)
p(|w|)
Die NP-Vollstangigkeitstheorie ware nicht so erfolgreich, wenn alle NP -vollstandigen Probleme so komplex wie der Satz von Cook waren. Wir haben mit dem folgendem Satz jedoch nun den Schlussel in der Hand.
Satz 59 Sei L2 2 NP und L1 p L2 fur ein NP -vollstandigs Problem L1 . Dann ist L2 NP-vollstandig.
Beweis: Es ist L2 2 NP nach Voraussetzung. Sei L0 2 NP . Da L1 NPvollstandig ist gilt L0 p L1 . Nach Vorraussetzung gilt L1 p L2 . Also nach Satz 56 (Transitivitat von p) gilt also L0 p L2. Damit ist auch L2 NP vollstandig.
6.4 NP -Vollstandigkeit wichtiger Probleme Satz 60 3-SAT ist NP -vollstandig. Beweis: Da SAT 2 NP ist auch 3-SAT in NP . Fur die polynomielle Trans-
formation betrachten wir die Klauseln einzeln. Ein Literal wird z wird durch z _ z _ z, eine Klausel der Form z _ z0 durch z _ z _ z0 ersetzt, Klauseln mit 3 Literalen werden unverandert ubernommen. Fur Klauseln c = z1 _ : : : _ zk der Lange k 4 ersetzen wir c durch k 2 Klauseln und nutzen k 3 neue Variablen. Wir beschrnnken uns der Lesbarkeit wegen exemplarisch auf m = 7. Fur den Fall haben wir folgende neue Klauselmenge: z1 _ z2 _ y1, y1 _ z3 _ y2, y2 _ z4 _ y3, y3 _ z5 _ y4 und
130
KAPITEL 6. KOMPLEXITATSTHEORIE
y4 _ z6 _ z7. Nun ist die ursprungliche Klausel erfullbar genau dann, wenn die transformierte 3-SAT Klausel erfullbar ist. Falls z1 = 1 oder z2 = 1, setze alle y-Variablen auf Null. Falls z6 = 1 oder z7 = 1, setze alle y-Variablen auf Eins. Falls zi mit 3 i 5 gleich 1 ist, so setze alle yj mit j < i 1 auf 1 und alle yi mit j i 1 auf 0. Wenn letztendlich alle zi = 0 sind, gibt es keine Belegung der y-Variablen die alle Klausel erfullen. Die Transformation benutzt einen sogenannte lokale Ersetzung, da wir die gegebenen Klauseln unabhangig voneinander behandeln konnten.
Satz 61 CLIQUE ist NP -vollstandig. Beweis: Das Clique in NP ist haben wir bereits gesehen. Zu zeigen ist 3-SAT p CLIQUE. Sei C = (c1; : : : ; cm) eine 3-SAT Formel mit ci = zi1 _ zi2 _ zi3 und zij 2 fx1; x1 ; : : : ; xn; xng. Die Eingabe f (C ) = (G; k) mit G = (V; E ) fur CLIQUE wird wir folgt konstruiert. V enthalt 3m Knoten (i; j ), 1 i m, 1 j 3, die die Literale in den Klauseln darstellen. E enthalt die Kante zwischen (i; j ) und (i0 ; j 0), wenn i = 6 i0 und zi;j =6 zi0;j0 gilt. Schlielich sei
k = m. Sei nun a eine Belegung, die alle Klauseln erfullt. Dann ist in jeder Klausel mindestens ein Literal erfullt. Wir betrachten die zugehorigen m Reprasentanten in G. Der Graph G enthalt auf ihenen eine Clique, da die Literale aus verschiedenen Klauseln kommen und gleichzeitig erfullt sind. Wenn G anderseits eine Clique der Groe m enthalt, mussen die Knoten der Clique Literale aus verschiedenen Klauseln reprasentieren. Daruber hinaus ist es moglich, alle diese Literale gleichzeitig zu erfullen. Die Klauselmenge C ist somit erfullbar. Die obige Reduktion ist eine sogenannte Transformation mit verbundenen Komponenten, da wir zunachst Komponenten fur die einzelnen Klauseln bilden, diese aber durch die Kanten des Graphen verbinden.
Satz 62 KP ist NP -vollstandig.
6.5. DAS HAMILTONKREISPROBLEM UND TSP
131
Beweis: Wir wissen bereits, da KP ist in NP liegt. Sei C = (c1; : : : ; cm) eine 3-SAT Formel mit ci = zi1 _ zi2 _ zi3 und zij 2 fx1; x1 ; : : : ; xn; xng.
Fur die Eingabe f (C ) fur KP wird ai = gi gelten und fur alle i wird A = G sein. Es stellt sich dann noch die Frage, ob es eine Auswahl der Objekte gibt, deren Gesamtnutzen genau A ist. Es sei A, die Dezimalzahl 4 : : : 41 : : : 1 mit m Vieren und n Einsen. A lat sich in polynomieller Zeit schreiben. Das Rucksackproblem besteht aus 2m + 2n Objekten, deren Nutzenwerte wir mit ai , bi, cj und dj bezeichnen. Es ai gibt im vorderen Block and, wie oft xi in der j -ten Klausel vorkommt. Im hinteren Block steht eine 1 an Position i, sonst Nullen. bi ist analog fur xi, ci ist 1 an Stelle i im vorderen Block und di = 2ci. Die Zahlen konne in polynomieller Zeit berechnet werden. Um A als Summe zu erhalten, mussen wir fur jedes i genau eine der Zahlen ai und bi wahlen, damit entscheiden wir, ob xi wahr oder falsch ist. Wenn es eine Belegung gibt, die alle Klauseln erfullt, so wahlen wir die zugehorigen a und b Zahlen aus. Die haben als Zwischensumme an den vorderen Position mindestens eine Eins stehen, da in jeder Klausel ein Literal erfullt ist. Also konnen wir die passenden Erganzungswerte in den c und d Zahlen wahlen. Wenn wir die Summe A aus den Zahlen bilden konnen, erhalten wir eine kanonische Belegung der Variablen. Damit sich an den vorderen Positionen 4 ergibt, mu in jeder Klausel mindestens ein Literal erfullt sein.
6.5 Das Hamiltonkreisproblem und TSP De nition 55 Das Problem HAMILTONIAN CIRCUIT (HC) ist wie folgt
festgelegt: Gegeben ist ein ungerichteter Graph G = (V; E ). Enthalt G einen Hamiltonschen Kreis, also einen Kreis, der jeden Knoten genau einmal beruhrt?
De nition 56 Das Problem DIRECTED HAMILTONIAN CIRCUIT (DHC) ist wie folgt de niert: Gegeben ist ein gerichteter Graph G = (V; E ). Enthalt G einen gerichtetetn Hamiltonschen Kreis?
Satz 63 DHC ist NP-vollstandig. Beweis: DHC ist in NP enthalten, da wir den Kreis raten konnen. Wir zeigen, da 3-SAT p DHC gilt. Sei C = (c1; : : : ; cm) mit ci = zi1 _ zi2 _ zi3
132
KAPITEL 6. KOMPLEXITATSTHEORIE
und zij 2 fx1; x1 ; : : : ; xn; xng eine Eingabe fur 3-SAT. Dann konstruieren wir den gerichteten Graphen f (C ) = G = (V; E ) in mehreren Schritten. Da die Transformation f in polynomieller Zeit berechenbar ist, wird jeweils klar sein. Der Graph soll n + 6m Knoten enthalten. Die n Knoten sollen die Variablen reprasentieren.Dazu gibt es m Teilgraphen mit 6 Knoten, die die Klauseln reprasentieren. Diese Struktur der Teilgraphen ist trickreich und garantiert, da der Graph genau dann einen gerichteten Hamiltonkreis enthalt, wenn die Klauselmenge erfullbar ist. Doch wenden wir uns erst der Struktur des ubrigen Graphen zu. Die Variablenknoten haben zwei eingehende und zwei ausgehende Kanten, die positiven oder negativen Vorkommen der Variablen. Die erste Kante aus dem Variablenknoten i ist die l-te eingehende Kante in die j -te Klauselkomponente, wenn die j -te Knausel die erste ist, in der xi vorkommt, wobei xi das l-te vorkommende Literal ist. Die l-te ausgehende Kante der j -ten Klauselkomponente ist dann die l0-te eingehende Kante in die j 0-te Klauselkomponente, wenn die j 0-te Klause die zweite ist, in der xi vorkommt, wobei xi das l0 -te vorkommende Literal ist, usw. Wenn es kein weiteres Vorkommen von xi gibt, ist die aus der Klauselkomponente ausgehende Kante die erste in den Variablenknoten i + 1 (1, falls i = n) eingehende Kante. Die zweite aus einem Variablenknoten ausgehende Kante hat die gleiche Funktion fur das negative Literal xi. Die Konstruktion wird am besten durch ein Beispiel deutlich. Betrachten wir die Klauselmenge c1 = x1 _ x2 _ x3 , c2 = x1 _ x2 _ x4 und c3 = x1 _ x2 _ x3. Demnach mussen wir die Klauselkomponente so entwerfen, da wir auf Hamiltonkreisen die Komponente uber die l-te Kante verlassen (mussen), wenn wir sie uber die l-te Kante erreichen. Da in einer erfullten Klausel ein, zwei oder drei Literale erfullt sein konnen, mu es durch den Hamiltonkreis moglich sein, die Komponente ein-, zwei- oder dreimal zu passieren. Sei c = z1 _ z2 _ z3 die zugehorige Klausel. Wenn genau ein Literal, o.B.d.A. z1 erfullt ist, erreiche wir die Komponente uber die Kante zu 1 und durchlaufen sie uber 3,2,2',3',1'. Sind zwei Literale z.B. z1 und z2 erfullt, erreichen wir die Komponente zweimal, uber die erste und die zweite Kante. Wir durchlaufen sie uber die Knoten 1,3,3',1' und 2,2'. Sind alle drei Literale erfullt, durchlaufen wir die Komponente dreimal, uber 1,1' sowie 2,2' und 3,3'. Ist kein Literal erfullt, werden wir die Komponente nicht in einem Hamiltonkreis einordnen konnen. Welche Moglichkeiten haben wir die Komponente
6.5. DAS HAMILTONKREISPROBLEM UND TSP
x1
x1 _ x2 _ x3
x2
x3
x1 _ x2 _ x4
133
x4
x1 _ x2 _ x3
Abbildung 6.1: Transformation der Klauselmenge c1 = x1 _ x2 _ x3 , c2 = x1 _ x2 _ x4 und c3 = x1 _ x2 _ x3 in einen gerichteten Graphen zu durchlaufen, wenn wir sie uber die Kante zu 1 erreichen (analog fur die anderen Kanten)?
1,1' oder 1,3,3',1' oder 1,3,2,2',3',1', wobei wir die Komponente jeweils
an 1' verlassen. 1,1',2' oder 1,1',2',3', dann kann ein Hamiltonkreis 2 nicht durchlaufen. 1,3,3',1',2', auch dann ist Knoten 2 isoliert. 1,3,3' dann ist Knoten 1' isoliert. 1,3,2,2' oder 1,3,2,2',3', dann ist ebenfalls Knoten 1' isoliert. Damit konnen wir die Korrektheit der Transformation nachweisen. Sei zunachst eine erfullende Belegung gegeben. Dann starten wir den Hamiltonkreis am Variablenknoten x1 und beginnen mit der Kante, die der Variablenbelegung entspricht. Die erreichten Klauselkomponenten werden so durchlaufen, wie es oben beschrieben wurde, wobei berucksichtigt wird, wieviele Literale der Klausel erfullt sind. Wir erreichen Variablenknoten x2 und fahren entprechend fort. Auf diese Weise konstruieren wir einen Hamiltonkreis. Sei nun ein Hamiltonkreis gegeben. Wir durchlaufen ihn an Variablenknoten x1 beginnend. Abhangig von der Kante, die der Hamiltonkreis wahlt, belegen
134
KAPITEL 6. KOMPLEXITATSTHEORIE 1
1'
2
2'
3
3'
Abbildung 6.2: Eine Klauselkomponente. wir x1 . Dann durchlaufen wir die erste Klauselkomponente, die das erfullte x1 -Literal enthalt. Nach den obigen U berlegungen wird diese Komponente so verlassen, da wir die zweite Klauselkomponente erreichen, usw., bis wir den Variablenknoten x2 erreichen. Auf diese Weise konstruieren wir eine Belegung der Variablen. Wir haben nur Klauselkomponenten durchlaufen, die erfullte Literale enthalten. Da wir einen Hamiltonkreis durchlaufen haben, mussen alle Klauseln erfullt sein.
Satz 64 HC ist NP-vollstandig. Beweis: HC liegt in NP, analog zu DHC. Wir zeigen DHC p HC. Dafur genugt eine lokale Ersetzung gema Abbildung 6.3.
Abbildung 6.3: Eine Klauselkomponente. Ein geichteter Hamiltonkreis im gegebenen Graphen lat sich sofort in einen ungerichteten Hamiltonkreis im neuen Graphen ubersetzen. Wenn im neuen
6.6. PSEUDOPOLYNOMIELLE PROBLEME
135
Graphen ein ungerichteter Hamiltonkreis gegeben ist, haben wir zwei mogliche Richtungen, um ihn zu durchlaufen. Wir legen eine Richtung fest, indem wir fur eine beliebige Kante die Richtung wahlen, die ihr im gerichteten Graphen entspricht. Wir erhalten dann direkt einen gerichteten Hamiltonkreis. Wurden wir namlich den linkesten Knoten in der ungerichteten Komponente von links erreichen und nach links verlassen, ware der mittlere Knoten nicht mehr auf einem Hamiltonkreis passierbar. Kommen wir zuruck zum Handlungsreisendenproblem TSP: Gegeben sind n Orte und die Kosten c(i; j ) 2 N , um von i nach j zu reisen. Eine Rundreise ist durch eine Permutation auf f1; : : : ; ng gegeben. Ihre Kosten betragen c((1); (2))+ : : : + c((n 1); (n))+ c((n); (1)). Gefragt ist zu weiterhin gegebenen B , ob eine Rundreise mit Kosten kleiner-gleich B existiert.
Satz 65 TSP ist NP-vollstandig. Beweis: Es ist TSP 2 NP, wie wir schon bemerkt haben. Zu zeigen ist HC p TSP. Mit Hilfe einer polynomiellen Transformation codieren wir das HC-
Problem in das TSP. Eine Eingabe, die nicht Codierung eines ungerichteten Graphen ist, wird auf einen String abgebildet, der nicht Codierung einer Eingabe fur das TSP ist. Sei nun also G = (V = f1; : : : ; ng; E ) ein ungerichteter Graph. Dann ist f (G) die folgende Eingabe fur das TSP. Das Problem beinhaltet n Orte. Es sei c(i; j ) = 1, falls (i; j ) 2 E , und c(i; j ) = 2 sonst. Die Kostengrenze sei B = n. Oensichtlich lat sich f in polynomieller Zeit berechnen. Wir mussen noch zeigen, da G genau dann einen Hamiltonschen Kreis enthalt, wenn f (G) eine Rundreise mit durch n beschrankte Kosten erlaubt. Einerseits entspricht1 ein Hamiltonkreis in G direkt einer Rundreise in f (G) mit Kosten n. Andererseits haben Rundreisen in f (G) genau n Wegstrecken und damit nur dann durch n beschrankte Kosten, wenn alle Wegstrecken Kosten 1 verursachen. Dann ist die Rundreise jedoch als Hamiltonkreis in G enthalten.
6.6 Pseudopolynomielle Probleme Die Reduktionsbeweise HC p TSP und 3-SAT p KP haben sich auallig unterschieden. In der Reduktion von 3-SAT auf KP wurden (exponentiell
136
KAPITEL 6. KOMPLEXITATSTHEORIE
groe) Zahlen der Lange n + m erzeugt, wahrend in der Reduktion von HC auf TSP die Kantenkosten nur die Werte 1 und 2 angenommen haben.
Satz 66 Die Optimierungsvariante von KP kann in Zeit O(nG) gelost werden.
Beweis: Gegeben seien die Gewichte g1; : : : ; gn mit Nutzen a1 ; : : : ; an und Gewichtslimit G. Mit KP (k; g), 1 k n, 1 g G, bezeichnen wir
das Teilproblem, in dem nur die ersten k Objekte betrachtet werden und das Gewichtslimit g betragt. Es sei N (k; g) der Nutzen einer optimalen Losung fur KP (k; g). Wir sind als an N (n; G) interessiert. Zunachst legen wir sinnvolle Randwerte fest. Es sei N (k; g) = 1 fur g < 0 und N (0; g) = N (k; 0) = 0 fur g 0. Wir betrachten nun das Problem KP (k; g). Fur das k-te Objekt gibt es nur zwei mogliche Entscheidungen: Einpacken oder nicht einpacken. Im zweiten Fall hat die beste Losung den Wert N (k 1; g). Im ersten Falll ist das Gewichtslimit auf g gk gesunken, aber auch bereits der Nutzen ak gesichert. Der Wert einer besten Losung ist also N (k 1; g gk ) + ak . Insgesamt folgt also die sogenannte Bellmansche Optimalitatsgleichung
N (k; g) = minfN (k 1; g); N (k 1; g gk ) + ak g die auch fur g gk gilt. Wir fullen nun eine Tabelle mit n Zeilen und G Spalten zeilenweise mit den Werten N (k; g) gena der obigen Optimalitatsgleichung. Da jeder neue Tabelleneintrag oensichtlich in konstanter Zeit berechnet werden kann, haben wir in Zeit O(nG) die Losung N (n; G) berechnet. Ist der von uns entworfenen Algorithmus polynomiell? Dann ware P=NP. Wir untersuchen die Eingabelange fur das Rucksackproblem. Es sind die Zahlen g1; : : : ; gn, a1 ; : : : ; an, G in Binardarstellung gegeben. Sinnvollerweise nehmen wir an gi G fur alle i und de nieren amax = maxfa1; : : : ; ang. Dann ist die Eingabenlange durch O(n(log G + log amax)) beschrankt. Unser Algorthmus ist zwar polynomiell in n und G, aber nicht in n, log G und log amax. Wenn G = 2n und amax 2n ist betragt die Eingabelange (n2) und die Rechenzeit (n2n).
De nition 57 Es sei I die konkrete Eingabe zu einem Problem. Mit L(I )
bezeichnen wir die Lange der Eingabe I (in ublicher Darstellung) und mit
6.6. PSEUDOPOLYNOMIELLE PROBLEME
137
MAX (I ) die Groe der groten in I vorkommenen Zahl. Ein Problem heit Zahlproblem, wenn sich MAX (I ) durch kein Polynom in L(I ) beschranken lat.
KP, PARTITION, BPP und TSP sind Zahlprobleme; CLIQUE, HC, SAT nicht.
De nition 58 Ein Algorithmus fur ein Zahlproblem heit pseudopolynomiell, wenn sich die Rechenzeit durch ein Polynom in L(I ) und MAX (I ) abschatzen lat.
Fur KP gibt es also einen pseudopolynomiellen Algorithmus.
De nition 59 Fur ein Problem und ein Polynom p sei p das Teilproblem von , in dem nur die Eingaben I mit MAX (I ) p(L(I )) erlaubt sind. Satz 67
1. p ist kein Zahlproblem 2. Gibt es fur einen pseudopolynomiellen Algorithmus, dann ist p 2 P .
Beweis: 1. folgt nach De nition. 2. Sei I eine Engabe. In polynomieller Zeit testen wir, ob MAX (I ) p(L(I )) ist. Im negativen Fall wird die Rechnung abgebrochen. Im positiven Fall wird der pseudopolynomielle Algorithmus A fur angewendet. In diesem Fall lot A auch p. Die Rechenzeit ist fur ein Polynom q durch q(L(I ); MAX (I )) beschrankt. Da MAX (I ) p(L(I )) lat sich q(L(I ); MAX (I )) durch ein Polynom r in L(I ) abschatzen.
De nition 60 Ein Entscheidungsproblem heit stark NP-vollstandig, wenn
p fur ein Polynom p NP-vollstandig ist.
Probleme, die keine Zahlprobleme sind, sind automatisch stark NP-vollstandig.
138
KAPITEL 6. KOMPLEXITATSTHEORIE
Satz 68 Ist stark NP-vollstandig und NP 6= P , dann gibt es keinen pseudopolynomiellen Algorithmus fur .
Beweis: Sei p das Polynom, so da p NP-vollstandig ist. Jeder pseudopo-
lynomielle Algorithmus fur ist demnach ein polynomieller Algorithmus fur p.
Satz 69 TSP ist stark NP-vollstandig. Beweis: Wir betrachten das konstante Polynom p(n) = 2 Das Teilproblem TSP2 ist das Problem HC und, wie bewiesen, NP-vollstandig. Unsere der Motivation dienende Frage hat nun folgende Antwort. Falls P 6= NP , mu jede polynomielle Reduktion einer NP-vollstandigen Sprache L auf KP Zahlen nichtpolynomieller Groe erzeugen.
6.7 U bungen
6.7. UBUNGEN
139
Aufgabe 46: Beweisen Sie:
1. Die Klasse P ist unter Vereinigung, Produkt und Komplementbildung abgeschlossen. 2. Die Klasse NP ist unter Vereinigung und Produkt abgeschlossen. 3. NP ist genau dann unter Komplementbildung abgeschlossen, wenn es eine NP -vollstandige Menge A gibt mit A 2 NP .
Aufgabe 47:
De nition: Vertex Cover (VC). Fur einen ungerichteten Graphen G = (V; E ) und eine Zahl k 2 f0; : : : ; jV jg soll entschieden werden, ob der Graph eine Knotenmenge V 0 V mit jV 0j k enthalt, die G uberdeckt, d.h. fur alle e 2 E soll gelten e \ V 0 6= ;. Beweisen Sie: VC ist NP -vollstandig. Hinweis: Welche NP -vollstandigen Probleme in Bezug auf Graphen kennen Sie?
140
KAPITEL 6. KOMPLEXITATSTHEORIE
Kapitel 7 Losungsvorschlage zu U bungsaufgaben
141
ZU UBUNGSAUFGABEN 142 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 1:
Die Sprache L uber = fa; bg sei wie folgt induktiv de niert: 1. Fur alle w 2 mit jwj = 5 gilt: w 2 L. 2. Falls w1; w2 2 L, so ist auch w1w2 2 L. 3. Falls w1; w2 2 L, so ist auch w1jw2j = w | 1w1{z: : : w}1 2 L. jw2 j mal 4. Keine anderen Worter sind in L. (a) Geben Sie L explizit in Mengennotation an. (b) Beweisen Sie, dass L abzahlbar unendlich viele Worter enthalt.
Losung zu Aufgabe 1: (a) L = fw 2 : jwj = 5k; k 2 N n f0gg. Nach 1. sind alle Worter mit Lange 5 in L. Nach 2. kann man zwei solche Worter hintereinander schreiben, induktiv sieht man dann, dass alle Worter mit durch 5 teilbarerer Lange in L sein mussen. Die Aussage 3. fugt der Menge keine neuen Worter hinzu, da alle hier erzeugten Worter ebenfalls eine durch 5 teilbare Lange haben. (b) Da abzahlbar unendlich ist, und L , ist L ebenfalls abzahlbar. Oensichtlich ist L auch unendlich. Alternativ bilde man eine Abzahlung der Worter von L: Zuerst zahle man alle Worter ab, deren Lange gerade 5 ist. Davon gibt es nur endlich viele (25 = 32). Danach zahle man die Worter ab, deren Lange gerade 10 ist (210 = 1024 Stuck), und so weiter. Schlielich wird man jedes Wort aus L abgezahlt haben.
Aufgabe 2:
Beweisen Sie durch vollstandige Induktion:
143 (a) 2n < 2n fur n 3. (b)
n X 3
n !2 X
i=1
i=1
i =
i .
Losung zu Aufgabe 2: (a) Beweis durch Induktion: Induktionsanfang: n = 3. Es ist 2 3 = 6 < 8 = 23 . Induktionsschluss: Sei n fest und fur k, 3 k n die Aussage schon bewiesen. Es gilt: 2(n+1) = 2 2n
Ind. Vor.
>
n3
2 2n = 2n + 2n > 2 + 2n = 2(n + 1):
(b) Beweis durch Induktion: Induktionsanfang: n = 1: 13 = (1)2 Induktionsschluss: Sei n fest und fur k, 1 k n die Aussage schon bewiesen. Es gilt: n+1 X 3 i=1
i
= Ind.=Vor. = = = Bin. Formel =
n X 3
i + (n + 1)3
n !2 X
i=1
i + (n + 1)3
X !2 i=1 n
i + n(n + 1)(n + 1) + (n + 1)2
X !2 i=1 n
i + 2 n(n2+ 1) (n + 1) + (n + 1)2
X !2 i=1 n
i=1 n
X i=1
i +2
n X
i (n + 1) + (n + 1)2
!2
i=1
i + (n + 1)
ZU UBUNGSAUFGABEN 144 KAPITEL 7. LOSUNGSVORSCHL AGE =
n+1 !2 X i=1
i :
Aufgabe 3:
Professor Hurtig hat folgendermaen bewiesen, dass alle Menschen die gleiche Haarfarbe haben: Aussage: Gegeben eine beliebige Menge von n Personen, n 1. Dann haben alle diese Personen die gleiche Haarfarbe.
Beweis durch Induktion: Induktionsanfang: n = 1. Eine einzelne Person hat oensichtlich die gleiche
Haarfarbe wie sie selbst. Induktionsschluss: Sei n fest und sei die Aussage fur alle k, 1 k n, schon bewiesen. Sei M eine Menge von n + 1 Personen und A 2 M eine beliebige Person aus dieser Menge. Betrachtet man die Menge M n fAg, so haben nach Induktionsvoraussetzung alle Personen in dieser Menge die gleiche Haarfarbe. Wahlt man eine andere Person B 2 M aus, so haben ebenfalls nach Induktionsvoraussetzung alle Personen in der Menge M nfB g die gleiche Haarfarbe. Somit haben A und B die gleiche Haarfarbe, und damit alle Personen aus M . Was hat Professor Hurtig hier falsch gemacht?
Losung zu Aufgabe 3:
Im Fall n = 2 stimmt der Schluss nicht. Sei M := fA; B g die Menge mit den beiden Personen. Dann gilt die Aussage zwar fur M n fAg = fB g und fur M n fB g = fAg, aber daraus kann man nicht schliessen, dass die beiden Personen A und B die gleiche Haarfarbe haben.
Aufgabe 4:
Betrachte alle 4 4-Bitmatrizen. Zeilenvektoren konnen gebildet werden, indem man eine Zeile von links nach rechts, oder von rechts nach links liest. Genauso konnen Spaltenvektoren von oben nach unten oder von unten nach oben gebildet werden.
145 Beispiel: In der Matrix
00 BB 1 @0
1 1 1 0 0
0 1 0 1
0 1 0 0
1 CC A
kommt der Vektor (0; 1; 1; 1) in der zweiten Spalte von unten nach oben vor. Beweisen Sie, dass es keine 4 4-Bitmatrix gibt, in der alle moglichen Bitvektoren der Lange 4 auf diese Weise vorkommen.
Losung zu Aufgabe 4:
Man stellt fest, dass es genau 24 = 16 Bitvektoren der Lange 4 gibt. Weiterhin stellt man fest, dass es genau 16 Platze in der 4 4-Bitmatrix gibt, an denen ein Vektor abgelesen werden kann. Wir wenden nun das Schubfachprinzip an, indem wir die 16 moglichen Bitvektoren auf die 16 Platze in der Matrix zu legen versuchen. Es muss der Vektor (0; 0; 0; 0) auf einen der Platze gelegt werden. Dann gibt es aber noch einen weiteren Platz, der den Vektor (0; 0; 0; 0) enthalt, namlich wenn man den ersteren ruckwarts liest. Es bleiben noch 15 Vektoren, die auf 14 Platze aufzuteilen sind. Nach dem Schubfachprinzip muss mindestens einer der Platze zwei Vektoren aufnehmen. Da aber alle Vektoren verschieden sind, geht dies nicht.
Aufgabe 5:
Zeigen Sie mit einem geeigneten Diagonalverfahren, dass die Menge der positiven rationalen Zahlen (Bruchzahlen) abzahlbar ist.
Losung zu Aufgabe 5:
Wir fullen eine zweidimensionale zu zwei Seiten hin oene Tabelle. An der Stelle (i; j ) steht der Bruch ji . Indem wir fur steigendes k = f1; 2; : : :g die Diagonalelemente (i; j ) mit i + j = k aneinanderreihen, konstruieren wir eine Aufzahlung der rationalen Zahlen. (Wem dabei unwohl ist, weil hier Bruche doppelt gezahlt werden, der lasse all die Bruche weg, die schon einmal aufgezahlt wurden.)
ZU UBUNGSAUFGABEN 146 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 6:
Gegeben sei ein gerichteter Graph G = (V; E ). Zeigen Sie, dass die Summe der Eingangsgrade aller Knoten gleich der Summe der Ausgangsgrade aller Knoten ist.
Losung zu Aufgabe 6:
Beweis durch Induktion uber die Anzahl der Kanten in G. Induktionsanfang: n = 0. Wenn keine Kanten vorhanden sind, so hat jeder Knoten den Ein- und Ausgangsgrad 0. Somit gilt hier die Aussage. Induktionsschluss: Sei n fest und fur alle Graphen mit k Kanten, 0 k n die Aussage schon beweisen. Sei G = (V; E ) ein Graph mit jE j = n + 1 Kanten. Entfernt man eine Kante aus diesem Graphen, so ist fur den so entstandenen Graphen die Aussage schon bewiesen. Beim Hinzufugen der neuen Kante wird aber gerade der Ausgangsgrad eines einzigen Knotens um eins erhoht. Ebenso wird der Eingangsgrad genau eines Knotens um eins erhoht. Die Summen bleiben somit gleich.
147
Aufgabe 7: Die Mensa hat sich aus Rationalisierungsgrunden entschlossen, einen Essensausgabeautomaten zu benutzen. Der Automat (ein DFA=deterministic nite automaton ) soll Folgendes konnen: Es gibt vier Wahlmoglichkeiten: Eine Suppe, das Tagesgericht, das Tagesgericht mit Suppe und das Menu. Fur jede Wahl gibt es eine Taste, die nach Eingabe der entsprechenden Marken gedruckt werden muss. Es gibt genau drei Marken: Eine Tagesgericht-Marke (=T-Marke), sowie 0,50 DM und 1,00 DM-Marken, wobei zwei 0,50 DM-Marken wie eine 1,00 DM-Marke zahlen. Folgende Preise gelten in der Mensa: Gericht Suppe Tagesgericht Tagesgericht mit Suppe Menu
Preis 0,50 DM T-Marke T-Marke und 0,50 DM T-Marke und 1,00 DM
Will man nun ein Gericht haben, so muss man zuerst die richtigen Marken in den Automaten eingeben, und dann die entsprechende Taste drucken. Der Automat soll bei falscher Eingabe in einen Fehlerzustand ubergehen. Wie beim Automaten in der Vorlesung darf der Automat den "Fehler\ haben, dass er das leere Wort akzeptiert. Geben Sie den vollstandigen Automaten als Graphen an.
Losung zu Aufgabe 7: So sieht der Automat aus: ( = f50; 1; TM; S; T; TS; Mg; fs0; s50; s1; sT ; sT +S ; sM ; sF g; s0; fs0g; ). Dabei bedeutet 50 bzw. 1 eine 0,50 DM bzw. 1,00 DM-Marke, TM eine Tagesgerichtmarke und S, T, TS, M das Drucken der Suppen-, Tagesgericht-, Tagesgericht-und-Suppe- bzw. Menu-Taste.
ZU UBUNGSAUFGABEN 148 KAPITEL 7. LOSUNGSVORSCHL AGE
S,T,TS,M
50
s1
TM
TS
TM
TM
T
sT M
50
sT +S
50
sF 50,1,TM,S,T,TS
s50
1,TM
S 50
50,
,S, T ,S,T S,M ,M
1
M
TS, , T , 1,S
TM
s0
1,T,TS,M
sM
1
Aufgabe 8:
Konstruieren Sie zu folgenden Sprachen L einen DFA: (a) L = ; uber dem Alphabet = fA; B; C g. (b) L ist die Menge der korrekten Dualzahlen uber den Alphabet = f0; 1g. Korrekte Dualzahlen haben keine fuhrenden Nullen. Das leere Wort ist auch keine korrekte Dualzahl. (c) Sei = f0; 1g. Alle uber gebildeten Worter seien nun Dualzahlen, das leere Wort habe den Wert 0. L sei die Menge der Dualzahlen, die beim Teilen durch 5 den Rest 3 lassen.
Losung zu Aufgabe 8: (a) Damit ein DFA die leere Sprache erkennt, darf kein Pfad vom Anfangszustand in irgendeinen Endzustand fuhren. Insbesondere erkennen alle Automaten, die keinen Endzustand haben die leere Sprache. Der einfachste solche Automat sieht so aus:
149 A,B,C
s0 (b) Eine korrekte Dualzahl beginnt entweder mit einer 1, oder ist 0. Folgender Automat erkennt solche Zahlen: 0,1
s1
1
s0
0
0,1 0,1
s2
s3
(c) Dieser Automat lat sich mit 5 Zustanden realisieren. Jeder Zustand speichert, welchen Rest die bisher gelesene Folge beim Teilen durch 5 lat: 0
s0
1
0
1
1
0
0
0
s3
Aufgabe 9:
s1
1
s4
1
s2
Zeigen Sie, dass jede endliche Sprache regular ist.
ZU UBUNGSAUFGABEN 150 KAPITEL 7. LOSUNGSVORSCHL AGE
Losung zu Aufgabe 9:
Man kann beispielsweise einen NFA angeben, der diese Sprache akzeptiert. Sei dazu L = fa11 a12 a1n1 ; a21 a22 a2n2 ; : : : ; am1 am2 amnm g, dann sieht dieser so aus:
s0
s11
a11
s12
a12 a1n1
s1e
s21
a21
s22
a22 a2n2
s2e
am1
sm2 am2 amnm sme
sm1
Aufgabe 10:
Eine korrekte Real-Zahl sieht so aus: Zuerst kommt der Vorkommaanteil, dann kann durch einen Punkt getrennt ein Nachkommaanteil folgen und anschliessend kann noch ein Exponent folgen. Der Vorkommaanteil besteht aus einer beliebigen Anzahl von Ziern, aber mindestens einer. Der Nachkommaanteil besteht aus einer beliebigen Anzahl von Ziern { auch keine. Der Exponent besteht aus einem "E\ und einer beliebigen Anzahl von Ziern, aber mindestens einer. Ausserdem kann vor dem Vorkommaanteil sowie nach dem "E\ im Exponenten ein Minus stehen. Beispiele: 42, -1.234, 17., 1E100003 und 0000.E-0000 sind korrekte RealZahlen, 1E, .17, 1E1E1 und -Zwanzig sind keine korrekten Real-Zahlen. Geben Sie den Graphen eines NFA(=nondeterministic nite automaton ) an, der korrekte Real-Zahlen akzeptiert.
151
Losung zu Aufgabe 10: Sei Z = f0; 1; 2; 3; 4; 5; 6; 7; 8; 9g die Menge der Ziern. Dann sieht ein gesuchter NFA so aus:
Z s0
, s 1
Z
s2
Z .
s3
Z E
s4
, s 5
Z
s6
Aufgabe 11:
Gegeben sei folgender NFA N = (fa; b; cg; fs1; s2 ; s3g; s1; fs2g; ). b
s1
s2
b,c
a
c
s3
b,c
(a) Welche Sprache erkennt der Automat? (b) Konstruieren Sie mit Hilfe der Potenzmengenkonstruktion einen aquivalenten DFA.
Losung zu Aufgabe 11: (a) Der Automat erkennt alle Worter uber fa; b; cg, bei denen direkt nach jedem "a\ ein "b\ oder ein "c\ folgt. (b) So sieht der DFA aus:
152 KAPITEL 7. LOSUNGSVORSCHL a AGE ZU UBUNGSAUFGABEN a,b,c
; a 1; 2 b,c
1
a,c
2
b b,c
a
b
c
1; 3 b
a b
b
c 2; 3
a c
3 a c
153
Aufgabe 12:
Geben Sie zu folgenden Sprachen L einen regularen Ausdruck an und begrunden Sie kurz informal, warum dieser Ausdruck gerade die Sprache beschreibt. (a) Sei = f0; 1g. L enthalt alle Worter w 2 , die drei aufeinanderfolgende Nullen oder drei aufeinanderfolgende Einsen haben (oder beides). (b) Sei = f0; 1g. L enthalt alle Worter w 2 , die drei aufeinanderfolgende Nullen und drei aufeinanderfolgende Einsen haben. (c) Sei = fa; b; cg. L enthalt alle Worter w 2 , bei denen direkt vor einem a mindestens ein b kommt und direkt nach einem c mindestens zwei bs kommen.
Losung zu Aufgabe 12: (a) (0 [ 1)(000 [ 111)(0 [ 1). Begrundung: 000 oder 111 kommt vor, jedes Wort, das 000 oder 111 enthalt kann so gebildet werden. (b) (0 [ 1)(000(0 [ 1)111 [ 111(0 [ 1)000)(0 [ 1) . Begrundung: Es gibt zwei Moglichkeiten: 000 steht vor 111 oder 111 steht vor 000. Ausserdem mussen vorher, nachher und zwischendrin noch beliebige Kombinationen aus Nullen und Einsen stehen konnen. (c) (ba [ cbb [ b [ cbba) . (Hinweis an die Tutoren: Erkennt der Automat cbba 2 L?). Begrundung: Dass alle so gebildeten Wort die geforderte Eigenschaft haben, ist oensichtlich. Sei w 2 L. Dann kann man das Wort w so zerschneiden: Zuerst alle cbba ausschneiden. Dann alle ba und alle cbb. Diese konnen sich nicht mehr uberschneiden, da sonst cbba entstehen wurde, was aber schon ausgeschnitten wurde. Alle verbleibenden Schnipsel sind b.
Aufgabe 13:
Wir sagen, "zwei regulare Ausdrucke und sind gleich ( = )\, wenn sie dieselbe Sprache beschreiben. Zeigen Sie fur beliebige Ausdrucke und :
ZU UBUNGSAUFGABEN 154 KAPITEL 7. LOSUNGSVORSCHL AGE (a) = [ (b) ( [ ) = ( [ )
S k ) Hinweis: Beachten Sie, dass L( ) = L( 1 k=0 Losung zu Aufgabe 13: (a)
L( [ ) = L()L() [ L(!) 1 [
= L() = =
1 [ k=1
1 [
k=0
k=0
L()k [ L()
!
L()k [ L()
L()k
= L() (b) Sei w 2 L(( [ )). Dann lat sich w schreiben als: w = ( [ ) ( [ ) ( [ ) . Dies ist aquivalent zu w = ( [ ) ( [ ) ( [) , was wiederum zu w = ( [) ( [) ( [) aquivalent ist. Letzteres ist aber ein Wort aus L(( [ ) ). Die Umkehrung geht analog.
Aufgabe 14:
Zeigen Sie, dass die regularen Sprachen bezuglich Mengendierenz abgeschlossen sind. D.h. sind L1 und L2 regulare Sprachen, dann ist L1 n L2 auch regular.
Losung zu Aufgabe 14: Es ist L1 n L2 = L1 \ L2 . In der Vorlesung wurde schon gezeigt, dass re-
gulare Sprachen bezuglich Schnitt abgeschlossen sind. Um zu sehen, dass
155 sie auch gegen Komplementbildung abgeschlossen sind, muss man nur einen DFA nehmen, und alle Endzustande in Nicht-Endzustande verwandeln, und umgekehrt. Jedes Wort, dass vorher erkannt wurde, kann nun nichtmehr erkannt werden, und umgekehrt. (Dies hatte Herr Ottmann in der Vorlesung mal angedeutet.)
Aufgabe 15: Sei = f0; 1g. Konstruieren Sie induktiv1 einen NFA N , der L(10 [ (0 [ 11)1) akzeptiert.
Losung zu Aufgabe 15: So sieht der Automat aus, wenn man ihn wirklich induktiv konstruiert: 1
0
0
1
1
1
Aufgabe 16: Sei = f0; 1g und L = fw 2 : w enthalt drei aufeinanderfolgende Nulleng.
Geben Sie die A quivalenzklassen der Relation RL an.
D. h. zuerst konstruiere man einen Automaten, der L(1) erkennt, dann baue man daraus einen, der L(1 ) erkennt, dann einen, der L(0) erkennt, aus diesen beiden einen, der L(1 0) erkennt und so weiter. 1
ZU UBUNGSAUFGABEN 156 KAPITEL 7. LOSUNGSVORSCHL AGE
Losung zu Aufgabe 16: [] = fw 2 : w endet nicht mit einer 0 und enthalt nicht 000g [0] = fw 2 : w endet mit genau einer 0 und enthalt nicht 000g [00] = fw 2 : w endet mit genau zwei Nullen und enthalt nicht 000g [000] = fw 2 : w enthalt 000g Aufgabe 17:
Bei Aufgabe 5(b) auf dem letzten U bungsblatt war folgender Automat die korrekte Losung: a a,b,c
; a 1; 2
1
a,c
2
b b,c
a
b
c
b,c
1; 3 b
a b
b
c 2; 3
a c
3 a c
Berechnen Sie zu diesem DFA den Minimal-Automaten mit dem in der Vorlesung vorgestellten Algorithmus (state-merging ) und geben Sie ihn als Graphen an.
Losung zu Aufgabe 17:
Zuerst werden alle vom Anfangszustand nicht erreichbaren Zustande geloscht (1 und (1; 3)). 1. S1;1 = F = f2; (1; 2); (2; 3); g und S1;2 = S n F = f;; 3g bilden die Partition 1.
157 2. Nach einem weiteren Aufteilungsschritt hat man 2 = fS2;1; S2;2; S2;3g mit S2;1 = S1;1 = f2; (1; 2); (2; 3); g, S2;2 = f;g und S2;3 = f3g. 3. Danach ist keine weitere Aufteilung moglich. Mit den Tabellen, wie in der Vorlesung sieht das dann so aus:
s1;1 s1;2 f2; (1; 2); (2; 3); g f;; 3g a s1;2 s1;1 b s1;1 s1;1js1;2 c s1;1 s1;1js1;2 Und so sieht der Minimalautomat aus: b,c a s2;1 s2;3 b,c
s2;1 f2; (1; 2); (2; 3); g a s2;3 b s2;1 c s2;1 a,b,c a
s2;2
s2;2 s2;3 f;g f3g s2;2 s2;2 s2;2 s2;1 s2;2 s2;1
ZU UBUNGSAUFGABEN 158 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 18:
Welche der folgenden Sprachen uber = f0; 1g ist regular? Beweisen Sie Ihre Antwort. (a) L = f0k 1l 0k+l : k; l 2 N g (b) L = f02m : m 2 N g (c) L = fxyz : x; y 2 ^ jxj; jyj 1 ^ z = sp(x)g (d) L = fw 2 : w = sp(w)g Dabei bedeutet sp(w) das gespiegelte Wort von w.
Losung zu Aufgabe 18: (a) Die Sprache ist nicht regular. Beweis mit dem Pumping Lemma: Angenommen, die Sprache ist regular, dann existiert nach dem Pumping Lemma ein n, so dass sich alle Worter x 2 L der Lange n wie im Pumping Lemma zerlegen lassen. Betrachte speziell: 0k 1l0k+l mit k + l = n; l; k 1. Nach den ersten beiden Bedingungen muss v ein nichtleeres Teilwort von 0k 1l sein, also v = 0r 1s. Es ist entweder r = 0 oder s = 0, da ansonsten uv2w nicht in L liegt, was aber ein Widerspruch zur dritten Bedingung ist. Ist nun r = 0 oder s = 0, so liegt das Wort uw nicht in L, was ebenfalls ein Widerspruch zur dritten Bedingung ist. (b) Die Sprache ist nicht regular. Beweis mit dem Pumping Lemma: Angenommen, die Sprache ist regular, dann existiert nach dem Pumping Lemma ein n, so dass sich alle Worter x 2 L der Lange n+1n wie im Pumping Lemma zerlegen lassen. Betrachte speziell: x = 02 . Nach den ersten beiden Bedingungen muss v die Form 0k mit 1 nk+1 2n haben. Nach der dritten Bedingung muss dann aber auch 02 k in L liegen. Es ist aber 2n < 2n+1 k < 2n+1 und somit habe wir einen Widerspruch. (c) Die Sprache ist regular. Folgender regulare Ausdruck beschreibt die Sprache: 1(0 [ 1)(0 [ 1)1 [ 0(0 [ 1)(0 [ 1)0
159 (d) Die Sprache ist nicht regular. Beweis mit dem Pumping Lemma: Angenommen, die Sprache ist regular, dann existiert nach dem Pumping Lemma ein n, so dass sich alle Worter x 2 L der Lange n wie im Pumping Lemma zerlegen lassen. Betrachte speziell: x = 0n10n mit einer Zerlegung uvw gema dem Pumping Lemma. v hat nach den ersten beiden Bedingungen die Form 0k mit 1 k n. Nach der dritten Bedingung ist dann auch 0n k 10n 2 L, was nicht stimmt. Widerspruch.
Aufgabe 19: Sei L = fb; cg [ fak bm cm : k > 0; m > 0g (a) Zeigen Sie, da es eine naturliche Zahl n gibt, so da sich jedes Wort x 2 L mit jxj n in x = uvw zerlegen lat mit jvj 1, juvj n und uviw 2 L fur jedes i 2 N . (b) Zeigen Sie, da der Index von RL unendlich ist. (c) Was bedeutet dieses Ergebnis fur das Pumping-Lemma?
Losung zu Aufgabe 19: (a) Wahle ein beliebiges n fest. Sei x 2 L mit jxj n. Falls x 2 fb; cg, ist klar, dass die Behauptung gilt. Sei also x = ak bm cm mit k > 0 und m > 0. 1.Fall: k n: Wahle u := ak 1 ; v := a; w := bm cm. 2.Fall: k > n: Wahle u := an 1; v := a; w := ak nbm cm . In beiden Fallen ist uviw = ak 1+ibm cm 2 L; 8i 2 N . (b) Betrachte die Worte x = abi c und y = abj c mit i 6= j . Sei z = ci 1 2 . Dann gilt: xz = abi ci 2 L, aber yz = abj ci 2= L. Somit liegen x und y in verschiedenen A quivalenzklassen bzgl. RL. Daraus folgt, dass [abc]; [ab2 c]; [ab3 c]; : : : unendlich viele disjunkte A quivalenzklassen bzgl. RL sind.
ZU UBUNGSAUFGABEN 160 KAPITEL 7. LOSUNGSVORSCHL AGE (c) Das Pumping-Lemma enthalt nur eine notwendige Bedingung fur regulare Sprachen. Das Beispiel zeigt, dass die Bedingung nicht hinreichend ist. D. h. man kann damit nicht nachweisen, dass eine Sprache regular ist.
161
Aufgabe 20:
Stellen Sie sich vor, Sie sind mit dem Studium fertig und arbeiten bei einer Software-Firma. Diese hat fur die Chemiebranche ein Programmierprojekt ubernommen. Unter anderem soll dabei eine chemische Formel eingegeben werden konnen, die dann vom Programm bearbeitet wird. Ihnen ist nun die Aufgabe zugekommen, den Programmteil zu schreiben, der uberpruft, ob die Eingabe eine korrekte chemische Formel ist, oder nicht. Sie erinnern sich an Ihre Studiumszeit und wissen sofort, dass man sowas mit einer kontextfreien Grammatik machen kann. Doch dazu mussen Sie die kontextfreie Grammatik erst mal erstellen, denn Big Boss, der Chef des Chemiekonzerns, fur den dieses Programm sein soll, hat keine Ahnung vom Programmieren und deshalb nur umgangssprachlich beschrieben, was eine chemische Formel ist. Hier seine Aussagen: Chemische Formeln bestehen aus den Elementensymbolen. Diese konnen beliebig hintereinander geschrieben werden. Ausserdem konnen Elemente auch mit einer Zahl versehen werden, das bedeutet, dass das Element dann so oft in dem Molekul vorkommt. Um Schreibarbeit abzukurzen kann man auch ganze Teilformeln in Klammern schreiben und mit einer Zahl versehen. Big Boss hat auch gleich ein paar Beispiele mitgebracht: H2O, CO2, (CH3)42OH, (SO1SOHN)5 und (((C2H4)3)2)S(H2O)15 sind chemische Formeln. Auf Nachfrage hat er auch erklart, dass nach den Klammern keine Zahl stehen braucht, also z. B. ist auch (H2O) eine korrekte chemische Formel. (a) Geben Sie eine kontextfreie Grammatik an, die die Sprache der chemischen Formeln erzeugt. Die chemischen Elemente seien hierfur nur Wassersto, Kohlensto, Sticksto, Sauersto und Schwefel (mit den Elementsymbolen H, C, N, O und S). Die Grammatik soll auch chemische Formeln erzeugen, die zwar chemisch nicht moglich, aber trotzdem korrekt gebildet sind (z. B. H17). (b) Geben Sie die Ableitung fur die Formel (CH3)42OH an. (c) Wenn ihre kontextfreie Grammatik rechtslinear ist, dann haben Sie eine Fehler gemacht. Warum kann man sich da so sicher sein?
Losung zu Aufgabe 20:
ZU UBUNGSAUFGABEN 162 KAPITEL 7. LOSUNGSVORSCHL AGE (a) G = (V; ; R; S ) mit V = fFormel, ElementareFormel, ZahlbareFormel, Atom, Integer, Zier g, = fH; C; N; O; S; 0; 1; 2; 3; 4; 5; 6; 7; 8; 9g, S =Formel ) und R folgende Regeln enthalt: Formel ! ElementareFormel j ElementareFormel Formel ElementareFormel ! ZahlbareFormel Integer j ZahlbareFormel ZahlbareFormel ! Element j '(' Formel ')' Atom ! 'H' j 'C' j 'N' j 'O' j 'S' Integer ! Zier j Zier Integer Zier ! '0' j '1' j '2' j '3' j '4' j '5' j '6' j '7' j '8' j '9' (b) Formel ! ElementareFormel Formel ! ElementareFormel ElementareFormel Formel ! ElementareFormel ElementareFormel ElementareFormel ! ElementareFormel ElementareFormel ZahlbareFormel ! ElementareFormel ElementareFormel Atom ! ElementareFormel ElementareFormel H ! ElementareFormel ZahlbareFormel H ! ElementareFormel Atom H ! ElementareFormel OH ! ZahlbareFormel Integer OH ! ( Formel ) Integer OH ! ( Formel ) Zier Integer OH ! ( Formel ) Zier Zier OH ! ( Formel ) Zier 2OH ! ( Formel )42OH ! ( ElementareFormel Formel )42OH ! ( ElementareFormel ElementareFormel )42OH ! ( ZahlbareFormel ElementareFormel )42OH ! ( Atom ElementareFormel )42OH ! (C ElementareFormel )42OH ! (C ZahlbareFormel Integer )42OH ! (C ZahlbareFormel Zier )42OH ! (C ZahlbareFormel 3)42OH ! (C Atom 3)42OH ! (CH3)42OH (c) Die Sprache ist nicht regular. Eine von einer rechtslinearen Grammatik
163 erzeugte Sprache ware aber regular.
Aufgabe 21:
Konstruieren Sie zu jeder der folgenden beiden Sprachen uber dem Alphabet = fa; bg eine rechtslineare Grammatik, die diese Sprache erzeugt. (a) L1 = fw 2 j w enthalt mindestens drei ag (b) L2 = fw 2 nfg j w beginnt und endet mit demselben Buchstabeng
Losung zu Aufgabe 21: ! ! ! ! S ! (b) A ! B ! S (a) A B C
bS j aA bA j aB bB j aC aC j bC j a j b aA j bB j a j b aA j bA j a aB j bB j b
Aufgabe 22:
Sei G = (V; ; R; S ) eine kontextfreie Grammatik gegeben durch V = fS; A; B g, = fa; b; cg und R: S ! aSaa S !A A ! bbAcc A !B B ! bc (a) Geben Sie eine Menge L an, mit L = L(G). (b) Beweisen Sie, dass L = L(G) ist. D. h. zeigen Sie: w 2 L () w 2 L(G).
ZU UBUNGSAUFGABEN 164 KAPITEL 7. LOSUNGSVORSCHL AGE
Losung zu Aufgabe 22: (a) L = fanb2k+1 c2k+1a2n : n; k 2 N g (b) Fur den Beweis seien die Regeln mit (1) bis (5) bezeichnet. Sei w 2 L. Dann ist w = anb2k+1 c2k+1a2n, mit n; k wie unter (a) ange(2) geben. Folgende Ableitung konstruiert das Wort: S n mal ! (1) anSa2n ! (4) n 2k 2k 2n (5) n 2k+1 2k+1 2n anAa2n k mal ! (3) an b2k Ac2k a2n ! a b Bc a ! a b c a . Also ist auch w 2 L(G). Sei nun w 2 L(G). Dann beginnt die Ableitung mit Anwendung einer der Regeln (1) oder (2). Wurde einmal die Regel (2) angewandt, konnen nur noch die Regeln (3){(5) angewandt werden, da nun das Nichtterminal S im abgeleiteten Wort nie mehr vorkommt. Somit hat w die Form anw0a2n und w0 lasst sich aus den letzten drei Regeln herleiten. Der Schluss mit den Regeln (3) und (4) ist der gleiche wie bei den Regeln (1) und (2). Somit erhalt man: w0 hat die Form b2k w00c2k . w00 ist aber gerade bc. Setzt man dies zusammen, so erhalt man: w = anb2k+1 c2k+1a2n mit n; k 2 N . Also w 2 L.
Aufgabe 23:
Gegeben sei die kontextfreie Grammatik G = (V; ; R; S ) mit V = fS; A; B; C; D; E g, = fa; b; c; dg und R: S ! AB j c j A ! BaaA j CcB j b B ! Aj C ! AEa j EE D ! dj Konstruieren Sie eine zu G aquivalente kontextfreie Grammatik in Chomsky Normalform.
Losung zu Aufgabe 23: 1. (falls S annulierbar, Sneu hinzufugen)
165
2.
3.
4.
5.
6.
Sneu ! S j S ! AB j c j A ! BaaA j CcB j b B ! Aj C ! AEa j EE D ! dj (Eliminierung nutzloser Symbole: C; D; E und d sind nutzlos) Sneu ! S j S ! AB j c j A ! BaaA j b B ! Aj (Eliminierung von ) Sneu ! S j S ! AB j A j c A ! BaaA j aaA j b B !A (Mehr als zwei Terminal auf rechter Seite: neues Nichtterminal X ) Sneu ! S j S ! AB j A j c A ! BXXA j XXA j b B !A X !a (Eliminierung von Kettenproduktionen) Sneu ! j AB j BXXA j XXA j b j c S ! AB j c j BXXA j XXA j b A ! BXXA j XXA j b B ! BXXA j XXA j b X !a (Eliminierung nutzloser Symbole: S ist nutzlos) Sneu ! j AB j BXXA j XXA j b j c A ! BXXA j XXA j b B ! BXXA j XXA j b X !a
ZU UBUNGSAUFGABEN 166 KAPITEL 7. LOSUNGSVORSCHL AGE 7. (Auf CNF bringen) Sneu ! j AB j BD j XF j b j c D ! XE E ! XA F ! XA A ! BG j XI j b G ! XH H ! XA I ! XA B ! BJ j XL j b J ! XK K ! XA L ! XA X !a Auch ok (A und B konnte man auch noch zusammenfassen): Sneu ! j AB j BD j XE j b j c D ! XE E ! XA A ! BD j XE j b B ! BD j XE j b X !a
Aufgabe 24:
Gegeben sei die kontextfreie Grammatik G = (V; ; R; S ) mit V = fS; A; B; C g, = fa; bg und R: S ! SAB j A ! C j aba j b B ! A j ba C ! ab (a) Geben Sie eine Linksableitung des Wortes ababbb an. (b) Geben Sie einen Ableitungsbaum des Wortes ababbb an. (c) Zeigen Sie, dass G mehrdeutig ist, d. h. geben Sie ein Wort aus L(G) an, fur das es zwei verschiedene Linksableitungen gibt.
167
Losung zu Aufgabe 24: (a) S ! SAB ! SABAB ! ABAB ! abaBAB ! abaAAB ! ababAB ! ababbB ! ababbA ! ababbb (b)
S S
S
A B
A
B b A
a b a A
b
b (c) S ! SAB ! SABAB ! ABAB ! CBAB ! abBAB ! abCAB ! ababAB ! ababbB ! ababbA ! ababbb ist eine von der in (a) genannten verschiedene Linksableitung.
ZU UBUNGSAUFGABEN 168 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 25: Sei L = fai bj cidj : i; j 0g uber dem Alphabet = fa; b; c; dg. (a) Zeigen Sie, dass L kontextsensitiv ist, indem Sie eine kontextsensitive Grammatik angeben. (Sie durfen dabei benutzen, dass sich Regeln der Form AB ! BA in kontextsensitive Regeln umformen lassen.) Begrunden Sie, warum Ihre Grammatik gerade L erzeugt. Ansonsten kann Ihr Tutor/Ihre Tutorin diese Aufgabe nicht korrigieren (da dies zu zeitaufwendig ist) und Sie bekommen keine Punkte. (b) Zeigen Sie mit dem Pumping Lemma fur kontextfreie Sprachen, dass L nicht kontextfrei ist.
Losung zu Aufgabe 25: (a) Folgende kontextsensitive Grammatik (nach def. in Schoning) erzeugt L: S ! abcd j ac j bd j bc ! bbXc Xc ! cX Xd ! dd bc ! bY cc bY ! Y b aY ! aa Nach der De nition in der Vorlesung sieht die Grammatik z. B. so aus: S ! ABXCD j ABY CD j AC j BD j BXC ! BBXXC j BBY XC XC ! CX XD ! DD BY C ! BY XCC j BY Y CC BY ! Y B AY ! AA A !a B ! b C ! c D ! d Begrundung (erste Regelmenge): Die durch die erste Regel erzeugten Worte sind oensichtlich in L. Nun kann nur die zweite bzw. die funfte Regel angewandt werden. Im ersten Fall wird ein weiteres b und ein X erzeugt. Das X wandert nun mit den nachsten beiden Regeln durch
169 die c's hindurch und wird zu einem d. Genauso im zweiten Fall. Somit ist jedes erzeugte Wort in L. Das auch jedes Wort aus L erzeugt werden kann, sieht man leicht. (b) Angenommen, L ist kontextfrei. Sei nun n 2 N die Konstante aus dem Pumping Lemma. Dann lasst sich das Wort z = anbn cndn schreiben als z = uvwxy mit den Eigenschaften aus dem Pumping Lemma. Insbesonderen ist jvwxj n, woraus folgt, dass entweder vwx nur ein Terminalsymbol enthalt, oder eine der Formen aibj , bicj oder cidj mit i; j n hat. Pumpt man nun z auf, so ist oensichtlich entweder die Anzahl der a's ungleich der Anzahl der c's oder die Anzahl der b's ungleich der Anzahl der d's, was ein Widerspruch ist.
Aufgabe 26:
Gegeben sei ein DFA A = (S; ; s0 ; F; ). Konstruieren Sie eine PDA B mit nur einem Zustand, der die von A akzeptierte Sprache durch leeren Keller akzeptiert.
Losung zu Aufgabe 26:
Der PDA benutzt s0 als unterstes Kellersymbol. Dieses wird durch den Zustand ersetzt, in den der DFA ubergeht, wenn er das nachste Eingabesymbol gelesen hat. Ist der Zustand des DFA ein Endzustand, so kann spontan der Keller geleert werden, und somit das Wort erkannt. Sei B = (fqg; ; ; ; q; s0; fqg) mit = S und wie folgt: (q; a; s) (q; (s; a)) fur s 2 S und a 2 (q; ; s) (q; ) fur s 2 F
Aufgabe 27:
Geben Sie einen PDA A an, der korrekt geklammerte Ausdrucke uber dem Alphabet = f(; )g akzeptiert.
Losung zu Aufgabe 27: A = (fq0 ; q1g; ; fA; Z0g; ; q0; Z0; fq1g) mit wie folgt:
ZU UBUNGSAUFGABEN 170 KAPITEL 7. LOSUNGSVORSCHL AGE (q0; (; Z0) (q0 ; AZ0) (q0; (; A) (q0 ; AA) (q0; ); A) (q0 ; ) (q0; ; Z0) (q1 ; ) Dieser Automat funktioniert sowohl mit Akzeptieren durch leeren Keller als auch mit Akzeptieren durch Endzustand.
Aufgabe 28:
Sei L eine kontextfreie Sprache und R eine regulare Sprache. Zeigen Sie: L \ R ist eine kontextfreie Sprache. Hinweis: Nehmen Sie an, Sie haben einen PDA, der L akzeptiert und einen DFA, der R akzeptiert. Konstruieren Sie daraus einen "Kreuzprodukt-PDA\, der L \ R akzeptiert.
Losung zu Aufgabe 28:
Sei (Q1 ; ; ; ; q1; Z1; F1) der PDA und (Q2 ; ; ; q2 ; F2) der DFA. Der neue PDA M = (Q; ; ; 0 ; q; Z1; F ) sieht so aus: Q = Q1 Q2 , q = (q1 ; q2), F = F1 F2 und fur (p; q) 2 Q, a 2 [ fg und X 2 gilt: 0((p; q); a; X ) = f((p0; q0); a) : (p; a; X )(p0; a); q0 = (q; a)g
171
Aufgabe 29:
Ein Sprache L heit linear, falls L von einer Grammatik G = (V; ; R; S ) erzeugt wird, bei der alle Ableitungsregeln die Form A ! aB , A ! Ba, A ! a oder A ! mit A; B 2 V und a 2 haben. Zeigen Sie, dass die Klasse der regularen Sprachen echt in der Klasse der linearen Sprachen enthalten ist.
Losung zu Aufgabe 29:
Eine Sprache ist regular gdw. sie von einer rechtslinearen Grammatik erzeugt wird. Daraus folgt, da die Menge der regularen Sprachen eine Teilmenge der linearen Sprachen ist. Ein Beispiel fur eine lineare Sprache, die nicht regular ist: L = fanbn : n 2 N g wird von folgender Grammatik erzeugt: S ! aT j T ! Sb
Aufgabe 30:
Sei G eine Grammatik in Chomsky Normalform. Wieviele Schritte werden bei der Ableitung eines Wortes w 2 L(G) der Lange n > 0 in G gemacht?
Losung zu Aufgabe 30:
Fur jedes Terminal wird ein Schritt in der Ableitung gemacht. Jeder andere Schritt erzeugt genau ein neues Nichtterminal. Da n Nichtterminale benotigt werden, am Anfang aber nur eines da ist, macht diese insgesamt: 2n 1 Schritte.
Aufgabe 31:
Gegeben sei die folgende Grammatik G = (fS; A; B; C; Dg; fa; b; d; k; o; rg; S; R) mit R wie folgt: S ! AB B ! BA j BD j BB j k j d A ! DC j o C ! CC j CD j b j r j d D !a
ZU UBUNGSAUFGABEN 172 KAPITEL 7. LOSUNGSVORSCHL AGE U berprufen Sie mit Hilfe des Algorithmus aus der Cocke-Younger-Kasami, ob folgende Worte in L(G) liegen: kakao und abrakadabra.
Losung zu Aufgabe 31: kakao 2= L(G) und abrakadabra 2 L(G): B B B B k D / / a B B k D a o
D A A A S S S S S a C C C / / / / / b C C / / / / / B r D / / / / / / a B B B B B B und k D A A A / a BC BC BC A d D A a C b r
S / / / B AB BC A C C a
S / / / B AB BC A C C D
173
Aufgabe 32:
Ein Sprache L heit kanonisch aufzahlbar, wenn es einen Algorithmus gibt, der die Worte aus L in kanonischer Reihenfolge aufzahlt. Zeigen Sie: Eine Sprache ist genau dann entscheidbar, wenn sie kanonisch aufzahlbar ist. Hinweis: Ein Wort a kommt kanonisch vor einem Wort b, wenn entweder jaj < jbj oder, falls jaj = jbj, wenn a alphabetisch vor b kommt.
Losung zu Aufgabe 32: =) Ist die Sprache entscheidbar, so tut's folgender Algorithmus: Zahle
die Worte in kanonischer Reihenfolge auf und entscheide, ob das Wort in der Sprache ist. (= Bei der Umkehrung muss man zwei Falle beachten: Ist die Sprache endlich, so ist sie regular und somit aufzahlbar, insbesondere also auch kanonisch aufzahlbar. Ist die Sprache unendlich, so entscheided folgender Algorithmus, ob das Wort in der Sprache ist: Zahle alle Worte aus der Sprache kanonisch auf, bis ein Wort vorkommt, dass nach dem gesuchten Wort kommt. Wurde bis dahin das gesuchte Wort nicht gefunden, so ist es nicht in der Sprache, ansonsten schon. (Bei endlichen Sprachen funktioniert dieser Algorithmus nicht, da der Algorithmus, der kanonisch aufzahlt nach dem letzten Wort aus der Sprache in eine Endlosschleife geraten kann.)
Aufgabe 33:
Geben Sie ein RM-Programm an, welches die folgende if -Anweisung berechnet: if xi 6= 0 then M1 else M2
Die Semantik der if -Anweisung ist Folgende: Ist der Wert des Registers xi ungleich 0, so wird das RM-Programm M1 ausgefuhrt, ansonsten das RM-Programm M2 . Sie konnen dabei davon ausgehen, dass weder M1 noch M2 das Register xi verandern.
ZU UBUNGSAUFGABEN 174 KAPITEL 7. LOSUNGSVORSCHL AGE Hinweis: U berlegen Sie sich erst den Fall ohne den else -Teil. Berechnen Sie dann 1 falls x = 0 xj = 0 falls xi 6= 0 ; i
indem Sie zuerst xj auf 1 setzen und danach eine entsprechende if-then -Anweisung ausfuhren.
Losung zu Aufgabe 33:
O.B.d.A. sei i = 1 und die Register x2 und x3 haben zu Beginn den Wert 0 und werden von M1 und M2 nicht benutzt. (s1a2 a3)1 (s3a1)3 Kopiert den Wert von x1 in das Register x2 (M1(s1 )1)1 Fuhrt das Programm M1 aus, falls x1 6= 0 ist. Damit die Schleife terminiert wird danach x1 auf 0 gesetzt. a3 Setze x3 auf 1. (s3s2)2 Falls x2 6= 0 setze x3 auf 0. (M2(s3 )3)3 Fuhrt das Programm M2 aus, falls x3 6= 0 ist. Damit die Schleife terminiert wird danach x3 auf 0 gesetzt.
Aufgabe 34:
Geben Sie ein RM-Programm an, welches die Funktion div berechnet. Der Funktion div werden zwei Argumente x und y ubergeben und sie liefert den ganzteiligen Anteil von xy zuruck, falls y 6= 0 ist, und ist ansonsten unde niert. Gehen Sie von folgender Struktur aus: x, y, 0 # (Ihr Programm) x, y, x div y, 0 Um das Programm ubersichtlicher zu gestalten, durfen Sie den Befehl copy (xi; xj ) (kopiert den Inhalt von Register xi in das Register xj ) und die if -Anweisung (s. o.) verwenden.
Losung zu Aufgabe 34:
Das Programm zieht solange von x den Wert y ab, bis x = 0 ist und zahlt dabei mit, wie oft dies ging. Hierbei wird erst y 1 abgezogen, dann getestet, ob x 6= 0 gilt, und dann nochmal 1 abgezogen.
175 if x2 6= 0 then copy (x1 ; x4 )copy (x2 ; x5 ) ( s2(s1 s2)2 if (x1 6= 0) then a3
s1
copy (x5 ; x2 ) )1 copy (x4 ; x1 )(s4 )4 (s5 )5 else a2(a2 )2
Originalwerte sichern. Beginn von groer Schleife. Berechne x1 (x2 1). Falls x1 6= 0, war x1 x2 und der Ergebniswert in x3 kann um eins erhoht werden. Korrigiere den Wert von Register x1 Restauriere Register x2 . Wiederhole solange, bis Register x1 = 0 ist. Aufraumen. Endlosschleife.
Aufgabe 35:
Ein LOOP-Programm ist wie folgt de niert:
ai, si sind LOOP-Programme mit der selben Semantik wie bei den RM-Maschinen.
Sind M1 und M2 LOOP-Programme, so ist auch M1 M2 ein LOOP-Programm, mit der Semantik, dass zuerst M1 ausgefuhrt wird und dann M2 .
Ist M ein LOOP-Programm, so ist auch loop xi do M end ein LOOP-Programm mit der Semantik, dass das Programm M genau so oft ausgefuhrt wird, wie der Wert im Registers xi zu Beginn der Schleife angibt. Insbesondere andert sich die Anzahl der Durchlaufe nicht, wenn M das Register xi verandert.
Zeigen Sie induktiv: Jede primitiv rekursive Funktion lasst sich durch ein LOOP-Programm berechnen. Gehen Sie dazu wie folgt vor:
Zeigen Sie: Cnk , Unk , add und mult sind LOOP-berechenbar (= es gibt ein LOOP-Programm, welches das Ergebnis berechnet).
Zeigen Sie: Simultanes Einsetzen LOOP-berechenbarer Funktionen liefert wieder eine LOOP-berechenbare Funktion. Geben Sie hierbei nur grob an, wie der Algorithmus funktioniert.
ZU UBUNGSAUFGABEN 176 KAPITEL 7. LOSUNGSVORSCHL AGE
Zeigen Sie: Primitive Rekursion LOOP-berechenbarer Funktionen liefert wieder eine LOOP-berechenbare Funktion. Geben Sie auch hier nur grob an, wie der Algorithmus funktioniert.
Anmerkung: Die Umkehrung der Aussage gilt ebenfalls, ist aber etwas schwerer zu zeigen, da das Ergebnis eines LOOP-Programmes auch aus mehr als einem Wert bestehen kann. Wer sich dafur interessiert, kann dies im Buch "Theoretische Informatik \ von Erk und Priese nachlesen.
Losung zu Aufgabe 35: Cnk (x1 ; : : : ; xn) ist LOOP-berechenbar: Wie in der Vorlesung: a| n+1 {z an+1}. k
mal
Unk (x1 ; : : : ; xn) ist LOOP-berechenbar: loop xk do an+1 end add (x1 ; x2 ) ist LOOP-berechenbar: loop x1 do a3 end loop x2 do a3 end mult (x1 ; x2 ) ist LOOP-berechenbar: loop x1 do loop x2 do a3 end end
Falls g und hi ; 1 i k LOOP-berechenbar sind durch LOOP-Programme G und Hi, so ist auch f (x1 ; : : : ; xn) = g(h1(x1; : : : ; xn); : : : ; hk (x1; : : : ; xn)) LOOP-berechenbar: Wie in der Vorlesung nehmen wir an, dass die Programme G und Hi nur die Register x1 bis xm benutzen. Das LOOP-Programm, welches f berechnet sieht so aus:
{ Kopiere die Werte der Register x1 bis xn in die Register xm+1
bis xm+n. { Fur alle 1 i k berechne hi(x1 ; : : : ; xn) durch Ausfuhren des Programms Hi und merke diesen Wert im Register xm+n+i. Kopiere nach jeder Berechnung die Werte der Register xm+1 bis xm+n wieder in die Register x1 bis xn zuruck. { Kopiere nun die Ergebnisse dieser Berechnungen in die Register x1 bis xk und fuhre das Programm G aus. { Raume entsprechend auf.
177
Falls g und h LOOP-berechenbar sind durch LOOP-Programme G
und H , so ist auch f berechenbar, de niert durch f (x1 ; : : : ; xn; 0) = g(x1; : : : ; xn) und f (x1; : : : ; xn; y+1) = h(x1 ; : : : ; xn; y; f (x1; : : : ; xn; y)), LOOP-berechenbar: Wie in der Vorlesung nehmen wir an, dass die Programme G und H nur die Register x1 bis xm benutzen. Das LOOP-Programm, welches f berechnet sieht so aus: (Im Folgenden heit "merke\, dass der Wert in ein noch nicht benutztes Register mit Index > m + 1 kopiert wird. Das Register xm+1 wird benutzt, um den Wert von y zu hochzuzahlen.)
{ Merke die Register x1 bis xn+1 . Letzteres sei in Register xw gemerkt. { Fuhre G aus, merke das Ergebnis in xv . { loop xw do am+1 Restauriere die Register x1 bis xn . Kopiere xm+1 nach xn+1 und xv nach xn+2 . Fuhre H aus, merke das Ergebnis in xv . end { Raume entsprechend auf.
ZU UBUNGSAUFGABEN 178 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 36:
Zeigen Sie, dass die durch
0
falls n > 0 1 falls n = 0 de nierte Funktion primitiv rekursiv ist.
(n) :=
Losung zu Aufgabe 36:
Die Funktion ist primitiv rekursiv, denn (0) = 1 = C01 und (n + 1) = 0 = C20(n; (n)).
Aufgabe 37:
Gegeben sei eine zweistellige primitiv rekursive Funktion g. Zeigen Sie dass
G(x; y) := primitiv rekursiv ist.
x X i=0
g(i; y)
Losung zu Aufgabe 37: G(0; y) = f (y) := g(C01(y); U11(y)) G(x + 1; y) = G(x; y) + g(x + 1; y) = h(G(x; y); x; y) mit h(a; b; c) = add(a; g(add(b; 1); c)) = add(U13 (a; b; c); g(add(U23(a; b; c); C01); U33 (a; b; c)))
Aufgabe 38:
Zeigen Sie, dass die Funktion px x eine Quadratzahl ist w(x) := unde niert falls sonst partiell rekursiv ist. Beweisen Sie dieses
179 (a) unter Verwendung von bedingter Iteration und (b) mit Hilfe des -Operators. Sie konnen dabei benutzen, dass die Funktionen u(x; y) := jx yj und
v(x) :=
0
falls x = 0 x 1 sonst
primitiv rekursiv sind.
Losung zu Aufgabe 38: (a)
g(x; y) :=
0
falls y = 0 y 1 falls y > 0
Da g(x; y) = v(U22(x; y)) ist, ist g primitiv rekursiv. De niere nun f (x; y) durch bedingte Iteration: y jx y2j = 0 f (x; y) = f (x; g(x; y)) falls sonst bzw. in der alternativen Schreibweise f(x,y): fwhile jx y2j = 6 0 do y = g(x; y); return y;g Dann gilt w(x) = f (x; x), denn: Fur x = 0 liefert f gleich im ersten Schritt f (0; 0) = 0, da j0 02j = 0. Falls x 6= 0 eine Quadratzahl ist, wird aus f (x; x)pdurch die bep dingte Iteration aufgrund von x y Induktionsschluss: Sei fur x die Aussage schon bewiesen. I:A: Dann ist A(x + 1; 0) = A(x; 1) > 1 > 0 und A(x + 1; y + 1) = I:A: A(x; A(x + 1; y)) A(x + 1; y) + 1. Durch y + 1-malige Anwendung dieser Formel folgt: A(x + 1; y + 1) A(x + 1; 0) + y + 1 > y + 2 > y + 1.
ZU UBUNGSAUFGABEN 182 KAPITEL 7. LOSUNGSVORSCHL AGE
Aufgabe 40:
Professor Siebzehn versucht nun schon seit Wochen, ein (Registermaschinen)Programm zu schreiben, welches von einem beliebigen RegistermaschinenProgramm mit Eingabe x; 0 entscheidet, ob dieses die Ausgabe 17; 0 berechnet oder nicht. Bisher allerdings ohne Erfolg. Beweisen Sie, dass es ihm nicht gelingen wird.
Losung zu Aufgabe 40:
Nach dem Satz von Rice muss man nur zeigen, dass die Menge aller RegistermaschinenProgramme, die 17; 0 berechnen weder leer ist, noch die Menge aller RegistermaschinenProgramme. Sei S die Menge dieser Programme. Das RM-Programm (s1)1a1 a1 a1a1 a1 a1a1 a1 a1a1 a1 a1a1 a1a1 a1 a1 ist in S , das RM-Programm (s1)1 nicht.
Aufgabe 41: (a) Zeigen Sie, dass es algorithmisch nicht moglich ist, fur ein beliebiges Java-Programm zu entscheiden, ob alle Variablen initialisiert sind. (b) Gegeben ist folgendes Java-Programm: public class Frage { public static void main(String[] args) { int i; if (i==2) i=3; } }
Wenn man es compilieren will, beschwert sich der Compiler, dass i wohl nicht initialisiert sei. Nach Aufgabenteil (a) sollte der Compiler nicht in der Lage sein, dies zu testen. Wie erklaren Sie sich, das er es dennoch tut?
Losung zu Aufgabe 41:
183 (a) Ein Programm welches keine Variablen hat, hat die Eigenschaft, dass alle Variablen initialisiert sind. Das Programm aus Aufgabenteil (b) hat diese Eigenschaft nicht. Nach dem Satz von Rice (in Zusammenhang mit der Churchen These) ist es somit algorithmisch nicht moglich zu testen, ob in einem beliebigen Java-Programm alle Variablen initialisiert sind. (b) Die Java-Spezi kation verlangt, dass alle Variablen so initialisiert sind, dass der Compiler es entscheiden kann. In den anderen Fallen beschwert er sich mit Variable i may not have been initialized.
Dies liegt daran, dass das Testen auf Initialisierung der Variablen nur semientscheidbar ist. (Es wird immer korrekt entschieden, wenn die Variable nicht initialisiert ist, aber nicht anderstrum.) In folgendem Beispiel ist die Variable i initialisiert, aber javac beschwert sich trotzdem, da hier der Algorithmus versagt: public class Antwort { public static void main(String[] args) { int i; int j=2; if (j==2) i=3; if (i==2) i=3; } }
Aufgabe 42:
Geben Sie fur jedes der beiden folgenden Postschen Korrespondenzprobleme entweder eine Losung an, oder beweisen Sie, dass keine Losung existiert: (a) f(aaaaa; a); (aa; aaaaa)g (b) f(ab; aba); (baa; aa); (aba; baa)g
ZU UBUNGSAUFGABEN 184 KAPITEL 7. LOSUNGSVORSCHL AGE
Losung zu Aufgabe 42: (a) Wende das erste Paar 4-mal und das zweite Paar 3-mal an (ergibt jeweils 23 a). (b) Das erste Wortpaar kann nicht angewendet werden, da sonst auf der rechten Seite mehr a als auf der linken Seite sind. Dieser U berschuss kann mit den anderen Paaren nicht wieder entfernt werden. Die anderen beiden konnen aber nicht als erstes Wortpaar benutzt werden, da sie unterschiedliche erste Buchstaben haben.
Aufgabe 43: (a) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das die Addition zweier Zahlen in Unardarstellung durchfuhrt. Kommentieren Sie Ihr Programm. (b) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das eine Zahl in Binardarstellung um eins erhoht. Kommentieren Sie Ihr Programm. (c) Schreiben Sie ein Turingmaschinen-Programm (in Pascal-ahnlicher Notation), das eine Zahl in Binardarstellung um eins erniedrigt. Sie konnen dabei davon ausgehen, dass die Zahl ungleich null ist. Kommentieren Sie Ihr Programm. (d) Verwenden Sie die Aufgabenteile (b) und (c) um ein TuringmaschinenProgramm (in Pascal-ahnlicher Notation) zu schreiben, das zwei Zahlen in Binardarstellung addiert. Kommentieren Sie Ihr Programm. (e) Skizzieren Sie, wie ein Turingmaschinen-Programm vorgeht, welches nach der Schulmethode (d. h. ziernweise) zwei Zahlen in Binardarstellung addiert. (f) Vergleichen Sie den Zeit- und Platzbedarf der Turingmaschinen aus den Aufgaben (a), (d) und (e) in Abhangigkeit vom Platzbedarf der Eingabe.
185 Hinweis: Die Programme durfen die Eingabe loschen und wie die Ein- und Ausgabe genau aussieht (Position des Programmkopfes etc.) konnen Sie sich selber aussuchen.
Losung zu Aufgabe 43: (a) Seien die beiden Zahlen a und b. Das Eingabeband sieht dann vor der Berechnung so aus: 1| {z 1} 1| {z 1} . Der Kopf stehe auf der ersten 1. a
Folgendes Programm tut's:
b
while (AF==1) do r; print(1); while (AF==1) do r; l; print(0);
{ Gehe zum Ende der ersten Zahl. } { Schreibe 1 in die Luecke. } { Gehe zum Ende der zweiten Zahl. }
l; while (AF==1) do l; r;
{ Gehe zum Anfang. }
{ Entferne die letzte 1. }
(b) Der Kopf stehe auf der letzten Zier der Zahl. while (AF==1) do print(0); l; print(1);
{ Suche die letzte Null oder * und mache aus } { ihr eine Eins und aus allen folgenden } { Ziffern eine Null. }
(c) Der Kopf stehe auf der letzten Zier der Zahl. while (AF==0) do print(1); l; print(0);
{ Suche die letzte Eins und mache aus } { ihr eine Null und aus allen folgenden } { Ziffern eine Eins. }
(d) Die beiden Zahlen seien durch getrennt auf dem Band, der Kopf be nde sich auf dem ersten Zeichen der ersten Zahl. Der Rest des Bandes sei mit Sternchen verziert.
ZU UBUNGSAUFGABEN 186 KAPITEL 7. LOSUNGSVORSCHL AGE while (AF!=*) do r; r; while (AF!=*) do r; l; while (AF!=*) while (AF==0) do l; if (AF!=*) then print(0); r; while (AF==0) print(1); r;
{ Gehe zum Ende der zweiten Zahl. }
{ Suche letzte 1 in zweiter Zahl }
{ Keine gefunden, dann fertig. } { Ansonsten ziehe von zweiter Zahl eins ab.
l; while (AF!=*) l; l; while (AF==1) print(0); l; print(1);
{ Gehe zu erster Zahl. }
while (AF!=*) r; r; while (AF!=*) r; l;
{ Gehe ans Ende der zweiten Zahl. }
r; while (AF!=*) print(*); r; while (AF==*) l; while (AF!=*) l; r;
{ Addiere 1. }
{ Loesche Zweite Zahl. }
{ Gehe zum Anfang der ersten Zahl. }
(e) Zuerst wird das Ende jeder Zahl markiert (mit einem zusatzlich eingefugten Sternchen). Die TM geht nun so vor, sie liest die markierte
187 Zier der zweiten Zahl, wandert zur markierten Zier der ersten Zahl und passt diese dann an. Dabei merkt sie sich { im Zustand, bzw. bei Pascal-ahnlicher Notation durch die Position im Programmablauf { ob ein U berlauf stattgefunden hat oder nicht. Desweiteren markiert sie jeweils die Zier links der bisher markierten Zier. Dies fuhrt sie solange durch, bis sie ans Ende der zweiten Zahl angelangt ist. Bei der ersten Zahl werden fuhrende Sternchen als Nullen interpretiert. Zu guter letzt muss, falls noch ein U berlauf vorhanden ist, ein letztes Mal addiert werden. (f) Sei n der Platzbedarf der Eingabe (nicht die groe der Zahlen a oder b): Platz Zeit (a) O(n) O(n) (d) O(n) O(2n n) (e) O(n) O(n2) Platzbedarf: Bei allen Programmen wird nur konstant viel mehr Platz benotigt, als von der Eingabe sowieso schon verbraucht wird. Zeitbedarf: (a) Geht einmal nach rechts und einmal nach links, also linear viel. (d) Die auere Schleife wird b-mal ausgefuhrt, also O(2n)-mal. In der Schleife wird konstant oft nach links und rechts gegangen. Insgesammt ergibt sich O(2n n). (e) Die Schleife wird fur jede Zier der zweiten Zahl einmal durchgefuhrt also O(n) mal. Innerhalb der Schleife wird der Kopf konstant oft nach links und rechts durch die Eingabe bewegt, insgesamt also O(n2) mal.
Aufgabe 44: Zeigen Sie, dass das Postsche Korrespondenzproblem fur Worter uber einem Alphabet mit nur einem Symbol entscheidbar ist.
ZU UBUNGSAUFGABEN 188 KAPITEL 7. LOSUNGSVORSCHL AGE
Losung zu Aufgabe 44: Aus dem Problem f(ap1 ; aq1 ); : : : ; (apn ; aqn )g kann folgende Gleichung erzeugt werden:
p1 x1 + : : : + pn xn = q1 x1 + : : : qn xn Es gilt: Jede Losung (x1 ; : : : ; xn) dieser Gleichung liefert eine Losung des PKP, namliche x1 -mal Wortpaar 1, . . . , xn-mal Wortpaar n. Die Umkehrung gilt ebenfalls. Ob diese Gleichung eine Losung hat, kann dann z. B. mit dem chinesischen Restsatz bestimmt werden.
Aufgabe 45: 1. Seien s : N ! N und M eine Turingmaschine mit jQj Zustanden und jj Zeichen im Bandalphabet, die angesetzt auf Eingaben der Lange n nur die Felder 1; : : : ; s(n) auf dem Eingabeband benutzt. Beweisen Sie: Wenn M angesetzt auf ein Wort w der Lange n stoppt, dann stoppt M spatestens nach jQj jjs(n) s(n) Schritten. 2. Argumentieren Sie mit Hilfe von (a), dass das Halteproblem fur speicherplatzbeschrankte Turingmaschinen entscheidbar ist, wenn die Speicherplatzschranke berechenbar ist.
Losung zu Aufgabe 45: 1. Fur die platzbeschrankte TM gilt: Die maximale Anzahl von Zustanden ist jQj, die maximale Anzahl von Bandbeschriftungen ist jjs(n), die maximale Anzahl der Kopfpositionen ist s(n). Da es also nur jQjjjs(n) s(n) TM-Kon gurationen gibt, lauft M nach spatestens jQjjjs(n) s(n) Schritten automatisch in eine Schleife, 2. Das Halteproblem H = fhM iw j M halt auf wg ist fur s(n)-speicherplatzbeschrankte TM M dadurch entscheidbar, dass zuerst die Speicherplatzschranke s(n) berechnet und nach jQj jjs(n) s(n) simulierten Schritten die Ausgabe hM iw 2= H geliefert wird.
189
Aufgabe 46: Beweisen Sie:
1. Die Klasse P ist unter Vereinigung, Produkt und Komplementbildung abgeschlossen. 2. Die Klasse NP ist unter Vereinigung und Produkt abgeschlossen. 3. NP ist genau dann unter Komplementbildung abgeschlossen, wenn es eine NP -vollstandige Menge A gibt mit A 2 NP .
Losung zu Aufgabe 46: 1. Vereinigung, Produkt: Ausfuhrung der die beiden Sprachen L1 , L2 aus P durch die in Polynomialzeit haltenden DTMs M1 , M2 . Wenn w 2 L1 oder w 2 L2 so w 2 L1 [ L2 . Falls w1 2 L1 und w2 2 L2 , so w1w2 2 L1 L2 . Komplementierung wird erreicht durch die Umkehrung der Zielzustande F 0 = Q n F . Alles ist in Polynomialzeit in jwj durchzufuhren. 2. Produkt: Ausfuhrung der die beiden Sprachen L1, L2 aus P durch die in Polynomialzeit haltenden NTMs M1 , M2 . Wenn w 2 L1 oder w 2 L2 , so w 2 L1 [ L2 . Falls w1 2 L1 und w2 2 L2, so w1 w2 2 L1 L2 . Alles ist in Polynomialzeit in jwj durchzufuhren. 3. \=)": Angenommen, fur alle L 2 NP folgt, dass auch L 2 NP ist, dann gilt dies insbesondere auch fur jede NP -vollstandige Menge A. \(=": Sei A NP -vollstandig mit A 2 NP . Dann gilt fur alle L 2 NP , dass L p A und somit L p A. Da A 2 NP folgt daraus, dass L 2 NP fur alle L 2 NP .
Aufgabe 47:
De nition: Vertex Cover (VC). Fur einen ungerichteten Graphen G = (V; E ) und eine Zahl k 2 f0; : : : ; jV jg soll entschieden werden, ob der Graph eine Knotenmenge V 0 V mit jV 0j k enthalt, die G uberdeckt, d.h. fur alle e 2 E soll gelten e \ V 0 6= ;.
ZU UBUNGSAUFGABEN 190 KAPITEL 7. LOSUNGSVORSCHL AGE Beweisen Sie: VC ist NP -vollstandig. Hinweis: Welche NP -vollstandigen Probleme in Bezug auf Graphen kennen Sie?
Losung zu Aufgabe 47:
Die vier Schritte in die NP-vollstandigkeit (jeweils zwei Punkte): 1. Naturlich ist VC in NP enthalten. Rate eine Knotenmenge V 0 2 V nichtdeterministisch und veri ziere in polynomieller Zeit, ob V 0 eine Knotenuberdeckung darstellt. 2. Wahle CLIQUE als NP vollstandiges Problem. 3. Polynomielle Transformation. Sei G = (V; E ) und k eine Eingabe fur CLIQUE. De niere den Komplementargraphen Gc = (V; E c), der genau die Kanten enthalt, die G nicht enthalt und k0 = n k als Eingabe fur VC. 4. Eine Knotenmenge V 0 V ist in G genau dann ein Vertex Cover, wenn es zwischen Knoten auerhalb von V 0 keine Kanten gibt, also V V 0 in Gc eine Clique bilden.