Przewodnik do przeszukiwania losowego - inspiracje przyrodnicze Przewodnik do przeszukiwania losowego - inspiracje przyrodnicze Przyrodnicze (naturalne) algorytmy optymalizacji MC teoria doboru naturalnego – algorytmy genetycze wzrost i hodowla kryształów, metalurgia – algorytm symulowanego wygrzewania wygląd owada zoptymalizowany na drodze przypadkowego krzyżowania genów oraz mutacji z mechanizmem selekcji naturalnej
orbitale walencyjne 2px,2py,2pz węgiel tworzy kierunkowe wiązania kowalencyjne atom węgla: nieobsadzone miejsca na orbitalach +6e Stabilne formy węgla: każda – lokalne minimum energii E wiązania (funkcja struktury układu)=E wiązania (1023 położeń atomów) diament grafit E grafit diament
Wzrost kryształów jako proces optymalizacji E wiązania (funkcja struktury układu)=E wiązania (1023 położeń atomów) metoda Czochralskiego hodowli kryształó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 ( 1023 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 wolno schładzany materiał krystalizuje w idealnej strukturze (o optymalnej energii wiązania) jeśli zarodek zbyt szybko wyciągnięty: kryształ będzie złej jakości – defekty [układ osiąga najbliższe minimum lokalne] http://www.fkf.mpg.de
Struktura krystaliczna i defekty: wakansja położenie atomu dyslokacja krawędziowa energia kryształu położenie międzywęzłowe przywrócenie idealnej struktury: wymaga pokonania bariery energetycznej Defekty powodują naprężenia wewnętrzne. Kryształ z defektami jest twardy. 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]
Metoda z symulacji mechaniki statystycznej - układu o bardzo wielu stopniach swobody w równowadze termicznej z otoczeniem – algorytm Metropolisa. Kirkpatrick –algorytm Metropolisa do optymalizacji 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 ciepła (źródło: F. Reiff Mechanika Statystyczna) kontakt termiczny
Eu Eo Zachowanie układów o dużej liczbie stopni swobody w równowadze termicznej ze zbiornikiem ciepła otoczenie układ Eu Eo kontakt termiczny
Eu Eo otoczenie układ całość izolowana = układ zamknięty kontakt termiczny
Ec=Eu+Eo (energia zachowana) otoczenie układ Eu Eo całość izolowana = układ zamknięty kontakt termiczny Ec=Eu+Eo (energia zachowana)
Ec=Eu+Eo (energia zachowana) otoczenie układ Eu Eo całość izolowana = układ zamknięty kontakt termiczny Ec=Eu+Eo (energia zachowana) Ec – niezależna od czasu
Eu Eo Ec=Eu+Eo (zachowana) za F. Reiff Mechanika Statystyczna otoczenie układ Eu Eo całość izolowana = układ zamknięty kontakt termiczny Ec=Eu+Eo (zachowana) Ec – niezależna od czasu ale Ec=Eu(t)+Eo(t) – układy wymieniają energię 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)
Eu Eo Ec=Eu+Eo (zachowana) dążenie do równowagi za F. Reiff Mechanika Statystyczna gorący otoczenie zimny układ Eu Eo całość izolowana = układ zamknięty kontakt termiczny Ec=Eu+Eo (zachowana) przekaz energii między układem „gorącym” i „zimnym” aż do osiągnięcia równowagi stany mikroskopowe gorącego i zimnego zbiornika gorący zimny (np. blok lodu) (np. garnek z wrzątkiem)
dla której energia zgromadzona w układzie wynosi E (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
P(Eu)=CW(Eu)W’(Ec-Eu) (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 mikroskopowy jest równie prawdopodobny wtedy: pstwo, że realizowany dany stan makroskopowy = proporcjonalne do liczby stanów mikro odpowiadających danemu stanowi makro P(Eu)=CW(Eu)W’(Ec-Eu) pstwo, że układ zawiera energię Eu (że podział energii Eu,Eo=Ec-Eu) (inaczej: że układ w takim stanie makroskopowym, że u ma energię Eu) mniejszy podukład większy W(E) – funkcja silnie rosnąca z E (oraz z rozmiarem układu) równowaga (jedna z definicji): stan najbardziej prawdopodobny
E u P(Eu)=CW(Eu)W’(Ec-Eu) W E W(E) – funkcja silnie rosnąca z E (oraz z rozmiarem układu) W E E u 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.
E u P(Eu)=CW(Eu)W’(Ec-Eu) Eo=Ec- Eu W E jeśli P max to również log P max: poniżej na tej folii log = ln Eo=Ec- Eu W(E) – funkcja silnie rosnąca z E (oraz z rozmiarem układu) W w równowadze (stan najbardziej prawdopodobny): E E u 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.
E u P(Eu)=CW(Eu)W’(Ec-Eu) Eo=Ec- Eu W E jeśli P max to również log P max: poniżej na tej folii log = ln Eo=Ec- Eu W(E) – funkcja silnie rosnąca z E (oraz z rozmiarem układu) W w równowadze (stan najbardziej prawdopodobny): E E u 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. w równowadze: (def. temperatury) 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: jakie jest prawdopodobieństwo, że układ ma energię Eu : P(Eu) ?
Eu<<Ec, W<<W’ w równowadze: układ bardzo mały w porównaniu z otoczeniem, z którym znajduje się w równowadze termicznej pytanie: jakie jest prawdopodobieństwo, że układ ma energię Eu : P(Eu) ? Eu<<Ec, W<<W’ Taylor: czynnik Boltzmanna
znalezienie układu w stanie o dużej energii jest prawdopodobne granica wysokiego T: układ może znaleźć się z równym prawdopodobieństwem przechowywać dowolnie wysoką energię znalezienie układu w stanie o dużej energii jest prawdopodobne 2 4 6 8 1 E . N e x p ( - / ) * 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. 1 . . 8 e x p ( - E / 1 ) . 6 N . 4 e x p ( - E ) . 2 e x p ( - E * 1 ) . 2 4 6 8 1 E
Algorytm Metropolisa za S.Kooninem Układ opisany zbiorem zmiennych X=(x1,x2,x3,...,xN) – punkt w wielowymiarowej przestrzeni chcemy zasymulować fluktuacje termiczne zmiennych, X1 X2 X3 X4 X5 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 ma być dane przez zadany z góry rozkład w(X), u nas: Boltzmana w(X)= Cexp(-E(X)/kT)
Algorytm Metropolisa X Xp układ jest w stanie X. Do jakiego stanu przejdzie? wybieramy losowo stan próbny Xp z pewnego otoczenia stanu X Xp:=X+(dx1,dx2,...,dxn) – dxi losowane z przedziału [-d,d] z rozkładem równomiernym możliwości: 1) Xp mniej prawdopodobne liczymy r=w(Xp)/w(X) jeśli r 1 [ w(Xp)w(X) ] – akceptujemy stan próbny X:=Xp jeśli r<1 [w(Xp)<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:=Xp jeśli q r – odrzucamy 2) Xp bardziej prawdopodobne w(X) w(X) [rozkład pstwa] Xp X Xp X punkt mniej prawdopodobny akceptujemy z pstwem w(Xp)/w(X) zawsze akceptujemy bardziej prawdopodobny punkt
punkty na ścieżce wygenerowanej algorytmem M 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 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 D = N(X)P(XY) - N(Y)P(YX) X Y uwagę koncentrujemy na 2 stanach układu w warunkach równowagi (bez zmian w średnim rozkładzie wędrowców Nr(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(-50x2) niebieska linia łączy punkty 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 Nr(X) jest proporcjonalne do w(X) pstwo zaakceptowania próby pstwo podjęcia próby (wylosowania Y jako p.próbnego) losujemy punkty próbne z rozkładem równomiernym mamy 2 przypadki: w(X)>w(Y) : A(Y X) = 1 A(XY) =w(Y)/w(X) w(X)<w(Y) : A(X Y) = 1 A(YX) =w(X)/w(Y) co chcieliśmy zobaczyć
Algorytm symulowanego wyżarzania dla optymalizacji E(P) 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 wg.rozkładu B) gdy E(P’)>E(P) –prawdopodobieństwo zaakceptowania punktu gorszego P’ dane przez np. exp(-(E(P’)-E(P)) / kT) (rozkład Boltzmana) zmniejszyć T Losujemy liczbę losową q wg rozkładu równomiernego, jeśli q < exp (-(E(P’)-E(P)) / kT) P:=P’ Koniec jeśli T=0 Im niższe T, tym mniej chętnie akceptujemy przesunięcia w górę na skali energii
Przykład 1: f(x)=sin(x)+x2/1000 Sposób zmiany temperatury: T=0.001 i2 gdzie i spada od 100 do 1 w każdej T wykonywana pewna liczba losowań (przesunięcia z przedziału [-2,2]) Wysokie T – punkt P wędruje między minimami Niskie T – P uwięziony wokół jednego minimum W wysokiej T przeszukiwany szeroki zakres zmiennych. W niższej – algorytm bada dokładnie minimum, które może być globalne, jeśli schładzanie zostało odpowiednio wykonane. Techniczna uwaga: gdy zmieniamy T: najlepiej startować od najlepszego rozwiązania uzyskanego do tej pory.
Przykład 2. Zastosowanie S.A. Dla funkcji testowej de Jonga: Położenia P w kolejnych iteracjach: T>5 T<5 T<1
zawężanie zakresu przeszukiwań z temperaturą: generowane ścieżki ścieżka (100 kroków) dla T=4 ścieżka (25 kroków) dla T=1 ścieżka (50 kroków) dla T=2
Przykład 3: Problem komiwojażera Generowanie P’ z P: P = [ 1 3 6 4 5 9 7 2 ] Losujemy pierwsze i ostatnie miasto Losowo zmieniamy kolejność P’ = [ 1 3 9 4 6 5 7 2 ] Strategia schładzania a wynik końcowy Sposób zmiany T długość P zbyt szybkie schłodzenie [do najbliższego minimum lokalnego] Najlepsze rozwiązanie
Przykład 4: klaster jonowy http://www.physchem.co.za/Bonding/Graphics/GRD60002.gif najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) dodatnio naładowane – współrzędne r1,r2, ... ujemnie naładowane – współrzędne d1,d2, ... r d
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 najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) dodatnio naładowane – współrzędne r1,r2, ... ujemnie naładowane – współrzędne d1,d2, ... r d
Weźmy 5 jonów dodatnich, pięc ujemnych, dwa wymiary -2.895126 d fcja 20 zmiennych konfiguracje z symulacji, strzałki pokazują wyniki dla obniżanej temperatury -6.856922 -4.778046 -7.507789 -4.853392
-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 wzniesienia: utrudnienia na trasie można je pokonać ale to kosztuje y x środki przeszkód przeszkody start
całka liczona numerycznie długość z definicji: całka z 1 wzdłuż trasy: funkcja kosztu: całka liczona numerycznie poruszamy się po odcinkach prostych: liczba zakrętów = parametr rachunku rozwiązanie próbne = przesunięcie każdego z zakrętów w zakresie [-.5,.5]* T (zależna od T) schładzanie paraboliczne
wyniki: jeden zakręt
2 zakręty 3 zakręty !
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 symulacji MC, obliczania całek, rozwiązywanie równań różniczkowych, itd.
obliczenia całek MC hit or miss generator o rozkładzie równomiernym 1 f(x) losujemy y 1 losujemy x szacowanie błędu odchylenie standardowe (cecha w) błąd wyznaczenia średniej:
obliczenia całek MC hit or miss generator o rozkładzie równomiernym wartość dokładna [1-exp(-1)] wartości plus minus e e 1/sqrt(N) N (jedna sekwencja)
1 obliczenia całek MC 2) Metoda szacowania średniej generator o rozkładzie równomiernym hit or miss f(x) 1 losujemy x średnia hom e średnia 1/sqrt(N)
/ N obliczenia całek MC 3) użycie niejednorodnego rozkładu pstwa taka aby g(x) mogło być gęstością prawdopodobieństwa g(x)0 wtedy: I = <h(x)>g(x) dla zmiennej losowej x opisanej rozkładem g(x) jeśli g(x) tak wybrana, aby h(x) słabo zmienna w przedziale (a,b) - mamy szanse na niski błąd uwaga: jeśli h(xi)=const – błąd będzie 0 / N
Przykład liczenia całek z użyciem a. Metropolisa 5 -5 C (gdzie C bliskie jedynce) 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) start – wędrowcy rozmieszczeni wg rozkładu równomiernego z przedziału [-5,5] czerwona kreska: <h>=<sqrt(5p) cos(x)> liczba kroków a.Metropolisa
Schemat Metropolisa a równania różniczkowe wariacyjna metoda MC rozwiązywania równania Poissona y=+1 pokażemy (w swoim czasie), że dla u - rozwiązania r.Poissona minimalna jest całka: na brzegu u=0 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 „chwilowa wartość S” N=100 (wartość dla rozwiązania dokładnego S=-6.27e-4) <S> średnia wartość S od iteracji 200 (gdy osiągnięta równowaga w rozkładzie wędrowców) iteracje M
N=100 zakres fluktuacji = funkcja 1/sqrt(N) N=1000 <S> iteracje M N=10 000
wariacyjna metoda MC rozwiązywania równania Poissona wyniki w funkcji parametrów wariacyjnych N=1000 a=2.2, C=0.018 N=1000 a=2*2.2, C=2*0.018
wariacyjna metoda MC rozwiązywania równania Poissona (dokładna S=-6.27e-4) S= -5.2e-4 do zrobienia optymalizacja a,C przy nieciągłych wartościach funkcji oszacowanie błędów - wyliczyć lepsza funkcja próbna = praca inżynierska „pik” niższy słabiej zlokalizowany r.dokładne przy tej funkcji próbnej lepiej być nie może trzeba ją poprawić
Algorytm Metropolisa jako generator liczb losowych zaleta: pozwala wygenerować zmienną losową o dowolnym rozkładzie prawdopodobieństwa w dowolnej liczbie wymiarów wada: rozkład musi zostać wyhodowany algorytm, który posiada tę samą zaletę, a nie wymaga hodowli rozkładu: metoda von Neumanna