De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,

Verwante presentaties


Presentatie over: "TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,"— Transcript van de presentatie:

1 TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI, TU Delft College 2

2 TU Delft Groep Parallelle en Gedistribueerde Systemen Test Ga na welke van onderstaande juist zijn: a. 3 n = O(2 n ). b.c n = 2 O(n) voor elke constante c > 0. c.als p(n) een polynoom is dan geldt p(n) = n O(1) d.n! = O(2 n ). a. b. c. d.

3 TU Delft Groep Parallelle en Gedistribueerde Systemen Antwoorden a. 3 n = O(2 n ) is onjuist: Stel maar eens dat er een n 0 en c is zodat voor alle n>n 0, 3 n ≤ c.2 n. Maar nu geldt voor alle n > c / (log 1.5) dat3 n > c.2 n. Daarmee is aangetoond dat zulke constanten n 0 en c niet kunnen bestaan b. c n = 2 O(n) voor elke constante c > 0 is juist: c n = 2 log c x n = 2 O(n) c.als p(n) een polynoom is dan geldt p(n) = n O(1) is juist: Stel p(n) = a n n k +a n-1 n k-1 + … + a 0. Dan geldt ≤(a n +…+a 0 )n k voor n≥1. Voor n 0 = a n +…+a 0 geldt nu (a n +…+a 0 )n k ≤ n k+1 voor alle n ≥ n 0. Derhalve geldt p(n) = n O(1) d.n! = O(2 n ) is onjuist. Stel maar eens dat er een n 0 en c is zodat voor alle n>n 0, n! ≤ c.2 n. Neem nu n>max{n 0, 2 2 c}. Dan geldt: n! > 2 n-2 x 2 2 c =c2 n ; contradictie

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

5 TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld: PATH in P 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. s t PATH = { | G is gerichte graaf met pad van s naar t } Sipser Alternatieve formulering Vergelijk met een taal L over Σ

6 TU Delft Groep Parallelle en Gedistribueerde Systemen 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 then accept else reject end O(|V| 2 |E|) O(1) O(|V|) tijdcomplexiteit: O(|V| 2 |E|) = O(| input | 3 ) | input | = |V|+|E| + 2 PATH in P O(|E||V|)

7 TU Delft Groep Parallelle en Gedistribueerde Systemen voorbij P : NP 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. Niet-deterministisch Polynomiale (tijd) USD te verdienen:

8 TU Delft Groep Parallelle en Gedistribueerde Systemen P en NP voor alle problemen in P bestaat een polynomiaal algoritme voor de constructie van de oplossing sommige belangrijke (beslissings)problemen hebben de eigenschap dat - het niet bekend is of een polynomiale constructie voor de oplossing mogelijk is, - er wel een polynomiale verificatie procedure voor de oplossing bestaat. deze problemen worden NP-problemen genoemd

9 TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld van een NP probleem instantie: G = (V,E) vraag: is er een simpel pad in G dat alle knopen uit V bevat? HAMP = { G : er is een hamiltoons pad voor G } Sipser notatie 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. Hamiltoons Pad (HAMP)

10 TU Delft Groep Parallelle en Gedistribueerde Systemen Verificatie: gegeven een rij (v i 1,..., v i k ) van knopen 1. komt iedere knoop in V exact éénmaal voor in (v i 1,..., v i k ) ? 2. is {v i j,v i j+1 } voor alle i = 1,..., k-1 een kant in E? Verificatie: gegeven een rij (v i 1,..., v i k ) van knopen 1. komt iedere knoop in V exact éénmaal voor in (v i 1,..., v i k ) ? 2. is {v i j,v i j+1 } voor alle i = 1,..., k-1 een kant in E? Voorbeeld Hamiltoons pad HAMP instantie G = ( V, E ) hamiltoons pad O(|V| 2 ) O(|V||E|) O(|input| 3 ) 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 G een hamiltoons pad heeft: HAMPAD is wel polynomiaal verifieerbaar v1v1 v3v3 v4v4 v5v5 v6v6 Certificaat: (v 1,v 3,v 5,v 6,v 4,v 2 ) v2v2

11 TU Delft Groep Parallelle en Gedistribueerde Systemen Alternatieve definitie NP 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 of beslissingsprobleem

