817 lines
40 KiB
Plaintext
817 lines
40 KiB
Plaintext
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz
|
||
|
||
09.06.2025
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 9
|
||
|
||
|
||
Definition 1 (Vertex Cover (VC)). Für einen (ungerichteten) Graphen G = (V, E) ist ein Vertex
|
||
Cover eine Menge von Knoten C ⊆ V , sodass u ∈ C oder v ∈ C für alle { u, v } ∈ E gilt, also ist
|
||
für alle Kanten mindestens ein Endpunkt in C.
|
||
Für das V ERTEX C OVER Problem ist neben einem Graphen G eine Zahl k ∈ N≥0 gegeben und
|
||
es wird gefragt, ob ein Vertex Cover mit Größe (Anzahl der Knoten) höchstens k in G existiert.
|
||
|
||
Definition 2 (Feedback Vertex Set (FVS)). Für einen gerichteten Graphen G = (V, E) ist ein
|
||
Feedback Vertex Set eine Menge von Knoten X ⊆ V , sodass G \ X kreisfrei ist.
|
||
Für das F EEDBACK V ERTEX S ET Problem ist neben einem Graphen G eine Zahl k ∈ N≥0 gege-
|
||
ben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
|
||
k in G existiert.
|
||
|
||
|
||
1 6 2
|
||
|
||
|
||
5
|
||
8 7
|
||
3
|
||
4
|
||
Abbildung 1: Beispiel Graph.
|
||
|
||
Hausaufgabe 9.1 (Nichtdeterministischer Algorithmus für VC) (5 Punkte)
|
||
1. Finden Sie ein minimales Vertex Cover in Abbildung 1. Für ein Vertex Cover ist die
|
||
Orientierung der Kanten nicht relevant.
|
||
2. Zeigen Sie V ERTEX C OVER ∈ NP, indem Sie einen nichtdeterministischen Algorithmus
|
||
angeben, der V ERTEX C OVER in Polynomialzeit löst. Begründen Sie die Korrektheit und
|
||
die Laufzeit von Ihrem Algorithmus.
|
||
|
||
Lösung. 1. Ein minimales Vertex Cover ist zum Beispiel { 3, 5, 6, 7, 8 }.
|
||
2. Unser nichtdeterministischer Algorithmus geht wie folgt vor: Für jeden Knoten wird
|
||
nichtdeterministisch entschieden, ob dieser im Vertex Cover sein soll. Nachdem dies für
|
||
alle Knoten entschieden wurde, wird überprüft, ob nicht mehr als k Knoten gewählt wur-
|
||
den und ob für jede Kante mindestens ein Endpunkt im Vertex Cover liegt.
|
||
Existiert ein Vertex Cover im Graphen, existiert auch eine Reihe von nichtdeterministi-
|
||
schen Entscheidungen, die diese Teilmenge von Knoten auswählt. Diese Teilmenge wird
|
||
dann auch von dem Algorithmus akzeptiert. Damit ist der Algorithmus korrekt.
|
||
Beide diese Schritte können naiv in Polynomialzeit erledigt werden, also löst dieser Al-
|
||
gorithmus das Vertex Cover Problem in Polynomialzeit.
|
||
|
||
|
||
Bewertung 1 Punkt für das Beispiel und 4 Punkte für den Algorithmus, dabei 2 Punkte für
|
||
die Beschreibung und jeweils 1 Punkt für Korrektheit und Laufzeit.
|
||
|
||
Hausaufgabe 9.2 (Polynomieller Verifizierer für FVS) (5 Punkte)
|
||
1. Finden Sie ein minimales Feedback Vertex Set in Abbildung 1.
|
||
2. Zeigen Sie F EEDBACK V ERTEX S ET ∈ NP, indem Sie einen polynomiellen Verifizierer
|
||
für F EEDBACK V ERTEX S ET angeben. Begründen Sie die Korrektheit und die Laufzeit
|
||
von Ihrem Verifizierer.
|
||
|
||
Lösung. 1. Ein minimales FVS ist zum Beispiel { 5, 6 }.
|
||
2. Das Zertifikat hat die Form einer Teilmenge X ⊆ V , die beschreibt, welche Knoten das
|
||
Feedback Vertex Set bilden sollen. Zum Beispiel über ein Bit pro Knoten. Nun wird
|
||
überprüft, ob |X| ≤ k gilt und ob G \ X azyklisch ist.
|
||
Hat der Graph ein Feedback Vertex Set von Größe maximal k, gibt es ein Zertifikat, wel-
|
||
ches dieses beschreibt. Dieses Zertifikat wird dann von unserem Verifizierer akzeptiert,
|
||
damit ist der Verifizierer korrekt.
|
||
Die Größe von X zu überprüfen ist naiv in Polynomialzeit möglich. Für den zweiten Test
|
||
bietet sich der Algorithmus zur topologischen Sortierung aus der Vorlesung an, welcher in
|
||
Polynomialzeit eine topologische Sortierung findet, wenn der gegebene Graph azyklisch
|
||
ist. Insgesamt ist dieser Verifizierer korrekt und auch ein polynomieller Verifizierer.
|
||
|
||
|
||
Bewertung 1 Punkt für das Beispiel und 4 Punkte für den Verifizierer, dabei 2 Punkte für die
|
||
Beschreibung und jeweils 1 Punkt für Korrektheit und Laufzeit.
|
||
|
||
|
||
|
||
|
||
Abgabe: 16.06.2025, 10:00 in Moodle – bitte beachten Sie die Informationen zum Abgabefor-
|
||
mat im Moodlekurs.
|
||
Hausaufgabe 9
|
||
Marek Lenczewski
|
||
Matrikelnummer: 1025252
|
||
|
||
22. Juni 2025
|
||
|
||
|
||
Hausaufgabe 9.1
|
||
Teil 1
|
||
Ein minimales Vertex Cover ist C = {2, 7, 5, 4, 1}.
|
||
Die Minimale Knotenanzahl ist 5.
|
||
|
||
Teil 2
|
||
Der Algorithmus arbeitet wie folgt:
|
||
|
||
• Zuerst wird für jeden Knoten v ∈ V nichtdeterministisch entschieden, ob dieser in das
|
||
Vertex Cover aufgenommen wird. Dabei wird drauf geachtet, dass die Anzahl k nicht
|
||
übersteigt.
|
||
|
||
• Danach wird geprüft, ob für jede Kante {u, v} ∈ E entweder v ∈ C oder u ∈ C oder beides
|
||
zutrifft.
|
||
|
||
• Falls dies für alle Kanten gilt, akzeptieren wir. Andernfalls lehnen wir ab.
|
||
|
||
Existiert ein Vertex Cover der Größe höchstens k, dann gibt es auch eine, nichtdeterminis-
|
||
tisch ausgewählte, Knotenmenge, die dazu passt. Von dieser werden alle Kanten abgedeckt und
|
||
der Algorithmus akzeptiert. Falls es kein Vertex Cover gibt, dann lehnt der Algorithmus ab.
|
||
|
||
Die Auswahl der Knoten und die Prüfung der Kanten läuft in polynomieller Zeit, also ist dies
|
||
ein polynomieller nichtdeterministischer Algorithmus, der VERTEX COVER löst und damit ist
|
||
V ERT EXCOV ER ∈ N P .
|
||
|
||
|
||
Hausaufgabe 9.2
|
||
Teil 1
|
||
Ein minimales Feedback Vertex Set ist X = {1, 5}
|
||
|
||
Teil 2
|
||
Der Verifizierer arbeitet wie folgt:
|
||
|
||
• Es wird eine Teilmenge X ⊆ V übergeben, die das Feedback Vertex Set darstellen soll.
|
||
|
||
• Dann wird geprüft, ob |X| ≤ k gilt und es wird abgelehnt, falls es nicht gilt.
|
||
|
||
• Danach wird ein Graph G′ = G \ X konstruiert, in dem alle Knoten aus X und alle an X
|
||
angrenzenden Kanten entfernt wurden.
|
||
|
||
1
|
||
• Auf dem Graphen G′ wird eine Tiefensuche durchgeführt, dabei werden Knoten während
|
||
der Bearbeitung grau markiert und beim Backtracking schwarz.
|
||
|
||
• Wird eine Kante zu einem grauen Knoten entdeckt, dann wird abgelehnt, da dies einen
|
||
Kreis anzeigt.
|
||
|
||
• Falls die Tiefensuche den gesamten Graphen durchläuft ohne abzulehnen, dann wird ak-
|
||
zeptiert.
|
||
|
||
Existiert ein Feedback Vertex Set der Größe höchstens k, dann gibt es auch ein Zertifikat, das
|
||
genau diese Knotenmenge beschreibt. Alle Teilmengen, die die Tiefensuche überstehen, werden
|
||
von dem Verifizierer akzeptiert und sonst abgelehnt.
|
||
|
||
Die Prüfung der übergebenen Teilmenge und die Konstruktion des Graphen laufen in polyno-
|
||
mieller Zeit. Ebenfalls die Tiefensuche läuft in polynomieller Zeit, somit ist auch der Verifizierer
|
||
polynomiell und verifiziert die Lösung für das FEEDBACK VERTEX SET in polynomieller
|
||
Zeit. Also gilt F EEDBACKV ERT EXSET ∈ N P .
|
||
|
||
|
||
|
||
|
||
2
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz
|
||
|
||
16.06.2025
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 10
|
||
|
||
|
||
Definition 1 (Feedback Vertex Set (FVS)). Für einen gerichteten Graphen G = (V, E) ist ein
|
||
Feedback Vertex Set eine Menge von Knoten X ⊆ V , sodass G \ X kreisfrei ist.
|
||
Für das F EEDBACK V ERTEX S ET Problem ist neben einem Graphen G eine Zahl k ∈ N≥0 gege-
|
||
ben und es wird gefragt, ob ein Feedback Vertex Set mit Größe (Anzahl der Knoten) höchstens
|
||
k in G existiert.
|
||
|
||
Hausaufgabe 10.1 (F EEDBACK V ERTEX S ET ist NP-vollständig) (5 Punkte)
|
||
Zeigen Sie, dass F EEDBACK V ERTEX S ET NP-vollständig ist.
|
||
Hinweis: Reduzieren Sie V ERTEX C OVER auf F EEDBACK V ERTEX S ET. Wenn ein Vertex Cover
|
||
aus einem Graphen entfernt wird, hat dieser keine Kanten mehr.
|
||
|
||
Lösung. F EEDBACK V ERTEX S ET ∈ NP ist bekannt aus der letzten Hausaufgabe. Nun zeigen
|
||
wir eine Reduktion von V ERTEX C OVER auf F EEDBACK V ERTEX S ET. Betrachte die folgende
|
||
Reduktion:
|
||
Für eine gegebene V ERTEX C OVER Instanz (G = (V, E), k) erzeuge den Graphen G′ = (V, E ′ )
|
||
mit E ′ := { (u, v), (v, u) | {u, v} ∈ E }. Gebe (G′ , k) als F EEDBACK V ERTEX S ET Instanz aus.
|
||
Korrektheit:
|
||
⇒ (Falls (G, k) eine Ja-Instanz von V ERTEX C OVER ist, dann ist (G′ , k) eine Ja-Instanz von
|
||
F EEDBACK V ERTEX S ET.):
|
||
Sei C ⊆ V ein Vertex Cover mit Größe kleiner oder gleich k. Dann enthält G \C keine Kanten.
|
||
Damit hat G′ \C ebenfalls keine Kanten und somit keine Kreise.
|
||
⇐ (Falls (G′ , k) eine Ja-Instanz von F EEDBACK V ERTEX S ET ist, dann ist (G, k) eine Ja-Instanz
|
||
von V ERTEX C OVER.):
|
||
Sei X ⊆ V ′ ein Feedback Vertex Set mit Größe kleiner oder gleich k. Dann ist X ein Vertex
|
||
Cover in G, da ansonsten eine Kante {u, v} ∈ E existiert, für die u ∈
|
||
/ X ∧v ∈
|
||
/ X gilt. Damit wäre
|
||
aber (u, v, u) ein Kreis in G′ und X somit kein Feedback Vertex Set.
|
||
Laufzeit: Das Erzeugen der Menge E ′ geht in Zeit O(|E|). Insgesamt ist die Reduktion dem-
|
||
nach in Laufzeit O(|E|), also in polynomieller Laufzeit, durchführbar.
|
||
Also existiert eine polynomielle Reduktion von V ERTEX C OVER auf F EEDBACK V ERTEX S ET.
|
||
Da V ERTEX C OVER nach den aktuellen Präsenzaufgaben NP-vollständig ist und
|
||
F EEDBACK V ERTEX S ET ∈ NP gilt, ist somit F EEDBACK V ERTEX S ET NP-vollständig.
|
||
Bewertung 2 Punkte für die Konstruktion, 1 Punkt für den 1. Fall, 1 Punkt für den 2. Fall,
|
||
0.5 Punkte für die Laufzeit, 0.5 Punkte für die Beweisführung im Ganzen
|
||
|
||
Hausaufgabe 10.2 (Turingmaschinen) (5 Punkte)
|
||
Entwerfen Sie eine Turingmaschine für die Sprache L = { w ∈ Σ∗ | w ist ein Palindrom } über
|
||
einem gegebenen Alphabet Σ und geben Sie die Laufzeit Ihrer Turingmaschine an. Begründen
|
||
Sie dabei, warum Ihre Turingmaschine korrekt ist und die angegebene Laufzeit hat.
|
||
|
||
Lösung. Die Turingmaschine sieht folgendermaßen aus:
|
||
(1) Falls kein Wort auf dem Band steht, akzeptiere.
|
||
(2) Falls nur ein Buchstabe auf dem Band steht, akzeptiere.
|
||
(3) Lese den ersten Buchstaben und bewege danach den Kopf zum letzten Buchstaben. Falls
|
||
die beiden Buchstaben verschieden sind, verwerfe. Ansonsten ersetze beide Buchstaben
|
||
durch ein neues Symbol x. Ersetze dafür zuerst den letzten Buchstaben und bewege dann
|
||
den Kopf zum ersten Buchstaben.
|
||
(4) Gehe zu Schritt (1).
|
||
Korrektheit: Die Turingmaschine vergleicht immer den ersten und den letzten Buchstaben.
|
||
Wenn die Buchstaben nicht gleich sind, ist das Wort kein Palindrom und es wird verworfen.
|
||
Ansonsten werden die Buchstaben rausgestrichen (siehe Schritt (3)). Diese Prozedur wird so-
|
||
lange wiederholt, bis man in der Mitte des Wortes angekommen ist und entweder nur noch ein
|
||
Buchstabe oder kein Buchstabe vorhanden ist. In beiden Fällen ist das Wort ein Palindrom und
|
||
es wird akzeptiert (siehe Schritte (1) und (2)).
|
||
Laufzeit: Die Schritte (1) bis (3) benötigen jeweils eine Laufzeit von O(n), wobei n hier die
|
||
Länge der Eingabe bezeichnet. Da in jedem Durchlauf der Schritte (1) bis (3) zwei Buchstaben
|
||
raus gestrichen werden oder das Wort akzeptiert oder verworfen wird, gibt es maximal ⌊n/2⌋
|
||
Durchläufe, bis nur noch ein oder kein Buchstabe auf dem Band stehen und somit in den Schrit-
|
||
ten (1) oder (2) akzeptiert wird. Damit ergibt sich insgesamt eine Laufzeit von O(n2 ).
|
||
|
||
|
||
Bewertung 2 Punkte für die Turingmaschine, 1 Punkt für die Korrektheit und 2 Punkte für
|
||
die Laufzeit: 1 Punkt Angabe, 1 Punkt Begründung
|
||
|
||
|
||
|
||
|
||
Abgabe: 23.06.2025, 10:00 in Moodle – bitte beachten Sie die Informationen zum Abgabefor-
|
||
mat im Moodlekurs.
|
||
Hausaufgabe 10
|
||
Marek Lenczewski
|
||
Matrikelnummer: 1025252
|
||
|
||
22. Juni 2025
|
||
|
||
|
||
Hausaufgabe 10.1
|
||
Teil 1: FeedbackVertexSet ∈ NP
|
||
Zuerst brauchen wir einen polynomiellen Verifizierer, um zu zeigen dass FeedbackVertexSet
|
||
∈ NP.
|
||
|
||
Der Verifizierer bekommt einen Graphen G und eine Teilmenge X, dieser arbeitet wie folgt:
|
||
|
||
• Prüfe, ob |X| ≤ k, sonst ablehnen
|
||
|
||
• Den Graphen G′ = G \ X konstruieren
|
||
|
||
• Tiefensuche auf G′ durchführen, dabei werden Knoten vom aktuellen Pfad als grau mar-
|
||
kiert und nach vollständiger Bearbeitung als schwarz. Wird eine Kante zu einem grauen
|
||
Knoten gefunden, zeigt dies einen Kreis an und wir lehnen ab
|
||
|
||
• Akzeptieren, wenn die Tiefensuche nichts findet
|
||
|
||
Die Schritte 1-4 laufen in polynomieller Zeit, somit läuft der Verifizierer in polynomieller
|
||
Zeit. Damit ist F eedbackV ertexSet ∈ N P .
|
||
|
||
Teil 2: FeedbackVertexSet ist NP-schwer
|
||
Jetzt brauchen wir eine Reduktion von VertexCover auf FeedbackVertexSet, um zu zeigen,
|
||
dass F eedbackV ertexSet N P − Schwer ist.
|
||
|
||
Konstruktion: Sei dafür ein VertexCover gegeben mit einem Graphen G und einer Zahl k.
|
||
Aus G wird ein G′ , wobei jede ungerichtete Kante {u, v} ∈ E durch zwei gerichteten Kanten
|
||
(u, v) und (v, u) zu E ′ ersetzt wird. Das k wird einfach übernommen k = k ′ .
|
||
|
||
Beweis VertexCover nach FeedbackVertexSet:
|
||
|
||
• Sei C ein VertexCover von G mit |C| ≤ k
|
||
|
||
• Da C ein VertexCover ist, wird jede Kante mit C verbunden
|
||
|
||
• Wenn C entfernt wird, dann hat G \ C keine Kanten mehr
|
||
|
||
• Dann hat auch G′ \ C keine Kanten und ist somit Kreisfrei
|
||
|
||
• Damit ist C ein FeedbackVertexSet für G′ mit |C| ≤ k ′
|
||
|
||
|
||
|
||
Beweis FeedbackVertexSet nach VertexCover:
|
||
|
||
1
|
||
• Sei X ein FeedbackVertexSet von G′ mit |X| ≤ k ′
|
||
|
||
• Dann ist G′ \ X kreisfrei
|
||
|
||
• Angenommen X wäre kein VertexCover von G, dann gäbe es eine Kante {u, v} ∈ E mit
|
||
u, v ∈
|
||
/X
|
||
|
||
• Somit wären u, v noch in G′ \ X vorhanden
|
||
|
||
• Die Kanten (u, v) und (v, u) würden, durch die Konstruktion, einen Kreis erzeugen
|
||
|
||
• Das ist ein Widerspruch, somit ist G′ \ X kreisfrei und X ist ein VertexCover
|
||
|
||
Da F eedbackV ertexSet ∈ N P und N P − schwer ist, folgt dass F eedbackV ertexSet NP-
|
||
Vollständig ist. □
|
||
|
||
|
||
Hausaufgabe 10.2
|
||
Lösung. Die Turingmaschine arbeitet wie folgt:
|
||
|
||
1. Falls das Band leer ist oder nur aus Markierungen besteht, akzeptiere
|
||
|
||
2. Merke das erste unmarkierte Zeichen und ersetze es durch X
|
||
|
||
3. Laufe zum letzten unmarkierten Zeichen oder verwefe
|
||
|
||
4. Falls dieses Zeichen nicht mit dem gemerkten übereinstimmt, verwerfe
|
||
|
||
5. Ersetze es durch X und gehe zurück zum Anfang
|
||
|
||
6. Gehe zu 1
|
||
|
||
Korrektheit: Ein Wort ist genau dann ein Palindrom, wenn es sich von vorne und hin-
|
||
ten gleich liest. Dies prüft die Turingmaschine, indem sie Schrittweise die äußeren Buchstarben
|
||
verifiziert, bis nur noch einer oder keiner Vorhanden ist, dann akzeptiert ist und wenn eine Un-
|
||
stimmigkeit auftritt, dann lehnt sie ab.
|
||
|
||
Laufzeit: Die Turingmaschine hat eine Laufzeit von O(n2 ). In jedem Durchlauf macht sie
|
||
O(n) Schritte und das mit O(n) Durchläufen. □
|
||
|
||
|
||
|
||
|
||
2
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz
|
||
|
||
23.06.2025
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 11
|
||
|
||
|
||
Definition 1 (Dreiecksüberdeckung eines Graphen (∆ C OVER)). Gegeben ist ein endlicher un-
|
||
gerichteter Graph G = (V, E) und eine Zahl k ∈ N. Dieser Graph hat eine Dreiecksüberdeckung,
|
||
wenn eine Menge von Knoten C∆ ⊆ V mit |C∆ | ≤ k existiert, so dass zu jedem Teilgraphen (Drei-
|
||
eck) D = (VD , ED ) ⊆ (V, E) mit |VD | = 3 und ED = { {v1 , v2 } ∈ VD ×VD | v1 ̸= v2 } von G gilt,
|
||
v ∈ C∆ für mindestens ein v ∈ VD .
|
||
|
||
Hausaufgabe 11.1 (10 Punkte)
|
||
|
||
|
||
(a) (1 Punkt) Markieren Sie im folgenden Graphen (Abbildung 1 (a)) ein V ERTEX C OVER
|
||
der Größe 5.
|
||
(b) (1 Punkt) Markieren Sie im folgenden Graphen (Abbildung 1 (b)) eine Dreiecksüberde-
|
||
ckung der Größe 5.
|
||
(c) (8 Punkte) Zeigen Sie, dass ∆ C OVER NP-vollständig ist.
|
||
|
||
|
||
|
||
|
||
(a) (b)
|
||
|
||
Abbildung 1: Beispielgraph
|
||
|
||
|
||
Lösung.
|
||
(a) (b)
|
||
|
||
Abbildung 2: Beispielgraph Lösung
|
||
|
||
|
||
(c) Wir zeigen zunächst, ∆ C OVER ∈ NP mittels eines polynomiellen Verifizierers.
|
||
Der polynomielle Verifizierer erhält als Zertifikat eine Menge von Knoten C∆ ⊆ V . Zunächst
|
||
überprüft er, ob |C∆ | ≤ k. Falls dies nicht der Fall ist, verwerfe die Instanz. Ansonsten überprüfe
|
||
für alle Teilgraphen D = (VD , ED ) ⊆ (V, E) mit |VD | = 3 und ED = { {v1 , v2 } ∈ VD ×VD | v1 ̸= v2 }
|
||
von G, ob für mindestens ein v ∈ VD auch v ∈ C∆ gilt. Falls dies gilt, akzeptiere. Ansonsten ver-
|
||
werfe.
|
||
Korrektheit: Der Verifizierer überprüft die geforderten Eigenschaften. Falls ein Graph eine Drei-
|
||
ecksüberdeckung besitzt, so existiert ein entsprechendes Zertifikat C∆ und der Verifizierer ak-
|
||
zeptiert die Instanz. Falls ein Graph keine Dreiecksüberdeckung besitzt, exisitert kein valides
|
||
entsprechendes Zertifikat C∆ und der Verifizierer verwirft die Instanz.
|
||
Laufzeit: Es gibt maximal |V |3 verschiedene Teilmengen, die ein Dreieck bilden könnten und
|
||
daher überprüft werden müssen. Die Überprüfung geht in O(|V |) Zeit. Da alle anderen Schritte
|
||
des Verifizierers in O(1) Zeit erledigt werden können, ergibt sich somit insgesamt eine Laufzeit
|
||
von O(|V |4 ), was einer polynomiellen Laufzeit entspricht.
|
||
Also gilt ∆ C OVER ∈ NP.
|
||
Nun reduzieren wir V ERTEX C OVER auf ∆ C OVER. Betrachte folgende Reduktion:
|
||
Sei I = (G = (V, E), k) eine Instanz von V ERTEX C OVER. Bilde den Graphen G′ = (V ′ , E ′ ) mit
|
||
V ′ = V ∪ { ve | e ∈ E } und E ′ = E ∪ { {ve , e1 }, {ve , e2 } | e = {e1 , e2 } ∈ E }. Gebe I ′ = (G′ , k)
|
||
als ∆ C OVER Instanz aus.
|
||
Korrektheit:
|
||
⇒ (Falls (G, k) eine Ja-Instanz von V ERTEX C OVER ist, dann ist (G′ , k) eine Ja-Instanz von ∆
|
||
C OVER.):
|
||
Sei C ein Vertex Cover mit Größe kleiner oder gleich k von G. Dann ist C ebenfalls eine Drei-
|
||
ecksüberdeckung mit Größe kleiner oder gleich k. Offensichtlich gilt |C| ≤ k. Da C ein Vertex
|
||
Cover von G ist, gilt für jede Kante {u, v} ∈ E, dass u ∈ C oder v ∈ C. Für alle Teilgraphen
|
||
D = (VD , ED ) ⊆ (V, E) mit |VD | = 3 und ED = { {v1 , v2 } ∈ VD ×VD | v1 ̸= v2 } von G gilt damit
|
||
direkt, dass mindestens ein v ∈ VD auch in C enthalten ist. Der Graph G′ besitzt neben allen
|
||
solchen Teilgraphen in G zusätzlich solche Teilgraphen (Dreiecke), die durch die Knotenmenge
|
||
{ ve | e ∈ E } und die entsprechenden Kanten { e, {ve , e1 }, {ve , e2 } | e = {e1 , e2 } ∈ E } entste-
|
||
hen. Für diese Dreiecke gilt aber auch, dass mindestens ein Knoten, nämlich e1 oder e2 , in C
|
||
enthalten sein muss, da C ein Vertex Cover ist.
|
||
⇐ (Falls (G′ , k) eine Ja-Instanz von ∆ C OVER ist, dann ist (G, k) eine Ja-Instanz von V ERTEX -
|
||
C OVER.):
|
||
Sei C∆ eine Dreiecksüberdeckung von G′ der Größe |C∆ | ≤ k. Ohne Beschränkung der All-
|
||
gemeinheit können wir davon ausgehen, dass C∆ ⊆ V gilt: Falls für einen Knoten ve ∈ C∆ gilt,
|
||
können wir e1 zu C∆ hinzufügen und ve aus C∆ löschen. Dadurch bleibt die Überdeckungseigen-
|
||
schaft erhalten und die Menge wird höchstens kleiner. Nun gilt also C∆ ⊆ V . Die Menge C∆ ist
|
||
auch ein Vertex Cover mit Größe kleiner oder gleich k von G. Offensichtlich gilt |C∆ | ≤ k. Da für
|
||
alle Teilgraphen D′ = (VD′ , ED′ ) ⊆ (V ′ , E ′ ) mit |VD′ | = 3 und ED′ = { {v1 , v2 } ∈ VD′ ×VD′ | v1 ̸= v2 }
|
||
von G′ gilt, dass mindestens ein Knoten v ∈ VD′ ebenfalls in C∆ enthalten sein muss, gilt dies
|
||
auch für die Dreiecke {ve , e1 , e2 }. Da außerdem C∆ ⊆ V gilt, gilt e1 ∈ C∆ oder e2 ∈ C∆ für alle
|
||
Kanten e ∈ E.
|
||
Laufzeit: Das Hinzufügen von einem neuen Knoten und zwei neuen Kanten pro Kante geht in
|
||
O(|E|). Damit geht die gesamte Reduktion in O(|E|), also in polynomieller Zeit.
|
||
Also existiert eine polynomielle Reduktion von V ERTEX C OVER auf ∆ C OVER. Da V ERTEX -
|
||
C OVER NP-vollständig aus den Präsenzaufgaben bekannt ist und ∆ C OVER ∈ NP gilt, ist somit
|
||
∆ C OVER NP-vollständig.
|
||
|
||
|
||
Bewertung (a) und (b) jeweils 1 Punkt, (c) gibt 8 Punkte: 1 Punkt Angabe Verifizierer/NDTM,
|
||
0,5 Punkte Korrektheit Verifizierer/NDTM, 0,5 Punkte Laufzeit Verifizierer/NDTM, 1 Punkt
|
||
Angabe Reduktion, 3 Punkte Korrektheit (je Richtung 1,5 Punkte), 1 Punkt Laufzeit Reduktion,
|
||
1 Punkt Beweisführung
|
||
|
||
|
||
|
||
|
||
Abgabe: 30.06.2025, 10:00 in Moodle – bitte beachten Sie die Informationen zum Abgabefor-
|
||
mat im Moodlekurs.
|
||
Hausaufgabe 11
|
||
Marek Lenczewski
|
||
Matrikelnummer: 1025252
|
||
|
||
28. Juni 2025
|
||
|
||
|
||
Hausaufgabe 11.1
|
||
a
|
||
1
|
||
|
||
|
||
2 3
|
||
|
||
|
||
4 5
|
||
|
||
|
||
6 10
|
||
|
||
|
||
7 9
|
||
|
||
|
||
8
|
||
|
||
|
||
b
|
||
a b c
|
||
|
||
|
||
d e
|
||
f g
|
||
|
||
h i j
|
||
|
||
|
||
k l m n
|
||
o p q
|
||
r s
|
||
|
||
|
||
t u v
|
||
|
||
|
||
c
|
||
Teil 1: ∆-Cover ∈ NP
|
||
|
||
|
||
1
|
||
Zuerst brauchen wir einen polynomiellen Verifizierer, um zu zeigen, dass ∆-Cover ∈ NP.
|
||
Der Verifizierer bekommt einen Graphen G = (V, E), Zahl k und ein Zertifikat C∆ ⊆ V und
|
||
arbeitet wie folgt:
|
||
|
||
|
||
1. Prüfe, ob |C∆ | ≤ k
|
||
2. Prüfe alle Knotentripel {a, b, c} ⊆ V , ob sie ein Dreieck bilden (also ob {a, b}, {b, c} und
|
||
{a, c} ∈ E zutrifft) und ob a, b oder c ∈ C∆
|
||
3. Ablehnen, falls ein Dreieck den test nicht besteht, sonst akzeptieren
|
||
|
||
Die Schritte 1 und 3 laufen in O(1) und Schritt zwei läuft in O(|V |3 ), das ergibt eine poly-
|
||
nomielle Laufzeit. Damit ist ∆-Cover ∈ NP.
|
||
|
||
Teil 2: ∆-Cover ist NP-schwer
|
||
Jetzt brauchen wir eine Reduktion von VertexCover auf ∆-Cover, um zu zeigen, dass
|
||
∆-Cover NP-schwer ist.
|
||
|
||
Konstruktion: Sei dafür ein VertexCover gegeben mit einem Graphen G = (V, E) und
|
||
einer Zahl k. Aus G wird G′ = (V ′ , E ′ ), wobei für jede Kante e = {u, v} ∈ E ein neuer Kno-
|
||
ten we ∈ V ′ hinzugefügt wird und mit beiden Knoten u, v verbunden wird, sodass die Kanten
|
||
{v, we } und {u, we } zu E ′ dazu kommen. Das k = k ′ wird übernommen. So werden aus allen
|
||
Kanten Dreiecke.
|
||
|
||
Beweis VertexCover nach ∆-Cover
|
||
• Sei C ein VertexCover für G mit |C| ≤ k
|
||
• Zu zeigen sei, dass C auch ein ∆-Cover für G′ mit |C| ≤ k ist
|
||
• Da C ein VertexCover ist, gilt u ∈ C oder v ∈ C
|
||
• Jedes Dreieck in G′ hat die Form {u, v, we } für eine Kante e = {u, v} ∈ E
|
||
• Somit hat jedes Dreieck mindestens einen Knoten in C
|
||
• Also ist C ein ∆-Cover für G′
|
||
Beweis ∆-Cover nach VertexCover
|
||
• Sei C∆ ein ∆-Cover für G′ mit |C∆ | ≤ k ′
|
||
• Jede Kante e = {u, v} ∈ E bildet durch {u, v, we } ein Dreieck in G′
|
||
• Also gilt u, v oder we ∈ C∆ für alle Kanten in G′
|
||
• Falls we ∈ C∆ , dann kann man we durch u oder v tauschen ohne die Eigenschaft von
|
||
∆-Cover zu verletzen, sodass u oder v ∈ C∆ für alle Kanten in G′ gilt
|
||
• Da sich die Knoten aus C∆ nur vertauschen gilt weiter |C| = |C∆ | ≤ k
|
||
• Weiter sind in C∆ nur noch die Knoten aus V , somit gilt u ∈ C oder v ∈ C für alle Kanten
|
||
E
|
||
• Also ist C ein VertexCover für G
|
||
|
||
|
||
|
||
Da ∆-Cover ∈ NP und NP-schwer ist, folgt dass ∆-Cover NP-vollständig ist. □
|
||
|
||
2
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz
|
||
|
||
30.06.2025
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 12
|
||
|
||
|
||
Hausaufgabe 12.1 (Lower Bound: V ERTEX C OVER) (5 Punkte)
|
||
Betrachten Sie die Reduktion aus der Musterlösung zu Präsenzserie 10 von C LIQUE auf V ER -
|
||
TEX C OVER .
|
||
|
||
1. Geben Sie die Anzahl der Knoten, die Anzahl der Kanten und den Wert k für die re-
|
||
sultierende V ERTEX C OVER Instanz in Abhängigkeit von der originalen C LIQUE Instanz
|
||
an.
|
||
2. Zeigen Sie Lower Bounds für V ERTEX C OVER bezüglich Anzahl der Knoten, Anzahl
|
||
der Kanten und k basierend auf der ETH und der Reduktion aus der Musterlösung zu
|
||
Präsenzserie 10.
|
||
|
||
Lösung. 1. Sei I = (G = (V, E), k) eine Instanz von C LIQUE und I ′ = (G′ = (V ′ , E ′ ), k′ ) die
|
||
aus der Reduktion resultierende Instanz von V ERTEX C OVER. Es gilt |V ′ | = |V |, |E ′ | =
|
||
1 2 ′
|
||
2 |V |(|V | − 1) − |E| ≤ |V | und k = |V | − k ≤ |V |.
|
||
′
|
||
2. • Angenommen es gäbe einen Algorithmus, der V ERTEX C OVER in 2o(|V |) · |I|O(1)
|
||
löst. Durch die Kombination der Reduktion von C LIQUE auf V ERTEX C OVER und
|
||
diesem Algorithmus, existiert dann auch ein 2o(|V |) ·|I|O(1) Algorithmus für C LIQUE,
|
||
da |V ′ | = |V | nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt
|
||
somit, dass die ETH falsch ist.
|
||
Damit kann es so einen Algorithmus für V ERTEX C OVER nur geben, wenn die ETH
|
||
falsch ist.
|
||
√ ′
|
||
• Angenommen es gäbe einen Algorithmus, der V ERTEX C OVER in 2o( |E |) · |I|O(1)
|
||
löst. Durch die Kombination der Reduktion von C LIQUE auf V ERTEX C OVER und
|
||
diesem Algorithmus, existiert dann auch ein 2o(|V |) ·|I|O(1) Algorithmus für C LIQUE,
|
||
da |E ′ | ≤ |V |2 nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt
|
||
somit, dass die ETH falsch ist.
|
||
Damit kann es so einen Algorithmus für V ERTEX C OVER nur geben, wenn die ETH
|
||
falsch ist.
|
||
′
|
||
• Angenommen es gäbe einen Algorithmus, der V ERTEX C OVER in 2o(k ) · |I|O(1) löst.
|
||
Durch die Kombination der Reduktion von C LIQUE auf V ERTEX C OVER und die-
|
||
sem Algorithmus, existiert dann auch ein 2o(|V |) · |I|O(1) Algorithmus für C LIQUE,
|
||
da k′ ≤ |V | nach Aufgabenteil 1. Aus der Musterlösung der Präsenzserie 12 folgt
|
||
somit, dass die ETH falsch ist.
|
||
Damit kann es so einen Algorithmus für V ERTEX C OVER nur geben, wenn die ETH
|
||
falsch ist.
|
||
Bewertung 1 Punkt für den ersten Teil und 1.5 + 1.5 + 1 für den zweiten.
|
||
|
||
Definition 1 (H ITTING S ET). Bei diesem Problem ist ein Universum U, Teilmengen des Uni-
|
||
versums F1 , . . . , Fr ⊆ U und eine Zahl k ∈ N≥0 gegeben. Gibt es eine Menge S ⊆ U mit |U| ≤ k
|
||
und S ∩ Fi ̸= 0/ für alle i ∈ [r]?
|
||
Anschaulicher wird bei diesem Problem nach maximal k Elementen aus dem Universum ge-
|
||
fragt, sodass diese Elemente alle gegebenen Mengen Fi „treffen“.
|
||
|
||
Hausaufgabe 12.2 (Lower Bound: H ITTING S ET) (5 Punkte)
|
||
Betrachten Sie folgende Reduktion von 3-SAT auf H ITTING S ET.
|
||
Für eine gegebene 3-SAT Instanz I mit n Variablen x1 , . . . , xn und m Klauseln C1 , . . . ,Cm : Als
|
||
Universum wählen wir U = { x1 , x̄1 , . . . , xn , x̄n }. Für jede Variable xi fügen wir die Menge Fi :=
|
||
{ xi , x̄i } hinzu. Für jede Klausel C j fügen wir die Menge Fn+ j := C j hinzu. Wir setzen k := n
|
||
und erhalten damit eine H ITTING S ET Instanz I.
|
||
1. Geben Sie die Größe des Universums, die Anzahl der Mengen und die Zahl k aus der
|
||
resultierenden H ITTING S ET Instanz in Abhängigkeit von der Anzahl der Variablen n und
|
||
der Anzahl der Klauseln m aus der originalen 3-SAT Instanz an.
|
||
2. Beweisen Sie Lower Bounds für H ITTING S ET bezüglich Universumsgröße, Anzahl der
|
||
Mengen und der Zahl k basierend auf der obigen Reduktion und der ETH.
|
||
|
||
Lösung. 1. Für die Universumsgröße gilt |U| = 2n, für die Anzahl der Mengen gilt r =
|
||
n + m und es gilt k = n.
|
||
2. • Angenommen es gäbe einen Algorithmus, der H ITTING S ET in 2o(|U|) · |I|O(1) löst.
|
||
Durch die Kombination der Reduktion von 3-SAT auf H ITTING S ET und diesem
|
||
Algorithmus, existiert dann auch ein 2o(n) · |I|O(1) Algorithmus für 3-SAT, da |U| =
|
||
2n nach Aufgabenteil 1. Damit ist die ETH falsch.
|
||
Damit kann es so einen Algorithmus für H ITTING S ET nur geben, wenn die ETH
|
||
falsch ist.
|
||
• Angenommen es gäbe einen Algorithmus, der H ITTING S ET in 2o(r) · |I|O(1) löst.
|
||
Durch die Kombination der Reduktion von 3-SAT auf H ITTING S ET und diesem
|
||
Algorithmus, existiert dann auch ein 2o(m) · |I|O(1) Algorithmus für 3-SAT, da r =
|
||
n + m nach Aufgabenteil 1 und n ≤ 3m für 3-SAT gilt. Aus dem Sparsification
|
||
Lemma folgt damit, dass die ETH falsch ist.
|
||
Damit kann es so einen Algorithmus für H ITTING S ET nur geben, wenn die ETH
|
||
falsch ist.
|
||
• Angenommen es gäbe einen Algorithmus, der H ITTING S ET in 2o(k) · |I|O(1) löst.
|
||
Durch die Kombination der Reduktion von 3-SAT auf H ITTING S ET und diesem
|
||
Algorithmus, existiert dann auch ein 2o(n) · |I|O(1) Algorithmus für 3-SAT, da k = n
|
||
nach Aufgabenteil 1. Damit ist die ETH falsch.
|
||
Damit kann es so einen Algorithmus für H ITTING S ET nur geben, wenn die ETH
|
||
falsch ist.
|
||
|
||
|
||
Bewertung 1 Punkt für den ersten Teil und 1.5 + 1.5 + 1 für den zweiten.
|
||
|
||
Abgabe: 07.07.2025, 10:00 in Moodle – bitte beachten Sie die Informationen zum Abgabefor-
|
||
mat im Moodlekurs.
|
||
Hausaufgabe 12
|
||
Marek Lenczewski
|
||
Matrikelnummer: 1025252
|
||
|
||
6. Juli 2025
|
||
|
||
|
||
Hausaufgabe 12.1.1
|
||
Die Knotenzahl bleibt gleich: |V ′ | = |V | = n
|
||
Die Kantenzahl entspricht den nicht vorhandenen Kanten: |E ′ | = |E|
|
||
k ′ entspricht allen Knoten, die vorher nicht in der Clique waren: k ′ = n − k
|
||
|
||
|
||
Hausaufgabe 12.1.2
|
||
Wir wissen, dass 3-SAT laut ETH mindestens 2Ω(n) braucht, wobei n für die Anzahl der Varia-
|
||
blen steht.
|
||
|
||
In der Vorlesung wurde eine Reduktion von 3-SAT auf Clique gezeigt. In der Präsenzaufgabe
|
||
10.2 wurde eine Reduktion von Clique auf VertexCover gezeigt. Also gibt es eine Reduktion von
|
||
3-SAT zu VertexCover. Somit kann VertexCover nicht schneller lösbar sein als 3-SAT, weil sonst
|
||
3-SAT schneller werden würde, was nach ETH nicht geht.
|
||
|
||
So ergeben sich die folgenden Lower Bounds:
|
||
|
||
• Bezüglich Anzahl der Knoten: 2Ω(n) , wobei n = |V ′ |. Die Knotenzahl verändert sich
|
||
nicht bei den Reduktionen.
|
||
√
|
||
• Bezüglich Anzahl der Kanten: 2Ω( m) , wobei m = |E ′ |. Die Kanten können bei den
|
||
Reduktionen zu einem quadratischen Wachstum der Kanten führen.
|
||
′
|
||
• Bezüglich k ′ : 2Ω(k ) . Bei der Reduktion gilt k ′ = n − k, wobei k ′ linear von n abhängt.
|
||
|
||
|
||
|
||
|
||
1
|
||
Hausaufgabe 12.2.1
|
||
• Größe des Universums: |U | = 2n. Für jede der n Variablen gibt es zwei Elemente (xi
|
||
und xi )
|
||
|
||
• Anzahl der Mengen: n + m. n sind die Variablenmengen und m die Klauselmengen. (Fi
|
||
und Fn+j )
|
||
|
||
• Parameter: k = n. Wird in der Reduktion so übernommen.
|
||
|
||
|
||
Hausaufgabe 12.2.2
|
||
Wir wissen, dass 3-SAT laut ETH mindestens 2Ω(n) braucht, wobei n für die Anzahl der Varia-
|
||
blen steht. Somit kann HittingSet nicht schneller sein.
|
||
|
||
Es ergeben sich die folgenden Lower Bounds für HittingSet:
|
||
|
||
• Bezüglich Größe des Universums: 2Ω(|U |/2) , da für jede Variable zwei Elemente ins
|
||
Universum aufgenommen werden
|
||
|
||
• Bezüglich Anzahl der Mengen: 2Ω(n) , wobei die Anzahl der Variablen- und Klausel-
|
||
mengen (m + n) mindestens n ist
|
||
|
||
• Bezüglich Zahl k: 2Ω(k) , da in der Reduktion k = n gilt.
|
||
|
||
|
||
|
||
|
||
2
|
||
CHRISTIAN-ALBRECHTS-UNIVERSITÄT ZU KIEL
|
||
Institut für Informatik, Arbeitsgruppe Algorithmen und Komplexität
|
||
Prof. Dr. K. Jansen, B. Schumacher, C. Wambsganz
|
||
|
||
07.07.2025
|
||
|
||
Hausaufgaben zur Vorlesung »Analyse von Algorithmen und
|
||
Komplexität«
|
||
Blatt 13
|
||
|
||
|
||
Definition 1 (M AX -3-S AT). Bei dem Problem M AX -3-S AT ist eine Formel φ in konjunktiver
|
||
Normalform gegeben, wobei jede Klausel 3 Literale enthält. Gesucht ist eine Belegung β der
|
||
Variablen, die die Anzahl v(β ) der erfüllten Klauseln maximiert.
|
||
|
||
Hausaufgabe 13.1 (M AX -3-S AT) (10 Punkte)
|
||
Betrachten Sie folgenden Algorithmus A:
|
||
• Sei β0 die Belegung, die alle Variablen auf false setzt.
|
||
• Sei β1 die Belegung, die alle Variablen auf true setzt.
|
||
• Falls v(β0 ) ≥ v(β1 ), gib β0 zurück.
|
||
• Sonst gib β1 zurück.
|
||
|
||
(a) (6 Punkte) Zeigen Sie, dass obiger Algorithmus Güte 2 hat, d.h. v(A(φ )) ≥ 12 v(OPT (φ ))
|
||
gilt für alle Eingaben φ .
|
||
(b) (4 Punkte) Geben Sie eine Formel an, bei der der Algorithmus eine Belegung ausgibt, die
|
||
genau die Hälfte der maximal erfüllbaren Klauseln erfüllt. Begründen Sie kurz, warum
|
||
Ihre Formel geeignet ist.
|
||
Hinweis: Sie brauchen nur höchstens zwei Klauseln und vier Variablen.
|
||
|
||
Lösung. (a) Für jede Klausel C gilt, dass sie von mindestens einer der Belegungen β0 und
|
||
β1 erfüllt wird. Wir zeigen nun per Widerspruch, dass der obige Algorithmus eine Güte
|
||
von 2 hat:
|
||
Angenommen, es gilt v(A(φ )) < 12 v(OPT (φ )) für eine Formel φ . Sei m die Anzahl an
|
||
Klauseln in φ . Dann gilt v(OPT (φ )) ≤ m. Da v(A(φ )) < 12 v(OPT (φ )) ≤ 12 m, gilt v(β0 ) <
|
||
1 1
|
||
2 m und v(β1 ) < 2 m. Da jede Klausel C allerdings von mindestens einer der Belegungen
|
||
β0 und β1 erfüllt wird, gilt v(β0 ) ≥ 12 m oder v(β1 ) ≥ 12 m. Dies ist ein Widerspruch.
|
||
Also gilt v(A(φ )) ≥ 21 v(OPT (φ )) für alle Eingaben φ und obiger Algorithmus hat Güte
|
||
2.
|
||
(b) Betrachte folgende Formel: φ = (x1 ∨x2 ∨x3 )∧(¬x0 ∨¬x2 ∨¬x3 ) Mit β = {x0 → f alse, x1 →
|
||
true, x2 → true, x3 → true} gilt v(β ) = 2. Da φ nur zwei Klauseln hat, gilt somit v(OPT (φ )) =
|
||
2. Es gilt allerdings v(β0 ) = 1, da hier nur die zweite Klausel erfüllt ist, und v(β1 ) = 1,
|
||
da hier nur die erste Klausel erfüllt ist. Somit gilt v(A(φ )) = 1 = 12 · 2 = 21 v(OPT (φ )).
|
||
Bewertung (a) 2 Punkte korrekte Beweisführung im Allgemeinen, 2 Punkte Abschätzung
|
||
Algorithmus, 2 Punkte Abschätzung Optimum; (b) 2 Punkte für Angabe einer korrekten Formel,
|
||
1 Punkt Ausgabe Algorithmus, 1 Punkt Optimum
|
||
|
||
|
||
|
||
|
||
Abgabe: 14.07.2025, 10:00 in Moodle – bitte beachten Sie die Informationen zum Abgabefor-
|
||
mat im Moodlekurs.
|
||
Hausaufgabe 13
|
||
Marek Lenczewski
|
||
Matrikelnummer: 1025252
|
||
|
||
13. Juli 2025
|
||
|
||
|
||
Hausaufgabe 13.1.a
|
||
Zu zeigen ist, dass der Algorithmus die Güte 2 hat, also die Lösung vom Algorithmus mindestens
|
||
halb so gut ist wie die optimale Lösung. Also ν(A(ϕ)) ≥ 21 ν(OP T (ϕ)) für alle Eingaben ϕ.
|
||
|
||
Sei ϕ eine beliebige 3-SAT-Formel mit m Klauseln C1 , C2 , . . . , Cm , wobei jede Klausel genau
|
||
3 Literale enthält.
|
||
|
||
Jede Klausel Ci ist wahr, wenn β0 wahr ist oder wenn β1 wahr ist oder beides. Da die Varia-
|
||
blen in Ci nur positiv oder negativ sein können, muss dabei mindestens β0 oder β1 wahr werden.
|
||
|
||
Der Algorithmus wählt die Belegung β0 oder β1 aus, die die meisten Klauseln Ci erfüllt.
|
||
Somit ist die Anzahl der ausgewählten Klauseln Ci mindestens m2 , da eine bei jeder Klausel
|
||
mindestens eine Belegung wahr werden muss und somit hat mindestens eine Belegung mindes-
|
||
tens m
|
||
2 wahre Klauseln.
|
||
|
||
Sei ν0 = Anzahl der von β0 erfüllten Klauseln und ν1 = Anzahl der von β1 erfüllten Klauseln.
|
||
|
||
So ergibt sich ν(A(ϕ)) = max{ν0 , ν1 } ≥ ν0 +ν
|
||
2
|
||
1
|
||
≥m
|
||
2.
|
||
|
||
Da die optimale Lösung höchstens alle m Klauseln erfüllen kann, gilt ν(OP T (ϕ)) ≤ m.
|
||
ν(OP T (ϕ))
|
||
Daraus folgt: ν(A(ϕ)) ≥ m
|
||
2 ≥ 2 .
|
||
|
||
Somit hat der Algorithmus eine Güte von 2.
|
||
|
||
|
||
|
||
|
||
1
|
||
Hausaufgabe 13.1.b
|
||
Der Algorithmus erfüllt genau die Hälfte der maximal erfüllbaren Klauseln, wenn jede Klausel
|
||
nur aus positiven oder negativen Variablen besteht und sich diese genau gleich aufteilen.
|
||
|
||
Formel: ϕ = (x1 ∨ x2 ∨ x3 ) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3 )
|
||
|
||
Unter β0 (alle false):
|
||
|
||
• C1 = (x1 ∨ x2 ∨ x3 ) = (false ∨ false ∨ false) = false
|
||
|
||
• C2 = (¬x1 ∨ ¬x2 ∨ ¬x3 ) = (true ∨ true ∨ true) = true
|
||
|
||
• ν(β0 ) = 1
|
||
|
||
Unter β1 (alle true):
|
||
|
||
• C1 = (x1 ∨ x2 ∨ x3 ) = (true ∨ true ∨ true) = true
|
||
|
||
• C2 = (¬x1 ∨ ¬x2 ∨ ¬x3 ) = (false ∨ false ∨ false) = false
|
||
|
||
• ν(β1 ) = 1
|
||
|
||
Der Algorithmus wählt ν(A(ϕ)) = max{ν(β0 ), ν(β1 )} = max{1, 1} = 1.
|
||
|
||
Eine optimale Lösung wäre zum Beispiel x1 = true, x2 = false, x3 = false.
|
||
|
||
• C1 = (true ∨ false ∨ false) = true
|
||
|
||
• C2 = (false ∨ true ∨ true) = true
|
||
|
||
Daraus ergibt sich ν(OP T (ϕ)) = 2, also ν(A(ϕ)) = ν(OP2T (ϕ)) . Somit hat es die Güte 2.
|
||
|
||
|
||
|
||
|
||
2
|
||
|