12
Universidade de Brasília Departamento de Engenharia Elétrica Redes de Telecomunicações I Exercício de Simulação I Autores: Márcia Manuela M. Nunes 09/0138821 Rodrigo Rozário Bezerra 09/0131622 Sávio Oliveira de Almeida Neves 09/013X26 Professor: Darli Mello Brasília Dezembro de 2012

Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Embed Size (px)

DESCRIPTION

Geração de Números pseudo aleatórios utilizando MATLAB.

Citation preview

Page 1: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Universidade de Brasília

Departamento de Engenharia Elétrica

Redes de Telecomunicações I

Exercício de Simulação I

Autores:

Márcia Manuela M. Nunes 09/0138821

Rodrigo Rozário Bezerra 09/0131622

Sávio Oliveira de Almeida Neves 09/013X26

Professor:

Darli Mello

Brasília

Dezembro de 2012

Page 2: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Fundamentação Teórica

Números pseudo-aleatórios

Sabendo que o resíduo de sucessivas potências de um número possui boas

propriedades aleatórias, a fórmula para geradores lineares congruentes multiplicativos

foi generalizada (1).

Os números pseudo-aleatórios gerados possuem um período, nele os números

gerados irão repetir. O tamanho máximo desse período é dado por 2𝑘−2 para geradores

com 𝑚 = 2𝑘 , e período máximo de 𝑚 para 𝑚 = 2𝑘 − 1.

𝑥𝑛 = 𝑎. 𝑥𝑛−1 𝑚𝑜𝑑 𝑚 (1)

Geração de uma variável aleatória

Um dos métodos utilizados para a obtenção de uma variável aleatória a partir de

outra, é a inversão. Neste método, a função densidade cumulativa da variável a ser

gerada é invertida e aplicada nesta função uma variável aleatória uniforme, gerando

assim a variável aleatória com a pdf desejada.

No caso de uma função exponencial negativa, a função inversa encontrada é (2).

𝑥 = −1

λ. ln(1 − 𝑢) (2)

Outro método utilizado é a caracterização, onde características especiais de

algumas distribuições permitem que suas variáveis sejam geradas usando algoritmos

especialmente adaptados para ela.

Sistemas M/M/1

Sistemas M/M/1 são formados por uma fila única e um servidor, as mensagens

que chegam ao buffer são armazenadas em fila e esperam pelo serviço de um único

elemento de processamento.

A chegada de elementos é determinada por uma distribuição de Poisson com

taxa λ e a tempo médio de serviço é de 1/µ. O número médio de usuário no servidor é

dado por λ/µ e a intensidade do tráfego ρ = λ/µ.

Page 3: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Resultados

1ª Questão

A fórmula para geradores lineares congruentes multiplicativos (1), com 𝑎 = 75,

𝑚 = 231 − 1 e semente X0 = 0, nos fornece os número pseudo-aleatórios mostrados no

gráfico da figura 1.

Figura 1 – Números pseudo-aleatórios gerados na questão 1

0 0.5 1 1.5 2

x 105

0

0.2

0.4

0.6

0.8

1

Amostra

Valo

r A

mo

stra

Amostra x Valor

Page 4: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Figura 2 – Auto-correlação na questão 1

Percebe-se um bom espalhamento dos 200.000 números gerados na figura 1. O

gráfico da figura 2 mostra a auto-correlação entre os números obtidos.

2ª Questão

Novamente utilizando a fórmula 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 gráfico referente aos números pseudo-aleatórios

gerados, mostrado na figura 3.

Percebe-se no gráfico que em um determinado instante, o gerador apenas retorna

o número 0. Este comportamento é conseqüência da periodicidade do gerador, que

quando obtêm o valor 0, entra em um loop retornando sempre o mesmo valor 0.

O gráfico da figura 4 mostra auto- correlação entre os números obtidos.

0 1 2 3 4

x 105

0

1

2

3

4

5

6

7x 10

4

Amostra

Au

to-C

orr

ela

ção

Amostra x Auto-Correlação

