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



Like dokumenter
Heuristisk søk 1. Prinsipper og metoder

Overview. Heuristic search 1. Target function and optimization. Minimum vertex cover

Oversikt. Branch-and-bound. Hvordan løse NP-hard kombinatorisk optimering? Eks: Eksakt Min Vertex cover. Mulige løsninger representert som søketre

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, ordinær eksamen

Heuristiske søkemetoder II

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

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2001, ordinær eksamen

INF-MAT Geir Hasle - Leksjon 3 2

INF-MAT-5380

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

!"!#$ INF-MAT Geir Hasle - Leksjon 2 2

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, ordinær eksamen

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP

INF-MAT-5380

INF-MAT-5380

INF-MAT

Korteste vei problemet (seksjon 15.3)

NP-komplett, hva nå?

Styrt lokalsøk (Guided Local Search, GLS)

TMA4140 Diskret Matematikk Høst 2016

Discrete Optimization Methods in Maritime and Road-based Transportation

Genetiske interaksjoner villfisk-oppdrettsfisk

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet

Matematisk evolusjonær genetikk (ST2301)

INF-MAT-5380

Styrt lokalsøk (Guided Local Search, GLS)

Hybrid med lokalsøk: Memetic algorithms

LO118D Forelesning 10 (DM)

Øving 12, ST1301 A: B:

Mer om Markov modeller

IN Algoritmer og datastrukturer

TDT4105 Informasjonsteknologi, grunnkurs

Genetiske interaksjoner mellom vill og oppdrettet laks

Heuristiske søkemetoder III

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

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

Maks Flyt og NPkompletthet

Kompleksitet og Beregnbarhet

FLERVALGSOPPGAVER EVOLUSJON

INF Algoritmer og datastrukturer

Søking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014

Turingmaskiner.

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

Løsningsforslag ST2301 Øving 11

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Ikke lineære likninger

Heuristiske søkemetoder I

Epost: Tlf. SINTEF Mob

Kulturell seleksjon. Hva er det og innebærer det et eget prinsipp for seleksjon?

Løsningsforslag øving 12, ST1301

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

INF-MAT-5380

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

Evolusjonens tvangstrøyer

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

LO118D Forelesning 12 (DM)

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

Løsningsforslag for utvalgte oppgaver fra kapittel 9

INF Algoritmer og datastrukturer

!!!" " # $ Leksjon 1

Navigering av en mobil mikrorobot

NP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig»

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

Eksamen - INF 283 Maskinlæring

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

MAT1030 Forelesning 25

MAT1030 Diskret Matematikk

Korteste Vei I. Lars Vidar Magnusson Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

Prosjektoppgaver om diusjonsprosesser og diusjonstilnærmelse

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

INF Algoritmer og datastrukturer

MAT1030 Diskret Matematikk

INF Algoritmer og datastrukturer

Populasjonsgenomikk på torsk -et verktøy for identifisering av viktige genomiske regioner for oppdrettsnæringen.

UNIVERSITETET I AGDER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

AVL MOT ILA. FHFs ILA workshop Borghild Hillestad April 2017

MAT1030 Forelesning 22

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

LP. Leksjon 8: Kapittel 13: Nettverk strøm problemer, forts.1

IN Algoritmer og datastrukturer

Grafalgoritmer: Korteste vei

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

INF-MAT-5380

INF Algoritmer og datastrukturer

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Stein Krogdahl, Dino Karabeg, Petter Kristiansen. Kenneth A. Berman and Jerome L. Paul.

Problemer knyttet til seleksjon

LEKSJON 4: BIOTEKNOLOGI HVORDAN VI BRUKER NATURENS EGNE MEKANISMER TIL VÅR FORDEL, OG UTFORDRINGENE SOM FØLGER MED

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda

Prosjektoppgaver om diusjonsprosesser og diusjonstilnærmelse

MAT1030 Forelesning 22

Transkript:

Oversikt Heuristisk søk Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk Prinsipper og metoder Pål Sætrom Traveling sales person (TSP) Kombinatorisk optimering Trondheim Bergen Stavanger Tromsø Oppdal Oslo Byer 0 0 0 Ruter 0 0 > 0 0 > 0 Beste løsning - målfunksjon Diskrete løsninger Eksempler: Traveling sales person Permutasjon av nodene Minimum verte cover Subsett av nodene Shortest superstring Permutasjon av strengene i et sett Mest deskriptive regulære uttrykk Parsetre Kristiansand

Minimum verte cover Minste antall noder bundet til alle kanter Målfunksjon og optimalisering Energilandskap som nyttig analogi function() ^ - * ( + 0.)^ () - - - 0 function() ^ + * sin( * pi) () 0 0 0 0 0 00-0 - 0 0 - - 0 Minimering av potensiell energi (mh) Smelting og størkning av materialer Krystall - repeterte strukturer (Globalt optimum) Glass - lokale strukturer (Lokalt optimum) Optimalisering Optimalisering - Løsningsskisse Løsningsrom, C Målfunksjon (kostnad), c(.) Problem: * min c( S ) * S! C. Velg en tilstand som arbeidsløsning. Velg en nabotilstand. Sett nabotilstanden som ny arbeidsløsning. Gå til S! C S! N( S) = { S : S ~ S } S = S Hvordan definere naboskap (~)? Hvordan velge nabotilstand?

