L10 Metaheuristieken

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

Toepassingen van Operationeel Onderzoek

Les 10: metaheuristieken


Variable neighborhood search
Tabu search
Simulated annealing
Genetische algoritmes

Ben Hermans
TvOO, les 10 1 / 41
Een samenvatting
Optimalisatiemethoden

Exacte methoden Heuristieken

Gebaseerd Constructie- Verbeterings-


···
op LP of MIP heuristieken heuristieken
Greedy Local search
algoritme
Afrondings-
heuristiek
···

TvOO, les 10 2 / 41
Vandaag: metaheuristieken
Optimalisatiemethoden

Exacte methoden Heuristieken

Gebaseerd Constructie- Verbeterings-


···
op LP of MIP heuristieken heuristieken
Greedy Local search
algoritme Metaheuristieken
Afrondings- Single-solution
heuristiek based
···
Population based
TvOO, les 10 2 / 41
Metaheuristieken

• Metaheuristiek = een geavanceerd framework dat gebruik maakt van basis


heuristieken (neighbourhood search) om de zoekruimte efficiënt en effectief
te doorzoeken
• Uit het Grieks: ‘Meta’ = voorbij; ‘Heuristiek’ = zoeken
• Een metaheuristiek is een methode om uit lokale optima te ontsnappen die
algemeen toepasbaar is

TvOO, les 10 3 / 41
Ontsnappen uit lokale optima (Metaheuristics, El-Ghazali Talbi)

Metaheuristieken

Single-solution based:
Population-based
verbeteren van local search

Itereer met Variable Aanvaard


Genetische
verschillende neighborhood niet-verbeterende
algoritmes
oplossingen search moves

Multistart Iterative Simulated


Tabu search
local search local search annealing
TvOO, les 10 4 / 41
Ontsnappen uit lokale optima (Metaheuristics, El-Ghazali Talbi)

Metaheuristieken

Single-solution based:
Population-based
verbeteren van local search

Itereer met Variable Aanvaard


Genetische
verschillende neighborhood niet-verbeterende
algoritmes
oplossingen search moves

Multistart Iterative Simulated


Tabu search
local search local search annealing
TvOO, les 10 5 / 41
Itereer met verschillende oplossingen

• De kwaliteit van het lokale optimum hangt af van de initiële oplossing en de


geselecteerde moves
• In multistart local search wordt local search toegepast op verschillende
(tyisch random geselecteerde) initiële oplossingen
• In iterated local search wordt local search toegepast op een initiële
toelaatbare oplossing. Vervolgens wordt het lokaal optimum verstoord (bv.
via een random move) en wordt local search toegepast op de verstoorde
oplossing. De nieuwe oplossing vervangt de huidige oplossing als ze voldoet
aan bepaalde aanvaardingscriteria.

TvOO, les 10 6 / 41
Hoe verstoren en wanneer aanvaarden?

• Een zeer kleine wijziging kan resulteren in cycling, een heel grote wijziging
kan leiden tot het verliezen van de goede eigenschappen van het lokaal
optimum. Voor de verstoring kan een andere move gebruikt worden dan de
local search move.
• Aanvaardingscriteria: De twee uitersten zijn enerzijds het enkel aanvaarden
van betere oplossingen en anderzijds het aanvaarden van eender welke
toelaatbare oplossing. De aanvaarding kan ook random zijn of gebaseerd zijn
op een threshold (aanvaard enkel die oplossingen die niet veel slechter zijn
dan de huidige beste oplossing).

TvOO, les 10 7 / 41
Ontsnappen uit lokale optima (Metaheuristics, El-Ghazali Talbi)

Metaheuristieken

Single-solution based:
Population-based
verbeteren van local search

Itereer met Variable Aanvaard


Genetische
verschillende neighborhood niet-verbeterende
algoritmes
oplossingen search moves

Multistart Iterative Simulated


