Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

Klijenti koji dolaze u postu po Poas.

raspodjeli sa konstantom LambdaDol se


opsluzuju u trajanju koje je generisano po Poas.
raspodjeli sa konstantom LambdaServ.
Simulirati redove cekanja klijenata za zadato VremeSim ukoliko klijenti prilikom
dolaska staju u kraci red cekanja i graficki prikazati promenu duzine redova u toku
simulacije.
KOD:
function [q1, q2] = posta(LambdaDol, LambdaServ, VremeSim)
dolasci = poissrnd(LambdaDol, 1, VremeSim);
wait = poissrnd(LambdaServ, 1, VremeSim); //koliko se ceka za svaki vremenski
trenutak
dolasci = cumsum(dolasci);
dolasci = dolasci(dolasci<=VremeSim);
q1 = zeros(1,VremeSim);
q2 = zeros(1,VremeSim);
ceka1 = 0; // sluzice za odbrojavanje koliko se klijent usluzuje
ceka2 = 0;
for t=1:VremeSim
dosli = sum(dolasci==t); //svi koji su dosli u trenutku t
if (q1(t-1) < q2(t-1)) // ako je prvi red manji od drugog
q1(t) = q1(t-1) + dosli - dosli/2;
q2(t) = q2(t-1) + dosli/2;
// u prvi red stavljam vise njih
// pp da ih je doslo 7, u prvi staje 4 (7-7/2), u drugi 3 (7/2)
// zasto po pola, jer ce ici naizmjenicno u krace redove
else
q1(t) = q1(t-1) + dosli/2;
q2(t) = q2(t-1) + dosli - dosli/2;
end
if (ceka1==0 && q1(t)>0) // ako niko ne ceka, a ima ljudi u redu
q1(t) = q1(t) - 1; // smanji red (posalji nekog na salter)
ceka1 = wait(t); // ceka1 ce biti duzina cekanja za trenutak t
end
if (ceka2==0 && q2(t)>0) // isto kao i pretohdno samo za red2
q2(t) = q2(t) - 1;
ceka2 = wait(t);
end
if (ceka2>0) ceka2 = ceka2 - 1; end
if (ceka1>0) ceka1 = ceka1 - 1; end
end
main:
[q1, q2] = posta (2,2,15);
bar(q1); // predstavice red1 graficki preko lestvice
bar(q2);

by Skovla

Rok jun 2010

You might also like