30
Métodos de Monte Carlo (Implementações) Autor: Ângelo Polotto – Aluno de Iniciação Científica Professor orientador: Rafael Frigori Bertolini

Apresentação Método de Monte Carlo

Embed Size (px)

Citation preview

Page 1: Apresentação Método de Monte Carlo

Métodos de Monte Carlo (Implementações)

Autor: Ângelo Polotto – Aluno de Iniciação Científica

Professor orientador: Rafael Frigori Bertolini

Page 2: Apresentação Método de Monte Carlo

Sumário

Introdução Limitações Exemplo 1 Implementação em Linguagem C Pré-Definições Cadeias de Markov Exemplo 2 Implementação em Linguagem C

Page 3: Apresentação Método de Monte Carlo

Introdução:

O intuido da simulação de monte carlo é trabalhar com modelos (físicos e/ou matemáticos) que possuem, em alguma de suas definições, indeterminações, as quais são definidas aleatoriamente durante a simulação. Por exemplo, a posição espacial de uma molécula em um determinado instante de tempo, em um gás.

Page 4: Apresentação Método de Monte Carlo

Um fato que vale ressaltar é que esse tipo de simulação é totalmente dependente dos pulsos de clock do computador, já que os números aleatórios são gerados dessa forma.

Apesar parecer estranho obtermos resultados conclusivos usando numeros aleatórios, nós conseguimos obtê-los tratando as sequências aleatórias por equações, seja ela de probabilidade ou de proporcionalidade.

Page 5: Apresentação Método de Monte Carlo

Limitações

Nas simulações de Monte Carlo temos o problema de o valor estimado se aproximar muito lentamente do exato.

Esse fato acarreta um aumento muito grande do tempo execução para se conseguir pequenas diminuições no valor do erro.

Para determinados problemas podemos ter um tempo maior que 1000 anos!!!

Page 6: Apresentação Método de Monte Carlo

Exemplo 1

Uma gama de problemas físicos podem ser resolvidos usando o Método de Monte Carlo. Podemos citar a estimativa de quanto tempo irá durar uma máquina sabendo apenas o tempo de duração das peças. Tabém é de grande importância a solução de problemas ligados à mecânica estatística.

A seguir será mostrado a implementação em linguagem C para encontrar a área de uma figura.

Page 7: Apresentação Método de Monte Carlo

Problema da Área

Temos a área de um quadrado conhecido (em azul claro) e a de um desconhecido que desejamos descobrir a área:

Page 8: Apresentação Método de Monte Carlo

Primeiramente dividiremos o quadrado em pequenos pedaços de forma que podemos sortear duas coordenadas em x e y:

Page 9: Apresentação Método de Monte Carlo

Após o sorteio de cara coordenada, temos que contar a quantidade de coordenadas que está contida na figura que queremos descobrir a área e o numero de pontos total:

Page 10: Apresentação Método de Monte Carlo

Com essas informações, vamos aplicar a seguinte relação de proporcionalidade (Regra de três):

ÁreaTotal⇔Número Total de PontosÁrea Desconhecida⇔NúmeroContidos

Page 11: Apresentação Método de Monte Carlo

Resolvendo:

Área Desconhecida=ÁreaTotal∗NúmerosContidosNúmeroTotal de Pontos

Page 12: Apresentação Método de Monte Carlo

Como consequência do fato de, muitas vezes, não conseguirmos preencher todos os pontos da área, já que isso tem um custo computacional muito grande, geramos sempre um erro estatístico junto com os nossos resultados.

Para o nosso exemplo anterior, temos que o erro é dado por:

σ=1/√Número deTotal de Pontos

Page 13: Apresentação Método de Monte Carlo

Pela fómula anterior é fácil estimar que a diminuição do erro implica em um aumento significativo no número de pontos sorteados. Há uma relação quadrática entre ambos.

Essa análise de erro não se limita a esse exemplo, extende-se para todos problemas resolvidos com MC.

Isso é um fato de grande limitação no Método de Monte Carlo, já que, em certos casos, trazer o erro para um valor considerável custa um tempo de simulação muito grande.