Minimal verte cover Graf G=(V, E) Løsningsrom: Alle verte covers Eks: V! C Målfunksjon: c ( S) = S Naboskap: S ~ S hvis S = S +- en node Ma V naboløsninger Verte cover gradient descent Hvordan velge nabotilstand?. Velg en tilstand S som arbeidsløsning. Velg en nabotilstand min c( S ) S!N ( S ). Terminer med S hvis c(s)! c(s ). Sett nabotilstanden som ny arbeidsløsning og gå til Løsning et lokalt minimum: c(s)! c(s ) Verte cover gradient descent som energilandskap function() ^ - * ( + 0.)^ () - - - 0 - - 0 function() ^ + * sin( * pi) () 0 0 0 0 0 00-0 - 0 0 Forbedringer av gradient descent/hill climbing (GD/HC) Varianter i nabovalg Velg første nabotilstand c(s )! c(s) Velg tilfeldig nabotilstand c(s )! c(s) Prøv forskjellige starttilstander. Velg tilfeldig starttilstand. Kjør gradient descent. Ta vare på beste løsning! Random-restart GD/HC function() ^ - * ( + 0.)^ () - - - 0 - - 0

Hvordan unslippe lokale minima? ~ ~ function() ^ - * ( + 0.)^ () - - - 0 Hvordan simulere tilstanden i et fysisk system? Statistisk mekanikk: Tilstand, S Energi til tilstand, E(S) Temperatur, T Gibbs-Boltzmann funksjonen: Sannsynlighet for å finne et fysisk system i tilstand S, P(S) P( S) ~ e! E( S )/( kt ) - - 0 Egenskaper ved Gibbs-Boltzmann funksjonen!e /(kt ) e E kt =00 kt =0 kt = kt = 0. Metropolis algoritmen simulerer fysisk system ved gitt temperatur. Velg en tilstand S som arbeidsløsning. Velg en tilfeldig nabotilstand S. if E(S )! E(S). Oppdater S " S. else.!e = E(S ) - E(S). Oppdater S " S med sannsynlighet. Gå til e "!E /(kt ) Downhill GD/HC Uphill Ut av lokale minimum

function() ^ - * ( + 0.)^ () - - 0 - - 0 - - 0 Metropolis algoritmen har bias mot lavenergitilstander La andelen steg MA er i S i løpet av de t første steg være (t) Sett Da vil lim f t#" S Z =! S" C ( t) = e Z e!over lang tid vil Metropolis algoritmen bruke mest tid i lavenergitilstander f S # E( S )/( kt )! E( S )/( kt ) ~ function() ^ - * ( + 0.)^ () - - - 0 Metropolis i praksis ~ ~ ~ / / - - 0 Energilandskap og temperatur Energilandskap og temperatur!e /(kt ) e Høy temperatur - - - 0 function() ^ - * ( + 0.)^ () - - - 0 function() ^ - * ( + 0.)^ () - - - 0 function() ^ - * ( + 0.)^ () kt =00 kt =0 kt = - - - 0 Lav temperatur - - 0 Høy temperatur alle tilstander like sannsynlige Smeltet materiale Lav temperatur minimumstilstandene mest sannsynlige Krystallstruktur Rask endring fra høy til lav temperatur Stokastisk gradient descent Lokale minima Imperfekt krystallstruktur (eller glass) kt = 0. E

Simulert størkning for optimalisering Krystalldyrkning i praksis:. Smelt. Avkjøl langsomt Simulert størkning: Start Metropolis algoritmen på høy temp Reduser temperaturen som funksjon av iterasjonene (annealing schedule) T =! (i ) Simulert størkning. Velg en tilstand S som arbeidsløsning. Velg en tilfeldig nabotilstand S. Oppdater temperaturen. if E(S )! E(S). Oppdater S " S. else.!e = E(S ) - E(S). Oppdater S " S med sannsynlighet. Gå til e "!E /(kt ) Downhill GD/HC Uphill Ut av lokale minimum Simulert størkning konvergerer mot globalt optimum Langsom størkning gir globalt optimum T0! ( i) = log( + i) Suboptimal størkning brukes i praksis! ( i) = T0 g, g < i function() 0 * 0.^ () 0 0 0 0 g = 0. g = 0. log 0 0 00 00 000 Simulert størkning og TSP N byer i kvadrat med sidelengder N / Gjennomsnittelig avstand til nærmeste nabo uavhengig av N Gjennomsnittelig steglengde # uavhengig av N Heuristikk Gå til nærmeste by gir # = O(ln(N)) # $. (gjennomsnitt i praksis) Simulert størkning Tilstand S: Permutasjon av {,, N}, S=s s N Naboskap: Reverser en del av turen S Eks: S =,S = ;S = # <= 0. (N < 000)

