Lösungsvorschlag 10 - Universität des Saarlandes

Werbung
Universität des Saarlandes
Fakultät 6.2 – Informatik
Theoretische Informatik (WS 2015)
Team der Tutoren
Lösungsvorschlag 10
Aufgabe 10.1
(8 Punkte)
In der Vorlesung wurde der Begriff der Polynomialzeit-Reduktion definiert. Zur Erinnerung, man sagt, Sprache
A ⊂ Σ∗ reduziert sich polynomiell auf Sprache B ⊂ Σ∗ , in Zeichen A P B, wenn es eine in Polynomialzeit
berechenbare Funktion f : Σ∗ → Σ∗ gibt, sodass für alle x ∈ Σ∗ gilt: x ∈ A ⇔ f (x) ∈ B.
Ist die Relation P transitiv? D.h., folgt aus A P B und B P C auch A P C?
Lösungsvorschlag 10.1
Ja, die Relation ist transitiv. Seien A, B, C Sprachen. Zudem gelte sei f eine Reduktionsfunktion von A nach
B und g eine Reduktionfunktion von B nach C. Nach dem Beweis der Transitiviät normaler Reduktionen gilt:
x ∈ A ⇔ g(f (x)) ∈ C. Zu zeigen bleibt nur noch, dass g(f (x)) in polinomieller Zeit berechenbar ist.
Sei n die Größe von x. Da f in polynomieller Zeit berechenbar ist,gibt es Konstanten c und a, sodass sich f (x)
in worst-case Laufzeit c ∗ na berechnen lässt. Da eine Turingmaschine in dieser Zeit höchstens c ∗ na Zeichen
geschrieben haben kann, gilt auch: |f (x)| ≤ c ∗ na .
Da g in polynomieller Zeit berechenbar ist, gibt es Konstanten c0 und a0 , sodass sich g(y) in worst-case
0
Laufzeit c0 ∗ na berechnen lässt, wenn |y| = n. Daher hat g für das Argument f(x) worst-case Laufzeit
0
0
c0 ∗ (c ∗ na )a = c0 ∗ (ca ∗ na∗a ). Um g(f(x)) aus x zu berechnen muss erst f(x) berechnet werden und dann g(f(x))
0
berechnet werden. Insgesamt ergibt sich also c0 ∗ (ca ∗ na∗a ) + c ∗ na =, was wieder ein Polynom ist.
Aufgabe 10.2
(20 Punkte)
Es sei G = (V, E) ein gerichteter Graph und n = |V |. Für a, b ∈ V ist eine (a, b)-Hamiltonscher Pfad in G eine
Aufzählung v1 , . . . , vn der Knoten in V mit v1 = a und vn = b, sodass (vi , vi+1 ) ∈ E für 1 ≤ i < n, also ein
gerichteter Pfad in G von a nach b, der jeden Knoten genau ein mal enthält.
Analog lässt sich für einen ungerichteten Graphen H = (W, F ) so ein (a, b)-Hamiltonscher Pfad definieren: Es
muss nun gelten, dass {vi , vi+1 } ∈ E für jedes i.
Ge-(a,b)-HaPf soll nun die Sprache bezeichnen, die folgendes Entscheidungsproblem codiert: Gegeben ein
gerichteter Graph G = (V, E) und zwei Knoten a, b ∈ V , bestimme, ob ein (a, b)-Hamiltonscher Pfad in G
existiert.
Unge-(a,b)-HaPf soll nun die Sprache bezeichnen, die das gleiche Problem für ungerichtete Graphen definiert.
Zeigen Sie, dass Ge-(a,b)-HaPf und Unge-(a,b)-HaPf polynomiell äquivalent sind, also
1. Ge-(a,b)-HaPf P Unge-(a,b)-HaPf und
2. Unge-(a,b)-HaPf P Unge-(a,b)-HaPf
Lösungsvorschlag 10.2
1. Zu zeigen: Ge-(a,b)-HaPf P Unge-(a,b)-HaPf
Das heißt, dass wir eine polynomiell-berechenbare Funktion f finden müssen, sodass
G ∈ Ge-(a,b)-HaPf ⇔ f (G) ∈ Unge-(a,b)-HaPf.
(1)
Sei G = (V, E) ein gerichteter Graph. Wir konstruieren aus G einen ungerichteten Graphen G0 = (V 0 , E 0 )
wie folgt: S
• V 0 := v∈V v in , v,v out
S
in mid mid out • E 0 := v out , win (v, w) ∈ E ∪ v∈V
v ,v
, v ,v
Wir fügen also für jeden Knoten v aus G drei Knoten v in , v und v out ein. Im ersteren werden alle
eingehenden Kanten „gesammelt“, im letzteren alle ausgehenden und der mittlere dient zur Verbindung.
Für alle diese Tripel wird je eine Kante zwischen dem „Eingangsknoten“ und dem „Mittelknoten“ sowie
zwischen dem „Mittelknoten“ und dem „Ausgangsknoten“ hinzugefügt. Für eine Kante (v, w) ∈ E, fügen
wir eine Kante zwischen dem „Ausgangsknoten“ von v (also v out ) und dem „Eingangsknoten“ von w (also
1/3
win ) ein. Wir definieren nun f als die Funktion, die gegeben einen ungerichteten Graphen G den der obigen
Konstruktion entsprechenden gerichteten Graphen G0 zurück gibt. f ist offensichtlich in Polynomialzeit
berechenbar, da die Größe von G0 polynomiell beschränkt ist in der Größe von G.
Wir definieren nun f als die Funktion, die gegeben einen gerichteten Graphen G den der obigen Konstruktion
entsprechenden ungerichteten Graphen G0 zurück gibt. f ist offensichtlich in Polynomialzeit berechenbar.
Es bleibt zu zeigen, dass f Bedingung (1) erfüllt. Sei G = (V, E) ein gerichteter Graph mit n = |V | und
seien a, b ∈ V . Sei G0 = (V 0 , E 0 ) der mit Hilfe von f konstruierte ungerichtete Graph (d.h. G0 = f (G)).
• Sei G ∈ Ge-(a,b)-HaPf. Dann existiert ein (a, b)-Hamiltonscher Pfad in G und somit nach Definition
eine Aufzählung v1 , . . . , vn der Knoten in V mit v1 = a und vn = b, sodass (vi , vi+1 ) ∈ E für
alle 1 ≤ i < n. Ersetzt man nun jeden Knoten vi mit 1 < i < n in der Knotenaufzählung durch
eine Knotenfolge v1in , v1 , v1mid und die Knoten v1 und vn durch v1 , v1out bzw. vnin , vn , so gilt
nach Konstruktion von G0 , dass {vi , vi+1 } ∈ E für alle 1 ≤ i < n. Somit besitzt G0 einen (a, b)Hamiltonschen Pfad und daher gilt f (G) ∈ Unge-(a,b)-HaPf.
• Sei G0 ∈ Unge-(a,b)-HaPf. Dann existiert ein (a, b)-Hamiltonscher Pfad in G0 und somit nach
Definition eine Aufzählung v1 , . . . , vn der Knoten in V 0 mit v1 = a und vn = b, sodass {vi , vi+1 } ∈ E 0
für alle 1 ≤ i < n. Insbesondere enthält der (a, b)-Hamiltonsche Pfad auch alle „Mittelknoten“. Da ein
„Mittelknoten“ v nur genau zwei Kanten besitzt,
nämlich
die zu den zugehörigen „Eingangs-“ und
„Ausgangsknoten“ v in bzw. v out , sind die Kanten v in , v und {v, v out } unmittelbar hintereinander im
(a, b)-Hamiltonschen Pfad enthalten. Somit stellt der (a, b)-Hamiltonsche Pfad eine Aneinanderreihung
von Knotentripeln (v in , v, v out ) dar. Nach Konstruktion von G0 können niemals zwei „Eingangs-“ oder
zwei „Ausgangsknoten“ durch eine Kante verbunden sein. Somit entspricht ein (a, b)-Hamiltonscher
Pfad in G0 einem (a, b)-Hamiltnischen Pfad in G, wenn man ihn in der Reihenfolge v in , v, v out
durchläuft. Somit gilt G ∈ Ge-(a,b)-HaPf.
2. Zu zeigen: Unge-(a,b)-HaPf P Ge-(a,b)-HaPf
Das heißt, dass wir eine polynomiell-berechenbare Funktion f finden müssen, sodass
G ∈ Unge-(a,b)-HaPf ⇔ f (G) ∈ Ge-(a,b)-HaPf.
(2)
Sei G = (V, E) ein ungerichteter Graph. Wir konstruieren aus G einen gerichteten Graphen G0 = (V 0 , E 0 )
wie folgt:
• V 0 := V
• E 0 := {(v, w) | {v, w} ∈ E} ∪ {(v, w) | {w, v} ∈ E}
Wir behalten die Knoten also bei und fügen für jede ungerichtete Kante {v, w} ∈ E zwei Kanten (v, w) und
(w, v) (also Kanten in beide Richtungen) in G0 ein. Wir definieren nun f als die Funktion, die gegeben einen
ungerichteten Graphen G den der obigen Konstruktion entsprechenden gerichteten Graphen G0 zurück
gibt. f ist offensichtlich in Polynomialzeit berechenbar, da die Größe von G0 polynomiell beschränkt ist in
der Größe von G.
Es bleibt zu zeigen, dass f Bedingung (2) erfüllt. Sei G = (V, E) ein ungerichteter Graph mit n = |V | und
seien a, b ∈ V . Sei G0 = (V 0 , E 0 ) der mit Hilfe von f konstruierte gerichtete Graph (d.h. G0 = f (G)).
• Sei G ∈ Unge-(a,b)-HaPf. Dann existiert ein (a, b)-Hamiltonscher Pfad in G und somit nach
Definition eine Aufzählung v1 , . . . , vn der Knoten in V mit v1 = a und vn = b, sodass {vi , vi+1 } ∈ E
für alle 1 ≤ i < n. Somit gilt nach Konstruktion von G0 , dass (vi , vi+1 ) ∈ E 0 und (vi+1 , vi ) ∈ E 0 für
alle 1 ≤ i < n. Insbesondere existiert somit eine Aufzählung v1 , . . . , vn der Knoten in V 0 (nämlich die
gleiche wir für G), sodass v1 = a und vn = b, sodass (vi , vi+1 ) ∈ E 0 für 1 ≤ i < n. Daher existiert ein
(a, b)-Hamiltonscher Pfad in G0 und somit gilt f (g) ∈ Unge-(a,b)-HaPf.
• Sei G0 ∈ Ge-(a,b)-HaPf. Dann existiert ein (a, b)-Hamiltonscher Pfad in G0 und somit nach Definition
eine Aufzählung v1 , . . . , vn der Knoten in V 0 mit v1 = a und vn = b, sodass (vi , vi+1 ) ∈ E 0 für alle
1 ≤ i < n. Nach Konstruktion von G0 , kann eine Kante (v, w) ∈ E 0 nur existieren, wenn auch
(w, v) ∈ E 0 sowie {v, w} ∈ E. Somit gilt für die obige Aufzählung auch, dass {vi , vi+1 } ∈ E für
1 ≤ i < n. Daher existiert ein (a, b)-Hamiltonscher Pfad in G und somit gilt G ∈ Unge-(a,b)-HaPf.
Aufgabe
10.3
(20 Punkte)
S
S
P = k∈N DTIME(nk ) und NP = l∈N NTIME(nl ) sind ja als unendliche Vereinigungen definiert. Es wäre also
vorstellbar, dass P = NP, aber für jedes l gibt es eine Sprache in NTIME(nl ), die deterministisch bestenfalls in,
l
sagen wir, DTIME(n100 ) liegt.
Die Aussage P=NP wäre ziemlich uninteressant, wenn man für ein Problem, das nichtdeterministisch in
Θ(n2 ) vielen Schritten gelöst werden kann, deterministisch Θ(n10000 )viele Schritte gebraucht werden, oder
nichtdeterministische Θ(n3 ) Zeitkomplexität nur mit Θ(1000000) deterministischer Zeit erreicht werden kann.
2/3
Zeigen Sie, dass dies nicht so ist. Zeigen Sie: Wenn P=NP, dann gibt es eine Konstante c, sodass für alle l ∈ N
gilt, dass NTIME(nl ) ⊆ DTIME(nc∗l ).
Lösungsvorschlag 10.3
Betrachten
Sprache:
wir die folgende
UNP = (bin(l), w, x) Simulation von Mw mit nichtdet. UTM akzeptiert x nach max. |x|l Schritten .
Offensichtlich ist UNP in NP, da maximal polynomiell viele Schritte in der Größe eines Teils der Eingabe gemacht
werden. Da nach Annahme P=NP, gibt es eine DTM M’, welche UNP in DTIME(nk ) erkennt. Nun gibt es einen
Faktor c, sodass k ≤ c ∗ l. Daher liegt UNP in DTIME (nc∗l ).
Es ist klar, dass es für jede Sprache L ∈ NP eine Turingmaschine M und eine natürliche Zahl l gibt, sodass
∀x, (bin(l), < M >, x) ∈ UNP. Daher ist M’ eine Turingmaschine, die, wenn man bin(l) und <M> als erste
Argumente fest in die Turingmaschine reinschreibt, für eine beliebiges x in DTIME(|(bin(l), < M >, x)|c∗l )
erkennt, ob es in L ist, oder nicht. Da |(bin(l), < M >, x)|c∗l > |x|c∗l , gilt, dass jede Sprache in NP, die in
NTIME(nl ) ist, auch in DTIME(nc∗l ) ist.
3/3
Herunterladen