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

Slides:



Advertisements
Verwante presentaties
Secure Distributed Computing Gregory Neven (3CW Pr.) Promotor: Prof. Dr. ir. Frank Piessens.
Advertisements

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Computationele complexiteit: NP-volledigheid
Project D2: Kempenland Sander Verkerk Jeffrey van de Glind
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Datastructuren Zoekbomen
1 Datastructuren Heapsort College 4. 2 Vandaag  Kort: ADT vs Datastructuur  Heaps en Heapsort  Tijd over: ondergrenzen voor sorteren; nog sneller sorteren.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Wat verandert in perspectief ? Wat verandert NIET ?
Laplace transformatie
vwo A Samenvatting Hoofdstuk 12
Differentieer regels De afgeleide van een functie f is volgens de limietdefinitie: Meestal bepaal je de afgeleide niet met deze limietdefinitie, maar.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Assenstelsels en het plotten van Functies in LOGO
Classificatie van roosteringproblemen 1 || max vertraging Identiek, max eindtijd Gelijkaardige machines Andere problemen 1 Opdracht 2: Clustering.
REKENEN, REDENEREN, COMPLEXITEIT
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen.
Fundamentele Informatica IN3120
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN 3005 Deel 2 Laatste College ! Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN 3120 College 7 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3 005 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
1 Datastructuren Quicksort en andere sorteermethoden College 3.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Indeling Inleiding op PRM-planners & Medial Axis Retraction van configuraties op de Medial Axis Verbetering van retraction Verbetering van sampling Expliciete.
Lokale zoekmethoden Goed in de praktijk:
Hogere wiskunde Limieten college week 4
WIS21.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
T U Delft Groep Parallelle en Gedistribueerde Systemen PGS College in345 Deel 2 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 3 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 4 Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
H4 Differentiëren.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
Hoofdstuk 6: Entropie, Temperatuur en Vrije energie
Representatie & Zoeken
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Les 3: Digitale Logica.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Gerandomiseerde algoritmes
Netwerkstroming Algoritmiek.
Berekening van de Orde Van een Algoritme
NP-volledigheid Algoritmiek.
All-Pairs Shortest paths
Minimum Opspannende Bomen
Benaderingsalgoritmen
Transcript van de presentatie:

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

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

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 !

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

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!

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)

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.

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 )

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

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 /  ))

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|

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

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

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)

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  

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!

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

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.

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

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.

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

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

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.

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

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)

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.

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

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

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

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!