Sunteți pe pagina 1din 11

Simularea activității unui supermarket

Mega Image

Niță Cristina-Nicoleta
Grupa 1030
Profesor coordonator: Angela Galupa
Cuprins
1 Introducere................................................................................................................................................................ 3
Studiu statistic .............................................................................................................................................................. 3
2 Pregătirea experimentului .................................................................................................................................. 4
Observații ....................................................................................................................................................................... 5
3 Simularea propriu-zisă ....................................................................... Error! Bookmark not defined.6
4 Concluzii .................................................................................................................................................................. 11

2
1. Introducere

În proiect de față ne propunem să simulăm un caz de așteptare cu două stații de servire, care
execută același serviciu, cum ar fi un supermaket Mega Image cu două case de marcat, ce sunt legate
în paralel.

O simulare dependentă de timp a activității sistemului de așteptare într-o anumită perioadă de


timp, care se numește orizont de simulare, presupune urmărirea fiecărui client care intră în sistem
sub următoarele aspecte:

 La ce moment sosește în sistem ?


 Dacă așteaptă, cât așteaptă?
 La ce stație este servit și în cât timp?
 La ce moment părăsește sistemul?

Ne propunem ca în cele ce urmează, printr-un experiment de simulare să urmărim activitatea


sistemului de așteptare pănă când primii 20 clienți sosiți în sistem sunt serviți.

Studiu statistic

În urma studiului efectuat, în proiectul de față vom lucra în următoarele ipostaze:

 Dintr-un studiu statistic efectuat asupra sosirilor în sistem a rezultat că numărul mediu al
sosirilor este de 29 clienți pe oră , iar numărul sosirilor este o variabilă aleatoare care
urmează o distribuție poissoniană de parametru λ= 29clienți/oră;

 Un client care intră în sistem și observă că cele două case sunt ocupate, așteaptă înainte de
a fi servit. Se formează astfel firul de așteptarea sau coada. Presupunem că se formează un
singur fir de așteptare pentru cele două case și că acesta este nelimitat;

 Ordinea în care sunt serviți clienții care așteaptă se numește disciplina sistemului de
așteptare și în cazul studiat presupunem că este tipul F.I.F.O, „primul venit, primul servit”;

 Dacă ambele stații sunt libere și există un client la coadă, el nu își exprimă o preferință
pentru o anumită casă ci o ocupă pe cea cu cel mai mic cod( ghișeul 1);

 Timpul de servire este o variabilă aleatoare care urmează o lege exponențial negativă de
parametrii µ1 =19 clienți/oră pentru prima stație și respectiv µ2 = 11 clienți/oră pentu cea
de-a doua stație;

 Dacă un client așteaptă mai mult de 15 minute înainte de a fi servit, părăsește


sistemul(renunță la servire) cu probabilitatea p= 0,4. Un client care intră în sistem și

3
observă stațiile ocupate și 6 persoane la coadă refuză servirea(nu intră în sistem) cu
probabilitatea 1-p= 0,6.

2. Pregătirea experimentului

S-a decis realizarea unei simulării dependente de timp , pe un orizont de simulare θ, egal cu
suma duratelor de timp dintre momentul deschiderii sistemului și momentul sosirii primului client,
dintre momentul sosirii primului client și momentul sosirii celui de-al doilea client, ș.a.m.d. până
când sosește clientul 20.

Dacă notăm cu θi intervalul dintre două sosiri successive atunci orizontul de simulare, în
exemplul nostrum, este dat de relația:
20

𝜃 = ∑ 𝜃𝑖
𝑖=1

Variabila ceas (ceasul simulării) se consideră zero în momentul deschiderii sistemului, iar θ1
reprezintă intervalul dintre momentul deschiderii sistemului și momentul sosirii primului client
(prima creștere a variabilei ceas). Se spune că după θ1 unități de timp sosește primul client.

Momentul tk în care clientul k sosește în sistem se determină cu relația:


𝑘

𝑡𝑘 = ∑ 𝜃𝑖 , 𝑘 = 1,10
𝑖=1

