Del A: Diskret optimering og heuristiske metoder Leksjon 7

Like dokumenter
INF-MAT-5380

INF-MAT Geir Hasle - Leksjon 3 2

!"# $%&' P NP NP \ P. Finnes overalt. Er som regel ikke effektivt løsbare. Eksempler på NP-harde problemer

INF-MAT-5380

INF-MAT-5380

INF-MAT

Del A: Diskret optimering og heuristiske metoder Leksjon 4. Sjefsforsker Geir Hasle SINTEF Anvendt matematikk, Oslo

Tilfeldig søk Simulert størkning Terskelakseptanseteknikker. INF-MAT Geir Hasle - Leksjon 4 2

Oversikt. Heuristisk søk 1. Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk. Prinsipper og metoder

Heuristisk søk 1. Prinsipper og metoder

!!!" " # $ Leksjon 1

Heuristiske søkemetoder II

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, kontinuasjonseksamen

INF-MAT Lokalsøk og meta-heuristikker i kombinatorisk optimering

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

MAT1030 Diskret Matematikk

Trust region methods: global/local convergence, approximate January methods 24, / 15

Dynamisk programmering

Discrete Optimization Methods in Maritime and Road-based Transportation

Heuristiske søkemetoder I: Simulert størkning og tabu-søk

Forelesning 1. Algoritmer, pseudokoder og kontrollstrukturer. Dag Normann januar Vi som skal undervise. Hva er diskret matematikk?

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder

Læringsmål og pensum. Algoritmeeffektivitet

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Velkommen til MAT1030!

MAT1030 Diskret Matematikk

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Søk i tilstandsrom. Backtracking (Kap. 10) Branch-and-bound (Kap. 10) Iterativ fordypning. Dijkstras korteste sti-algoritme A*-søk (Kap.

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

MAT1030 Diskret matematikk

Del A: Diskret optimering og heuristiske metoder Leksjon 3

INF Algoritmer og datastrukturer

Longest. increasing. subsequence. Betingelser. Matrise- common. Grådig vs. DP. Forside. Intro. Fibonacci-tall. Memoisering DP

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Vi som skal undervise. MAT1030 Diskret matematikk. Hva er diskret matematikk? Hva er innholdet i MAT1030?

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

7) Radix-sortering sekvensielt kode og effekten av cache

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Del 4 Noen spesielle C-elementer

MAT1030 Plenumsregning 1

MAT1030 Diskret matematikk

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

Kapittel 3: degenerasjon.

MAT1030 Diskret matematikk

Dynamisk programmering Undervises av Stein Krogdahl

NP-komplett, hva nå?

Hvordan løse problemer med programmering?

Oppgave 1 - Linux kommandolinje (%)

Sensitivitet og kondisjonering

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

LP. Leksjon 3. Kapittel 3: degenerasjon.

Longest increasing. subsequence Betingelser. Longest. common subsequence. Knapsack Grådig vs. DP Moro: 2D-Nim Spørsmål. Forside. Repetisjon.

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen

Øvingsforelesning 5 Python (TDT4110)

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Pensum: fra boken (H-03)+ forelesninger

Steg 1: Regneoperasjoner på en klokke

FASIT/LF FOR EKSAMEN TMA4140, H07

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Hashing: Håndtering av kollisjoner

Dynamisk programmering

Øvingsforelesning 3 Python (TDT4110)

Rekursiv programmering

Øvingsforelesning 5 Python (TDT4110)

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

HØGSKOLEN I SØR-TRØNDELAG

Transkript:

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