Sie sind auf Seite 1von 3

EBKfS - Heimubung 7

Johannes Brandt, Markus Kuhn 4. Dezember 2011 Aufgabe 1


a) L1 , L2 N P = polinomielle Verizierer V1 , V2 Es sei L := L1 L2 Zu zeigen ist also, polinomieller Verizierer V , sodass gilt: w L = c, sodass V die Eingabe w, c akzeptiert. Also konstruieren wir eine DTM wie folgt: 1. Simuliere V1 mit der Eingabe w, c : akzeptiert V1 , so akzeptiere, sonst fahre fort. 2. Simuliere V2 mit der Eingabe w, c : akzeptiert V2 , so akzeptiere, sonst fahre fort. 3. Lehne ab. Korrektheit Die Tatsache, dass fr L1 , L2 bereits bewiesen ist, dass es fr sie Verizierer gibt, und sie u u somit in N P liegen, erleichtert den Beweis. In Schritt 1 wird V1 mit Eingabe w, c simuliert. Das bedeutet auch, dass V1 zunchst c a auf die korrekte Kodierung untersucht, V1 lehnt also w, c in jedem Fall ab, wenn w mit Zertikat c L1 , gleichsam wird akzeptiert, falls w mit Zertikat c in L1 liegt. Dann wird / auch V akzeptieren, da das bedeuten wrde, dass w, c in L liegt. u In Schritt 2 wird V2 mit Eingabe w, c simuliert. Der Eekt ist der selbe wie in Schritt 1. Da Schritt zwei nur erreicht wird, wenn V1 die Eingabe nicht akzeptiert hat, gilt es nmlich a noch zu prfen, ob w, c in L2 liegt. Das bedeutet: Wenn V2 die Eingabe akzeptiert, so liegt u w, c in L2 und somit auch in L = L1 L2 . Also akzeptiert V die Eingabe. Schritt 3 wird nur erreicht, wenn keiner der beiden Verizierer V1 , V2 die Eingabe akzeptiert hat, was bedeutet, dass die Eingabe nicht in L liegt, also lehnt V die Eingabe ab. = Der Verizierer V fr L arbeitet korrekt. u

Laufzeit Es muss noch gezeigt werden, dass V in polinomieller Zeit arbeitet. Man wei, dass V1 fr u ein k N in polinomieller Zeit O(nk ) arbeitet. Gleiches gilt fr ein l N und O(nl ) fr V2 . u u Die lngste Laufzeit wird V also ohne Zweifel dann haben, wenn die Eingabe erst in Schritt a 2 akzeptiert, oder in Schritt 3 abgelehnt wird. Somit lsst sich die Laufzeit von V mit der a oberen Schranke O(nk ) + O(nl ) + O(1) = O(nk + nl ) = O(nmax{k,l} ) fr n = |w| abschtzen. u a

Da nun gezeigt ist, dass es einen polynomiellen Verizierer fr L gibt, der die Eingabe w, c u akzeptiert, folgt daraus, dass L polynomiell verizierbar ist und somit in der Klasse N P liegt.

