sistema di coda m/m/1

annuncio pubblicitario
SISTEMA DI CODA M/M/1
Introduzione
Per lo studio dei sistemi di coda è importante conoscere il concetto di processo stocastico; esso è
definito come una funzione casuale X(t) i cui valori sono variabili aleatorie. Il più semplice
processo stocastico si ha ottenendo una sequenza casuale dove Xn forma un insieme di variabili
indipendenti; in tal modo non vi è dipendenza nella realizzazione n-esima al tempo t dalle
realizzazioni precedenti. In tale ambito si inseriscono i processi di Markov, nei quali il valore che
assume la variabile aleatoria è chiamato anche stato.Un insieme di tali variabili {Xn} forma una
catena di Markov se la probabilità che il prossimo stato sia pari alla variabile aleatoria x(n+1)
dipende solo dal corrente stato e non dagli stati precedenti.Il tempo già speso in un dato stato non
deve influenzare il tempo ancora rimanente prima della prossima transizione. La funzione di
distribuzione degli intervalli fra i passaggi di stato può essere dunque una funzione esponenziale
negativa, che ha la caratteristica di essere "senza memoria".
Metodologie di calcolo
I sistemi di coda M/M/1 sono sistemi in cui gli arrivi sono poissoniani e i tempi di servizio sono
esponenziali negativi. Dire che gli arrivi sono poissoniani vuol dire che la probabilità che vi siano k
arrivi in un intervallo di tempo (0,t) è pari a:
(  t ) k  e  (  t )
P(k (t )) 
k!
che è proprio la funzione di distribuzione di Poisson. In pratica c'è una tripla implicazione:
-
intervalli tra due arrivi successivi distribuiti secondo una legge esponenziale negativa di
coefficiente λ;
tasso degli arrivi costante e pari a λ;
distribuzione del numero degli arrivi in un tempo t di tipo Poisson.
Dunque l'intervallo di tempo che intercede tra l'arrivo di un utente e l'altro segue la legge di
distribuzione esponenziale negativa:
f(t) = λ e − λt
I valori casuali che possono essere generati dal computer hanno una distribuzione uniforme con
valori compresi nell'intervallo [0,1]. Per poterli utilizzare come intervalli di tempo si utilizza il
metodo dell’inversione. Tale metodo utilizza la funzione di distribuzione cumulata F(t) pari a:
F(t) = 1 − e − λt
Utilizzando il valore generato con distribuzione uniforme come valore di probabilità e la relazione
di F(t), si ricava il valore dell'intervallo di tempo Δt, distribuito secondo una legge esponenziale
negativa.
In altre parole equivarrebbe ad entrare con il numero casuale nell'asse delle ordinate rappresentativo
di F(t), ed intersecando la distribuzione di probabilità cumulata, si ottiene il relativo valore di t .
Si riportano di seguito i passaggi utilizzati per ottenere il valore di Δt partendo dalla F(t):
F(t) = P = 1 − e − λt
1 − P = e − λt
ln(1 − P) = − λt
t
 ln (1  P)

Si ricorda che si è posto t = Δt
Si deve considerare inoltre il tempo di servizio che risulta distribuito sempre secondo legge
esponenziale negativa ma con parametro μ, che rappresenta il numero di elementi che il sistema è in
grado di servire nell'unità di tempo.
Il tempo di uscita per ciascun utente è dato dal tempo di servizio, a cui viene aggiunto il massimo
tra il tempo di uscita dell'utente precedente, ed il tempo di ingresso dell'utente stesso.
Si ricorda inoltre che in un sistema di coda deve essere rispettata la condizione λ < μ altrimenti la
coda tende all'infinito.
Si intende ora affrontare tale problema attraverso l'ausilio del software Excel.
Si conoscono a tal proposito i valori:
λ = 10
μ = 12
arrivi/ora
= 0,027
utenti serviti/ora = 0,003
Si può impostare la seguente tabella:
arrivi/secondo
utenti serviti/secondo
t ingresso
Arrivi
(secondi)
1° utente
0,00
2° utente
60,03
3° utente
267,84
4° utente
334,26
5° utente
742,25
6° utente 1005,48
7° utente 1156,98
8° utente 1590,52
9° utente 1601,43
10° utente 3242,58
11° utente 3703,55
12° utente 3780,87
13° utente 4050,41
14° utente 4848,78
15° utente 5241,50
16° utente 5280,65
17° utente 5457,51
18° utente 5974,86
19° utente 6001,35
20° utente 6341,78
Variabile
casuale
x
0,85
0,56
0,83
0,32
0,48
0,66
0,30
0,97
0,01
0,28
0,81
0,47
0,11
0,34
0,90
0,61
0,24
0,93
0,39
0,62
Tempi tra
2 arrivi successivi
t (secondi)
60,03
207,81
66,43
407,99
263,23
151,50
433,54
10,91
1641,15
460,97
77,32
269,54
798,37
392,72
39,15
176,86
517,35
26,49
340,42
171,38
x
0,53
0,44
0,92
0,11
0,43
0,26
0,36
0,68
0,61
0,17
0,09
0,56
0,11
0,22
0,31
0,29
0,27
0,07
0,85
0,50
t servizio
(secondi)
189,71
243,37
25,41
654,69
253,54
403,21
309,15
115,12
148,74
523,74
734,09
175,81
673,52
449,24
352,18
373,31
392,60
791,07
49,73
205,11
t uscita
(secondi)
189,71
433,07
458,49
1113,18
1366,72
1769,93
2079,07
2194,20
2342,94
3766,33
4500,42
4676,23
5349,75
5798,99
6151,17
6524,48
6917,08
7708,15
7757,88
7962,99
Tempo perso
nel sistema
(secondi)
189,71
373,05
190,65
778,92
624,47
764,44
922,09
603,67
741,51
523,74
796,87
895,37
1299,34
950,21
909,67
1243,83
1459,57
1733,28
1756,53
1621,21
Le iterazioni si sono ripetute per un N = 300.
Di seguito riportiamo il grafico ottenuto diagrammando sulle ordinate il numero di utenti, e sulle
ascisse i tempi di arrivo e di uscita. Per conoscere il numero di utenti in coda in un determinato
istante è necessario fissare l'instante t che interessa e ottenere il numero di utenti in coda per
differenza tra le due curve. Invece il numero totale di utenti in coda è pari all'area tra le due curve.
180000,00
Tempi (secondi)
160000,00
140000,00
120000,00
100000,00
80000,00
60000,00
40000,00
20000,00
0,00
0
100
200
300
400
Numero utenti
Tempi di arrivo
Tempi di uscita
500
Scarica