Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
80 Vorlesungsskript von E. Best / Stand: 17. Januar 2011<br />
ist. Jedes cj wird durch eine Konjunktion von Dreier-Disjunktionen F ′ j<br />
U ′ j von Variablen verwendet, die nur in F′ j vorkommen. Dann wird<br />
U ′ m<br />
= U ∪{ Uj}, F ′ =<br />
j=1<br />
m<br />
∀<br />
j=1 F′ j<br />
Sei cj = z1 ∧...∧zk, wobei die zl Literale von U sind, für 1 ≤ l ≤ k.<br />
ersetzt. Dabei wird eine Menge<br />
k = 1: U ′ j = {y1,y2}; F ′ j = (z1 ∨y1 ∨y2)∧(z1 ∨y1 ∨y 2 )∧(z1 ∨y 1 ∨y2)∧(z1 ∨y 1 ∨y 2 ).<br />
k = 2: U ′ j = {y}; F′ j = (z1 ∨z2 ∨y)∧(z1 ∨z2 ∨y).<br />
k = 3: U ′ j = ∅; F′ j<br />
= cj.<br />
k > 3: U ′ j = {yi | 1 ≤ i ≤ k −3};<br />
F ′ j = (z1 ∨z2 ∨y1)∧(y i ∨zi+2 ∨yi+1) k−4<br />
i=1 ∧(y k−3 ∨zk−1 ∨zk).<br />
Rein aussagenlogisch ist zu ersehen, dass F ′ genau dann erfüllbar ist, wenn auch F erfüllbar ist.<br />
F ′ ist ersichtlich in 3SAT-Form. Die Konstruktion ist polynomiell, denn O(m·n) ist eine obere Schranke<br />
für die Länge von F ′ . 4.4.6<br />
Beispiel:<br />
F = (u1 ∨u2)<br />
<br />
k=2,U ′ 1 ={y}<br />
∧ (u1 ∨u2 ∨u3 ∨u4 ∨u5 ∨u6)<br />
<br />
k=6,U ′ 2 ={y1,y2,y3}<br />
F ′ = (u1 ∨u2 ∨y)∧(u1 ∨u2 ∨y) ∧ (u1 ∨u2 ∨y1)∧(y 1 ∨u3 ∨y2)∧(y 2 ∨u4 ∨y3)∧(y 3 ∨u5 ∨u6).<br />
Ende des Beispiels<br />
In diesem Abschnitt haben wir mehrere Probleme als NP-vollständig nachgewiesen. Dabei haben wir<br />
bei einem einzigen, CNF−SAT, die Definition der NP-Vollständigkeit angewendet, und das war etwas<br />
kompliziert und vor allem sehr technisch. Bei den anderen wurde Korollar 4.3.3(b) verwendet, was im<br />
Allgemeinen die übliche (wenn nichtsogar,außerbei Satz 4.4.5,die einzig übliche) Methode ist, die Eigenschaft<br />
der NP-Vollständigkeit zu zeigen. Korollar4.3.3(b) setzt allerdings voraus, dass ein NP-vollständiges<br />
Problem bereits bekannt ist, und das war in den bisher betrachteten Fällen das Problem CNF−SAT.<br />
Sei L ein Problem, dessen NP-Vollständigkeit nachgewiesen werden soll. Im Allgemeinen verlangt die<br />
Anwendung von Korollar 4.3.3(b) drei Schritte:<br />
(1) Man suche ein geeignetes Problem L ′ , dessen NP-Vollständigkeit bereits bekannt ist.<br />
(2) Man zeige L ′ ≤p L. Nach diesem Schritt ist die NP-Härte von L gesichert. Intuitiv: ” wenn L ′ schon<br />
NP-hart ist, dann erst recht L“.<br />
(3) Man zeige L ∈ NP. Erst nach diesem Schritt ist die NP-Vollständigkeit von L bewiesen.<br />
Dabei ist es ganz wichtig, die Reduktionsrichtung in Schritt (2) zu beachten. Beweist man stattdessen<br />
L ≤p L ′ , kann man überhaupt keine Aussage machen!<br />
Unter den vielen praktisch bekannten Fällen solcher Beweise gibt es solche, in denen Schritt (3) einfach<br />
ist, Schritt (2) dagegen relativ kompliziert; aber auch solche, in denen es sich umgekehrt verhält, dass<br />
nämlich die Reduktion einfach zu beweisen ist, die Aussage L ∈ NP dagegen nicht so einfach; und auch<br />
solche, in denen beide Aussagen einfach oder auch beide Aussagen kompliziert sind.