Geração de Números Aleatórios

11

Click here to load reader

Transcript of Geração de Números Aleatórios

Page 1: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 1

Prof. Afonso C. Medina

Prof. Leonardo Chwif

Anexo III

Páginas 219-226Este 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!

Versão 0.2 14/05/06

Geração de Números Aleatórios

Page 2: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 2

Brincando com Números

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?

É fácil gerar números aleatórios de cabeça?

Page 3: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 3

Deu...

7“Geradores de números aleatórios não devem ser escolhidos aleatoriamente”(Ronald Knuth)

Page 4: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 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)

Page 5: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 5

Geração de Números Aleatórios

G F

Gerador de número aleatório

Função de repartição:Exponencial, Normal,

etc

Tempos segundo as

distribuições

T1

T2

T3

Tn

...

...

G F

Gerador de número aleatório

Função de repartição:Exponencial, Normal,

etc

Tempos segundo as

distribuições

T1

T2

T3

Tn

...

...

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

Page 6: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 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.

Page 7: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 7

Método da Congruência (LCG)

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

mcaxx ii mod)(1 +=+

gera números inteiros entre 0 e m-1

Page 8: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 8

Passo 1:Passo 1:Passo 1:Passo 1: Escolher os valores a, c e M. Usualmente, M é escolhido o maior possível.

Passo 2:Passo 2:Passo 2:Passo 2: Escolher a semente r0, tal que: .1 0 Mr ≤≤

Passo 3:Passo 3:Passo 3:Passo 3: Calcular o próximo número aleatório pela expressão:

Mcrar mod)( 01 +⋅=

onde: yxmod é o módulo da divisão de x por y (por exemplo:

46mod10 = ).

Passo 4:Passo 4:Passo 4:Passo 4: Substitua 0r por 1r e volte ao passo anterior, de modo a

construir a seqüência de números aleatórios desejada.

Método da Congruência (LCG)

Page 9: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 9

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-aleatórios inteiros entre 0 e 16 (=17-1)

números pseudo-aleatórios inteiros entre 0 e 1

Exemplo

Page 10: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 10

Método da Transformada Inversa

Passo 1:Passo 1:Passo 1:Passo 1: Obtenha a função de repartição da variável aleatória através da expressão (Apêndice I):

∫ ∞−=x

dxxfxF )()(

Passo 2:Passo 2:Passo 2:Passo 2: Gere um número aleatório r entre 0 e 1.

Passo 3:Passo 3:Passo 3: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).

Page 11: Geração de Números Aleatórios

Modelagem e Simulação de Eventos Discretos – Chwif e Medina (2006) Slide 11

Simulação de Monte Carlo

John von Neumann (1946) - Los Alamos National Laboratory