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

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.
Datastructuren Quicksort
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
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
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
Datastructuren Zoekbomen
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.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Dijkstra Kortste pad algoritme.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Probleem P 1 is reduceerbaar tot P 2 als  afbeelding  :P 1  P 2 zo dat: I yes-instantie van P 1   (I) yes-instantie van P 2 als ook:  polytime-algoritme,
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
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:
Optuigen van datastructuren Datastructuren Onderwerp 11.
Datastructuren Sorteren, zoeken en tijdsanalyse
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,
Shortest path with negative arc-costs allowed. Dijkstra?
Russische roulette Live or die. 7 delen Startmenu Inzet Aantal kogels Het schot While - functie Opnieuw ja/nee High score.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
Intermezzo: Queries op zoekbomen Datastructuren. Queries: hoe op te lossen We hebben: – Een zoekboom (gewoon, rood-zwart, AVL,…) – Een vraag / querie.
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 ∞-∞
Het lijkt eenvoudig, het is ingewikkeld en soms kan je het oplossen: Computerwetenschappers winnen Nobelprijzen. Patrick De Causmaecker.
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.
Greedy algorithms Algoritmiek. 2 Vandaag Greedy algorithms: wat zijn dat? Voorbeelden: –gepast betalen met euromunten –AB-rijtje –… Knapsack probleem.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Gerandomiseerde algoritmes
Kortste Paden Algoritmiek.
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
Minimum Opspannende Bomen
Benaderingsalgoritmen
Recursie in de wiskunde
Modderdorp UNPLUGGED Bron: csunplugged.org.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Doolhof. doolhof doolhof Maak een routine die de ‘hekken’ tussen de cellen weghaalt Maak een 2-dimensionale array met kolommen en rijen aangeklikt.
Transcript van de presentatie:

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

T U Delft Parallel and Distributed Systems group PGS van vorige week: Relevantie PH NP-problemen: oplosbaar met backtracking algoritmen. NP NP - problemen: oplosbaar met double-backtracking algoritmen. Voorbeeld: Minimale Boolese Expressie Gegeven een formule F, is F een kortste formule onder alle formules equivalent met F? is in  2 = co-NP NP.

T U Delft Parallel and Distributed Systems group PGS Vb: Minimale Boolese Expressie (MBE) in  2 MBE: Gegeven een boolese formule F, is F een kortste formule onder alle formules die equivalent zijn met F?  2 = co-NP NP. We moeten derhalve laten zien dat no - instanties van MBE efficient te verifieren zijn met een NP-orakel: Neem nu een instantie F van MBE en gok een kortere boolese formule E. Verifieer nu of F equivalent is aan E, dwz. of E  F. Dit kan door met een SAT-orakel na te gaan of  ((E  F)  (F  E)) vervulbaar is. Als het antwoord “no” is, is E equivalent aan F.

T U Delft Parallel and Distributed Systems group PGS Voor deze week: zijn sommige NPC-problemen toch doenlijk? over pseudo-polynomiale algoritmen benaderingen: iets is altijd beter dan niets (of toch niet altijd). een O(1)-algoritme voor een langste pad probleem. (met prijs voor de beste verklaring)

T U Delft Parallel and Distributed Systems group PGS Een algoritme voor SubSet Sum Subset Sum: (SubSum) Gegeven: een multi-set S = { s 1,..., s k } van objecten en een integer t. Vraag: Is er een subset S’ van S waarvoor geldt  s  S’ s = t. Aangetoond: SubSum  NPC Aan te tonen: Is er misschien toch een P- algoritme voor SubSum ?

T U Delft Parallel and Distributed Systems group PGS SubSetSum : een algoritme Gegeven: S = {s 1,..., s n } en t Definieer f( i, w ) = 1 alss er is een S’  {s 1,..., s i } met  s  S’ s = w. Merk op: f( 0, w ) = 1 alss w = 0 f( i+1, w ) = 1alss f( i,w ) = 1 of f( i, w - s i+1 ) = 1 f(n, t) = 1alss (S,t) is een yes-instantie is van SubSum

T U Delft Parallel and Distributed Systems group PGS O(t) O(1) O(n. t) Iteratieve berekening f(n,w) iter-SubSetSum input: S ={s 1,..., s n ], n, t output: “yes” als (S,t) yes-instantie, “no” anders begin for k = 0 to t f(0,k) = 0 for i = 1 to n for k = 0 to t if { f(i-1,k) = 0 or f(i-1,k - s i ) =1 } then f(i,k) =1 if f(n,t) = 1 then return “yes” else return “no” end totaal: O(n. t) = O(|S|. t) O(t.)

T U Delft Parallel and Distributed Systems group PGS Vb :subsetsum Stel S = { 2, 5, 7, 1, 9} en t = Berekening kost O(|S|x t)

T U Delft Parallel and Distributed Systems group PGS Geldt nu SubsetSum in P? Bedenk dat O(|S|x t ) niet polynomiaal is in |I| = |S| x log s max + log t = O( |S| x log t) ! waarom niet? neem instanties I met |S| x log s max = O(log t) dan geldt: |I| = O(log t) en O( |S|. t )  O( t ) = O ( 2 log t ) = O( 2 |I| ) O(|S|.log s max. t ) is exponentieel in |I|

