Benaderingsalgoritmen

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.
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
Advanced Algorithms Groep: EII7AAb
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 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
IJspakketten Annette Ficker Tim Oosterwijk
IJspakketten Annette Ficker Tim Oosterwijk
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 in345 Deel 2 Oplossing Langste Pad Probleem 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 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 Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
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:
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
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
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 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie werkelijk.
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 ∞-∞
Woordjes leren.
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.
Kortste Paden Algoritmiek. 2 Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd’s.
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.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Gerandomiseerde algoritmes
Kortste Paden Algoritmiek.
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
De vraag is je beste vriend
Meest voorkomende vragen bij examenteksten.
NP-volledigheid Algoritmiek.
All-Pairs Shortest paths
Minimum Opspannende Bomen
Meest voorkomende vragen bij examenteksten.
Significante cijfers © Johan Driesse © 2013 – Johan Driesse.
Big Data.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Big Data.
Slim tellen.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Onderzoek water!! WaterLab www. onderzoekwater.nl Kijkje terug
Slim tellen.
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:

Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid Algoritmiek

Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor ja-instanties dat in polynomiale tijd te controleren is Een probleem A is NP-moeilijk als B ≤P A (reductie van B naar A) voor iedere B in NP Een probleem A is NP-volledig als het in NP zit en NP-moeilijk is Er bestaan NP-moeilijke problemen die niet in NP zitten, of waarvan het niet bekend is of ze in NP zitten Algoritmiek

Herhaling NP-volledigheid (2) Belangrijke boodschap: als ook maar één NP-moeilijk probleem in polynomiale tijd oplosbaar is, dan zijn alle problemen in NP in polynomiale tijd oplosbaar Er is een sterk geloof dat geen enkel NP-moeilijk probleem in polynomiale tijd oplosbaar is Maar wat geloof jij? Algoritmiek

Herhaling NP-volledigheid (3) Wat betekent het dat een probleem NP-moeilijk is? Heel veel, maar ook heel weinig Niet: je kunt het probleem niet oplossen Wel: je zult creatief moeten zijn om het probleem op te lossen of geluk met de invoer moeten hebben Algoritmiek

Herhaling NP-volledigheid (4) NP-moeilijkheid/volledigheid gaat meestal over beslisproblemen Maar er zijn veel NP-moeilijke optimaliserings-problemen Bijv. Handelsreizigersprobleem Merk op dat een polynomiale reductie gewoon kan bestaan voor optimaliseringsproblemen; zulke problemen zitten alleen niet in NP Hoe gaan we met dit soort problemen om? Algoritmiek

Eerste Hulp bij NP-moeilijkheid Maak gebruik van/aannames over je invoer Kortste simpele pad NP-moeilijk in het algemeen (reductie van Hamiltonian Path), maar polynomiaal zonder negatieve cycles (Bellman-Ford) Heuristiek: polynomiaal algoritme dat vaak een goede oplossing geeft Genetische algoritmen, benaderingsalgoritmen, sommige greedy algoritmen Gebruik (moderaat) exponentiële tijd Vaak: alle mogelijke oplossing afgaan en beste kiezen Of een combinatie! Algoritmiek

Toepassingsgebied: Logistiek Stel, je werkt bij een supermarkt… Toepassingsgebied: Logistiek Algoritmiek

Boodschappenophaalpunten (1) Nieuw in supermarktland: online bestellen, en dan in de winkel afhalen Onze opdrachtgever is een grote supermarkt die een test wil doen met ophaalpunten Er is geld voor k ophaalpunten, die op willekeurige plekken in het land gebouwd mogen worden Algoritmiek

Boodschappenophaalpunten (2) Dankzij reclames is er inmiddels een verzameling A van n adressen van klanten Zodra de k ophaalpunten gebouwd zijn, zal een klant naar het dichtsbijzijnde ophaalpunt gaan Dichtsbijzijnd: Euclidische afstand Waar bouwen we de ophaalpunten zdd de langste afstand die een klant aflegt zo klein mogelijk is? Algoritmiek

k-Center Gegeven een verzameling A van n punten in het vlak en een getal k Als P een verzameling punten in het vlak is, dan is dist(a,P) = minp in P dist(a,p) (het dichtsbijzijnde ophaalpunt) en r(P) = maxa in A dist(a,P) de bedekkingsradius (maximale rij-afstand) Opdracht: vind een verzameling P met |P| ≤ k zdd r(P) zo klein mogelijk is P hoeft geen deelverzameling van A te zijn Algoritmiek

k-Center NP-moeilijk We moeten toch een plaatsing genereren Daar helpt NP-moeilijkheid niet bij Wat is jouw algoritme? Bijvoorbeeld greedy, maar iets anders mag ook Algoritmiek

Een greedy aanpak Bijvoorbeeld: bouw P iteratief op, en plaats telkens een ophaalpunt op een plek die r(P) zoveel mogelijk verkleint De gevonden oplossing is niet goed in vergelijking met optimum d Optimaal: r(P*) = 0 Kunnen we een algoritme vinden dat wel goed is in vergelijking met het optimum Greedy: r(P) = d/2 k=2 A B Algoritmiek

