• Keine Ergebnisse gefunden

Lösungsvorschlag zu Aufgabe 1

N/A
N/A
Protected

Academic year: 2022

Aktie "Lösungsvorschlag zu Aufgabe 1"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

ETH Zürich

Institut für Theoretische Informatik

Prof. Dr. Angelika Steger, Dr. Johannes Lengler Übungsleitung: Florian Meier

HS 2018

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 12

Lösungsvorschlag zu Aufgabe 1

a) Zu jedem ungerichteten GraphG= (V,E)konstruieren wir einen gerichteten GraphenG0 = f(G), sodass f in polynomieller Zeit berechnet werden kann undGgenau dann einen unge- richteten Hamiltonkreis enthält, wennG0einen gerichteten Hamiltonkreis enthält.

G0 besteht aus der selben Knoten MengeV wieG. Für jede Kante{u,v} ∈ Efügen wir die beiden gerichteten Kanten(u,v)und(v,u)inE0ein.

Angenommen es gibt einen Hamiltonkreis(u1, . . . ,un)inGso ist dies ein gerichteter Hamil- tonkreis inG0. Umgekehrt ist jeder gerichtete Hamiltonkreis inG0ein ungerichteter Hamilton- kreis inG. Offensichtlich kannf in polynomieller Zeit berechnet werden.

b) Zu jedem gerichteter GraphGkonstruieren wir einen ungerichteten GraphG0 = f(G), sodass f in polynomieller Zeit berechnet werden kann undGgenau dann einen gerichteten Hamil- tonkreis enthält, wennG0einen ungerichteten Hamiltonkreis enthält.

In einem gerichteten Graphen wird jeder Knoten über eine eingehende Kante betreten und über eine ausgehende Kante verlassen. Um dies auch in einem ungerichteten Graphen zu erzwingen, benutzen wir folgende Konstruktion. Für jeden Knotenvi von Gfügen wir drei Knotenvini ,vmidi undwioutinG0 ein. Für jede gerichtete Kantee = (vi,vj) von vonGfügen wir die ungerichtete Kante {vouti ,vinj }in G0 ein. Zusätzlich fügen wir für alle i die Kanten {vini ,vmidi }und{vimid,vouti }inG0ein.

Angenommen es gibt einen gerichteter Hamiltonkreis(vi1,vi2, . . . ,vin)inGdann ist per Kon- struktion(vini

1,vimid

1 ,vouti

1 ,vini

2,vmidi

2 ,vouti

2 , . . . ,vinin,vmidin ,voutin )ein ungerichteter Hamiltonkreis inG0. Angenommen es gibt einen ungerichteten Hamiltonkreis inG0. Da jedesvmidi Grad 2 hat, müs- sen vini und viout vor oder nach vmidi besucht werden. Da es keine Kanten zwischen zwei out-Knoten gibt und keine Kanten zwischen zwei in-Knoten gibt, muss jeder out-Knoten zwischen einem mid-Knoten und einem in-Knoten auf dem Hamiltonkreis liegn. Genauso muss jeder in-Knoten zwischen einem mid-Knoten und eiem out-Knoten liegen. Der unge- richtete Hamiltonkreis muss also die Form(vini

1,vmidi

1 ,vouti

1 ,vini

2,vmidi

2 ,vouti

2 , . . . ,vinin,vmidin ,voutin )oder (vouti

1 ,vmidi

1 ,vini

1,vouti2 ,vmidi2 ,vini2, . . . ,voutin ,vmidin ,vinin)haben. Im ersten Fall befinden sich die Kanten (vik,vik+1)und somit der gerichtete Hamiltonkreis(vi1,vi2, . . . ,vin)inG. Im zweiten Fall befin- den sich die Kanten(vik+1,vik)und somit der gerichtete Hamiltonkreis(vin,vin1, . . . ,vi1)in G.

DaG0lediglich dreimal so viele Knoten hat wieGlässt sichG0sicherlich in polynomieller Zeit in|G|erzeugen.

Lösungsvorschlag zu Aufgabe 2

Wir nehmen an, dass die Variablenmenge der FormelFdurch die Menge{x1,x2, . . . ,xn}gegeben ist. Ausserdem seim≥ndie Anzahl Literale der FormelF. Da jedes Literal einmal abgespeichert

1

(2)

werden muss, ist die Eingabegrösse|F|mindestensΩ(m). Genauer gesagt ist die Eingabegrösse Θ(mlog(n))im logarithmischen Kostenmass, aberΩ(m)reicht für unsere Zwecke aus.

Wir testen zuerst mit dem AlgorithmusA, obFerfüllbar ist. Wenn nicht, gibt es nichts zu tun.

