1 / 34

Fundamentele Informatica IN3120

Fundamentele Informatica IN3120. College 2. Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI, TU Delft. Test. a. b. c. d. Ga na welke van onderstaande juist zijn: a . 3 n = O(2 n ). b. c n = 2 O(n) voor elke constante c > 0.

foster
Télécharger la présentation

Fundamentele Informatica IN3120

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fundamentele Informatica IN3120 College 2 Cees WitteveenParallelle en Gedistribueerde Systemen Faculteit EWI, TU Delft

  2. Test a. b. c. d. Ga na welke van onderstaande juist zijn: a. 3n = O(2n). b. cn = 2O(n) voor elke constante c > 0. c. als p(n) een polynoom is dan geldt p(n) = nO(1) d. n! = O(2n).

  3. Antwoorden • 3n = O(2n) is onjuist:Stel maar eens dat er een n0 en c is zodat voor alle n>n0, 3n ≤ c.2n . Maar nu geldt voor alle n > c / (log 1.5) dat3n > c.2n. Daarmee is aangetoond dat zulke constanten n0 en c niet kunnen bestaan • cn = 2O(n) voor elke constante c > 0 is juist: cn = 2log c x n = 2O(n) c. als p(n) een polynoom is dan geldt p(n) = nO(1) is juist:Stel p(n) = annk+an-1nk-1+ … + a0 . Dan geldt ≤(an+…+a0)nk voor n≥1. Voor n0 = an+…+a0 geldt nu (an+…+a0)nk ≤ nk+1 voor alle n ≥ n0.Derhalvegeldt p(n) = nO(1) d. n! = O(2n) is onjuist.Stel maar eens dat er een n0 en c is zodat voor alle n>n0, n! ≤ c.2n . Neem nu n>max{n0, 22c}. Dan geldt: n! > 2n-2 x 22c =c2n; contradictie

  4. alle problemen (talen) die in polynomiale tijd ( n O(1))kunnen worden beslist heten doenlijke problemen. complexiteitsklasse: P = k ≥ 0Time(nk) Stelling alle deterministische berekeningsmodellen zijn polynomiaal equivalent Gevolg polynomiale algoritmen zijn onafhankelijk van het gebruikte (deterministische) berekeningsmodel. Doenlijke problemen en P

  5. s t Voorbeeld: PATH in P Vergelijk met een taal L over Σ Sipser Naam:PATH Instantie:Gerichte graaf G = (V, E), knopen s, t in V; Vraag: bestaat er een (gericht) pad van s naar t in G. PATH = { < G, s, t > | G is gerichte graaf met pad van s naar t } Alternatieve formulering

  6. O(1) O(|V|2|E|) O(|E||V|) O(|V|) PATH in P | input | = |V|+|E| + 2 tijdcomplexiteit:O(|V|2 |E|) = O(| input |3) input : G =(V,E), s,t  V begin new := true fringe := {s}; while new new : = false for every e = (x,y) in E if x  fringe  y  fringe then fringe:= fringe  {y} new := true if t  fringe thenacceptelsereject end

  7. voorbij P : NP Niet-deterministisch Polynomiale (tijd) Eigenschappen P-probleem • oplossing is in polynomiale tijd te construeren. • oplossing is in polynomiale tijd te verifiëren. Eigenschappen NP-probleem • niet bekend of oplossing in polynomiale tijd is te construeren. • oplossing is wel in polynomiale tijd te verifiëren. 1000.000 USD te verdienen: http://www.claymath.org/Millennium_Prize_Problems/

  8. Voorbeeld van een NP probleem Hamiltoons Pad (HAMP) instantie:G = (V,E)vraag:is er een simpel pad in G dat alle knopen uit V bevat? Sipser notatie HAMP = { G : er is een hamiltoons pad voor G } Opmerking: als G  HAMP dan wordt G een yes-instantie van HAMP genoemd. als G HAMP dan wordt G een no-instantie van HAMP genoemd.

  9. hamiltoons pad Voorbeeld Hamiltoons pad Er zijn geen polynomiale algoritmen voor HAMP bekend als een rijtje van n knopen als certificaat gegeven wordt kan wel in polynomiale tijd gecheckt worden of Geen hamiltoons pad heeft: HAMPAD iswel polynomiaal verifieerbaar v2 v1 v4 v3 O(|input|3) Verificatie:gegeven een rij (vi 1, . . ., vi k) van knopen komt iedere knoop in V exact éénmaal voor in (vi 1, . . ., vi k) ? is {vi j,vi j+1} voor alle i = 1,..., k-1 een kant in E? v5 O(|V|2) v6 Certificaat: (v1,v3 ,v5 ,v6 ,v4 ,v2 ) HAMP instantieG = ( V, E ) O(|V||E|)

  10. Alternatieve definitie NP of beslissingsprobleem • Een verifier voor een taal L is een algoritme V waarvoor geldt: • L = { x | V accepteert ( x, c ) voor een rijtje c } • c is het certificaat of bewijs voor lidmaatschap van L • Een verifier V heet polynomiaal als V een algoritme is dat polynomiaal is in |x|. In dit geval wordt de taal L polynomiaal verifieerbaar genoemd. NP is de klasse van alle polynomiaal verifieerbare talen

  11. Gegeven polynomiale verifier V, construeer NTM M als volgt: voor input x met |x| = n kies nondeterministisch een certificaat c van lengte ≤ nk. Simuleer V op invoer (x,c);accepteer als V accepteert, anders verwerp. Gegeven polynomiale NTM M, construeer V als volgt:voor input x met |x| = n, simuleer Tm M op x en noteer de opeenvolgende(niet)-deterministische keuzes die M maakt in certificaat c; accepteer als M uiteindelijk accepteert, anders verwerp. Equivalente Definities NP NP : klasse van alle polynomiaal verifieerbare talen  NP : klasse van alle talen die geaccepteerd worden door een polynomiale NTM

  12. Centraal probleem: P = NP? • P = NP ?Voor NP problemen zijn tot nu toe alleen exponentiële algoritmen bekend; we weten niet of P=NP of P≠NP. • Belang:NP bevat groot aantal interessante problemen • satisfiability van boolese formules • padproblemen in grafen (TSP, Hamiltoons pad) • cover problemen: set en vertex cover. • rooster en schedulings problemen. • etc.

  13. hamiltoons circuit Reducties (i) Reducties als hergebruik van algoritmen Stel we hebben de beschikking over een van de beste algoritmen ter wereld voor HAMP. Kunnen we zonder essentieel efficiëntie verlies dit algoritme ook gebruiken voor andere NP-problemen zoals HAMC? HAMC = {G: G heeft een simpel circuit dat alle knopen bevat } HAMC instantieG = (V, E)

  14. f(*) ’* * f HAMC HAMP algoritmeHAMP no yes Reductie: idee Eisen aan f:1.x  * : x  HAMC f(x)  HAMP 2. f berekenbaar in poly-tijd

  15. hamiltoons pad hamiltoons circuit Reductie (ii) v0 a b v1 HAMC instantieG = (V, E) HAMP instantieG = (V, E) HAMC is niet essentieel moeilijker dan HAMP

  16. Constructie reductie f van HAMC naar HAMP input: G = (V, E) beginV’ : = {a, b, v0 }  V %%a, b, v0  V E’ := E  { {v0,v} : {v1,v}  E }  { {v0,a}, {v1,b} } return f(G) = (V’, E’)end Reductie: constructie uitgewerkt Correctheid van reductie (kun je na afloop zelf) 1. G  HAMC  f(G)  HAMP 2. f(G)  HAMP  G  HAMC 3. f is polynomiaal berekenbaar

  17. Polynomiale-tijd reducties Definitie notatie: A ≤ B Een polynomiale-tijd reductie van probleem A naar probleem B is een polynomiaal berekenbare functie f waarvoor geldt : x *x A  f(x)  B Stelling Als f een poly-tijd reductie is van A naar B dan geldt als B P dan A P Bewijs: laat p en q polynomen zijn waarvoor geldt: ALGB is een O(p(n)) algoritme voor B en f is berekenbaar in O(q(n)). Gegeven een x met |x| = n, bepaal nu ALGB ( f(x)). Berekening kost O(q(n) +p(n+q(n)))-tijd. Omdat polynomen gesloten zijn onder optelling en functiecompositie geldt: ALGB ( f(x)) is een polynomiaal algoritme voor A.

  18. NP B C   B  A A A P Eigenschappenpolynomiale reducties   AA(reflexiviteit) B NPen ABimpliceert A NP (geslotenheid onder) AB en BCimpliceert AC(transitiviteit)

  19. NP-hard en NP-compleet NP-hard • B isNP-hard (onder )voor iedere A in NP geldt AB NP-compleet B is NP-compleet onder1. B is NP-hard onder  2. B NP

  20. NPC   moeilijker       P Structuur van NP NPC = { A  NP | X  NP [X  A] } NP

  21. B Eigenschappen NPC NPC • AlsA NPC, B  NP enA  B dan B  NPC. • AlsA  NPC  P dan P = NP. A P  NP (def.) NP  P :Neem X  NP. Dan X ≤ A. Derhalve (P gesloten) X  P .

  22. Waarom NPC belangrijk? • Als we een polynomiaal algoritme voor eenNPC-probleemAkunnen vinden ( A P) dan geldt P = NP. • Als we voor eenNPC-probleemAkunnen aantonen datA  P, dan geldt P  NP.

  23. Hoe A  NPC te bewijzen? • Bewijs eerst dat A  NP:Toon aan dat voor iedere x Aeen polynomiale verificatie procedure bestaat. • Toon aan datB Avoor een bekend NPC probleemB.Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie BA enlaat zien dat deze correct is.

  24. Meer NP problemen: vb • Traveling Sales Person (TSP) • instantie: een verzameling S van n steden , een intercity afstanden matrix Dnxn met dij Z+ en een integer B  Z+ • vraag: bestaat er een tour langs alle steden mettotale afstand  B ? TSP = { (S, D, B) : S heeft tour met kosten ≤ B }

  25. Voorbeeld:TSP is NP-compleet • Aanname:HAMC is NP-compleet • Te bewijzen:TSP is NP-compleet

  26. hamiltoons circuit tour met kosten  |V| 1 2 1 2 1 2 1 1 2 2 1 1 1 reductie idee TSP instantie(V,D,|V| ) HAMC instantieG = ( V, E )

  27. Algoritme voor TSP probleem HAMC  TSP input: G = (V,E)output: yes alss G inHAMC beginS:= V ;D:=[ dij] |V| x |V|wheredij = 1if { vi, vj } E and dij = 2 else;B :=|V|;return TSP(S,D,B); end

  28. HAMC  TSP (uitwerking) • Constructie reductieLaat I = ( G = (V,E)) een willekeurige instantievanHAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP: • S := V ; • D := [ dij] |V| x |V| met dij = 1 als { vi, vj }  E en dij = 2 anders; • B := |V|; • Correctheid reductiea. Stel I = ( G = (V,E)) is een yes-instantie van HAMC. Dan is er een circuit (vi1, vi2, vi3,…, vin, vi1) dat alle knopen uit V bevat met j=1,…,n-1: (vij, vij+1) Een(vin, vi1) E. Maar dan geldt onmiddellijk dat dvij,vi(j+1) = 1 en dvin,vi1 = 1 en derhalve is (vi1, vi2, vi3,…, vin, vi1) een tour in R(I) met kosten ≤ B. Derhalve is R(I) een yes-instantie van TSP.

  29. HAMC  TSP (uitwerking) b. Stel R(I) is een yes-instantie. Te bewijzen dat I een yes-instantie is. (Ga zelf na) • PolynomialiteitBedenk dat I = |V| +|E|.S is te construeren in O(|V|) tijd.D is te construeren in O(|V|2x |E|)-tijd.Bepaling van B kost O(|V|)-tijd. Totaal: O(|V|2x|E|) ≤ O(|I|3)-tijd

  30. Wat doen we hierna? • doenlijk vss ondoenlijk: P versus NP • NP-complete problemen, voorbij NP • praktische aspecten van NP-problemen • pseudopolynomiale algoritmen • heuristieken • bijzondere onderwerpen • quantum computing • zero-knowledge proof systems

  31. poly-tijd reductie: vb • reductie vanVERTEX COVER (VC)naar CLIQUE: input:G = ( V, E ), K  Z+; output: yes alss VCter grootte van K bestaat begin Laat G’ = ( V’, E’ ) met V’ = V en E’ = { { v,w } | v ≠ w  V, {v,w}  E }; K’ = | V | - K returnCLIQUE(G’, K’) end Nb: CLIQUE is het algoritme voor hetclique probleem; CLIQUE(G’, K’) = yes alss G’ een clique ter grootte van K’ bevat anders no

  32. Zo werkt de reductie G G’

  33. Zo werkt de reductie vertex cover size 5 in G ( K ) clique size 3 in G’ ( |V| - K )

  34. Hoe correctheid te bewijzen • ga na dat transformatie polynomiaalis • ga na dat yes-instanties van VC worden getransformeerd naar yes-instanties van CLIQUE • ga na dat een getransformeerde yes-instantie van CLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC.

More Related