# Método de Monte Carlo

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 ($\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.
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 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.
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 pseudoaleató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.

## 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:
${\frac {N_{Pm}}{N_{P}}}\approx {\frac {N_{Tm}}{N_{T}}}$
Sendo $N_{Pm}$ o número de peixes pescados que estavam marcados, $N_{P}$ o número total de peixes pescados, $N_{Tm}$ o número total de peixes marcados e $N_{T}$ o número total de peixes.
Por meio desta relação é possível obter o número total de peixes no lago $N_{T}$, já que $N_{P}$, $N_{Pm}$ e $N_{Tm}$ são dados do experimento.

### Estimativa para o valor de $\pi$

Um exemplo simples de simulação seria o cálculo de $\pi$. 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 $\pi$ 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 R
### 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 ${\frac {\pi }{4}}$. 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
## 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 $P$ um problema e A um algoritmo aleatório, A é um algoritmo Monte Carlo de Erro-Unilateral que resolve $P$ se
i) para toda configuração $x$ que é solução de $P$, $\operatorname {prob} (A(x={\text{SIM}}))\geq {\frac {1}{2}}$, e
ii) para toda configuração $x$ que não é solução de $P$, $\operatorname {prob} (A(x={\text{NÃO}}))=1$.
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 $F$ se existe um número real positivo $\epsilon$, tal que para toda instância $x$ de $F$
$\operatorname {prob} (A(x)=F(x))\geq {\frac {1}{2}}+\epsilon$

### 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
$\operatorname {prob} (A(x)=F(x))>{\frac {1}{2}}$

## 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:
* 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 de Nicholas Metropolis, Arianna Rosenbluth, Marshall Rosenbluth, Augusta Teller e Edward Teller, e generalizado em 1970 por W. K. Hastings, é 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 $m$ e $n$ quaisquer, a razão entre a probabilidade da configuração $m$, $P_{m}$, e a probabilidade da configuração $n$, $P_{n}$, pode ser escrita como:
${\frac {P_{m}}{P_{n}}}={\frac {\operatorname {exp} \left(-{\frac {U_{m}}{k_{b}T}}\right)}{\operatorname {exp} \left(-{\frac {U_{n}}{k_{b}T}}\right)}}=\operatorname {exp} \left(-{\frac {U_{m}-U_{n}}{k_{b}T}}\right)$
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 $m$ a essa configuração, que é aceita para a amostra.
(b) Geração de uma nova configuração-tentativa de índice $n$, resultado de pequenas alterações nas coordenadas da configuração $m$.
(c) Se a energia da configuração $n$ for menor que a da configuração $m$, inclui-se a configuração $n$ na nossa amostra, e se atribui a ela o índice $m$ 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 ${\frac {P_{n}}{P_{m}}}$, aceita-se na amostra a configuração $n$, e se atribui a ela o índice $m$. Caso contrário, o índice $m$ 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.

### 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.
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).
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.

## 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. Em física estatística, modelagem molecular por Monte Carlo é uma alternativa para o cálculo por dinâmica molecular. Métodos de Monte Carlo quântico resolvem problemas de muitos corpos para sistemas quânticos. 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. 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 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.

### 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.
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.
A transferência de fótons pode ser dividida em várias etapas:
* 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:
* 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.

### 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).

### 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.

### Finanças e negócios

A simulação de Monte Carlo é comumente utilizada para avaliar o risco e a incerteza que afetariam o resultado de diferentes opções de decisão. A simulação de Monte Carlo permite ao analista de risco de negócios incorporar os efeitos totais da incerteza em variáveis como volume de vendas, preços de commodities e mão de obra, taxas de juros e câmbio, bem como o efeito de eventos de risco distintos, como o cancelamento de um contrato ou a mudança de uma lei tributária.
Os métodos de Monte Carlo em finanças são frequentemente usados para avaliar investimentos em projetos em nível de unidade de negócios ou corporativo, ou outras valorações financeiras. Eles podem ser usados para modelar cronogramas de projetos, onde as simulações agregam estimativas para durações no pior caso, melhor caso e mais provável para cada tarefa, a fim de determinar resultados para o projeto como um todo. Os métodos de Monte Carlo também são usados na precificação de opções, análise de risco de inadimplência. Além disso, podem ser usados para estimar o impacto financeiro de intervenções médicas.

### Direito

A abordagem de Monte Carlo foi utilizada para avaliar o valor potencial de um programa proposto para auxiliar as solicitantes femininas em Wisconsin a terem sucesso em suas aplicações para ordens de restrição por assédio e violência doméstica. Foi proposto ajudar as mulheres a terem sucesso em suas petições, fornecendo-lhes uma maior defesa, potencialmente reduzindo o risco de estupro e agressão física. No entanto, havia muitas variáveis em jogo que não podiam ser estimadas perfeitamente, incluindo a eficácia das ordens de restrição, a taxa de sucesso das solicitantes com e sem assistência, e muitas outras. O estudo conduziu testes que variaram essas variáveis para chegar a uma estimativa global do nível de sucesso do programa proposto como um todo.