Page 5: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Figura 3 - Números pseudo-aleatórios gerados na questão 2

Figura 4 - Auto-correlação na questão 2

3ª Questão

O gerador referente à primeira questão é a melhor escolha entre as duas questões

anteriores. Este fato se deve à maior periodicidade encontrada no primeiro gerador, e ao

0 0.5 1 1.5 2

x 105

0

0.2

0.4

0.6

0.8

1

Amostra

Valo

r A

mo

stra

Amostra x Valor

0 0.5 1 1.5 2 2.5 3 3.5 4

x 105

-2

0

2

4

6

8

10

12

Amostra

Au

to-C

orr

ela

ção

Amostra x Auto-Correlação

Page 6: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

melhor espalhamento entre os números pseudo-aleatórios gerados, comportamentos

consequentes da escolha dos parâmetros a e m, onde 𝑚 = 231 − 1 fornece um maior

período (máximo período encontrado igual a m).

4ª Questão

Usando o método de inversão (2) foi gerada uma sequência de 200.000 tempos

entre chegadas com distribuição exponencial negativa.

O gráfico da figura 5 mostra o histograma dos tempos entre chegadas, onde é

possível observar o comportamento de uma variável aleatória que segue a função

densidade de probabilidade de uma exponencial negativa, mostrada no mesmo gráfico

por uma linha vermelha.

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

5ª Questão

Cascateando os tempos de chegadas gerados na questão anterior, e analisando a

quantidade de chegadas a cada 500 janelas com 100 unidades de tempo foi gerado o

gráfico mostrado na figura 6. Utilizando a relação (3) pôde-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)

0 2 4 6 8 100

0.5

1

1.5

2

2.5

Exp PDF e Histograma Normalizado

x

g(x

)

Histograma

PDF

Page 7: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

No gráfico da figura 6, é possível observar o comportamento da função de

probabilidade Poissoniana, exaltada na linha vermelha do gráfico.

Figura 6 - Gráfico chegadas por unidade de tempo e PMF da Poisson

6ª Questão

É o método da caracterização.

7ª Questão

Utilizando as funções das questões anteriores, foi formado um sistema M/M/1

com 1 fila e 1 servidor. O gráfico do número médio de usuários no servidor em função

da intensidade do gráfico está mostrado na figura 7.

O número de usuário no servidor é dado por λ/µ, a intensidade do tráfego é dada

por ρ = λ/µ. Logo o número médio de usuários no servidor deve ser igual a ρ,

N=intensidade do tráfego. Espera-se teoricamente uma reta, o que é comprovado pelos

dados obtidos e mostrados na figura 7.

0 50 100 150 200 2500

0.01

0.02

0.03

0.04

0.05

Chegadas

Pro

bab

ilid

ad

e d

e C

heg

ad

as

PDF Poisson e Frequência Relativa

Frequência Relativa

PDF

Page 8: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

Conclusão

A qualidade de funções geradoras de número pseudo-aleatórios foi observada e

comparada para dois casos distintos, mostrando assim, a importância da escolha dos

parâmetros.

A ferramenta Matlab para a simulação permitiu a visualização de eventos

probabilísticos tratados teoricamente, tais como o comportamento de eventos que

obedecem a uma função densidade de probabilidade (questão 4) ou função de

probabilidade (questão 5).

E por último, como as taxas aplicadas a um sistema de M/M/1 na quantidade de

usuários no sistema.

Código fonte

1ª Questão

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-Correlação'); title('Amostra x Auto-Correlação');

Page 9: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

2ª Questão

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-Correlação'); title('Amostra x Auto-Correlação');

4ª Questão

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

Page 10: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

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

5ª Questão

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)

Page 11: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

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 Frequência Relativa'); legend('Frequência Relativa','PDF');

7ª Questão

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;

Page 12: Relatório 1 de Redes de Telecomunicações - Números Aleatórios

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('Usuários x Tráfego') xlabel('Intensidade do Tráfego'); ylabel('Nº Médio de Usuários no Servidor'); legend('Simulação','Teórico');