Theoretische Informatik SS 03 Übung 11 Aufgabe 1 Zeigen Sie, dass es eine einfachere Reduktion (als die in der Vorlesung durchgeführte) von SAT auf 3KNF-SAT gibt, wenn man annimmt, dass die Formel des SAT-Problems bereits in konjunktiver Normalform vorliegt. Beweis: Wir stellen jede Disjuktion von Variablen in der gegebenen SAT-Instanz durch eine Gruppe von Disjunktionen dar, die zu dieser äquivalent sind und je drei Literale enthalten. Dazu führen wir zusätzliche Variablen ein. Die gegebene SAT-Instanz liegt in der Form F = D 1 D 2... D n vor. Im folgenden wird jede Klausel D i einzeln betrachtet. Alle dabei entstehenden Klauseln D i weisen drei Literale auf und bilden dann eine 3KNF-SAT-Formel F = D 1 D 2... D m, die genau dann erfüllbar ist, wenn F erfüllbar ist. Sei D i = z 1 z 2... z k eine Disjunktion der gegebenen SAT-Instanz, wobei z j = u j oder u j ist. Es wird eine Fallunterscheidung für verschiedene Werte von k durchgeführt. k = 3: Die gegebene Klausel wird unverändert übernommen. z 1 z 2 z 3 k = 2: Es wird eine neue Variable, u l eingeführt: = Es entstehen zwei neue Klauseln aus der gegebenen Klausel z 1 z 2 : z 1 z 2 u l z 1 z 2 u l k = 1: Es werden zwei neue Variablen, u l1 und u l2, eingeführt: = Es entstehen vier neue Klauseln aus der gegebenen Klausel z 1 : k = 4: Es wird eine neue Variable, u l, eingeführt: = Es entstehen zwei neue Klauseln aus der gegebenen Klausel z 1 z 2 z 3 z 4 : 1
z 1 z 2 u l u l z 3 z 4 k > 4: Es werden k 3 neue Variablen, u l1,..., u l(k 3), eingeführt: = Es entstehen k 2 neue Klauseln aus der gegebenen Klausel z 1 z 2... z k : Aufgabe 2 z 1 z 2 u l1 u l1 z 3 u l2... u l(k 3) z k 1 z k Zeigen Sie durch Reduktion von 3KNF-SAT, dass das Problem MENGENÜBERDECKUNG NP-vollständig ist. MENGENÜBERDECKUNG: gegeben: Ein Mengensystem über einer endlichen Grundmenge M, also T 1,..., T k M, sowie eine Zahl n k. gefragt: Gibt es eine Auswahl aus n Mengen T i1,..., T in, bei der bereits alle Elemente aus M vorkommen? Beweis: Sei F = K 1... K m die Eingabe für 3KNF-SAT (K i ist Disjunktion dreier Literale, echt oder negiert). F enthalte n Variablen und besteht aus m Klauseln. Sei weiterhin M = {1, 2,..., m, m + 1,..., m + n} und das Mengensystem enthalte die folgenden Mengen i {1, 2,..., n}. T i = {j x i kommt in Klausel K j vor} {m + i} i {1, 2,..., n}. T i = {j x i kommt in Klausel K j vor} {m + i} = Gegeben sei eine erfüllende Belegung von F, also gibt es in jeder Klausel ein erfüllendes Literal. Wir wählen nun die Menge T i als eine der n zu wählenden Mengen, falls x i = 1, andernfalls T i, für alle i = 1,..., n (Auswahlkriterium). 2
Dann gilt folgendes: Wir haben n Mengen ausgewählt, wie gefordert. Die Elemente {m+i i = 1,..., n} sind in diesen Mengen enthalten, da immer entweder T i oder T i gewählt wurden ( i = 1,..., n). Die Elemente {1, 2,..., m} sind ebenfalls in den gewählten Mengen enthalten, denn: Ann.: Das Element j, j beliebig aus j = 1, 2,..., m, ist in keiner der gewählten Mengen enthalten. = Kommen in K j die Literale x l, x m und x n vor (die anderen 7 Fälle können analog betrachtet werden), so wurden folglich T l, T m und T n gewählt. (sonst wäre Element j in einer der gewälten Mengen enthalten). = In der vorliegenden erfüllenden Belegung gilt x l = 1, x m = 1 und x n = 1, da die ungestrichenen Mengen, also hier T l, T m und T n, genau dann ausgewählt werden, wenn die zugehörige Variable (hier also x l, x m bzw. x n ) in der vorliegenden, erfüllenden Belegung 1 ist (Auswahlkriterium). = Widerspuch, da dann K j nicht erfüllt ist (also keine erfüllende Belegung vorliegt). = Element j ist also in einer der gewählten Mengen enthalten und folglich, da j beliebig gewählt war, alle Elemente {1, 2,..., n}. Es liegt also eine Teilmenge des Mengensystems aus n Mengen vor und jedes Element von M ist in einer dieser Mengen enthalten. Ist also F erfüllbar, so ist auch die nach obiger Vorschrift gebildete Instanz von MENGENÜBERDECKUNG erfüllbar. = Sei nun umgekehrt {U 1,..., U n } {T 1,..., T n, T 1,..., T n} eine n-elementige Menge des Mengensystems, die alle Elemente aus M erfasst. = i = 1,..., n ist genau eine Menge U j enthalten, die das Element m + i enthält, also folglich entweder T i oder T i, i = 1,..., n. O.B.d.A. gelte U 1 {T 1, T 1 }, U 2 {T 2, T 2 },..., U n {T n, T n }. Weiterhin kommen in U 1,..., U n alle Elemente {1,..., m} vor. Wir setzen in der zu bildenden Belegung für 3KNF-SAT x i genau dann auf 1, wenn U i = T i = {j x i kommt in Klausel K j vor} {m + i} (Belegungskriterium) Damit entspricht U i genau der Menge der Elemente j, wobei x i in Klausel K j vorkommt. Bei dieser Wahl der Belegung werden alle Klauseln K j, j {1,..., m} wahr, denn 3
Ann.: Die Klausel K j (j 1,..., m) wird durch diese Wahl der Belegung nicht erfüllt. = Kommen in K j die Literale x l, x m und x n vor (die anderen 7 Fälle lassen sich analog abhandeln), so wurden also die Belegungen x l = 0, x m = 0 und x n = 0 gewählt (denn sonst wäre K j wahr). = Dann muss aber gelten U l = T l, U m = T m und U n = T n, da sonst x l, x m bzw. x n auf 1 gesetzt worden wären (Belegungskriterium). = Element j für unsere beliebig gewählte Klausel K j kommt in U l, U m und U n also nicht vor, da die gestrichenen Mengen (T i ) nach Definition die Klauseln aufzählen, in denen die jeweiligen negierten Variablen auftreten, K j jedoch nur nicht negierte Literale enthält. In einer anderen der gewählten Mengen kann Element j jedoch ebenfalls nicht enthalten sein, da K j nur aus den genannten drei Literalen besteht (3KNF-SAT). = Die Vereinigung der n gewählten Mengen des Mengensystems enthält Element j nicht. Dies ist ein Widerspruch zur Annahme, dass U 1, U 2,..., U n Lösung von MENGENÜBERDE- CKUNG ist. = Also werden alle Klauseln durch diese Belegungswahl wahr, da Klausel j beliebig gewählt wurde. Es gilt folglich 3KNF-SAT p MENGENÜBERDECKUNG. 4
Aufgabe 3 Zeigen Sie durch Reduktion von RUCKSACK, dass das Problem PARTITION NP-vollständig ist. PARTITION: gegeben: natürliche Zahlen a 1, a 2,..., a k gefragt: Gibt es eine Teilmenge J {1, 2,..., k} mit i J a i = i J a i? Beweis: Gegeben sei eine RUCKSACK-Eingabe durch die Gewichtswerte a 1, a 2,..., a k und die Konstante b. Gefragt ist beim Problem RUCKSACK, ob es eine Teilmenge I {1, 2,..., k} gibt, für die gilt: i I a i = b. Zunächst wird die Zahl M = k i=1 a i berechnet. Aus der RUCKSACK-Eingabe (a 1, a 2,..., a k, b) wird die PARTITION-Eingabe (a 1, a 2,..., a k, M b + 1, b + 1) gebildet. = Angenommen eine RUCKSACK-Instanz hat eine Lösung I {1, 2,..., k}. Dann gilt folglich i I a i = b. I {k + 1} ist dann jedoch eine Lösung für die nach obiger Vorschrift gebildete PARTITION-Instanz, denn: b }{{} i I a i + M b + 1 }{{} k+1-tes Element = M + 1 = b + 1 }{{} k+2-tes Element + M b }{{} i I a i = Sei J Lösung von PARTITION. Dann können M b + 1 und b + 1 nicht in der gleichen Partition liegen, da gilt, jedoch die Gesamtsumme aller Elemente (M b + 1) + (b + 1) = M + 2 M + (M b + 1) + (b + 1) = 2 M + 2 beträgt, so dass die Partitionen einer Lösung die Größe M + 1 aufweisen müssen. Sei o.b.d.a. (k + 1) J (sonst wird die andere Menge der Partition betrachtet), also das Element M b + 1 in der betrachteten Partition. Dann gibt es Elemente a i mit i J a i = b, die M b + 1 zu M + 1 auffüllen. Diese Elemente stellen folglich eine Lösung der ursprünglichen RUCKSACK-Instanz dar. 5
Aufgabe 4 Zeigen Sie durch Reduktion von PARTITION, dass das Problem BIN-PACKING NP-vollständig ist. BIN-PACKING: gegeben: Eine Behältergröße b, die Anzahl der Behälter k, Objekte a 1, a 2,..., a n b. gefragt: Können die Objekte so auf die k Behälter verteilt werden, dass kein Behälter überläuft? (Das heisst: Gefragt ist, ob eine Abbildung f : {1,..., n} {1,..., k} existiert, so dass für alle j = 1,..., k gilt: f(i)=j a i b). Beweis: Aus der gegebenen PARTITION-Eingabe (a 1, a 2,..., a k ) wird eine Instanz des Problem BIN-PACKING erzeugt, indem die Behältergröße b auf b = k i=1 a i 2 und die Anzahl der Behälter k mit gewählt werden und die Objekte k = 2 (a 1, a 2,..., a k ) von der gegebenen PARTITION-Instanz übernommen werden. Es ist offensichtlich, dass beide Behälter komplett gefüllt werden müssen, um alle Objekte unterzubringen. Genau dann wird aber die Menge der Objekte a i in zwei Mengen gleichen Gewichts eingeteilt, so dass dies eine Lösung für PARTITION ist. 6