În intervalul θi pot avea loc următoarele evenimente:

i. Să aștepte un client sau mai mulți


ii. să intre în servire un client sau cel mult doi
iii. să părăsească sistemul un client dacă așteaptă mai mult de 15 minute.

Următorul pas:

 Generarea intervalelor de timp dintre două sosiri successive, pe care le vom nota cu: θ1, θ2 ,
……………., θ20(tabelul 2-1);
 Generarea timpilor (duratelor) de servire, 𝑑𝑖1 , pe prima stație de servire(tabelul 2-2), și
respectiv, a duratelor de servire 𝑑𝑖2 , pe cea de-a doua stație de servire(tabelul 2-3).

4
Tabelul 2-1 Momentele în care clientul k sosește în sistem

Sosirile în sistem sunt poissoniene:

𝑋
(𝜆𝑥 −𝜆
) 𝜆 = 29 ⇔ 𝑓(𝑥) = 𝜆 ∗ 𝑒 −𝜆∗𝑥 , 𝜆 = 29, 𝑥 > 0
𝑥 ∗ 𝑒

Dacă sosirile sunt poissoniene, intervalul sosirilor din sistem urmează o lege exponential
negativă de parametru λ.

Pentru simularea independent de timp se folosește prima lege (membru stâng al relației
precedente), iar pentru simularea dependent de timp se folosește a doua lege(membru drept al
relației precedente).

Pentru generarea intervalelor dintre două sosiri successive θi, cât și pentru generarea
duratelor de servire a clienților pe cel două stații de servire se folosește metoda transformatei
inverse

Observații:

 În cazul simulării manual este dificil de lucrat cu lungimi de intervale exprimate în ore
și se preferă transformarea în minute, rotujind în plus cu un minut, atunci când
secundele depășesc valoarea 50 și renunțând la secunde în caz contrar;

5
 Conform datelor din tabelul 2-1, θ1=2` și prin urmare primul client sosește în sistem la
momentul t1 = θ1=2` după deschiderea sistemului, al doilea client sosește la un interval
de 3` după sosirea primului , t2= θ1 + θ2 =2` + 3`= 5` , ș.a.m.d.

Tabelul 2-2- Durata de servire a ghișeului 1

Tabelul 2-3 Durata de servire a ghișeului 2

6
Pentru obținerea acestor valori aleatoare am folosit următorul cod:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

main()
{
int n, max, num, c;

printf("Cate numere aleatoare doriti sa fie generate?");


scanf("%d",&n);

printf("Introduceti valoarea maxima a numerelor aleatoare:");


scanf("%d",&max);

printf("%d Numerele aleatoare de la 0 la %d sunt :-\n",n,max);


randomize();
for ( c = 1 ; c <= n ; c++ )
{
num = random(max);
printf("%d\n",num);
}

getch();
return 0;
}

Notații:

 E1 – evenimentul în care clientul părăsește sistemul după 15 minute de așteptare cu


probabilitatea p(E1)= 0,4:
 E2 – clientul nou sosit nu intră în sistem dacă observă 6 persoane care așteaptă cu
probabilitatea de realizarea a acestui eveniment, p(E2)=0,6.

Pentru a simula realizarea sau non-realizarea acestor evenimente se vor realiza două șiruri
uniform distrbuite pe [0,1] și anume:

un ϵ {0.16; 0.84; 0.30; 0.36; 0.53; 0.31; 0.46; 0.98; ……….} , pentru evenimentul E1

vn ϵ {0,42; 0,45; 0,10; 0,93; 0,84; 0,77; 0,39; 0,25; ………. } , pentru evenimentul E2

7
3. Simularea propriu-zisă

Momentele de sosire ale clienților în sistemul de servire, notate tk, se simulează prin intermediul
valorilor θi.

Ca variabile de ieșire pentru simularea sistemului de așteptare se consideră timpul de așteptare a


clienților în fir (ta) și timpul de neutilizare a stațiilor de servire (tn).

