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 IN3 005 Deel 2 College 5 Cees Witteveen

Verwante presentaties


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

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

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

3 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

4 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

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

6 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

7 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

8 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

9 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

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

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

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

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

14 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

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

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

17 T U Delft Parallel and Distributed Systems group PGS ?? ? Voorbij NP-easy? Co-NPC NPC P NP-easy Co-NP NP PSPACE

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

19 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

20 T U Delft Parallel and Distributed Systems group PGS Polynomiale Hierarchie (3) P ( NP co-NP ) NP-easy PH

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

22 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

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

24 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 .

25 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 2 2... voor ieder eindig aantal 2’en in deze expressie NONUNIVERSALITY (NUNI)

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

27 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

28 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

29 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 |  1.1666 (Hästad 1997)

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

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

32 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

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

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

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

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

37 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

38 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

39 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


Download ppt "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen"

Verwante presentaties


Ads door Google