Lokale zoekmethoden Goed in de praktijk: Whizzkids 96 (krantenbezorgers op Manhattan, www.win.tue.nl/whizzkids) Whizzkids 97 (het rooster voor een ouderavond) Grote handelsreizigers-problemen (TSP) Planning- en schedulingproblemen
Lokale zoekmethoden Initialisatie: 0. Bepaal startoplossing x Iteratie: 1. Zoek buur x’ van x door oplossing x iets te veranderen. 2. Als x’ geaccepteerd wordt dan x := x’. Ga naar 1.
Buur van oplossing x: alternatieve oplossing afgeleid van x Buurruimte van oplossing x: verzameling buren van x Buurruimte-structuur: definitie voor vinden van buren Vanaf nu: minimaliseren van f(x)
Lokale zoekmethoden Iteratieve verbetering Simulated annealing Tabu search Evolutionair rekenen ….
Iteratieve verbetering 1. Zoek buur x’ van x door oplossing x iets te veranderen. 2. Als dan x := x’. Ga naar 1.
Iteratieve verbetering: locaal optimum Multi-starts Alternatieven: Simulated annealing Tabu search
Krantenbezorgers op Manhattan Gegeven: Centraal depot Locaties kranten-abonnees 4 Krantenbezorgers Depot
Bepaal de routes voor de krantenbezorgers zodanig dat de laatste krant zo snel mogelijk bezorgd is.
Aannames Locaties zijn gegeven door (x,y)-coordinaat. Afstand: Manhattan afstand D((a,b),(c,d))= |a-c| + |b-d| Benodigde tijd voor route: Totale afstand + vaste tijd voor elke abonnee Vaste tijd per abonnee = 4 (n abonnees in route: Totale afstand + 4n)
Voorbeelden buurruimten Manhattan Kies willekeurige abonnee. Haal deze uit route en voeg deze op beste plaats in andere route toe. Kies willekeurige abonnee. Haal deze uit route en voeg deze op willekeurige plaats in eigen route toe. Kies willekeurige abonnee. Haal deze uit route en voeg deze in eigen of andere route toe.
Voorbeelden buurruimten 4. Staarten verwisselen: Kies twee routes Kies in elke route een (willekeurig of anders) punt Verwissel staarten na gekozen punten Route A: depot,i1,…,ik,ik+1,, …..,in Route B: depot,j1,…,jm,jm+1, …,jq Route A’: depot,i1,…,ik, jm+1, …,jqik Route B’: depot,j1,…,jm,ik+1,, …..,in
Originele routes:
Na staartenverwisseling
Simulated annealing Accepteer verslechteringen met een bepaalde kans (noem deze p). Voer iteraties uit tot aan stopcriterium is voldaan. Onthoud steeds de beste oplossing.
Simulated annealing: iteratie 1. Kies buur x’ uit de buurruimte van x 2. Als dan x := x’ (accepteer x’) Anders x := x’ met kans (accepteer x’ met kans p) 3. Pas indien nodig control parameter T aan 4. Als niet voldaan aan stopcriterium: Ga naar 1.
Acceptatie verslechteringen: p = exp ( - / T) = f(x’)-f(x) kostenverschil oude en nieuwe oplossing T: controle parameter (temperatuur)
Control parameter T Controle parameter T wordt kleiner in de loop van het algoritme. Beginwaarde T: helft van verslechteringen wordt geaccepteerd Elke Q interaties: T T met = 0.99 of 0.95 Vuistregel: Q ~ 8 * omvang buurruimte
Stopcriterium: vuistregels Maximaal aantal iteraties is voltooid (altijd gebruiken) Aantal geaccepteerde verslechteringen in serie iteraties is 1 à 2 % Beste oplossing wordt een tijd lang niet beter Herstart mogelijk nadat aan stopcriterium is voldaan.
Tabu search Gebruik goede buren (beste?) Houd tabu-list bij van oplossingen die nu niet geaccepteerd worden Voer iteraties uit tot aan stopcriterium is voldaan. Onthoud steeds de beste oplossing.
Tabu search iteratie 1. Kies eerste buur x’ van x waarvoor . Als deze niet bestaat kies f(x’) minimaal 2. Als x’ niet in tabu-list dan x := x’ (accepteer x’) Als x’ wel tabu, dan volgende keus 3. Update tabu-list 4. Als niet voldaan aan stopcriterium: Ga naar 1.
Stopcriterium Maximaal aantal iteraties is voltooid Maximaal aantal iteraties sinds laatste verbetering is voltooid.
Voorbeelden: Manhattan Tabu: Abonnee weghalen bij dezelfde bezorger als in de vorige iteratie. Tabu: Abonnees die in de vorige 10 iteraties naar andere bezorger zijn gegaan weer verplaatsen
Lokale zoekmethoden Geen theoretische grenzen Goed in de praktijk Trial-and-error/success Wat werkt is goed