O método de Monte Carlo: calcular jogando dados
Uma partida de paciência, um laboratório de armas nucleares e um computador de válvulas parecem pertencer a histórias diferentes. Entre 1946 e 1949, esses três mundos se encontraram no método de Monte Carlo: transformar uma pergunta matemática numa experiência com sorteios e estimar a resposta repetindo essa experiência muitas vezes.
A descoberta teve vários autores e várias etapas. Ulam formulou a ideia que desencadeou o projeto; von Neumann ajudou a transformá-la num plano de cálculo; Metropolis participou da implementação e sugeriu o nome; Klára Dán von Neumann programou a simulação. Para entender o acontecimento, é preciso acompanhar esse trabalho coletivo.
Antes das cartas: Los Alamos e o ENIAC
Durante a Segunda Guerra Mundial, Los Alamos reuniu pesquisadores do Projeto Manhattan para desenvolver armas nucleares. Uma dificuldade central era prever o comportamento dos nêutrons: quantos seriam absorvidos, quantos escapariam e quantos provocariam novas fissões. Depois da guerra, esses problemas continuaram, ao lado dos estudos sobre armas termonucleares.
O ENIAC, construído na Universidade da Pensilvânia para cálculos balísticos, oferecia uma velocidade muito superior à das máquinas eletromecânicas. No fim de 1945, já executava um problema termonuclear de Los Alamos. Esses cálculos iniciais não eram ainda as simulações de Monte Carlo de 1948: foram parte do contexto que mostrou aos pesquisadores o que uma máquina eletrônica poderia fazer. A cronologia é reconstituída no estudo Neutronics Calculation Advances at Los Alamos: Manhattan Project to Monte Carlo.
1946: a pergunta de Ulam durante a convalescença
Em 1946, Stanisław Ulam se recuperava de uma doença e jogava paciência. Segundo seu relato posterior, a pergunta era concreta: qual a chance de terminar com sucesso uma partida de Canfield com 52 cartas?
Ele tentou calcular a probabilidade por combinatória. O número de possibilidades tornou a tarefa pouco prática. Então pensou em distribuir as cartas cem vezes, jogar e contar as vitórias. A proporção de partidas bem-sucedidas daria uma estimativa da probabilidade, para as regras e a maneira de jogar adotadas.
O salto seguinte já estava na cabeça de Ulam: computadores rápidos poderiam repetir experiências semelhantes para estudar a difusão de nêutrons e outros problemas de física matemática. Ainda em 1946, discutiu a proposta com von Neumann. Essa lembrança foi registrada décadas depois e reproduzida por Roger Eckhardt em Stan Ulam, John von Neumann, and the Monte Carlo Method. Ela documenta a origem da ideia, sem exigir que se invente um diálogo entre os dois.
1947: von Neumann transforma a ideia num plano
Em 11 de março de 1947, von Neumann escreveu a Robert Richtmyer, chefe da Divisão Teórica de Los Alamos, propondo uma abordagem estatística para a difusão e a multiplicação de nêutrons. A carta é um dos documentos centrais dessa passagem da intuição ao cálculo eletrônico. O histórico técnico de Los Alamos apresenta esse marco em sua reconstituição dos primeiros métodos de transporte.
Em termos simples, uma simulação acompanha uma história: o percurso de uma partícula e os acontecimentos que ela produz. Sorteiam-se posição, direção e energia conforme o modelo. A cada etapa, as probabilidades físicas determinam a distância até uma interação e seu resultado. Repetindo muitas histórias, estimam-se grandezas como a proporção de partículas que escapa do material.
Não se escolhem resultados arbitrários. Se um evento tem probabilidade $p$, um número uniforme $r$ entre 0 e 1 pode decidir sua ocorrência pela condição $r
Por que o nome Monte Carlo? E onde entra Fermi?
Nicholas Metropolis sugeriu o nome do conhecido centro de jogos de Mônaco. Em suas memórias, associou a escolha a um tio de Ulam que pedia dinheiro à família porque precisava ir a Monte Carlo. O nome ligava os sorteios do cálculo aos jogos de azar.
A amostragem estatística tinha antecedentes. Metropolis relata, citando Emilio Segrè, que Enrico Fermi já a empregava em estudos de nêutrons em Roma nos anos 1930, sem publicar o procedimento. A novidade do pós-guerra foi sua organização como método de cálculo eletrônico.
Em 1947, Fermi idealizou o FERMIAC, construído por Percy King: um carrinho que traçava trajetórias sobre desenhos dos materiais. Sorteios e ajustes manuais permitiam acompanhar as partículas em duas dimensões. Esse episódio e a origem do nome aparecem no testemunho de Metropolis, The Beginning of the Monte Carlo Method.
1948: Klára e a passagem para o programa
A proposta precisava virar uma sequência executável de instruções. Klára Dán von Neumann, também chamada Klári, teve papel central nos diagramas e na codificação, trabalhando com John von Neumann e Nicholas Metropolis. Programar envolvia organizar decisões condicionais, repetições, cálculos e o acompanhamento das partículas.
As primeiras séries de simulações foram executadas no ENIAC na primavera de 1948, depois de um ano de planejamento. O computador havia sido transferido para Aberdeen, em Maryland, e adaptado a um novo sistema de controle. Um diagrama datado de 9 de dezembro de 1947 mostra a extensão do programa; não se tratava de uma pequena fórmula passada à máquina. Os pesquisadores Thomas Haigh, Mark Priestley e Crispin Rope publicaram esse material e documentos de Klára em seu acervo sobre o programa de Monte Carlo do ENIAC.
Assim, a história do método também pertence à história da programação. A ideia matemática só podia produzir resultados depois que alguém resolvesse, em detalhe, como a máquina realizaria cada etapa.
1949: o método chega à literatura científica
Em setembro de 1949, Metropolis e Ulam publicaram “The Monte Carlo Method”, no Journal of the American Statistical Association, volume 44, páginas 335–341. O artigo original apresentou a motivação e descreveu a abordagem estatística para problemas de equações diferenciais e integro-diferenciais da física.
A publicação deu uma apresentação pública e geral a uma técnica desenvolvida num ambiente de pesquisa militar. Sua ambição ia além de uma aplicação: em certas situações, seria possível calcular uma grandeza de interesse por amostragem, sem primeiro determinar a solução inteira de uma equação em todos os pontos.
Calcular π com pontos ao acaso
O exemplo mais simples: sorteie pontos $(x, y)$ com $x$ e $y$ entre $0$ e $1$, ao acaso. A chance de um ponto cair dentro do quarto de círculo $x^2 + y^2 \le 1$ é a razão entre as áreas, $\frac{\pi/4}{1} = \frac{\pi}{4}$. Então
$$\pi \approx 4 \times \frac{\text{pontos dentro}}{\text{pontos sorteados}}.$$
A estimativa melhora devagar. O erro típico diminui como $\frac{1}{\sqrt{n}}$: para ganhar uma casa decimal, é preciso cem vezes mais pontos. Para calcular $\pi$, há métodos muito melhores. Em problemas com muitas variáveis, essa lentidão pode ser uma troca vantajosa. Para amostras independentes e variância finita, o erro padrão de uma média é $\sigma/\sqrt{n}$. O expoente não piora diretamente com a dimensão, como acontece com o custo de muitas malhas de integração. Mas a variância $\sigma^2$, o custo de cada amostra e a dificuldade de sortear bem podem crescer muito com o problema.
Fabricar o acaso
Um computador é uma máquina determinista. De onde vêm os números “ao acaso”? Von Neumann propôs em 1949 o método do quadrado do meio: tome um número de quatro algarismos, eleve ao quadrado, escreva o resultado com oito algarismos e pegue os quatro do meio. Esse é o próximo número. Ele sabia muito bem que isso não era acaso de verdade:
Quem considera métodos aritméticos para produzir dígitos aleatórios está, naturalmente, em estado de pecado.
— John von Neumann, “Various techniques used in connection with random digits” (1951)
A sequência acaba se repetindo ou caindo em zero. Mas era rápida, e os resultados podiam ser reproduzidos para conferir as contas. Hoje se usam geradores muito melhores, mas o princípio de von Neumann continua: o que se quer de um gerador não é o acaso verdadeiro, é passar nos testes estatísticos que o problema exige.
1953: o algoritmo de Metropolis amplia a ideia
Em 1953, Nicholas Metropolis, Arianna W. Rosenbluth, Marshall N. Rosenbluth, Augusta H. Teller e Edward Teller assinaram “Equation of State Calculations by Fast Computing Machines”. O trabalho propunha uma modificação do Monte Carlo para estudar sistemas de moléculas em interação.
A ideia era favorecer configurações conforme seu peso estatístico. No caso de propostas simétricas, uma mudança que reduz a energia é aceita; se aumenta a energia em $\Delta E$, é aceita com probabilidade $e^{-\Delta E/(k_B T)}$, onde $T$ é a temperatura e $k_B$ a constante de Boltzmann. Uma rejeição mantém a configuração anterior, que também entra na contagem.
As amostras passam a formar uma cadeia: cada configuração depende da anterior. Isso permite explorar distribuições difíceis de amostrar diretamente, mas exige considerar a correlação entre os resultados. O algoritmo de 1953 é um desenvolvimento do método iniciado nos anos 1940, com outra equipe e outra pergunta física.
O que mudou com esse acontecimento
A pergunta de Ulam podia ser respondida contando vitórias. O mesmo princípio, aplicado com um modelo adequado, permitia contar trajetórias e acumular médias de sistemas físicos. O computador tornou viável repetir essas experiências numa escala que o cálculo manual não alcançava.
A linhagem do transporte de partículas continuou: nas décadas seguintes, Los Alamos desenvolveu códigos especializados, reunidos em 1977 no MCNP, conforme a história institucional do programa. O episódio da paciência tornou-se parte de uma prática duradoura: construir experimentos numéricos, medir sua incerteza e comparar seus resultados com outras contas e com observações.
Exercício: o quadrado do meio
Gere três números pelo método do quadrado do meio a partir de $1234$.
$1234^2 = 1\,522\,756$, com oito algarismos $01522756$: o meio é $5227$. $5227^2 = 27\,321\,529$: o meio é $3215$. $3215^2 = 10\,336\,225$: o meio é $3362$. A sequência começa $1234, 5227, 3215, 3362, \ldots$
Exercício: quantos pontos?
Com $n$ pontos, o erro típico da estimativa de $\pi$ é cerca de $\frac{1{,}6}{\sqrt n}$. Quantos pontos são necessários para um erro de $0{,}01$? E de $0{,}001$?
$\frac{1{,}6}{\sqrt n} = 0{,}01$ dá $\sqrt n = 160$, $n = 25\,600$. Para $0{,}001$: $\sqrt n = 1600$, $n = 2\,560\,000$. Cem vezes mais pontos para uma casa decimal a mais, como o texto diz.
Fontes e leitura:
- Nicholas Metropolis, “The Beginning of the Monte Carlo Method”, Los Alamos Science (1987), p. 125–130. Testemunho de um participante sobre o nome, Fermi e a implementação.
- Roger Eckhardt, “Stan Ulam, John von Neumann, and the Monte Carlo Method”, Los Alamos Science (1987). Reproduz o relato de Ulam e discute a proposta de von Neumann.
- Thomas Haigh, Mark Priestley e Crispin Rope, “Los Alamos Bets on ENIAC: Nuclear Monte Carlo Simulations, 1947–48”, IEEE Annals of the History of Computing (2014), com documentos e análises do programa.
- Nicholas Metropolis e Stanisław Ulam, “The Monte Carlo Method”, Journal of the American Statistical Association 44 (1949), p. 335–341.
- Nicholas Metropolis, Arianna W. Rosenbluth, Marshall N. Rosenbluth, Augusta H. Teller e Edward Teller, “Equation of State Calculations by Fast Computing Machines”, Journal of Chemical Physics 21 (1953), p. 1087–1092.
- John von Neumann, “Various techniques used in connection with random digits” (1951), sobre geração de números pseudoaleatórios.
Todos os tópicos de John von Neumann · ← O merge sort: ordenar juntando · A moeda viciada que vira justa →