T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Overzicht de klasse NPC - Satisfiability NPC - Hoe NPC-eigenschap te bewijzen? - Vertex Cover NPC Bewijstechnieken (i) - bewijs met restrictie - voorbeeld: radio netwerk planning Een nieuwe klasse: co-NP - definitie - relatie met P en NP
T U Delft Parallel and Distributed Systems group PGS Een doenlijke vraag We noemen een probleem B een NP-hard probleem (onder ) als A B voor een bekend NP-volledig probleem A. Als B een gegeven NP-hard probleem is dan geldt: a.als B C voor een probleem C, dan is C ook NP-hard. b.als B C voor een NP-probleem C, dan is C NP-volledig. c.als C B, dan is C in NP. d.als C B en het is bekend dat B P, dan is C in P. a. b. c. d.
T U Delft Parallel and Distributed Systems group PGS Structuur van NP NPC P P NPC = { A NP | X NP [ X A] } moeilijker
T U Delft Parallel and Distributed Systems group PGS Hoe A NPC te bewijzen? 1. Bewijs A NP 2. Bewijs A NP-hard kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie B A; laat zien dat deze reductie correct is. ( B A voor een B NPC ) Toon aan dat voor iedere yes-instantie I A Y A van A een polynomiale verificatie procedure bestaat.
T U Delft Parallel and Distributed Systems group PGS Een NPC probleem: SAT SATISFIABILITY (SAT) : Instantie: Een eindige verzameling U van propositie atomen en een eindige verzameling C van clauses over U. Vraag: Is C vervulbaar, dwz. bestaat er een waarheidstoekenning U {0,1} zodat iedere clause C j in C waarmaakt ?
T U Delft Parallel and Distributed Systems group PGS SAT NPC S. A. Cook (1971) : SATISFIABILITY is NP-compleet. Bewijs : SAT NP: gok waarheidstoekenning voor instantie (U,C) en verifieer correctheid in O(|U| x |C|). SAT is NP-hard: codeer NDTM M + input x als SAT-instantie die vervulbaar is desda M accepteert x in polynomiale tijd. (zie boek Moret voor bewijs)
T U Delft Parallel and Distributed Systems group PGS Speciale SAT-problemen 3-SAT: alle clauses C j C hebben exact 3 literals. 3-SAT NPC (zie boek) NAE-3SAT: als 3-SAT; vraag is of er een waarheidstoekenning bestaat die alle clauses waarmaakt zonder alle literals in elke clause waar te maken. NAE-3SAT NPC (zie boek)
T U Delft Parallel and Distributed Systems group PGS Van 3-SAT naar VC (1) Vertex Cover (VC) - Instantie: een ongerichte graaf G = (V, E) en een K Z + - Vraag: is er een subset V’ V met - |V’| K en - { v,w } E [ v V’ w V’ ]
T U Delft Parallel and Distributed Systems group PGS Voorbeeld Vertex Cover
T U Delft Parallel and Distributed Systems group PGS VC in NP: bewijs polynomiale verifieerbaarheid - kies een subset V’ V en verifieer vervolgens (1) |V’ | K en (2) { v,w } E : {v,w } V’ - verificatie kost in totaal O( |V| + log K + |V| x |E|) O(|I| 2 )- tijd.
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : constructie U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz 1. Maak voor iedere u U, twee knopen u en u en een kant {u, u}
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : constructie U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz 2. Maak voor iedere clause c j = {x j1, x j2, x j3 } drie knopen en verbind deze knopen onderling. c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : constructie U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz 3. Verbind clause knopen u i (¬u i ) met overeenkomstige propositie knopen u (¬u) door kanten { u i, u } resp. {¬u i, ¬u }toe te voegen. c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : constructie U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz 4.Stel vervolgens K = 2m + n c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : correctheid (schets) U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz OPMERKING: Om de “propositiekanten” {u, ¬u} te coveren zijn minstens n knopen nodig; om de “clausekanten” {x ji, x ji’ } te coveren zijn minstens 2m knopen nodig (minstens 2 per clause). Iedere vertex cover moet derhalve minstens K = 2m +n knopen bevatten. c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : correctheid (schets) U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz Stel (U,C) yes-instantie. Laat waarheidstoekenning zijn die C waarmaakt. Neem nu allereerst alle n “waargemaakte” propositieknopen op in de vertex cover c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7 x 1 y 0 z 0
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : correctheid (schets) U = {x,y,z} (aantal: n) C = { { x, y, z }, { x, y, z} } (aantal: m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz Kanten {u, ¬u} zijn nu gecovered en voor iedere c j minstens één verbindingskant {u ji,u} (of {¬u ji,¬u} ) tussen clause en propositie knopen. Neem per clause graaf c j 2 knopen op in de vertex cover zodat overige verbindingskanten ook gecovered zijn: totaal 2m + n c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7 x 1 y 0 z 0
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : correctheid (schets) U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz Omgekeerd, stel R(I) = (G = (V,E), K) is een yes-instantie van VC. Per clause c j moeten dan precies twee knopen gekozen zijn en voor ieder paar propositieknopen precies een knoop uit {u,¬u }. Beschouw een knoop die voorkomt in de cover als een ware literal c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7 x 0 y 1 z 0
T U Delft Parallel and Distributed Systems group PGS 3-SAT VC : correctheid (schets) U = {x,y,z} (|U| = n) C = { { x, y, z }, { x, y, z} } (|C| = m) 3-SAT-instantie (U,C) VC - instantie (G = (V,E), K) xy z xx yy zz Vorm uit de propositieknopen die in de cover voorkomen een waar- heidstoekenning . Stel vervult c j niet. Dan wordt geen van de kanten {u, u j } of {¬u, ¬u j } gecovered. Maar met 2 knopen per clause is er dan minstens een kant niet gecovered. Contradictie! c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7 x 0 y 1 z 0
T U Delft Parallel and Distributed Systems group PGS VC : Correctheid en polynomialiteit reductie c. Polynomialiteit van reductie: constructie V : kost O(|U|) + O(|C|) = O(|I|)-tijd; E : kost O(|U|) + O(|C|) + O(|U|x|C|) O((|U| + |C|) 2 ) = O( |I| 2 )-tijd K : kost O(|U| + |C|) = O(|I|)-tijd Totaal : O ( |I| 2 )
T U Delft Parallel and Distributed Systems group PGS Overzicht de klasse NPC - Satisfiability NPC - Hoe NPC-eigenschap te bewijzen? - Vertex Cover NPC Bewijstechnieken (i) - bewijs met restrictie - voorbeeld: radio netwerk planning Een nieuwe klasse: co-NP - definitie - relatie met P en NP
T U Delft Parallel and Distributed Systems group PGS Bewijstechnieken voor NPC Idee: als een NP-probleem B een deelprobleem A heeft dat NP-compleet is, dan is B zelf een NP-compleet probleem. Zo’n probleem A wordt een restrictie van B genoemd
T U Delft Parallel and Distributed Systems group PGS Restrictie (1) Observatie: Een NP-probleem dat een NP-volledig deelprobleem heeft is zelf een NP-volledig probleem, m.a.w. als D A D B, B NP en A NPC dan B NPC. B A i i(x) = x A i(.) is een inbedding van A in B
T U Delft Parallel and Distributed Systems group PGS Restrictie: (2) Als D A D B, B NP en er bestaat een reductie f van C NPC naar A dan B NPC. B A f C bv. in de vorm van een bijectie
T U Delft Parallel and Distributed Systems group PGS Restrictie: algemene techniek restrictie-bewijs voor 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 Voorbeeld restrictie HITTING SET (HS): (beslissingsvariant) - Gegeven: verzameling S; verzameling C van deelverzamelingen C i S van S, positieve integer K. - Vraag: Heeft S een hitting set ter grootte van K? dwz: is er een S’ S met |S’| K, zodat voor iedere C i C geldt: S’ C i ? voorbeeld S is een verzameling fouten. Iedere C i ={ a, b, c } is een diagnose a v b v c gesteld door specialist i. Men wil nagaan of hoogstens K fouten het gedrag van een systeem kunnen verklaren
T U Delft Parallel and Distributed Systems group PGS Voorbeeld HS instantie S = { a,b,c,d,e,f,g } C = { {a,d,e}, {b,e,f,g}, {a,d,e}, {c,d,f}} K = 2 S’ = { d, e} is een hitting set ter grootte van 2
T U Delft Parallel and Distributed Systems group PGS HS NPC: bewijs met restrictie (i) HS NP: Gok een S’ S en verifieer in polynomiale tijd dat S’ voldoet. => O(|S| + log K+ |S| x |C|) O( |I| 2 ) HS NP-hard: Neem het deelprobleem HS’ als die HS-instanties waarbij iedere C i S een verzameling C i = {x,y} is die precies 2 elementen uit S bevat. (HS’ restrictie van HS).
T U Delft Parallel and Distributed Systems group PGS HS en restrictie (2) Nu geldt: S’ S is een hitting set ter grootte van K voor een HS’ instantie (S,C, K) C i = {x,y} geldt: x S’ y S’ S’ is een vertex cover van G = ( S, C ), K) beschouw nu f: D HS’ naar D VC f : (S, C, K) ( G = ( S, C ), K)
T U Delft Parallel and Distributed Systems group PGS Restrictie: toegepast op HS restrictie-bewijs voor 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 HS heeft polynomiale verificatie HS’ ( kies |C i | = 2) f : (S, C, K) ( G = ( S, C ), K) kies Vertex Cover
T U Delft Parallel and Distributed Systems group PGS Restrictie: ander voorbeeld Radio Netwerk Planning Gegeven: - een geografisch gebied G; - een aantal potentiële locaties S van Base Tranceiver Stations (BTS) in G en per locatie s in S het dekkingsgebied D s van s; - een positieve integer K. Vraag: Is het mogelijk met hoogstens K BTS locaties uit S het gehele gebied G te overdekken ?
T U Delft Parallel and Distributed Systems group PGS BTS plaatsing: voorbeeld A C D Locaties S = { A,B,C,D} met bijbehorende dekkingsgebieden D s. G is de vereniging van alle dekkingsgebieden Stel K = 3 Nb: een punt x is overdekt als het deel uitmaakt van A, B, C of D B
T U Delft Parallel and Distributed Systems group PGS BTS plaatsing: modellering A B C D A A,D A,B A,B,C A,B,C,D A,C D C B,C B,D B,C,D Plaatsen S = { A,B,C,D} Deelgebieden met overdekking: {A}, {C}, {D}, {A,B}, {A,C}, {A,D}, {B,C}, {B,D}, {A,B,C}, {B,C,D}, {A,B,C,D}, S is er een deelverzameling van S ter grootte van 3 die een element van iedere overdekking bevat.
T U Delft Parallel and Distributed Systems group PGS BTS plaatsing: modellering A D D A C Plaatsen S = { A,B,C,D} Deelgebieden met overdekking: {A}, {C}, {D}, {A,B}, {A,C}, {A,D}, {B,C}, {B,D}, {A,B,C}, {B,C,D}, {A,B,C,D}, S is er een deelverzameling van S ter grootte van 3 die een element van iedere overdekking bevat. A D C Nb: beschouw dit als speciaal voorbeeld van “restrictie”: BTS blijkt na precisering identiek te zijn aan HS Ja, kies S’ = {A, C, D}
T U Delft Parallel and Distributed Systems group PGS Overzicht de klasse NPC - Satisfiability NPC - Hoe NPC-eigenschap te bewijzen? - Vertex Cover NPC Bewijstechnieken (i) - bewijs met restrictie - voorbeeld: radio netwerk planning Een nieuwe klasse: co-NP - definitie - relatie met P en NP
T U Delft Parallel and Distributed Systems group PGS Voorbeelden nwe problemen 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 ? Nb Voor deze problemen geldt: no-instanties zijn efficient verifieerbaar
T U Delft Parallel and Distributed Systems group PGS een nieuwe klasse: Co-NP Laat A NP; laat B het probleem zijn met D B = D A, Y B = N A en N B = Y A. Dan geldt B = A c en B = A c co-NP. Een probleem A is in co-NP als no-instanties in polynomiale tijd verifieerbaar zijn, i.e. A co-NP als er een NDTM M bestaat die alle no-instanties van A in polynomiale tijd oplost.
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 (co-NP NP) P
T U Delft Parallel and Distributed Systems group PGS oefen 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 NP-complete problemen zijn.
T U Delft Parallel and Distributed Systems group PGS Opgave Toon aan, dat k-TSP NPC als HAMC NPC k-TSP: instantie: integer k>1; integer B Z +, verzameling S van n steden, verzameling D = [d ij ] nxn van kosten met d ij Z + ; vraag : bestaan er k rondreizen langs de steden in S die ieder niet meer kosten dan B en waarbij iedere stad niet meer dan een keer aangedaan wordt?