Tabu search
local search local search annealing
TvOO, les 10 8 / 41
Variable neighborhood search
• Variable neighborhood search is een metaheuristiek die gebaseerd is op het
idee van systematische verandering in de neighborhood
• Het maakt gebruik van een ‘in elkaar passende’ (‘nested’) set van
neighborhoods N1 ⊂ . . . ⊂ Nkmax
• Het wordt Variable Neighborhood Descent genoemd als de neighborhoods
gewijzigd worden op een deterministische manier
• We starten met een initiële toelaatbare oplossing x en zoeken naar de beste
oplossing in de eerste neighborhood N1 (x). Als deze beste buur beter is dan
x, vervangen we x door deze buur en herhalen we deze stap. Indien niet,
gaan we naar de tweede neighborhood N2 (x). We gaan zo door totdat we
een betere buur vinden (in dat geval keren we terug naar de eerste
neighborhood) of totdat we de grootste neighborhood Nkmax bereiken.
• Waarom zoeken we niet altijd in de grootste neighborhood?
TvOO, les 10 9 / 41
Variable neighborhood search
• Variable neighborhood search combineert deterministische en stochastische
wijzigingen van de neighborhood.
• De stochastische fase bestaat uit de random selectie van één punt uit de
k-de neighborhood. Dit wordt ‘shaking’ genoemd.
• Het volgende voorbeeld komt uit Hansen et al. “Variable neighborhood
search”, Chapter 3 van het Handbook of Metaheuristics, M. Gendreau, J.-Y.
Potvin (eds.), International Series in Operations Research & Management
Science, 2010.
• In het minimum k-cardinality tree probleem zoeken we een subtree met exact
k bogen waarvan de som van gewichten minimaal is.
• Neighborhood 1: één boog in, één boog uit.
• Neighborhood 2: twee bogen in, twee bogen uit.
TvOO, les 10 10 / 41
Variable neighborhood search

TvOO, les 10 11 / 41
Ontsnappen uit lokale optima (Metaheuristics, El-Ghazali Talbi)

Metaheuristieken

Single-solution based:
Population-based
verbeteren van local search

Itereer met Variable Aanvaard


Genetische
verschillende neighborhood niet-verbeterende
algoritmes
oplossingen search moves

Multistart Iterative Simulated


Tabu search
local search local search annealing
TvOO, les 10 12 / 41
Naar een oplossing gaan die geen verbetering is

• Eens we een lokaal optimum bereiken, zouden we naar een oplossing kunnen
gaan die geen verbetering meer is. Dit gebeurt na shaking.
• Dit kan riskant zijn! Waarom?
• Als we naar een oplossing gaan die geen verbetering is, kan het zijn dat we in
de volgende iteratie terug naar de vorige oplossing gaan. In dat geval kan het
algoritme in een (oneindige) loop komen (‘cycling’).
• Twee ideeën om cycling te voorkomen:
• Verbied moves die je terug naar een eerder bezochte oplossing brengen gedurende een
aantal iteraties (tabu search)
• Introduceer randomness (simulated annealing)

TvOO, les 10 13 / 41
Tabu search (Fred Glover, 1989)

• Definitie van taboe (tabu, taboo) (Merriam-Webster woordenboek):


• banned on grounds of morality or taste
• banned as constituting a risk
• In tabu search stoppen we niet als we geen betere buur meer kunnen vinden
• We gaan naar de beste buur, zelfs als die een slechtere doelfunctiewaarde
heeft
• Dit zal ons toelaten om nieuwe gebieden van de oplossingsruimte te
verkennen
• We voorkomen cycling door recent gekozen moves (of oplossingen) te
verbieden (we maken ze taboe)

TvOO, les 10 14 / 41
0-1 knapzak

max 10x1 + 20x2 + 7x3 + 4x4


s.t. 3x1 + 5x2 + 2x3 + 2x4 ≤ 7
xi ∈ {0, 1} i = 1, . . . , 4

• Stel dat (1, 0, 0, 0) onze initiële oplossing is.


