Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1
Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties 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 2
Herhaling NP-volledigheid (2) Belangrijke boodschap: als ook maar één NPmoeilijk 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? 3
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 4
Herhaling NP-volledigheid (4) NP-moeilijkheid/volledigheid gaat meestal over beslisproblemen Maar er zijn veel NP-moeilijke optimaliseringsproblemen 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? 5
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 6
Stel, je werkt bij een supermarkt TOEPASSINGSGEBIED: LOGISTIEK 7
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 8
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? 9
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) = min p in P dist(a,p) (het dichtsbijzijnde ophaalpunt) en r(p) = max a 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 10
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 11
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 Optimaal: r(p*) = 0 Greedy: r(p) = d/2 d A B k=2 12
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 13
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 14
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 15
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 16
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 17
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 18
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 19
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 20
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 21
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 22
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 23
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 24
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 a i het punt gekozen in iteratie i en P i de verzameling P aan het begin van iteratie i Dan is dist(a i,p i ) dist(a,p i ) dist(a,p) > 2R*, omdat a i verst weg van P i ligt, en a minstens zo ver ligt van P i als van P 25
Greedy algoritme 2: correctheid Dus ieder gekozen punt is minstens 2R* weg van eerder gekozen punten Dat betekent dat we a 1,,a k ook hadden kiezen in Algoritme 1, en dan nog een extra a k+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* 26
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 27
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 28
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 29 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)
Handelsreizigerprobleem LOGISTIEK DEEL 2 30
Handelsreizigersprobleem 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 1 2 3 2 2 3 2 4 5 4 4 1 2 1 2 2 3 2 3 5 5 2 2 3 4 3 2 4 2 13 11 31
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 32
Geval 2: geen driehoeksong. Stelling: Voor iedere constante c: er is geen c- benaderingsalgoritme voor het Handelsreizigersprobleem 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 33
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 34
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) 35
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 36
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 37