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