• We gebruiken de volgende moves: voeg een item toe of verwijder een item.
• Dit impliceert dat we exact één variabele gaan wijzigen om een buur te
verkrijgen.
• Laat ons starten met local search.
TvOO, les 10 15 / 41
max 10x1 + 20x2 + 7x3 + 4x4
Local search voor 0-1 knapzak
s.t. 3x1 + 5x2 + 2x3 + 2x4 ≤ 7
xi ∈ {0, 1} i = 1, . . . , 4

huidige opl buur 1 buur 2 buur 3 buur 4 beste buur


(1,0,0,0) (0,0,0,0) (1,1,0,0) (1,0,1,0) (1,0,0,1) (1,0,1,0)
10 0 infeasible 17 14 17
(1,0,1,0) (0,0,1,0) (1,1,1,0) (1,0,0,0) (1,0,1,1) (1,0,1,1)
17 7 infeasible 10 21 21
(1,0,1,1) (0,0,1,1) (1,1,1,1) (1,0,0,1) (1,0,1,0) (1,0,1,0)
21 11 infeasible 14 17 17

• Geen betere buur. De huidige oplossing (1,0,1,1) is lokaal optimaal m.b.t. deze
neighborhood. Ze heeft doelfunctiewaarde 21.
• Deze oplossing is geen globaal optimum.
• Laten we tabu search proberen waarbij we een move taboe houden gedurende 2 iteraties.
We stoppen na 6 iteraties.
TvOO, les 10 16 / 41
max 10x1 + 20x2 + 7x3 + 4x4
Tabu search voor 0-1 knapzak
s.t. 3x1 + 5x2 + 2x3 + 2x4 ≤ 7
xi ∈ {0, 1} i = 1, . . . , 4
iter beste opl huidige opl taboe lijst buur 1 buur 2 buur 3 buur 4 beste buur
1 (1,0,0,0) (1,0,0,0) ∅ (0,0,0,0) (1,1,0,0) (1,0,1,0) (1,0,0,1) (1,0,1,0)
10 10 0 infeasible 17 14 17
2 (1,0,1,0) (1,0,1,0) 3 (0,0,1,0) (1,1,1,0) - (1,0,1,1) (1,0,1,1)
17 17 7 infeasible 21 21
3 (1,0,1,1) (1,0,1,1) 3, 4 (0,0,1,1) (1,1,1,1) - - (0,0,1,1)
21 21 11 infeasible 11
4 (1,0,1,1) (0,0,1,1) 4, 1 - (0,1,1,1) (0,0,0,1) - (0,0,0,1)
21 11 infeasible 4 4
5 (1,0,1,1) (0,0,0,1) 1,3 - (0,1,0,1) - (0,0,0,0) (0,1,0,1)
21 4 24 0 24
6 (0,1,0,1) (0,1,0,1) 3,2 (1,1,0,1) - - (0,1,0,0) (0,1,0,0)
24 24 infeasible 20 20

• We hebben een betere oplossing gevonden met waarde 24. De optimale oplossing is
(0,1,1,0) met waarde 27.
• We zouden de optimale oplossing vinden in de volgende iteratie.
TvOO, les 10 17 / 41
Tabu search voor het TSP
• De neighborhood bestaat uit alle oplossingen die kunnen bereikt worden door
het verwisselen van 2 steden in de tour.
• De lengte van de taboe lijst is 3, dus de 3 meest recente moves zijn taboe.

TvOO, les 10 18 / 41
Tabu search algoritme - trade-offs

• Hoe lang maken we een move (of oplossing) taboe?


• Hoe langer ze taboe zijn, hoe kleiner de neighborhoods worden. Hierdoor
mislopen we mogelijk goede oplossingen.
• Als we het aantal iteraties waarin moves taboe zijn beperken, verhogen we de
kans op cycling
• We zouden een “aspiratie criterium” kunnen gebruiken: bijvoorbeeld een
taboe move tóch toelaten als deze de tot nu toe best gevonden oplossing
verbetert.