T U Delft Parallel and Distributed Systems group PGS Getalproblemen Notatie I A :instantie van probleem A |I A | :grootte van instantie I A max(I A ):grootte van unaire codering van I A A is een getalprobleem: er is geen enkele polynoom p zodat voor alle instanties I A geldt: max(I A )  p(|I A |) A heeft een pseudo-polynomiaal algoritme: er is een algoritme X A voor A met tijdcomplexiteit O( p( |I A |, max(I A ) ) ) voor een polynoom p.

T U Delft Parallel and Distributed Systems group PGS Sterk-NPC problemen Notatie A p : het subprobleem van A bestaande uit instanties I A met max(I A )  p( |I A | ). A is sterk NP-volledig: A  NP en er bestaat een polynoom p met A p  NPC Gevolg: sterk NP-volledige problemen hebben een pseudo-polynomiaal algoritme alss P = NP

T U Delft Parallel and Distributed Systems group PGS S-NPC: voorbeelden TSP is een sterk NP-volledig probleem: Neem transformatie R van HAMC naar TSP: voor alle instanties in R(I), I  HAMC geldt: max(R(I))  |R(I)|. CLIQUE en VC zijn sterk NP-volledige getalproblemen! (ga na) SAT is een sterk NP-volledig probleem

T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen: vb MINCOVER: gegeven G = (V,E), geef een minimale vertex cover voor G. input :G = (V, E) output:cover C voor G begin C :=  ; while E   do kies een {u,v}  E; C := C  {u,v}; E : = E - { {x,y}  E : {u,v}  {x,y}   } end

T U Delft Parallel and Distributed Systems group PGS Prestatie MinCover benaderingsalgoritme begin C :=  ; while E   do kies een {u,v}  E; C := C  {u,v}; E : = E - { {x,y}  E : {u,v}  {x,y}   } end C bevat kanten {u,v}. C E verzameling geselecteerde kanten => |C E | = 0.5 x |C| als e,e’  C E dan e  e’ =   |C E |  |Mincover| |C|  2 x |Mincover| Conclusie: dit benaderingsalgoritme garandeert dat de gevonden nodecover C nooit meer dan 2 maal zo groot is als de optimale

T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (i) ? MINCOVER garandeert een bovengrens op de ratio (gevonden oplossing)/ (optimale oplossing) Mooier zou zijn een bovengrens op het verschil: (gevonden oplossing - optimale oplossing) Het vinden van een polynomiaal constant verschil benaderingsalgoritme is net zo moeilijk als het oplossen van P = NP! Kijk maar:

T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (ii) Stelling: Tenzij P = NP bestaat er geen k > 0 en een polynomiaal approximatie algoritme A zodat voor alle instanties I van VC geldtt A (I) - opt(I)  k Stel wel en kies een k.Laat I = (G = (V,E)) Stel opt(G) = m. Maak nieuwe graaf G k+1 : bestaat uit k+1 copieen van G: opt(G k+1 ) = (k+1)m. Gebruik A voor G k+1 : geeft cover met  (k+1)m +k knopen. iedere copie van G moet m knopen bevatten. er moeten derhalve nog k takken verdeeld worden over k+1 grafen: er is een kopie van graaf G met exact m knopen => dit benaderingsalgoritme lost VC op!

T U Delft Parallel and Distributed Systems group PGS Optimaliseringsproblemen A is een optimaliseringsprobleem: - voor iedere I  D A :F(I) de verzameling mogelijke oplossingen van I - voor iedere s  F(I) :c(s)  Z + : de kosten van s A maximaliseringsprobleem: Opt A (I) = max s  F(I) c(s) A minimaliseringsprobleem: Opt A (I) = min s  F(I) c(s)

T U Delft Parallel and Distributed Systems group PGS Optimaliseringsproblemen en de klasse NP NP-Optimalisering: NPO A  NPO alss er een polynoom p bestaat waarvoor -  I A  s  F(I A ): |s|  p(|I A |) -  I A  y [ |y|  p(|I A |) ] is het probleem “behoort y tot F(I A )” een P-probleem - c  FP A d beslissingsvariant van A: Gegeven I A is er een s  F(I A ) met c(s) > (<) d ? Stellingen: als A  NPO dan A d  NP NPO = PO alss P = NP

T U Delft Parallel and Distributed Systems group PGS Approximatie-algoritmen Stel A  NPO en A is een algoritme voor A De approximatie ratio van A voor I A is de ratio R A (I A ) R A (I A ) = c(opt(I A )) : kosten optimale oplossing van I A c(A (I A )) : kosten oplossing gevonden door A M I A  D A A(I A )  F(I A ) | c(A (I A ) ) - opt(I A ) | max { opt(I A ), c(A (I A )) }

T U Delft Parallel and Distributed Systems group PGS Approximatiekwaliteit absolute afstand van A : D A = sup I A  D { | A(I A ) - opt(I A ) | } absolute approximatie ratio van A : R A = inf I A  D { r  0 | R A (I A )  r } Voorbeeld: Voor MINCOVER geldt R A  0.5 en D A =  voor ieder apparoximatie algoritme voor VC. (tenzij P = NP)

T U Delft Parallel and Distributed Systems group PGS Approximatieklassen APX Er bestaat een  < 1 en een approximatie algoritme A zodat A een polynomiaal algoritme voor A is met R A   PTAS Voor iedere   0 bestaat er een approximatie algoritme A(  ), zodat A(  ) een polynomiaal algoritme voor A is met R A   FTPAS Voor iedere   0 bestaat er een approximatie algoritme A(  ), zodat A(  ) polynomiaal gebonden is in |I| en  -1 en R A  

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 !