Szimuláció – Monte Carlo

Download Report

Transcript Szimuláció – Monte Carlo

4.év Mérnoki Informatika
BBTE Matematika és Informatika
Monte Carlo szimuláció
Egy másik nagy módszer a Molekuláris
Dinamika módszer mellett
Los Alamosból ered a módszer: Stanislaw Ulam
fizikus találta ki, Neumann Jánossal együtt, a
Manhatten projekt keretén belül.
Radioaktív anyagok-meg kell oldani az
árnyékolást. Milyen vastag pajzs kell ahhoz
hogy leárnyékolják az anyagot?
Attól függ hogy milyen
sugárzásról van szó
ők konkrétan a neutron
sugárzást akarták


átlag távolság amíg a neutron ütközik egy
atommal
átlag energia amit egy neutron elveszít egy
ilyen ütközéskor
bár a részleteket ismerték, az analitikus
számítás mégis nagyon nehéz volt, nem tudták
elvégezni
Solitaire játék (Ulam is ezt használta példának)
Ismerjük az összes szabályt
tudjuk pontosan hány kártya
van a pakliban
az a kérdés hogy az összes
random kezteti állapotból hány állatotban lehet
sikeresen kirakni a menetet. Ez nagyok
bonyolult kombinatorikai számításhoz vezet.
Egy gyakorlati megoldás: rakjuk ki 100-szor a
játékot. Számoljuk meg hányszor sikeres a kirakás.
Ebből tudunk következtetni arra hogy mi lehet a
valószínűsége annak hogy ki lehet rakni a játékot.
Hasonló módszerrel számolták a neutron
elnyelődést is: elindítottak egy neutront a
szimulációban és követték. Sokszor megcsinálták
ezt (más kezdeti sebesség stb.)
Ebből ki lehetett következtetni azt a
valószínűséget amire kíváncsiak voltak.
Enrico Fermi Stanislaw Ulam, János Neumann
1930
1946, Manhattan Project
Los Alamos
Monte Carlo: kódnevet
kellett találni rá, mert
egy titkos projekt volt(a
Manhattan része)
Neumann tudta hogy
Ulam nagybátyja sok
pénzt veszített a
Monaco-i kaszinóban
(Monte Carlo)
Neumann
programozta
be az első
ilyen
szimulációt
az ENIAC-on
Monte Carlo módszer: véletlenszerű
mintavételezésen alapul, sokszor futtatják le
azért hogy valószínűségeket számoljanak ki
akkor használják amikor nem lehet zárt formájú
megoldást találni a feladatra vagy amikor nem
éri meg determinisztikus algoritmust
alkalmazni (pl. Molekuláris Dinamika,
numerikus számítások)
Monte Carlo:
 optimizáció
 numerikus integrálás
 mintavételezés valamilyen eloszlásból
sok csatolt szabadsági fokkal rendelkező
rendszerek: folyadékok, rendezetlen anyagok
(üveg, granuláris anyagok), csatolt elemekből
álló modellek mint a Potts modell (erre látunk
majd példát amit ezzel oldunk meg)
Monte Carlo:
 rizikó számítása üzleti életben
 multidimenzionális határozott integrálok
elvégzése bonyolult határfeltételekkel
 űrkutatás, olajmezők feltárása