Page 14: Apresentação Método de Monte Carlo

Implementação em Linguagem C

O exemplo anterior foi implementado em linguagem C. O procedimento e a figura foram exatamente as mesmas descritas anteriormente.

As figuras foram desenhadas em uma matriz 300x400.

A toda a matriz foi preenchida com zero, sinalização de área fora da figura, e um, sinalização de área interna à figura.

Page 15: Apresentação Método de Monte Carlo
Page 16: Apresentação Método de Monte Carlo
Page 17: Apresentação Método de Monte Carlo
Page 18: Apresentação Método de Monte Carlo
Page 19: Apresentação Método de Monte Carlo

Compilando o código, obtemos na saida :

Vale ressaltar que os valores obtidos para a Área da figura mudarão a cada execução do código.

Page 20: Apresentação Método de Monte Carlo

Pré-Definições

Antes de iniciar com as Cadeias de Markov vale definir duas características importantes para funções aleatórias.

A primeira é o fato destas poderem ser contínuas, por exemplo, um termômetro que pudesse ser capaz de medir temperaturas em todos os periodos de tempo.

A segunda é o fato destas porderem ser discretas, por exemplo, um termômetro que medisse a temperatura de 10 em 10 minutos.

Page 21: Apresentação Método de Monte Carlo

Cadeias de Markov

As cadeias de Markov são sistemas estocásticos em que o futuro depende somente do estado presente e não do passado

As Markovianas são válidas somente para: o parâmetro n é discreto (ex: tempo) o espaço de estados E é discreto (coleção de

estados possíveis) O espaço pode ser finito ou infinito e enumerável.

Vamos considerar o mesmo finito. O estado inicial do processo ou o espaço de

estados é conhecido.

Page 22: Apresentação Método de Monte Carlo

Exemplo 2

Imaginemos uma cidade que possui somente três classes sociais (A, B e C), em que de tempos em tempos a probabilidade de alguém passar de uma classe para outra é constante e só depende da classe atual.

Para esse problema, consideraremos a seguintes matrizes:

Pinicial=[3 /84/81 /8 ] T=[1/ 2 1/ 4 0

1/ 2 1/ 2 1 /20 1/ 4 1 /2] Pfinal=[??? ]

Page 23: Apresentação Método de Monte Carlo

Onde Pinicial é a distribuição da população entre as três classes inicialmente, T é a matriz de transição, ou seja, armazena a probabilidade de transição entre as classes, e Pfinal é a matriz a ser calcula.

Para impletar visualizar a mudança da distribuição da população entre as classes em cada preriodo de tempo, a matriz Pfinal ganhou uma dimensão a mais para armazenar os valores antigos.

Page 24: Apresentação Método de Monte Carlo

Implementação em liguagem C

Page 25: Apresentação Método de Monte Carlo
Page 26: Apresentação Método de Monte Carlo
Page 27: Apresentação Método de Monte Carlo

Compilando o código, obtemos na saida :

É de se observar que após um determinado tempo a os valores não se altera, ou seja, chegamos no ponto de equilíbrio da equação.

Page 28: Apresentação Método de Monte Carlo

Algorítmo de Metrópolis

Em pendência.

Page 29: Apresentação Método de Monte Carlo

Referências

Landau, David P. - Guide to Monte Carlo Simulations in Statistical Physics.

www.mec.ita.br/~denise/teaching/.../aula03-Cadeias_de_Markov.pdf - Instituto Tecnológico de Aeronáutica Divisão de Engenharia Mecânica-Aeronáutica MOQ-12 Cadeias de Markov, - acesso em 02/11/2011.

Santos, Reginaldo J. - Cadeias de Markov, Departamento de Matemática-ICEx, Universidade Federal de Minas Gerais.

Page 30: Apresentação Método de Monte Carlo

www.nre.seed.pr.gov.br/curitiba/arquivos/File/CRTE/Math-crte.pdf - Utilizando o editor de fórmulas BrOffice.org Math – acesso em 03/11/2011.

pt.wikipedia.org/wiki/Cadeias_de_Markov – acesso em 03/11/2011.

Castro, J. - Linguagem C na Pratica