TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.

Slides:



Advertisements
Verwante presentaties
Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.
Advertisements

Algoritmische problemen Onbeslisbaar / niet-berekenbaar Geen algoritme mogelijk Tegel- of domino-problemen Woordcorrespondentie-probleem Syntactisch equivalentie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Hoofdstuk 8: Recursie.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Graph Begrippen: knoop, vertices kant, zijde, edge
Computationele complexiteit: NP-volledigheid
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
vwo C Samenvatting Hoofdstuk 13
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Laplace transformatie
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Prof.dr.ir. Bart ter Haar Romeny
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.
Satelliet geodesie (ge-2112)
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
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
PeerWise samen meerkeuzevragen maken & beantwoorden
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Lokale zoekmethoden Goed in de praktijk:
WIS21.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
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 Laatste College ! Cees Witteveen.
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,
Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
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.
MBR AtT1 College 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie werkelijk.
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.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Netwerkstroming Algoritmiek. 2 Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Gerandomiseerde algoritmes
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
All-Pairs Shortest paths
Minimum Opspannende Bomen
Benaderingsalgoritmen
Recursie in de wiskunde
Programmeren woensdag 4 oktober 2017.
Kiezen met Kaarten.
Kiezen met Kaarten.
Transcript van de presentatie:

TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen

TU Delft Groep Parallelle en Gedistribueerde Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma’s en problemen - Beslissingsproblemen - Karp reducties

TU Delft Groep Parallelle en Gedistribueerde Systemen Relatie Deel 1 en Deel 2 Alle problemen Berekenbare problemen Doenlijke problemen Deel 1 Deel 2

TU Delft Groep Parallelle en Gedistribueerde Systemen (On)Doenlijke problemen Doenlijke problemen Een probleem is doenlijk als het in polynomiale tijd op te lossen is (polynomiaal in de grootte van de invoer); P : klasse van polynomiaal oplosbare problemen Ondoenlijke problemen Een probleem is ondoenlijk als er geen polynomiaal algoritme voor het probleem bestaat. waarom onderscheid: kijk naar volgende tabel

TU Delft Groep Parallelle en Gedistribueerde Systemen Tijdcomplexiteits functies tijd complexiteit huidig systeem 10x sneller systeem 1000 x sneller systeem O(n)n1n1 10 n n 1 O(n 2 )n2n n n 2 O(n 3 )n3n n 3 10 n 3 O(2 n )n4n4 n n O(n!)n5n5 < n 5 +1 omvang grootste instantie oplosbaar in t tijdseenheden

TU Delft Groep Parallelle en Gedistribueerde Systemen Doenlijk (P) vss ondoenlijk voor ondoenlijke problemen is (constante) technologische speed-up van beperkt belang: Stel probleem heeft tijdcomplexiteit 2 n en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed-up in dezelfde tijd een instantie ter grootte van < m + 2 log c opgelost worden. voor doenlijke problemen is speed-up van belang: Stel probleem heeft tijdcomplexiteit n k en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed up in dezelfde tijd een instantie ter grootte van c 1/k.m opgelost worden.

TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeelden (on)doenlijke problemen problemen in P sorteren, lineair programmeren, kortste pad bepaling vermoedelijk ondoenlijke problemen langste pad bepaling, prop. vervulbaarheid ondoenlijke problemen bepalen van alle diagnoses in digitale circuits.

TU Delft Groep Parallelle en Gedistribueerde Systemen P en NP Eigenschap P-probleem oplossing in polynomiale tijd te construeren. oplossing in polynomiale tijd te verifiëren. Eigenschap NP-probleem (vermoedelijk ondoenlijk) niet bekend of oplossing in polynomiale tijd is te construeren. oplossing in polynomiale tijd te verifiëren. NP = niet-deterministisch polynomiale (tijd)

TU Delft Groep Parallelle en Gedistribueerde Systemen Vb NP-probleem Frequentietoewijzing Gegeven: - een k-tal verschillende frequenties f 1, …, f k, - een n-tal locaties l 1,l 2, …, l n van mobiele telefoons, met gegeven onderlinge afstanden d ij > 0; - 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 ).

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

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

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 geldt dat P = NP of P ≠ NP. Belang: NP bevat groot aantal belangrijke problemen satisfiability van boolese formules padproblemen in grafen (TSP, Hamiltoons pad) cover problemen: set en vertex cover. rooster en schedulings problemen.

TU Delft Groep Parallelle en Gedistribueerde Systemen Inhoud colleges Deel 2 inleiding complexiteitstheorie - reducties, complexiteitsklassen 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