Andernfalls setzen wir F0 := F und testen mitA, ob F0∧x1noch erfüllbar ist. Falls ja, setzen wirF1:= F0∧x1; sonstF1:= F∧x¯1. Wir iterieren dieses Vorgehen für jede Variablexi und kon- struieren soF1, . . . ,Fn(siehe Algorithmus 1). Am Ende ist dann die erfüllende Belegung gegeben durch die Ergebnisse vonA(Fi−1∧xi), die wir jeweils inyiabspeichern.

Zur Korrektheit:FallsFnicht erfüllbar ist, so erkennt dies unser fiktiver AlgorithmusAund wir müssen keine Belegung finden. Es bleibt zu zeigen, dass im anderen Fallx1=y[1], . . . ,xn=y[n] tatsächlich eine erfüllende Belegung fürFist. Wir beweisen per Induktion überi, dass eine erül- lende Belegung mitx1= y[1], . . . ,xi = y[i]existiert, und dass dies für jede erfüllende Belegung gilt.

Im Falli=1 wissen wir bereits, dassF=F0erfüllbar ist. Die FormelF0∧x1ist nur dann erfüllbar wennx1 = 1. Also gibt es dafür eine erfüllende Belegung genau dann wenn F0eine erfüllende Belegung aufweist in der x1 = 1 gilt. In diesem Fall setzen wir y[1] = 1. Falls F0∧x1 nicht erfüllbar ist, bleibt als einzige Möglichkeit, dass jede erfüllende Belegung vonF0die Eigenschaft x1 =0 hat. In diesem Fall setzen wir auch tatsächlichy[1] =0. In beiden Fällen ergänzen wirF um eine zusätzliche Klausel (entwederx1oder ¯x1), so dass alle erfüllbaren Belegungen jeweils den gleichen Wert beix1aufweisen.

Für den Induktionsschritt können wir danach das gleiche Argument wieder verwenden: Wir wissen, dass eine erfüllende Belegung für die Formel Fi−1 existiert, und wir wissen auch per Induktion, dass für jede erfüllende Belegungx1=y[1], . . . ,xi−1=y[i−1]gilt. Nun iterieren wir den Test und finden heraus, ob wirxi = 0 oderxi = 1 setzen sollen. Nachn Iterationen steht schliesslich iny[1], . . . ,y[n]eine erfüllende Belegung.

Zur Laufzeit:Per Annahme ist die Laufzeit von Algorithmus A polynomiell, also gibt es ein c > 0, so dassA auf Eingabe F LaufzeitO(|F|c+c) aufweist. Unser Algorithmus ruft nunA in jedem der nSchritte einmal auf, mit einer Eingabe die maximal O(n)länger ist als|F|. Wir haben bereits oben gesehen dass|F| = (m), und dam > nfolgt|F|+n = Θ(|F|). Somit er- halten wir LaufzeitO(n((|F|+n)c+c)) =O(|F|c+1). Wir sehen dass unser Vorgehen tatsächlich polynomielle Laufzeit hat.

Algorithm 1FINDASSIGNMENT(KNF-FormelF=F(x1, . . . ,xn)) ifA(F) =NOthen

return ”no satisfying assignment”

end if F0:=F

fori=1, . . . ,ndo

ifA(Fi−1∧xi) =YESthen Fi :=Fi−1∧xi

y[i]:=1 else

Fi :=Fi−1∧x¯i

y[i]:=0 end if end for

return y[1], . . . ,y[n]

Lösungsvorschlag zu Aufgabe 3

Wir zeigen zuerst, dass VERTEXCOVERinN Pliegt, dies benötigen wir für dieN P-vollständigkeit

2

(3)

in den Aufgaben a) und b). Sei(G,k)eine Eingabe, welche in der Sprache VERTEX COVERliegt.

Dann gibt eskKnotenV0 inG, welche ein Vertex Cover bilden. Wir benutzenV0 als Zertifikat.

Offensichtlich gilt für die Codierungslängen|V0| ≤ |G|. GegebenV0, so können wir alle Kanten vonGdurchgehen und überprüfen, ob jede davon mindestens einen Endpunkt inV0 hat. Dies hat Laufzeit|E| · |V0|, was polynomiell in|G|ist.

a) Gegeben eine Eingabe(G,k)für das Entscheidungsproblem INDEPENDENTSET. Wir konstru- ieren daraus eine Eingabe (G0,k0) für VERTEX COVER, indem wirG0 = G undk0 = n−k setzen, wobeindie Anzahl Knoten inGist.

AngenommenG= (V,E)hat ein Vertex CoverV0 der Grössen−k. Dann gibt es per Defini- tion keine Kante inV\V0 und somit ist dies ein Independent Set der Grössek. Umgekehrt, falls es inGein Independent SetSder grössekgibt, so istV\Ssicherlich ein Vertex Cover der Grössen−k, da keine Kante beide Endpunkte inShaben kann.

