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 in345 Deel 2 College 3 Cees Witteveen.

Verwante presentaties


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

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

2 T U Delft Parallel and Distributed Systems group PGS Onderwerpen P en NP: - waarom, equivalente definities NP-complete problemen - definitie en eigenschappen - bewijs NP-compleetheid, voorbeelden co-NP - definities - eigenschappen van co-NP versus NP

3 T U Delft Parallel and Distributed Systems group PGS Waarom P versus NP (1) Er zijn problemen waarvoor geldt: geen polynomiale constructie oplossing er zijn geen algoritmen voorhanden om een oplossing in poly-tijd te construeren. (d.w.z. geen polynomiale DTM voorhanden) wel polynomiale verificatie er kan in polynomiale tijd geverifieerd worden of een voorgestelde oplossing voldoet of niet. (d.w.z. wel polynomiale NDTM voorhanden)

4 T U Delft Parallel and Distributed Systems group PGS Waarom P versus NP (2) Van NP-problemen weten we dat ze behoren tot de klasse EXP: iedere polynomiale NDTM is in exponentiele tijd te simuleren met een DTM. voor alle deze problemen zijn (exponentiele) backtracking algoritmen bekend we weten niet of ze behoren tot EXP - P of tot P.

5 T U Delft Parallel and Distributed Systems group PGS Twee definities van NP - standaard definitie: [niet-deterministisch gokken] Een beslissingsprobleem A behoort tot NP (A  NP) als er een NDTM bestaat die iedere yes-instantie x van A oplost in polynomiale tijd, dwz. polynomiaal in |x | - alternatieve definitie: [deterministisch verifieren] A  NP als er een DTM M bestaat en een polynoom p(.) zodat x  Y A desda er bestaat een string c(x) (certificaat) met |c(x)| ≤ p(|x|) en M antwoordt ‘yes’ voor input (x, c(x)) in hoogstens p(|x|) stappen.

6 T U Delft Parallel and Distributed Systems group PGS NDTM: een berekening 2 1 2 1 1 1 succesvolle berekeningfalende berekening certificaat c(x): 2 1 2 1 1 1 invoer x instructie keuze

7 T U Delft Parallel and Distributed Systems group PGS NDTM: input en certificaten 2 1 2 1 1 1 succesvolle berekeningfalende berekening deterministische berekening! invoer x + certificaat 212111

8 T U Delft Parallel and Distributed Systems group PGS gokmodule NDTM anders bekeken We kunnen ons derhalve een NDTM ook voorstellen als een GOKMODULE + DTM: DTM input x gokstring (mogelijk certificaat) yes no

9 T U Delft Parallel and Distributed Systems group PGS NDTM: simulatie met DTM p(|x|)

10 T U Delft Parallel and Distributed Systems group PGS Simulatie NDTM met DTM maximaal k>1 keuzes Deterministische simulatie van poly NDTM kost O(k p(|x |) )-tijd Conclusie: P  NP  EXP ! k0k0 k1k1 k2k2 k p(|x|)-1  i=1..p(|x|) k i

11 T U Delft Parallel and Distributed Systems group PGS NP en polynomiale reducties Laat ≤ een polynomiale reductie zijn. Dan geldt: - voor alle A, A ≤ A.(reflexiviteit) - als A ≤ B en B ≤ C, dan A ≤ C(transitiviteit) - voor elke C met P  C geldt (geschiktheid) als B  C en A ≤ B dan A  C In het bijzonder gelden deze eigenschappen voor P en NP

12 T U Delft Parallel and Distributed Systems group PGS Moeilijkste NP-problemen Moeilijkste NP-problemen - Een probleem A behoort tot de moeilijkste NP problemen als A een NP-probleem is, dwz A  NP Er is geen enkel probleem X in NP, dat moeilijker is dan A, dwz. voor alle problemen X in NP geldt X  A. - Zo’n probleem  A wordt een NP-volledig of NP-compleet probleem genoemd. - Klasse van NP-complete problemen: NPC

