T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 3 Cees Witteveen

Slides:



Advertisements
Verwante presentaties
AR voor Horn clause logica Introductie van: Unificatie.
Advertisements

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
PM zijn de Principia Mathematica. Deze vormen een formeel systeem voor de wiskunde. Ze zijn beschreven door A.N. Whitehead and B. Russell. Gödel bepaalt.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Oppervlakten berekenen
Computationele complexiteit: NP-volledigheid
Automatisch Redeneren in de praktijk
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Wat verandert in perspectief ? Wat verandert NIET ?
Coordinated path planning for Multiple Robots Siu-Siu Ha.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Een workshop over katten, muizen en nadenken in de Informatica
Omtrekshoeken Stelling van de constante hoek:
Differentieer regels De afgeleide van een functie f is volgens de limietdefinitie: Meestal bepaal je de afgeleide niet met deze limietdefinitie, maar.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Assenstelsels en het plotten van Functies in LOGO
Continue kansverdelingen
Deze les wordt verzorgd door de Kansrekening en statistiekgroep Faculteit W&I TU/e.
Classificatie van roosteringproblemen 1 || max vertraging Identiek, max eindtijd Gelijkaardige machines Andere problemen 1 Opdracht 2: Clustering.
Voorstellen en redeneren over kennis: diagnose en uitleg
Gebruiken.
Prof.dr.ir. Bart ter Haar Romeny
Probleem P 1 is reduceerbaar tot P 2 als  afbeelding  :P 1  P 2 zo dat: I yes-instantie van P 1   (I) yes-instantie van P 2 als ook:  polytime-algoritme,
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen.
Fundamentele Informatica IN3120
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN 3005 Deel 2 Laatste College ! Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN 3120 College 7 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3 005 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
OEFENTENTAMENOPGAVES KLASSIEKE NATUURKUNDE 1B ELECTROSTATICA & MAGNETOSTATICA Een verzameling vraagstukken uit oude tentamens. Tijdindicatie: ongeveer.
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Workshop: Geheimschrift op de TI-83+
ribwis1 Toegepaste wiskunde Lesweek 3
WIS21.
Tweedegraadsfuncties
Cooperative Transport Planning
T U Delft Groep Parallelle en Gedistribueerde Systemen PGS College in345 Deel 2 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 4 Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
H4 Differentiëren.
Fractale en Wavelet Beeldcompressie
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 Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Chemisch rekenen voor oplossingen
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Netwerkstroming Algoritmiek. 2 Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Gerandomiseerde algoritmes
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
Minimum Opspannende Bomen
Benaderingsalgoritmen
Recursie in de wiskunde
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Transcript van de presentatie:

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 3 Cees Witteveen

T U Delft Parallel and Distributed Systems group PGS Test We noemen een probleem B een NP-hard probleem (onder  ) als A  B voor een 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 Overzicht NP-Complete problemen en reducties - Satisfiability  NPC - Hoe NPC-eigenschap te bewijzen? Voorbeelden van lastige reducties - 3-SAT ≤ Vertex Cover, 3-SAT ≤ SubSetSum - SubSetSum ≤ PARTITION Bewijzen met restrictie - Partition ≤ MultiProcessorScheduling - Vertex Cover ≤ Hitting Set Een nieuwe klasse: co-NP - definitie - relatie met P en NP

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 A polynomiaal verifieerbaar is.

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 ? clause: een disjunctie van literals literal: prop. atoom A of negatie ¬A

T U Delft Parallel and Distributed Systems group PGS SAT  NPC Bewijsschets [ voor volledig bewijs zie Sipser pp ] SAT  NP: gok waarheidstoekenning  : U  {0,1} voor instantie (U,C) en verifieer correctheid in O(|U| x |C|)-tijd. SAT is NP-hard: codeer willekeurige NTM M + input x als SAT-instantie die vervulbaar is desda M accepteert x in polynomiale tijd. SATISFIABILITY is NP-compleet Stephen A. Cook (1971) / Leonid Levin (1973)

T U Delft Parallel and Distributed Systems group PGS Een Speciaal SAT-problemen 3-SAT: als SAT, alle clauses C j  C hebben exact 3 literals. Stelling: 3-SAT  NPC (zie Sipser pag ) Voorbeeld instantie 3-SAT U = { u, x, y, z } C = { { u, x, ¬z }, {¬u, ¬y, z}, {¬x, y, ¬z}, {¬u, ¬y. ¬ z } }  : u  1, x  0, y  0, z  1 maakt (U,C) waar

