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 )!