Metody Monte Carlo Literatura R.Wit, Metody Monte Carlo Wykłady, Wydawnictwo Politechniki Częstochowskiej, Częstochowa 2004 N.P. Buslenko, D.I. Golenko,…,Metoda Monte Carlo, Pwn, Warszawa 1967 S.M. Jermakow, Metoda Monte Carlo i zagadnienia pokrewne, PWN, Warszawa 1976 D.W. Heermann, Podstawy symulacji komputerowych w fizyce, WNT, Warszawa 1997 definicja Nicolas Metropolis, Stanisław Ulam The Monte Carlo Methods, 1949 Metoda Monte Carlo (MC) – dowolna technika rozwiązująca problem wykorzystując liczby losowe Kluczowa rola – programowy generator liczb losowych Ruletka Kostka do gry Moneta Losowania kul z urny Definicja J.H. Haltona , 1970 MC polega na przedstawieniu rozwiązania postawionego problemu w postaci parametru pewnej hipotetycznej populacji i używaniu losowej sekwencji liczb do tworzenia próbki tej populacji, na podstawie której można dokonać statystycznego oszacowania wartości badanego parametru F – rozwiązanie problemu liczba, zbiór liczb, wartość logiczna – decyzja Oszacowanie MC wyniku F: Fˆ f (r1 , r2 ,....,rn ) {r1,r2,….,rn} - liczby losowe użyte w rozwiązaniu Zastosowanie MC Problemy deterministyczne (wprowadzenie losowości) Całkowanie Znajdowanie pól i objętości Obliczanie liczby π bezpośrednia symulacja – badanie rzeczywistej populacji Problemy probabilistyczne/stochastyczne Symulacje procesów zależnych od zmiennych losowych bezpośrednia symulacja MC – całkowanie problem deterministyczny -> problem stochastyczny f ( x) x a; b b I a f ( x)dx I f ( x ) ba ba I n Wartość średnia n f (x ) i i 1 Oszacowanie całki: losowy wybór n punktów xi z <a;b> o rozkładzie równomiernym Prawo wielkich liczb prawo wielkich liczb: xi - zmienne losowe μ(x) – funkcja gęstości prawdopodobieństwa ε >0 . I ( x)dx 1 f ( x ) ( x)dx 1 lim P{I n n n f (x ) I } 1 i i 1 niezależnie od wyboru szerokości przedziału wokół wartości oczekiwanej, prawdopodobieństwo dla dużych n będzie dowolnie bliskie 1. Mocne prawo wielkich liczb 1 P{ lim n n n f (x ) I} 1 i i 1 przy wystarczająco dużej próbce losowej oszacowanie MC zbiega się do poprawnej wartości Prawo wielkich liczb Częstość występowania zdarzenia w n próbach jest zbieżna do prawdopodobieństwa tego zdarzenia, gdy n dąży do nieskończoności zwiększając liczbę doświadczeń opartych na zdarzeniach losowych, możemy oczekiwać rozkładu wyników coraz lepiej odpowiadającego rozkładowi prawdopodobieństw zdarzeń przykład: przeprowadzając wielką liczbę rzutów symetryczną monetą, możemy oczekiwać że stosunek liczby "wyrzuconych" orłów do liczby wszystkich rzutów będzie bliski 0,5 (wartości prawdop.); tym większe są na to szanse im większa jest liczba rzutów Wyznaczenie liczby π Pole figury : x2+y2≤1 k=0; P=4; for (i=1; i<=n; i++) { losuj punkt (x, y) z kwadratu opisanego na kole: (-1, -1); (-1, 1); (1, 1); (1, -1); if (x2+y2 <=1) k++; } pi=k/n*P; Prelokacja – metoda stochastyczna Siatka 2D Węzeł zapełniony z prawdopodobieństwem p є [0; 1] pusty z prawdopodobieństwem (1-p) Klaster – zbiór zapełnionych węzłów, z których każdy jest połączony z przynajmniej jednym sąsiednim (4 sąsiadów) zapełnionym węzłem Dla p>=pc (próg prelokacji) wystąpi klaster nieskończony (łączący każdy lub min. 1 brzeg siatki z brzegiem przeciwnym) prelokacja 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 określenie progu prelokacji – symulacja MC Analityczne wyrażenie na pc – dla siatki 2D i nieskończeniewymiarowej Metoda stochastyczna ?? Dla każdego p wielokrotne uruchomienie podprogramu for(i=0;i<n;i++) for(j=0;j<n;j++) R=random(); // losuj liczbę R є[0,1]o rozkładzie równomiernym if(R<p) L[i][j]=1; else L[i][j]=0; sprawdź, czy istnieje klaster prelokacji; Uśrednienie wyników problemy symulacji MC Zależność wyników od rozmiaru sieci Mniejsza sieć – mniejsza wartość pc Skończone małe sieci – wartość progu relokacji – rozmyta, trudna do oszacowania Wybór odpowiedniej liczby próbek Generator losowych liczb Liczby Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1) + fib(n-2) dla n>=2 fib(0) fib(2) procedure fib(x) if(x<2) then (wynik:=1) else (wynik:=fib(x-1)+fib(x-2) fib(1) fib(4) fib(1) fib(3) fib(0) fib(2) fib(1) Liczby Fibonacciego Pierwsza próba modelowania wzrostu populacji 1202 Leonardo z Pizy „Książka o liczydle” Para królików dojrzała po urodzeniu Co kwartał – para potomstwa Króliki nie umierają i nie uciekają Proces rozmnażania zaczyna się od jednej pary k k 1 1 5 1 5 Fk , 5 2 2 Wzór Bineta - 1843 k 1 złoty podział odcinka Fk 5 1 lim k Fk 1 2 x 1 1 x x Liczby Fibonacciego Zastosowanie – generowanie liczb losowych Nierealistyczne założenia modelu Nierealistyczne przewidywania w czasie Użyteczny aparat matematyczny Równanie logistyczne Model Verhulsta 1845 Model populacji – liczebność xn1 r xn (1 xn ) gdzie: xn – unormowana liczebność populacji w kroku n (0;1> r – współczynnik przyjmujący wartości z przedziału <0; 4>, opisuje liczebność kolonii pewnych osobników unormowaną w stosunku do maksymalnej liczby elementów, mogących rozwijać się w zadanym środowisku. Równanie logistyczne xn1 r xn (1 xn ) y r x (1 x) r<=1 x*=0 – punkt stabilny rozwiązania; iteracje kończą się w x*=0 bifurkacje 1<r<=3 x*=1-1/r - punkt stabilny r>3 – dwa punkty stabilne 4 punkty stabilne 8… chaos Równanie logistyczne – jako generator liczb losowych równanie logistyczne r=2 r=3 r=4 y=x 1,2 1 y 0,8 0,6 0,4 0,2 0 0 0,5 1 x 1,5 http://www.kasprzyk.demon.co.uk/www/Logistic.html Symulowane odprężanie Przykładem stochastycznej metody Monte-Carlo algorytm symulowanego odprężania oparty na doświadczeniach, związanych z oziębianiem materiałów Powolne ochładzanie może doprowadzić do uzyskania struktury kryształu, o minimalnej wartości energetycznej Zgodnie z zasadami mechaniki statystycznej, układ zmierzając do stanu minimalnej energii, poprzez jej fluktuację, zależną od temperatury, może zwiększać swoją energię o Ep z prawdopodobieństwem p, określonym wzorem: Symulowane odprężanie ΔE p p e k T gdzie: T – temperatura układu, k - stała Boltzmanna, Symulowane odprężanie Przy wyższych temperaturach układ „przegląda” ogromną liczbę stanów pokrywającą równomiernie dziedzinę rozwiązań. Wraz z oziębianiem układu, przejścia do stanu o wyższej energii są coraz rzadsze i rozwiązania poszukuje się w coraz węższych obszarach rozwiązań Akceptacja zmian, które przynoszą „gorsze rozwiązanie”, umożliwia algorytmowi wyjście z lokalnych minimów. Dzięki tym własnościom schemat Metropolisa został wykorzystany w poszukiwaniu minimum globalnego wielowymiarowych funkcji kryterium przez Kirkpatrick’a. Ze względu na sposób przeszukiwania, obejmujący duży obszar rozwiązań, jest on szczególnie efektywny w rozwiązywaniu zadań kombinatorycznych. Na nim opiera się także działanie maszyn Boltzmanna. Schemat Metropolisa procedure SM;{ i=początkowe rozwiązanie; T=T0 ; (wysoka wartość „temperatury początkowej”) oblicz Ei; (wartość „energii”); repeat { wygeneruj nowe rozwiązanie j (operator sąsiedztwa) oblicz Ej; if (Ej < Ei) then i=j; else if (random[0,1) < exp (- (Ej - Ei)/T)) then i=j; T=T-T; } until warunek stopu;} Problemy statystyczne symulacji MC Generowanie ciągu liczb losowych o zadanym rozkładzie opisującym zmienną losową statystyczna analiza modelu statystyczna analiza wyników Podstawowe znaczenie - liczby losowe z rozkładu jednostajnego – można uzyskać liczby losowe o dowolnym rozkładzie Generatory liczb losowych Liczby statystycznie niezależne O rozkładzie jednostajnym W ciągu o określonej długości – brak powtarzania Duża szybkość generowania Minimalne wymagania na PAO Kongruencja – przystawalność liniowy generator liczb pseudolosowych a ≡ b (mod m) => a-b=k*m; kєZ ni+1 =[ a · ni + b ] (mod m); n,a,b,m – liczby całkowite >=0 a - mnożnik – duża liczba pierwsza; a mod 8 = 5 m/100 < a < m - √m w systemie dwójkowym nieoczywisty szablon b – stała dodatkowa; b=0 – generator multiplikatywny b/m ≈ ½ - √3/6 n0- wartość początkowa – liczba nieparzysta m=231-1 ni < m ni/m - <0;1> Generator Fibonacciego ni=(ni-1 + ni-2) mod m - addytywny okres < 2m-1 – zbyt mało Prosty Przesunięta metoda Fibonacciego ni=(ni-r + ni-s + c) mod m; r>=s – przesunięcia c – bit przeniesienia c= 0 gdy ni-r + ni-s <= m c=1 gdy ni-r + ni-s > m Testy sprawdzające losowość wygenerowanych liczb Marshall – „fałszywy charakter losowości wygenerowanej sekwencji nie wpływa na obliczenia MC Zadanie optymalizacyjne min(x,y)F(x,y) G(x,y)=y – h(x)=0 Szukane – min F(x,y) – funkcja celu; y=h(x) – ograniczenia F(x,y)=(x-4)2 + y2 G(x,y)=(x-2)2 + y2 -1 = 0 Szukane: minimum odległości punktu (4, 0) od punktu (x,y) znajdującego się na okręgu o promieniu 1, o środku w punkcie (2, 0) Rozwiązanie: (3,0) (2,0) (4,0) Algorytm MC Wylosuj liczbę losową yi z rozkładem równomiernym na przedziale (-1; 1) yi=2(zi-0.5); 0<zi<1 Oblicz xi(1) i xi(2) z G(x,y)=0 /równanie okręgu Wybierz parę (xi,yi), dla której wartość funkcji celu F(x,y) jest mniejsza Wygeneruj yi+1, oblicz xi+1(1) i xi+1(2), wybierz lepsza parę Jeśli F(xi,yi) < F(xi+1,yi+1) pozostaw do dalszych obliczeń parę (xi,yi), w przeciwnym wypadku parę (xi+1,yi+1) Przejdź do kroku pierwszego Szukanie minimum funkcji algorytm MC START N=0 Losuj x0 Wynik = x0 M = f(x0) Losuj x N++ N N >= Nmax T T f(x) < M M = f(x) Wynik = x N STOP Zagadnienia optymalizacyjne Wielomodalna funkcja celu Deterministyczne procedury często odnajdują minima lokalne Są dobrze opisane Wymagane założenia (ciągłość,..) Zawarte w bibliotekach numerycznych Metody wielostartowe Różne punkty startowe Deterministyczna procedura Zagadnienia optymalizacyjne Strategie poszukiwań Punkt startowy -> rozwiązanie; kolejny punkt startowy -> rozwiązanie Jeśli rozwiązania podobne -> rozrzut punktów wokół znalezionego minimum Jeśli różne -> kolejny punkt startowy,…zmiana procedury optymalizacyjnej,… Na początku równomierne rozrzucenie n punktów startowych po przestrzeni poszukiwań n procesów minimalizacyjnych Kosztowne Na początku równomierne rozrzucenie n punktów startowych po przestrzeni poszukiwań Z każdego punktu – przypadkowy kierunek poszukiwań (przeszukiwanie jednowymiarowe) Efektem – klastry ( zbiory punktów, które prowadzą do wspólnego minimum) Środki ciężkości klastów – punkty startowe dla dokładnych procedur minimalizacyjnych podsumowanie Zakres stosowania MC – bardzo szeroki Modelowanie procesów rzeczywistych Eksperymenty komputerowe Modele deterministyczne i probabilistyczne Wymagają najlepszych generatorów liczb losowych koniec Gra w życie automat komórkowy 1011 – liczba neuronów w organizmie liczba galaktyk we wszechświecie 6 * 1023 liczba Avogadra Otoczenie - duże zespoły wzajemnie oddziałujących elementów zmierzających do stanu równowagi Uproszczenia w symulacjach komputerowych charakter oddziaływań Ograniczenie oddziaływań do sąsiadów Gra w życie J.H. Conway 2D; periodyczne warunki brzegowe Elementy populacji – osobnicy – w węzłach siatki Reguły przetrwania, śmierci, generowania nowych osobników Gra w życie - reguły Dla każdego elementu populacji: if ( 2<=liczba_sąsiadów<=3 ) element przeżywa 1 generację if ( liczba_sąsiadów >=4 ) element umiera //przeludnienie if ( liczba_sąsiadów <=1 ) element umiera //izolacja Dla każdego pustego pola: if ( liczba_sąsiadów = 3 ) tworzy się nowy element populacji w tym polu Gra w życie reguły Życie i śmierć zachodzą równocześnie Przesłanki Nie istnieje konfiguracja pierwotna, dla której można udowodnić, że rośnie ona w sposób nieograniczony Powinny istnieć konfiguracje pierwotne prowadzące do wzrostu bez granic znikające tworzące stabilną konfigurację wchodzące w nieskończone oscylacje Gra w życie reguły zastosowania Model formowania opinii społecznej „warszawski” „wrocławski” Symulacja rozchodzenia się choroby zakaźnej Model Isinga CA + GA Badanie gęstości upakowania kulek w polach Model formowania opinii społecznej Stany: tak, nie si,j = -1 lub 1 Wartość początkowa – np. 80% populacji – tak; 20% - nie Opinie rozrzucone losowo Przeprowadzenie rund dyskusyjnych – wymiana z innymi członkami populacji (sąsiedzi –odległość emocjonalna), siła przekonywania Fi,j – siła przekonywania Dynamika układu – opisana regułą większości S=f0,0s0,0(t) + f0,1s0,1(t) + f1,0s1,0(t) + f0,-1s0,-1(t) + f-1, 0s-1,0(t) 0,1 S0,0 = +1, jeśli S>=0 0,0 -1,0 0,-1 1,0 S0,0 = -1, jeśli S<0 Model formowania opinii społecznej Inny sposób wyboru sąsiadów , np. losowy, dla zadanego zasięgu, proporcjonalny do odległości Szumy Znając dynamikę zmian pojedynczego osobnika – obserwacja zmian rozkładu opinii Tworzenie grup wokół przywódców (osoby o mocnym wpływie) Tworzenie wałów ochronnych (słabsi osobnicy za murem osobników silniejszych) Rozwój „grup oporu” Model wrocławski Bazuje na obserwacji zachowań stadnych Jedna silnie skorelowana (to samo zdanie na pewien temat) para potrafi narzucić swoje zdanie sąsiadom Jeśli para ma różne zdania – otoczenie nie zmienia poglądów Rozchodzenie się choroby zakaźnej Obszar N x N; rozmieszczenie osobników w polach Periodyczne warunki brzegowe lub nie Szczepienie – wśród losowo wybranej grupy 1 losowo wybrany niezaszczepiony osobnik – źródłem chorob V=liczba_osób_zaszczepionych/liczność_populacji Nz – liczba osób niezaszczepionych Zk- liczba osób zakażonych (spośród Nz) I – wskaźnik infekcji I=Zk/Nz < 1 I(V) – funkcja malejąca Istnieje Vc – wskaźnik infekcji gwałtownie maleje Model Isinga Badanie magnetycznych własności ciał N spinów w węzłach siatki 2D Spiny oddziałują z sąsiadami i zewnętrznym polem magnetycznym Stany spinów: dół -1; góra 1 Cel – minimum energii układu Metoda Metropolisa prelokacja Symulacja pożaru lasu Szybkość i kierunek wiatru Wilgotność powietrza i poszycia Odległość między drzewami Istnienie i rozmiary przecinek Rozmieszczenie ognisk zapalnych Pudełko z kulkami przewodnikami i izolatorami umieszczonymi w dwóch przeciwnych ściankach; po przyłożeniu napięcia – prąd popłynie jeśli utworzy się prelokujący klaster (przy powolnym wzroście liczby przewodników - gwałtowne przejście do stanu przewodnictwa) Poszukiwanie ropy naftowej, wody – cechy porowatych skał Algorytm prelokacji węzłowej Przeglądanie tablicy zajętości wierszami, nadając etykiety elementom zajętym; Tablica zajętości Wypełniona losowo z prawdopodobieństwem p „1” lub „0” Wektor pamięci ME Etykiety – kolejne liczby całkowite (numer klastra) elementowi, który ma sąsiadów (po lewej stronie i powyżej (i-1,j); (i,j-1) przyporządkowana jest najniższa z etykiet sąsiadów (y) Ustawienie wektora pamięci ME(x)=y; x,y – etykiety; x>y Uzgadnianie kilkustopniowe – zastąpienie etykiet z wektora ME ( od największej wartości ) x->y Etykietowanie elementów sąsiedztwo 1 1 2 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Element badany sąsiedzi 1 1 1 prelokacja 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 7 2 4 4 7 4 7 2 2 5 3 3 8 3 4 3 3 5 3 3 3 3 8 7 7 1 2 3 ME(4)=3 3 -> 2 1 2 3 4 1 ME(3)=2 ME(6)=4 4 -> 3 1 3 3 3 3 3 3 4 4 4 4 7 6 6 -> 4 1 1 3 3 3 3 3 2 2 2 3 3 1 2 5 2 2 3 8 7 7 2 2 2 2 2 2 2 2 5 2 8 Kropla spadająca na wietrze Kropla przesuwa się między węzłami sieci pod wpływem siły ciężkości i wiatru Cel – określenie średniej wartości dryftu (xk-x0) Parametry symulacji: x0, y0 – punkt początkowy δ x = δy – odległości między współrzędnymi węzłów p1, p2, p3, p4 - prawdopodobieństwa ruchu w 4 kierunkach p 1+ p 2+ p 3+ p 4 = 1 Liczba symulacji Kryterium stopu pojedynczej symulacji – yk= 0 Kropla spadająca na wietrze Reguły poruszania się po sieci (xi,yi) : 1. Wylosuj r rzeczywiste є(0,1) 2. if (r <= p1) (xi,yj) -> (xi+1,yi) 3. if (r >= p1 && r < p1+p2 ) (xi,yi) -> (xi,yi-1) ↑ 4. if (r >= p1+p2 && r < p1+p2 +p3 ) (xi,yj) -> (xi-1,yi) ← 5. if (r >= p1+p2+p3 && r < 1 ) (xi,yj) -> (xi,yi+1) ↓ → Kropla spadająca na wietrze y0 → ↑ ← ↓ yk =0 x0 xk Ruchy Browna Brown 1827, Einstein 1905, Smoluchowski 1906 Ruchy małych cząstek zawiesiny w sieci Wyznaczenie położenia cząstki zawiesiny w chwili t=0, Δt, 2Δt, 3Δt,…. oraz Δxi, Δyi Badanie średniej wartości kwadratu przesunięcia wraz z upływem czasu (liczba kroków) 1 (x) N 2 i (xi ) 2 Ruchy Browna śr_wartość_kwadratu_x(liczba kroków)zależność liniowa śr_wartość_kwadratu_y(liczba kroków)zależność liniowa 1200 x 1000 y 800 600 400 200 0 0 500 1000 1500 2000 2500 Ruchy Browna Nachylenie prostej Dla gazów - 2D; D – współczynnik dyfuzji D=kT/(6πηr) k - stała Boltzmanna T – temperatura η współczynnik lepkości r – promień cząstki podsumowanie Zakres stosowania MC – bardzo szeroki Modelowanie procesów rzeczywistych Eksperymenty komputerowe Modele deterministyczne i probabilistyczne Wymagają najlepszych generatorów liczb losowych