Local search. Han Hoogeveen. 21 november, 2011

Vergelijkbare documenten
Local search. Han Hoogeveen CGN A februari, 2009

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

Introductie Onderzoeksmethoden. `Om informatica onderzoek te doen, moet je goed kunnen programmeren. Na dit college. Informatica/Game-technologie

Lokaal zoeken. Computationele Intelligentie. Een representatie van het kleuringsprobleem. Impliciete doeltoestanden. Lokaal zoeken

Hoofdstuk 17: Approximation Algorithms

Overzicht. Inleiding. Modellering. Insertie heuristieken. Voorbeeld: CVV. Local Search. Meta heuristieken. Vehicle Routing Problem 1

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

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Optimalisering en Complexiteit, College 14. Geheeltallige LPs en Planning bij Grolsch. Han Hoogeveen, Utrecht University

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

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

Tentamen combinatorische optimalisatie Tijd:

TW2020 Optimalisering

TW2020 Optimalisering

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

Universiteit Utrecht Departement Informatica. Examen Optimalisering op dinsdag 29 januari 2019, uur.

2WO12: Optimalisering in Netwerken

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

l e x e voor alle e E

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

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.

Optimalisatie van de indeling van instrumentennetten Engelse titel: Optimization of scheduling and assignment of instrument nets

Convexe Analyse en Optimalisering

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).

Benaderingsalgoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen

Transparanten bij het vak Inleiding Adaptieve Systemen: Evolutionary Computation. f(s max ) f(s) s

From Alife Agents to a Kingdom of Queens

Genetische algoritmen in Java met JGAP

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

1 Vervangingsstrategie auto

Tiende college algoritmiek. 26 april Gretige algoritmen

Optimalisering/Besliskunde 1. College 1 6 september, 2012

Heuristieken en benaderingsalgoritmen. Algoritmiek

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Begrenzing van het aantal iteraties in het max-flow algoritme

Backlog. De openstaande stories. Studenten. Clermond de Hullu Wiebren Wolthuis Simon Wels Maik Gosenshuis. MDL- referentie D09

Netwerkstroming. Algoritmiek

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

TW2020 Optimalisering

Modellen en Simulatie Simulated Annealing

Examen Datastructuren en Algoritmen II

Kortste Paden. Algoritmiek

Radboud Universiteit Nijmegen

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Netwerkstroming. Algoritmiek

TW2020 Optimalisering

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University

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

Datastructuren en Algoritmen III, 2010

Examen Datastructuren en Algoritmen II

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Twaalfde college algoritmiek. 12 mei Branch & Bound

De statespace van Small World Networks

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

Hoofdstuk!7!Kortste!paden!

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

Hoofdstuk 13: Integer Lineair Programmeren

Vakgroep CW KAHO Sint-Lieven

Uitwerking vierde serie inleveropgaven

Basiskennis lineaire algebra

TU/e 2DD50: Wiskunde 2 (1)

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Summary in Dutch 179

Kunstmatige Intelligentie (AI) Hoofdstuk van Russell/Norvig = [RN] Genetische algoritmen. voorjaar 2016 College 11, 3 mei 2016

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening

Functies van meer variabelen voor dummy s

VOOR HET SECUNDAIR ONDERWIJS. Kansmodellen. 3. Populatie en steekproef. Werktekst voor de leerling. Prof. dr. Herman Callaert

3. Structuren in de taal

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

Periodieke rondritproblemen met meerdere depots

TW2020 Optimalisering

Het minimale aantal sleutels op niveau h is derhalve

Open vragen. Veel succes!

Combinatoriek en rekenregels

Small Basic Console Uitwerking opdrachten

Twaalfde college complexiteit. 11 mei Overzicht, MST

l e x e voor alle e E

Een objectief Ranglijst Systeem. ontworpen door. Martien Maas

TW2020 Optimalisering

Tentamen Kunstmatige Intelligentie (INFOB2KI)

INHOUDSOPGAVE 1 VOORWOORD 3 INLEIDING 4 1 BESCHRIJVING EXPERTPLANNER 5 2 LITERATUURONDERZOEK Classificatie problemen 9

Prestatie-analyse van zone-picking systemen

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

dan verdwijnt een deel van het rijm, maar ook de raadselachtigheid van de tekst.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Examen Algoritmen en Datastructuren III

Tentamen: Operationele Research 1D (4016)

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Iterative methoden voor lineaire vergelijkingen. Scientific Computing. sleij101/ Program

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Computationele Intelligentie

TW2020 Optimalisering

Quantum-computing toegepast op het n-queens probleem

Transcriptie:

1 Local search Han Hoogeveen 21 november, 2011

Inhoud vandaag 2 Inhoud: Uitleg methode Bespreking oude opdrachten: ˆ Bezorgen wenskaarten ˆ Roosteren tentamens Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Locale zoekmethoden 3 Veel toegepast in de praktijk (vooral wanneer het probleem te complex is voor een gerichte aanpak); ˆ Veel lastige planningsproblemen ˆ Oude opgaven voor Optimalisering: ˆ ˆ ˆ ˆ ˆ Inzet van materieel voor de lijn Den Helder - Nijmegen Routeren van treinen naar onderhoud Het bezorgen van wenskaarten Het bepalen van een tentamenrooster voor Informatica. Het bepalen van een goed rooster voor buschauffeurs bij Connexxion. Redelijk gemakkelijk toe te passen Werkt bijna altijd uitstekend (komen we later op terug) Geeft geen garanties over de kwaliteit Vereist enige looptijd (niet real-time)

4 Basisrecept Initialisatie 0. Bepaal startoplossing x Iteratie 1. Zoek buur y van x door oplossing x een klein beetje te veranderen 2. Besluit om y te weigeren dan wel te accepteren 3. Als y wordt geaccepteerd, dan x y; Ga naar Stap 1, tenzij aan een stopcriterium wordt voldaan.

5 Begrippen Buur van oplossing x: alternatieve oplossing die kan worden gevonden door x volgens een voorgeschreven recept te veranderen. Buurruimte van oplossing x: verzameling van alle buren van x. Buurruimte-structuur: voorschrift voor het vinden van buren. Vanaf heden nemen we aan dat we een toegelaten oplossing x zoeken met minimale kosten; de kosten van x worden genoteerd met f(x). Het is overigens vaak een probleem om f(x) te bepalen...

6 Voorbeeld: het handelsreizigersprobleem Definitie handelsreizigersprobleem: Gegeven een verzameling punten (steden), waarbij voor ieder tweetal steden de afstand tussen die steden bekend is, bepaal de kortste tour zodanig dat iedere stad precies één keer wordt bezocht. Iedere stad is dus verbonden met twee andere steden Het geheel is één grote tour

7 Voorbeeld 8 20 14 18 15 16 7 5 1 2 10 11 3 19 17 4 13 9 6 12

8 Een niet zo goede route 8 20 14 18 15 16 7 5 1 2 10 11 3 19 17 4 13 9 6 12

9 2-Opt 18 15 14 16 17 19

10 2-Opt 18 15 14 16 17 19

11 2-Opt 18 15 14 16 17 19

12 2 1 2 -Opt 8 5 7 10 6 9

13 2 1 2 -Opt 8 5 7 10 6 9

14 2 1 2 -Opt 8 5 4 7 10 11 6 9

15 Voorbeelden van locale zoekmethoden Iteratieve verbetering Simulated annealing Tabu search Genetische algorithmen Mierenkolonie optimalisering...

16 Iteratieve verbetering Iteratie 1. Zoek buur y van x door oplossing x een klein beetje te veranderen 2. Als f(y) f(x), dan x y; Ga naar Stap 1, tenzij aan een stopcriterium wordt voldaan. Het acceptatiecriterium is hier dus dat de kosten niet stijgen.

17 Iteratieve verbetering (2) Nadeel: Wanneer alle buren hogere kosten hebben, dan blijf je in een punt x zitten dat veel slechter kan zijn dan het optimum (x is een locaal minimum). Een mogelijke remedie: Herhaal het experiment met veel verschillende beginoplossingen (pas Multi-start toe). Een betere remedie: Sta ook eens verslechteringen toe. Dit leidt tot de methoden van Simulated annealing Tabu search

18 Simulated annealing: algemeen Stochastisch zoekproces; er worden beslissingen genomen op basis van een kansexperiment. Een buur y van x wordt willekeurig gekozen uit de buurruimte. Accepteer verbeteringen altijd; accepteer verslechteringen met een bepaalde kans (afhankelijk van de mate van verslechtering en het stadium waarin het proces zich bevindt). Voer iteraties uit tot aan het stopcriterium is voldaan. Onthoud steeds de beste oplossing (de laatste oplossing is niet altijd de beste die is gevonden).

19 Simulated annealing: iteratie 1. Kies buur y uit de buurruimte van x; bepaal f(y). 2. Als f(y) f(x) (kosten y zijn niet hoger), dan x y (accepteer y als nieuwe oplossing) Als f(y) > f(x), accepteer y met kans p (definitie volgt). 3. Pas indien nodig de controle parameter T aan (deze geeft aan in welk stadium het proces zich bevindt). 4. Als niet is voldaan aan het stopcriterium, dan ga naar Stap 1.

Simulated annealing: technische details 20 T is de controle paramater; deze wordt kleiner in de loop van het proces. De beginwaarde van T wordt zodanig gekozen dat in het begin ongeveer de helft van de verslechteringen wordt geaccepteerd (vuistregel). Elke Q iteraties wordt T verlaagd door deze met α te vermenigvuldigen, met α = 0, 99 of 0,95 (of iets dergelijks). Q is ongeveer gelijk aan 8 maal de omvang van de buurruimte (vuistregel). De kans op acceptatie van een verslechtering bedraagt ( ) f(x) f(y) p = exp T

21 Te gebruiken stopcriteria Het aantal iteraties heeft een vooraf gegeven waarde bereikt. Het aantal geaccepteerde verslechteringen in een serie iteraties is gezakt tot 1% of 2%. De beste oplossing is al een tijd lang niet verbeterd. Wanneer het proces beëindigd is, dan kun je herstarten door T te verhogen en voor x te kiezen: De beste oplossing tot nu toe, waarin je een grote verandering aanbrengt. Een oude oplossing die er veelbelovend uitziet.

22 Aandachtspunten Simulated Annealing werkt alleen als het mogelijk is om kleine veranderingen aan te brengen De instelling van de parameters is natte vinger werk (wat werkt is goed) Je moet soms wat experimenteren met de instelling. Enige sturing bij het bepalen van y mag, maar er moet voldoende willekeur in zitten.

23 Tabu search: algemeen Pak niet zo maar een buur y van x maar een goede (soms zelfs de beste). Houd een tabu-lijst bij van oplossingen (of kenmerken van oplossingen) die nu tabu zijn (en dus niet geaccepteerd mogen worden als y). Voer iteraties uit tot aan het stopcriterium. Onthoud steeds de beste oplossing.

24 Tabu search: iteratie 1. Kies de eerste buur y van x waarvoor geldt f(y) f(x). Als zo n y niet bestaat, dan bepaal je de beste buur van x. Het maakt dus uit in welke volgorde je de buurruimte doorzoekt. 2. Als y niet tabu is, dan x y. Wanneer y wel tabu is, dan neem je de volgende keus, tenzij y beter is dan de beste oplossing die je tot nu toe hebt gevonden. 3. Pas de tabu-lijst aan: voeg x of kenmerken van x toe; haal de oudste informatie uit de tabu-lijst. 4. Als niet voldaan is aan een stopcriterium: Ga naar Stap 1.

25 Stopcriteria Maximum aantal iteraties is voltooid. Het maximum aantal iteraties sinds de laatste verbetering is voltooid.

Genetische algoritmen: algemeen 26 GA s werken met een populatie van oplossingen. Een nieuwe populatie oplossingen wordt verkregen door ˆ een paar oude oplossingen te kruisen (cross-over), of ˆ een oplossing te veranderen (mutatie). Betere oplossingen hebben meer kans om gebruikt te worden bij cross-over. Het idee is dat een oplossing is opgebouwd uit building blocks, en dat op den duur goede stukken van een oplossing de populatie gaan domineren. Het komt uitgebreid aan de orde bij Evolutionaire Algorithmen.

Nabootsing genetisch algoritme 27 Basisidee Genetisch Algoritme: een oplossing is opgebouwd uit building blocks ; op den duur gaan goede stukken van een oplossing de populatie domineren. Wanneer je een verzameling van goede oplossingen hebt, dan zullen de gemeenschappelijke stukken wel de building blocks zijn. Uitwerking: ˆ Bepaal een verzameling goede oplossingen door middel van multistart in combinatie met bijv. Simulated Annealing. ˆ Bepaal de gemeenschappelijke onderdelen ( commonalities). ˆ Voer nog een serie runs uit, waarbij je de commonalities bevoordeelt.

28 Mierenkolonie optimalisering Werkt met een kolonie mieren ; iedere mier bepaalt in iedere iteratie een oplossing (= maakt aantal keuzes). Wanneer mier k een bepaalde keuze heeft gemaakt in iteratie t, dan wordt deze keuze in de volgende iteraties aantrekkelijker (= krijgt meer geur ); de hoeveelheid extra geur is afhankelijk van de kwaliteit van de oplossing van mier k in iteratie t. In de volgende iteratie vervliegt een deel van de geur. Daarna bepaalt iedere mier random een nieuwe oplossing, waarbij de kans op een bepaalde keuze afhankelijk is van de hoeveelheid geur.

Toepassing: TSP 29 Gebruik n mieren (n is het aantal steden in de instantie). Voor iedere kant (vi, v j ) zijn gedefinieerd: ˆ nij = 1/d ij (visibility = 1/lengte); ˆ Γij (hoeveelheid geurstof) In iteratie t wordt vanuit iedere stad een mier gestuurd om een tour te construeren op basis van een probabilistisch Nearest Neighbour algoritme; de lengte van (v i, v j ) hangt af van n ij en Γ ij. Na iedere iteratie blijft slechts ρ 100% van de geurstof hangen. Wanneer mier k kant (vi, v j ) gebruikt, dan levert dit een toename op van Γ ij van k ij =1/lengte tour in de volgende iteratie. n Γ ij ργ ij + k=1 k ij.

30 Nog wat tips Verhoog de efficiëntie door f(y) incrementeel te berekenen (dus op basis van de verandering ten opzichte van f(x)). Voor de echte hackers: vermijd het gebruik van tijdvretende operaties (bijv. het klonen van objecten in JAVA). Zorg ervoor dat je een verandering nooit in twee stukken splitst, waarbij je eerst een verandering moet accepteren die de kosten sterk verhoogt, voordat je de verandering kunt uitvoeren die de kosten sterk verlaagt.

31 Nog wat tips (2) Maak onderscheid tussen het schenden van een totaal dan wel individuele voorwaarde: ˆ Zorg ervoor dat altijd aan een individuele voorwaarde (waarin alleen de variabele die je nu verandert een rol speelt) wordt voldaan. Check vooraf of een nieuwe oplossing aan alle voorwaarden voldoet, of (nog beter) zoek alleen toegelaten oplossingen. ˆ Om voldoende vrijheid te hebben moet je een totaal voorwaarde (waarin verschillende variabelen een rol spelen) kunnen relaxeren; een overschrijding is toegestaan, maar wordt extra bestraft.