Prof. Dr. E. Wanke S. Hoffmann, M.Sc. Düsseldorf, 30. Juni 2014 Übungen zur Vorlesung Algorithmische Komplexitätstheorie Die Übungen finden Donnerstags von 16:00 bis 17:30 Uhr in Raum 25.13.U1.32 statt. Die Aufgaben sollten unbedingt schriftlich bearbeitet werden. Die Lösungen können bis zum jeweils angegebenen Termin im entsprechenden Briefkasten auf 25.13.O2 oder per EMail an [email protected] abgegeben werden. Die Abgaben werden korrigiert und an dem Übungstermin zurückgegeben, wo die Aufgaben besprochen werden. Korrigiert werden nur leserliche Abgaben, bei Abgaben per E-Mail nur solche im PDF Dateiformat. Klausurzulassung: Zur Klausur wird jeder zugelassen, der an maximal zwei Übungsterminen gefehlt hat oder mindestens zwei Übungsaufgaben vorgerechnet und dabei erklärt hat. Übungstermin 17.04. 24.04. 01.05. 08.05. 15.05. 22.05. Abgabe bis 15.04. 12:00 Uhr 22.04. 12:00 Uhr keine Abgabe 06.05 12:00 Uhr 13.05 12:00 Uhr 20.05 12:00 Uhr 29.05. 05.06. 12.06. 19.06. 26.06. 03.07. keine Abgabe 03.06 12:00 Uhr 10.06 12:00 Uhr keine Abgabe 24.06 12:00 Uhr 02.07 12:00 Uhr Aufgaben 1 2,3 4-6 7-9 10 Kommentar Es findet keine Übung statt Aufgabe 6 ist eine alte Klausuraufgabe Während der Übung sollen Lösungen zu einigen der Aufgaben 11 bis 17 erarbeitet werden Es findet keine Übung statt 15-18 19-21 Es findet keine Übung statt 22-24 25,26 Letzte Übung vor der Klausur. Überlegen Sie sich Fragen oder Themen, die wiederholt werden sollen. Aufgabe 1: Geben Sie eine deterministische Turingmaschine (Q, Σ, δ, s) an, die zu einer gegebenen Zahl n ∈ N in Binärdarstellung eins addiert, wenn 1. die Bits in aufsteigender Reihenfolge ihrer Wertigkeit von links nach rechts hinter dem initialen Symbol stehen (Initialkonfiguration (s, ., 001) für n = 4). 2. die Bits in absteigender Reihenfolge ihrer Wertigkeit von links nach rechts hinter dem initialen Symbol stehen (Initialkonfiguration (s, ., 100) für n = 4). Aufgabe 2: M Definieren Sie die Relation 7−→ für deterministische k-Band-Turingmaschinen. Aufgabe 3: Seien M1 = (Q1 , Σ, δ1 , s1 ) und M2 = (Q2 , Σ, δ2 , s2 ) deterministische 1-BandTuringmaschinen. Geben Sie eine deterministische 2-Band-Turingmaschine M an, so dass für alle x ∈ Σ∗ gilt: M (x) = yes genau dann wenn M1 (x) = yes oder M2 (x) = yes. Aufgabe 4: Sei Σ := {a, b, c} und L := {an bm cn | n, m ∈ N} ⊂ Σ∗ eine Sprache über dem Alphabet Σ. 1. Geben Sie eine deterministische 2-Band-Turingmaschine M an, die L in einer minimalen Anzahl an Schritten akzeptiert. 2. Geben Sie eine möglichst gute, obere Zeitschranke f : N0 → N0 für M an. 3. Gibt es eine deterministische 1-Band-Turingmaschine, die L mit der Zeitschranke f akzeptiert? Begründen Sie Ihre Antwort. Aufgabe 5: Sei A ⊂ N die Menge aller natürlichen Zahlen, die keine Primzahlen sind. Beschreiben Sie mögliche Arbeitsweisen einer 1. deterministischen 2. nichtdeterministischen Turingmaschine, um A zu akzeptieren. Wo liegt der Vorteil des Nichtdeterminismus? Aufgabe 6 (alte Klausuraufgabe): Gegeben sei das Alphabet Σ := {0, 1, 2}. Definiere die Sprache L ⊂ Σ∗ durch L := {u2v | u, v ∈ {0, 1}∗ ∧ u ist ein zusammenhängender Teilstring von v}. Geben Sie eine nichtdeterministische Turingmaschine M an, die L akzeptiert. Erläutern Sie kurz die Arbeitsweise von M . Aufgabe 7: Geben Sie eine nichtdeterministische 2-Band Turingmaschine M = (Q, Σ, ∆, s) an, die für jede Eingabe x ∈ Σ∗ eine |x|-stellige Binärzahl auf das Ausgabeband schreibt und dann in Zustand h hält. Die geschriebene Binärzahl soll nichtdeterministisch “geraten” werden, es soll also für jede mögliche, |x|-stellige Binärzahl n einen Berechnungspfad in M geben, bei dem n geschrieben wird. Formal soll also Folgendes erfüllt sein: ∀x ∈ Σ∗ ∀n ∈ {0, . . . , 2|x| − 1} : M∗ (s, ., x, ., ) 7−→ (h, .x, , .n, ) Aufgabe 8: Definiere für eine gegebene Sprache L ⊂ Σ∗ über dem Alphabet Σ die Komplementsprache L := Σ∗ \ L. 1. Zeigen Sie: Für jede deterministische Komplexitätsklasse C gilt L∈C ⇔ L∈C 2. Gilt die Äquivalenz aus 1. auch für nichtdeterministische Komplexitätsklassen? Begründen Sie Ihre Antwort. 3. Sei Q ⊂ {−, 0, . . . , 9}∗ die Menge aller ganzen Zahlen in Dezimaldarstellung, die Quadratzahlen sind. Was enthält dann Q? Aufgabe 9: Definieren Sie, äquivalent zur NP-Vollständigkeit, den Begriff der P-Vollständigkeit. Hierzu ist es notwendig Reduktionen auf logarithmischen Platz zu definieren. Erläutern Sie ebenfalls, warum ≤p zu diesem Zweck unzureichend ist. Aufgabe 10: Sei A ein beliebiges, NP-vollständiges Problem. Zeigen Sie: A∈P ⇒ P = NP Aufgabe 11 (Teil einer alten Klausuraufgabe): Zeigen Sie, dass das folgende Problem NP-vollständig ist. 4-Omni-Sat Gegeben: Frage: Eine Menge von Boolschen Variablen X und eine Menge C von Klauseln über X, so dass 1. ∀c ∈ C |c| = 4 und 2. ∃x ∈ X ∀c ∈ C (x ∈ c ∨ x ∈ c). Ist C erfüllbar? Aufgabe 12: Sei X eine Menge von Boolschen Variablen und C eine Menge von Klauseln über X. Der Klausel-Variablen-Graph G(X,C) hat einen Knoten x für jede Variable x ∈ X und einen Knoten c für jede Klausel c ∈ C. Es gibt eine Kante {x, c} zwischen einem Variabelknoten x und Klauselknoten c genau dann wenn c das Literal x oder x enthält. Zeigen Sie, dass das folgende Problem NP-vollständig ist. Connected Sat Gegeben: Frage: Eine Menge von Boolschen Variablen X und eine Menge von Klauseln C über X, so dass G(X,C) zusammenhängend ist. Ist C erfüllbar? Aufgabe 13: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Traveling Salesman Problem (TSP) / Rundreiseproblem Gegeben: Frage: Ein vollständiger Graph Kn = (V, E) mit n Knoten (d.h. |V | = n und E = {{u, v} | u, v ∈ V ∧ u 6= v}), eine Bewertung der Kanten c : E → R+ und eine maximale Rundreiselänge l ∈ R+ . Gibt es einen Hamilton Kreis v1 , . . . , vn , so dass c({vn , v1 }) + n−1 X c({vi , vi+1 }) ≤l ? i=1 Aufgabe 14: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Set Cover / Mengenüberdeckungsproblem Gegeben: Frage: Eine endliche Menge U , eine Familie von n Teilmengen S := {Si | 1 ≤ i ≤ n ∧ Si ⊆ U } und eine natürliche Zahl S k ∈ N. Gibt es eine Teilmenge C ⊆ S mit |C| ≤ k und U = S∈C S? Aufgabe 15: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Exact Cover by 3-Sets (X3C) Gegeben: Frage: Zahlen n, k ∈ N, eine Menge U mit |U | = 3 · k, und eine Familie von n dreielementigen Teilmengen S := {Si | 1 ≤ i ≤ n ∧ Si ⊆ U ∧ |Si | = 3}. S Gibt es eine Teilmenge C ⊆ S mit |C| = k und U = S∈C S? Aufgabe 16: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Degree Constrained Spanning Tree (DCST) Gegeben: Frage: Ein ungerichteter, zusammenhängender Graph G = (V, E) und eine Zahl k ∈ N. Gibt es einen Teilgraphen T = (V, ET ) von G, so dass T ein Baum ist und jeder Knoten in T einen Knotengrad (=Anzahl der inzidenten Kanten) von höchstens k hat? Aufgabe 17: Sei G = (V, E) ein ungerichteter Graph und U ⊆ V eine Teilmenge der Knoten. U ist eine dominierende Menge für G genau dann, wenn ∀v ∈ V : v∈U ∨ (∃u ∈ U : {u, v} ∈ E). Zeigen Sie, dass das folgende Problem NP-vollständig ist. Dominating Set (DS) Gegeben: Ein ungerichteter Graph G = (V, E) und eine Zahl k ∈ N. Frage: Gibt es eine dominierende Menge U für G mit |U | ≤ k? Aufgabe 18: Seien L1 und L2 zwei Sprachen über einem Alphabet Σ mit L1 ⊂ L2 . Zeigen oder widerlegen Sie folgende Aussagen: 1. Wenn L1 NP-schwer ist, dann ist auch L2 NP-schwer. 2. Wenn L2 NP-schwer ist, dann ist auch L1 NP-schwer. 3. Wenn L1 ∈ P , dann auch L2 ∈ P . 4. Wenn L2 ∈ P , dann auch L1 ∈ P . Aufgabe 19: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Hitting Set Gegeben: Frage: Eine Menge U , eine Familie von Teilmengen S := {S | S ⊆ U } und eine natürliche Zahl k ∈ N. Gibt es eine Teilmenge C ⊆ U mit |C| ≤ k und ∀S ∈ S : S ∩ C 6= ∅? Aufgabe 20: Für eine natürliche Zahl k ∈ N sei das Entscheidungsproblem k-Colorability wie folgt definiert: k-Colorability Gegeben: Ein ungerichteter Graph G = (V, E) Frage: Gibt es eine Abbildung c : V → {1, . . . , k}, so dass ∀{u, v} ∈ E : c(u) 6= c(v)? Untersuchen Sie die Zeitkomplexität der Probleme 2-Colorability und 3-Colorability. Was können Sie anhand dieser Erkenntnisse über das folgende Problem aussagen? Chromatic Number Gegeben: Ein ungerichteter Graph G = (V, E) und eine Zahl k ∈ N Frage: Gibt es eine Abbildung c : V → {1, . . . , k}, so dass ∀{u, v} ∈ E : c(u) 6= c(v)? Aufgabe 21: Für eine natürliche Zahl k ∈ N definieren wir die k-te Scheibe des Clique Problems als das folgende Entscheidungsproblem: k-Clique Gegeben: Ein ungerichteter Graph G = (V, E) Frage: Enthält G einen vollständigen Teilgraphen mit mindestens k Knoten? Untersuchen Sie die Zeitkomplexität von k-Clique für alle natürlichen Zahlen k. Aufgabe 22 (alte Klausuraufgabe): Es ist bekannt, dass das Problem Partition NP-vollständig ist. Partition Gegeben: Frage: Eine Menge M = {m1 , . . . , mk } mit k Objekten und eine Gewichtung c : M → N. Gibt A ∪ B = M mit A ∩ B = ∅ und P es eine Partition P c(m) = c(m) ? m∈A m∈B Betrachten Sie einen pseudopolynomiellen Algorithmus für Partition, der für i = 0, . . . , k P und j = 0, . . . , s mit s = c(m) einen Wert w(i, j) ∈ {0, 1} berechnet, so dass m∈M w(i, j) = 1 genau dann, wenn es eine Teilmenge A ⊆ {m1 , . . . , mi } gibt mit X c(m) = j. m∈A Initialisiert werden die Werte w(0, 0) = 1 und w(0, j) = 0 für j = 1, . . . , s. 1. Beschreiben Sie das Berechnungsverfahren für w(i, j) mit i > 0. 2. Wie kann mit Hilfe der berechneten w(i, j) Werte die Antwort ermittelt werden? Aufgabe 23: Formulieren Sie die Optimierungsprobleme Minimum Vertex Cover und Maximum Knapsack, indem Sie jeweils folgendes angeben: 1. Die Menge aller zulässigen Eingaben D, 2. die Menge aller Lösungen S(I) für eine Instanz I ∈ D und 3. eine Bewertungsfunktion f , die jedem s ∈ S(I) einen positiven Wert zuordnet. Aufgabe 24: Führen Sie den FIRST-FIT Algorithmus mit den folgenden Instanzen für das Optimierungsproblem Minimum Bin Packing durch und bestimmen Sie jeweils den Wert RF F (I). ( 1 , wenn i gerade 1. I = (U, g) mit U := {o1 , . . . , o16 } und g(oi ) := 18 , wenn i ungerade 2 0.15, wenn 1 ≤ i ≤ 6 2. I = (U, g) mit U := {o1 , . . . , o18 } und g(oi ) := 0.34, wenn 7 ≤ i ≤ 12 0.51, wenn 13 ≤ i ≤ 18 Aufgabe 25: Zeigen Sie, dass das folgende Problem NP-vollständig ist. Disjoint Sets Gegeben: Frage: Eine endliche Menge U , eine Familie von Teilmengen S = {S | S ⊆ U } und eine Zahl k ∈ N. Gibt es eine Teilmenge C ⊆ S, so dass C mindestens k Mengen enthält, die alle paarweise disjunkt sind? Aufgabe 26: Zeigen Sie: Wenn es einen polynomiellen Approximationsalgorithmus mit additivem Fehler für das Problem Maximum Clique gibt, dann gilt P = N P . Definition (Wiederholung): Sei X = {x1 , . . . , xn } eine Menge Boolescher Variablen. Eine Belegung für X ist eine Abbildung t : X → {T, F }. Für eine Variable x ∈ X sei x das positive und x das negative Literal. Das Literal x ist wahr unter t, falls t(x) = T , das Literal x ist wahr, falls t(x) = F . Eine Klausel C über X ist eine Menge von Literalen über X. Klausel C wird von einer Belegung t für X erfüllt, wenn C mindestens ein Literal enthält, das unter t wahr ist. Eine Menge F von Klauseln über X ist erfüllbar, wenn es eine Belegung t für X gibt, die jede Klausel erfüllt. Aufgabe ??: Zeigen Sie, dass folgende Probleme in P liegen, d.h. geben Sie deterministische Algorithmen an, die die Probleme in polynomieller Zeit entscheiden. Die formale Angabe von Turingmaschinen ist nicht notwendig. HORN-SAT Gegeben: Frage: Eine Menge Boolscher Variablen X und eine Menge F von Klauseln über X, so dass jede Klausel höchstens ein positives Literal enthält. Ist F erfüllbar? 2-SAT Gegeben: Frage: Eine Menge Boolscher Variablen X und eine Menge F von Klauseln über X, so dass jede Klausel genau zwei Literale enthält. Ist F erfüllbar?