Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 8. Simulované ochlazování Simulated Annealing, SA princip, fyzikální analogie formulace algoritmu vlastnosti způsob použití vývoj příklad
Lokální minimum hodnota optimalizačního kritéria lokální minimum: všechny sousední stavy mají horší hodnotu optimalizačního kritéria spojovací čáry jen pro názornost globální minimum kroky iterativní heuristiky 2
Správný průběh iterativní heuristiky hodnota optimalizačního kritéria různá počáteční řešení stejně kvalitní výsledná řešení kroky iterativní heuristiky 3
Uváznutí v lokálních minimech hodnota optimalizačního kritéria různá počáteční řešení zastavení v lokálních minimech kvalita výsledného řešení silně závisí na kvalitě počátečního řešení kroky iterativní heuristiky 4
Řízení úniku z lokálních minim velká ochota připustit tah, který vede k horšímu řešení malá ochota připustit tah, který vede k horšímu řešení rovnoměrný průzkum stavového prostoru konvergence k finálnímu řešení diversifikace intensifikace 5
Počátky analogie N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller: Equation of state calculation by fast computing machines. J. of Chem. Phys, 21(1953), 1087-1091 S. Kirkpatrick, C. D. Gellat, M. P. Vecchi: Optimization by simulated annealing. Science, 220(1983), 671-680 V. Černy, A thermodynamical approach to the travelling salesman problem: an efficient simulation algorithm. J. of Optimization Theory and Applications, 45(1985), 41-55 6
Tuhnutí taveniny vysoká teplota velká kinetická energie molekul kapalné skupenství opatrné chlazení velké krystaly nízká celková vazebná energie systému prudké chlazení malé krystaly vysoká celková vazebná energie systému nízká teplota vazebné síly převáží pevné skupenství krystalická stavba 7
Analogie stav systému změna stavu energie systému krystalický stav kinetická energie molekul teplota řešení přechod k sousednímu řešení optimalizační kritérium heuristické řešení ochota k přechodu do horšího stavu řídící parametr 8
Formulace simulovaného ochlazování
počáteční stav Ø best state = Ø? ne ano stop ()? ne ano state Jednoduchá lokální heuristika state.solution() and state.better (best) ne ano state state best best= Ø? ne ano try (state) řešení neexistuje nebo je neznáme řešení je best 10
Prohledávání okolí pro metodu prvé zlepšení try (state) randomizace q new = q (state)) new.solution() and new.better (state) ano ne return Ø poznáme-li, kdy jsou vyčerpána všechna q return new 11
Prohledávání okolí pro simulované ochlazování try (state, T) zvol náhodně q new = q (state) new.better (state) ne ano Předpoklady: minimalizční problém s řešení q(s) řešení return new =new.cost()-state.cost() x=random(0,1) x<exp(- /T)? ne ano return state return new 12
Prohledávání okolí pro simulované ochlazování try (state, T) zvol náhodně q náhodný soused new = q (state) new.better (state) ne ano =new.cost()-state.cost() x=random(0,1) x<exp(- /T)? ne ano přijmout, je-li lepší return new je-li horší... return new return state 13
Rozhodování v případě, že nový stav je horší Předpoklady:minimalizční problém =new.cost()-state.cost() x=random(0,1) x<e - /T? ne ano rozdíl opt. kritéria pravděpodobnost p new return new return state 0 p new 1 nepatrné zhoršení se přijme vždy p new 0 velké zhoršení se přijme zřídka T 0 p new 0 při nízké teplotě se zhoršení přijmou s malou pravděpodobností T p new 1 při vysoké teplotě se přijmou i velká zhoršení 14
počáteční stav state počáteční stav best počáteční teplota T Simulované ochlazování frozen (T, )? ne ano equilibrium ( )? ne ano heuristické řešení je best state try (state, T) state.better (best) ne ano state best T=cool(T, ) 15
Vlastnosti simulovaného ochlazování
Jak to funguje? Počáteční stav řešení z jiné (konstruktivní) heuristiky náhodná řešení Vysoké teploty velká pravděpodobnost přijetí horšího řešení převaha diverzifikace Nízké teploty konvergence k minimu převaha intenzifikace děkuju, docela pěkně 17
Teoretická analýza (Hajek) pro funkci cool() ve tvaru t k = c log(1+k) kdo to má vědět? k číslo kroku c hloubka lokálního minima proces po nekonečném počtu kroků skončí v globálním minimu (asymptotická konvergence) 18
Způsob použití simulovaného ochlazování
Co je třeba vymyslet počáteční teplota cool(t, ) frozen(t, ) equilibrium( ) rozvrh ochlazování předem daný nebo řízený zpětnou vazbou stavový prostor (operace) optimalizační kritérium počáteční řešení jako obvykle u lokálních iterativních heuristik 20
Teplota je parametr =new.cost()-state.cost() x=random(0,1) x<exp(- /T)? změníme metodu cost() tak, aby cenu vracela v haléřích místo v korunách měli bychom dostat stejné výsledky k tomu také T musí být 100 větší 21
Rozvrh ochlazování cool (T) = at, 0,8 < a < 0,999 souvisí s ostatními parametry rozvrhu equilibrium(): pevný počet kroků N N přijatých nebo 2N kroků brání příliš pomalému chlazení při nízkých teplotách souvisí s cool(t) 22
Souvislost cool() a equilibrium() Dáno: počáteční teplota T p koncová teplota T k celkový počet iterací s T(x) T p.a x/n teplota v čase x T k Měníme: délku ekvilibria N T p.a s/n koncová teplota T(x) T p T k T p x/s nezávisle na N 23
Ochlazování při konstantních T k, T p, s T p T k s 24
Počáteční teplota Známe hloubku lokálních minim nastavíme teplotu tak, aby pravděpodobnost úniku z minima byla např. 0,5 Zpětnovazební řízení rychle zvyšujeme teplotu sledujeme četnost přijatých změn k horšímu zaznamenáme teplotu pro pravděpodobnost např. 0,5 vrátíme původní stav a nastavíme teplotu 25
frozen() Četnost změn (jakýchkoli) klesla pod nastavenou mez Pevná mez teploty 26
Co je třeba vymyslet počáteční teplota cool(t, ) frozen(t, ) equilibrium( ) rozvrh ochlazování předem daný nebo řízený zpětnou vazbou stavový prostor (operace) optimalizační kritérium počáteční řešení jako obvykle u lokálních iterativních heuristik 27
Technika relaxace Co když nemohu zabránit, aby q(s) převedla řešení na konfiguraci, která řešením není? Obecný problém iterativních heuristik Relaxace přirážka k optimalizačnímu kritériu (pokud lze spočítat) odhadnout vzdálenost od řešení a použít místo optimalizačního kritéria Jiná řešení zahodit opravit, např. některou z jednoduchých heuristik 28
Relaxace a dosažitelnost stavový prostor řešení 29
Stavový prostor Randomizovaný algoritmus stavového prostoru statistické vlastnosti Vzájemná dosažitelnost stavů, přibližně stejná Výpočet náhodného souseda a optimalizačního kritéria nejčastější operace, zjednodušit, i za cenu relaxace Hajekuv výsledek vliv hloubky minim na činnost algoritmu nepřidělávat algoritmu práci zbytečně divokým optimalizačním kritériem 30
Počáteční řešení Náhodná počáteční řešení vícenásobné spuštění měření iterativní síly dobře aplikované simulované ochlazování není závislé na počátečním řešení těžiště práce v iteracích Konstruktivní počáteční řešení chytrá konstruktivní fáze hluboké lokální minimum alespoň nějaké minimum 31
Vymysleli jsme počáteční teplota cool(t, ) frozen(t, ) equilibrium( ) rozvrh ochlazování předem daný nebo řízený zpětnou vazbou stavový prostor (operace) optimalizační kritérium počáteční řešení jako obvykle u lokálních iterativních heuristik 32
Je to dobře? Vývoj SA heuristik Použitelnost v celém rozsahu zamýšlené aplikace bez ručních zásahů dostatečný soubor zkušebních úloh, generátory hodnocení zkušebních úloh úloha vizualizace podoba řešení vývoj optimalizačního kritéria vývoj heuristiky a vývoj jejích adaptačních mechanismů 33
Příklad použití
Floorplanning Obdélníkové moduly se zadanou plochou, ale volitelným poměrem výška/šířka (v jistých mezích) Poskládat do obdélníka s minimální plochou Rozložení jednotek integrovaného obvodu Volíme omezení: tzv. řezové plány 5 3 1 2 4 35
5 5 3 1 2 4 4 1 2 3 V M1 V V H V H H H 1 2 3 4 5 1 2 4 3 5 36
5 5 3 1 2 4 3 1 2 4 V M2 V V H V H H V 1 2 3 4 5 1 2 3 4 5 37
5 3 1 2 4 3 1 2 5 4 V M3 V H V H H H V 1 2 3 4 5 1 2 3 4 5 38
Stavový prostor Všechny stavy jsou vzájemně dosažitelné (každá operace je pro to nutná) Vzájemná dosažitelnost je stejná (každý tah má svou inverzi, mezi každým párem stavů je možno přejít oběma směry) 39
Aplikace SA Počáteční teplota: pravděpodobnost přijetí průměrného zhoršení : p 0 1 Provést několik záměn, spočítat Ekvilibrium: N zlepšení nebo 2N kroků, kde N n t k = 0,85 t k-1 Frozen: méně než 5% přijatých T 0 = - ln p0 40
Alternativní rozvrhy ochlazování Žíhání nefunguje! 41
Kombinace a alternativy SA alternativní pravděpodobnostní fce (profiling, čas pro exp(x)) jediná teplota (závislá na instanci) kombinace s metodou pouze nejlepší 42
Paralelizace Ustálení při dané teplotě, různé nastavení generátoru pseudonáhodných čísel Více náhodných sousedů zbytečné při vysokých teplotách dublování při nízkých teplotách přepnout Společná paměť, paralelní zápis mezivýsledků 43