Overview Heuristic search Combinatorial optimization Local search and simulated annealing Population-based search Principles and methods Pål Sætrom Traveling sales person (TSP) Combinatorial optimization Trondheim Bergen Stavanger Tromsø Oppdal Oslo Cities 0 0 0 Routes 0 0 > 0 0 > 0 Best solution - target function Discrete solutions Examples: Traveling sales person Minimum vertex cover Shortest superstring Most descriptive regular expression Kristiansand Minimum vertex cover Minimum # nodes connected to all edges Target function and optimization Energy landscape as useful analogy Minimize potential energy (mh)
Optimization Solution space, C Target function (cost), c(.) Problem: * min c( S ) * S! C Optimization - Solution sketch. Chose a state as a working solution. Choose a neighbor state. Use the neighbor state as the new working solution. Go to S! C S! N( S) = { S : S S } S = S How to define neighborhoods ()? How to choose neighor states? Minimal vertex cover Graph G=(V, E) Solution space: All vertex covers Ex: V! C Target function: c ( S) = S Neighborhood: S S iff S = S +- one node Max V neighbor solutions Vertex cover gradient descent How to choose neighbor states?. Choose a state S as working solution. Choose a neighbor state min c( S ) S!N ( S ). Terminate with S if c(s) c(s ). Set the neighbor state as new working solution and go to Solution properties? Vertex cover gradient descent as energy landscapes Improving gradient descent/hill climbing (GD/HC) Variants in neighbor choice Choose first neighbor state c(s ) c(s) Choose random neighbor state c(s ) c(s) Try different start states. Choose random start state. Run gradient descent. Save best solution Random-restart GD/HC
Escaping local minima? Escaping local minima - the materials science approach Annealing materials Material with internal stress (atoms in high energy states). Heat (atoms move freely). Cool (atoms find low-energy configurations) Important factors? Simulating the states of a physical system? Statistical mechanics: State, S Energy of state, E(S) Temperature, T Gibbs-Boltzmann function: Probability of finding a physical system in state S, P(S) Properties of the Gibbs-Boltzmann function!e /(kt ) e kt =00 kt =0 kt = P( S) e What does this say?! E( S )/( kt ) E kt = 0. Metropolis alg. simulates physical system at given temperature. Choose a state S as working solution. Choose a random neighbor state S. if E(S ) E(S). Update S S. else. ΔE = E(S ) - E(S). Update S S with probability. Go to e "!E /(kt ) Downhill GD/HC? Metropolis algorithm biased towards low-energy states Let the ratio of steps MA is in S during the t first steps be f S (t) # E( S )/( kt ) Set Z =! e S" C Then! E( S )/( kt ) lim fs ( t) = e t#" Z Over time, the Metropolis algorithm will spend most time in low-energy states
- - 0 x - - 0 Metropolis i practice / / Energy landscapes and temperatures Høy temperatur kt =00 kt =0 Lav temperatur!e /(kt ) e kt = kt = 0. E Energy landscapes and temperatures High temperature all states have equal probability Molten material Low temperature Minimum-states most probable Crystal structure Quick change from high to low temperature Stochastic gradient descent Local minima Imperfect crystal structure (or glass) Simulated annealing for optimization Grow crystals:. Melt. Cool slowly Simulated annealing: Start Metropolis algorithm on high temp Reduce temp as function of iterations (annealing schedule) T =! (i ) Simulated annealing. Choose a state S as working solution. Choose a random neighbor state S. Update temperature. if E(S ) E(S). Update S S. else. ΔE = E(S ) - E(S). Update S S with prob.. Go to e "!E /(kt ) Downhill GD/HC Uphill Out of local 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(x) 0 * 0.^x (x) 0 0 0 0 g = 0. g = 0. log 0 x 00 000
Simulert størkning og TSP 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) T =. α =.0 T = 0. α =.0 T = 0. α =. T = 0.0 α = 0. Naboskap påvirker løsbarhet Energilandskap for naboskap Naboskap i TSP Reverser en del av turen Reverser en del av turen Reverser etterfølgende par Bytt to tilfeldige byer Energilandskap? 0 0 0 Energilandskap for naboskap Reverser etterfølgende par Energilandskap for naboskap Bytt to tilfeldige byer 0 0 0 0
Gradient descent, metropolis og simulert størkning Tabu-søk 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 Hvordan hindre tilbakefall til suboptimale løsninger? 0 Tabu-søk Elementer så langt Hvordan hindre tilbakefall til suboptimale løsninger? Husk tidligere tilstander! Tabu-søk husker siste n tilstander Velger alltid beste løsning i N(S) Minnet (Tabu-listen) hindrer sykler med maks n elementer 0 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 velge nabotilstander? Parallel random-restart GD/HC min c( S ) S!N ( S ) Igjen: naturen som inspirasjonskilde Charles Darwin Evolusjon -> naturens optimaliseringsmetode Hvordan definere naboskap ()? Hvordan velge nabotilstander?
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) 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 = S = S = S = S = Crossover punkt Crossover punkt 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 Pragmatiske løsninger Valg av nabotilstand viktig Definisjon av nabolag Valg av tilstand i nabolaget No free lunch Alle metaheuristikker er i gjennomsnitt like gode Ytelse og valg av nabotilstand henger sammen 0 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 )