12 TU Delft Groep Parallelle en Gedistribueerde Systemen Equivalente Definities NP NP : klasse van alle polynomiaal verifieerbare talen NP : klasse van alle talen die geaccepteerd worden door een polynomiale NTM  Gegeven polynomiale verifier V, construeer NTM M als volgt: voor input x met |x| = n kies nondeterministisch een certificaat c van lengte ≤ n k. 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.

13 TU Delft Groep Parallelle en Gedistribueerde Systemen 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.

14 TU Delft Groep Parallelle en Gedistribueerde Systemen Reducties (i) HAMC instantie G = (V, E) hamiltoons circuit 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 } Reducties als hergebruik van algoritmen

15 TU Delft Groep Parallelle en Gedistribueerde Systemen Reductie: idee Eisen aan f: 1.  x  * : x  HAMC  f(x)  HAMP 2. f berekenbaar in poly-tijd Eisen aan f: 1.  x  * : x  HAMC  f(x)  HAMP 2. f berekenbaar in poly-tijd HAMC ** HAMP ’*’* algoritme HAMP noyes f f(*)f(*)

16 TU Delft Groep Parallelle en Gedistribueerde Systemen Reductie (ii) HAMC instantie G = (V, E) v1v1 v0v0 a b hamiltoons circuit hamiltoons pad HAMP instantie G = (V, E) HAMC is niet essentieel moeilijker dan HAMP

17 TU Delft Groep Parallelle en Gedistribueerde Systemen Reductie: constructie uitgewerkt input: G = (V, E) begin V’ : = {a, b, v 0 }  V % a, b, v 0  V E’ := E  { {v 0,v} : {v 1,v}  E }  { {v 0,a}, {v 1,b} } return f(G) = (V’, E’) end Constructie reductie f van HAMC naar HAMP 1.G  HAMC  f(G)  HAMP 2.f(G)  HAMP  G  HAMC 3. f is polynomiaal berekenbaar Correctheid van reductie (kun je na afloop zelf)

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

19 TU Delft Groep Parallelle en Gedistribueerde Systemen Eigenschappen polynomiale reducties A  A (reflexiviteit) A  B en B  C impliceert A  C (transitiviteit) A C B   A  NP P B A B  NP en A  B impliceert A  NP (geslotenheid onder  )  

