Metoda Monte Carlo (MC)

advertisement
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 ) 
ba
ba
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ść
xn1  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
xn1  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
Download