Simularea Firelor de Asteptare Cu o Statie de Servire
-
Upload
anonymous-zojdnwgjb -
Category
Documents
-
view
221 -
download
0
Transcript of Simularea Firelor de Asteptare Cu o Statie de Servire
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
1/6
Simularea …relor de aşteptare
Studiul comport¼arii în timp a unor sisteme în evoluţia c¼arora intervin şielemente aleatoare se poate face cu ajutorul calculatoarelor. Pentru aceasta,sistemului real i se asociaz¼a un model de simulare care este folosit apoi pentrua produce, prin intermediul calculatorului, succesiunea cronologic¼a de st¼ari princare va trece sistemul, considerându-se dat¼a starea sa iniţial¼a.
Modelele de aşteptare mai complicate nu au soluţii analitice. De exemplu,sistemele de servire cu un num¼ar mare de staţii cu o topologie complex¼a, cureparti̧tiile timpilor de sosire şi/sau de servire de un tip complicat (gamma,Weibull, 2; amestecuri de reparti̧tii) sau sisteme cu priorit¼aţi. Pentru astfelde situa̧tii se recomand¼a simularea digital ¼ a. În informatic¼a, termenul a fostintrodus de John von Neumann .
Simularea digital ¼ a se poate folosi cu succes la proiectarea sistemelor deaşteptare, f ¼acând experieņte pe model cu diferi̧ti parametri de intrare. La con-struirea unui model de simulare, partea cea mai di…cil¼a este procedeul de ”amişca” sistemul în timp astfel încât s¼a nu se ajung¼a la situaţia în care diferiteleelemente ale sistemului s¼a parcurg¼a intervale diferite de timp. De aceea estenecesar¼a introducerea în modelul de simulare a unei variabile numit¼a ceasul simul ¼ arii care s¼a m¼asoare scurgerea timpului real în care se simuleaz¼a sistemul,cu scopul de a menţine ordinea corect¼a în timp a evenimentelor. Aceast¼a vari-abil¼a ia la început valoarea zero, apoi este incrementat¼a la …ecare pas al proce-sului de simulare.
În mediul Matlab, în Statistics Toolbox exist¼a generatori pentru 20 de tipuride variabile aleatoare: exponenţiale negative (exprnd), Poisson (poissrnd) ,de
tip gamma (gamrnd) şi beta (betarnd), normale (normrnd), binomial ¼ a (binornd), 2(chi2rnd), etc.To̧ti aceşti generatori folosesc generatorul de numere pseudoaleatoare (de dis-tribuţie uniform ¼ a) random. Codul acestor funçtii Matlab se poate tip¼ari cucomanda
type_ function_ name .
Codul se poate redenumi şi modi…ca pentru o aplicaţie proprie.
Simularea unui sistem de aşteptare cu priorit¼a̧ti
Modelele în care disciplina de servire se stabileşte dup¼a criterii care nu iau înconsiderare ordinea intr¼arii clienţilor în sistem, se numesc modele cu prioritate .
Clienţii sunt împ¼arţi̧ti în clase de priorit¼aţi. În cadrul aceleiaşi clase clienţii suntserviţi în ordinea FIFO ("primul sosit-primul servit"). Clienţii pot sosi în sistemdup¼a aceeaşi repartiţie sau dup¼a reparti̧tii ale timpului între sosiri diferite.
Presupunem c¼a avem dou¼a clase: prioritatea 1 este mai puternic¼a decâtprioritatea 2. Se cunosc probabilit¼a̧tile p1 şi p2 cu care sosesc cele dou¼a tipuride clienţi. Presupunem c¼a timpul de intersosire i al clienţilor de prioritate i are
1
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
2/6
reparti̧tia F i(x); i = 1; 2:Atunci timpul de intersosire al clienţilor (amestecaţi)este o compunere discret¼a a celor dou¼a variabile 1 şi 2 adic¼a funcţia sa de
repartiţie este de forma:F (x) = p1F 1(x)+ p2F 2(x); unde p1 + p2 = 1:
Amestecarea discret¼a poate … interpretat¼a astfel: = i cu probabilitatea pi; i = 1; 2:
Simularea timpului de intersosire se face astfel:Generaz ¼ a un indice i cu repartiţia discret ¼ a:
I :
1 2 p1 p2
; p1 + p2 = 1:
Genereaz ¼ a i având funcţia de repartiţie F i(x); := i .Presupunem c¼a dispunem de metode de generare a variabilelor i .
Schema logic¼a din …gur¼a se modi…c¼a astfel: la generarea lui în blocul 2clientul se aşeaz¼a în coada Q1sau Q2 corespunz¼atoare priorit¼aţii. În blocul 4se simuleaz¼a timpul de servire conform priorit¼aţii celei mai mari dac¼a Q1 estenevid¼a sau priorit¼a̧tii mai mici dac¼a Q1 este vid¼a. Se pot calcula timpii deaşteptare în funcţie de priorit¼a̧ti.
Simularea unui sistem de aşteptare cu o staţie
Se vor folosi urm¼atoarele notaţii:
- intervalul de timp (aleator) dintre dou ¼ a sosiri consecutive; - durata (aleatoare) a unui serviciu;tf - durata de aşteptare la coad ¼ a a clientului care urmeaz ¼ a s ¼ a …e servit ;tl - timpul de neocupare (lenevire) a staţiei de servire de la terminarea ul-
timului serviciu la începerea urm ¼ atorului serviciu;ttf - durata total ¼ a de aşteptare a tuturor clienţilor;ttl - durata total ¼ a de neocupare (lenevire) a staţiei de serviciu;N - num ¼ arul total de servicii simulate;I - contor care num ¼ ar ¼ a serviciile.
Repartiţiile variabilelor aleatoare şi se presupun cunoscute iar para-metrii lor sunt date de intrare, împreun¼a cu num¼arul total de servicii simulateN . Celelalte sunt variabile aleatoare de ieşire şi cu ajutorul lor se pot calculaurm¼atoarele valori medii:-durata medie de aşteptare a unui client:
tf = ttf
N ;
-durata medie de lenevire a staţiei de servire de la terminarea unui serviciu la începerea urm ¼ atorului serviciu:
tl = ttl
N :
2
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
3/6
Presupunem c¼a pentru variabilele aleatoare şi dispunem de subrutine degenerare care pot … apelate de programul de simulare.
În schema logic¼a, în primul bloc se fac iniţializ¼arile şi se citesc valorile para-metrilor repartiţiilor variabilelor aleatoare şi : Blocul (2) simuleaz¼a venireaunui client. Blocul (3) calculeaz¼a timpul de sosire ajustat. Apoi în blocul (4) segenereaz¼a un serviciu (m¼arindu-se contorul I cu o unitate). Aceast¼a durat¼ade serviciu se compar¼a cu timpul de sosire a justat, în blocul (5). Dac¼a > atunci sta̧tia de serviciu este ocupat¼a, astfel încât în blocul (6), se ia timpulde lenevire al sta̧tiei nul, se calculeaz¼a timpul de aşteptare al clientului careurmeaz¼a s¼a …e servit primul şi se adun¼a acest timp, la timpul total de aşteptare.Dac¼a dimpotriv¼a ; staţia este neocupat¼a şi atunci în blocul (7) se ia timpulde aşteptare al clientului ce va … servit primul egal cu zero, se determin¼a timpulde lenevire al staţiei şi se adun¼a acest timp la timpul total de lenevire. În blocul(8) se decide dac¼a simularea se termin¼a sau nu, iar în blocul (9) se calculeaz¼aparametrii de ieşire.
Programul în MATLAB
n=input(’Introduceti numarul de serviri simulate– > N=’)lambda=input(’Introduceti nr. mediu de sosiri in unitatea de timp, lambda=’)miu=input(’Introduceti nr. mediu de serviri in unitatea de timp, miu=’)ttf=0;ttl=0;tf=0;i=0;while(i
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
4/6
Figure 1:
4
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
5/6
tbarl=ttl/n disp(’****************************************’)
disp(’Durata medie de aşteptare a unui client este ’)tbarf=ttf/n disp(’****************************************’)disp(’Durata medie de asteptare calculata este’)tbarfcalc=1/(miu-lambda)-1/miu disp(’****************************************’)
Programul a fost salvat sub numele Statie.m
Validarea modelului
1. Date de intrare:lambda =5 sosiri / or ¼ a
miu =10 serviri / or ¼ a N = 100000
Date de iesire:tbarf ~tbarfcalc=6 minute
2. Date de intrare:lambda =30 sosiri / or ¼ a miu =40 serviri / or ¼ a N = 100000
Date de iesire:tbarf ~tbarfcalc= 4.5 minute
Apelarea programului
Introduceţi num ¼ arul de serviri simulate– > N=100000 n = 100000 Introduceţi lambda=30 lambda = 30 Introduceţi miu=40 miu = 40 **************************************** Durata medie de lenevire a staţiei este tbarl =
0.0082 **************************************** Durata medie de aşteptare a unui client este tbarf = 0.0761****************************************
5
-
8/16/2019 Simularea Firelor de Asteptare Cu o Statie de Servire
6/6
Durata medie de aşteptare calculat ¼ a tbarfcalc =
0.0750 ****************************************
6