T U Delft Parallel and Distributed Systems group PGS Overzicht NP-Complete problemen en reducties - Satisfiability  NPC - Hoe NPC-eigenschap te bewijzen? Voorbeelden van lastige reducties - 3-SAT ≤ Vertex Cover, 3-SAT ≤ SubSetSum - SubSetSum ≤ PARTITION Bewijzen met restrictie - Partition ≤ MultiProcessorScheduling - Vertex Cover ≤ Hitting Set Een nieuwe klasse: co-NP - definitie - relatie met P en NP

T U Delft Parallel and Distributed Systems group PGS Van logica naar grafen 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’ ] - Nb: het duale Edge Cover probleem: gegeven een graaf G = (V, E) en een integer K, is er een subset E’  E met hoogstens K edges zodanig dat alle knopen in V gecovered zijn, m.a.w. ∪ E’ = V, is een P-probleem.

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( |input| 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 xx yy zz 1. Maak, voor iedere u  U, twee knopen u en  u en één 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 xx yy zz 2. Maak voor iedere clause c j = {x j1, x j2, x j3 } uit C 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 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

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

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” {v i, w i } te coveren zijn minstens 2m knopen nodig (minstens 2 per clause c i ). 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 xx yy zz c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7  x  1 y  0 z  0 Stel (U,C) yes-instantie van 3-SAT. Laat  waarheidstoekenning zijn die C waarmaakt. Markeer nu allereerst alle n “waargemaakte” propositieknopen en neem ze op in de verzameling V’.

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 is minstens één verbindingskant {u ji,u} (of {¬u ji,¬u}) tussen clause en propositie knopen gecovered. Neem per clause c j 2 knopen op in V’ zodat alle overige kanten ook gecovered zijn: V’ is VC met 2m + n knopen 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 xx yy zz c1c1 c2c2 x1x1 y1y1 z1z1 ¬x 2 y2y2 ¬z 2 K = 7  x  0 y  1 z  0 Stel f(I) = (G = (V,E), K) is een yes-instantie van VC. Per clause c j moeten dan precies 2 knopen in de vc van G gekozen zijn en voor ieder paar propositieknopen precies 1 knoop uit {u,¬u }. Beschouw een prop. knoop die voorkomt in de vc als een ware literal.

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 kan- ten {u, u j } of {¬u, ¬u j } gecovered door prop knopen. Maar met 2 kno- pen per clause is dan ≥ 1 kant in c i 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 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 De aanname dat  C niet vervult kan dus niet waar zijn. Derhalve moet  wel alle clauses c j vervullen. Dus de oorspronkelijke instantie (U,C) is een yes-instantie. Uit  en  concluderen we nu dat de reductie correct is. 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: 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 )-tijd I : input

T U Delft Parallel and Distributed Systems group PGS CLIQUE is NPC Naam: CLIQUE InstantieGraaf G = (V, E), positieve integer K Vraag:heeft G een clique ter grootte van K, dwz is er een subset V’ van V met |V| = K zodat voor alle u ≠ v in V’ geldt {u,v}  V’ CLIQUE in NP: gok subset V’ en verifieer in O(|E|x|V| 2 ) clique eigenschap CLIQUE in NP-hard: VC ≤ CLIQUE : als I = ( G =(V, E), K) vc-instantie is, neem dan f(I) = (G c = (V, E c ), |V|-K) als clique-instantie. Dan geldt: G c heeft clique ter grootte van |V| - K desda G heeft vc ter grootte van K. Heel aardig om zelf te bewijzen

T U Delft Parallel and Distributed Systems group PGS Van logica naar pakproblemen Naam:Subset Sum (SubSum) Gegeven: een multi-set S = {s 1,..., s k } van integers 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(|input|)-tijd of  s  S’ s = t.

T U Delft Parallel and Distributed Systems group PGS S t 3-SAT  Subsum (vb) U = {x, y, z }, C ={ { x,  y,  z },{  x, y,  z } } constructie reductie: 123c1c2 x = x = y = 1001 y = 1010 z100100= 100 z200111= 111 c = 10 c = 10 c = 1 c = = 11133

