Heuristisk søk Prinsipper og metoder
Oversikt Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk
Traveling sales person (TSP) Tromsø Bergen Stavanger Trondheim Oppdal Oslo Byer 7 0 0 0 Ruter 70 6 880 >0 >0 7 0 Kristiansand
Kombinatorisk optimering Beste løsning - målfunksjon Diskrete løsninger Eksempler: Traveling sales person Permutasjon av nodene Minimum vertex cover Subsett av nodene Shortest superstring Permutasjon av strengene i et sett Mest deskriptive regulære uttrykk Parsetre
Minimum vertex cover Minste antall noder bundet til alle kanter 9 6 8 7 6
Målfunksjon og optimalisering Energilandskap som nyttig analogi Minimering av potensiell energi (mh) Smelting og størkning av materialer Krystallstruktur (Globalt optimum) Glass (Lokalt optimum)
Optimalisering Løsningsrom, C Målfunksjon (kostnad), c(.) Problem: min c( S * S C * )
Optimalisering - Løsningsskisse. 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 vertex cover Graf G=(V, E) Løsningsrom: Alle vertex covers Eks: V C Målfunksjon: c ( S) = Naboskap: S ~ S hvis S = S +- en node Max V naboløsninger S 6
Vertex 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 )
Vertex cover gradient descent som energilandskap 6 8 9 7 6
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
Hvordan unslippe lokale minima? ~ ~
Hvordan simulere tilstanden i et Statistisk mekanikk: Tilstand, S fysisk system? 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 )
Egenskaper ved Gibbs-Boltzmann funksjonen kt kt =00 =0 e E /(kt ) kt = kt = 0. E
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
Metropolis algoritmen har bias mot lavenergitilstander La andelen steg MA er i S i løpet av de t førstestegvære (t) Sett Da vil lim t f S Z ( t) = = Z S C e e Over lang tid vil Metropolis algoritmen bruke mest tid i lavenergitilstander f S E( S )/( kt ) E( S )/( kt )
Metropolis i praksis 6 ~ 6 ~ 6 ~ ~ 6 / / 6 6
- - 0 Energilandskap og temperatur Høy temperatur Lav temperatur kt kt =00 =0 E /(kt ) e kt = kt = 0. E
Energilandskap og temperatur 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)
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 6. 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 T τ 0 ( i) = log( + i) Suboptimal størkning brukes i praksis τ ( i) = T g, g < 0 i 0 g = 0.99 6 g = 0.9 log 0 0 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)) α. (i gjennomsnitt) Simulert størkning Tilstand S: Permutasjon av {,, N}, S=s s N Naboskap: Reverser en del av turen S Eks: S = 6789,S = 6789;S = 6789
Simulert størkning og TSP T =. α =.067 T = 0.8 α =. T = 0. α =.0 T = 0.0 α = 0.789
Naboskap påvirker løsbarhet Naboskap i TSP Reverser en del av turen Reverser etterfølgende par Bytt to tilfeldige byer Resten 0 Energilandskap? 9 8 7 6
Energilandskap for naboskap Reverser en del av turen Resten Resten 0 ~ 0 9 9 8 8 7 7 6 6
Energilandskap for naboskap Reverser etterfølgende par Resten Resten 0 ~ 0 9 9 8 8 7 7 6 6
Energilandskap for naboskap Bytt to tilfeldige byer Resten Resten 0 ~ 0 9 9 8 8 7 7 6 6
Gradient descent, metropolis og simulert størkning 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 Hvordan hindre tilbakefall til suboptimale løsninger? Resten 0 9 6 8 7
Tabu-søk Hvordan hindre tilbakefall til suboptimale løsninger? Resten Husk tidligere tilstander! 0 Tabu-søk husker siste n tilstander 9 8 Velger alltid beste løsning i N(S) Minnet (Tabu-listen) hindrer sykler med maks n elementer 6 7
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 S N ( S ) c( 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 Viktig element mangler!
Genetisk variasjon Avkom ikke nøyaktig kopi Mutasjoner (endring av individs arvestoff) Rekombinasjon (kombinasjon av to individs arvestoff) Crossover punkt Crossover punkt
Genetisk variasjon definerer naboskap 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 = 6789 S = 7689 S = 6789 S = 9876 S = 9876
Seleksjon definerer valg av naboer 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 Basisalgoritme Velg en tilstand som arbeidsløsning Velg en nabotilstand Sett nabotilstanden som ny arbeidsløsning Gå til
Heuristisk søk og optimalisering Valg av nabotilstand viktig Definisjon av nabolag Valg av tilstand i nabolaget Resten No free lunch Alle metaheuristikker er i gjennomsnitt like gode Ytelse og valg av nabotilstand henger sammen 9 0 8 7 6
Pragmatiske løsninger