Benaderingsalgoritmen

Vergelijkbare documenten
TW2020 Optimalisering

Heuristieken en benaderingsalgoritmen. Algoritmiek

Kortste Paden. Algoritmiek

TW2020 Optimalisering

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Netwerkstroming. Algoritmiek

(On)Doenlijke problemen

Tentamen combinatorische optimalisatie Tijd:

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

1 Complexiteit. of benadering en snel

NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi

Minimum Opspannende Bomen. Algoritmiek

Fundamentele Informatica

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

2WO12: Optimalisering in Netwerken

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

TW2020 Optimalisering

Netwerkstroming. Algoritmiek

Hoofdstuk 13: Integer Lineair Programmeren

Greedy algoritmes. Algoritmiek

TW2020 Optimalisering

Tentamen IN3105 Complexiteitstheorie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Tiende college algoritmiek. 26 april Gretige algoritmen

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur.

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Branch-and-Bound en Cutting Planes

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

Begrenzing van het aantal iteraties in het max-flow algoritme

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

Tentamen TI3300 / IN3105 Complexiteitstheorie

Vierde college complexiteit. 14 februari Beslissingsbomen

TW2020 Optimalisering

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Examen Datastructuren en Algoritmen II

Discrete modellen in de toegepaste wiskunde (WISB136) Uitwerkingen proeftentamen.

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Derde college complexiteit. 7 februari Zoeken

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Transport, Routing- en Schedulingproblemen. ir. H.N. Post

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Getallensystemen, verzamelingen en relaties

Datastructuren en Algoritmen

2WO12: Optimalisering in Netwerken

Doorzoeken van grafen. Algoritmiek

Tie breaking in de simplex methode

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Geheeltallige programmering

Oefententamen in2505-i Algoritmiek

Examen Datastructuren en Algoritmen II

Onderwerpen. Punten en lijnen, postbodes en handelsreizigers. Theorie. Theorie (2) Graaftheorie. Een mini-inleiding graaftheorie

Zevende college algoritmiek. 24 maart Verdeel en Heers

De statespace van Small World Networks

Examen Datastructuren en Algoritmen II

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Datastructuren en algoritmen voor CKI

Optimalisering/Besliskunde 1. College 1 3 september, 2014

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

Transcriptie:

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