13 T U Delft Parallel and Distributed Systems group PGS Structuur van NP NPC P P moeilijker

14 T U Delft Parallel and Distributed Systems group PGS Eigenschappen NPC Als A  NPC, B  NP en A  B dan B  NPC. Als A  NPC  P dan P = NP A NPC B

15 T U Delft Parallel and Distributed Systems group PGS Waarom NPC belangrijk? Als we een polynomiaal algoritme voor een NPC-probleem A kunnen vinden ( A  P) dan geldt P = NP. Als we voor een NPC-probleem A kunnen aantonen dat A  P, dan geldt P  NP.

16 T U Delft Parallel and Distributed Systems group PGS Hoe A  NPC te bewijzen? Bewijs eerst A  NP: Toon aan dat voor iedere yes-instantie I A  Y A van A een polynomiale verificatie procedure bestaat. Toon aan dat B  A voor een bekend NPC probleem B. Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie B  A en laat zien dat deze correct is.

17 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. betaat er een  U  {0,1} zodat  iedere clause C j in C waarmaakt.

18 T U Delft Parallel and Distributed Systems group PGS Belang Satisfiability Theorem proving en checking automatisch bewijzen van stellingen; planning; fout detection; VSLI engineering Constraint satisfaction programming (CSP) programma  definitie van voorwaarden (constraints) waaraan oplossing moet voldoen; SAT  CSP

19 T U Delft Parallel and Distributed Systems group PGS Speciale SAT-problemen 3-SAT: alle clauses C j  C hebben exact 3 literals. We bewijzen 3-SAT  NPC (college) NAE-3SAT: als 3-SAT; vraag is nu of er een waarheidstoekenning bestaat die alle clauses waarmaakt zonder alle literals in elke clause waar te maken. We bewijzen NAE-3SAT  NPC (college)

20 T U Delft Parallel and Distributed Systems group PGS Van 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’ en/of w  V’ ] VC in NP: - kies een subset V’  V en verifieer (1) |V’ |  K en (2)  { v,w }  E [ {v,w }  V’   ]; verificatie kost in totaal O( log k + |V| x |E|) tijd. Dit is polynomiaal in de lengte van de probleeminstantie

21 T U Delft Parallel and Distributed Systems group PGS Van 3-SAT naar VC (2) VC is NP-hard: 3-SAT  VC illustratie reductie: U = {x,y,z}, C = {{ x, y, z }, {x, y, z} } x yz  x  y  z 3-SAT instantie (U,C) k = 3+4 VC- instantie (G = (V,E), K)

22 T U Delft Parallel and Distributed Systems group PGS Van 3-SAT naar VC (3) a. Constructie van reductie: Zij I = (U = {u 1,..., u n }, C = {C 1,..., C m } een 3-SAT instantie. Construeer dan de volgende VC-instantie R(I) = (G = (V,E), K) met V = U   U  {v ij : i = 1, 2, 3; j = 1,..., m } E = { {u,  u} : u  U }  { {v 1j, v 2j },{v 2j, v 3j },{v 3j, v 1j }: j = 1,.., m }  { {x, v ij } : x  U   U  x =c ij  C j, i =1,2,3, j = 1,.., m } K = n + 2m

23 T U Delft Parallel and Distributed Systems group PGS Van 3-SAT naar VC (4) b. Correctheid van reductie: bewijs dat R(I)  Y VC  I  Y 3-SAT (tijdens college) Totale kosten: O(|I| 2 )-tijd, i.e. polynomiaal in |I | c. Polynomialiteit van reductie: constructie V : kost O(|V|) + O(|E|) = O(|I|)-tijd; E : kost O(|V|) + O(|E|) + O(|V|x|E|)  O((|V| + |E|) 2 ) = O( |I| 2 )-tijd K : kost O(|V| + |E|)-tijd


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

Verwante presentaties


Ads door Google