Designa-se por método de Monte Carlo (MMC) qualquer método de uma classe de métodos estatísticos que se baseiam em amostragens aleatórias massivas para obter resultados numéricos. Em suma, utilizam a aleatoriedade de dados para gerar um resultado para problemas que a priori são determinísticos. São utilizados mais comumente em problemas de física e de matemática onde são muito difíceis ou impossível de serem resolvidos com outros métodos.
O método de Monte Carlo tem sido utilizado há muito tempo como forma de obter aproximações numéricas de funções complexas em que não é viável, ou é mesmo impossível, obter uma solução analítica ou, pelo menos, determinística.
Em princípio, métodos de Monte Carlo podem ser usados para resolver quaisquer problemas com um interpretação probabilística. Pela Lei dos Grandes Números, integrais descritas pelo valor esperado de alguma variável aleatória podem ser aproximadas obtendo a média empírica de amostras independentes de variáveis. Quando a distribuição de probabilidade da variável é parametrizada, normalmente é utilizada o gerador de amostras Markov chain Monte Carlo (MCMC), tendo assim, que no limite, as amostras geradas serão amostras da distribuição desejada.
História
De acordo com Hammerseley (1964) o nome "Monte Carlo" surgiu durante o projeto Manhattan na Segunda Guerra Mundial. No projeto de construção da bomba atómica, Stanisław Ulam, von Neumann e Fermi consideraram a possibilidade de utilizar o método, que envolvia a simulação direta de problemas de natureza probabilística relacionados com o coeficiente de difusão do nêutron em certos materiais. Apesar de ter despertado a atenção desses cientistas em 1948, a lógica do método já era conhecida há bastante tempo. Por exemplo, existe um registro de um artigo escrito por Lord Kelvin dezenas de anos antes, que já utilizava técnicas de Monte Carlo em uma discussão das equações de Boltzmann.
Antes do método de Monte Carlo ser desenvolvido, as simulações possuíam um problema determinístico devido a amostragem estatística que era usada para estimar as incertezas nas simulações. As simulações de Monte Carlo invertem essa abordagem, resolvendo problemas determinísticos usando probabilidades meta-heurísticas.
Uma variante inicial do método de Monte Carlo foi desenvolvida para resolver o problema da agulha de Buffon, no qual Pi () pode ser estimado jogando agulhas em um piso feito de tiras equidistantes paralelas. Na década de 1930, Enrico Fermi experimentou pela primeira vez o método Monte Carlo enquanto estudava a difusão de nêutrons, mas não publicou este trabalho.[1]
No final dos anos 1940, Stanislaw Ulam inventou a versão moderna do método Markov Chain Monte Carlo enquanto trabalhava em projetos de armas nucleares no Laboratório Nacional de Los Alamos. Imediatamente após a descoberta de Ulam, John von Neumann compreendeu sua importância. Von Neumann programou o computador ENIAC para realizar cálculos de Monte Carlo. Em 1946, físicos de armas nucleares em Los Alamos estavam investigando a difusão de nêutrons em material fissionável. Apesar de ter a maioria dos dados necessários, como a distância média que um nêutron viajaria em uma substância antes de colidir com um núcleo atômico e quanta energia o nêutron provavelmente emitiria após uma colisão, os físicos de Los Alamos não foram capazes de resolver o problema usando métodos matemáticos convencionais determinísticos. Ulam propôs então o uso de experimentos aleatórios.[2]
Por ser secreto, o trabalho de von Neumann e Ulam exigia um codinome. Um colega de von Neumann e Ulam, Nicholas Metropolis, sugeriu usar o nome Monte Carlo. Se referindo ao Cassino Monte Carlo em Mônaco. Usar listas de números aleatórios "verdadeiramente aleatórios" era extremamente lento, mas Von Neumann desenvolveu uma maneira de calcular números pseudo-aleatórios usando o método do quadrado do meio. Embora este método tenha sido criticado como bruto, von Neumann justificava como sendo o método mais rápido disponível na época.[3][4]
Exemplos
Estimativa da população de peixes em um lago
Um exemplo clássico do uso do método de Monte Carlo é a estimativa da população de peixes em um lago. Nesse método é feita uma primeira etapa de identificação: são pescados diversos peixes que são marcados por meio de um anel. Nessa etapa é importante saber exatamente o número de peixes que foram identificados dessa forma.
Na segunda etapa são pescados novamente uma certa quantidade de peixes aleatoriamente, anotando respectivamente aqueles que estavam identificados com o anel e aqueles que não estavam identificados.
É esperado que a proporção entre peixes pescados com a identificação e o número total de peixes pescados siga a mesma proporção entre o número total de peixes com a identificação e o número total de peixes, como mostra a relação:
Sendo o número de peixes pescados que estavam marcados, o número total de peixes pescados, o número total de peixes marcados e o número total de peixes.
Por meio desta relação é possível obter o número total de peixes no lago , já que , e são dados do experimento.
Estimativa para o valor de
Um exemplo simples de simulação seria o cálculo de . Modelamos um círculo de raio unitário inscrito em um quadrado e geramos pontos aleatórios dentro desse quadrado, que podem assim estar dentro ou fora do círculo. Com uma amostragem grande o suficiente de pontos, a razão dos pontos dentro do círculo pelo total de pontos gerados se aproxima de um quarto da razão da área do círculo pela área do quadrado (já que o quadrado terá área igual a 4 unidades de medida de área). Assim, estimamos o valor de numericamente, como demonstrado nos códigos abaixo, utilizando a geração de números pseudo-aleatórios em uma distribuição uniforme entre 0 e 1. Como todos os números gerados no código apresentado são positivos, a área analisada é apenas a do primeiro quadrante. Contudo, isso não interfere na razão entre o número de pontos dentro do círculo e o número de pontos dentro do quadrado já que ambos, tanto o círculo quanto o quadrado, têm sua área reduzida em um quarto, mantendo a razão constante.
Pseudocódigo
1. Inicializar pontos_círculo, pontos_quadrado e número de pontos a serem gerados N.
2. Para i <= N:
3. Gerar ponto x aleatório.
4. Gerar ponto y aleatório.
5. Calcular d = x*x + y*y.
6. Se d <= 1, incrementar pontos_círculo.
7. Calcular pi = 4*(pontos_círculo/pontos_quadrado).
8. Encerrar
Exemplo em python
import numpy as np
N = 100000 # número de iterações
n = 0
#gerando as coordenadas dos pontos no quadrado unitário seguindo uma distribuição uniforme entre 0 e 1.
x = np.random.uniform(size=N)
y = np.random.uniform(size=N)
#percorrendo as listas geradas de x e y, se o ponto gerado estiver dentro do primeiro quadrante do círculo, somo 1 no contador n.
for i in range(N):
if x[i]**2 + y[i]**2 < 1:
n+=1
#como a área de um quadrante do círculo é pi/4, multiplicamos a razão n/N por 4
pi = 4*n/N
Exemplo em R
N <- 100000 # número de iterações
n <- 0
# coordenadas dos pontos no quadrado unitário
# seguindo uma distribuição uniforme entre 0 e 1
x <- runif(N)
y <- runif(N)
# percorrento x e y e realizando a contagem
# de quantos pontos estão no círculo unitário (n)
for (i in 1:N){
if (x[i]^2 + y[i]^2 < 1){
n <- n + 1
}
}
# Como a área de um quadrante é pi/4,
# a razão n/N é multiplicada por 4
pi <- 4*n/N
Método de integração por Monte Carlo
No exemplo anterior, foi utilizado o método de integração por Monte Carlo para obter o valor da área correspondente ao valor de . Esse método de integração pode ser utilizado analogamente em qualquer outra função dentro dos requisitos de integração. Segue um exemplo de código e pseudocódigo para uma função estritamente positiva dentro de um intervalo definido.
Pseudocódigo
1. Definir a função, o intervalo de integração [a,b], o número de iterações N e o número de contagem n=0.
2. Para i <= N:
3. Gerar ponto x0 aleatório entre a e b
4. Gerar ponto y0 aleatório entre 0 e o máximo da função no intervalo max_y
5. Calcular f(x0)
6. Se y0 < = f(x0), incrementar n.
7. Calcular área = max_y*(b-a)*(n/N).
8. Encerrar
Exemplo em Python
import numpy as np
def f(x): # função a ser integrada
y=1+x**2
return y
a = 5 # limite inferior do intervalo
b = 10 # limite superior do intervalo
N = 1000000 # numero de interacoes
n = 0 # contagens entre a funcao e y=0
x = a+(b-a)*np.random.uniform(size=N) # pontos aleatorios entre a e b
max_y=max([f(x[i]) for i in range(N)]) # encontrando o maximo da funcao no intervalo
y = max_y*np.random.uniform(size=N) # pontos aleatorios entre 0 e max_y
for i in range(N):
if y[i] < f(x[i]):
n+=1
# a area da integracao em relacao a area do retangulo segue a proporcao n/N
A = max_y*(b-a)*(n/N)
print(A)
Classes do algoritmo Monte Carlo
Existem três classes de algoritmos Monte Carlo: Erro-Unilateral, Erro-Bilateral e Erro-Não-Limitado.
Monte Carlo de Erro-Unilateral
Seja um problema e A um algoritmo aleatório, A é um algoritmo Monte Carlo de Erro-Unilateral que resolve se
i) para toda configuração que é solução de , , e
ii) para toda configuração que não é solução de , .
Ou seja, sempre que a resposta é NÃO, o algoritmo garante a certeza da resposta.
Contudo, se a resposta for SIM, o algoritmo não garante que a resposta está correta.
Monte Carlo de Erro-Bilateral
Um algoritmo aleatório A é um algoritmo de Monte Carlo de Erro-Bilateral que computa o problema se existe um número real positivo , tal que para toda instância de
Monte Carlo de Erro-Não-Limitado
Os algoritmos Monte Carlo de Erro-Não-Limitado são comumente chamados de Algoritmos Monte Carlo.
Um algoritmo aleatório A é um algoritmo de Monte Carlo se para qualquer entrada x do problema F
Números aleatórios
A ideia principal por trás deste método é que seus resultados são baseados em amostragens aleatórias e análises estatísticas, de forma que o método gera experimentos aleatórios, onde seus resultados são desconhecidos. Desta forma, é necessário utilizar métodos de geração de sequências de números aleatórios ou, no caso de computadores, números pseudo-aleatórios, permitindo acesso ao estado inicial do gerador, facilitando a reprodução da simulação. Simulações de Monte Carlo de qualidade devem ter certas características[5]:
- O gerador deve ter um longo “período” antes que a sequência dos números se repita;
- O gerador deve produzir números que passam em testes de aleatoriedade;
- Existem amostras suficientes para obter resultados acurados;
- O algoritmo utilizado é válido para o que está sendo modelado;
- Simula o fenômeno em questão;
- O método de amostragem correto é utilizado.
Algoritmo de Metropolis
O algoritmo de Metropolis, também conhecido por Algoritmo de Metropolis-Hastings, apresentado inicialmente em 1953 num artigo [6] de Nicholas Metropolis, Arianna Rosenbluth, Marshall Rosenbluth, Augusta Teller e Edward Teller, e generalizado em 1970 por W. K. Hastings [7], é provavelmente o método Monte Carlo mais utilizado na Física, e tem como objetivo determinar valores esperados de propriedades do sistema simulado, através de uma média sobre uma amostra. O algoritmo é concebido de modo a se obter uma amostra que siga a distribuição de Boltzmann.
Para se determinar a probabilidade de uma dada configuração, seria necessário conhecer a chance de ocorrência de todas as outras configurações. No caso de variáveis contínuas, seria necessário uma integração da densidade de probabilidade sobre todo o espaço de configurações, mas esse procedimento fica muito custoso quando se utiliza um número de variáveis da ordem de centenas.
A eficiência do algoritmo de Metropolis está diretamente ligada ao fato de não levar em conta a probabilidade das configurações em si, mas sim a razão entre elas, pois a razão entre as probabilidades de duas dadas configurações pode ser determinada independentemente das outras. Dadas duas configurações e quaisquer, a razão entre a probabilidade da configuração , , e a probabilidade da configuração , , pode ser escrita como:
A partir dessa igualdade, o algoritmo de Metropolis pode ser implementado através do seguinte conjunto de regras:
(a) Geração de uma configuração inicial aleatória, ou seja, com valores aleatórios para todos os graus de liberdade do sistema, respeitando as suas restrições. Vamos atribuir o índice a essa configuração, que é aceita para a amostra.
(b) Geração de uma nova configuração-tentativa de índice , resultado de pequenas alterações nas coordenadas da configuração .
(c) Se a energia da configuração for menor que a da configuração , inclui-se a configuração na nossa amostra, e se atribui a ela o índice a partir desse momento. Caso contrário, realizam-se os passos descritos nos subitems (c1) e (c2) abaixo:
(c1) Gera-se um número aleatório entre 0 e 1;
(c2) Se esse número aleatório for menor que , aceita-se na amostra a configuração , e se atribui a ela o índice . Caso contrário, o índice permanece designando a configuração original.
(d) Repete-se os passos (b) e (c) até que algum critério de parada seja satisfeito. Cada uma dessas repetições é dita um passo Monte Carlo (MC).
Programas de simulação
- PENELOPE
PENELOPE (Penetration and Energy Loss of Positrons and Electrons) é utilizado para simular interações de elétrons e de pósitrons (como dispersão elástica e emissão bremsstrahlung), onde eventos 'duros' (i.e. perda de energia maior que os cutoffs pré-seleccionados) são simulados com precisão, ao passo que as interações 'suaves' são calculadas a partir de múltiplas abordagens de dispersão. Interações de fótons (dispersão de Rayleigh, dispersão de Compton, efeito fotoelétrico e produção de pares de elétrons-pósitrons) e aniquilação de pósitrons são simuladas de uma forma detalhada[8].
- BEAMnrc
BEAMnrc é um código de Monte Carlo usado para simular feixes de radiação de unidades de radioterapia incluindo elétrons e fótons de alta energia. É capaz de acompanhar o histórico de cada partícula e marcar o depósito de dose separados usando esta informação.
O código BEAM modela a fonte de terapia com o eixo z como o eixo do feixe, e geralmente a origem é definida como o centro do feixe onde ele sai do vácuo do acelerador. Este modelo consiste em um grupo de módulos componentes (CMs), contido entre dois planos perpendiculares para o eixo z e não estão sobrepostos [9][10].
B-RISK
Software voltado para a simulação de incêndios em prédios. Permite simular objetos aleatoriamente alocados dentro de um ambiente e a taxa de calor emitido a ser determinada, respostas de sprinklers e confiabilidade de sistemas como detectores de fumaça e portas contra incêndio.
Tonatiuh
Software de ray-tracing voltado para simulações óticas de sistemas que concentram luz solar, permitindo visualização 3D dos sistemas analisados, implementação de novos modelos de luz solar, geometrias de superfícies e materiais refletivos.
Cassandra
Código aberto que utiliza Monte Carlo atomístico para simular propriedades termodinâmicas de fluidos e sólidos capaz de simular qualquer número de moléculas compostas de anéis, cadeias ou ambos. Ele pode ser usado para simular pequenas moléculas orgânicas, oligômeros e líquidos iônicos. Ele lida com um campo de força do tipo "Classe I" padrão com comprimentos de ligação fixos, ângulos de ligação harmônicos e ângulos inadequados, um potencial diédrico CHARMM ou estilo OPLS, um potencial de Lennard-Jones 12-6 ou potencial Mie e cargas parciais fixas. Cassandra pode simular os seguintes conjuntos: canônico (NVT), isotérmico-isobárico (NPT), grand (muVT), osmótico (muPT) e Gibbs (versões NVT e NPT).[11]
Monte Carlo e COVID-19
Utilizando simulação de Monte Carlo, foi possível montar uma modelagem para a dinâmica de espalhamento da COVID-19 utilizando primeiramente cenários definidos previamente e depois testando o modelo em dados da doença para a Austrália e o Reino Unido, estimando assim as datas de picos de casos para ambos os países e o número de casos, obtendo resultados consistentes com as estimativas na literatura. Tal modelo foi considerado efetivo como uma ferramenta para tomadas de decisões no combate à COVID-19 e para outras doenças que possam surgir no futuro.[12]
Aplicações do método de Monte Carlo
Física
Métodos de Monte Carlo são muito importantes em física computacional, físico-química e campos relacionados. Além de diversas aplicações desde complicados cálculos sobre cromodinâmica quântica até modelar o transporte de radiação para cálculos de dosimetria de radiação [13][14][15]. Em física estatística, modelagem molecular por Monte Carlo é uma alternativa para o cálculo por dinâmica molecular[16]. Métodos de Monte Carlo quântico resolvem problemas de muitos corpos para sistemas quânticos [17][18][19]. Na ciência de radiação no material, a aproximação de colisões binárias para simulações de implantação de íons é usualmente baseada em abordagens de Monte Carlo para selecionar o próximo átomo que irá colidir [16]. Na física de partículas experimental, os métodos de Monte Carlo são usados para projetar detectores, entender seu comportamento e comparar os dados experimentais com a teoria. Na astrofísica, eles são usados de maneiras tão diversas que modelam a evolução da galáxia [20] e a transmissão da radiação de microondas através de uma superfície planetária rugosa . Os métodos de Monte Carlo também são usados nos modelos de conjunto que formam a base da previsão do tempo moderna.[21][22]
Medicina
Monte Carlo, por ser um algoritmo baseado em um modelo que usa distribuições de probabilidade bem estabelecidas, consegue modelar as interações individuais de fótons e elétrons de um paciente de radioterapia e seu transporte através dele. O principal objetivo é essencialmente caracterizar o feixe clínico produzido por uma fonte de radiação, e também para a computação direta das distribuições de doses de fótons para um dado paciente e geometria de tratamento. A limitação mais importante é o tempo necessário para calcular o grande número de histórias necessárias para reduzir as incertezas estatísticas.[23]
A simulação examina diversos processos envolvidos em materiais comuns aos aplicativos de radioterapia. Por exemplo, a distância média que um fóton viaja antes de interagir através do meio de um dos muitos processos de interação (percurso livre médio), como efeito Compton ou efeito fotoelétrico.
O caminho livre médio vai depender da energia do fóton. Por exemplo, para energias entre 100 keV e 10 MeV, a diferença é bastante baixa entre a água e o osso, mas para valores mais elevados, a diferença está além do alcance. Além disso, pode deduzir-se que, para o intervalo de energia compreendido entre 10keV e 40MeV as distâncias de interação do fóton são da ordem de 20 cm para materiais comuns de baixo número atômico. Isso significa que é possível simular centenas de milhões de histórias de partículas se considerarmos o transporte de fótons sozinhos[10].
A transferência de fótons pode ser dividida em várias etapas [10]:
- Energia do fóton, direção, posição inicial e transporte para o primeiro limite.
- A distância à primeira interação e o phantom de transporte são determinados através de amostragem aleatória.
- Tipo de interação como espalhamento Compton ou produção de par é selecionado, como base nas primeiras etapas.
- Direção de qualquer nova partícula produzida.
- Transportar fótons dispersos até deixar geometria.
- Transportar eletrodo secundário com controle de Bremsstrahlung produzido.
- Pontuação de energia depositada em Região de Interesse (ROI).
- Repita os passos 1 a 7 para muitas partículas até que as quantidades pontuadas tenham incerteza estatística suficientemente pequena.
Engenharia
Os métodos de Monte Carlo são amplamente usados em engenharia para análise de sensibilidade e análise probabilística quantitativa no projeto de processos. A necessidade surge do comportamento interativo, colinear e não linear de simulações de processo típicas. Por exemplo: [24][25][26]
- Na engenharia microeletrônica, os métodos de Monte Carlo são aplicados para analisar variações correlacionadas e não correlacionadas em circuitos integrados analógicos e digitais.
- Em geoestatística e geometalurgia, os métodos de Monte Carlo sustentam o projeto de fluxogramas de processamento mineral e contribuem para a análise de risco quantitativa.
- Na análise de rendimento de energia eólica, a produção de energia prevista de um parque eólico durante sua vida útil é calculada dando diferentes níveis de incerteza (P90, P50, etc.)
- Na dinâmica dos fluidos, em particular na dinâmica dos gases rarefeitos, onde a equação de Boltzmann é resolvida para fluxos de fluidos de número Knudsen finito usando o método de simulação direta Monte Carlo em combinação com algoritmos computacionais altamente eficientes.
- Na robótica autônoma, a localização por Monte Carlo pode determinar a posição de um robô. É frequentemente aplicado a filtros estocásticos, como o filtro de Kalman ou filtro de partículas que forma o coração do algoritmo SLAM (localização e mapeamento simultâneos).
- Em telecomunicações, ao planejar uma rede sem fio, o design deve ser comprovado para funcionar em uma ampla variedade de cenários que dependem principalmente do número de usuários, de suas localizações e dos serviços que desejam usar. Os métodos de Monte Carlo são normalmente usados para gerar esses usuários e seus estados. O desempenho da rede é então avaliado e, caso os resultados não sejam satisfatórios, o projeto da rede passa por um processo de otimização.
- Na engenharia de confiabilidade, a simulação de Monte Carlo é usada para calcular a resposta no nível do sistema dada a resposta no nível do componente. Por exemplo, para uma rede de transporte sujeita a um evento de terremoto, a simulação de Monte Carlo pode ser usada para avaliar a confiabilidade do k-terminal da rede dada a probabilidade de falha de seus componentes, por exemplo, pontes, estradas, etc.
- Em processamento de sinal e inferência Bayesiana, filtros de partículas e técnicas sequenciais de Monte Carlo são uma classe de métodos de partículas de campo médio para amostragem e computação da distribuição posterior de um processo de sinal, dadas algumas observações parciais e ruidosas usando medidas empíricas interativas.
Mudança climática e o forçamento radioativo
O Painel Intergovernamental sobre Mudanças Climáticas baseia-se nos métodos de Monte Carlo na análise da função densidade de probabilidade do forçamento radiativo.
Função de densidade de probabilidade (PDF) de ERF devido ao total de GEE, forçamento de aerossol e forçamento antropogênico total. O GEE consiste em WMGHG, ozônio e vapor de água estratosférico. A combinação dos agentes de RF individuais para derivar o forçamento total sobre a Era Industrial é feita por simulações de Monte Carlo e com base no método de Boucher e Haywood (2001). PDF do ERF de alterações de albedo de superfície e rastros combinados e cirrus induzido por rastros estão incluídos no forçamento antropogênico total, mas não são mostrados como um PDF separado. Atualmente, não temos estimativas de ERF para alguns mecanismos de força: ozônio, uso da terra, energia solar, etc.[27]
Biologia Computacional
Os métodos de Monte Carlo são usados em vários campos da biologia computacional, por exemplo, para inferência bayesiana na filogenia ou para estudar sistemas biológicos como genomas, proteínas ou membranas. Os sistemas podem ser estudados nos frameworks de granulação grossa ou ab initio dependendo da precisão desejada. Simulações de computador nos permitem monitorar o ambiente local de uma molécula específica para ver se alguma reação química está acontecendo, por exemplo. Nos casos em que não é possível realizar um experimento físico, experimentos mentais podem ser realizados (por exemplo: quebra de ligações, introdução de impurezas em locais específicos, alteração da estrutura local / global ou introdução de campos externos).[28][29]
Computação gráfica
O rastreamento de caminho, ocasionalmente conhecido como rastreamento de raios de Monte Carlo, renderiza uma cena 3D ao rastrear aleatoriamente amostras de possíveis caminhos de luz. A amostragem repetida de qualquer pixel dado eventualmente fará com que a média das amostras convirja para a solução correta da equação de renderização, tornando-a um dos métodos de renderização de gráficos 3D mais precisos fisicamente existentes.
Estatística aplicada
Os padrões para experimentos de Monte Carlo em estatísticas foram definidos por Sawilowsky. Em estatísticas aplicadas, os métodos de Monte Carlo podem ser usados para pelo menos quatro finalidades:
- Para comparar estatísticas concorrentes para pequenas amostras em condições de dados realistas. Embora as propriedades de erro e poder de tipo I das estatísticas possam ser calculadas para dados extraídos de distribuições teóricas clássicas (por exemplo, curva normal, distribuição de Cauchy) para condições assintóticas (isto é, tamanho de amostra infinito e efeito de tratamento infinitesimalmente pequeno), dados reais costumam fazer não tem tais distribuições.
- Para fornecer implementações de testes de hipótese que são mais eficientes do que testes exatos, como testes de permutação (que muitas vezes são impossíveis de calcular), embora sejam mais precisos do que os valores críticos para distribuições assintóticas.
- Fornecer uma amostra aleatória da distribuição posterior na inferência Bayesiana. Esta amostra, então, aproxima e resume todas as características essenciais do posterior.
- Para fornecer estimativas aleatórias eficientes da matriz Hessiana da função de log-verossimilhança negativa que pode ser calculada para formar uma estimativa da matriz de informação de Fisher.
Os métodos de Monte Carlo também são um meio-termo entre a randomização aproximada e os testes de permutação. Um teste de randomização aproximada é baseado em um subconjunto especificado de todas as permutações (o que implica em uma administração potencialmente enorme, das quais as permutações foram consideradas). A abordagem de Monte Carlo é baseada em um número especificado de permutações desenhadas aleatoriamente (trocando uma pequena perda de precisão se uma permutação for desenhada duas vezes - ou mais frequentemente - pela eficiência de não ter que rastrear quais permutações já foram selecionadas).
Inteligência artificial para jogos
Os métodos de Monte Carlo foram desenvolvidos em uma técnica chamada pesquisa de árvore de Monte-Carlo, que é útil para pesquisar o melhor movimento em um jogo. Os movimentos possíveis são organizados em uma árvore de busca e muitas simulações aleatórias são usadas para estimar o potencial de longo prazo de cada movimento. Um simulador de caixa preta representa os movimentos do oponente.
O método de pesquisa em árvore Monte Carlo (MCTS) tem quatro etapas:
- Começando no nó raiz da árvore, selecione os nós filhos ideais até que um nó folha seja alcançado.
- Expanda o nó folha e escolha um de seus filhos.
- Jogue um jogo simulado começando com esse nó.
- Use os resultados desse jogo simulado para atualizar o nó e seus ancestrais.
O efeito líquido, ao longo de muitos jogos simulados, é que o valor de um nó que representa um movimento aumentará ou diminuirá, correspondendo esperançosamente a se esse nó representa ou não um bom movimento.
Monte Carlo Tree Search foi usado com sucesso para jogar jogos como Go, Tantrix, Battleship, Havannah, e Arimaa.
Busca e Resgate
A Guarda Costeira dos EUA utiliza métodos de Monte Carlo em seu software de modelagem de computador SAROPS para calcular as prováveis localizações de embarcações durante as operações de busca e resgate. Cada simulação pode gerar até dez mil pontos de dados que são distribuídos aleatoriamente com base nas variáveis fornecidas. Os padrões de pesquisa são então gerados com base nas extrapolações desses dados para otimizar a probabilidade de contenção (POC) e a probabilidade de detecção (POD), que juntas equivalem a uma probabilidade geral de sucesso (POS). Em última análise, isso serve como uma aplicação prática da distribuição de probabilidade a fim de fornecer o método mais rápido e conveniente de resgate, salvando vidas e recursos.
Referências
- ↑ Metropolis, N. (1987). "The beginning of the Monte Carlo method" (PDF). Los Alamos Science (1987 Special Issue dedicated to Stanislaw Ulam): 125–130.
- ↑ Eckhardt, Roger (1987). "Stan Ulam, John von Neumann, and the Monte Carlo method" (PDF). Los Alamos Science (15): 131–137.
- ↑ Peragine, Michael (2013). The Universal Mind: The Evolution of Machine Intelligence and Human Psychology. Xiphias Press. Retrieved 2018-12-17.
- ↑ Mazhdrakov, Metodi; Benov, Dobriyan; Valkanov, Nikolai (2018). The Monte Carlo Method. Engineering Applications. ACMO Academic Press. p. 250. ISBN 978-619-90684-3-4.
- ↑ «You think you've got trivials?». Journal of Modern Applied Statistical Methods
- ↑ N. Metropolis, A. Rosenbluth, M. Rosenbluth, A. Teller, E. Teller, Equation of State Calculations by Fast Computing Machines, Journal of Chemical Physics 21, 1087 (1953).
- ↑ W. K. Hastings, Monte Carlo Sampling Methods Using Markov Chains and Their Applications, Biometrika 57 (1), 97 (1970).
- ↑ «PENELOPE2014, A Code System for Monte-Carlo Simulation of Electron and Photon Transport». www.oecd-nea.org. Consultado em 23 de junho de 2017
- ↑ Rogers, D.W.O. (1995). «BEAM: A Monte Carlo code to simulate radiotherapy treatment units». Medical Physics, Vol. 22, No. 5
- ↑ 10,0 10,1 10,2 Verhaegen, F. (2013). Monte Carlo Techniques in Radiation Therapy. [S.l.]: Taylor and Francis
- ↑ (Cassandra: An Open Source Monte Carlo Package for Molecular Simulation", Jindal K. Shah, Eliseo Marin-Rimoldi, Ryan Gotchy Mullen,Brian P. Keene, Sandip Khan, Andrew S. Paluch, Neeraj Rai, Lucienne L. Romanielo, Thomas W. Rosch, Brian Yoo, and Edward J. Maginn, Journal of Computational Chemistry 2017, 38, 1727–1739).
- ↑ «A novel Monte Carlo simulation procedure for modelling COVID-19 spread over time»
- ↑ Jia, Xun; Ziegenhein, Peter; Jiang, Steve B (2014). "GPU-based high-performance computing for radiation therapy". Physics in Medicine and Biology.
- ↑ Hill, R; Healy, B; Holloway, L; Kuncic, Z; Thwaites, D; Baldock, C (Mar 2014). "Advances in kilovoltage x-ray beam dosimetry". Physics in Medicine and Biology.
- ↑ Rogers, D W O (2006). "Fifty years of Monte Carlo simulations for medical physics". Physics in Medicine and Biology.
- ↑ 16,0 16,1 Rosenbluth, Marshall, N.; Rosenbluth, Arianna, W. (1955). "Monte-Carlo calculations of the average extension of macromolecular chains".
- ↑ Kolokoltsov, Vassili (2010). Nonlinear Markov processes. Cambridge Univ. Press. p. 375.
- ↑ Del Moral, Pierre (2013). Mean field simulation for Monte Carlo integration. Chapman & Hall/CRC Press. p. 626. Monographs on Statistics & Applied Probability”.
- ↑ Del Moral, Pierre (2004). Feynman–Kac formulae. Genealogical and interacting particle approximations. Probability and Its Applications. Springer. p. 575.
- ↑ Möller, W.; Eckstein, W. (1984-03-01). "Tridyn — A TRIM simulation code including dynamic composition changes". Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms.
- ↑ «MacGillivray & Dodd 198»
- ↑ «Golden 1979»
- ↑ Verhaegen, F. (2003). «Monte Carlo Modelling of External Radiotherapy Photon Beams». Phys. Med. Biol.
- ↑ Mazhdrakov, Metodi; Benov, Dobriyan; Valkanov, Nikolai (2018). The Monte Carlo Method. Engineering Applications. ACMO Academic Press. p. 250.
- ↑ G. A. Bird, Molecular Gas Dynamics, Clarendon, Oxford (1976).
- ↑ Dietrich, S.; Boyd, I. (1996). "A Scalar optimized parallel implementation of the DSMC technique". Journal of Computational Physics. 126 (2): 328–42.
- ↑ Climate Change 2013 The Physical Science Basis (PDF). Cambridge University Press. 2013. p. 697.
- ↑ «Ojeda & et al. 2009»
- ↑ «Milik & Skolnick 1993»