Benaderingsfactor Gegeven invoer van een optimaliseringsprobleem Laat SOL de waarde zijn van de oplossing die jouw algoritme vindt Laat OPT de waarde zijn van het optimum Dan is de benaderingsfactor van de door jouw algoritme geleverde oplossing: max{SOL/OPT, OPT/SOL} Relatieve kwaliteit van de gevonden oplossing Altijd minstens 1 Algoritmiek

Benaderingsalgoritme Een algoritme is een c-benaderingsalgoritme als voor iedere probleeminvoer het algoritme een oplossing geeft met benaderingsfactor hoogstens c c kan een constante zijn, maar ook afhangen van (de grootte van) de invoer c heet de benaderingsfactor van het algoritme “Benaderingsalgoritmen zijn heuristieken die een oplossing berekenen van bewijsbaar goede kwaliteit t.o.v. het optimum” Algoritmiek

k-Center benaderen: Poging 1 Stel: we weten het optimum R* Kun je een plaatsing P berekenen met r(P) ≤ 2R*? Tip: gebruik greedy Werkend idee: plaats bij willekeurige onbedekte klant een ophaalpunt en verklaar alle klanten binnen afstand 2R* bedekt Algoritmiek

Greedy algoritme 1 Markeer alle a in A onbedekt, P = ∅ while er is een onbedekte a in A do p = willekeurige onbedekte a in A plaats p in P en markeer alle punten binnen afstand 2R* van p bedekt return P Algoritmiek

Greedy algoritme 1: eigenschappen Het algoritme heeft polynomiale looptijd r(P) ≤ 2R* per constructie |P| ≤ k bewijs op volgende slide Stelling: k-Center heeft een polynomiale tijd, 2-benaderingsalgoritme, als het optimum bekend is Algoritmiek

|P| ≤ k Stel P* heeft r(P*) = R* en |P*| = k, maar |P| > k Voor iedere p in P* is er hooguit 1 a in P met dist(a,p) ≤ R* Stel er zijn er twee, a en a’ Per constructie geldt dist(a,a’) > 2R* 2R* ≥ dist(a,p) + dist(p,a’) ≥ dist(a,a’) > 2R* Contradictie Iedere a in P wordt door ≥ 1 p in P* bedekt Dus |P*| ≥ |P| > k, een contradictie Algoritmiek

k-Center benaderen: Poging 2 Stel: we weten het optimum niet Gelukje: het algoritme kunnen we gebruiken om het volgende te beslissen voor gegeven R Er is een oplossing P met |P| ≤ k en r(P) ≤ 2R Er is geen oplossing P met |P| ≤ k en r(P) ≤ R Algoritme en correctheidsbewijs: zie volgende slides Algoritmiek

Greedy algoritme 1” Invoer: verzameling klanten A, getal R Markeer alle a in A onbedekt, P = ∅ while er is een onbedekte a in A do p = willekeurige onbedekte a in A plaats p in P en markeer alle punten binnen afstand 2R van p bedekt if |P| ≤ k then return P else return “geen oplossing met grootte ≤ k en bedekkingsradius ≤ 2R” Algoritmiek

Algoritme 1”: |P| ≤ k Stel P* heeft r(P*) = R en |P*| = k, maar |P| > k Voor iedere p in P* is er hooguit 1 a in P met dist(a,p) ≤ R Stel er zijn er twee, a en a’ Per constructie geldt dist(a,a’) > 2R 2R ≥ dist(a,p) + dist(p,a’) ≥ dist(a,a’) > 2R Contradictie Iedere a in P wordt door ≥ 1 p in P* bedekt Dus |P*| ≥ |P| > k, een contradictie Algoritmiek

k-Center benaderen: poging 2 Gebruik nu binair zoeken Algoritme 1” kunnen we gebruiken om het volgende te beslissen voor gegeven R Er is een oplossing P met |P| ≤ k en r(P) ≤ 2R Er is geen oplossing P met |P| ≤ k en r(P) ≤ R Dus iedere keer kunnen we ondergrens verhogen of bovengrens verlagen Totdat boven- en ondergrens factor 2 van elkaar liggen Algoritmiek

k-Center benaderen: Poging 3 Voorgaande algoritme is niet helemaal precies, en zelfs binair zoeken kan een tijd duren r(P) is niet per se geheeltallig Ander idee, dat ook nog simpeler is Voorheen kozen we adres met afstand > 2R* van eerder gekozen punten Idee: kies adres dat zover mogelijk weg is van eerder gekozen punten Algoritmiek

k-Center: greedy algoritme 2 P = {a} voor willekeurige a in A while |P| < k do p = a in A die dist(a,P) maximaliseert plaats p in P return P Algoritmiek

Greedy algoritme 2: correctheid Lemma: r(P) ≤ 2R*, waarbij R* de bedekkingsradius van het optimum Bewijs: Stel r(P) > 2R* en dus er is a in A met dist(a,P) > 2R* Laat ai het punt gekozen in iteratie i en Pi de verzameling P aan het begin van iteratie i Dan is dist(ai,Pi) ≥ dist(a,Pi) ≥ dist(a,P) > 2R*, omdat ai verst weg van Pi ligt, en a minstens zo ver ligt van Pi als van P Algoritmiek