T U Delft Parallel and Distributed Systems group PGS Van SubSum naar Partition Instantie: verzameling A, functie g: A  Z +, Vraag: is er een partitie A 1  A 2 van A zodat  a  A1 g(a) =  a  A2 g(a) Partition gok een subset A 1 van A; verifieer dat  a  A_1 g(a) =  a  A-A_1 g(a) PARTITION  NP

T U Delft Parallel and Distributed Systems group PGS SubSum ≤ PARTITION: Neem SubSum I = ( S = {s 1,s 2, …, s n }, t ) instantie met T =  s_i  S s i. Maak instantie f(I) = (A, g) van PARTITION waarbij A = { a 1, a 2,…,a n, a n+1, a n+2 }, g(a i ) = s i voor i = 1, …, n, g(a n+1 ) = 2T+1, g(a n+2 ) = T+ 2t+1 Van SubSum naar Partition PARTITION  NP-hard t T SubSum t a n+1 2T+1 T- t a n+2 T+2t+1 Partition

T U Delft Parallel and Distributed Systems group PGS SubSum ≤ PARTITION: Neem SubSum I = ( S = {s 1,s 2, …, s n }, t ) instantie met T =  s_i  S s i. Maak instantie f(I) = (A, g) van PARTITION waarbij A = { a 1, a 2,…,a n, a n+1, a n+2 }, g(a i ) = s i voor i = 1, …, n, g(a n+1 ) = 2T+1, g(a n+2 ) = T+ 2t+1 Van SubSum naar Partition PARTITION  NP-hard t T SubSum t a n+1 2T+1 T- t a n+2 T+2t+1 Partition Correctheidsbewijs reductie ⇒ Stel I = ({s 1, s 2,...s n }, t) is een yes-instantie van SubSum. Dan bestaat er een subset S’ van S zodanig dat  s ∈ S’ s = t. Maar dan heeft de instantie f(I) = (A,g) ook een oplossing: Laat A’ = { a i : s i ∈ S’} ∪ {a n+1 }. Dan geldt g(A’) = 2T +t+1. Omdat g(A) = T + 2T+1+T+2t+1= 4T+2t+2, geldt nu g(A-A’) = g(A). Dus f(I) is een yes-instantie. ⇐ Stel f(I) = (A, g) is een yes-instantie van PARTITION. Dan bestaat er een subset A’ van A met g(A’) = 2T+t+1 (omdat g(A) = 4T+2t+2). Dit betekent dat a n+1 en a n+2 niet beide in A’ of A-A’ kunnen voorkomen omdat zij tezamen een gewicht 2T+1+T+2t+1 = 3T+2t+2 > 2T+t+1 hebben. Dan is er een partitie waarin alleen a n+1 voorkomt, stel dit is A’. Maar dan geldt dat de overige items in A’ een gewicht 2T+t+1 - (2T+1) = t vertegenwoordigen, en dit moeten items zijn met gewichten die afkomstig zijn uit S. Dus heeft de instantie I = (S, t) een oplossing S’ = {s i : a i ∈ A’ -{a n+1 }. Derhalve is I een yes-instantie.

T U Delft Parallel and Distributed Systems group PGS Van verdeling naar scheduling Instantie : verzameling P processoren, verzameling J van jobs, voor iedere j  J een tijdsduur t j  Z +, en een deadline d  Z +. Vraag: is er een toekenning van jobs aan processoren zodat alle jobs voor de deadline d kunnen worden uitgevoerd? Multiprocessor scheduling (MPS) MPS is een NP-probleem. (Ga na door schedule te verifieren) MPS is een NP-hard probleem: Immers voor |P| = 2 en d =  (  j  J t i ) / 2  creeren we een deelprobleem van MPS dat identiek is aan PARTITION. Omdat PARTITION in NPC geldt nu ook MPS in NP-hard. (Waarom: zie volgende slide)

T U Delft Parallel and Distributed Systems group PGS Algemene techniek: Bewijs met restrictie Stelling als een NP-probleem B een deelprobleem A heeft dat NP-compleet is, dan is B een NP-compleet probleem. ( A wordt een restrictie van B genoemd ) A B A i(x) = x : inbedding; iedere inbedding is een poly-time reductie i

T U Delft Parallel and Distributed Systems group PGS Restrictie: nieuw 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  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 O bevat. A D C Ja, kies S’ = {A, C, D} equivalent:  O [ O  S’ ≠  ]

T U Delft Parallel and Distributed Systems group PGS algemene formulering BTS - Naam: HITTING SET (HS) - 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   ?

T U Delft Parallel and Distributed Systems group PGS HS  NPC: bewijs met restrictie 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 de verzameling van die HS-instanties waarbij iedere C i  S een verzameling C i = {x,y} is die precies 2 elementen uit S bevat. Dit deelprobleem is identiek aan het NP-complete VERTEX COVER probleem. Derhalve is HS (met bewijs via restrictie) een NP-hard probleem.

T U Delft Parallel and Distributed Systems group PGS Overzicht NP-Complete problemen en reducties - Satisfiability  NPC - Hoe NPC-eigenschap te bewijzen? Voorbeelden van lastige reducties - 3-SAT ≤ Vertex Cover, 3-SAT ≤ SubSetSum - SubSetSum ≤ PARTITION Bewijzen met restrictie - Partition ≤ MultiProcessorScheduling - Vertex Cover ≤ Hitting Set Een nieuwe klasse: co-NP - definitie - relatie met P en NP

T U Delft Parallel and Distributed Systems group PGS Nieuwe 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 Een probleem A is in co-NP als no-instanties in polynomiale tijd verifieerbaar zijn, i.e. A  co-NP als er een NTM M bestaat die alle no- instanties van A in polynomiale tijd oplost. De klasse co-NP bestaat uit alle problemen B die het complement zijn van een probleem A in NP : co-NP = { B :  A  NP [ B = A c ] } Definitie Gevolg

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 Relatie met boek Sipser SAT in NPC wordt behandeld op blz ; het bewijs kan doorgelezen worden. Bestudeer het bewijs van 3-SAT in NPC ( ) 7.5 (blz ) kan aan de hand van de slides bestudeerd worden. Het NPC bewijs van HAMPAD wordt dringend aangeraden maar is niet verplicht. Opgaven maar ook 7.23 worden als oefenopgaven aanbevolen

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 Toegift: One way functions Het is niet zo gemakkelijk om concrete problemen in de klasse (NP  co-NP) - P te vinden. Een wat abstracter voor beeld komt uit de cryptografie. Hier zijn we in het bijzonder geinteresseerd in publiek bekende functies f die gebruikt kunnen worden om bitrijtjes efficient te versleutelen zonder dat het mogelijk is diezelfde functie te gebruiken om het versleutelde bitrijtje eenvoudig te decoderen. We gebruiken hiervoor zgn lengte- bewarende one-way functies: Een lengte bewarende one-way (bit)functie f : {0,1} n  {0,1} n is een functie waarvoor geldt: - f(x) is berekenbaar in polynomiale tijd - f -1 (x) is niet berekenbaar in polynomiale tijd We laten nu zien dat L = {(x,y) : f -1 (x) < y } een taal is in (NP  co-NP) - P

T U Delft Parallel and Distributed Systems group PGS Toegift: One way functions Gegeven is een functie f : {0,1} n  {0,1} n zodat - f(x) berekenbaar is in polynomiale tijd - f -1 (x) niet berekenbaar is in polynomiale tijd Laat zien dat L = {(x,y) : f -1 (x) < y } een taal is in (NP  co-NP) - P Bewijs: Omdat f polynomiaal berekenbaar is, is er een polynoom p zodat voor input x, het berekenen van f(x) p(x)-tijd kost. L niet in P: stel L in P, dan zouden we een polynomiaal algoritme hebben om (x,y) te beslissen. Neem nu een x en bereken met binair zoeken in O(log |x| x p(|x|) tijd twee waarden z en 2z zodat (x,z) ∉ L en (x,2z) ∈ L. Opnieuw in O(log |x| x p(|x|) ) tijd is dan met binair zoeken de waarde y te bepalen waarvoor f -1 (x) = y. Maar dit betekent dat f -1 in polynomiale tijd berekenbaar is; contradictie. L is een NP- taal: Neem een paar (x, y). Gok een z < y zodanig dat f(z) = x. Dan geldt f -1 (x) < y. L is een co-NP taal: Neem een paar (x,y). Gok een z ≥ y zodanig dat f(z) = x. Dan geldt f -1 (x) ≥ y, dus (x,y) niet in L