T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Overzicht Reductiemethoden met voorbeelden - restrictie - local replacement - component design Een nieuwe klasse: co-NP - definitie - relatie met P, NP Optimaliseringsproblemen en de polynomiale hierachie - turingreducties, zoekproblemen
T U Delft Parallel and Distributed Systems group PGS Restrictie Observatie: Als D A D B, B NP en A NPC dan B NPC. B A A i i(x) = x
T U Delft Parallel and Distributed Systems group PGS Restrictie: techniek restrictie bewijs B NPC: - Laat zien dat B NP; - Kies subprobleem A van B; - Kies bekend NPC probleem C; - Laat zien dat er een 1-1 overeenkomst bestaat tussen A en C. dan geldt: - A NPC en derhalve B NPC
T U Delft Parallel and Distributed Systems group PGS Restrictie: voorbeeld HITTING SET (HS): - Gegeven: Verzameling S en verzameling C van verzamelingen C i S, positieve integer K. Vraag: Is er een hitting set S’ S met |S’| K, dwz. geldt voor iedere C i C dat S’ C i ? HS NP: Gok een S’ S en verifieer in polynomiale tijd dat S’ voldoet. HS NP-hard: Neem HS’ als die HS-instanties waarbij iedere C i S precies twee elementen bevat (HS’ restrictie van HS). Nu geldt: HS’ en Vertex Cover (VC) zijn identiek.
T U Delft Parallel and Distributed Systems group PGS IAIA Local replacement soms is het mogelijk de reductie samen te stellen uit afzonderlijke reducties; componenten van instanties van A worden hierbij op onafhankelijke wijze afgebeeld op componenten van B. IBIB R1 R2 R3
T U Delft Parallel and Distributed Systems group PGS Local Replacement: vb SAT 3-SAT: Laat (U,C) een SAT-instantie zijn en C = C 1 C 2 C 3 C >3 ( C i : aantal literals per clause is i ) de reductie R levert een instantie R(U,C) = (U’, C’) 3-SAT op met local replacement: R(U,C) = (R 0 (U), R 1 (C 1 ) R 2 (C 2 ) R 3 (C 3 ) R 4 (C >3 ) ) afzonderlijke reducties
T U Delft Parallel and Distributed Systems group PGS Van SAT naar 3-SAT waarbij voor iedere c = {x} C 1 bevat R 1 (C 1 ) de clauses {x,z c1,z c2 }, {x, z c1,z c2 }, {x, z c1, z c2 }, {x, z c1, z c2 } voor iedere c = {u,v } C 2 bevat R 2 (C 2 ) de clauses {u,v, z c1 }, {u, v, z c1 } R 3 (C 3 ) = C 3 voor iedere c = {x 1, x 2, x 3,..., x k } C >3 bevat R 4 (C >3 ) {x 1, x 2, z c1 }, { z c1, x 3, z c2 }, { z c2, x 4, z c3 },..., { z c(k-4), x k-2, z c(k-3) }, { z c(k-3), x k-1, x k }
T U Delft Parallel and Distributed Systems group PGS Van SAT naar 3-SAT R 0 (U) = U’ = U {z c1,z c2 | c C 1 } { z c1 | c C 2 } { z c1,z c2,..., z c(k-3) | c C >3,|c| = k } Merk op: |U’| = |U| + 2. |C 1 | + |C 2 | + c C>3 (|c| - 3) |C’| = 4 |C 1 | + 2 |C 2 | + |C 3 | + c C>3 (|c| - 2) de transformatie is derhalve polynomiaal Voor correctheid: zie college
T U Delft Parallel and Distributed Systems group PGS Component design voor constructie R van A naar B: ontleedt A-instanties in componenten die kunnen worden samengesteld om B-instanties te verkrijgen. component design = local replacement + interactie component reducties
T U Delft Parallel and Distributed Systems group PGS Component design vb Subset Sum: (SubSum) Gegeven: een multi-set S = {s 1,..., s k } van objecten en een integer t. Vraag: Is er een subset S’ van S waarvoor geldt s S’ s = t. SubSum NP: Kies een S’ uit S en ga na in O( s S’ log s + log t) O(|I|)-tijd of s S’ s = t.
T U Delft Parallel and Distributed Systems group PGS 3-SAT Subsum U = {x, y, z }, C = { {x, y, z}, { x, y, z} } elementen van S: 123c1c2 x = x = y = 1001 y = 1010 z100100= 100 z200111= 111 selecteer tenminste 1 ware literal per clause c = 10 c = 10 c = 1 c = 1 t1 1133= selecteer uit ieder paar u1,u2-rijen precies een rij
T U Delft Parallel and Distributed Systems group PGS Een klasse verwant aan NP Neem het volgende probleem: Gegeven een verzameling U van propositiesymbolen en een verzameling C van clauses over U Vraag: Is C onvervulbaar? Niet duidelijk hoe yes-instanties efficient te verifieren, wel hoe no-instanties worden geverifieerd.
T U Delft Parallel and Distributed Systems group PGS Co-NP Laat A NP; laat B het probleem zijn met D B = D A, Y B = N A en N B = Y A. B heet het complement van A: B = A c De klasse van complementen van NP-problemen: co-NP; Een probleem A is in co-NP als no-instanties in polynomiale tijd verifieerbaar zijn,
T U Delft Parallel and Distributed Systems group PGS Co-NP : voorbeelden UNSAT: gegeven een SAT-instantie (U,C), is C onvervulbaar? LOGICAL CONSEQUENCE: gegeven een SAT-instantie (U,C) en een clause c, is c een logisch gevolg van C ? (dwz: geldt voor iedere t: U -> {0,1} die C waarmaakt, dat t ook c waarmaakt?)
T U Delft Parallel and Distributed Systems group PGS Co-NP : eigenschappen 1. als A B, dan A c B c A B YY N N NN Y Y c 2. als A NPC dan A c co-NPC 3. als NPC co-NP dan NP = co-NP Stel A NPC. Dan A c co-NP. Laat X (willekeurig) co-NP. Dan X c NP. Dus X c A en derhalve (X c ) c = X A c dus A c co-NPC Stel A NPC. Dan A c co-NP. Laat X (willekeurig) co-NP. Dan X c NP. Dus X c A en derhalve (X c ) c = X A c dus A c co-NPC Stel A NPC co-NP. a. NP co-NP: Neem X NP. Dan X A derhalve X co-NP. b. co-NP NP: Neem X co-NP. Dan X c NP. Dus X c A en X A c, A c NP. Dan X NP.
T U Delft Parallel and Distributed Systems group PGS Relatie P, NP en Co-NP Co-NPC NPC NPCo-NP P
T U Delft Parallel and Distributed Systems group PGS Opgaven Het DUBBELSAT probleem is het probleem gegeven een SAT-instantie (U,C) te bepalen of er tenminste twee waarheidstoekenningen zijn die C waarmaken. HALVE-CLIQUE is het probleem om na te gaan of een gegeven graaf G = (V, E) een clique heeft met minstens 1/2 x |V| knopen. Laat zien dat DUBBELSAT en HALVE-CLIQUE NPC problemen zijn.