De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen

Verwante presentaties


Presentatie over: "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen"— Transcript van de presentatie:

1 T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen witt@cs.tudelft.nl

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

3 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.

4 T U Delft Parallel and Distributed Systems group PGS Structuur van NP NPC P P         NPC = { A  NP |  X  NP [ X  A] } moeilijker

5 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.

6 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 ?

7 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)

8 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)

9 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’ ]

10 T U Delft Parallel and Distributed Systems group PGS Voorbeeld Vertex Cover          

11 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.

12 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 xx yy zz 1. Maak voor iedere u  U, twee knopen u en  u en een kant {u,  u}

13 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 xx yy zz 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

14 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 xx yy zz 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

15 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 xx yy zz 4.Stel vervolgens K = 2m + n c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7

16 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 xx yy zz 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

17 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 xx yy zz 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

18 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 xx yy zz 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

19 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 xx yy zz 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

20 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 xx yy zz 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

21 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 )

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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).

30 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)

31 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

32 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 ?

33 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

34 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.

35 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}

36 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

37 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

38 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.

39 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.

40 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

41 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.

42 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?


Download ppt "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen"

Verwante presentaties


Ads door Google