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 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
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)
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.
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.
T U Delft Parallel and Distributed Systems group PGS NDTM: een berekening succesvolle berekeningfalende berekening certificaat c(x): invoer x instructie keuze
T U Delft Parallel and Distributed Systems group PGS NDTM: input en certificaten succesvolle berekeningfalende berekening deterministische berekening! invoer x + certificaat
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
T U Delft Parallel and Distributed Systems group PGS NDTM: simulatie met DTM p(|x|)
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
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
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
T U Delft Parallel and Distributed Systems group PGS Structuur van NP NPC P P moeilijker
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
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.
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.
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.
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
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)
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
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)
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
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