Post on 20-May-2020
1Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Funções Geradoras de Variáveis Aleatórias
2Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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.
3Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Funções Geradoras de Variáveis Aleatórias
Fornece o parâmetro (10) para a FGVA
EXPOTEC= EXPO (10)
Modelo Computacional
Invoca a FGVA
Argumentos:NA[0;1] +Média (10)
GNA fornece
NA
Retorna o valor de TEC
TEC = 7,45823
Figura 2.5: Troca de dados e informações entre o modelo computacional e as FGVA’s
4Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Algoritmos para Geração de Variáveis Aleatórias
Distribuições Teóricas de Probabilidade
5Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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.
6Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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
7Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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( )ln( )
ln( )ln( )
11
11
−−
≤ <−−
Rp
xRp
8Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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;
Calcular x =
A função (arredondamento para o maior inteiro) atribui a xo maior inteiro que satisfaz a relação anterior.
ln( )ln( )
11−−
⎡
⎢⎢
⎤
⎥⎥
Rp⎡ ⎤
⎡ ⎤.
9Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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 calcula-se 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 .
10Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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
11Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Distribuição de Poisson
A distribuição de Poisson se caracteriza pela seguinte função densidade de probabilidade:
a qual representa a probabilidade de ocorrência de xsucessos, num dado intervalo de tempo. Onde , é o valor esperado do número de ocorrências por unidade de tempo.
p x P X x ex
xx
( ) ( )!
= = = = >−λ λ λ 0,1,2, ..., 0
λ
12Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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, , 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.
P e< −λ
13Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Exemplo
Gerar três números, segundo uma distribuição de Poisson, com = 0,2.
Primeiramente, computamos o valor de .
Na seqüência, obtemos um conjunto de números aleatórios e iniciamos os procedimentos estabelecidos nos passos de 1 a 3 anteriormente firmados
λ
e e− −= =λ 0 2 08187, ,
14Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Exemplo
Passo Geração de P, n e X1 n = 0, P = 12 R1 = 0,4357; P = 1.R1 = 0,43573 como P = 0,4357 < e-0,2 < 0,8187; aceitamos X = 01 - 3 R1 = 0,4146 nos leva a X = 01 n = 0, P = 12 R1 = 0,8353; P = 1.R1 = 0,83533 como P e≥ −λ ; rejeitamos n = 0 e retornamos ao
passo 2 com n = 12 R2 = 0,9952; P = P.R2 = 0,8353.0,9952 = 0,83133 como P e≥ −λ ; rejeitamos n = 1 e retornamos ao
passo 2 com n = 22 R3 = 0,8004; P = P.R3 = 0,8313. 0,8004 = 0,66543 como P = 0,6654< e-0,2 < 0,8187; aceitamos X = 2
15Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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:
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.
x p(x) F(x)0 0,50 0,501 0,30 0,802 0,20 1,00
16Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Procedimentos
Os procedimentos de busca são facilitados pela construção de uma tabela para a geração dos valores de x:
Esquematizando os procedimentos:
1. Gerar R;2. Descobrir i, tal que ri-1 < R ri;3 Fazer X = xi.
i Entrada ri Saída xi
1 0,50 02 0,80 13 1,00 2
≤
17Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Exemplo
Suponha uma variável aleatória com a seguinte distribuição de probabilidades:
x p(x) F(x)2 0,45 0,453 0,35 0,805 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;≤
≤
18Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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:
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:
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
f xb a
a x b( ) =−
≤ ≤1
x a b a R= + −( )
x a b a R= + −( )
19Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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,9322 x1 = 10 + (40)0,932 = 47,281 R2 = 0,1052 x2 =10 + (40)0,105= 14,21 R3 = 0,6872 x3 = 10 + (40)0,687= 37,48
20Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Distribuição TriangularUma variável aleatória x tem uma distribuição triangular se sua fdp é dada por:
f x
x ab a c a
c xc b c a
b x c( )
( )( )( )
,
( )( )( )
,=
−− −
≤ ≤
−− −
< ≤
⎧
⎨⎪⎪
⎩⎪⎪
2
2
a x b
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:
xa R b a c a R
b ac a
c R c b c ab ac a
R=
+ − − ≤ ≤−−
− − − −−−
< ≤
⎧
⎨⎪
⎩⎪
( )( ) ,
( )( )( )
se
, se
0
1 1
21Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
ExemploGerar 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.
xR R
R R=
≤ ≤
− − < ≤
⎧
⎨⎪
⎩⎪
2 012
2 2 112
1( )
P a sso V a lo r d e R i e d e x i
1 R 1 = 0 ,5 4 42
x 1 = 2 - 2 1 0 5 4 4( , )− = 1 ,0 4 51 R 2 = 0 ,7 4 72
x 2 = 2 - 2 1 0 7 4 7( , )− = 1 ,2 8 81 R 3 = 0 ,4 4 92
x 3 = 2 0 4 4 9( , ) = 0 ,9 4 7
22Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Distribuição Exponencial
Uma variável aleatória x tem uma distribuição exponencial se sua fdp é dada por:
O parâmetro é interpretado como sendo o número médio de ocorrências por unidade de tempo, enquanto a razão representa otempo 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:
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.
f x e xx( ) ,= ≥−λ λ 0
)1ln( ii Rx −−= λ
23Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Exemplo
Gerar valores de uma distribuição exponencial com parâmetro =1. λ
)1ln( ii Rx −−= λ
i 1 2 3 4 5Ri 0,1306 0,0422 0,6597 0,7965 0,7696xi 0,139952 0,043116 1,077928 1,592089 1,467938
24Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
Distribuição Normal
Uma variável aleatória x tem uma distribuição normal se sua fdp édada por:
f x e xx
( ) ,( )
= − ∞ < < ∞−
−12
2
22
σ π
µσ
Método de Box-MullerZ 1=B cos θ
Z 2=B sen θ
Z R R
Z R R
1 1 2
2 1 2
2 2
2 2
= −
= −
ln cos( )
ln sen( )
π
π
25Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
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
26Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE
ExercícioUse o MCL 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:
Uniforme (15, 35);
Exponencial (10);
Triangular (5, 8, 13);
Normal (12, 2).
mbaxx nn mod)( 1 += −