Algoritmos para Geração de
Variáveis Aleatórias
Distribuições Teóricas de
Probabilidade
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
1
Geração de Variáveis Aleatórias

Métodos e procedimentos computacionais para a
geração de variáveis aleatórias com características
específicas de alguma das diversas distribuições
teóricas de probabilidades.
 A necessidade
de tais variáveis:

tempos entre chegadas;

tempos de serviço;

demandas por produtos, etc.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
2
Métodos de Geração

Os métodos baseiam-se na prévia geração de um número
aleatório R, uniformemente distribuído sobre o intervalo (0, 1).
x expresso como uma função explícita de R..

Métodos básicos:

Transformação Inversa;

Transformação Direta;

Convolução;

Aceitação/Rejeição;

Propriedades Especiais
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
3
Distribuição Geométrica

Uma variável com distribuição geométrica representa o
número de falhas observadas em uma seqüência de provas do
tipo Bernoulli, sua função densidade é:
p(x) = p(1 - p)x ,

x = 1, 2, ...
Pelo método da transformação inversa, obtém-se a seguinte
relação:
ln(1  R)
ln(1  R)
x
ln(1  p)
ln(1  p)
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
4
Distribuição Geométrica

Para a obtenção de uma variável com distribuição
geométrica, necessitamos do parâmetro (probabilidade de um
sucesso) p.

Obtido tal elemento, os seguintes passos devem ser
considerados:
Gerar R;
 ln(1  R) 
Calcular x. = 

 ln(1  p) 

A função . (arredondamento para o maior inteiro) atribui a x
o maior inteiro que satisfaz a relação anterior.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
5
Exemplo

Gerar três valores de uma distribuição geométrica com p =
1/2. Usando uma tabela de valores aleatórios, obtemos
R1 = 0,932; R2 = 0,105 e R3 = 0,687.

Primeiramente calculamos o valor da constante 1/ln (1-p)
= 1/ln (1-0,5) = -1,443. Na seqüência, obtemos os valores
dos xi’s a partir dos Ri’s .
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
6
Exemplo
Passo
1
2
1
2
1
2
Valor de Ri e de xi
R1 = 0,932
x1 =  -1,443 ln(1 - 0,932)    3,878 = 4
R2 = 0,105
x2 = -1,443 ln(1 - 0,105)  = 1
R3 = 0,687
x3 = -1,443 ln(1 - 0,687)  = 2
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
7
Distribuição de Poisson
 A distribuição
de Poisson se caracteriza pela seguinte
função densidade de probabilidade:
x

p( x )  P ( X  x )  e  
x!
x  0,1,2, ...,   0
a
qual representa a probabilidade de ocorrência de x
sucessos, num dado intervalo de tempo. Onde ,  é o
valor esperado do número de ocorrências por
unidade de tempo.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
8
Distribuição de Poisson


Geração de uma variável aleatória Poisson, considerando o
método da Aceitação/Rejeição:

Fazer n = 0, e P =1;

Gerar um número aleatório Rn+1 e substituir P por P.Rn+1;

Se, P  e, aceitar X = n, caso contrário, rejeitar n atual, fazer n = n +1, e
retornar aos procedimentos no passo 2.
A idéia básica por traz do método da Aceitação/Rejeição, é
gerar um número aleatório e testar uma determinada condição
de “aceitação”. Caso esta condição seja satisfeita, o valor
gerado é aceito, caso contrário os passos são repetidos.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
9
Exemplo

Gerar três números, segundo uma distribuição de Poisson,
com  = 0,2.

Primeiramente, computamos o valor de e   e0,2  0,8187 .

Na seqüência, obtemos um conjunto de números aleatórios e
iniciamos os procedimentos estabelecidos nos passos de 1 a 3
anteriormente firmados
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
10
Exemplo
Passo
1
2
3
1-3
1
2
3
2
3
2
3
Geração de P, n e X
n = 0, P = 1
R1 = 0,4357; P = 1.R1 = 0,4357
como P = 0,4357 < e-0,2 < 0,8187; aceitamos X = 0
R1 = 0,4146 nos leva a X = 0
n = 0, P = 1
R1 = 0,8353; P = 1.R1 = 0,8353

como P  e ; rejeitamos n = 0 e retornamos ao
passo 2 com n = 1
R2 = 0,9952; P = P.R2 = 0,8353.0,9952 = 0,8313

P

e
como
; rejeitamos n = 1 e retornamos ao
passo 2 com n = 2
R3 = 0,8004; P = P.R3 = 0,8313. 0,8004 = 0,6654
como P = 0,6654< e-0,2 < 0,8187; aceitamos X = 2
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
11
Distribuição Empírica Discreta

Para gerar uma variável aleatória que tenha um
comportamento semelhante ao determinado por distribuição
empírica discreta conhecida, é necessário, inicialmente,
determinarmos as freqüências relativas acumuladas da
distribuição. Por exemplo:
x
0
1
2

p(x)
0,50
0,30
0,20
F(x)
0,50
0,80
1,00
Uma vez que tais informações estejam disponíveis, aplicamos
o método da transformação inversa que, neste caso, torna-se
um processo de pesquisa em uma tabela de valores, num
procedimento muito semelhante ao que realizamos no
capítulo 1, quando tratamos do método de Monte Carlo.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
12
Procedimentos

