Téma 3: Metoda Monte Carlo Náhodná proměnná 2D
Katedra stavební mechaniky Fakulta stavební Vysoká škola báňská – Technická univerzita Ostrava
1,00
y
Přednáška z předmětu: Pravděpodobnostní posuzování konstrukcí 4. ročník bakalářského studia
1,20
0,80
0,60
0,40
0,20
0,00 0,00
0,20
0,40
0,60
0,80
1,00
x
1,20
Osnova přednášky
Začlenění metody Monte Carlo do přehledu pravděpodobnostních metod Historie metody Monte Carlo
Zákon velkých čísel Generátory (pseudo)náhodných čísel
Buffonova jehla První systematické využití metody Monte Carlo Využití metody Monte Carlo k numerické integraci Výhody a nevýhody metody Monte Carlo
Kongruenční generátory pseudonáhodných čísel Vliv vstupních konstant na vygenerovaná pseudonáhodná čísla
Názorná ukázka elementárního výpočtu metodou Monte Carlo
Metoda Monte Carlo
1 / 27
Pravděpodobnostní metody
Simulační metody Prostá simulace Monte Carlo Stratifikované simulační techniky
Importance Sampling – IS Adaptive Sampling – AS Directional Sampling – DS Line Sampling – LS
Aproximační metody
Přehled např. [Novák, 2005]
Pokročilé simulační metody:
Latin Hypercube Sampling – LHS Stratified Sampling - SC
First (Second) Order Reliability Method - FORM (SORM) Metody výběru vhodného rozdělení pravděpodobnosti založené na náhodném výběru rezervy spolehlivosti Perturbační techniky Metody plochy odezvy Response Surface - RS
Numerické metody
Přímý Optimalizovaný Pravděpodobnostní Výpočet - POPV
Přehled pravděpodobnostních metod
2 / 27
Buffonova jehla Jedním z nejstarších popsaných případů využití metody je problém tzv. Buffonovy jehly, nazvaný po francouzském matematikovi Georges-Louis Leclerc Comte de Buffonovi, který se roku 1777 pokoušel odhadnout hodnotu Ludolfova čísla náhodným vrháním jehly na linkovaný papír. Georges-Louis Leclerc, Comte de Buffon (1707-1788)
Pravděpodobnost jevu, kdy jehla stejné délky, jako je vzdálenost mezi linkami, po dopadu na papír zůstane ležet na papíře tak, že protíná některou z linek, 2 p je rovna: Historie metody Monte Carlo
3 / 27
Výpočet Ludolfova čísla Podobně lze stanovit hodnotu Ludolfova čísla následujícím způsobem: .r 2 S2 r 2 Obsah čtverce: Obsah čtvrtkružnice: S1 4 Poměr obou ploch:
S1 .r 2 2 S 2 4.r 4
Ludolfovo číslo je pak rovno:
4.
S1 S2
Základem výpočtu je čtverec o straně r, do kterého se náhodně hází malý předmět. Výsledný poměr počtu všech hodů a hodů do čtvrtkruhu stanoví hodnotu Ludolfova čísla . Historie metody Monte Carlo
4 / 27
První systematické využití metody Enrico Fermi (1901-1954)
Pravděpodobně první systematické využití metody Monte Carlo s reálnými výsledky je datováno až k roku 1930, kdy Nobelovou cenou oceněný italský fyzik Enrico Fermi tento přístup využíval ke generování náhodných čísel k výpočtu vlastností v té době nově objevené částice – neutronu. Stanislaw Ulam (1909-1984)
Dodnes jsou tak počátky rozvoje metody Monte Carlo spojovány se jmény Stanislaw Marcin Ulam a John von Neumann nebo Nicholas Metropolis. Oba prvně jmenovaní např. s využitím metody Monte Carlo zkoumali v americké Národní laboratoři Los Alamos chování neutronů (jaké množství neutronů projde různými materiály, např. nádrží vody). Historie metody Monte Carlo
5 / 27
První systematické využití metody Autoři již pracovali v době, kdy mohly používat pro simulování náhodných jevů jednoduché počítače. Název metody pochází právě od Stanislawa Ulama, který ji pojmenoval podle známého kasina v Monaku (Ulamův strýc zde sázel). Metoda se dříve používala pod označením „statistical sampling“ – statistický výběr. Náhodnost jevů a opakování jejich výskytu jsou identické k činnostem prováděných v kasinech (ruleta je jednoduchý fyzikální generátor náhodných čísel, podobně jako např. hrací kostka). Metoda Monte Carlo hrála klíčovou roli při simulacích, kterými se odhadovala štěpná reakce při vývoji atomové bomby v rámci projektu Manhattan (krycí název pro utajený americký vývoj atomové bomby za 2. světové války).
Historie metody Monte Carlo
6 / 27
Využití metody Monte Carlo k numerickému integrování Metoda je využívána zejména pro výpočet integrálů hustot pravděpodobností spojitých náhodných veličin, zejména vícerozměrných, kde běžné metody nejsou efektivní. Metoda Monte Carlo má široké využití od simulaci náhodných experimentů přes numerickou integraci určitých integrálů po numerické řešení diferenciálních rovnic. Z principů prosté simulační metody Monte Carlo vychází řada pravděpodobnostních postupů – např. SBRA.
Historie metody Monte Carlo
7 / 27
Výhody a nevýhody metody MC Metoda Monte Carlo je založena na provádění náhodných experimentů s modelem systému a jejich vyhodnocení. Výsledkem provedení velkého množství experimentů je obvykle pravděpodobnost určitého jevu. Výhodou je jednoduchá implementace, nevýhodou relativně malá přesnost. err
B N
kde N je počet náhodných experimentů (simulací, simulačních kroků, historií) a B je konstanta, vyjadřující povahu konkrétního příkladu Pro zvýšení přesnosti výsledku o jeden řád je tedy nutno zvýšit počet simulací alespoň o dva řády. Princip simulačních metod typu Monte Carlo
8 / 27
Chyba výpočtu simulací Monte Carlo Při pravděpodobnostním posouzení a výpočtu pravděpodobnosti poruchy pf závisí přesnost odhadu nejenom na celkovém počtu simulací N, ale také na řádu určované pravděpodobnosti poruchy pf . Variační koeficient pravděpodobnosti poruchy lze pro malé pravděpodobnosti definovat ve tvaru: vpf
Princip simulačních metod typu Monte Carlo
1 N. p f
9 / 27
Chyba výpočtu simulací Monte Carlo Např.: Pokud se bude odhad pravděpodobnosti poruchy pf pohybovat v řádu 10-4 a výpočet byl proveden s počtem simulačních kroků N=104, variační koeficient pravděpodobnosti poruchy se rovná: vpf
1 4
10 .10
4
1
Odhad chyby výsledné pravděpodobnosti poruchy pf je tedy 100%. Zvýšením počtu simulací N=106 pak variační koeficient pravděpodobnosti poruchy dosahuje příznivější hodnoty: vpf
1 6
10 .10
4
0,1
a výsledek by se neměl oproti přesnému řešení lišit o 10%. Princip simulačních metod typu Monte Carlo
10 / 27
Zákon velkých čísel Při velkém počtu nezávislých pokusů je možné téměř jistě očekávat, že relativní četnost se bude blížit teoretické hodnotě pravděpodobnosti.
Lze popsat s pomocí střední hodnoty náhodné veličiny: XN
1 X 1 ... X N N
kde X1, X2, ..., XN představuje nekonečnou posloupnost vzájemně nezávislých náhodných čísel s konečnou střední hodnotou . Se zvyšujícím se počtem historií N bude střední hodnota vygenerované posloupnosti konvergovat ke střední hodnotě X n , což lze demonstrovat na jednoduchém příkladu s hrací kostkou. Princip simulačních metod typu Monte Carlo
11 / 27
Zákon velkých čísel V případě hrací kostky o šesti stranách je aritmetický průměr součtu čísel na jednotlivých stranách roven:
1 2 3 4 5 6 21 3,5 6 6
Střední hodnota vržených čísel 5,0
4,5
Střední hodnota
4,0
3,5
3,0
2,5
2,0 0
2000
4000
6000
8000
10000
12000
14000
Počet hodů
Princip simulačních metod typu Monte Carlo
16000
18000
20000
Vývoj vypočtené střední hodnoty 20000 vržených čísel 12 / 27
Zákon velkých čísel Počty zastoupení jednotlivých čísel v 50000 hodech kostkou 10000
8206
8385
8223
8383
8458
8345
2
3
4
5
6
8000
6000
4000
2000
0 1
Počty zastoupení vržených čísel v 50000 hodech kostkou Princip simulačních metod typu Monte Carlo
13 / 27
Zákon velkých čísel
25,00%
20,00%
15,00%
Procentuální zastoupení
30,00%
10,00% 1
5,00%
2 3 slo Čí
4
0,00% 5 6 10
100
1000
10000
50000
65528
hodů počet ý v o lk Ce
Procentuální zastoupení jednotlivých čísel
Procentuální zastoupení vržených čísel (celkové maximum počtu hodů 65528 je limitováno kapacitními možnostmi tabulkového procesoru Excel)
Princip simulačních metod typu Monte Carlo
14 / 27
Generátory (pseudo)náhodných čísel Fyzikální generátory náhodných čísel
Kongruenční generátory pseudonáhodných čísel
U n 1 A U n C mod M Princip simulačních metod typu Monte Carlo
15 / 27
Kongruenční generátory pseudonáhodných čísel Nejpoužívanější generátory náhodných čísel, poprvé zavedené americkým matematikem Lehmerem v roce 1948. Slouží pro generování posloupností náhodných veličin s rovnoměrným rozdělením.
Derrick Henry Lehmer (1905-1991)
Generování pseudonáhodných čísel s pomocí rekurentního vztahu: U n 1 A U n C mod M
kde konstanty A, C, a M určují statistickou kvalitu generátoru (žádoucí nesoudělnost A a M). Princip simulačních metod typu Monte Carlo
16 / 27
Vliv vstupních konstant na vygenerovaná čísla U n 1 A U n C mod M 7
6
5
4
3
Vstupní údaje
2
1
Princip simulačních metod typu Monte Carlo
80
76
72
68
64
60
56
52
48
44
40
36
32
28
24
20
16
12
8
4
0
0
x0
1
A
1
C
3
M
7
17 / 27
Vliv vstupních konstant na vygenerovaná čísla U n 1 A U n C mod M 25
20
15
10
Vstupní údaje 5
Princip simulačních metod typu Monte Carlo
80
76
72
68
64
60
56
52
48
44
40
36
32
28
24
20
16
12
8
4
0
0
x0
1
A
7
C
3
M
23
18 / 27
Vliv vstupních konstant na vygenerovaná čísla U n 1 A U n C mod M 1200
1000
800
600
400
Vstupní údaje
200
Princip simulačních metod typu Monte Carlo
80
76
72
68
64
60
56
52
48
44
40
36
32
28
24
20
16
12
8
4
0
0
x0
1
A
7
C
10
M
1011
19 / 27
Vliv vstupních konstant na vygenerovaná čísla 1,00
U n 1 A U n C mod M 0,75
Setříděno 0,50
1,00
0,25
0,75
80
76
72
68
64
60
56
52
48
Princip simulačních metod typu Monte Carlo
80
76
72
68
64
60
56
52
48
44
40
36
32
0,00 28
1
24
M
20
0,333 16
C
0,50
0,25
12
758
8
A
4
0,5
44
40
36
32
28
24
16
20
x0
0
Vstupní údaje:
12
8
4
0
0,00
20 / 27
Numerická integrace metodou Monte Carlo Metoda Monte Carlo se využívá nejčastěji k řešení vícerozměrných integrálů. I
xh
yh
xd
yd
f x, y,...dxdy... f x, y,...dxdy... V
Numerické integrování s využitím metody Monte Carlo spočívá ve stanovení hodnoty funkce f v N náhodných bodech, ležících v integrované oblasti V . Výsledný integrál pak lze definovat: V N I f ; N V . f . f i N i 1
kde f představuje střední hodnotu funkce f, vypočtenou v N náhodných bodech. Princip simulačních metod typu Monte Carlo
21 / 27
Numerická integrace metodou Monte Carlo Odchylku od střední hodnoty funkce f zachycuje směrodatná odchylka:
N
f ;N
i 1
f fi
2
N
Podobně lze stanovit i odchylku od střední hodnoty výsledného integrálu I: V I ; N N
N
i 1
f fi
2
což lze považovat za ukazatel nepřesnosti výpočtu.
Princip simulačních metod typu Monte Carlo
22 / 27
Numerická integrace metodou Monte Carlo Algoritmus výpočtu integrálu metodou Monte Carlo lze zefektivnit. Integrační oblast se může uzavřít do oblasti se známým objemem
V , ve které lze
~ snadno generovat náhodné body. Zavedená funkce f pak nabývá hodnot: x V ~ 0 f f x x V
Po vygenerování N náhodných bodů, ležících v oblasti přibližná hodnota výsledného integrálu rovna: V I N
N
V , pak bude
~ f x
i 1
Pro demonstraci postupu numerického integrování s využitím simulace Monte Carlo poslouží následující příklad. Princip simulačních metod typu Monte Carlo
23 / 27
Výpočet objemu polokoule Je dána funkce: f x, y r 2 x 2 y 2 , která představuje rovnici polokoule. Oblastí V pak je kružnice s poloměrem r, oblast straně 2.r, v němž bude kružnice vepsaná.
V představuje čtverec o
~ Funkce f pak bude mít tvar:
x2 y2 r 2 ~ 0 f 2 2 2 f x, y x y r
a směrodatná odchylka vypočteného odhadu integrálu se bude rovnat: V I , N N
n
i 1
~ ~ f fi
2
Ukázkový výpočet byl proveden pro 1000 pseudonáhodných čísel. Poloměr polokoule r se rovná 1 m. Názorná ukázka elementárního výpočtu metodou Monte Carlo
24 / 27
Vygenerované dvojice pseudonáhodných čísel Náhodná proměnná 2D 1,20
y
1,00
0,80
0,60
0,40
0,20
0,00 0,00
0,20
0,40
0,60
0,80
1,00
x
1,20
Tisíc vygenerovaných pseudonáhodných dvojic čísel pro výpočet objemu polokoule, zobrazených jako graf 2D náhodné proměnné (vstupní parametry: x0=0,5; A=758; C=0,333 a M=1; y0=0,5; A=239; C=0,666 a M=1) Názorná ukázka elementárního výpočtu metodou Monte Carlo
25 / 27
~ Graf hodnot funkce f v N=1000 vygenerovaných bodech Výsledná hodnota odhadu integrálu: I = 2,17707 Přesná hodnota: 2,09440. Směrodatná odchylka odhadu integrálu = 0,04347, tedy 4,35%.
f x, y r 2 x 2 y 2 Názorná ukázka elementárního výpočtu metodou Monte Carlo
26 / 27
25
Závěry
20
15
10
5
80
76
72
68
64
60
56
52
48
44
40
36
32
28
24
20
16
8
12
4
0 0
Přednáška:
byla zaměřena na základní pravděpodobnostní metodu – prostou simulační metodu Monte Carlo,
ukázala historii vývoje této pravděpodobnostní metody,
vysvětlila podstatu kongruenčních generátorů pseudonáhodných čísel, které se uplatňují při výpočtu simulační metodou Monte Carlo,
metodiku výpočtu simulační metodou Monte Carlo demonstrovala na elementárním příkladu.
Závěry
27 / 27
Děkuji za pozornost! Náhodná proměnná 2D 1,20
y
1,00
0,80
0,60
0,40
0,20
0,00 0,00
0,20
0,40
0,60
0,80
1,00
x
1,20