TU Delft Groep Parallelle en Gedistribueerde Systemen Literatuur en studiemateriaal Literatuur B.M. Moret, The Theory of Computation Hfst aanvullende informatie zie blackboard course IN3005 voor college overzichten; tentamens en uitwerkingen; voorbeelden Practicum twee opgaven: correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs

TU Delft Groep Parallelle en Gedistribueerde Systemen Practicum en tentamen practicum twee opgaven: correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs opgaven groepsindeling zoals voor deel 1 afronden voor einde kwartaal 3 opgave 2 wordt verstrekt na voltooiing opgave 1 correctie: assistenten Roman van der Krogt en Maja van der Werf (dinsdag uur) tentamen meerkeuzevragen (±10 ) + open vragen (1 tot 2)

TU Delft Groep Parallelle en Gedistribueerde Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma’s en problemen - Beslissingsproblemen - Karp reducties

TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit programma’s T(n) = O(2 n ) programma 1 procedure fibo1(n) begin if n < 2 then return 1 else return fibo(n-1)+fibo(n-2) end O(2 n ) 1 als n = 0, 1 fib(n-1) + fib(n-2) elders 1 als n = 0, 1 fib(n-1) + fib(n-2) elders fibonacci functie fib(n) = T(0) = 2; T(1) = 2; T(n) = 1 + T(n-1) + T(n-2) +1 voor n > 1 tijd complexiteit

TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit programma’s programma 2 procedure fibo2(n) begin a:= 1; b:=1; k:=1; while k < n do z:= a; a:= b; b:= z+b; k:= k+1; return b; end programma 3 procedure fibo3(n) begin if n < 2 then return 1 else M := mat([1,1],[1,0]); Z:= matpower(M,n-1); return Z(1,1)+Z(1,2); end O(n)O(log n) 1 als n = 0, 1 fib(n-1) + fib(n-2) elders fib(n) =

TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit algoritmen versus problemen tijdcomplexiteit algoritme: aantal elementaire rekenstappen als functie van grootte van de input tijdcomplexiteit probleem ≠ tijdcomplexiteit algoritme voor probleem: vb fibonacci probleem: gegeven n ≥ 0, bepaal fib(n) tijdcomplexiteit algoritmen fibo1: O(2 2^(log n) fibo2: O(2 log n) ) fibo3 : O(log n) tijdcomplexiteit fibonacci probleem ≤ O(m) Nb: size input: m = O( log n)

TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit van probleem Complexiteit probleem maximale hoeveelheid tijd of ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. Nb: complexiteit probleem doet uitspraak over complexiteit van alle algoritmen voor het probleem

TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteitstheorie klassificatie van problemen naar maximale hoeveelheid tijd/ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. beperking (voorlopig) tot beslissings problemen

TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen (1) Voorbeelden Satisfiability: Gegeven een propositionele formule F, is F vervulbaar? Clique: Gegeven een graaf G = (V, E) en een integer K > 0, heeft G een clique ter grootte van K? A is een beslissingsprobleem als alle instanties van A met “ja”(“yes”) of “nee”(“no”) beantwoord kunnen worden. Definitie

TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen (2) Notatie I A instanties van A I A instanties van A D A verzameling van alle instanties van A Yes A alle yes-instanties van A No A alle no-instanties van A

TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen: vb Vertex Cover (VC) - instantie: een graaf G = (V,E) en K  Z + - vraag: heeft G een vertex cover V’  V ter grootte van K of minder, m.a.w. bestaat er een subset V’ ter grootte van hoogstens K zodat iedere kant e = {x,y} uit E tenminste een knoop uit V bevat? 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 ?

TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen: reducties Stel A en B beslissingsproblemen. A is niet essentieel moeilijker dan B ( A ≤ B ): er bestaat een efficiënte manier om A op te lossen met behulp van een algoritme voor B. idee reductie A naar B: fase 1: gebruik een polynomiaal algoritme om A instanties te transformeren naar B instanties; fase 2: gebruik een algoritme voor B om het antwoord te berekenen.

TU Delft Groep Parallelle en Gedistribueerde Systemen Eisen aan reductie reductie van A naar B moet efficient zijn (polynomiale tijd). reductie moet betrouwbaar zijn: dwz: als R transformatie is van A naar B dan moet gelden: als I A  Y A dan R(I A )  Y B en als I A  N A dan R(I A )  N B voor alle I A  D A : I A  Y A  R(I A )  Y B

TU Delft Groep Parallelle en Gedistribueerde Systemen Karp-reducties  m YBYB A  m B: voor alle I A  D A : I A  Y A  R(I A )  Y B algoritme voor B yesno NBNB A YAYA NBNB R R(Y A ) R(N A ) algoritme voor A B

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

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

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

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.

TU Delft Groep Parallelle en Gedistribueerde Systemen Tot volgende week