Trivialerweise kann(G0,k0)in polynomieller Zeit aus(G,k)berechnet werden.

b) In folgendem Abschnitt gehen wir davon aus, dass jede Klausel der Formel genau drei Literale hat. Bitte beachten Sie, dass jede3-SatFormelFimmer in eine solche FormelF0transformiert werden kann, so dassFgenau dann erfülbar ist, wenn auchF0 erfüllbar ist. Dazu muss jede Klausel, welche nur zwei Literalen enthält, dubliziert werden und es muss eine neue Varia- ble eingefügt werden, welche in einer der zwei Klauseln positiv und in der anderen negativ vorkommt.

Wir konstruieren einen GraphenGwie folgt aus der 3-SAT FormelF:

• Nehme zwei Knotenxund ¯x für jede Variablex, die inF vorkommt, und verbinde sie mit einer Kante. (Wir nennen diese KnotenVariablen-Knoten.)

• Für jede Klausel vonF: Nehme drei (neue) Knoten für die Literaley1∨y2∨y3. Verbinde sie zu einem Dreieck. Verbinde jeden Knotenyimit dem zugehörigen Variablen-Knoten xoder ¯x(je nachdem ob das Literal negiert ist). Wir nennen diese KnotenLiteral-Knoten.

Wir erhalten einen Graphen mit 3m+2nKnoten (fürmKlauseln undnVariablen). Siehe Ab- bildung 1 für ein Beispiel. Diese Transformation ist offensichtlich polynomiell: wir generieren 2n+3mKnoten und 6m+nKanten (aus einer Eingabe der Länge 3m, wobein ≤ 3mange- nommen wird).

a a¯ b b¯ c c¯

a c

¯

a c

a c¯

b

Abbildung 1: Transformation von(a∨b¯∨c)∧(a¯∨b¯∨c)∧(a∨b∨c¯).

In diesem Graphen definiert jedes(2m+n)-Vertex-Cover (Kästchen in Abbildung 1) eine er- füllende Belegung vonF: Zuerst überlegt man sich, dass jedes(2m+n)-Vertex-Cover genau 2m Literal-Knoten undn Variablen-Knoten enthält. (Angenommen es wären weniger als n Variablen-Knoten, dann können die Kanten{x, ¯x}nicht alle abgedeckt werden; angenommen es wären mehr, dann können die Literal-Dreiecke nicht abgedeckt werden.) Wir müssen also noch die Kanten zwischen den Variablen-Knoten und den Literal-Knoten abdecken. Das ist aber nur dann möglich, wenn das Cover die Variablen-Knoten genau so enthält, dass minde- stens eine Kante zu einem Literal hin schon abgedeckt ist. Aus Konstruktion geben dann die Variablen-Knoten im Cover eine erfüllende Belegung fürFan.

3

(4)

Umgekehrt definiert jede erfüllende Belegung ein(2m+n)-Cover: nehme für jede Variable den Variablen-Knotenxund ¯x, wenn sie in der Belegung 1 bzw. 0 ist. Wähle dann aus jedem Literal-Dreieck zwei Knoten, so dass ein Vertex Cover entsteht; aus Konstruktion und da die Belegung erfüllend ist, können wir dies immer tun.

Somit haben wir 3-SAT aufk-Vertex-Cover (fürk=3m+2n) reduziert.

4

Referenzen

ÄHNLICHE DOKUMENTE

Dabei ist eine weitere Vorausset- zung, daß es sich um eine mäßige Verkehrsdichte handelt, und gänz- lich außer acht gelassen werden die psychischen Komponenten, bei de- nen

Für die Beurteilung von abweichenden Situationen wird angenommen, dass sich die Störwirkung in Abhängigkeit der Anzahl Stop & Go Ereignisse verändert. Bei einer minimal

Und wenn ich das tue, möchte ich auch nicht Toleranz in Anspruch nehmen müssen - Toleranz würde ja nur bedeuten, dass ich zwar schon was und womöglich begründet dagegen habe,

Technische Universität München, Fakultät für Medizin, Klinik und Poliklinik für Derma- tologie und

Im Bayerischen Ärzteblatt, Heft 7-8/2017 wird unter der Rubrik „Blickdiagnose“ im Ar- tikel „Schmerzen und Knoten am Penis“ bei den Therapiemöglichkeiten der Induratio penis

Computer-gestützte Programme für das Ge- wichtsmanagmeent seien zwar weniger wirk- sam als persönliche Interventionen, aber auf jeden FAll besser als nichts und auch ange- sichts

Ein Graph heißt bipartit, wenn es eine Partitio- nierung seiner Knotenmenge in zwei stabile Mengen

Wenngleich das Konzept quattromodaler Knoten einen gewissen Interpretationsspielraum lässt – so werden etwa die Pipeline, Normal- und Breitspur sowie die Binnen- und