Simulert størkning og TSP Naboskap påvirker løsbarhet T =. # =.0 T = 0. # =. Naboskap i TSP Reverser en del av turen Reverser etterfølgende par Bytt to tilfeldige byer 0 Energilandskap? T = 0. # =.0 T = 0.0 # = 0. Energilandskap for naboskap Energilandskap for naboskap Reverser en del av turen Reverser etterfølgende par function() ^ - * ( + 0.)^ () - - - 0 - - 0 0 ~ 0 0 ~ 0

Energilandskap for naboskap Gradient descent, metropolis og simulert størkning Bytt to tilfeldige byer 0 ~ 0 function() ^ - * ( + 0.)^ () - - - 0 - - 0 Algoritme:. Velg en tilstand som arbeidsløsning. Velg en nabotilstand. Sett nabotilstanden som ny arbeidsløsning. Gå til Gradient descent Velg bedre nabo Metropolis + Velg dårligere nabo avhengig av temperatur og endring i kostnad Simulert størkning + Senk temperaturen Tabu-søk Tabu-søk Hvordan hindre tilbakefall til suboptimale løsninger? Hvordan hindre tilbakefall til suboptimale løsninger? 0! Husk tidligere tilstander! 0 Tabu-søk husker siste n tilstander Velger alltid beste løsning i N(S) Minnet (Tabu-listen) hindrer sykler med maks n elementer

Elementer så langt Iterer over enkelttilstander basert på naboskap Gå til bedre tilstand Aksepter dårligere tilstand Husk/unngå tidligere tilstander Se på flere løsninger!hva med å iterere over multiple tilstander samtidig? Populasjonsbaserte optimaliseringsmetoder. Velg et sett av tilstander som arbeidsløsning. Velg et sett av nabotilstander. Sett nabotilstandene som ny arbeidsløsning. Gå til { S}, S! C { S }, S! N( S) = { S : S ~ S } { S } = { S } Hvordan definere naboskap (~)? Hvordan velge nabotilstander? Hvordan velge nabotilstander? Parallel random-restart GD/HC min c( S ) S!N ( S ) Igjen: naturen som inspirasjonskilde Charles Darwin Evolusjon -> naturens optimaliseringsmetode Evolusjon som optimalisering Konkurranse om begrensede ressurser Arvelige egenskaper i en populasjon Organismer får mer avkom enn ressursgrunnlag Avkom har varierende evner til å overleve og reprodusere -> Fitness!Nyttige egenskaper har større sjanse for å føres videre

Evolusjon som optimaliseringsmetode Tilstandsbeskrivelse som arvelig egenskap -> gen Begrenset populasjonsstørrelse Overlevelsesevne gitt av målfunksjon -> fitness Genetisk variasjon Avkom ikke nøyaktig kopi Mutasjoner (endring av individs arvestoff) Rekombinasjon (kombinasjon av to individs arvestoff) Viktig element mangler! Crossover punkt Crossover punkt Genetisk variasjon definerer naboskap Seleksjon definerer valg av naboer Eks: TSP Arvestoff (tilstand) Nodepermutasjon Mutasjon (naboskap) Segmentreversjon Crossover/rekombinasjon (naboskap) Behold noderekkefølge fram til crossoverpunkt fra foreldre Bruk noderekkefølge for gjenværende noder fra foreldre S = S = S = S = S = Overlevelsesevne gitt av målfunksjon Velg n løsninger (individ) proporsjonalt med løsningskvalitet (fitness) Velg n individ ved å velge beste individ fra n tilfeldige undergrupper

Evolusjonær algoritme. Lag en startpopulasjon {S 0 } = n (tilfeldig). Selekter n individ {S } fra {S i } (med tilbakelegging). Lag ny generasjon {S i+ } ved å rekombinere og mutere {S }. Gå til Varianter av evolusjonære algoritmer Genetiske algoritmer Genom -> Strenger Parameteroptimalisering Genetisk programmering Genom -> Symbolske uttrykk Optimale deskriptive uttrykk Heuristisk søk og optimalisering Heuristisk søk og optimalisering Basisalgoritme Velg en tilstand som arbeidsløsning Velg en nabotilstand Valg av nabotilstand viktig Definisjon av nabolag Valg av tilstand i nabolaget Sett nabotilstanden som ny arbeidsløsning Gå til No free lunch Alle metaheuristikker er i gjennomsnitt like gode Ytelse og valg av nabotilstand henger sammen 0

Pragmatiske løsninger Median streng problemet Gitt sett av strenger S, finn l-mer median streng Input: Sett S av strenger, og lengden l Output: En string v, v = l (l-mer) med minimal total Hamming distanse d H (v,s) av alle mulige l-mers d H (w,s) = S $ min " j " s i # w i= d H (w,s i, j )!