După θ1 unități de timp(θ1 = 2 ̀) soseste în sistem primul client codificat k=1 la momentul t1=θ1=2 ̀.

Observăm sistemul: ambele case de marcat sunt libere și conform convenției primul client intră în
servire la casa S1.

Conform duratelor de servire din ultima coloana a tabelului 2-2 generate pentru prima statie,
rezulta ca durata de servire a primului client este de 2 ̀ si prin urmare, momentul eliberarii primei
stații va fi dat de relația:

𝑇11 = 𝑡1 + 𝑑11 = 2` + 2` = 4` , iar în acest moment se consideră că primul client a fost


servit și părăsește sistemul.

Timpul de neutilizare pe cele două case este tn=2`+2`=4`

Al doilea client, k=2, sosește în sistem la un interval de 3` după sosirea primului client și
variabila ceas ia valoarea t2=θ1+θ2=2`+3`=5`. Cum prima casă a terminat servirea, clientul
va fi servit tot la S1 conform convenției, cu toate că și casa S2 este liberă.

Casa S1 se va elibera la momentul:

𝑇21 = 𝑇11 + 𝑑21 = 4` + 4` = 8` și va înregistra un timp de neutilizare tn=4`-2`=2`.

Următoarea sosire în sistem se produce când variabila ceas crește din nou și ia valoarea:
t3=t2+θ3=5`+1`=6`.

În acest moment S1 este ocupată și clientul k=3 va fi servit de casa S2, care se va elibera la
momentul :

𝑇32 = 𝑡3 + 𝑑12 = 6` + 5` = 11` și se va înregistra un timp de neutilizare tn=6`-5`=1`.

Variabila ceas ia valoarea t4=t3+θ4=11`+5`=16` și clientul k=4 ce a intrat în sistem va fi


servit de casa S1, care se va elibera la momentul :

𝑇41 = 𝑇21 + 𝑑31 = 8` + 4` = 12` va înregistra un timp de neutilizare tn=16`-8`=4`.

Clientul cu codul k=5 sosește în sistem la momentul: t5=t4+θ5=16`+5`=21` și va fi servit de


casa S2, care se va elibera la momentul:

8
𝑇52 = 𝑇32 + 𝑑22 = 11` + 3` = 14` va înregistra un timp de neutilizare tn=21`-11`=10`.

Ceasul simulării avansează la momentul următor: t6=t5+ θ6=21`+1`=22` și în sistem intră


clinetul k=6, ce va fi servit de casa S1, care va fi eliberată la momentul:

𝑇61 = 𝑇41 + 𝑑41 = 12` + 1` = 13` va înregistra un timp de neutilizare tn=22`-12`=10`.

Următoarea sosire are loc la momentul t7=t6 + θ7 = 22`+5`=27` a clientului k=7 și va fi servit
de casa S1, care se va elibera la momentul :

𝑇71 = 𝑇61 + 𝑑51 = 13` + 7` = 20` va înregistra un timp de neutilizare tn=27`-13`=14`.

Clientul cu codul k=8 sosește în sistem la momentul t8=t7 + θ8 = 27`+1`=28` si va fi servit de


casa S2, care se va elibera la momentul :

𝑇82 = 𝑇52 + 𝑑32 = 14` + 6` = 26` va înregistra un timp de neutilizare tn=28`-14`=14`.

Variabila ceas crește la valoarea; t9=t8 + θ9 = 28`+6`=34` și în sistem va intra clientul k=9,
care va fi servit de casa S1. Casa S1 se va elibera la momentul:

𝑇91 = 𝑇71 + 𝑑61 = 20` + 3` = 23` va înregistra un timp de neutilizare tn=34`-20`=14`.

Următoarea sosire are loc la momentul t10=t9 + θ10 = 34`+1`=35` a clientului k=10 și va fi
servit de casa S1, care se va elibera la momentul :
1
𝑇10 = 𝑇91 + 𝑑71 = 23` + 1` = 24` va înregistra un timp de neutilizare tn=35`-23`=12`.

