You are on page 1of 12

Universidade de Braslia Departamento de Engenharia Eltrica Redes de Telecomunicaes I

Exerccio de Simulao I

Autores: Mrcia Manuela M. Nunes 09/0138821 Rodrigo Rozrio Bezerra 09/0131622 Svio Oliveira de Almeida Neves 09/013X26 Professor: Darli Mello

Braslia Dezembro de 2012

Fundamentao Terica
Nmeros pseudo-aleatrios
Sabendo que o resduo de sucessivas potncias de um nmero possui boas propriedades aleatrias, a frmula para geradores lineares congruentes multiplicativos foi generalizada (1). Os nmeros pseudo-aleatrios gerados possuem um perodo, nele os nmeros gerados iro repetir. O tamanho mximo desse perodo dado por 22 para geradores com = 2 , e perodo mximo de para = 2 1. = . 1 (1)

Gerao de uma varivel aleatria


Um dos mtodos utilizados para a obteno de uma varivel aleatria a partir de outra, a inverso. Neste mtodo, a funo densidade cumulativa da varivel a ser gerada invertida e aplicada nesta funo uma varivel aleatria uniforme, gerando assim a varivel aleatria com a pdf desejada. No caso de uma funo exponencial negativa, a funo inversa encontrada (2). = . ln ) (1 Outro mtodo utilizado a caracterizao, onde caractersticas especiais de algumas distribuies permitem que suas variveis sejam geradas usando algoritmos especialmente adaptados para ela.
1

(2)

Sistemas M/M/1
Sistemas M/M/1 so formados por uma fila nica e um servidor, as mensagens que chegam ao buffer so armazenadas em fila e esperam pelo servio de um nico elemento de processamento. A chegada de elementos determinada por uma distribuio de Poisson com taxa e a tempo mdio de servio de 1/. O nmero mdio de usurio no servidor dado por / e a intensidade do trfego = /.

Resultados
1 Questo
A frmula para geradores lineares congruentes multiplicativos (1), com = 75 , = 231 1 e semente X0 = 0, nos fornece os nmero pseudo-aleatrios mostrados no grfico da figura 1.

Amostra x Valor
1

0.8

Valor Amostra

0.6

0.4

0.2

0.5

1.5 x 10

2
5

Amostra
Figura 1 Nmeros pseudo-aleatrios gerados na questo 1

7 6

x 10

Amostra x Auto-Correlao

Auto-Correlao

5 4 3 2 1 0 0 1 2 Amostra 3 x 10 4
5

Figura 2 Auto-correlao na questo 1

Percebe-se um bom espalhamento dos 200.000 nmeros gerados na figura 1. O grfico da figura 2 mostra a auto-correlao entre os nmeros obtidos.

2 Questo
Novamente utilizando a frmula para geradores lineares congruentes multiplicativos (1) com semente X0 = 7, mas alterando as constantes m e a para 231 e 75 1, respectivamente. Foi obtido o grfico referente aos nmeros pseudo-aleatrios gerados, mostrado na figura 3. Percebe-se no grfico que em um determinado instante, o gerador apenas retorna o nmero 0. Este comportamento conseqncia da periodicidade do gerador, que quando obtm o valor 0, entra em um loop retornando sempre o mesmo valor 0. O grfico da figura 4 mostra auto- correlao entre os nmeros obtidos.

Amostra x Valor
1

0.8

Valor Amostra

0.6

0.4

0.2

0.5

1.5 x 10

2
5

Amostra
Figura 3 - Nmeros pseudo-aleatrios gerados na questo 2

Amostra x Auto-Correlao
12 10

Auto-Correlao

8 6 4 2 0 -2 0

0.5

1.5

2.5

3.5 x 10

4
5

Amostra
Figura 4 - Auto-correlao na questo 2

3 Questo
O gerador referente primeira questo a melhor escolha entre as duas questes anteriores. Este fato se deve maior periodicidade encontrada no primeiro gerador, e ao

melhor espalhamento entre os nmeros pseudo-aleatrios gerados, comportamentos consequentes da escolha dos parmetros a e m, onde = 231 1 fornece um maior perodo (mximo perodo encontrado igual a m).

4 Questo
Usando o mtodo de inverso (2) foi gerada uma sequncia de 200.000 tempos entre chegadas com distribuio exponencial negativa. O grfico da figura 5 mostra o histograma dos tempos entre chegadas, onde possvel observar o comportamento de uma varivel aleatria que segue a funo densidade de probabilidade de uma exponencial negativa, mostrada no mesmo grfico por uma linha vermelha.

Exp PDF e Histograma Normalizado


2.5 Histograma PDF 2

1.5

g(x)
1 0.5 0 0

10

x
Figura 5 Histograma tempo entre chegadas e PDF da exponencial negativa

5 Questo
Cascateando os tempos de chegadas gerados na questo anterior, e analisando a quantidade de chegadas a cada 500 janelas com 100 unidades de tempo foi gerado o grfico mostrado na figura 6. Utilizando a relao (3) pde-se encontrar probabilidade aproximada de X chegadas por unidade de tempo, j que conhecida a quantidade de quantas janelas em que ocorreram X chegadas. =

(3)

No grfico da figura 6, possvel observar o comportamento da funo de probabilidade Poissoniana, exaltada na linha vermelha do grfico.

PDF Poisson e Frequncia Relativa


0.05

Probabilidade de Chegadas

Frequncia Relativa 0.04 PDF 0.03

0.02

0.01

50

100

150

200

250

Chegadas
Figura 6 - Grfico chegadas por unidade de tempo e PMF da Poisson

6 Questo
o mtodo da caracterizao.

7 Questo
Utilizando as funes das questes anteriores, foi formado um sistema M/M/1 com 1 fila e 1 servidor. O grfico do nmero mdio de usurios no servidor em funo da intensidade do grfico est mostrado na figura 7. O nmero de usurio no servidor dado por /, a intensidade do trfego dada por = /. Logo o nmero mdio de usurios no servidor deve ser igual a , N=intensidade do trfego. Espera-se teoricamente uma reta, o que comprovado pelos dados obtidos e mostrados na figura 7.

Concluso
A qualidade de funes geradoras de nmero pseudo-aleatrios foi observada e comparada para dois casos distintos, mostrando assim, a importncia da escolha dos parmetros. A ferramenta Matlab para a simulao permitiu a visualizao de eventos probabilsticos tratados teoricamente, tais como o comportamento de eventos que obedecem a uma funo densidade de probabilidade (questo 4) ou funo de probabilidade (questo 5). E por ltimo, como as taxas aplicadas a um sistema de M/M/1 na quantidade de usurios no sistema.

Cdigo fonte
1 Questo
clear all; close all; a = 7^5; m = (2^31)-1; x = zeros(1,200000); x(1) = 7; %semente for n = drange(2:200000) x(n) = (mod (a*x(n-1) ,m)); end x=x/m; figure(1); plot(x,'.'); xlabel('Amostra'); ylabel('Valor Amostra'); title('Amostra x Valor'); figure(2); [R,lag] = xcorr (x); plot(R); xlabel('Amostra'); ylabel('Auto-Correlao'); title('Amostra x Auto-Correlao');

2 Questo
clear all; close all; a = (7^5)-1; m = (2^31); x = zeros(1,200000); x(1) = 7; %semente for n = drange(2:200000) x(n) = (mod (a*x(n-1) ,m)); end x=x/m; figure(1); plot(x,'.'); xlabel('Amostra'); ylabel('Valor Amostra'); title('Amostra x Valor'); figure(2); [R,lag] = xcorr (x); plot(R); xlabel('Amostra'); ylabel('Auto-Correlao'); title('Amostra x Auto-Correlao');

4 Questo
clear all; close all; % Gerador a = 7^5; m = (2^31)-1; x = zeros(1,200000); x(1) = 7; %semente for n = drange(2:200000) x(n) = (mod (a*x(n-1) ,m)); end x=x/m; %-------------------------e = zeros(1,200000); for i = 1:200000 e(i) = -(1/2)*log(x(i)); end figure(1); [H,I]=hist(e,100); bar(I,H/trapz(I,H)); hold on; s = 0:0.0001:10; pdf=exppdf(s,1/2);

plot(s,pdf,'r'); hold off; title('Exp PDF e Histograma Normalizado') xlabel('x'); ylabel('g(x)'); legend('Histograma','PDF');

5 Questo
clc; clear all; close all; a = 7^5; m = (2^31)-1; x = zeros(1,200000); x(1) = 7; %semente for n = drange(2:200000) x(n) = (mod (a*x(n-1) ,m)); end x=x/m; e = zeros(1,200000); for i = 1:200000 e(i) = -(1/2)*log(x(i)); end elemento=0; tempo=zeros(1,200000); for i=1:200000 elemento=elemento+e(i); tempo(i)=elemento; end janela = zeros(1,500); soma =0; for i=1:500 utempo=100; for k=1:200000 if i==1 if tempo(k) <= utempo*i soma=soma+1; end end if i>1 if ((tempo(k) > utempo*(i-1))&&(tempo(k) <= utempo*i)) soma=soma+1; end end end janela(i)=soma; soma=0; end maxim=max(janela); freqrel = zeros(1,maxim); cont = 0; for i = 1:maxim for j= 1:500 if i == janela(j)

cont=cont+1; end end freqrel(i)=cont/500; cont=0; end area =sum(freqrel); freqrel=freqrel/area; bar(freqrel); hold on; axisx = 1:maxim; plot(poisspdf(axisx,200),'r'); hold off; xlabel('Chegadas'); ylabel('Probabilidade de Chegadas'); title('PDF Poisson e Frequncia Relativa'); legend('Frequncia Relativa','PDF');

7 Questo
clc; clear all; close all; tempserv=0.1; usuamedios = zeros(1,41); intensidade = zeros(1,41); for gira=1:41 a = 7^5; m = (2^31)-1; x = zeros(1,200000); x(1) = 7; for n = drange(2:200000) x(n) = (mod (a*x(n-1) ,m)); end x=x/m; e = zeros(1,200000); for i = 1:200000 e(i) = -(1/2)*log(x(i)); end elemento=0; chegada=zeros(1,200000); saida=zeros(1,200000); for i=1:200000 elemento=elemento+e(i); if i==1 chegada(i)=elemento; saida(i)=chegada(i)+tempserv; end if i>1 chegada(i)=elemento; if saida(i-1) > chegada(i) saida(i)=saida(i-1)+tempserv; end if saida(i-1)<= chegada(i) saida(i)=chegada(i)+tempserv;

end end end usuarios=zeros(1,50000); servidor=zeros(1,50000); fila=0; for i=1:50000 for j=1:200000 if chegada(j)<=i fila=fila+1; end if saida(j)<=i fila=fila-1; end end usuarios(i)=fila; if fila ~=0 servidor(i)=1; end fila=0; i end usuamedios(gira)=((sum(servidor))/50000); intensidade(gira)=2*tempserv; tempserv=tempserv+0.01; gira end plot(intensidade,usuamedios); hold on; intenteoric = 0.2:0.02:1; usuarteoric = intenteoric; plot(intenteoric,usuarteoric,'r'); hold off; title('Usurios x Trfego') xlabel('Intensidade do Trfego'); ylabel('N Mdio de Usurios no Servidor'); legend('Simulao','Terico');

You might also like