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 in345 Deel 2 Laatste College ! Cees Witteveen.

Verwante presentaties


Presentatie over: "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen."— Transcript van de presentatie:

1 T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen

2 T U Delft Parallel and Distributed Systems group PGS Voor deze week: Benaderingsalgoritmen - KNAPSACK  FPTAS TSP-opt  APX (tenzij P = NP) Zero-knowledge proof systems Veilige pinpasjes? Andere paradigmata Parallellisme Quantum computing

3 T U Delft Parallel and Distributed Systems group PGS Approximatie hierarchie NPO APX PTAS FPTAS PO NPO - APX: problemen waarvoor geen efficient approximatie algoritme bestaat tenzij P = NP Polynomiaal optimaliseerbare problemen MINCOVER, ETSP, MAXSAT BINPACKING KNAPSACK TSP-opt !

4 T U Delft Parallel and Distributed Systems group PGS TSP-OPT  NPO - APX ! Stel TSP-OPT  APX. Dan is er een polynomiaal approximatie algoritme M voor een  < 1. c(M(I))  n /(1-  )  opt(I) = n c(M(I)) > n/(1-  )  opt(I) > n Neem nu TSP-OPT instanties I = (C, D) met |C| = n en d ij = 1 of d ij = (1/(1-  ) ) x n. Dan geldt: c( M(I) ) - opt(I) c(M(I)   en derhalve c(M(I))  opt(I) / (1-  ) voor iedere I Omdat c(M(I))  opt(I) / (1-  ) moet gelden opt(I)  n. Er geldt echter: opt(I)  n. Dus opt(I) = n Omdat c(M(I)) > opt(I) / (1-  ) moet gelden opt(I) / (1-  ) > n/(1-  ) Dus opt(I) > n

5 T U Delft Parallel and Distributed Systems group PGS TSP-opt niet in APX (ii) Veronderstel nu dat er een appr. algoritme met vaste approximatiedrempel  voor TSP-opt bestaat en neem nu een willekeurige HAMC instantie I = (G = (V, E)) ; transformeer deze instantie naar TSP-OPT instantie R(I) = (C, D) met C = V en d ij = 1 als {v i, v j } in E en d ij = (1/(1-  ) ) x n anders Dan geldt: c(M(R(I)))  n /(1-  )  opt(I) = n  I is yes-instantie van HAMC c(M(R(I))) > n/(1-  )  opt(I) > n  I is no-instantie van HAMC Dwz: Er bestaat een P-algoritme voor HAMC!

6 T U Delft Parallel and Distributed Systems group PGS FPTAS en pseudo- polynomiale algoritmen Stel A  FPTAS. Als er een polynoom p bestaat zodat voor alle I A geldt: opt(I A ) < p( |I A |, max(I A ) ) dan heeft A een pseudopolynomiaal algoritme. Schets bewijs: kies  = p( |I A |, max(I A ) ) A  FPAS  M is polynomiaal in  -1  M is polynomiaal in |I A |, max(I A ); 2. M is (FPTAS) benaderingsalgoritme voor A  |opt(I A ) - c(M(I A ))|  opt(I A ).  < 1  opt(I A ) = c(M(I A )) (analoog voor max.probleem)

7 T U Delft Parallel and Distributed Systems group PGS Een FPTAS probleem Gewogen Knapsack (GK) Gegeven : verzameling S = {s 1,..., s n } met gewichten g(s i )  Z + en waarden w(s i )  Z + en een gewichtslimiet G  max g(s i ) = g max  Z + Gevraagd: subset S’ van S zodat  s  S’ g(s)  G en  s  S’ w(s) maximaal.

8 T U Delft Parallel and Distributed Systems group PGS Een pseudopolynomiaal algoritme voor GK Construeer pseudopolynomiaal algoritme voor GK met mg(i, w) = minimum haalbaar gewicht voor keuze uit eerste i items met totale waarde w mg(0,0) = 0, mg(0,w) =  voor w > 0. mg(i + 1, w) = min{ mg(i, w), mg(i, w - w(s i+1 )) + g(s i+1 ) } ( i = 0, 1... n, w = 0, 1, 2,... nx w max ) Oplossing van de GK instantie (S,g,w, G) is de grootste w met mg(n, w)  G. Complexiteit van algoritme: O(n 2 x w max x log (n g max w max )) grootte input instantie: O(n g max w max )

9 T U Delft Parallel and Distributed Systems group PGS benaderingsalgoritme (i) Stel, dat we in plaats van I =(S,w,g,G) de instantie I’ =(S,w’,g,G) oplossen met w’(s i ) =w’ i =  w(s i ) / 2 b  voor i =1, 2.. n en een zekere b > 0. I’ = (S,w’,g,G) kan worden opgelost met pseudo- polynomiaal algoritme in O(n 2 x w’ max x log (n g max w’ max ))). Laat uitkomst S’’ zijn. Stel S’ is optimale oplossing van de oorspronkelijke instantie I. Dan geldt:  i  S’ w(s i )   i  S’’ w(s i )   i  S’’ w’(s i ) x 2 b   i  S’ w’(s i ) x 2 b   i  S’ ( w(s i ) - 2 b )   i  S’ w(s i ) - n 2 b

