T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Onderwerpen zoekproblemen en Turing reducties zelfreduceerbaarheid: als zoeken niet moeilijker is dan beslissen ondoenlijk ondoenlijk : de polynomiale hierarchie (PH) benaderingsalgoritmen: inleiding en twee voorbeelden bestaan er polynomiale analoge algoritmen voor NP?
T U Delft Parallel and Distributed Systems group PGS O Zoeken en optimaliseren Zoekproblemen: gegeven een verzameling O van objecten, vind een (willekeurig) object x met eigenschap E(x) (een oplossing) E x
T U Delft Parallel and Distributed Systems group PGS O Zoeken en optimaliseren Optimaliseringsproblemen: gegeven een kostenfunctie c, zoek in O naar object x met eigenschap E(x) waarvoor c(x) minimaal of maximaal is. E x
T U Delft Parallel and Distributed Systems group PGS Zoek- en optimaliserings problemen: complexiteit Als C een complexiteitsklasse is, dan is FC de klasse van alle functies berekenbaar met de tijd/ruimte begrenzing geassocieerd met C. Vb: - FP klasse van alle functies berekenbaar in polynomiale tijd. - FNPklasse van alle functies berekenbaar in niet-deterministische polynomiale tijd. probleem: hoe FNP en NP aan elkaar te relateren?
T U Delft Parallel and Distributed Systems group PGS Turing reducties polynomiale turing reducties Een probleem A is polynomiaal turing reduceerbaar tot een probleem B (A T B) als er een algoritme X A voor A bestaat dat - een (hypothetisch) algoritme X B voor B als subroutine gebruikt en - een polynomiaal algoritme voor A zou zijn als alle X B -aanroepen O(1)-tijd zouden kosten. begin : = X B ( ); : = X B ( );... end algoritme X A algoritme X B voor B als subroutine aanroep
T U Delft Parallel and Distributed Systems group PGS Turing reducties: vb MINCOVER Gegeven : graaf G = (V, E) Gevraagd: bepaal de omvang van een minimale cover van G begin n := |V|; low := 0; high := n; while low < high do mid := (high - low) div 2; if X VC (V,E,mid) =“yes” then high := mid else low := mid; return mid; end MINCOVER ≤ T VC pas binary search toe om de minimale omvang te vinden X VC is het algoritme voor het beslissingsprobleem Vertex Cover O(log n) aanroepen van X VC => poly-time turing reductie
T U Delft Parallel and Distributed Systems group PGS Turingreducties (ii) voor beslissingsproblemen: - als A B dan ook A T B : many-one reducties (Karp-reducties) zijn te beschouwen als eenmalige aanroepen van een B-algoritme - voor iedere A: A T A c Stel A B met Karp reductie R. algoritme X A : begin I B := R(I A ); return X B (I B ); end dus A T B X A is polynomiaal als X B O(1)-tijd kost een (zoek)probleem A is NP-hard ( onder T ) als voor iedere B NP, B T A NP-easy als A T B voor een B NP NP-equivalent als A NP-hard NP-easy een (zoek)probleem A is NP-hard ( onder T ) als voor iedere B NP, B T A NP-easy als A T B voor een B NP NP-equivalent als A NP-hard NP-easy Definities
T U Delft Parallel and Distributed Systems group PGS NP-easy en (co)-NP NP-easy omvat NP en co-NP: Laat A NP. omdat A T A, geldt A NP-easy NP NP-easy omdat A c T A, geldt A c NP-easy co-NP NP-easy Observatie 2Observatie 1 NP-easy is (naar beneden) gesloten onder T : als A NP-easy en B T A dan B NP-easy
T U Delft Parallel and Distributed Systems group PGS NP-easy P, NP, Co-NP en NP-easy Co-NPC NPC NPCo-NP P NP-easy = { A | B NP, A T B }
T U Delft Parallel and Distributed Systems group PGS Relatie beslissings-en zoekproblemen beslissingsvariant A Gegeven x 1,... x n, is er een y waarvoor E(y) geldt ? zoekvariant FA Gegeven x 1,... x n, geef een y waarvoor E(y) geldt. er geldt altijd: A T FA (gebruik eerst algoritme voor FA om antwoord te bepalen; als er een oplossing y gevonden wordt, geef “ja” als antwoord, anders “nee” ( zie vb SAT ) dwz. als A NPC dan FA NP-Hard !
T U Delft Parallel and Distributed Systems group PGS Onderwerpen zoekproblemen en Turing reducties zelfreduceerbaarheid de polynomiale hierarchie (PH) benaderingsalgoritmen: inleiding bestaan er polynomiale analoge algoritmen voor NP?
T U Delft Parallel and Distributed Systems group PGS Zelfreduceerbaarheid Stelling: Als A een NPC-probleem is dan geldt FA T A. ( alle NPC-problemen zijn zelfreduceerbaar ) Vb: FSAT T SAT (zie volgende slide): m.a.w. FSAT is in polynomiale tijd oplosbaar als we een orakel voor SAT-problemen kunnen raadplegen. Gevolg: Voor alle FNPC problemen A geldt: A is NP-equivalent (onder T )
T U Delft Parallel and Distributed Systems group PGS FSAT T SAT: constructie Notatie (x 1,x 2, ,x n ) propositie formule in CNF met variabelen x i i,b (x i+1,x i+2, , x n ) = i ( 1, , b, x i+1,x i+2, , x n ) de formule waarbij voor x 1, , x i-1 de waarheidswaarden 1, , zijn gekozen en voor x i de waarheidswaarde b begin ans := X SAT ( (x 1,x 2, ,x n ) ); % X SAT beslissingsalgoritme voor SAT if ans = “no” then return nil % is niet vervulbaar else % is vervulbaar for i = 1 to n do if X SAT ( i,1 (x i+1,x i+2, , x n )) = “yes” then i := 1 else i := 0 % breid de partiele toekenning uit return ( 1, , n ) % retourneer de gehele toekenning end FSAT T SAT
T U Delft Parallel and Distributed Systems group PGS Onderwerpen zoekproblemen en Turing reducties zelfreduceerbaarheid de polynomiale hierarchie (PH) benaderingsalgoritmen: inleiding bestaan er polynomiale analoge algoritmen voor NP?
T U Delft Parallel and Distributed Systems group PGS Hoe moeilijk zijn deze problemen? Instantie: verzameling U van propositie atomen en C van clauses over U; Vraag: Is er precies één waarheidstoekenning U -> {0,1} die C waarmaakt Unique SAT MinBoolEquivalent Instantie: een boolese formule F; Vraag: is F een kortste formule onder alle formules equivalent aan F?
T U Delft Parallel and Distributed Systems group PGS ?? ? Voorbij NP-easy? Co-NPC NPC P NP-easy Co-NP NP PSPACE
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (1) Turing reducties kunnen ook beschouwd worden als aanroepen van een orakel mbv een deterministisch poly-tijd algoritme. NP-easy is dan te definiëren als de klasse van beslissings-problemen oplosbaar in polynomiale tijd met deterministisch poly-tijd algoritme dat gebruik maakt van orakel in NP. notatie: P NP NP NP : klasse van beslissingsproblemen oplosbaar in polynomiale tijd met een niet-deterministisch poly-tijd algoritme dat gebruik maakt van orakel in NP.
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (2) P = P P P NP NP NP NP = NP P P NP bedenk dat NP, co-NP P NP Generalisatie
T U Delft Parallel and Distributed Systems group PGS Polynomiale Hierarchie (3) P ( NP co-NP ) NP-easy PH
T U Delft Parallel and Distributed Systems group PGS Vb: Minimale Boolese Expressie (MBE) in 2 MBE: Gegeven: een boolese formule F, Vraag: is F een kortste formule onder alle formules die equivalent zijn met F? MBE 2 = co-NP NP. gegeven een instantie F van MBE: 1. gok een kortere boolese formule E. % we verifieren no-instanties 2. verifieer of F equivalent is aan E, door met een SAT-orakel na te gaan of ( (E F) (F E) ) vervulbaar is. % output “no” betekent % dat E equivalent is aan F 3. retourneer “no” als SAT-orakel “no” retourneert.
T U Delft Parallel and Distributed Systems group PGS Vb: Unieke oplossingen Unique SAT NP NP : neem volgende programma input : (U,C) begin 1. gok waarheidstoekenning voor C ; 2. if = C then z := SAT(C { { ¬x 1, …, ¬x n } | (x i ) = 1, x i U ¬ U }; if z = “no” then return “yes” end Instantie: verzameling U van propositie atomen, verzameling C van clauses over U Vraag: Is er precies één waarheidstoekenning die C waarmaakt Unique SAT
T U Delft Parallel and Distributed Systems group PGS Relevantie PH NP-problemen: oplosbaar met backtracking algoritmen. NP NP - problemen: oplosbaar met double-backtracking algoritmen. Voorbeeld: Minimale Boolese Expressie Gegeven een formule F, is F een kortste formule onder alle formules equivalent met F? dit probleem was een 2 - probleem.
T U Delft Parallel and Distributed Systems group PGS Voorbij PH: reguliere expressies is een eindig alfabet. Reguliere expressies over zijn als volgt gedefinieerd: 1. is een expressie die de lege verzameling van rijtjes aanduidt 2. duidt de verzameling aan die alleen het lege rijtje bevat 3. voor iedere a in duidt a de verzameling {a} aan. 4. als en regluliere expressies zijn die A resp. B aanduiden dan i. + duidt A B aan. ii. . duidt AB aan iii. * duidt de verzameling A* = { } A A. A... A k .. Voorbeeld: is standaard alfabet. (a+b)* duidt de verzameling {, a, b, aa, ab, ba, bb, aaa,... } aan. (a+b+c +... z)* is de verzameling van alle woorden (zonder spaties) te vormen uit letters over .
T U Delft Parallel and Distributed Systems group PGS Reguliere expressies instantie: gegeven en reguliere expressie over gevraagd: duidt de verzameling * aan NUNI is co-NP-compleet als geen iteratie wordt gebruikt NUNI is PSPACE compleet NUNI is geen elementair probleem als negatie (¬) wordt toegevoegd: het probleem kan niet herkend worden door een TM met tijd / ruimte complexiteit begrensd door: 2 k voor ieder eindig aantal 2’en in deze expressie NONUNIVERSALITY (NUNI)
T U Delft Parallel and Distributed Systems group PGS Onderwerpen zoekproblemen en Turing reducties zelfreduceerbaarheid de polynomiale hierarchie (PH) benaderingsalgoritmen: inleiding bestaan er polynomiale analoge algoritmen voor NP?
T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen: vb MINCOVER: gegeven G = (V,E), geef een minimale vertex cover voor G. input :G = (V, E) output:vertex cover C voor G begin C := ; while E do kies een { u,v } E; C := C { u, v }; E : = E { { x, y } E : { u, v } { x, y } } end verwijder alle kanten uit E die incident zijn met u of v
T U Delft Parallel and Distributed Systems group PGS Prestatie MinCover benaderingsalgoritme begin C := ; while E do kies een {u,v} E; C := C {u,v}; E : = E { {x,y} E : {u,v} {x,y} } end C is cover van G C bevat kanten {u,v}. Zij C E verzameling geselecteerde kanten => |C E | = 0.5 x |C| als e,e’ C E dan e e’ = | C E | | Mincover | ! dus | C | = | C E | 2 x | Mincover | Conclusie: benaderingsalgoritme garandeert dat gevonden vertexcover C nooit meer dan 2 maal zo groot is als optimale
T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen voor MinCover Er bestaat een polynomiaal approximatie- algoritme dat een cover C vindt met: | C | / | Mincover | 2 - (log log V )/ (2 log V ) (Monien & Speckenmeyer 1985) Er bestaat geen polynomiaal approximatie- algoritme (tenzij P = NP) dat een cover C vindt waarvoor geldt: | C | / | Mincover | (Hästad 1997)
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (i) ? MINCOVER garandeert een bovengrens op de ratio (|gevonden oplossing|)/ (|optimale oplossing|) Mooier zou zijn een bovengrens op het verschil: |(gevonden oplossing - optimale oplossing)| Het vinden van een polynomiaal constant verschil benaderingsalgoritme is net zo moeilijk als het oplossen van P = NP! Kijk maar:
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC ? (ii) Stel wel en kies een k. Laat I = (G = (V,E)). Stel opt(G) = m. Maak nieuwe graaf G k+1 : bestaat uit k+1 copieen van G: => opt(G k+1 ) = (k+1)m. Gebruik A voor G k+1 : geeft cover met (k+1)m + k knopen. Iedere copie van G moet echter minstens m knopen bevatten. => |A(G k+1 )| (k+1)m. Er kunnen derhalve nog maximaal k takken verdeeld worden over k+1 grafen: er is een kopie G’ van graaf G met exact m knopen => Vind G’ en concludeer dat dit benaderingsalgoritme VC oplost! Stelling: Tenzij P = NP bestaat er geen k > 0 en een polynomiaal approximatie algoritme A zodat voor alle instanties I van VC geldt: | A(I) - opt(I) | k.
T U Delft Parallel and Distributed Systems group PGS ETSP: een benadering van een optimale tour MST-tour < OPT-tour a b c e f h ig d d ef d de +d df 2 x MST-tour < 2 OPT-tour MST-TSP < 2 OPT-tour MST-TSP < 2. MST-tour
T U Delft Parallel and Distributed Systems group PGS Approximatie ETSP Euclidische TSP : d ij = d ji d ij d ik + d kj Benaderingsalgoritme (Rosenkrantz) input: ETSP instantie C, D = [d ij ] nxn output: benadering van optimale tour begin T C := minimaal omspannende boom van (C,D); kosten := 0; bezocht := ; stad := c 1 ; while bezocht C if {stad, newstad} T c and newstad bezocht then skip else newstad:= eerstvolgende stad via T C bezocht; kosten := kosten + d stad,newstad ; stad := newstad; kosten := kosten + d stad,c1 ; return kosten end runtijd algoritme O(n 2 )
T U Delft Parallel and Distributed Systems group PGS Onderwerpen zoekproblemen en Turing reducties zelfreduceerbaarheid de polynomiale hierarchie (PH) benaderingsalgoritmen: inleiding bestaan er polynomiale analoge algoritmen voor NP ?
T U Delft Parallel and Distributed Systems group PGS Demonstratie Langste Pad Gegeven het volgende probleem: Naam: Langste Pad (LPd) Instantie: graaf G = (V,E), integer K Vraag: Heeft G een simpel pad ter lengte van K of meer? LPd is een NPC probleem Demo : Langste Pad in O(1) oplosbaar ?
T U Delft Parallel and Distributed Systems group PGS Een tentamenvraag Iemand beweert het volgende: “ Het probleem VERTEXCOVER is een exponentieel probleem. Immers, om na te gaan of een instantie I = (G = (V,E), K) een yes- instantie is, moeten er 2 K deelverzamelingen V' van V worden onderzocht om na te gaan of V' een nodecover is van V. De totale tijdkosten zijn derhalve minstens 2 K en dit is niet polynomiaal in |I|. Derhalve is VERTEXCOVER een exponentieel probleem. Dus is P ongelijk aan NP.” Deze bewering is a. onjuist, want 2K is wel degelijk polynomiaal in |I|. b. onjuist; het bestaan van een exponentieel algoritme voor een probleem bewijst niets over de complexiteit van het probleem. c. juist; als er een exponentieel algoritme voor een NP probleem zou bestaan, moet NP wel ongelijk zijn aan P. d. juist; bovenstaande analyse toont aan, dat de worst-case complexiteit van NODECOVER exponentieel is.
T U Delft Parallel and Distributed Systems group PGS unimodaal transport Gegeven n locaties c ij, i =1,..., n p orders (c ij, c i’j’ ) positieve integer K. Gevraagd is er een sequentie van K of minder transporten zodanig dat alle orders uitgevoerd kunnen worden; dwz. is er een rij T = c i1j1 c 12j2... c ikjk van locaties met k K + 1, zodat voor iedere order (c ij, c i’j’ ) geldt, dat T op te splitsen is in 3 stukken T1, T2 en T3 met T = T1 c ij T2 c i’j’ T3 ? Bewijs dat unimodaal transport NP-compleet is; Geef een 2-approximatie algoritme voor dit probleem
T U Delft Parallel and Distributed Systems group PGS Logica en Complexiteit We beschouwen een taal L voor grafen zoals zin in L -graaf probleem x y G(x,y)“is G totaal verbonden” x y[ G(x,y) G(y,x)“is G is symmetrisch” gegeven een model M voor , geldt M |= Resultaat Voor iedere eerste-orde geldt: - graaf is een P probleem
T U Delft Parallel and Distributed Systems group PGS Logica en Complexiteit Beschouw nu tweede-orde zinnen over een taal L van de vorm P met eerste-orde uitdrukking en P relatie Vb -graaf probleem V[ x 1,... x k x,y [G(x,y) -> (V(x) or V(y))“is G totaal verbonden” x y[ G(x,y) G(y,x)“is G is symmetrisch” Resultaat Voor iedere eerste-orde geldt: - graaf is een P probleem