b) Um zu zeigen, dass die Sprache L := L1 L2 in N P liegt, konstruieren wir eine NTM N polynomieller Laufzeit, die L entscheidet. Hierzu ist durch die Denition von L gegeben, dass Verizierer V1 , V2 fr L1 , L2 existieren, die mit Eingabe u, c1 , v, c2 in polynomieller u k l Zeit |u| , |v| rechnen, wobei k, l N. N mit Eingabe w: 1. Schreibe |w| Einsen auf ein Band 3, welches von nun an zum Dekrementieren benutzt werden soll und lasse Kopf 3 eine Position hinter der letzten Eins des Bandes. Sei die Anzahl der Einsen auf Band 3 die Zhler-Variable i (Ist w = , verbleibt der Lesekopf a auf dem Startsymbol und schreibt keine Eins auf das Band). 2. Streiche die aktuell von Kopf 3 gelesene 1, sodass sich i um Eins verringert und gehe mit Kopf 3 nach links (wenn Blank gelesen wird, gehe nur nach links). 3. Erzeuge nichtdeterministisch ein Wort c1 der Lnge hchstens |w1 . . . wi | . a o 4. Simuliere V1 mit Eingabe ui , c1 , wobei ui := w1 w2 . . . wi . 4.1. V1 akzeptiert: Fahre fort. 4.2. V1 lehnt ab: Fahre fort mit Schritt 2. 5. Erzeuge nichtdeterministisch ein Wort c2 der Lnge hchstens (|w| i) . a o 6. Simuliere V2 mit Eingabe vi , c2 , wobei vi := wi+1 wi+2 . . . w|w| . 6.1. V2 akzeptiert: Akzeptiere. 6.2. V2 lehnt ab: Fahre fort. 7. Uberprfe, ob das von Kopf 3 gelesene Symbol das Startsymbol ist. u 7.1. Ja: Lehne ab. 7.2. Nein: Fahre fort mit Schritt 2. Korrektheit Das grundlegende Prinzip ist, alle Teilwrter w = ui vi , i {0, . . . , |w|} mit den Verizierern o von L1 und L2 zu Testen, so dass wenn beide Verizierer akzeptieren, ein gltiges Wort aus u L gegeben ist. Anfangen wird die NTM mit den Teilwrtern u|w| = w1 . . . w|w| und v|w| = . Zu beginn ist o die Zhl-Variable i also auf die Lnge des Wortes w gesetzt. Somit wird also auch uberprft, a a u ob v eventuell das leere Wort ist und u = w. Anschlieend folgt mit Schritt 2 der Beginn der Schleife, die dafr sorgt, dass jedes Paar u ui vi = w als Kombination getestet wird. Es wird also gewhrleistet, dass i pro Schleifena durchlauf um Eins reduziert wird. Somit kann auch wirklich jede Teilung von w untersucht werden. In Schritt 3 wird nichtdeterministisch ein Zertikat c1 fr das aktuelle ui erzeugt, um u dieses anschlieend in Schritt 4 mit dem Verizierer zu testen. Lehnt dieser ab, so ist ui L1 = w L und es kann in Schritt 2 die nchsten Teilung berechnet werden, / / a um diese zu testen. Akzeptiert V1 jedoch, so ist ui L1 (nach Denition von L) und die NTM muss nun noch uberprfen, ob vi L2 . Also wird zunchst ein c2 nichtdeterministisch u a erzeugt, um in Schritt 6 mit V2 die Eingabe vi , c2 zu testen. Akzeptiert dieser auch, so ist 2
l k

sichergestellt, dass vi L2 und ui L1 , woraus folgt, dass w in L liegt, da dieser Schritt nur erreicht wird, wenn vi L1 (sichergestellt durch Schritt 4). Ansonsten gelangt die NTM zu Schritt 7. Liet der Lesekopf 3 in Schritt 7 das Startsymbol, so wurde keine gltige Aufteilung von w u gefunden, da i bereits jeden Wert von 0 bis |w| angenommen hatte und somit jede gltige u Teilung von w = ui vi , i {0, . . . , |w|} untersucht wurde. Deshalb ist w L, da hierfr / u ui L1 und vi L2 gelten muss.Wre w ein Wort aus L, so htte die NTM bereits in a a Schritt 6.1 akzeptiert. = Die hier beschriebene NTM N arbeitet korrekt. Laufzeit 1. O(|w|), da lediglich |w| Einsen auf das Band geschrieben werden. 2. O(1), da nur eine Eins gestrichen wird, der Kopf allerdings schon an der richtigen Position steht. 3. O(|w1 . . . wi | ), also O(|w| ), da i {0, . . . , |w|} 4. O(|w| ), da V1 ein polynomieller Verizierer ist. 5. O(|wi+1 . . . w|w| | ), also O(|w| ), da i {0, . . . , |w|} 6. O(|w| ), da V2 ein polynomieller Verizierer ist. 7. O(1), da nur geprft wird, ob bereits das Startsymbol erreicht wurde, der Lesekopf aber u schon an der passenden Position steht und entweder Akzeptiert wird oder zu Schritt 2 ubergegangen wird. Schritt 2 - 7 werden im Worst-Case |w|-Mal wiederholt, da jede Teilung mit i {0, . . . , |w|} geprft wird. Also ergibt sich insgesamt als Laufzeit: u k k l l max{k+1,l+1} O(|w|)+|w|(O(|w| )+O(|w| )+O(|w| )+O(|w| )+O(1)) = O(|w|)+O(|w| )= max{k+1,l+1} O(|w| ) = DTM N arbeitet in polynomieller Laufzeit. Somit ist L N P.
l k l k k k