TvOO, les 10 19 / 41
Simulated annealing

• to anneal: ‘to heat and then cool (a material, such as steel or glass) usually
for softening and making less brittle’ (definitie uit Merriam-Webster)
• Simulated annealing is geı̈nspireerd door het annealing proces bij metalen
waarbij metalen traag afgekoeld worden om ze sterker te maken.
• Het maakt gebruik van randomness om uit een lokaal optimum te
ontsnappen. De kansen zijn afhankelijk van een parameter, genaamd de
“temperatuur” die steeds kleiner wordt.

TvOO, les 10 20 / 41
Simulated annealing

Voor een minimalisatieprobleem:


• We starten met een toelaatbare oplossing x.
• We kiezen een random buur x ′ . We berekenen het verschil δ = f (x ′ ) − f (x)
tussen de doelfunctiewaarde van de buur en die van de huidige oplossing
• Als de buur een betere doelfunctiewaarde heeft, dan aanvaarden we die
(vervang x door x ′ en herhaal).
−δ
• Indien niet, dan aanvaarden we de buur met kans e T , waarbij T de
temperatuur is. Als de buur niet aanvaard wordt, dan herhalen we door een
nieuwe random buur van x te selecteren.
Wat voor een maximalisatieprobleem?

TvOO, les 10 21 / 41
Simulated annealing: over de kans op aanvaarding
kans op aanvaarding
1 −δ
Kans op aanvaarding e T hangt af van
f (x ′ )−f (x)
e− T • de kwaliteit van de nieuwe oplossing (hoe
slechter de oplossing, hoe kleiner de kans)
• de temperatuur (hoe lager de temperatuur,
f (x ′ )−f (x) hoe kleiner de kans)
T
0
De temperatuur verlaagt doorheen de tijd
• Als T zeer hoog is, dan is de aanvaardingskans groot (random search)
• Als T kleiner wordt, gaat het algoritme zich gedragen zoals local search
→ Als het afkoelen te snel gebeurt, bereikt het algoritme snel een lokaal optimum en is de
kans om er nog uit te kunnen ontsnappen klein
TvOO, les 10 22 / 41
max 10x1 + 20x2 + 7x3 + 4x4
Simulated annealing voor 0-1 knapzak s.t. 3x1 + 5x2 + 2x3 + 2x4 ≤ 7
• Neem T = 10 en verlaag met 1 eenheid bij elke iteratie xi ∈ {0, 1} i = 1, . . . , 4
• Gebruik de random getallen 0.85, 0.18, 0.72, 0.63, 0.13, 0.22, 0.83, 0.89 ...
• Stop na vijf iteraties
it T beste opl huidige opl random getal random buur kans random getal /
random move beslissing
1 10 (1,0,0,0) (1,0,0,0) 0.85 (1,0,0,1) aanvaard met −
10 10 14 kans 1 (verbetering) aanvaard
2 9 (1,0,0,1) (1,0,0,1) 0.18 (0,0,0,1) aanvaard met kans 0.72
14 14 4 e −10/9 = 0.33 weiger
3 8 (1,0,0,1) (1,0,0,1) 0.63 (1,0,1,1) aanvaard met −
14 14 21 kans 1 (verbetering) aanvaard
4 7 (1,0,1,1) (1,0,1,1) 0.13 (0,0,1,1) aanvaard met kans 0.22
21 21 11 e −10/7 = 0.24 aanvaard
5 6 (1,0,1,1) (0,0,1,1) 0.83 (0,0,1,0) aanvaard met kans 0.89
21 11 7 e −4/6 = 0.51 weiger

TvOO, les 10 23 / 41
Afkoelschema’s in simulated annealing

Belangrijke beslissing: hoe de temperatuur verlagen over de iteraties?


