INF-MAT-5380

Like dokumenter
Del A: Diskret optimering og heuristiske metoder Leksjon 7

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

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

Heuristiske søkemetoder II

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

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

MAT1030 Plenumsregning 1

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

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

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

MAT1030 Diskret Matematikk

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

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP

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

MAT1030 Diskret matematikk

Læringsmål og pensum. Algoritmeeffektivitet

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

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

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

LP. Leksjon 3. Kapittel 3: degenerasjon.

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

Discrete Optimization Methods in Maritime and Road-based Transportation

MAT1030 Diskret Matematikk

Kapittel 3: degenerasjon.

Velkommen til MAT1030!

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

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

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

TDT4105 Informasjonsteknologi, grunnkurs

Del 4 Noen spesielle C-elementer

Newtons metode er en iterativ metode. Det vil si, vi lager en funksjon. F x = x K f x f' x. , x 2

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

INF Algoritmer og datastrukturer

Del A: Diskret optimering og heuristiske metoder Leksjon 3

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Oppsummering fra sist

MAT1030 Forelesning 25

Hva er en algoritme? Har allerede sett på mange algoritmer til nå i IT1101. Forholdet mellom en algoritme og et program. Algoritme program prosess

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

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

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

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

Dynamisk programmering

Sensitivitet og kondisjonering

7) Radix-sortering sekvensielt kode og effekten av cache

Hashing: Håndtering av kollisjoner

Biseksjonsmetoden. biseksjonsmetode. Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF /2-2011

LP. Leksjon 5. Kapittel 5: dualitetsteori. motivasjon det duale problemet svak og sterk dualitet det duale til LP problemer på andre former

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

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

Spesifikasjon av Lag emne

Newtons metode er en iterativ metode. Det vil si, vi lager en funksjon. F x = x K f x f' x

Oppgave 1 - Linux kommandolinje (%)

Forelesning Hurtigbuffer Kap 4.5

Hjemmeeksamen 2 i INF3110/4110

Tråder Repetisjon. 9. og 13. mai Tråder

LP. Leksjon 2. Kapittel 2: simpleksmetoden, forts. initialisering to faser ubegrenset løsning geometri

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO

Transkript:

INF-MAT-5380 http://www.uio.no/studier/emner/matnat/ifi/inf-mat5380/ Leksjon 7

GA - Oppsummering 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 2

Nye trender GA- Evolusjonsmetoder 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 3

Maurkolonioptimering for DOP - Ant Colony Optimization (ACO) 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 4

Maursystem (forts.) 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 5

Leksjon 6 - Oppsummering 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 6

Leksjon 7 - Oversikt 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 7

Konstruktive heuristikker 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 8

Enkleste multi-start metode Tilfeldig restart (Random Restart, RR) Lokalsøk (f. eks. med Steepest Descent) Iterasjon Tilfeldig startløsning Når virker RR bra? INF-MAT 5380 - Geir Hasle - Leksjon 7 9

Alternativ pseudokode Lokalsøk med Steepest Descent 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 10

Tilfeldig restart (Random Restart RR) 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 11

GRASP Greedy Randomized Adaptive Search Variant av Tilfeldig restart (RR) Konstruksjon med tilfeldighet Ligner Maurkoloni-optimering (ACO) Begrenset kandidatliste for utvidelse av del-løsning INF-MAT 5380 - Geir Hasle - Leksjon 7 12

GRASP 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 13

GRASP Randomized Construction Procedure Greedy_Randomized_Construction(...) solution := Empty_Solution() while not Complete(solution) do od Restricted_Candidate_List :=Evaluate_Incremental_Costs(solution) partial_solution:=extend_solution(solution,random_elem ent(restricted_candidate_list)) return solution INF-MAT 5380 - Geir Hasle - Leksjon 7 14

GRASP Restricted Candidate List 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 15

Squeaky Wheel Optimization 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 16

Squeaky Wheel Optimization 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 17

Variabelt nabolagssøk (VNS) 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, Kk Gjerne ordnet etter størrelse max INF-MAT 5380 - Geir Hasle - Leksjon 7 18

Variable Neighborhood Descent (VND) 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 19

Variable Neighborhood Search (VNS) 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 20

VNS Lokalsøk i VNS kan byttes ut med VND VNS er beregningskrevende for store instanser Redusert lokalsøk: VNDS Hybridisering Tabusøk GRASP... INF-MAT 5380 - Geir Hasle - Leksjon 7 21

Iterert lokalsøk 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ˆ INF-MAT 5380 - Geir Hasle - Leksjon 7 22

Iterert lokalsøk Prøver å iterere slik at vi unngår å restarte i samme Basin of attraction Gjør dette ved perturbasjon av beste løsning Diversifisering INF-MAT 5380 - Geir Hasle - Leksjon 7 23

Iterert lokalsøk 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 24

Itererert lokalsøk - Perturbasjon 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 25

Itererert lokalsøk 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 26

Kategorisering av metaheuristikker Individ vs. populasjon Probabilistiske vs. deterministiske Minneløse vs. minnerike Modifikasjon av kostnadsfunksjon Nabolagsbaserte vs. Multi-start baserte INF-MAT 5380 - Geir Hasle - Leksjon 7 27

Nabolagsbaserte vs. Multi-start baserte metaheuristikker Nabolagsbaserte Essensielt varianter av lokalsøk SA, TA (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 INF-MAT 5380 - Geir Hasle - Leksjon 7 28

GUT of Metaheuristics? Hvilke mekanismer virker? lokalsøk restart tilfeldighet oppoverflytt minne straff diversifisering populasjon... Hva med å lage en universell metaheuristikk? No free lunch -teoremet INF-MAT 5380 - Geir Hasle - Leksjon 7 29

No Free Lunch -teoremet (Wolpert & MacReady, 1995) 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. INF-MAT 5380 - Geir Hasle - Leksjon 7 30

GUT for metaheuristikker 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 31

Hyperheuristikker Metaheuristikker er ikke generelle Det fins ingen beste metaheuristikk No free lunch -teoremet Hyperheuristikker Generelle søketeknikker Basert på (meta)heuristikker Brukav(meta)heuristikkerfor åvelge (meta)heuristikk under søk bruker ikke domenekunnskap INF-MAT 5380 - Geir Hasle - Leksjon 7 32

Hyperheuristikker Hyperheuristikk Domenebarrière h1 h2 h3 h4 h5 h6 Evalueringsfunksjon INF-MAT 5380 - Geir Hasle - Leksjon 7 33

Hyperheuristikk Informasjon til hyperheuristikk fra hver (meta)heuristikk CPU-tid brukt Endring i objektfunksjon Effektivitet Hvor lenge siden er det siden heuristikken sist ble kalt INF-MAT 5380 - Geir Hasle - Leksjon 7 34

Hyperheuristikker Kvalifisert valg av heuristikk for å løse delproblem Læring under søk Probabilistisk valg av heuristikk Rulett-seleksjon INF-MAT 5380 - Geir Hasle - Leksjon 7 35

Leksjon 7 - Oppsummering 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 INF-MAT 5380 - Geir Hasle - Leksjon 7 36