Simularea Firelor de Asteptare Cu o Statie de Servire

download Simularea Firelor de Asteptare Cu o Statie de Servire

of 6

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