• Het afkoelschema bepaalt
• de initiële temperatuur
• een schema voor het verlagen van de temperatuur
• een stopcriterium
• We kunnen de temperatuur verlagen bij elke iteratie of pas na een aantal
iteraties
• Statische afkoelschema’s: liggen op voorhand reeds volledig vast
• Dynamische afkoelschema’s: kunnen verlaging van temperatuur aanpassen
tijdens de uitvoering van het algoritme

TvOO, les 10 24 / 41
Ontsnappen uit lokale optima (Metaheuristics, El-Ghazali Talbi)

Metaheuristieken

Single-solution based:
Population-based
verbeteren van local search

Itereer met Variable Aanvaard


Genetische
verschillende neighborhood niet-verbeterende
algoritmes
oplossingen search moves

Multistart Iterative Simulated


Tabu search
local search local search annealing
TvOO, les 10 25 / 41
Genetische algoritmes
• Hoe een betere oplossing creëren vertrekkend vanuit twee oplossingen?

TvOO, les 10 26 / 41
Genetische algoritmes

TvOO, les 10 27 / 41
Genetische algoritmes

TvOO, les 10 28 / 41
Genetische algoritmes

• Genetische algoritmes zijn stochastische zoekalgoritmes geı̈nspireerd door


natuurlijke evolutie.
• Ze werken met een populatie van oplossingen en produceren iteratief nieuwe
oplossingen. Oplossingen worden voorgesteld door chromosomen.
• Bij elke iteratie selecteren we oplossingen op basis van hun ‘fitness’ en
nieuwe oplossingen worden gecreëerd door genetische operatoren zoals
‘crossover’ en ‘mutatie’
• Genetische algoritmes zijn populair geworden na het boek van John Holland,
Adaptation in Natural and Artificial Systems (1975).

TvOO, les 10 29 / 41
Selectiemethodes

• De selectiemethode bepaalt welke oplossingen worden geselecteerd als ouder


en hoeveel kinderen elke ouder voortbrengt.
• Dit gebeurt op basis van ‘fitness’. Deze fitness kan absoluut of relatief (op
basis van een ranking) zijn.
• Populaire strategieën om µ oplossingen te selecteren:
• Roulette wiel selectie: Elke oplossing krijgt een kans op selectie die proportioneel is
met haar fitness. Er wordt een taartdiagram gecreëerd met daarrond een roulette wiel.
Elke draai aan het wiel selecteert een oplossing. Er wordt µ keer gedraaid.
• Stochastische universele sampling: Het roulette wiel heeft µ op gelijke afstand
geplaatste pointers. Alle µ oplossingen worden met één draai geselecteerd.
• Tornooi selectie: k oplossingen worden random geselecteerd. Dan volgt een tornooi
tussen deze k oplossingen, waar de beste (volgens fitness) wordt geselecteerd. Dit
wordt µ keer herhaald.

TvOO, les 10 30 / 41
Selectiemethodes (Metaheuristics, El-Ghazali Talbi)

TvOO, les 10 31 / 41
Selectiemethodes (Metaheuristics, El-Ghazali Talbi) - vervolg
Tornooi selectie:

TvOO, les 10 32 / 41
Voorbeeld TSP met 10 steden: 10 tours en hun lengte

TvOO, les 10 33 / 41
Roulette wiel selectie

kandidaat lengte (100 − lengte) kans op selectie


1 44 56 0.133
2 60 40 0.095
3 58 42 0.100
4 22 78 0.186
5 83 17 0.040
6 66 34 0.081
7 92 8 0.019
8 31 69 0.164
9 61 39 0.093
10 63 37 0.088
580 420 1

TvOO, les 10 34 / 41
Alternatief: tornooi selectie

• Kies 2 random kandidaten


• Degene met de hoogste fitness (TSP: laagste tour lengte) is
ouder 1
• Selecteer opnieuw twee kandidaten
• Degene met de hoogste fitness (TSP: laagste tour lengte) is
ouder 2

TvOO, les 10 35 / 41
Reproductie