Greedy algoritme 2: correctheid Dus ieder gekozen punt is minstens 2R* weg van eerder gekozen punten Dat betekent dat we a1,…,ak ook hadden kiezen in Algoritme 1”, en dan nog een extra ak+1 hadden gekozen vanwege het bestaan van a Algoritme 1” zou dus een oplossing van grootte > k vinden, en dan nee rapporteren, dwz er is geen oplossing P* met r(P*) ≤ R* en |P*| ≤ k Dit is een contradictie met definitie R*, dus r(P) ≤ 2R* Algoritmiek

Greedy algoritme 2: eigenschappen Het algoritme heeft polynomiale looptijd r(P) ≤ 2R* |P| ≤ k per constructie Stelling: k-Center heeft een polynomiale tijd, 2-benaderingsalgoritme Techniek: greedy algoritme Algoritmiek

Verdieping (1) Algoritme werkt zolang dist “redelijk” is Voldoet aan driehoeksongelijkheid Symmetrisch en dist(x,x)=0 Anders wordt het probleem veel moeilijker: geen constante benaderingsfactor mogelijk in polynomiale tijd, tenzij P=NP Er bestaat geen polynomiale tijd algoritme met benaderingsfactor beter dan 2, tenzij P=NP Algoritmiek

Verdieping (2) Stel: R ligt vast is en we willen het minimum aantal ophaalpunten bepalen: Punten bedekken met schijven van radius R Variant van bekende Set Cover probleem Gegeven een verzameling U, en een verzameling F van deelverzamelingen van U, vind een kleinste deelverzameling van F zdd dat heel U bedekt wordt In dit geval, U=A en F = {door schijf S overdekte elementen in A | schijven S} log |U|-benaderingsalgoritme in het algemeen (lees algoritme in boek) Algoritmiek

Handelsreizigerprobleem Logistiek deel 2 Algoritmiek

Handelsreizigersprobleem 1 2 3 4 5 Gegeven: steden 1, … n. Voor elk paar steden i, j, een afstand d(i,j) Gevraagd: wat is de kortste route die in stad 1 begint, elke stad precies 1 keer bezoekt en weer in stad 1 eindigt? Optimalisering 4 4 1 2 1 2 3 3 2 2 5 De tweede route is dus beter dan de eerste. We zoeken de kortste route, dat is hier dus : 1, 2, 3, 4. In ‘t Engels: TSP: Travelling Salesman Problem, of: Travelling Sales Person problem. 5 2 2 3 3 4 2 4 2 13 11 Algoritmiek

Geval 1: driehoeksongelijkheid Stel d(i,j) ≤ d(i,k) + d(k,i) voor alle i,j,k Stelling: Er is een polynomiale tijd, 2-benaderingsalgoritme voor Handelsreiziger met driehoeksongelijkheid Techniek: een ondergrens voor het optimum vinden Vaak impliciet in de analyse, hier expliciet Bewijs: het bord-bewijs staat in het boek ook goed uitgelegd Algoritmiek

Geval 2: geen driehoeksong. Stelling: Voor iedere constante c: er is geen c-benaderingsalgoritme voor het Handelsreizigers-probleem zonder driehoeksong., tenzij P=NP Idee: Reductie van Hamiltonian Circuit Gegeven: Ongerichte graaf G=(N,A). Gevraagd: Is er een cycle in G, die elke knoop in G precies een keer bezoekt? Bewijs: het bord-bewijs staat in het boek ook goed uitgelegd Een graaf met een Hamiltonian circuit Algoritmiek

Verdieping (1) Dit is een gap-introducing reduction Een gat in de benaderingsfactor ter grootte c Er bestaan ook gap-preserving reductions Speciale polynomiale reducties, specifiek om benaderingsfactoren te bewaren Er zijn veel ondergrensbewijzen Algoritmiek

Verdieping (2) Er bestaat een mooi (3/2)-benaderingsalgoritme voor Handelsreiziger met driehoeksongelijkheid https://en.wikipedia.org/wiki/Christofides_algorithm Euclidische geval: Benaderingsfactor (1+𝛜) mogelijk in polynomiale tijd voor iedere vaste 𝛜 PTAS (Polynomial-Time Approximation Scheme) Algoritmiek

Verdieping (3) Veel onderzoek naar exacte algoritmen voor Handelsreiziger Werkt zelfs met tienduizenden steden vaak zonder grote problemen “Praktisch” Veel bedrijven leveren software die dit doet Algoritmiek

Verdieping (4) Er bestaan benaderingsalgoritmes die in exponentiële tijd lopen En ondergrensbewijzen voor zulke algoritmes! Er bestaan benaderingsalgoritmes voor problemen die in polynomiale tijd oplosbaar zijn Snel een redelijke oplossing op big data Er bestaan benaderingsalgoritmes met een additieve (ipv multiplicatieve) benaderingsfactor Algoritmiek