funções geradoras de variáveis aleatórias - pucrs.br · simulação discreta de sistemas -...

26
1 Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE Funções Geradoras de Variáveis Aleatórias

Upload: lamtram

Post on 03-Dec-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

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

Page 2: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 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.

Page 3: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

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

Figura 2.5: Troca de dados e informações entre o modelo computacional e as FGVA’s

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

Page 4: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Page 5: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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.

Page 6: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Page 7: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuições Discretas: 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( )

1

1

1

1

−−

≤ <−−

R

px

R

p

Page 8: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuições Discretas: 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 x o maior inteiro que satisfaz a relação anterior.

ln( )

ln( )

1

1

−−

R

p

.

Page 9: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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 .

Page 10: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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) = 3 878, = 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

Page 11: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuições Discretas: Poisson

A distribuição de Poisson se caracteriza pela seguinte função densidade de probabilidade:

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.

p x P X x ex

xx

( ) ( )!

= = = = >− λ λλ 0,1,2, ..., 0

λ

Page 12: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuições Discretas: Poisson

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

1. Fazer n = 0, e P =1;

2. Gerar um número aleatório Rn+1 e substituir P por P.Rn+1;

3. 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< −λ

Page 13: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exemplo geração distribuição Poisson

Gerar três números, segundo uma distribuição de Poisson, com = 0,2.

Primeiramente, computa-se o valor de .

Na seqüência, obtém-se um conjunto de números aleatórios e iniciam-se os procedimentos estabelecidos nos passos de 1 a 3 anteriormente firmados

λ

e e− −= =λ 0 2 0 8187, ,

Page 14: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exemplo geração distribuição Poisson

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

Page 15: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Inicialmente, determinam-se as freqüências relativas acumuladas da distribuição. Por exemplo:

Aplica-se o método da transformação inversa pesquisando em uma tabela de valores.

Procedimento semelhante ao realizado no capítulo 1, quando se tratou do método de Monte Carlo.

Distribuição Empírica Discreta (MC)

x p(x) F(x)0 0,50 0,501 0,30 0,802 0,20 1,00

Page 16: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Procedimentos Geração da Empírica Discreta

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

Page 17: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exemplo Empírica Discreta

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;≤

Page 18: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuições Contínuas: 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:

1. Gerar R;

2. Calcular

f xb a

a x b( ) =−

≤ ≤1

x a b a R= + −( )

x a b a R= + −( )

Page 19: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exemplo Distribuição Uniforme

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

Page 20: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Distribuição Triangular

Uma variável aleatória x tem uma distribuição triangular se sua fdp é dada por:

f x

x a

b a c ac x

c b c ab x c

( )

( )

( )( ),

( )

( )( ),

=

−− −

≤ ≤

−− −

< ≤

2

2

a x b

onde a b c≤ ≤ . A moda b = 3 E (x) - (a + c).

Aplica-se o método da transformação inversa. A variável x com esta distribuição é obtida por:

xa R b a c a R

b a

c a

c R c b c ab a

c aR

=+ − − ≤ ≤

−−

− − − −−−

< ≤

( )( ) ,

( )( )( )

se

, se

0

1 1

Page 21: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exemplo Triangular

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.

xR R

R R=

≤ ≤

− − < ≤

2 01

2

2 2 11

21( )

Passo Valor de Ri e de xi

1 R1 = 0,5442

x1 = 2- 2 1 0 544( , )− = 1,0451 R2 = 0,7472

x2 =2- 2 1 0 747( , )− = 1,2881 R3 = 0,4492

x3 = 2 0 449( , ) = 0,947

Page 22: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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 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:

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 −−= λ

Page 23: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Page 24: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

( ) ,( )

= − ∞ < < ∞−

−1

2

2

22

σ π

µσ

Método de Box-MullerZ1=B cos θZ2=B sen θ

Z R R

Z R R

1 1 2

2 1 2

2 2

2 2

= −

= −

ln cos( )

ln sen( )

π

π

Page 25: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

x1 = 10 + 2.(1,11) = 12,22

x2 = 10 + 2.(1,50) = 13,00

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:

Page 26: Funções Geradoras de Variáveis Aleatórias - pucrs.br · Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE 1 Funções Geradoras de Variáveis Aleatórias

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

Exercício

Use 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 += −