Clientul cu codul k=11 sosește în sistem la momentul t11=t10 + θ11 = 35`+3`=38` si va fi


servit de casa S1, care se va elibera la momentul :
1 1
𝑇11 = 𝑇10 + 𝑑81 = 24` + 3` = 27` va înregistra un timp de neutilizare tn=38`-24`=14`.

Ceasul simulării avansează la momentul următor: t12=t11+ θ12=38`+2`=40` și în sistem intră


clinetul k=12, ce va fi servit de casa S2, care va fi eliberată la momentul:
2
𝑇12 = 𝑇82 + 𝑑42 = 26` + 1` = 27` va înregistra un timp de neutilizare tn=40`-26`=14`.

Variabila ceas crește la valoarea; t13=t12 + θ13 = 40`+1`=41` și în sistem va intra clientul
k=13, care va fi servit de casa S1. Casa S1 se va elibera la momentul:
1 1
𝑇13 = 𝑇11 + 𝑑91 = 27` + 4` = 31` va înregistra un timp de neutilizare tn=41`-27`=14`.

Următoarea sosire are loc la momentul t14=t13 + θ14 = 41`+2`=43` a clientului k=14 și va fi
servit de casa S2, care se va elibera la momentul :
2
𝑇14 2
= 𝑇12 + 𝑑52 = 27` + 8` = 35` va înregistra un timp de neutilizare tn=43`-27`=16`.

9
Clientul cu codul k=15 sosește în sistem la momentul t15=t14 + θ15 = 43`+2`=45` si va fi
servit de casa S1, care se va elibera la momentul :
1 1 1
𝑇15 = 𝑇13 + 𝑑10 = 31` + 1` = 32` va înregistra un timp de neutilizare tn=45`-32`=13`.

Variabila ceas crește la valoarea; t16=t15 + θ16 = 45`+1`=46` și în sistem va intra clientul
k=16, care va fi servit de casa S1. Casa S1 se va elibera la momentul:
1 1 1
𝑇16 = 𝑇15 + 𝑑11 = 32` + 5` = 36` va înregistra un timp de neutilizare tn=46`-36`=10`.

Ceasul simulării avansează la momentul următor: t17=t16+ θ17=46`+3`=49` și în sistem intră


clinetul k=17, ce va fi servit de casa S2, care va fi eliberată la momentul:
2 2
𝑇17 = 𝑇14 + 𝑑62 = 35` + 6` = 41` va înregistra un timp de neutilizare tn=49`-35`=14`.

Următoarea sosire are loc la momentul t18=t17 + θ18 = 49`+1`=50` a clientului k=18 și va fi
servit de casa S1, care se va elibera la momentul :
1 1 1
𝑇18 = 𝑇16 + 𝑑12 = 36` + 5` = 41` va înregistra un timp de neutilizare tn=50`-36`=14`.

Clientul cu codul k=19 sosește în sistem la momentul t19=t18 + θ19 = 50`+1`=51` și va fi


servit de casa S1, care se va elibera la momentul :
1 1 1
𝑇19 = 𝑇18 + 𝑑13 = 41` + 1` = 42` va înregistra un timp de neutilizare tn=51`-41`=10`.

Ultima creștere a variabilei ceas este la momentul: t20=t19+ θ20=51`+1`=52` și în sistem


intră clinetul k=20, ce va fi servit de casa S1, care va fi eliberată la momentul:
1 1 1
𝑇20 = 𝑇19 + 𝑑14 = 42` + 2` = 44` va înregistra un timp de neutilizare tn=52`-42`=10`.

Simularea prin Winqsb

10
4. Concluzii

În urma simulării putem observa cu ușurință, că pe acest orizont nu se formează fire de așteptare,
implicit niciun client nu stă la coadă și nici nu se întâmpină situația ca un client să părăsească
sistemul de servire. De asemenea putem să observăm că pe toată perioada, cele 2 case au un timp
de neutilizare cuprins între 9 și 14 minute.

11

S-ar putea să vă placă și