az alap egy véletlenszám-generátor, egy
nagyon jó véletlenszám-generátorra van
szükség az MC-hez (jobbra mint a sima rand)
sima rand() használata C-ben
a rand() ad egy számot 0 és RAND_MAX között
m*rand()/(RAND_MAX+1.0)
sokkal jobb mint:
rand() % m
sima rand() használata C-ben
a rand() ad egy számot 0 és RAND_MAX között
m*rand()/(RAND_MAX+1.0)
legfontosabb biteket használja MSB
sokkal jobb mint:
rand() % m
a legkisebb biteket használja LSB
Egy példa a Monte Carlo módszerre Buffon tűje
ezt már nagyon jól ismeritek a statisztika óráról
mi köze ennek a
valószínűségnek
π-hez?
(+3 pont quiz)
A tű közepének a poziciója és a szög is
egyenletes eloszlásból jön, vagyis
x: 0 – t/2 1/(t/2) 2/t
θ: 0 – π 1/π
ezek közül nekünk
csak azok az esetek
kellenek ahol metszi
is a vonalat
Egy integrálást végzünk el
Erre ma is használják az MC-t
sok dimenziós int., irreguláris határfeltételek
Ahhoz hogy megértsük a különböző
mintavételezési módokat, játsszunk egy pár
játékot: a gyerekek játéka Monte Carlo-ban
A körbe eső és a négyzetbe eső kövek
számának az aránya fogja megadni π-t
A felnőttek is játszanak egy játékot, de ők egy
sokkal nagyobb terepen játszanak amit nem
tudnak egyszerűen bejárni
egy nő kidob egy
követ a területről
mit tegyen?
egy nő kidob egy
követ a területről
mit tegyen? (c
pontnál van)
A direct sampling az nagyon könnyűvé teszi a
munkát, nem is kell olyan sok mintát venni. A
probléma az hogy a legtöbb feladatnál nem
látjuk be egyszerre az egész eseményteret
és/vagy nem tudunk egyenletes
valószínűséggel állapotokat generálni benne.
Példa a cipősdoboz esete a pénzérmékkel
Random sequential adsorption (RSA)
 ez nem direkt mintavételezés
 azt még senki se tudott csinálni ehhez a
problémához
 egy Markov-chainnel lehet így mintavételezni
 ezzel az a probléma hogy nagyon sok mintát
kell venni ahhoz hogy az annak megfelelőt
kapjuk mintha tényleg direct sampling lenne
A csecsemők és a felnőttek játéka
Markov chain
Sampling
Direct
Sampling
a felnőttek játékszabályok szerint mennek
de ők is szeretnének egyenletes eloszlást
generálni
Condition of
detailed balance
Condition of detailed balance
Condition of detailed balance
Condition of
detailed balance
Hogyan teljesülhet
ez a felnőttek
játékánál?
Condition of
detailed balance
Hogyan teljesülhet
ez a felnőttek
játékánál?
Condition of
detailed balance
Hogyan teljesülhet
ez a felnőttek
játékánál?
Condition of
detailed balance
Az egyik mód ahogy ezt a feltételt teljesíteni
lehet, az a Metropolis Monte Carlo
mikrokankonikus sokaság
kanonikus sokaság
makrokanonikus sokaság
amikor arról beszélünk hogy minden állapot
egyenlő valószínűséggel fordul elő az a
mikrokanonikus sokaság
N,V,E konstans (izolált rendszer)
mikrokankonikus sokaság
kanonikus sokaság
makrokanonikus sokaság
amikor arról beszélünk hogy állandó a
hőmérséklet akkor már nem minden állapot
fordul elő egyenlő valószínűséggel
(ez a kanonikus sokaság)
N,V,T konstans (termosztatált rendszer)
mikrokankonikus sokaság
kanonikus sokaság
makrokanonikus sokaság
makrokanonikus sokaságban N is változhat, de
a kémiai potenciál állandó
kanonikus sokaság
π(a) ~ e^(-Ea/kt)
π(b) ~ e^(-Eb/kt)
π(b)/π(a) ~ e^-((Eb-Ea)/kt) = e^-ΔE/kT
tehát a Metropolis algoritmusban
a ΔE fog számítani
Emberek csoportosítása
optimális társaságokra
Kölcsönhatási mátrix
Szomszédsági mátrix
az elsőből kiszámolni
a másodikat (NP hard)
Simulated annealing
miért szükséges
hogy működik
alkalmazva a
csoportosítás példára
mi a hőmérséklet, mi az energia (cost function)