Você está na página 1de 26

Funções Geradoras de Variáveis

Aleatórias

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1


Funções Geradoras de Variáveis Aleatórias

‹ Nos programas de simulação existe um GNA e


inúmeras outras funções matemáticas descritas como
Funções Geradoras de Variáveis Aleatórias
ou FGVA’s.
‹ Para cada tipo de distribuição teórica de
probabilidades existe um FGVA apropriada.
‹ Para usá-las num programa de simulação basta
invocar o nome da função desejada e fornecer os
parâmetros necessários.

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 2


Funções Geradoras de Variáveis Aleatórias
Modelo
Computacional

EXPO GNA
Invoca a FGVA
TEC= EXPO (10) fornece
NA
Fornece o parâmetro Argumentos:
(10) para a FGVA NA[0;1] +
Média (10)
TEC = 7,45823

Retorna o valor de
TEC

Figura 2.5: Troca de dados e informações entre o modelo


computacional e as FGVA’s
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 3
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 4


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:
9 tempos entre chegadas;
9 tempos de serviço;
9 demandas por produtos, etc.

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 5


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:
9 Transformação Inversa;
9 Transformação Direta;
9 Convolução;
9 Aceitação/Rejeição;
9 Propriedades Especiais

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 6


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 7


Distribuição Geométrica
‹ Para a obtenção de uma variável com distribuição
geométrica, necessita-se 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 8


Exemplo
‹ Gerar três valores de uma distribuição geométrica com p =
1/2.
9 Usando uma tabela de valores aleatórios, obtemos
9 R1 = 0,932; R2 = 0,105 e R3 = 0,687.

‹ Primeiramente calcula-se o valor da constante


9 1/ln (1-p) = 1/ln (1-0,5) = -1,443.
9 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 9


Exemplo

Passo Valor de Ri e de xi
1 R1 = 0,932
2 x1 = ⎡ -1,443 ln(1 - 0,932) ⎤ = ⎡ 3878
, ⎤ =4
1 R2 = 0,105
2 x2 = ⎡-1,443 ln(1 - 0,105) ⎤ = 1
1 R3 = 0,687
2 x3 = ⎡-1,443 ln(1 - 0,687) ⎤ = 2

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 10


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 = 0,1,2, ..., λ > 0


x!
‹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 11


Distribuição de Poisson
‹ Geração de uma variável aleatória Poisson, considerando o
método da Aceitação/Rejeição:

9 Fazer n = 0, e P =1;
9 Gerar um número aleatório Rn+1 e substituir P por P.Rn+1;
9 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 12


Exemplo

‹ Gerar três números, segundo uma distribuição de Poisson,


com λ = 0,2.

‹ Primeiramente, computamos o valor de e−λ = e−0,2 = 08187


, .
‹ 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 13


Exemplo
Passo Geração de P, n e X
1 n = 0, P = 1
2 R1 = 0,4357; P = 1.R1 = 0,4357
3 como P = 0,4357 < e-0,2 < 0,8187; aceitamos X = 0
1-3 R1 = 0,4146 nos leva a X = 0
1 n = 0, P = 1
2 R1 = 0,8353; P = 1.R1 = 0,8353
3 como P ≥ e − λ ; rejeitamos n = 0 e retornamos ao
passo 2 com n = 1
2 R2 = 0,9952; P = P.R2 = 0,8353.0,9952 = 0,8313
3 como P ≥ e − λ ; rejeitamos n = 1 e retornamos ao
passo 2 com n = 2
2 R3 = 0,8004; P = P.R3 = 0,8313. 0,8004 = 0,6654
3 como P = 0,6654< e-0,2 < 0,8187; aceitamos X = 2

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 14


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 p(x) F(x)
0 0,50 0,50
1 0,30 0,80
2 0,20 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 15
Procedimentos
‹ Os procedimentos de busca são facilitados pela construção de
uma tabela para a geração dos valores de x:
i Entrada ri Saída xi
1 0,50 0
2 0,80 1
3 1,00 2

Esquematizando os procedimentos:
1. Gerar R;
2. Descobrir i, tal que ri-1 < R ≤ ri;
3 Fazer X = xi.

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 16


Exemplo
Suponha uma variável aleatória com a seguinte distribuição de
probabilidades:

x p(x) F(x)
2 0,45 0,45
3 0,35 0,80
5 0,20 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 < R3= 0,83 ≤ F(x=5) = 1,00 ; logo X=5;

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 17


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) = a≤ x≤b
b−a
‹ 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:
9 Gerar R;
9 Calcular x = a + (b − a ) R
Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 18
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 Valor de Ri e de xi
1 R1 = 0,932
2 x1 = 10 + (40)0,932 = 47,28
1 R2 = 0,105
2 x2 =10 + (40)0,105= 14,2
1 R3 = 0,687
2 x3 = 10 + (40)0,687= 37,48

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 19


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 ) , a≤x≤b
f ( x ) = ⎨ 2( c − x )
⎪ , b<x≤c
⎪⎩ (c − b)(c − a )

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
⎪a + R(b − a)(c − a) , se 0 ≤ R ≤
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 20
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.

⎧ 1
⎪ 2R 0≤ R≤
x=⎨ 2
1
⎪2 − 2(1 − R ) < R ≤1
⎩ 2

P asso V a lo r d e R i e d e x i
1 R 1 = 0 ,5 4 4
x 1 = 2 - 2 ( 1 − 0 ,5 4 4 ) = 1 ,0 4 5
2
1 R 2 = 0 ,7 4 7
x = 2 - 2 (1 − 0 ,7 4 7 ) =
2
2 1 ,2 8 8
1 R 3 = 0 ,4 4 9
2 2 ( 0 ,4 4 9 ) =
x3 = 0 ,9 4 7

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 21


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:
xi = −λ ln(1 − Ri )

‹ 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 22
Exemplo
‹ Gerar valores de uma distribuição exponencial com
parâmetro λ =1.

xi = −λ ln(1 − Ri )

i 1 2 3 4 5
Ri 0,1306 0,0422 0,6597 0,7965 0,7696
xi 0,139952 0,043116 1,077928 1,592089 1,467938

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 23


Distribuição Normal
‹ Uma variável aleatória x tem uma distribuição normal se sua fdp é
dada por: 1 −
( x−µ) 2

f ( x) = e 2σ 2
, −∞< x <∞
σ 2π

Método de Box-Muller
Z 1 = B co s θ
Z 2 = 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 24


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 25


Exercício
‹ Use o MCL xn = (axn −1 + b) mod m para gerar uma
seqüência de números aleatórios entre zero e 1, com os
seguintes parâmetros:
• x0 = 23, a = 17, b = 43 e m = 100.
‹ Considere os necessários valores gerados e determine um
valor para cada uma das seguintes variáveis:
9 Uniforme (15, 35);
9 Exponencial (10);
9 Triangular (5, 8, 13);
9 Normal (12, 2).

Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 26

Você também pode gostar