Monte Carlo Method Monte Carlo Simulation
Peter Frank Perroni
December 1, 2015
Peter Frank Perroni
Monte Carlo Method
Hist´orico
T´ecnica muito antiga por´em somente recentemente oficializado como m´etodo estat´ıstico. Foi muito importante nas simula¸c˜ oes da bomba desenvolvida no Projeto Manhattan. Stanislaw Ulam e John von Neumann, Projeto Manhattan (WW II), 1946.
Peter Frank Perroni
Monte Carlo Method
Hist´orico
T´ecnica muito antiga por´em somente recentemente oficializado como m´etodo estat´ıstico. Foi muito importante nas simula¸c˜ oes da bomba desenvolvida no Projeto Manhattan. Stanislaw Ulam e John von Neumann, Projeto Manhattan (WW II), 1946. Desenvolvido durante uma tentativa de Stanislaw de estimar as chances de ganhar no jogo de cartas “Paciˆencia”. Um colega (Nicholas Metropolis) sugeriu dar ao m´etodo o nome de um cassino de Mˆ onaco chamado Monte Carlo, onde seu tio costumava perder todo seu dinheiro.
Peter Frank Perroni
Monte Carlo Method
Defini¸c˜ao
Classe de algoritmo estoc´astico que utiliza amostras aleat´orias para obter resultados num´ericos. Utilizado quando os m´etodos matem´aticos s˜ao ineficientes e/ou ineficazes. Aplic´avel a qualquer problema de interpreta¸c˜ao probabil´ıstica. Traduz incertezas do modelo de entrada em incertezas no modelo de sa´ıda. Gera uma distribui¸c˜ao de probabilidade a partir de outra distribui¸c˜ao de probabilidade.
Peter Frank Perroni
Monte Carlo Method
Utiliza¸c˜ao
Principais classes de problemas: Visualiza¸c˜ao de Distribui¸c˜ oes de Probabilidade com regras complexas Otimiza¸c˜ao Integra¸c˜ao
Aplica¸c˜oes em: An´alise de tr´afego Predi¸c˜ao de bolsa de valores Desenho de cirtuitos integrados Desenvolvimento de modelos matem´aticos de Astrof´ısica Comunica¸c˜ao, Engenharias, Mecˆanica Quˆantica, etc.
Peter Frank Perroni
Monte Carlo Method
Amostragem
Valores amostrais calculados em pontos aleat´orios da fun¸c˜ao sendo simulada s˜ao utilizados para estimar o valor real da fun¸c˜ao. Quanto mais amostras, melhor a aproxima¸c˜ao do valor real da fun¸c˜ao.
Peter Frank Perroni
Monte Carlo Method
Amostragem C´alculo de π atrav´es do M´etodo Monte Carlo
Peter Frank Perroni
Monte Carlo Method
Amostragem
Considerando um caso hipot´etico em que Para 1 u ´nica dimens˜ao, 10 amostras s˜ao o suficiente para um bom resultado. Ent˜ao para 10 dimens˜ oes, 1010 amostras s˜ao necess´arias. → Impratic´avel para 10 dimens˜ oes. → N˜ao comput´avel para 100 dimens˜ oes (10100 ).
Peter Frank Perroni
Monte Carlo Method
Amostragem
Quantidade de amostras excessivamente reduzida afeta a qualidade dos resultados. A quantidade ideal de amostras ´e impratic´avel. A Confian¸ca ´e diretamente dependente do n´ umero de amostras utilizadas. A sele¸c˜ao de bons conjuntos amostrais ´e crucial para resultado satisfat´ orios com reduzida quantidade de avalia¸c˜oes.
Peter Frank Perroni
Monte Carlo Method
Amostragem
Quantidade de amostras excessivamente reduzida afeta a qualidade dos resultados. A quantidade ideal de amostras ´e impratic´avel. A Confian¸ca ´e diretamente dependente do n´ umero de amostras utilizadas. A sele¸c˜ao de bons conjuntos amostrais ´e crucial para resultado satisfat´ orios com reduzida quantidade de avalia¸c˜oes. → O gerador de n´ umeros aleat´ orios ´e quem define quais amostras ser˜ao calculadas.
Peter Frank Perroni
Monte Carlo Method
Distribui¸c˜ao de Probabilidade
O gerador de n´ umeros aleat´ orios afeta diretamente na qualidade das amostras obtidas. Sua distribui¸c˜ao de probabilidade guia a regi˜ao onde as amostras ser˜ao mais frequentemente calculadas. Deve ter boa aleatoriedade.
Peter Frank Perroni
Monte Carlo Method
Distribui¸c˜ao de Probabilidade Distribui¸c˜ao Normal Gaussian 3.5
3
2.5
2
1.5
1
0.5
0
0
0.2
0.4
Peter Frank Perroni
0.6
0.8
Monte Carlo Method
1
Distribui¸c˜ao de Probabilidade Outras Distribui¸c˜oes de Probabilidades Beta 5000 4000 3000 2000 1000 0 -30 -20 -10 0
Cauchy 8000
15000
6000
10000
4000
5000 10 20 30
10 20 30
Log Normal 35000 30000 25000 20000 15000 10000 5000 0 -30 -20 -10 0 10 20 30
2000
0 -30 -20 -10 0
Exponential 10000 8000 6000 4000 2000 0 -30 -20 -10 0
Chi Square
20000
10 20 30
0 -30 -20 -10 0
Gamma 10000 8000 6000 4000 2000 0 -30 -20 -10 0
10 20 30
Poisson 20000 15000 10000 5000 0 -30 -20 -10 0
Peter Frank Perroni
10 20 30
10 20 30
Laplace 25000 20000 15000 10000 5000 0 -30 -20 -10 0
10 20 30
Uniform 3000 2500 2000 1500 1000 500 0 -30 -20 -10 0 10 20 30
Monte Carlo Method
Distribui¸c˜ao de Probabilidade
Vari´aveis do problema podem ter caracter´ısticas diferentes. Cada vari´avel pode utilizar sua pr´ opria distribui¸c˜ao de probabilidades.
Peter Frank Perroni
Monte Carlo Method
Distribui¸c˜ao de Probabilidade
M´etodo da Fun¸c˜ao Inversa Uniform Distribution (PDF)
Exponential (CDF) 1
1 0.8 0.8 0.6
0.6
0.4
0.4
0.2
0.2 0
r 0
0.2
0.4
0.6
0.8
1
Peter Frank Perroni
0
x 0
2
Monte Carlo Method
4
6
8
Integra¸c˜ao ´ Integra¸c˜ao pela Area Total Aproximado pela ´area total multiplicado pela fra¸c˜ao de pontos que ficaram abaixo da curva.
Peter Frank Perroni
Monte Carlo Method
Integra¸c˜ao Integra¸c˜ao pela M´edia Calcula-se f (x) para cada amostra aleat´ oria.
Peter Frank Perroni
Monte Carlo Method
Integra¸c˜ao Integra¸c˜ao pela M´edia Estima a integral pela m´edia das amostras multiplicada pelo intervalo analisado.
-
-f
Peter Frank Perroni
Monte Carlo Method
Integra¸c˜ao Integra¸c˜ao pela M´edia Estima a integral pela m´edia das amostras multiplicada pelo intervalo analisado. Rb a
f (x)d(x) ≈ (b − a) N1
PN
i=1 f (xi )
N = n´ umero de amostras xi = amostras
-
-f
Peter Frank Perroni
Monte Carlo Method
N´umeros Aleat´orios
N´ umeros Totalmente Aleat´ orios True Random Number Generator (TRNG) N˜ao h´a como prever. Experimentos tornam-se irreprodut´ıveis. Nenhuma distribui¸c˜ao de probabilidades pode ser associada.
Requer hardware especializado ou software espec´ıfico. /dev/random, /dev/urandom rngd, entropy tools, etc. i7, Babbler, GRANG, etc.
Peter Frank Perroni
Monte Carlo Method
N´umeros Pseudo-Aleat´orios
Pseudo Aleatoriedade N´ umeros aparentemente aleat´ orios produzidos a partir de: Uma semente. Uma equa¸c˜ao matem´atica.
Possui per´ıodo de ciclicidade definido pela equa¸c˜ao utilizada. Segue uma distribui¸c˜ao probabil´ıstica. Uniforme, Gaussiana, Exponencial, Cauchy, etc.
Peter Frank Perroni
Monte Carlo Method
N´umeros Pseudo-Aleat´orios
Gerador de N´ umeros Pseudo-Aleat´ orios Pseudo Random Number Generator (PRNG). Deve possuir per´ıodo suficientemente longo. C´alculo deve ser eficiente. Correla¸c˜ao entre os n´ umeros gerados deve ser de dif´ıcil compreens˜ao. Sementes diferentes devem produzir n´ umeros diferentes. Sementes iguais devem produzir sempre a mesma sequˆencia.
Peter Frank Perroni
Monte Carlo Method
N´umeros Pseudo-Aleat´orios
PRNG de Distribui¸c˜ao Uniforme Muito eficiente e de f´acil implementa¸c˜ao. Requer um m´odulo (m), um multiplicador (a) e um incremento (c). Os valores utilizados para cada parˆametro afeta a qualidade e a periodicidade da sequˆencia.
sn+1 = (a × sn + c) mod m Onde: m > 0, 0 < a < m, 0 ≤ c < m, 0 ≤ s0 < m
Peter Frank Perroni
Monte Carlo Method
N´umeros Pseudo-Aleat´orios
PRNG de Distribui¸c˜ao Uniforme Os parˆametros devem obedecer aos seguintes crit´erios para maximizar o per´ıodo: c e m devem ser primos entre si. (a − 1) deve ser divis´ıvel por todos os fatores primos de m. Se m for m´ ultiplo de 4, (a − 1) tamb´em deve ser m´ ultiplo de 4.
Peter Frank Perroni
Monte Carlo Method
N´umeros Pseudo-Aleat´orios
PRNG de Distribui¸c˜ao Uniforme Os parˆametros devem obedecer aos seguintes crit´erios para maximizar o per´ıodo: c e m devem ser primos entre si. (a − 1) deve ser divis´ıvel por todos os fatores primos de m. Se m for m´ ultiplo de 4, (a − 1) tamb´em deve ser m´ ultiplo de 4.
Exemplos: sn+1 = (3 × sn + 5) mod 32, com s0 = 9 sn+1 = (1103515245 × sn + 12345) mod 231
Peter Frank Perroni
Monte Carlo Method
Exemplo C´ alculo de π
Figure : C´alculo de π atrav´es do M´etodo de Monte Carlo.
Peter Frank Perroni
Monte Carlo Method
Exemplo C´ alculo de π
Figure : Quadrante do C´ırculo (r = 1).
Equa¸c˜ao da Circunferˆencia: x 2 + y 2 = r 2 → x 2 + y 2 = 1 2 ´ Area do Quadrante do C´ırculo: Ac = πr4 = π4 ´ Area do Quadrado: Aq = r 2 = 1 Portanto,
Ac Aq
=
π 4
1
=
π 4
→
Peter Frank Perroni
Ac π = 4A q
Monte Carlo Method
Exemplo C´ alculo de π // Outra forma de se ver o problema : ´ // A rea do c´ ı rculo = pi * r ^2 // Para calcular pi , r = 1 --> pi = ´ a rea do c´ ı rculo . # define RAIO_2 1 double pi ( int n ){ int count = 0; double x , y ; // Estima a a ´ rea do Quadrante do c´ ı rculo . for ( int i =0; i < n ; i ++){ // Utilizando Distribui¸ c~ a o Uniforme . x = ( double ) rand () / RAND_MAX ; y = ( double ) rand () / RAND_MAX ; if ( x * x + y * y