Del A: Diskret optimering og heuristiske metoder Leksjon 7 Sjefsforsker Geir Hasle SINTEF Anvendt matematikk, Oslo! Viktige karakteristika populasjon av løsninger domeneuavhengighet enkoding mangel på utnyttelse av struktur iboende parallellitet skjema, vokabular robusthet gode mekanismer for intensifisering mangler noe diversifisering Hybrid med lokalsøk: Memetic algorithms TMA 4198 - Geir Hasle - Leksjon 7 2 1
"#! $%& Mer direkte representasjon av løsninger mer naturlig enkoding av løsning spesielle krysnings- og mutasjonsoperatorer Mer intensifisering lokalsøk til lokalt optimum (spesielle mutasjonsoperatorer) Memetiske algoritmer TMA 4198 - Geir Hasle - Leksjon 7 3 %'( )! *%# +,* - Introdusert av Dorigo, Maniezzo & Colorni 1992 Populasjonsbasert metaheuristikk Hver maur i populasjonen konstruerer en løsning Når alle er ferdige oppdateres et minne (kunstig feromon) Løsningskonstruksjon og minneoppdatering repeteres inntil stoppkriterium er oppfylt TMA 4198 - Geir Hasle - Leksjon 7 4 2
#,'- Virker bare sånn passe... Biologisk analogi delvis forlatt 3 videreutviklinger Ant Colony System (ACS, Maurkolonioptimering) Max-Min Ant System Rank Based Ant System Alle inkluderer lokalsøk for å forbedre løsning Ant Colony System Modifisert global og lokal oppdatering Globalt og lokalt feromon Elitisme: kun beste maur får oppdatere globalt feromon Endret randomisering, sannsynlighet i to trinn velge grådig velge probabilistisk blant alle tillatte alternativer TMA 4198 - Geir Hasle - Leksjon 7 5.&/! Genetiske algoritmer (GA) inspirert av biologisk evolusjon populasjon av løsninger (kromosomer) rekombinering ved krysning mutasjon, seleksjon Øvrige populasjonsbaserte metoder Memetiske algoritmer ( GA+lokalsøk ) Maurkolonioptimering TMA 4198 - Geir Hasle - Leksjon 7 6 3
.&0! Konstruktive heuristikker Multi-start baserte metaheuristikker Variabelt nabolagssøk (VND/VNS) Grådig Adaptivt Randomisert Søk (Greedy Randomized Adaptive Search, GRASP) Iterert lokalsøk (Iterated Local Search, ILS) Kategorisering av metaheuristikker GUT (Grand Unifying Theory)? Hyperheuristikker TMA 4198 - Geir Hasle - Leksjon 7 7 1 Grådig konstruksjon grad av lokalitet i beslutningene informerte valg vs. regnetid Rekkefølge-basert konstruksjon Kritikalitet Statisk vs. dynamisk evaluering Parallell vs. sekvensiell konstruksjon Sæd (seeds) Kombinasjon med søk lokalsøk systematisk Squeaky Wheel optimering TMA 4198 - Geir Hasle - Leksjon 7 8 4
$%%! Tilfeldig restart (Random Restart, RR) Lokalsøk (f. eks. med Steepest Descent) Iterasjon Tilfeldig startløsning Når virker RR bra? TMA 4198 - Geir Hasle - Leksjon 7 9 %.%234(53 Procedure Local_Search_SD(init_sol,N,f) current:=init_sol new_current:=best_neighbor(current,n,f) */ Assuming Best_Neighbor returns current */ if there is no improving move while not f(new_current)=f(current) do current:=new_current new_current:= Best_Neighbor(current,N,f) od return current ; Local optimum TMA 4198 - Geir Hasle - Leksjon 7 10 5
%'%,667 66- Procedure Random_Restart (S,N,f,Stop_Criterion) current=init_solution(s) incumbent:=current */ best solution until now while not Stop_Criterion() do local_optimum:=local_search_sd(current,n,f) if f(local_optimum) < f(incumbent) then incumbent:= local_optimum fi current:=random_init_solution(s) od return incumbent */ best solution until now TMA 4198 - Geir Hasle - Leksjon 7 11 64) #6+45 Variant av Tilfeldig restart (RR) Konstruksjon med tilfeldighet Ligner Maurkoloni-optimering (ACO) Begrenset kandidatliste for utvidelse av del-løsning TMA 4198 - Geir Hasle - Leksjon 7 12 6
64) Procedure GRASP (Max_Iterations) incumbent:=bad_solution() for k:=1 to Max_Iterations do current:=local_search(... Greedy_Randomized_Construction(...)) if f(current) < f(incumbent) then incumbent:= current fi od return incumbent */ best solution until now TMA 4198 - Geir Hasle - Leksjon 7 13 64)7 6+*5 Procedure Greedy_Randomized_Construction(...) partial_solution := Empty_Solution() while not Complete(solution) do Restricted_Candidate_List :=Evaluate_Incremental_Costs(solution) partial_solution:=extend_solution(partial_solution,rando m_element(restricted_candidate_list)) od return solution TMA 4198 - Geir Hasle - Leksjon 7 14 7
64) 7 65*. Restriksjon kan være Kardinalitetsbasert ( de 10 beste alternativene ) Verdibasert ( alle elementer med inkrementell kostnad ikke større enn gitt verdi ) ( ) [ ] + α α min min max min c(e) c, c c c, 0,1 Reaktiv GRASP: automatisk justering Perturbasjon av kostnadsfunksjon (noising) Utvidelse med Path Relinking Preprosessor til GA TMA 4198 - Geir Hasle - Leksjon 7 15 348#9% +3 I en pipende maskin smøres først de deler som piper Basert på konstruktiv heuristikk der Løsning bygges opp ved suksessiv utvidelse med elementer Sekvens av elementer er viktig (prioritet av elementer) Mål på hvor fornøyd et element er i den endelige løsning Endring av rekkefølgen av elementer Repetisjon TMA 4198 - Geir Hasle - Leksjon 7 16 8
48#9% + Procedure Squeaky_Wheel_Optimization(f) Element_Priority_List :=Determine_Element_Priorities() ; Static prioritization incumbent:=some_feasible_solution() while not Stop_Criterion() do solution:= Empty_Solution() while not Complete(solution) do solution:=augment_solution(solution, Element_Priority_List) od if f(solution)< f(incumbent) then incumbent:=solution Element_Priority_List :=Update_Element_Priorities(Element_Priority_List,solution) od return solution TMA 4198 - Geir Hasle - Leksjon 7 17 :;%;%2,:"4- Lokalt optimum er relativt til nabolag Et lokalt optimum m.h.t. ett nabolag er ikke nødvendigvis lokalt optimum m.h.t et annet Et globalt optimum er et lokalt optimum for alle nabolag Lokale optima er ofte nær hverandre Grunnleggende idé i VNS: Systematisk variasjon av nabolag Nabolagsstruktur N k, k = 1, k max Gjerne ordnet etter størrelse TMA 4198 - Geir Hasle - Leksjon 7 18 9
Procedure VND (N[1..kmax]) incumbent:=initial_solution() ; best solution until now while not Stop() do restart: for k:=1 to kmax do local_optimum:=some_local_search(n(k),incumbent) ; Variants: First Improve, Best Neighbor, SA, TS... if f(local_optimum)< f(incumbent) then incumbent:=local_optimum if not Stop() goto restart fi fi od od return incumbent TMA 4198 - Geir Hasle - Leksjon 7 19 :;%";(5,:"(- :;%";45,:"4- Procedure VNS (N[1..kmax]) incumbent:=initial_solution() while not Stop() do restart: for k:=1 to kmax do current:=random_element(n(k),incumbent) local_optimum:=some_local_search(n(k),current) ; Variants: First Improve, Best Neighbor, SA, TS, VND... if f(local_optimum)< f(incumbent) then incumbent:=local_optimum if not Stop() goto restart fi od od return incumbent TMA 4198 - Geir Hasle - Leksjon 7 20 10
:"4 Lokalsøk i VNS kan byttes ut med VND VNS er beregningskrevende for store instanser Redusert lokalsøk: VNDS Hybridisering Tabusøk GRASP... TMA 4198 - Geir Hasle - Leksjon 7 21 <%%2 Basert på (variant av) lokalsøk Lokalsøk gir avbildning LS : S Sˆ Iterasjon med ulike startløsninger gir ulike lokale optima Tilfeldig restart Hvorfor ikke rekursjon ˆ LS : S Sˆ TMA 4198 - Geir Hasle - Leksjon 7 22 11
<%%2 Prøver å iterere slik at vi unngår å restarte i samme Basin of attraction Gjør dette ved perturbasjon av beste løsning Diversifisering TMA 4198 - Geir Hasle - Leksjon 7 23 <%%2 Procedure Iterated_Local_Search(N,f) incumbent:=current:=local_search(initial_solution(),n,f) while not Stop_Criterion() do new_start:=perturbation(current,history) new_local_optimum:= Local_Search(new_start,N,f) if f(new_local_optimum)<f(incumbent) then incumbent:=new_local_optimum fi if Accept(new_local_optimum,incumbent,history) then current:= new_local_optimum fi od return incumbent TMA 4198 - Geir Hasle - Leksjon 7 24 12
<%%2!);& Flytt i høyordens nabolag Fjerning og gjenoppbygging Ruin and Recreate (NB! patentert i USA!) Tilfeldig perturbasjon Fokusert perturbasjon Noising endre problem og finn lokalt optimum Distansemål sjekke avstand til tidligere startløsninger sjekke distanse til lokale optima TMA 4198 - Geir Hasle - Leksjon 7 25 <%%2 Hvor stor skal perturbasjonen være? for liten perturbasjon: fare for å havne i samme Basin of attraction for mye perturbasjon: Random restart variabel perturbasjon Ruin and Recreate Very Large Neighborhood Search TMA 4198 - Geir Hasle - Leksjon 7 26 13
1 Individ vs. populasjon Probabilistiske vs. deterministiske Minneløse vs. minnerike Modifikasjon av kostnadsfunksjon Nabolagsbaserte vs. Multi-start baserte TMA 4198 - Geir Hasle - Leksjon 7 27 ";%; %!; Nabolagsbaserte Essensielt varianter av lokalsøk SA, TS (grunnleggende), GLS Multi-start baserte Iterativ generering av startløsninger for lokalsøk Startløsningene tas videre med lokalsøk GA, Evolusjonsalgoritmer, Memetic Algorithms Maurkolonialgoritmer, ACO GRASP Variabelt nabolagssøk Iterert lokalsøk TMA 4198 - Geir Hasle - Leksjon 7 28 14
3 =3'5> Hvilke mekanismer virker? lokalsøk restart tilfeldighet oppoverflytt minne straff diversifisering populasjon... Hva med å lage en universell metaheuristikk? No free lunch -teoremet TMA 4198 - Geir Hasle - Leksjon 7 29 3"?.53!,9%@56#A- Uformell beskrivelse: Når vi midler over alle probleminstanser i et gitt søkerom så har alle søkealgoritmer samme gjennomsnittlige ytelse. For enhver algoritme, så betales enhver fordel m.h.t. løsning av en klasse av problemer med tilsvarende ulempe for en annen klasse. TMA 4198 - Geir Hasle - Leksjon 7 30 15
3"?.53!,9%@56#A- Når vi midler ytelsen til en søkealgoritme over alle mulige søkelandskap, så har den ikke bedre ytelse enn tilfeldig søk For å få god ytelse må en søkealgoritme benytte domenekunnskap, struktur, kunnskap om søkelandskap TMA 4198 - Geir Hasle - Leksjon 7 31 =' Det er liten vits i å sause sammen alle metaheuristikker til en metode Opportunistisk resonnering analyse av problemet / problemløsningsstatus valg av aktuell teknikk læring styring av søkeprosess etter kjølvannet TMA 4198 - Geir Hasle - Leksjon 7 32 16
B# Metaheuristikker er ikke generelle Det fins ingen beste metaheuristikk No free lunch -teoremet Hyperheuristikker Generelle søketeknikker Basert på (meta)heuristikker Bruk av (meta)heuristikker for å velge (meta)heuristikk under søk bruker ikke domenekunnskap TMA 4198 - Geir Hasle - Leksjon 7 33 B# Hyperheuristikk Domenebarrière h1 h2 h3 h4 h5 h6 Evalueringsfunksjon TMA 4198 - Geir Hasle - Leksjon 7 34 17
B# Informasjon til hyperheuristikk fra hver (meta)heuristikk CPU-tid brukt Endring i objektfunksjon Effektivitet Hvor lenge siden er det siden heuristikken sist ble kalt TMA 4198 - Geir Hasle - Leksjon 7 35 B# Kvalifisert valg av heuristikk for å løse delproblem Læring under søk Probabilistisk valg av heuristikk Rulett-seleksjon TMA 4198 - Geir Hasle - Leksjon 7 36 18
' Events Constructors Blackboard with Solutions Manager Analyzers Repairmen Improvers Agentbasert Mapping problemkarakteristikk del-løser Mapping problemløsningstilstand - Dynamisk, opportunistisk kontroll av søk Testbenk TMA 4198 - Geir Hasle - Leksjon 7 37.&0! Kategorisering av metaheuristikker Konstruktive heuristikker Multi-start baserte metaheuristikker Tilfeldig Restart (Random Restart, RR) Variabelt nabolagssøk (VND/VNS) Grådig Adaptivt Randomisert Søk (Greedy Randomized Adaptive Search, GRASP) Iterert lokalsøk (Iterated Local Search, ILS) GUT (Grand Unifying Theory)? Hyperheuristikker TMA 4198 - Geir Hasle - Leksjon 7 38 19
.&! Eksakte metoder Branch and Bound Dynamisk programmering Lagrange-relaksering Prosjektoppgave TMA 4198 - Geir Hasle - Leksjon 7 39 Del A: Diskret optimering og heuristiske metoder Leksjon 7 Sjefsforsker Geir Hasle SINTEF Anvendt matematikk, Oslo 20
)& =2%?%&%# n n max v x s.a. j= 1 j j= 1 i,j j i { } j j c x C i = 1,,m x 0,1 j = 1,, n Implementere metaheuristikk Sammenlignende undersøkelser på testeksempler Rapport ca. 4 sider 1-3 studenter pr. besvarelse Frist 1. mars, epost Geir.Hasle@sintef.no På vinterferie 17.2-27.2... TMA 4198 - Geir Hasle - Leksjon 7 42 21
Sett bestående av 9 klasser 100,250,500 objekter 5,10,30 dimensjoner 30 instanser i hver Ikke nødvendig å bruke alle! n m 0 0 a line with the n obj.func. coefficients a line for each m; n coefficients for <= constraints a line with rhs of <= constraints TMA 4198 - Geir Hasle - Leksjon 7 43 6 kan være kortfattet, men skal stå på egen hånd og gi en beskrivelse av: problemstilling de valg som ble tatt algoritmebeskrivelser planlegging og gjennomføring av eksperimentell undersøkelse resultater, konklusjon og mulig videre arbeid kode for optimeringsalgoritme som vedlegg TMA 4198 - Geir Hasle - Leksjon 7 44 22