O documento discute métodos para geração de números aleatórios para simulação, incluindo o método do meio quadrado, o método da congruência linear, a transformada inversa e a simulação de Monte Carlo. O objetivo é gerar números pseudo-aleatórios que sigam distribuições de probabilidade específicas para uso em modelagem e simulação de eventos discretos.
1. Geração de Números Aleatórios
Anexo III
Páginas 219-226
Este material é disponibilizado para uso
exclusivo de docentes que adotam o livro
Modelagem e Simulação de Eventos
Discretos em suas disciplinas. O material
pode (e deve) ser editado pelo professor.
Pedimos apenas que seja sempre citada a
fonte original de consulta.
Verifique sempre a atualização deste
material no site
www.livrosimulacao.eng.br
Divirta-se!
Prof. Afonso C. Medina
Prof. Leonardo Chwif
Versão 0.2
14/05/06
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 1
2. Brincando com Números
É fácil gerar números aleatórios de cabeça?
1. Cada estudante deve anotar um número
entre 0 e 9 em um pedaço de papel.
2. Qual o número que mais ocorreu?
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 2
3. Deu...
7
“Geradores de números aleatórios não devem ser
escolhidos aleatoriamente”
(Ronald Knuth)
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 3
4. Geração de Números Aleatórios
Um número é aleatório pode representar
decisões arbitrárias ou servir como entrada
para geração de tempos segundo várias
distribuições.
Como produzir números aleatórios ?
Dispositivos físicos (Ex. dados, roleta, moeda etc.)
Tabela de números aleatórios (livros)
Processos matemáticos
No Excel: “=ALEATORIO()” (gera um número
aleatório maior ou igual a 0 e menor do que 1)
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 4
5. Geração de Números Aleatórios
Sorteia-se um número aleatório uniformemente distribuído entre 0 e 1.
Utilizando-se a função repartição da distribuição de probabilidade
desejada, transforma-se o número aleatório uniformemente distribuído
em um valor segundo a distribuição probabilística desejada.
T1
T2
G F T3
...
...
...
Tn
Gerador de Função de repartição: Tempos
número aleatório Exponencial, Normal, segundo as
etc distribuições
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 5
6. Método do Meio Quadrado
Von Neumann (1946)
r1 = 76 => 762 = 5776
r2 = 77 => 772 = 5929
r3 = 92….
Seqüência gerada (76,77,92,46,11,12,14, …)
Quando resultar em 0, deve-se utilizar outra
semente.
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 6
7. Método da Congruência (LCG)
x i +1 = ( ax i + c) mod m
gera números
inteiros entre 0 e
m-1
xo é a semente do número aleatório
“mod” é a função módulo = mostra o resto da
divisão inteira. Ex.: 10 mod 6 = 4
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 7
8. Método da Congruência (LCG)
Passo 1: Escolher os valores a, c e M. Usualmente, M é escolhido o maior
possível.
Passo 2: Escolher a semente r0, tal que: 1 ≤ r0 ≤ M .
Passo 3: Calcular o próximo número aleatório pela expressão:
r1 = (a ⋅ r0 + c) mod M
onde: x mod y é o módulo da divisão de x por y (por exemplo:
10 mod 6 = 4 ).
Passo 4: Substitua r0 por r1 e volte ao passo anterior, de modo a
construir a seqüência de números aleatórios desejada.
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 8
9. Exemplo
Gerar números aleatórios pelo método da
congruência, com a = 9, c = 1, m =17 e
xo = 7.
n xn y=9xn+1 y mod 17 xn+1/17
0 Xo=7 9*7+1=64 13 13/17 = 0.7647
1 X1=13 118 16 16/17 = 0.9412
2 X2=16 145 9 0.5294
3 X3=9 82 14 0.8235
4 X4=14 127 8 0.4706
números pseudo- números pseudo-
aleatórios inteiros entre aleatórios inteiros
0 e 16 (=17-1) entre 0 e 1
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 9
10. Método da Transformada Inversa
Passo 1: Obtenha a função de repartição da variável aleatória através
da expressão (Apêndice I):
x
F ( x) = ∫ f ( x)dx
−∞
Passo 2: Gere um número aleatório r entre 0 e 1.
Passo 3: Faça F(x)=r e resolva em x. A variável x é uma variável
aleatória cuja distribuição é dada pela função densidade de
probabilidade f(x).
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 10
11. Simulação de Monte Carlo
John von Neumann (1946) - Los Alamos National Laboratory
Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 11