10 T U Delft Parallel and Distributed Systems group PGS benaderingsalgoritme (ii) relatie oplossing S’ van I met oplossing S’’ van I’  i  S’ w(s i )   i  S’’ w(s i )   i  S’ w(s i ) - nx 2 b beschouw nu S’’ als een benadering van S’: Dan geldt:  i  S’ w(s i )  (n 2 b )/ w max =  |  i  S’’ w(s i ) -  i  S’ w(s i )| bedenk dat opt(I)  w max we kunnen nu als volgt een algoritme samenstellen: als  bekend is, kies b = log  w max / n. De looptijd van het algoritme is dan O(n 2 w max / 2 b log (n g max w max /2 b ))) = O(n 3 /  log (n 2 g max /  ))

11 T U Delft Parallel and Distributed Systems group PGS benaderingsalgoritme (iii) De performance ratio van dit approximatie algoritme is nu  = (n 2 b )/ w max. Dit algoritme is een FPTAS-algoritme: 1. Kies een . 2. Laat nu 2 b =  w max / n 3. Los I’ = (S,w’,g,G) op met w’(s i ) =w’ i =  w(s i ) / 2 b  4. looptijd benaderingsalgoritme is: O(n 2 x w’ max x log (n g max w’ max )) = O((n 3 /  ) x log ((n 2 /  ) g max )  O(|I| 5 ) i.e. polynomiaal in 1/  en |I|

12 T U Delft Parallel and Distributed Systems group PGS Helpt parallellisme? parallelle speedup =  aantal gebruikte processoren Als P = NP, dan ook met parallelle algoritmen meer dan polynomiaal aantal processoren nodig. meting paralllelle complexiteit van problemen: (benodigde tijd, benodigde hardware) parallelle berekenings thesis onder aanname van onbeperkte hardware geldt parallelle tijd = sequentiele ruimte tijd parallel algoritme tijd beste sequentiele algoritme

13 T U Delft Parallel and Distributed Systems group PGS Modellen parallelle berekeningen Boolese circuits: een boolese circuit is een circuit met beperkte fan-in ter berekening van een boolese functie. grootte van circuit C: size(C) = aantal gates  benodigde hardware diepte van circuit C: depth(C) = aantal gates op langste pad van input gate naar output gate  benodigde tijd

14 T U Delft Parallel and Distributed Systems group PGS Problemen en circuits L : binaire codering van alle yes-instanties van een probleem. L n : verzameling van strings ter lengte n uit L. Met iedere L n is een boolese functie g n met g n (x) = 1 alss x  L n te associeren en een circuit C n dat g n berekent. Laat C = { C n : n  0 }: C is een familie van circuits die L bepaalt. C is uniform als er een (log space) Turingmachine M bestaat die gegeven een input 1 n als output C n geeft Een probleem L heeft diepte-grootte complexiteit (f(n), g(n)) als er een uniforme familie C bestaat met depth(C n )  f(n) en size(C n )  g(n)

15 T U Delft Parallel and Distributed Systems group PGS NC NC (Nick’s class) is de klasse van problemen met diepte-grootte complexiteit ( O(log k n), O(n k ) ) voor een constante k. NC geldt als de klasse van parallelliseerbare problemen Er geldt: NC  P P-complete problemen A is P-compleet als A  P en voor iedere B  P geldt B is log-ruimte reduceerbaar tot A Vermoeden: P - NC  

16 T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Proofs probleem: A wil B overtuigen dat hij/zij in het bezit is van informatie I zonder I behoeven prijs te geven. (pinpasjes probleem!) Zero knowledge proofsysteem voor graaf 3-kleurbaarheid: Gegeven: Graaf G = (V,E) Vraag : is G 3-kleurbaar, dwz is er een functie kl: V -> {1,2,3} zodat voor alle v,w  V geldt: als {u,v}  E dan kl(u)  kl(v) Dit probleem is een NPC probleem!

17 T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Proofs Stel instantie G =(V,E) gegeven en Petra weet oplossing kl, wil Victor ervan overtuigen dat zij kl kent, maar wil kl niet verraden. Zero proof system gaat als volgt: Petra maakt een permutatie kl’ van kl verzegelt alle knopen v met one-way functies f i en stuurt f 1 (kl’(v 1 )), f 2 (kl’(v 2 )),..., f n (kl’(v n )) naar Victor; Victor selecteert at random een kant {v i,v j } uit E en vraagt Petra om de inverses f -1 i en f -1 j. Petra stuurt f -1 i en f -1 j

18 T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Proofs Victor opent f i (kl’(v i )) en f j (kl’(v j )) met f -1 i en f -1 j en controleert of 1. f -1 i (f i (kl’(v i ))) = kl’(vi)  {1,2,3}, f -1 j (f j (kl’(v j )) = kl’(v j )  {1,2,3} 2. kl’(v i ))  kl’(v j ) Als kl’ geen oplossing is ( Petra probeert Victor te beduvelen) dan loopt ze een kans 1/|E| om ontmaskerd te worden.

19 T U Delft Parallel and Distributed Systems group PGS Zero Knowledge proofs Als we deze informatie uitwisseling een aantal verschillende ronden ( zeg m ronden ) met verse oneway functies f i en permutaties kl’ uitvoeren dan is de kans dat Petra een kleuring kent als m ronden goed verlopen gelijk aan 1 - (1 - 1/ |E|) m Deze kans nadert tot 1 als m  . Victor verkrijgt geen informatie over de kleuring kl: per keer overtuigt hij zich er alleen maar van dat knopen van gekozen kanten verschillend zijn! Nb: f is oneway: f  FP, f -1  NP-hard

20 T U Delft Parallel and Distributed Systems group PGS Probabilistisch verifieerbare bewijzen. een probleem A is probabilistisch verifieerbaar als er een polynomiaal probabilistisch algoritme C bestaat dat specifieke bits van een bewijs b voor A kan vragen en er een constante c > 0 bestaat zodanig dat voor iedere yes-instantie I A van A bestaat er een string b zodat C I A accepteert met kans c of meer voor iedere no-instantie van A en ieder bewijs b verwerpt C met kans tenminste c. PCP(r,q) : alle problemen met polynomiaal probabilistisch algoritme C dat voor iedere instantie x hoogstens r(|x|) random bits gebruikt en hoogstens q(|x|) bits van b vraagt.

21 T U Delft Parallel and Distributed Systems group PGS PCP klassen PCP(0,q): klasse van problemen beslisbaar met deterministisch algoritme in O(n k. 2 q(n) ) tijd. PCP(0, log n) = P PCP(0, n O(1) ) = NP maar ook : NP = O(log n, O(1)) [Arora 1992] ieder NP probleem heeft een bewijs dat probabilistisch gecheckt kan worden door log n random bits te gebruiken en een constant aantal bits uit het bewijs

22 T U Delft Parallel and Distributed Systems group PGS Quantum Computing Conventionele machines: opereren op 0-1 bitrijtjes met logische poorten ( AND, OR, NOR, NAND,...) Quantum computers opereren op quantum bits (qubit). Een qubit kent twee basistoestanden: spin-down ( |  of |0>) en spin-up ( |  of |1> ). Golf-functie  van |0> en |1> beschrijft waarschijnlijkheden van momentele toestanden Een rijtje van k-qubits kan in 2 k toestanden simultaan verkeren

23 T U Delft Parallel and Distributed Systems group PGS QC : vervolg In principe kunnen operaties op all deze toestanden simultaan worden uitgevoerd (quantum parallellisme) (afwezigheid van interactie met buitenwereld vereist) alleen als een qubit in interactie is met de buitenwereld, wordt een unieke toestand gefixeerd.

24 T U Delft Parallel and Distributed Systems group PGS Quantum Computing en NP Grover (1996) : quantum computing (qc) algoritme voor vinden item in een ongesorteerde database van n items in O(  n)-tijd. Bennett, Bernstein, Brassard en Vazirani (1997): Grover’s algoritme voor database search is optimaal: er is geen sneller qc-algoritme. Waarschijnlijke consequentie: exponentiele speedup niet in alle gevallen haalbaar: NP- problemen waarschijnlijk niet alle polynomiaal op qc meest veelbelovend voor NPI (intermediaire NP problemen) vb: factorizering : Schor (1994) O(n 3 ) qc-algoritme

25 T U Delft Parallel and Distributed Systems group PGS Slot: berekenbaarheid en complexiteit belangrijke vragen: wat is te berekenen en wat is doenlijk om te berekenen. wat we niet behandeld hebben: zijn er ook machines die algoritmen kunnen leren? leren van berekenbare functies is niet berekenbaar! Er zijn Turingmachines voor niet-berekenbare functies ! (n-trial machines, limiting answer machines)

26 T U Delft Parallel and Distributed Systems group PGS Oplossing probleem Claim1: als graaf opgepakt wordt aan knoop w en v is onderste knoop dan is v eindpunt van langste pad in G v w Claim 2: als v het eindpunt is van het langste pad in G, dan is het andere eindpunt van dit pad de onderste knoop als G opgehangen wordt aan v. triviaal, vinden we.

27 T U Delft Parallel and Distributed Systems group PGS Oplossing probleem Claim: als graaf opgepakt wordt aan knoop w en v is onderste knoop dan is v eindpunt van langste pad in G Stel v is geen eindpunt langste pad. Twee mogelijkheden (i) langste pad loopt geheel links of rechts van pad w-v (ii) langste pad kruist pad w-v v w

28 T U Delft Parallel and Distributed Systems group PGS langste pad links van w-v w (i) Langste pad loopt geheel links(rechts) van w- v Stel langste pad is x-y. Laat a hoogste knoop op pad x -y zijn. Maar w-v is langer dan a-y. Dus is x-a-w-v een langer pad. Contradictie v x y a

29 T U Delft Parallel and Distributed Systems group PGS x-y kruist w-v v x y w Geval (ii): x-y kruist w-v. Zoek laagste knoop a die w-v en x-y gemeenschappelijk hebben.Nu is a-v langer dan a-y. Dus x-w-a -v is een langer pad. Contradictie. a

30 T U Delft Parallel and Distributed Systems group PGS Einde in345 Op de in345 site: proeftentamen + uitwerking uitwerkingen oefenopgaven lijst met NP-problemen korte handleiding te bestuderen leerstof uit Moret. Succes!


Download ppt "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen."

Verwante presentaties


Ads door Google