Przewodnik do przeszukiwania losowego inspiracje przyrodnicze Przyrodnicze (naturalne) algorytmy optymalizacji MC 1) teoria doboru naturalnego algorytmy genetycze wygląd owada zoptymalizowany na drodze przypadkowego krzyżowania genów oraz mutacji z mechanizmem selekcji lkjinaturalnej 2) wzrost i hodowla kryształów, metalurgia algorytm symulowanego wygrzewania
atom węgla: orbitale walencyjne 2p x,2p y,2p z węgiel tworzy kierunkowek wiązania kowalencyjne nieobsadzone miejsca na orbitalach +6e Stabilne formy węgla: każda lokalne minimum energii diament E wiązania (funkcja struktury układu)=e wiązania (10 23 położeń atomów) grafit E grafit diament
Wzrost kryształów jako proces optymalizacji E wiązania (funkcja struktury układu)=e wiązania (10 23 położeń atomów) metoda Czochralskiego hodowli likryształów zarodek krystaliczny niska T roztopiony materiał ciut powyżej temperatury topnienia wysoka T http://www.fkf.mpg.de
Wzrost kryształów jako proces optymalizacji E wiązania ( funkcja struktury układu)=e wiązania ( 10 23 położeń atomów) metoda Czochralskiego wzrostu kryształów zarodek roztopiony materiał nieco powyżej temperatury topnienia zarodek wolno wyciągany roztopiony materiał stygnie i powoli krystalizuje jeśli odpowiednio d wolno schładzany materiał krystalizuje w idealnej strukturze (o optymalnej energii wiązania) http://www.fkf.mpg.de jeśli zarodek zbyt szybko wyciągnięty: kryształ będzie złej jakości defekty [układ osiąga najbliższe minimum lokalne]
Struktura krystaliczna i defekty: dyslokacja krawędziowa Defekty powodują naprężenia wewnętrzne. Kryształ z defektami jest twardy. wakansja położenie międzywęzłowe energia kryształu dla usunięcia ę defektów (usunięcia ę naprężeń ę i zmiany twardości metalu) kryształ nagrzewa się do wysokiej temperatury, potem powoli schładza. Bariera energetyczna pokonana dzięki energii dostarczonej w formie ciepła. [proces odwrotny do hartowania stali] położen nie atomu przywrócenie idealnej struktury: wymaga pokonania bariery energetycznej
Metoda z symulacji mechaniki statystycznej układu o bardzo wielu stopniach swobody w równowadze termicznej z otoczeniem algorytm Metropolisa. Kirkpatrick algorytm Metropolisa do optymalizacjizłożonych złożonych problemów Symulowane wygrzewanie (simulated annealing) Kirkpatrick, Science 220 671 1983 praca wykonana w IBM przy optymalizacji fizycznego projektowania układów scalonych) Pomysł: optymalizacja funkcji wielu zmiennych naśladująca proces usuwania defektów z kryształu. usuwanie defektów: optymalizacja energii wiązania w funkcji położeń wielkiej liczby atomów. Idealne optimum osiągane, gdy układ powoli schładzany (tak aby zachowana chwilowo równowaga termiczna).
Zachowanie układów o dużej liczbie stopni swobody w równowadze termicznej ze zbiornikiem ciepła kilka informacji o równowadze termodynamicznej i temperaturze przyda się dla również dla symulacji transportu t ciepła ł (źródło: F. Riff Reiff Mechanika Statystyczna) kontakt termiczny
Zachowanie układów o dużej liczbie stopni swobody w równowadze termicznej ze zbiornikiem ciepła otoczenie układ E u E o kontakt termiczny
otoczenie układ E u E o kontakt termiczny całość izolowana = układ zamknięty
otoczenie układ E u E o kontakt termiczny całość izolowana = układ zamknięty E c=e u+e o (energia zachowana)
otoczenie układ E u E o kontakt termiczny E c niezależna od czasu całość izolowana = układ zamknięty E c=e u+e o (energia zachowana)
za F. Reiff Mechanika Statystyczna otoczenie układ E u E o kontakt termiczny E c niezależna od czasu ale E c =E u (t)+e o (t) układy wymieniają energię całość izolowana = układ zamknięty E c=e u+e o (zachowana) wymiana energii = w stanie równowagi [równe temperatury zbiorników] fluktuacje (uśredniające się do zera) = poza równowagą [różne temperatury] ukierunkowany transfer ciepła dla wyrównania temperatur (doprowadzenia do równowagi)
gorący dążenie do równowagi zimny otoczenie za F. Reiff Mechanika Statystyczna układ E u E o kontakt termiczny całość izolowana = układ zamknięty E c=e u+e o (zachowana) przekaz energii między układem gorącym i zimnym aż ż do osiągnięcia i i równowagi gorący zimny (np. blok lodu) (np. garnek z wrzątkiem) stany mikroskopowe gorącego i zimnego zbiornika
Ω(E) liczba stanów mikroskopowych układu (stan mikro położenia i prędkości cząsteczek), dla której energia zgromadzona w układzie wynosi E stan mikroskopowy o minimalnej energii jeden stanów mikro o większej energii znacznie więcej
Ω(E) liczba stanów mikroskopowych układu (stan mikro położenia i prędkości cząsteczek), dla której energia zgromadzona w układzie wynosi E stan mikroskopowy o minimalnej energii jeden stanów mikro o większej energii znacznie więcej założenie: każdy stan mikroskopowyjest równie prawdopodobny wtedy: pstwo, że realizowany dany stan makroskopowy = proporcjonalne do liczby stanów mikro odpowiadających danemu stanowi makro P(E u )=CΩ(E u )Ω (E c E u ) mniejszy podukład większy pstwo, że układ zawiera energię E u (że podział energii E u,e o =E c E u ) (inaczej: że układ w takim stanie makroskopowym, że u ma energię E u ) Ω(E) funkcja silnie rosnąca z E (oraz z rozmiarem układu) równowaga (jedna z definicji): stan najbardziej prawdopodobny
P(E u )=CΩ(E u )Ω (E c E u ) Ω(E) funkcja silnie rosnąca z E (oraz z rozmiarem układu) Ω E u E transfer energii (w formie ciepła) między u a o aż do osiągnięcia równowagi stan równowagi: maksymalne prawdopodobieństwo. Możliwe fluktuacje wokół wartości najbardziej prawdopodobnej.
P(E u )=CΩ(E u )Ω (E c E u ) Ω(E) funkcja silnie rosnąca z E (oraz z rozmiarem układu) jeśli P max to również log P max: poniżej na tej folii log = ln E o =E c E u Ω w równowadze (stan najbardziej prawdopodobny): E u E transfer energii (w formie ciepła) między u a o aż do osiągnięcia równowagi stan równowagi: maksymalne prawdopodobieństwo. Możliwe fluktuacje wokół wartości najbardziej prawdopodobnej.
P(E u )=CΩ(E u )Ω (E c E u ) Ω(E) funkcja silnie rosnąca z E (oraz z rozmiarem układu) jeśli P max to również log P max: poniżej na tej folii log = ln E o =E c E u Ω w równowadze (stan najbardziej prawdopodobny): E u E transfer energii (w formie ciepła) między u a o aż do osiągnięcia równowagi w równowadze: (def. temperatury) stan równowagi: maksymalne prawdopodobieństwo. Możliwe fluktuacje wokół wartości najbardziej prawdopodobnej. transfer ciepła napędzany gradientem T i dążący do jej wyrównania
w równowadze: układ bardzo mały w porównaniu z otoczeniem, z którym znajduje się w równowadze termicznej pytanie: jakiejestprawdopodobieństwo że pytanie: jakie jest prawdopodobieństwo, że układ ma energię E u : P(E u )?
w równowadze: układ bardzo mały w porównaniu z otoczeniem, z którym znajduje się w równowadze termicznej pytanie: jakiejestprawdopodobieństwo jest prawdopodobieństwo, że układ ma energię E u : P(E u )? E u <<E c, Ω<<Ω Ω Ω Taylor: czynnik Boltzmanna
N 1.0 0.8 0.6 0.4 exp(-e) exp(-e/10) 0.2 exp(-e*10) 0.0 0 2 4 6 8 10 E granica wysokiego T: układ może znaleźć się z równym prawdopodobieństwem przechowywać dowolnie wysoką energię znalezienie i układu w stanie o dużej ż energii jest prawdopodobne niska T układ będzie przechowywał minimalną wartość energii jeśli T bliskie zeru: znajdziemy go tylko w stanie o najmniejszej energii
Algorytm Metropolisa symulacja układu, który fluktuuje termicznie w równowadze z otoczeniem (zbiornikiem ciepła) kolejne kroki czasowe zmiany stanu mikroskopowego układu układ ma podlegać rozkładowi Boltzmana. N 1.0 0.8 0.6 0.4 exp(-e) exp(-e/10) 0.2 exp(-e*10) 0.0 0 2 4 6 8 10 E
Algorytm Metropolisa za S.Kooninem Układ opisany zbiorem zmiennych X=(x 1,x 2,x 3,...,x N ) punkt w wielowymiarowej przestrzeni chcemy zasymulować ć fluktuacje termiczne zmiennych, X 1 X 2 X 3 X 4 X 5 tak, żeby układ był w równowadze termicznej z otoczeniem o temperaturze T. prawdopodobieństwo tego, że na ścieżce fluktuacji pojawi się stan X p p g, j p j ę ma być dane przez zadany z góry rozkład w(x), u nas: Boltzmana w(x)= Cexp( E(X)/kT)
Algorytm Metropolisa X X p układ jest w stanie X. Do jakiego stanu przejdzie? wybieramy losowo stan próbny X p z pewnego otoczenia stanu X X p :X+(δx :=X+(δx 1,δx 2,...,δx n ) δx i losowane z przedziału [ d,d] d] z rozkładem równomiernym możliwości: 1) X p mniej prawdopodobne w(x) [rozkład pstwa] X X p 2) X p bardziej prawdopodobne w(x) X p X punkt mniej prawdopodobny akceptujemy z pstwem w(x p )/w(x) liczymy r=w(x p )/w(x) jeśli r 1 [ w(x p ) w(x) ] akceptujemy stan próbny X:=XX p zawsze akceptujemy bardziej prawdopodobny punkt jeśli r<1 [w(x p )<w(x) ] akceptujemy punkt próbny z prawdopodobieństwem r losujemy liczbę losową q z przedziału [0,1] jeśli q < r akceptujemy stan próbny X:=X p jeśli q r odrzucamy
punkty na ścieżce wygenerowanej algorytmem M. istotnie podlegają rozkładowi pstwa w(x): wyobraźmy sobie, że mamy wielu wędrowców poruszających się zgodnie z algorytmem Metropolisa X Y uwagę koncentrujemy na 2 stanach układu N(X) aktualna liczba wędrowców w punkcie X zmiana liczby wędrowców w Y w wyniku migracji z i do punktu X Δ = N(X)P(X Y) N(Y)P(Y X) w warunkach równowagi (bez zmian w średnim rozkładzie wędrowców N r (X) ) równowaga osiągana po odpowiednio dużej liczbie kroków algorytmu
równowaga w schemacie Metropolisa N=10 000 wędrowców. rozkład w(x)=c exp( 50x 2 ) niebieska linia łączypunkty dane kropki: liczba wędrowców w przedziale x dx/2, x+dx/2 dx=0.01 start: rozkład równomierny
Algorytm Metropolisa pozostaje pokazać, że N r (X) jest proporcjonalne do w(x) pstwo podjęcia próby (wylosowania Y jako p.próbnego) pstwo zaakceptowania próby losujemy ypunkty ypróbne z rozkładem równomiernym mamy 2 przypadki: w(x)>w(y) : A(Y X) = 1 A(X Y) =w(y)/w(x) co chcieliśmy zobaczyć w(x)<w(y) : A(X Y) = 1 A(Y X) =w(x)/w(y)
Kirkpatrick symulowane wygrzewanie w[e(x)]=cexp( E(X)/kT) alg. Metropolisa z modyfikacją rozkładu pstwa (T) w miarę działania algorytmu Algorytm symulowanego wyżarzania dla optymalizacji E(P) Wystartuj w punkcie P, ustaw wysoką temperaturę T Przesuń P losowo P =P+dP Nowy punkt akceptowany (P:=P ) zawsze gdy lepszy E(P )<E(P) (lepszy=bardziej prawdopodobny 1.0 wg.rozkładu B) 0.8 gdy E(P )>E(P) prawdopodobieństwo zaakceptowania punktu gorszego P dane przez np. 0.6 exp( (E(P (E(P ) E(P)) / kt) (rozkład Boltzmana) 0 4 p kt=10 0.4 exp(-δe/kt) P'' P P' zmniejszyć T Koniec jeśli T=0 T0 0.2 0.0 Losujemy liczbę losową q wg rozkładu równomiernego, jeśli q <exp ( (E(P ) E(P)) / kt) P:=P kt=1 kt=0.1 ΔE Im niższe T, tym mniej chętnie akceptujemy przesunięcia w górę na skali energii
Przykład 1: f(x)=sin(x)+x () () 2 /1000 Sposób zmiany temperatury: T=0.001 i 2 gdzie i spada od 100 do 1 w każdej T wykonywana pewna liczba losowań (przesunięcia z przedziału [ 2,2]) 2 T=0.9 T=0.1 Wysokie T punkt P wędruje między minimami Niskie T P uwięziony wokół jednego minimum 1 W wysokiej T przeszukiwany szeroki zakres zmiennych. 0 W niższej algorytm bada dokładnie minimum, które może być globalne, jeśli schładzanie zostało odpowiednio wykonane. -1 Techniczna uwaga: gdy zmieniamy T: najlepiej -40-20 0 20 40 startować od najlepszego rozwiązania uzyskanego do tej pory.
Przykład 2. 10 8 Zastosowanie S.A. Dla funkcji testowej de Jonga: 16 10 4-2 2-8 -14-20 y 6 4 2 0 0 2 4 x 6 8 10 ł ż i P w kolejnych k l j h iteracjach: i j h Położenia T>5 T<5 10.00 T<1 10.00 10.00 8.00 8.00 6.00 6.00 4.00 4.00 2 00 2.00 2.00 0.00 0.00 8.00 6.00 4.00 2.00 0.00 0.00 2.00 4.00 6.00 8.00 10.00 0.00 0.00 2.00 4.00 6.00 8.00 10.00 2.00 4.00 6.00 8.00 10.00
zawężanie zakresu przeszukiwań z temperaturą: generowane ścieżki 10.0000 8.00 6.00 4.00 2.00 0.00 0.00 2.00 4.00 6.00 8.00 10.00 ścieżka (100 kroków) dla T=4 10 y 8 6 4 2 0 0 2 4 x 6 8 10 16 10 4-2 -8-14 -20 ścieżka (50 kroków) dla T=2 10.00 ścieżka (25 kroków) dla T=1 10.00 8.00 8.00 6.00 6.00 4.00 4.00 2.00 2.00 0.00 0.00 2.00 4.00 6.00 8.00 10.00 0.00 0.00 2.00 4.00 6.00 8.00 10.00
Przykład 3: Problem komiwojażera Generowanie P z P: P = [ 1 3 6 4 5 9 7 2 ] Losowo zmieniamy kolejność P = [ 1 3 9 4 6 5 7 2 ] Losujemy pierwsze i ostatnie miasto T Strategia schładzania a wynik końcowy Sposób zmiany T długość P 4 400 3 2 1 dlugosc trasy 350 300 250 200 zbyt szybkie schłodzenie [do najbliższego minimum lokalnego] Najlepsze rozwiązanie 0 0 20000 40000 60000 numer iteracji / 100 150 0 20000 40000 60000 numer iteracji / 100
Przykład 4: klaster jonowy http://www.physchem.co.za/bonding/graphics/grd60002.gifphyschem co gif najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) d r dodatnio naładowane współrzędne r 1,r 2,... ujemnie naładowane współrzędne d 1,d 2,...
Przykład 4: klaster jonowy potencjał oddziaływania: załóżmy że promienie jonowe są równe 1 oddziaływanie jonów o różnym znaku o tym samym znaku 0.4 0.0-0.4-0.8 0 2 4 6 8 10 najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) d r dodatnio naładowane współrzędne r 1,r 2,... ujemnie naładowane współrzędne d 1,d 2,...
Weźmy 5 jonów dodatnich, pięc ujemnych, dwa wymiary fcja 20 zmiennych d r 2.895126 4.778046 4.853392 6.856922 7.507789
7.507789 minimum globalne ominięte minima lokalne 6.413611 7.130378
Przykład 5: najkrótsza droga na płaszczyźnie (kontinuum, nie graf) V(x,y) meta y wzniesienia: utrudnienia na trasie można je pokonać ale to kosztuje x środki przeszkód start przeszkody
10 9 8 długość z definicji: całka z 1 wzdłuż trasy: 7 6 5 4 3 funkcja kosztu: 2 1 0 0 1 2 3 4 5 6 7 8 9 10 całka liczona numerycznie rozwiązanie próbne = przesunięcie każdego z zakrętów w zakresie [.5,.5]* T (zależna od T) poruszamy się po odcinkach prostych: liczba zakrętów = parametr rachunku schładzanie paraboliczne
wyniki: jeden zakręt 10.00 10 9 18.13 8.00 8 7 6.00 6 5 4.00 4 3 2.00 2 1 0.0000 0 0 1 2 3 4 5 6 7 8 9 10 0.00 2.00 4.00 6.00 8.00 10.00
2 zakręty 10.00 10 9 18.13 8 8.00 7 6.00 6 3 zakręty 10.00 10 4.00 5 4 3 9 18.13 8 8.00 2.00 2 1 6.00 7 6 0.00 0 0 1 2 3 4 5 6 7 8 9 10 0.00 2.00 4.00 6.00 8.00 10.00 5 4.00 4 3 2.00 2 1! 0.00 0 0 1 2 3 4 5 6 7 8 9 10 0.00 2.00 4.00 6.00 8.00 10.00
Generacja liczb losowych o zadanym (ciągłym) rozkładzie prawdopodobieństwa algorytm Metropolisa położenia wędrowca jest zmienną losową podległą zadanemu rozkładowi w(x) generacja liczb losowych o zadanym rozkładzie przydatne dla symulacjimc MC, obliczaniacałek całek, rozwiązywanie równań różniczkowych, itd.
obliczenia całek MC 1) hit or miss generator o rozkładzie równomiernym f(x) 1 losujemy y 0 losujemy x 1 0 szacowanie błędu błąd wyznaczenia średniej: odchylenie standardowe (cecha w)
obliczenia całek MC 1) hit or miss generator o rozkładzie równomiernym 1.2 1.0 0.8 0.8 wartość dokładna [1 exp( 1)] wartości plus minus ε 0.6 ε 0.4 0.2 0.0 0.0 0.2 0.4 0.6 0.8 0.6 1/sqrt(N) 0.4 0 400 800 1200 1600 2000 N (jedna sekwencja)
obliczenia całek MC 2) Metoda szacowania średniej generator o rozkładzie równomiernym f(x) 1 1.2 1.0 hit or miss 0.8 0 losujemy x 1 0 0.6 0.4 0 400 800 1200 1600 2000 1.2 0.8 1.0 średnia ε 0.6 0.4 hom 0.8 0.2 średnia 0.6 0.0 0.0 0.2 0.4 0.6 0.8 1.0 1/sqrt(N) 0.4 0 400 800 1200 1600 2000
obliczenia całek MC 3) użycie niejednorodnego rozkładu pstwa taka aby g(x) mogło być gęstością ś prawdopodobieństwa d ń g(x) 0 wtedy: I = <h(x)> g(x) () dla zmiennej losowej x opisanej rozkładem g(x) jeśli g(x) tak wybrana, / N aby h(x) słabo zmienna w przedziale (a,b) mamy szanse na niski błąd uwaga: jeśli h(x i )=const błąd będzie 0
Przykład liczenia całek z użyciem a. Metropolisa 5 5 C (gdzie C bliskie jedynce) <h>=<sq rt(5π) cos s(x)> 1.2 0.8 0.4 0.00-0.4-0.8 h(x)=sqrt(5*pi) cos(x)/c N=1000 wędrowców : amplituda fluktuacji maleje z N niebieska kreska: dokładna wartość całki (1.1355) 1355) start wędrowcy rozmieszczeni wg rozkładu równomiernego z przedziału [ 5,5] 5] czerwona kreska: 0 1000 2000 3000 4000 5000 liczba kroków a.metropolisa
Schemat Metropolisa a równania różniczkowe wariacyjna metoda MC rozwiązywania równania Poissona y=+1 na brzegu u=0 pokażemy (w swoim czasie), że dla u rozwiązania r.poissona minimalna jest całka: y= 1 x= 1 x=+1 rozwiązanie próbne: r. dokładne: C,a parametry wariacyjne należy wybrać tak aby S optymalne
wariacyjna metoda MC rozwiązywania równania Poissona funkcjonał: średnia z ułamka dla zbioru punktów (x,y) o rozkładzie Aby wyznaczyć stałą normalizacji E: rozkład pstwa wyznaczony przez rozwiązanie próbne generowany przy pomocy algorytmu Metropolisa
wariacyjna metoda MC rozwiązywania równania Poissona wyniki: policzone dla a=2.2, C=0.018 (w pobliżu minimum S) analityczna wartość S= 5.2e 4 dla wybranej funkcji próbnej 2E-4 0 N=100 chwilowa wartość S (wartość dla rozwiązania dokładnego S= 6.27e 4) -2E-4-4E-4 <S> -6E-4-8E-4-1E-3-1.2E-3 średnia wartość S od iteracji 200 (gdy osiągnięta równowaga w rozkładzie wędrowców) -1.4E-3 0 1000 2000 3000 iteracje M
2E-4 0 N=100 zakres fluktuacji = funkcja 1/sqrt(N) -2E-4 2E-4-4E-4 0 S -6E-4 2E 4-8E-4-4E-4-1E-3-1.2E-3-6E-4-1.4E-3-8E-4-1E-3 0 1000 2000 3000-1.2E-3 <S> 2E-4 0-2E-4-4E-4-6E-4-8E-4-1E-3 iteracje M -2E-4 N=1000-1.4E-3 0 1000 2000 3000 N=10 000-1.2E-3-1.4E-3 0 1000 2000 3000
wariacyjna metoda MC rozwiązywania równania Poissona wyniki w funkcji parametrów wariacyjnych 2E-4 N=1000 a=2.2, C=0.018 0-2E-4-4E-4-6E-4-8E-4-1E-3-1.2E-3-1.4E-3 0 1000 2000 3000 2E-4 0-2E-4-4E-4-6E-4-8E-4-1E-3-1.2E-3-1.4E-3 N=1000 a=2*2.2, C=2*0.018 0 1000 2000 3000
wariacyjna metoda MC rozwiązywania równania Poissona (dokładna S= 6.27e 4) S= 5.2e 4 r.dokładne 1) pik pik niższy 2) słabiej zlokalizowany przy tej funkcji próbnej lepiej być nie może przy tej funkcji próbnej lepiej być nie może trzeba ją poprawić
Algorytm Metropolisa jako generator liczb losowych zaleta: wada: pozwala wygenerować zmienną losową o dowolnym o rozkładzie prawdopodobieństwa a w dowolnej liczbie wymiarów rozkład musi zostać wyhodowany algorytm, który posiada tę samą zaletę, a nie wymaga hodowli rozkładu: metoda von Neumanna