Os procedimentos de busca são facilitados pela construção de
uma tabela para a geração dos valores de x:
i
1
2
3
Entrada ri
0,50
0,80
1,00
Saída xi
0
1
2
Esquematizando os procedimentos:
1.
2.
3
Gerar R;
Descobrir i, tal que ri-1 < R  ri;
Fazer X = xi.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
13
Exemplo
Suponha uma variável aleatória com a seguinte distribuição de
probabilidades:
x
2
3
5
p(x)
0,45
0,35
0,20
F(x)
0,45
0,80
1,00
Dados R1= 0,43; R2=0,61 e R3=0,83; gerar três valores para a variável X,
que pertençam a esta distribuição.
R1= 0,43 < F(x=2) = 0,45; logo X=2;
F(x=2) = 0,45 < R2= 0,61  F(x=3) = 0,80 ; logo X=3;
F(x=3) = 0,80 < R = 0,83  F(x=5) = 1,00 ; logo X=5;
3
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
14
Distribuição Uniforme

Uma variável aleatória x tem distribuição uniforme sobre um
intervalo [a, b], se sua função densidade de probabilidade (fdp) é
dada por:
1
f ( x) 

ba
a  xb
A técnica mais utilizada para a obtenção de uma variável aleatória
uniformemente distribuída é a da transformação inversa. A fórmula
é a seguinte:
x  a  (b  a ) R

Os parâmetros necessários para a obtenção de uma variável com
distribuição uniforme são apenas os valores extremos do intervalo
[a, b]. Uma vez definidos, os seguintes passos devem ser
considerados:

Gerar R;

Calcular x  a  (b  a ) R
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
15
Exemplo

Gerar três valores de uma distribuição uniforme no intervalo
[10, 50]. Usando os seguintes valores aleatórios R1 = 0,932;
R2 = 0,105 e R3 = 0,687. Aplicando o método proposto
teremos:
Passo
1
2
1
2
1
2
Valor de Ri e de xi
R1 = 0,932
x1 = 10 + (40)0,932 = 47,28
R2 = 0,105
x2 =10 + (40)0,105= 14,2
R3 = 0,687
x3 = 10 + (40)0,687= 37,48
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
16
Distribuição Triangular
Uma variável aleatória x tem uma distribuição triangular se sua fdp é dada por:
 2( x  a )
 (b  a )(c  a ) ,
f ( x )   2( c  x )

,
 (c  b)(c  a )
axb
bxc
onde a  b  c . A moda b = 3 E (x) - (a + c).
Pelo método da transformação inversa obtém-se a fórmula para gerar
amostras com distribuição triangular.
A variável x com esta distribuição é obtida por:
ba

se 0  R 
a  R(b  a )(c  a ) ,
ca
x
ba
c  (1  R)(c  b)(c  a ) , se
 R 1
ca

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
17
Exemplo

Gerar três valores de uma distribuição triangular com parâmetros (0,
1, 2). Obtidos R1 = 0,544; R2 = 0,747 e R3 = 0,449.

 2R
x
2  2(1  R)

Passo
1
2
1
2
1
2
0 R
1
2
1
 R 1
2
Valor de Ri e de xi
R1 = 0,544
2 (1  0,544 )
x1 = 2= 1,045
R2 = 0,747
2 (1  0,747 )
x2 =2= 1,288
R3 = 0,449
2 ( 0,449)
x3 =
= 0,947
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
18
Distribuição Exponencial


Uma variável aleatória x tem uma distribuição exponencial se sua
fdp é dada por:
f ( x)  e x , x  0
O parâmetro é interpretado como sendo o número médio de
ocorrências por unidade de tempo, enquanto a razão representa o
tempo médio entre as ocorrências.

Aplicando-se o método da transformação inversa para a obtenção
de uma variável aleatória x com distribuição exponencial resulta na
seguinte relação:
ln(1  Ri )
xi  


Uma vez que (1-Ri), da mesma forma que Ri, possui distribuição
uniforme no intervalo [0, 1], podemos substituir (1-Ri) por Ri na
expressão acima.
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
19
Exemplo

Gerar valores de uma distribuição exponencial com
parâmetro  =1.
i
Ri
xi
1
0,1306
2
0,0422
3
0,6597
4
0,7965
5
0,7696
2,0356
3,1653
0,4159
0,2275
0,2618
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
20
Distribuição Normal

Uma variável aleatória x tem uma distribuição normal se sua fdp é
dada por:
( x )

1
2
f ( x) 
 2
e
2 2
,
 x  
Método de Box-Muller
Z1=B cos
Z2=B sen
Z1   2 ln R1 cos(2R2 )
Z2   2 ln R1 sen(2R2 )
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
21
Exemplo

Considerando as equações anteriores, gerar dois valores com
distribuição normal padronizada a partir de R1 = 0,1758 e R2 =
0,1489.
Z1 = [-2 ln (0,1758)]½ cos ( 0,1489) = 1,11
Z2 = [-2 ln (0,1758)]½ sen ( 0,1489) = 1,50

Para a obtenção de uma variável aleatória normal com média  e
desvio padrão , deve-se aplicar a transformação xi =  + .Zi aos
valores da normal padronizada. Por exemplo, para transformar os
valores obtidos de Z1 e Z2 em uma Normal (10; 2), calcula-se:
x1 = 10 + 2.(1,11) = 12,22
x2 = 10 + 2.(1,50) = 13,00
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
22
Download

Capítulo 3 Geração de Variáveis Aleatórias