Vervolgens passen we crossover en/of mutatie toe op de geselecteerde


oplossingen.
• Mutatie: Met een bepaalde (kleine) kans worden de genen van een individu
(oplossing) gewijzigd. Bv. als de oplossing wordt voorgesteld door een
binaire vector, wijzigt een 1 in een 0 of omgekeerd.
• Recombinatie of crossover: ouders worden gecombineerd tot kinderen.
• 1-point crossover: één crossover plaats wordt random geselecteerd en twee kinderen
worden gecreëerd door het uitwisselen van segmenten voor en na deze plaats tussen de
ouders.
• 2-point crossover: twee crossover plaatsen worden geselecteerd.

TvOO, les 10 36 / 41
Crossover: voorbeeld voor het TSP
• P1: 1-2-3-4-5-6-7-8-9-10
• P2: 7-8-6-5-4-3-2-1-9-10
• 1-point crossover (crossover punt 5)
• C1: 1-2-3-4-5-7-8-6-9-10
• C2: 7-8-6-5-4-1-2-3-9-10
• 2-point crossover (crossover punten 3 en 6)
• C1: 1-2-3-6-5-4-7-8-9-10
• C2: 7-8-6-3-4-5-2-1-9-10
• 2-point crossover: C1: Kopiëer punt 1 tot punt 3 van P1, en punt 7 tot punt 10 van P1. Dit
resulteert in 1-2-3 . . . 7-8-9-10. Vervolgens voegen we steden toe in de volgorde dat ze voorkomen in
P2, dus: 1-2-3-6-5-4-7-8-9-10. Idem voor C2, maar kopiëer nu het eerste en laatste deel van P2 en
vul aan met het middelste deel in de volgorde dat ze voorkomen in P1. 1-point crossover werkt op
dezelfde manier, maar met slechts één crossover punt, dus kopiëer het eerste deel en vervolledig het
tweede deel in de volgorde dat ze voorkomen in de andere ouder.

TvOO, les 10 37 / 41
Vervanging

• Vervanging behelst het selecteren van de volgende generatie.


• Extreme strategieën: Vervang de volledige vorige populatie door de nieuwe
generatie of vervang enkel de slechtste oplossing uit de vorige populatie door
één nieuw kind.
• Tussenliggende strategieën vervangen een deel van de vorige populatie.
• Een elitaire vervangingsstrategie draagt enkel de beste kinderen over. Dit
kan leiden tot premature convergentie. Het kan voordelig zijn om ook
zwakke kinderen over te dragen. Daartoe kunnen stochastische strategieën
gebruikt worden (zoals bij selectie).

TvOO, les 10 38 / 41
Genetische algoritmes

TvOO, les 10 39 / 41
Opmerkingen over genetische algoritmes

• Het is belangrijk om een goede genetische voorstelling van een oplossing als
chromosoom te kiezen zodat crossover gemakkelijk kan toegepast worden.
• Een genetisch algoritme creëert een set van oplossingen ipv slechts één
oplossing. Dit kan nuttig zijn, zeker wanneer er meerdere objectieven moeten
geoptimaliseerd worden.

TvOO, les 10 40 / 41
Samenvatting

• We bespraken metaheuristieken als methoden om


uit lokale optima te ontsnappen
• Single-solution based
• Population-based
• Algemene trade-off: exploration versus exploitation
• exploration: we willen ‘ver genoeg’ van de huidige oplossing gaan om zo nieuwe
gebieden in de oplossingsruimte te verkennen
• exploitation: we willen niet ‘te ver’ van de huidige oplossing gaan om de goede
eigenschappen niet te verliezen
• Metaheuristieken worden veel gebruikt in de praktijk omdat ze een algemene
en flexibele aanpak geven om to goede oplossingen te komen. Maar:
• héél veel finetuning van implementatiekeuzes nodig
• vaak weinig inzicht in de kwaliteit van de bekomen oplossing
TvOO, les 10 41 / 41

You might also like