20 TU Delft Groep Parallelle en Gedistribueerde Systemen NP-hard en NP-compleet B is NP-hard (onder  voor iedere A in NP geldt A  B B is NP-compleet onder  1. B is NP-hard onder  2. B  NP NP-hard NP-compleet

21 TU Delft Groep Parallelle en Gedistribueerde Systemen Structuur van NP NPC P P         NPC = { A  NP |  X  NP [X  A] } moeilijker

22 TU Delft Groep Parallelle en Gedistribueerde Systemen Eigenschappen NPC Als A  NPC, B  NP en A  B dan B  NPC. Als A  NPC  P dan P = NP. A NPC B P  NP (def.) NP  P : Neem X  NP. Dan X ≤ A. Derhalve (P gesloten) X  P.

23 TU Delft Groep Parallelle en Gedistribueerde Systemen 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.

24 TU Delft Groep Parallelle en Gedistribueerde Systemen Hoe A  NPC te bewijzen? Bewijs eerst dat A  NP: Toon aan dat voor iedere x  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.

25 TU Delft Groep Parallelle en Gedistribueerde Systemen Meer NP problemen: vb Traveling Sales Person (TSP) - instantie: een verzameling S van n steden, een intercity afstanden matrix D nxn met d ij  Z + en een integer B  Z + - vraag: bestaat er een tour langs alle steden met totale afstand  B ? TSP = { (S, D, B) : S heeft tour met kosten ≤ B }

26 TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld:TSP is NP-compleet Aanname: HAMC is NP-compleet Te bewijzen: TSP is NP-compleet

27 TU Delft Groep Parallelle en Gedistribueerde Systemen reductie idee HAMC instantie G = ( V, E ) TSP instantie ( V, D, |V| ) hamiltoons circuit tour met kosten  |V|

28 TU Delft Groep Parallelle en Gedistribueerde Systemen HAMC  TSP input: G = (V,E) output: yes alss G in HAMC begin S := V ; D := [ d ij ] |V| x |V| where d ij = 1 if { v i, v j }  E and d ij = 2 else; B := |V|; return TSP(S,D,B) ; end Algoritme voor TSP probleem

29 TU Delft Groep Parallelle en Gedistribueerde Systemen HAMC  TSP (uitwerking) 1. Constructie reductie Laat I = ( G = (V,E)) een willekeurige instantie van HAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP: 1. S := V ; 2. D := [ d ij ] |V| x |V| met d ij = 1 als { v i, v j }  E en d ij = 2 anders; 3. B := |V|; 2. Correctheid reductie a. Stel I = ( G = (V,E)) is een yes-instantie van HAMC. Dan is er een circuit (v i1, v i2, v i3,…, v in, v i1 ) dat alle knopen uit V bevat met  j=1,…,n-1: (v ij, v ij+1 )  E en (v in, v i1 )  E. Maar dan geldt onmiddellijk dat d vij,vi(j+1) = 1 en d vin,vi1 = 1 en derhalve is (v i1, v i2, v i3,…, v in, v i1 ) een tour in R(I) met kosten ≤ B. Derhalve is R(I) een yes-instantie van TSP.

30 TU Delft Groep Parallelle en Gedistribueerde Systemen HAMC  TSP (uitwerking) b. Stel R(I) is een yes-instantie. Te bewijzen dat I een yes- instantie is. (Ga zelf na) 3. Polynomialiteit Bedenk dat I = |V| +|E|. S is te construeren in O(|V|) tijd. D is te construeren in O(|V| 2 x |E|)-tijd. Bepaling van B kost O(|V|)-tijd. Totaal: O(|V| 2 x|E|) ≤ O(|I| 3 )-tijd

31 TU Delft Groep Parallelle en Gedistribueerde Systemen Vb NP-probleem Naam: FREQUENTIETOEWIJZING (FREQ) Instantie: - een k-tal verschillende frequenties f 1, …, f k  Z + / {1} - een n-tal locaties l 1, l 2, …, l n  Z + / {1} van mobiele telefoons, met gegeven onderlinge afstanden d(l i, l j )  Z + ; - een kritieke afstand D > 0. Vraag: - is er een toekenning T van frequenties aan locaties zodanig dat voor ieder tweetal locaties l i en l j met d ij ≤ D geldt: T(l i ) ≠ T(l j ) ?

32 TU Delft Groep Parallelle en Gedistribueerde Systemen instantie van freq. toewijzing D ≤ 4 frequenties n =16 k = 6

33 TU Delft Groep Parallelle en Gedistribueerde Systemen instantie van freq. toewijzing D frequenties oplossing te verifieren in O(n 2 )-tijd k geen polynomiale constructie: best bekende algoritme kost O(k n )-tijd

34 TU Delft Groep Parallelle en Gedistribueerde Systemen FREQ: polynomiale verificatie gebruik als certificaat c een toewijzing T(l 1 ), T(l 2 ),..., T(l k ) controleer in polynomiale tijd of T oplossing is: begin oplossing := true for i = 1 to n for j =1 to n if i ≠ j then if d(l i, l j ) ≤ D and T(l i ) = T(l i ) then oplossing := false return oplossing end O(  i  j max{log d(l i,l j ),log D} +  i  j max{log f i, log f j } ) O(  i  j log d(l i,l j ) + n 2 log D + 2n  i =1..k log f i ) = O( |input| 3 ) | input | =  i =1..k log f i +  i =1..n log l i +  i  j log d(l i,l j ) + log D O(max{log d(l i,l j ),log D}+max{log f i, log f j } )

35 TU Delft Groep Parallelle en Gedistribueerde Systemen 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

36 TU Delft Groep Parallelle en Gedistribueerde Systemen poly-tijd reductie: vb reductie van VERTEX COVER (VC) naar CLIQUE: input: G = ( V, E ), K  Z + ; output: yes alss VC ter 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 return CLIQUE(G’, K’) end Nb: CLIQUE is het algoritme voor het clique probleem; CLIQUE(G’, K’) = yes alss G’ een clique ter grootte van K’ bevat anders no

37 TU Delft Groep Parallelle en Gedistribueerde Systemen G G’ Zo werkt de reductie

38 TU Delft Groep Parallelle en Gedistribueerde Systemen vertex cover size 5 in G ( K ) clique size 3 in G’ ( |V| - K ) Zo werkt de reductie

39 TU Delft Groep Parallelle en Gedistribueerde Systemen Hoe correctheid te bewijzen ga na dat transformatie polynomiaal is 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.


Download ppt "TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,"

Verwante presentaties


Ads door Google