PRESTAZIONI E SIMULAZIONE DI SISTEMI (Simulazione II)

Transcript

PRESTAZIONI E SIMULAZIONE DI SISTEMI (Simulazione II)
PRESTAZIONI E SIMULAZIONE
DI SISTEMI
(Simulazione II)
Amelia Giuseppina Nobile1
(a.a. 2011/2012)
29 maggio 2012
1
Facoltà di Scienze Matematiche Fisiche e Naturali, Università di Salerno
Capitolo 1
Reti di code
1.1
Introduzione
La teoria delle reti di code riguarda la formulazione e l’analisi di modelli matematici atti a descrivere un insieme di sistemi di servizio (detti risorse o nodi
della rete), ognuno costituito da un centro di attesa e da un centro di servizio. Si
suppone che esista una struttura di interconnessione tra le risorse che consenta
agli utenti di usufruire dei servizi offerti della rete. Lo scopo è quello di analizzare le prestazione della rete e di individuare, se necessario, idonee politiche
atte a migliorarne le sue prestazioni.
Gli utenti in una rete di code sono intesi in senso generico: possono essere job
in computer-system, task in un sistema di elaborazione, pacchetti in un sistema
di comunicazione, utenti di un centro commerciale, . . .
Ogni risorsa contiene un centro di attesa (buffer) e un centro di servizio
(stazione) con uno o più servitori. In una rete di code l’input (o gli input) di
una risorsa può (possono) essere l’output (o gli output) di una o più risorse. Ad
esempio, in Figura 1.1 è rappresentata una rete di code per computer-system
con due risorse collegate in serie in cui l’output della prima risorsa costituisce
l’input della seconda risorsa. La prima risorsa comprende una fila di attesa e
un centro di servizio per la CPU, mentre la seconda risorsa è dotata di una fila
di attesa e un centro di servizio per l’I/O.
Risorsa 1
-
CPU
Risorsa 2
-
I/O
Figura 1.1: Una semplice rete di code con due risorse collegate in serie
Se un utente (ad esempio, un job in un modello di computer-system) accede
ad una risorsa e trova tutti i servitori del relativo centro di servizio occupati,
si metterà nella fila di attesa relativa a quella risorsa. Successivamente, quan1
2
CAPITOLO 1. RETI DI CODE
do uno dei servitori del centro di servizio diventa disponibile, un utente verrà
selezionato dalla fila di attesa utilizzando un’opportuna disciplina di servizio
e potrà accedere al centro di servizio di quella risorsa. Completato il servizio
in una delle risorse, l’utente potrà accedere ad un’altra risorsa, rientrare nella
stessa risorsa o abbandonare la rete.
Un tipico esempio è costituito dagli utenti di un supermercato che possono
richiedere più servizi. Essi possono mettersi in fila di attesa in uno o in più
banchi di vendita e richiedere un servizio e successivamente passare ad uno dei
banchi di cassa per il pagamento. In questo caso ogni utente riceve in sequenza
il servizio dai servitori dei diversi banchi di vendita e da uno dei servitori dei
banchi di cassa e può esserci una fila di attesa prima di ogni centro di servizio.
Per modellare sistemi di code dei tipi precedentemente descritti, è necessario
considerare invece di un unico sistema di servizio una rete di code con risorse
multiple, ognuna costituita da una fila di attesa prima di ogni centro di servizio.
I primi settori applicativi in cui si è fatto uso delle reti di code sono stati
principalmente i sistemi di elaborazione. Solo alla fine degli anni ’70 le reti di
code hanno trovato un’ampia applicazione in diversi settori: computer-system,
linee di produzione e di assemblaggio, operazioni di manutenzione e di riparazione, terminali di aeroporti, linee di comunicazione, centri ospedalieri, . . .
Recentemente le metodologie delle reti di code sono utilizzate anche nell’analisi
delle prestazioni di sistemi produttivi in cui le risorse corrispondono ai centri di
lavorazione e gli utenti sono tipicamente job o pezzi in lavorazione.
1.2
Classificazione di una rete di code
Le reti di code possono essere classificate in diversi modi. Una di tali classificazioni si basa sulla possibilità della rete di accettare utenti provenienti dall’esterno
e distingue le reti in aperte, chiuse e miste.
Una rete di code aperta è caratterizzata da una o più sorgenti (da cui provengono gli utenti che desiderano usufruire dei servizi della rete) e da una o
più destinazioni (in cui confluiscono gli utenti che abbandonano la rete). In
una rete aperta sono ammessi arrivi dall’esterno e uscite verso l’esterno, ossia la
popolazione della rete può variare nel tempo. Una rete di code è quindi aperta
se gli utenti entrano dall’esterno del sistema, circolano attraverso le varie risorse
della rete e infine escono dal sistema. In Figura 1.2 è rappresentata una rete
aperta con quattro risorse disponibili.
La scelta della risorsa a cui l’utente accede può essere sia deterministica
sia aleatoria. La scelta deterministica si ha quando, ad esempio, un pezzo deve
transitare per una sequenza prefissata di risorse, ognuna con un centro di servizio
preposto a una particolare operazione (taglio, lavaggio, misura, . . .); in questo
caso con certezza, dopo aver usufruito del servizio in una certa risorsa, il pezzo
dovrà accedere ad un’altra prefissata risorsa. La scelta aleatoria si realizza, ad
esempio, quando il successivo instradamento dipende dall’esito di un’operazione
(tipicamente di collaudo o di verifica); qualora il pezzo risultasse difettoso deve
A.G. Nobile
1.2. CLASSIFICAZIONE DI UNA RETE DI CODE
Risorsa 1
-
-
Risorsa 3
Risorsa 4
Risorsa 2
3
-
Figura 1.2: Una rete di code aperta con quattro risorse.
essere rispedito ad una precedente risorsa per una rilavorazione. In questo caso
occorre fornire delle stime accurate delle probabilità di instradamento.
Nelle reti di code aperte non vi è teoricamente limite al numero di utenti
presenti in un determinato istante nella rete. Gli utenti arrivano dall’esterno e
vanno ad affollare le file di attesa (i buffer) delle varie risorse, che si suppone
in grado anche di ospitare un numero comunque elevato di utenti. Spesso nella
realtà questa situazione non si verifica. Un elevato traffico infatti implica costi
elevati legati sia al capitale immobilizzato, sia allo spazio fisico occupato dagli
utenti (job, pezzi in lavorazione,. . .), sia alle strutture di movimentazione e sia
ai problemi di collaudo e di supervisione. Spesso per tenere sotto controllo il
numero di utenti e i loro tempi di attesa nelle varie risorse si considerano reti
di code chiuse.
Una rete di code chiusa è caratterizzata da una popolazione (numero di
utenti che circolano nella rete) fissata e finita. In una rete chiusa non vi sono
né ingressi né uscite dalla rete e, quindi, gli utenti non possono entrare e non
possono abbandonare la rete. Pertanto, in una rete di code chiusa un fissato e
finito numero di utenti circolano indefinitamente tra le varie risorse della rete.
In Figura 1.3 è rappresentata una rete chiusa con tre risorse disponibili.
Nelle reti chiuse è fondamentale analizzare come variano le prestazioni della
varie risorse della rete all’aumentare del numero di utenti che in essa circolano.
Occorre sottolineare che in una rete chiusa anche se gli utenti continuano a
circolare indefinitamente da una risorsa ad un’altra senza mai entrare o uscire
dalla rete, nella realtà spesso avvengono sia ingressi sia uscite, nel senso che non
appena un utente esce dal sistema è istantaneamente sostituito da un nuovo
utente che entra nella rete.
Una rete di code mista è invece aperta per certi utenti e chiusa per altri utenti.
In una rete di code mista quindi esistono degli utenti che entrano dall’esterno
ed eventualmente lasciano il sistema e altri utenti che restano indefinitamente
A.G. Nobile
4
CAPITOLO 1. RETI DI CODE
Risorsa 1
-
6
-
Risorsa 2
Risorsa 3
-
-
Figura 1.3: Una rete di code chiusa con tre risorse.
nel sistema.
Nel caso di reti aperte e di reti miste gli utenti che arrivano dall’esterno
entrano nel sistema in una risorsa qualsiasi dove si accodano e ricevono il servizio, al termine del quale escono dalla risorsa e si dirigono verso un’altra risorsa
oppure rientrano nella stessa risorsa oppure escono dalla rete. Nelle reti chiuse,
invece, gli utenti restano indefinitamente nel sistema, essi sono sempre in fila di
attesa o in servizio in una delle risorse disponibili.
Nel caso di reti di code aperte e di reti miste occorre specificare le caratteristiche delle sorgenti di input, ossia il numero di potenziali utenti di ogni
sorgente (finito o infinito). Una rete di code chiusa invece non è dotata di
nessuna sorgente.
Per ogni rete di code occorre
• specificare il numero di risorse disponibili;
• precisare la dimensione (finita, infinita o nulla) del centro di attesa di ogni
risorsa;
• individuare il processo degli arrivi ad ogni risorsa, ossia stabilire la distribuzione dei tempi di interarrivo degli utenti ad ogni risorsa (dalle altre
risorsa oppure dalle eventuali sorgenti).
Per ogni centro di servizio di ogni risorsa occorre stabilire
• il numero di servitori,
• la disciplina di servizio,
• la distribuzione dei tempi di servizio per ogni servitore,
• individuare il processo di output da ogni risorsa verso le altre risorse o
eventualmente verso l’esterno della rete.
Se la rete di code è chiusa occorre anche precisare il numero di utenti presenti
nella rete. Se la rete di code è mista occorre anche stabilire il sottoinsieme
A.G. Nobile
1.3. STRUTTURA DI INTERCONNESSIONE
5
di utenti per i quali la rete è chiusa, ossia quali sono gli utenti che restano
indefinitamente nella rete.
Per alcune reti di code l’insieme di utenti è suddiviso in opportune classi (sottoinsiemi) contenenti utenti caratterizzati da caratteristiche simili, ossia
occorre classificare gli utenti in classi di priorità.
1.3
Struttura di interconnessione
Il comportamento degli utenti nella rete è caratterizzato dalla possibilità di
transire tra le risorse. La struttura di interconnessione tra le risorse permette
di rappresentare le possibili transizioni degli utenti tra le risorse. Per definire
una struttura di interconnessione di tipo probabilistico tra R risorse di una rete,
occorre:
• numerare le risorse della rete da 1 a R;
• definire la matrice delle probabilità di diramazione avente cardinalità R ×
(R + 1):
1
...
j
... R
Stop


1
p11 . . . p1j . . . p1R p10
.. 
..
..
..  ..
..
..
.
.
. 
.
.
. 

 .

pi0 
(1.1)
D = i  pi1 . . . pij . . . piR

..  ..
..
..
.. 
..
..


.
.
.
.
.
.
.
R pR1 . . . pRj . . . pRR pR0
dove pij (i, j = 1, 2, . . . , R) denota la probabilità che l’utente si diriga
istantaneamente alla risorsa j dopo aver completato il servizio alla risorsa
i-esima e dove pi0 (i = 1, 2, . . . , R) denota la probabilità che un utente
esca istantaneamente dalla rete non appena ha completato il servizio nella
risorsa i-esima.
Poiché risulta
pij ≥ 0,
(i, j = 1, 2 . . . , R),
pi0 ≥ 0
(i = 1, 2, . . . , R)
(1.2)
R
X
pij + pi0 = 1
(i = 1, 2, . . . , R),
j=1
la matrice D è stocastica, ossia la somma delle probabilità su ogni riga è unitaria.
Unitamente alla matrice di diramazione D si può anche considerare la matrice P di cardinalità R × R che contiene le prime R colonne della matrice D,
cioè tutte le colonne eccetto l’ultima. La matrice P è chiamata matrice delle
probabilità di switching o di instradamento. A differenza della matrice D, se la
rete è aperta o mista la matrice P non è stocastica. Se invece la rete è chiusa si
ha che pi0 = 0 per ogni i = 1, 2, . . . , R e quindi la matrice P è stocastica.
A.G. Nobile
6
CAPITOLO 1. RETI DI CODE
Una rete di code può quindi essere rappresentata come un grafo orientato ed
etichettato dove i nodi sono le risorse della rete, gli archi le possibili transizioni
tra le risorse della rete e le etichette degli archi definiscono le probabilità di
diramazione.
1.4
Sistemi di servizio
Vogliamo ora richiamare alcuni risultati della teoria delle file di attesa utilizzati
per analizzare le singole risorse di reti di code.
La teoria delle file di attesa, detta anche teoria delle code, riguarda la costruzione e l’analisi di modelli matematici atti a descrivere sistemi reali nei quali
il generico utente richiede un particolare servizio e deve attendere in qualche
tipo di coda (o fila di attesa) se il centro di servizio non è immediatamente
disponibile.
La teoria delle file di attesa è essenzialmente di natura probabilistica e fornisce una descrizione del numero di utenti presenti nel sistema e nella fila di
attesa, del tempo di permanenza di un utente nella fila di attesa, del tempo di
attesa di un utente nel sistema, del periodo di occupazione e del periodo di ozio
di un servitore, . . .
Un generico sistema di servizio può essere schematizzato come illustrato nella
Figura 1.4 nella quale sono rappresentati:
SISTEMA DI SERVIZIO
- Centro di
attesa
Sorgente
- Centro di
servizio
-
Destinazione
Figura 1.4: Rappresentazione di un sistema di servizio.
• la sorgente, ossia l’insieme delle richieste di servizio che via via si possono
presentare al sistema di servizio;
• il centro di attesa, ossia l’insieme delle richieste di servizio che, non potendo
essere immediatamente soddisfatte, restano in attesa di poter essere prese
in considerazione;
• il centro di servizio, ossia l’insieme dei punti nei quali è soddisfatta la
richiesta;
• la destinazione, ossia l’insieme delle richieste di servizio che, essendo state
soddisfatte, lasciano i punti di servizio.
A.G. Nobile
1.4. SISTEMI DI SERVIZIO
7
La sorgente contiene i potenziali utenti del sistema di servizio e può essere finita
o infinita. Spesso se la sorgente è finita e contiene molti potenziali utenti, si
assume che sia infinita per semplificare i calcoli matematici.
Gli utenti provenienti da una sorgente (o popolazione) si inseriscono in un
sistema di coda per ricevere un determinato servizio. Il termine utente è inteso
in senso generico: può essere un messaggio che deve essere trasmesso, una richiesta di servizio I/O, un programma che richiede servizi di CPU in un sistema
multiprogrammato, . . .
L’accesso ad un sistema di servizio può essere realizzato attraverso un centro
di attesa che può avere la possibilità di contenere un numero limitato o illimitato
di individui. Se il sistema possiede un centro di attesa a capacità limitata, il
numero degli individui in attesa non può superare un certo limite caratteristico
del sistema di servizio e pertanto una richiesta di servizio che si presenta quando
il centro di attesa è saturo è respinta.
Esistono sistemi, noti come loss systems, che hanno un centro di attesa a
capacità nulla; in essi se un utente arriva quando tutti i servitori (serventi) sono
occupati, la sua richiesta di servizio è respinta. Se, invece, il sistema possiede
un centro di attesa a capacità illimitata nessuna richiesta di servizio è perduta
per quanto lunga possa essere la durata dell’attesa (a meno che gli individui in
attesa decidano di allontanarsi spontaneamente dal sistema).
Superato il centro di attesa gli utenti accedono al centro di servizio che può
consistere di uno o più servitori con caratteristiche identiche che lavorano in
parallelo e che non possono rimanere inattivi in presenza di utenti nella fila di
attesa. Il servitore è un’entità in grado di eseguire il servizio richiesto dall’utente.
Ovviamente un sistema con più servitori può fornire simultaneamente servizio
a più utenti. Se tutti i servitori nel centro di servizio sono occupati l’utente,
quando si inserisce nel sistema, deve mettersi in fila di attesa finché non si liberi
uno dei servitori.
Con il termine capacità del sistema si intende il numero massimo di utenti
(inclusi quelli già in servizio) che possono essere contenuti nel sistema.
Il complesso di regole secondo le quali gli individui in attesa passano dal
centro di attesa al centro di servizio è detto disciplina di servizio. La disciplina
di servizio più comune è la disciplina FIFO (first-in, first out) secondo la quale il
primo arrivato è il primo ad essere servito. Esiste anche la disciplina di servizio
LIFO (last-in, first out) secondo la quale l’ultimo arrivato è il primo ad essere
servito. Un’altra importante disciplina è la SIRO (service in random order)
con la quale ogni utente nel centro di attesa ha la stessa probabilità di essere
selezionato per il servizio. La disciplina PRI (priority service) invece prevede
che alcuni utenti abbiano un trattamento privilegiato; gli utenti sono in tal caso
suddivisi in classi di priorità e il sistema di coda attua una politica preferenziale
nei riguardi di alcune classi di utenti.
A.G. Nobile
8
1.4.1
CAPITOLO 1. RETI DI CODE
Notazioni della teoria delle file di attesa
Per descrivere i sistemi di servizio si utilizza spesso una speciale notazione,
dovuta a Kendall, ossia
A/B/s/K/m/Z
(1.3)
dove
A - descrive la distribuzione dei tempi di interarrivo, ossia la distribuzione della
lunghezza dell’intervallo di tempo che intercorre tra un arrivo e l’arrivo
successivo;
B - la distribuzione dei tempi di servizio per ognuno dei servitori, ossia la
distribuzione della lunghezza dell’intervallo di tempo necessario per fornire
il servizio ad un utente;
s - il numero di servitori,
K - la capacità del sistema (ossia il massimo numero di utenti che possono
essere presenti nel sistema inclusi quelli in servizio),
m - il numero di potenziali utenti nella sorgente,
Z - la disciplina di servizio.
Spesso si adopera la notazione abbreviata
A/B/s,
(1.4)
intendendo che non ci sono limitazioni alla lunghezza della coda, la sorgente è
infinita e la disciplina di servizio è quella FIFO. Alcuni simboli tradizionalmente
usati per A e B nei sistemi di servizio e anche nelle reti di code sono:
D - tempi di interarrivo (di servizio) indipendenti e identicamente distribuiti
(iid) con funzione di distribuzione deterministica,
M - tempi di interarrivo (di servizio) iid con funzione di distribuzione esponenziale.
GI (o G) - tempi di interarrivo (di servizio) iid con funzione di distribuzione
generale.
Il meccanismo di arrivo (di servizio) di tipo D è caratterizzato da una cadenza temporale costante degli arrivi (dei servizi). Se indichiamo con T una
variabile aleatoria degenere che descrive la lunghezza di un generico intervallo
di interarrivo deterministico di durata 1/λ, la sua funzione di distribuzione è:
0, t ≤ 1/λ
A(t) = P (T < t) =
(1.5)
1, t > 1/λ .
Nel meccanismo di arrivo deterministico il valore medio è E(T ) = 1/λ e la
varianza è Var(T ) = 0.
A.G. Nobile
1.4. SISTEMI DI SERVIZIO
9
Analogamente, se indichiamo con S una variabile aleatoria degenere che descrive la lunghezza di un generico intervallo di servizio deterministico di durata
1/µ, la sua funzione di distribuzione è
0, t ≤ 1/µ
B(t) = P (S < t) =
(1.6)
1, t > 1/µ.
Nel meccanismo di servizio deterministico il valore medio è E(S) = 1/µ e la
varianza Var(S) = 0.
Meccanismi di servizio di tipo D si presentano in catene di montaggio in
cui il tempo di produzione di un certo pezzo può ritenersi costante. Invece,
meccanismi degli arrivi deterministici si presentano in sistemi di servizio in
cascata che prevedono due o più posti di lavoro nei quali l’uscita di un posto
di lavoro costituisce l’ingresso per il successivo. Se il tempo di servizio del
precedente posto di lavoro è costante, allora la distribuzione degli intervalli di
interarrivo per il successivo posto di lavoro è quella deterministica.
Nel meccanismo di arrivo (di servizio) di tipo M , la lettera M significa
Markov ed indica che i tempi di interarrivo (di servizio) sono distribuiti esponenzialmente. Se denotiamo con T una variabile aleatoria esponenzialmente
distribuita con valore medio 1/λ, descrivente la lunghezza di un generico tempo
di interarrivo esponenziale, la sua funzione di distribuzione è:
0,
t≤0
A(t) = P (T < t) =
(1.7)
1 − e−λ t , t > 0,
e quindi la sua densità di probabilità è:
dA(t)
λ e−λ t , t > 0
=
a(t) =
dt
0,
altrimenti.
(1.8)
Nel meccanismo di arrivo esponenziale il valore medio è E(T ) = 1/λ e la varianza
è Var(T ) = 1/λ2 .
Analogamente, se denotiamo con S una variabile aleatoria esponenzialmente
distribuita con valore medio 1/µ, descrivente la lunghezza di un generico tempo
di servizio esponenziale, la sua funzione di distribuzione è:
0,
t≤0
B(t) = P (S < t) =
(1.9)
1 − e−µ t , t > 0,
e quindi la sua densità di probabilità è:
−µ t
dA(t)
µe
, t>0
=
b(t) =
0,
altrimenti.
dt
(1.10)
Nel meccanismo di servizio esponenziale il valore medio è E(S) = 1/µ e la
varianza è Var(T ) = 1/µ2 .
Il parametro λ è l’inverso del tempo medio di interarrivo, ossia del tempo
medio che intercorre tra l’arrivo nel sistema di due utenti successivi, e può
A.G. Nobile
10
CAPITOLO 1. RETI DI CODE
essere interpretato come la frequenza media di arrivo degli utenti per unità di
tempo. Analogamente il parametro µ è l’inverso del tempo medio di servizio,
ossia del tempo che occorre ad un servitore per servire un utente, e può essere
interpretato come la frequenza media di partenza degli utenti da un servitore per
unità di tempo.
Alcune quantità che si desidera analizzare nella teoria delle file di attesa
sono:
• stato del sistema Se si denota con {N (t), t ≥ 0} il processo stocastico che
descrive il numero N (t) di utenti presenti nel sistema al tempo t occorre,
se possibile, determinare
pn (t) = P {N (t) = n}
(n = 0, 1, . . .)
(1.11)
ossia la probabilità che siano presenti n utenti nel sistema al tempo t e
alcune caratteristiche quali il valore medio E[N (t)] e la varianza Var[N (t)]
del numero di utenti N (t) presenti nel sistema ad ogni fissato istante di
tempo t. Occorre inoltre stabilire se il sistema raggiunge una situazione
di equilibrio statistico e in tal caso occorre calcolare la distribuzione di
equilibrio
qn = P (N = n) = lim pn (t)
t→+∞
(n = 0, 1, . . .)
(1.12)
e alcune caratteristiche quali il valore medio E(N ) e la varianza Var(N )
del numero di utenti N presenti nel sistema nella situazione di equilibrio
statistico.
• tempo di permanenza nella fila di attesa di un utente Il tempo di
permanenza nella fila di attesa di un utente è una variabile aleatoria che
descrive il tempo che un utente deve attendere in fila di attesa prima di
essere servito.
• tempo di attesa di un utente nel sistema Il tempo di attesa di un utente
è una variabile aleatoria che descrive il tempo che un utente spende nel
sistema, ossia il tempo che un utente deve attendere in coda più il suo
tempo di servizio.
Le notazioni fondamentali utilizzate nella teoria delle file di attesa sono le
seguenti:
N (t) - variabile aleatoria che descrive il numero di utenti presenti nel sistema
(inclusi quelli in servizio) al tempo t;
pn (t) - probabilità che al tempo t siano presenti nel sistema n utenti (inclusi
quelli in servizio);
N - Variabile aleatoria che descrive il numero di utenti presenti nel sistema
(inclusi quelli in servizio) nella situazione di equilibrio statistico;
A.G. Nobile
1.4. SISTEMI DI SERVIZIO
11
qn - probabilità che siano presenti nel sistema n utenti (inclusi quelli in servizio)
nella situazione di equilibrio statistico;
Nq - variabile aleatoria che descrive il numero di utenti presenti nella fila di
attesa nella situazione di equilibrio statistico;
Ns - variabile aleatoria che descrive il numero di utenti in servizio nella
situazione di equilibrio statistico;
T - variabile aleatoria che descrive il generico tempo di interarrivo nell’ipotesi
in cui tali tempi siano iid;
S - variabile aleatoria che descrive il generico tempo necessario ad un servitore
per servire un utente nell’ipotesi in cui tali tempi siano iid;
W - variabile aleatoria che descrive il tempo di attesa di un utente nel sistema
incluso il suo tempo di servizio;
Q - variabile aleatoria che descrive il tempo che un utente spende nella fila di
attesa prima di essere servito.
Nella situazione di equilibrio statistico il numero di utenti nel sistema è
uguale alla somma del numero di utenti presenti nella fila di attesa e del numero
di utenti in servizio, ossia:
N = Nq + Ns
(1.13)
e inoltre il tempo di attesa di un utente nel sistema è uguale alla somma del suo
tempo di permanenza nella fila di attesa Q e del suo tempo di servizio S, ossia:
W = Q + S.
1.4.2
(1.14)
Intensità di traffico per sistemi di servizio
Se si denota con
λ∗ - frequenza media di arrivo per unità di tempo,
µ∗ - frequenza media di partenza da un generico servitore per unità di tempo,
una misura prestazionale fondamentale in un sistema di servizio è rappresentata
dall’intensità di traffico a cosı̀ definita:
a=
λ∗
.
µ∗
(1.15)
Tale coefficiente rappresenta l’intensità del lavoro che svolge il sistema di servizio nella situazione di equilibrio statistico.
Il rapporto tra la frequenza media degli arrivi e la frequenza totale delle
partenze che il sistema di servizio può realizzare lavorando a pieno regime, ossia
A.G. Nobile
12
CAPITOLO 1. RETI DI CODE
il rapporto tra l’intensità di traffico e il numero di servitori presenti nel centro
di servizio
λ∗
(1.16)
̺=
s µ∗
prende il nome di fattore di utilizzazione del sistema. Tale coefficiente rappresenta l’intensità del lavoro per servitore nella situazione di equilibrio statistico.
Quando più ̺ si avvicina all’unità tanto più il sistema tende ad avere tutti
i posti di lavoro occupati con il rischio di entrare in congestione permanente.
Quando ̺ ≥ 1, ossia quando nell’unità di tempo la frequenza media degli arrivi
è maggiore della frequenza media delle partenze, il sistema non raggiunge una
situazione di equilibrio statistico e la lunghezza della fila di attesa tende ad
aumentare indefinitamente. Quindi, in un sistema di servizio a capacità infinita
̺ può essere interpretata come una misura di congestione del sistema.
1.4.3
Leggi di Little per sistemi di servizio
Nella teoria delle file di attesa esistono delle relazioni che valgono sotto condizioni abbastanza generali. Tra queste relazioni rivestono un ruolo fondamentale le
leggi di Little. Esse si applicano ad un qualsiasi sistema di servizio in equilibrio
statistico.
Se si denota con λ∗ la frequenza media di arrivo nel sistema per unità di
tempo, con E(N ) il numero medio di utenti nel sistema e con E(W ) il tempo
medio di attesa di un utente nel sistema, la prima legge di Little afferma che
E(N ) = λ∗ E(W ),
(1.17)
ossia il numero medio di utenti nel sistema è uguale al prodotto della frequenza
media di arrivo nel sistema per unità di tempo e del tempo medio di attesa di
un utente nel sistema.
La seconda legge di Little si applica alla fila di attesa e afferma che
E(Nq ) = λ∗ E(Q),
(1.18)
ossia il numero medio di utenti nella fila di attesa è uguale al prodotto della
frequenza media di arrivo nel sistema per unità di tempo e del tempo medio di
permanenza di un utente nella fila di attesa.
La legge di Little può essere utilizzata anche per il centro di servizio. Infatti, la
terza legge di Little afferma che
E(Ns ) = λ∗ E(S),
(1.19)
ossia il numero medio di utenti in servizio è uguale al prodotto della frequenza
media di arrivo e del tempo medio di servizio.
L’importanza delle tre leggi di Little per i sistemi di servizio risiede nella
circostanza che esse non dipendono dalla distribuzione dei tempi di interarrivo
e dei tempi di servizio, dal numero di servitori nel sistema e dalla disciplina di
servizio.
A.G. Nobile
1.5. OBIETTIVO DEI SUCCESSIVI CAPITOLI
1.5
13
Obiettivo dei successivi capitoli
Inizieremo lo studio delle reti di code introducendo il processo di Poisson, le catene di Markov continue nel tempo, i processi di nascita morte e alcuni modelli
di sistemi di servizio utili nella trattazione delle reti di code. Successivamente
individueremo i principali parametri prestazionali di una rete di code e introdurremo le reti di code markoviane. Analizzeremo poi le più semplici reti di
code, ossia le reti tandem e le reti acicliche. Considereremo successivamente
le reti aperte di Jackson, le reti chiuse di Gordon-Newell e le reti più generali
BCMP in cui gli utenti sono organizzati in classi. Esamineremo inoltre alcuni
algoritmi di simulazione per le reti di code.
A.G. Nobile
14
A.G. Nobile
CAPITOLO 1. RETI DI CODE
Capitolo 2
Catene di Markov continue
2.1
Introduzione
Ci proponiamo ora di introdurre alcuni processi stocastici continui nel tempo e
discreti nello spazio degli stati, ossia il processo di Poisson e le catene di Markov
continue nel tempo. Desideriamo focalizzare l’attenzione su alcuni risultati utili
nell’analisi di modelli di reti di code, ossia la composizione di processi di Poisson,
la decomposizione di un processo di Poisson, l’equilibrio statistico e il principio
di bilanciamento dei flussi in catene di Markov continue.
A tal fine denotiamo con {N (t), t ≥ 0} un processo stocastico continuo nel
tempo e discreto nello spazio degli stati. Per ogni fissato t ≥ 0, N (t) è una
variabile aleatoria discreta che assume un numero finito o al più numerabile di
valori. Le realizzazioni di tale processo sono funzioni a gradino, ossia funzioni
costanti a tratti con salti diretti verso il basso o verso l’alto ogni volta che si
verifica un cambiamento di stato.
2.2
Processo di Poisson
Il più semplice processo stocastico continuo nel tempo e discreto nello spazio
degli stati è il processo di Poisson. Tale processo è utile a descrivere alcuni fenomeni quali l’arrivo di chiamate ad un centralino telefonico, l’attività spontanea
di certi neuroni, l’emissione di particelle da una sorgente radioattiva,. . .
Supponiamo di indicare con N (t) (t ≥ 0) il numero di arrivi (ad esempio,
il numero di chiamate che arrivano al centralino telefonico) nell’intervallo di
tempo (0, t] e con N (t, t + ∆t) il numero di arrivi nell’intervallo (t, t + ∆t].
Definizione 2.1 Un processo stocastico è detto di Poisson di parametro ̺, con
̺ > 0, se
(i) N (0) = 0,
(ii) il processo ha incrementi indipendenti e stazionari,
15
16
CAPITOLO 2. CATENE DI MARKOV CONTINUE
(iii) P N (t, t + ∆t) = 1 = ̺ ∆t + o(∆t),
(iv) P N (t, t + ∆t) > 1 = o(∆t),
dove o(∆t) è un infinitesimo di ordine superiore rispetto a ∆t e ̺ denota il
parametro di arrivo con dimensione fisiche [tempo]−1 .
La condizione (i) significa assumere che fino al tempo t = 0 non si sono verificati
eventi. La condizione (ii) assicura che gli eventi che si verificano in intervalli
di tempo disgiunti, ossia che non si sovrappongono, sono stocasticamente indipendenti (il processo ha incrementi indipendenti) e inoltre la distribuzione del
numero di eventi che si verificano in ogni intervallo di tempo dipende soltanto
dalla lunghezza dell’intervallo di tempo (il processo ha incrementi stazionari).
Le condizioni (iii) e (iv) invece assicurano che
P N (t, t + ∆t) = 0 = 1 − ̺ ∆t + o(∆t).
(2.1)
Inoltre, la condizione (iv) mostra che in un piccolo intervallo di tempo (t, t+ ∆t)
gli eventi si verificano al più singolarmente.
Per un processo stocastico di Poisson {N (t), t ≥ 0} di parametro ̺ > 0 si
dimostra che la probabilità pn (t) che sia n il numero di arrivi fino al tempo t,
ossia nell’intervallo di tempo (0, t], è data da:
(̺ t)n −̺ t
e
(n = 0, 1, . . .).
(2.2)
pn (t) = P N (t) = n =
n!
Per ogni fissato t la (2.2) si identifica con una funzione di probabilità di Poisson
di parametro ̺ t. La media e la varianza del numero di arrivi nell’intervallo
(0, t) sono quindi rispettivamente:
E[N (t)] = ̺ t,
Var[N (t)] = ̺ t.
(2.3)
Un’importante proprietà del processo stocastico di Poisson di parametro ̺ > 0
è che i tempi di interarrivo, ossia le lunghezze degli intervalli tra due arrivi
successivi, sono indipendenti e identicamente distribuiti con densità esponenziale
di valore medio 1/̺. Se si suppone che gli arrivi si verifichino ai tempi T1 , T1 +T2 ,
T1 + T2 + T3 , · · ·, dove Ti denota la lunghezza dell’intervallo aleatorio di tempo
tra l’arrivo (i − 1)–esimo e l’arrivo i–esimo, si ha:
−̺ t
̺e
, t>0
fTi (t) =
(2.4)
0,
altrimenti.
Il valore medio e la varianza dei tempi di interarrivo sono:
E(Ti ) =
1
,
̺
Var(Ti ) =
1
̺2
(i = 1, 2, . . .).
(2.5)
Inoltre, in un processo stocastico di Poisson di parametro ̺ > 0, la variabile
aleatoria T = T1 + T2 + . . . + Tr , che descrive la lunghezza l’intervallo di tempo
che intercorre fino all’arrivo r–esimo, è caratterizzata da densità di probabilità
 ̺r

e−̺t tr−1 , t > 0
fT (t) = (r − 1)!
(2.6)

0,
altrimenti,
A.G. Nobile
2.2. PROCESSO DI POISSON
17
detta densità di probabilità di Erlang di ordine r e di parametro ̺. Si ha quindi
E(T ) = r/̺ e Var(T ) = r/̺2 .
Il processo stocastico di Poisson è di fondamentale importanza nella costruzione di vari modelli probabilistici atti a descrivere fenomeni in cui lo stato del
sistema è caratterizzato da un numero intero di individui e in cui i cambiamenti
di stato rappresentano l’addizione o la sottrazione di individui dal sistema in
vari modi: nascite, morti, immigrazioni, emigrazioni, arrivi e uscite di utenti da
risorse di una rete di code, . . ..
Alcuni processi stocastici che utilizzeremo nell’analisi delle reti di code nascono come composizione di processi di Poisson e come decomposizione di un
processo di Poisson.
2.2.1
Composizione di processi di Poisson
Consideriamo r processi di Poisson indipendenti di parametri ̺1 , ̺2 , . . ., ̺r ,
come illustrato in Figura 2.1. Vogliamo mostrare che il processo risultante dalla
composizione di tali processi è ancora un processo di Poisson.
̺1
r processi
̺2
···
···
···
indipendenti
di Poisson
̺r
Processo di
H
HH
j
XXXH
z
X
-
*
Poisson di
parametro
r
X
̺=
̺i
i=1
Figura 2.1: Composizione di r processi di Poisson.
Teorema 2.1 Se gli utenti arrivano secondo r processi di Poisson indipendenti
di parametri ̺1 , ̺2 , . . ., ̺r , allora il processo risultante dalla composizione è di
Poisson di parametro ̺ = ̺1 + ̺2 + . . . + ̺r .
Dimostrazione Denotiamo con Ni (t, t + ∆t) il numero di arrivi in (t, t + ∆t]
per il processo i–esimo e con N (t, t + ∆t) il numero di arrivi di ogni tipo che si
verificano in (t, t + ∆t]. Per ogni processo di Poisson Ni (t) (i = 1, 2 . . . , r) si ha:
P Ni (t, t + ∆t) = 0 = 1 − ̺i ∆t + o(∆t),
P Ni (t, t + ∆t) = 1 = ̺i ∆t + o(∆t),
P Ni (t, t + ∆t) > 1 = o(∆t),
cosı̀ che risulta:
r
r
Y
Y
1 − ̺i ∆t + o(∆t)
P Ni (t, t + ∆t) = 0 =
P N (t, t + ∆t) = 0 =
i=1
= 1 − ̺ ∆t + o(∆t),
A.G. Nobile
i=1
18
CAPITOLO 2. CATENE DI MARKOV CONTINUE
r
r
Y
X
P Nj (t, t + ∆t) = 0
P Ni (t, t + ∆t) = 1
P N (t, t + ∆t) = 1 =
j=1
j6=i
i=1
=
r
X
̺i ∆t
r
Y
[1 − ̺j ∆t] + o(∆t) = ̺ ∆t + o(∆t),
j=1
j6=i
i=1
P N (t, t + ∆t) > 1 = o(∆t).
Essendo soddisfatte le ipotesi del processo di Poisson, segue che la composizione di r processi di Poisson indipendenti è ancora un processo di Poisson di
parametro ̺ = ̺1 + ̺2 + . . . + ̺r .
Il Teorema 2.1 mostra quindi che i tempi di interarrivo del processo risultante
dalla composizione di processi di Poisson sono indipendenti tra loro ed esponenzialmente distribuiti con valore medio 1/̺. Ad esempio, in Figura 2.2 sono
indicati gli istanti di arrivo aleatori di due processi di Poisson N1 (t) e N2 (t)
di rispettivi parametri ̺1 e ̺2 e del processo di Poisson N (t) di parametro
̺ = ̺1 + ̺2 risultante dalla composizione dei due processi di Poisson. I tempi
di interarrivo del processo N (t) sono indipendenti tra loro ed esponenzialmente
distribuiti con valore medio (̺1 + ̺2 )−1 .
N1 (t)
•
N2 (t)
N (t)
•
•
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
t
Figura 2.2: Istanti di arrivo dei processi di Poisson N1 (t) e N2 (t) e del processo N (t)
risultante dalla loro composizione.
Esempio 2.1 Consideriamo un sistema costituito da r centralini telefonici indipendenti, come illustrato in Figura 2.3.
α
r processi
α
···
···
···
indipendenti
di Poisson
α
HH
Hj
XX H
XX
z
*
Processo di
-
Poisson con
parametro
̺ = rα
Figura 2.3: Composizione di r processi di Poisson ognuno di parametro α.
Supponiamo che il numero di chiamate che arrivano ad ognuno dei centralini
sia descritto da un processo di Poisson di parametro α. Denotiamo con Ni (t)
A.G. Nobile
2.2. PROCESSO DI POISSON
19
(i = 1, 2, . . . , r) il numero di chiamate che arrivano al centralino telefonico i–
esimo (i = 1, 2, . . . , r) e con N (t) il numero di chiamate di ogni tipo che arrivano
complessivamente nell’intervallo (0, t) al sistema costituito dagli r centralini
telefonici. Dal Teorema 2.1 segue che il processo risultante è ancora di Poisson
di parametro ̺ = r α e i tempi di interarrivo sono indipendenti tra loro ed
esponenzialmente distribuiti con valore medio 1/̺ = 1/(r α).
♦
2.2.2
Decomposizione di un processo di Poisson
Consideriamo un processo di Poisson di parametro ̺ che si dirama casualmente
in r differenti processi stocastici, come illustrato in Figura 2.4. Vogliamo dimostrare che i processi risultanti dalla decomposizione sono indipendenti e di
Poisson.
Processo di
Poisson con
parametro ̺
̺
-
p1
···
p2
XXX
pr XXX
-
̺ p1
-
̺ p2
r processi
di Poisson
···
···
indipendenti
-
̺ pr
Figura 2.4: Decomposizione aleatoria di un processo di Poisson.
Teorema 2.2 Supponiamo che gli utenti arrivino secondo un processo di Poisson di parametro ̺ e che istantaneamente vengano ripartiti in r canali di output
C1 , C2 , . . . , Cr con rispettive probabilità p1 , p2 , . . . , pr . Allora i processi stocastici descriventi gli arrivi ai canali C1 , C2 , . . . , Cr sono indipendenti e di Poisson
con rispettivi parametri ̺ p1 , ̺ p2 , . . ., ̺ pr .
Dimostrazione Denotiamo con {N (t), t ≥ 0} il processo di Poisson di input
di parametro ̺. Dalla (2.2) segue che
(̺ t)m −̺ t
pm (t) = P N (t) = m =
e
m!
(m = 0, 1, . . .).
(2.7)
Supponiamo che ogni arrivo venga smistato in uno dei canali C1 , C2 , . . ., Cr
con rispettive probabilità p1 , p2 , . . . , pr e sia {Ni (t), t ≥ 0} il processo stocastico
descrivente gli arrivi al canale Ci (i = 1, 2, . . . , r).
La probabilità condizionata che al tempo t gli m arrivi siano ripartiti in
m1 arrivi al primo canale, m2 arrivi al secondo canale, . . ., mr arrivi al canale
r-esimo è:
P N1 (t) = m1 , N2 (t) = m2 , . . . , Nr (t) = mr | N (t) = m
m
m − m1 − . . . − mr−1 m1 m2
m − m1
r
=
p1 p2 · · · pm
···
r
mr
m2
m1
A.G. Nobile
20
CAPITOLO 2. CATENE DI MARKOV CONTINUE
=
m!
r
p m1 p m2 · · · p m
r
m1 ! m2 ! · · · mr ! 1 2
(m = 0, 1, . . .),
(2.8)
ossia una funzione di probabilità multinomiale con
r
X
mi = m,
pi ≥ 0 (i = 1, 2, . . . , r),
i=1
r
X
pi = 1.
(2.9)
i=1
La probabilità congiunta delle variabili aleatorie N1 (t), N2 (t), . . ., Nr (t), ossia
la probabilità che al tempo t siano presenti m1 utenti nel canale C1 , m2 utenti
nel canale C2 , . . ., mr utenti nel canale Cr è:
P N1 (t) = m1 , N2 (t) = m2 , . . . , Nr (t) = mr
= P N1 (t) = m1 , N2 (t) = m2 , . . . , Nr (t) = mr , N (t) = m
= P N (t) = m P N1 (t) = m1 , N2 (t) = m2 , . . . , Nr (t) = mr | N (t) = m
=
(̺ t)m −̺ t
m!
r
e
p m1 p m2 · · · p m
r ,
m!
m1 ! m2 ! · · · mr ! 1 2
(2.10)
dove l’ultima identità segue dalle (2.7) e (2.8). Ricordando (2.9), la (2.10) può
anche essere cosı̀ riscritta:
P N1 (t) = m1 , N2 (t) = m2 , . . . , Nr (t) = mr
(̺ t)m1 +m2 +...+mr −̺ t(p1 +p2 +...+pr ) m1 m2
r
e
p1 p2 · · · pm
r
m1 ! m2 ! · · · mr !
(̺ p1 t)m1 −̺ p1 t (̺ p2 t)m2 −̺ p2 t
(̺ pr t)mr −̺ pr t
=
e
·
e
···
e
.
m1 !
m2 !
mr !
=
La probabilità congiunta quindi si fattorizza come il prodotto delle probabilità relative ai singoli canali. Ciò implica che per ogni t ≥ 0 le variabili aleatorie N1 (t), N2 (t), . . ., Nr (t) sono indipendenti tra loro. Inoltre, il processo
{Ni (t), t ≥ 0} degli arrivi al canale Ci è un processo di Poisson di parametro
̺ pi essendo
(̺ pi t)mi −̺ pi t
P Ni (t) = mi =
e
mi !
(i = 1, 2, . . . , r).
Il Teorema 2.2 mostra che i tempi di interarrivo del processo Ni (t) relativo al
canale Ci sono indipendenti tra loro ed esponenzialmente distribuiti con valore
medio 1/(̺ pi ) (i = 1, 2, . . . , r).
Esempio 2.2 Supponiamo che gli utenti arrivino ad un centralino telefonico
secondo un processo di Poisson di parametro ̺ e che istantaneamente vengano equiprobabilmente ripartiti tra r centralini disponibili, come illustrato in
Figura 2.5.
Dal Teorema 2.2 segue che i processi di output relativi agli r centralini sono indipendenti e ognuno è di Poisson con parametro ̺/r. Inoltre, i tempi di interarrivo
del processo Ni (t), relativo ad uno qualsiasi dei centralini, sono indipendenti tra
loro ed esponenzialmente distribuiti con valore medio r/̺.
♦
A.G. Nobile
2.2. PROCESSO DI POISSON
Processo di
Poisson con
̺
-
1/r ···
1/r
···
XXX
X
1/r XX
parametro ̺
21
-
̺/r
-
̺/r
r processi
di Poisson
indipendenti
···
-
̺/r
Figura 2.5: Decomposizione equiprobabile di un processo di Poisson.
Il Teorema 2.2 descrive una situazione in cui gli utenti, che arrivano secondo
un processo di Poisson di parametro ̺, vengono istantaneamente ripartiti in r
canali di uscita C1 , C2 , . . . , Cr utilizzando una scelta di tipo casuale. Vogliamo
ora esaminare una situazione in cui gli utenti, che arrivano secondo un processo
di Poisson di parametro ̺, vengono istantaneamente ripartiti in r canali di uscita
C1 , C2 , . . . , Cr utilizzando invece una scelta di tipo deterministico. Poiché il
processo degli arrivi è ancora di Poisson di parametro ̺, i tempi di interarrivo
degli utenti in input sono indipendenti ed esponenzialmente distribuiti con valore
medio 1/̺. Supponiamo che al canale C1 siano assegnati il primo arrivo, l’arrivo
(r + 1)–esimo, il (2r + 1)–esimo arrivo ed in generale il (i r + 1)–esimo arrivo (i =
0, 1, . . .). Assumiamo inoltre che al generico j–esimo (j = 1, 2, . . . , r) canale siano
assegnati il j–esimo arrivo, l’arrivo (r + j)–esimo ed in generale il (i r + j)–esimo
arrivo (i = 0, 1, . . .), cosı̀ come illustrato in Figura 2.6.
Processo di
Poisson con
parametro ̺
̺
-
1, r + 1, . . .
2, r + 2, . . .
···
···
XX
XXX
X
r processi
di Poisson
indipendenti
···
r, 2r, . . .
-
Figura 2.6: Decomposizione deterministica di un processo di Poisson.
Si nota che la lunghezza dell’intervallo di tempo che intercorre tra due arrivi
successivi ad un generico canale è la somma di r variabili aleatorie indipendenti
ed esponenzialmente distribuite con valore medio 1/̺. Ricordando che la somma
di r variabili aleatorie indipendenti e distribuite esponenzialmente con valore
medio 1/̺ è caratterizzata dalla densità di probabilità (2.6), segue che in ognuno
degli r canali disponibili i tempi di interarrivo sono indipendenti e caratterizzati
da densità di Erlang di ordine r.
A.G. Nobile
22
2.3
CAPITOLO 2. CATENE DI MARKOV CONTINUE
Catene di Markov continue nel tempo
Le catene di Markov omogenee continue nel tempo svolgono un ruolo importante
nella modellizzazione dei sistemi di servizio e delle reti di code.
Definizione 2.2 Una catena di Markov omogenea continua nel tempo è un
processo stocastico {N (t), t ≥ 0} discreto nello spazio degli stati e continuo nel
tempo che descrive un sistema che può transire da uno stato appartenente ad un
insieme finito o numerabile {0, 1, . . .} ad un altro stato appartenente allo stesso
insieme secondo opportune regole:
(i) il comportamento della catena dipende dalla distribuzione di probabilità
{p0 (0), p1 (0), . . .} relativa allo stato iniziale N (0);
(ii) per ogni t0 < t1 < . . . < tn < t, con t0 ≥ 0, la distribuzione di probabilità condizionata di N (t) noti i valori assunti dalle variabili aleatorie N (t0 ), N (t1 ), . . . , N (tn ) dipende solo dal valore assunto dalla variabile
aleatoria N (tn ), ossia
P N (t) = x | N (tn ) = xn , N (tn−1 ) = xn−1 , . . . , N (t1 ) = x1 , N (t0 ) = x0
= P N (t) = x | N (tn ) = xn
(2.11)
per tutti gli stati x0 , x1 , . . . , xn , x della catena.
(iii) le probabilità condizionate P {N (t) = j | N (τ ) = i} sono invarianti per
traslazioni temporali, ossia sono tali che
P {N (t) = j | N (τ ) = i} = pi,j (t − τ ),
per ogni t ≥ τ ≥ 0 e i, j = 0, 1, . . ., con
1, i = j
pi,j (0) =
0, altrimenti.
(2.12)
(2.13)
La (2.11) mostra che per una catena di Markov omogenea continua nel tempo
la distribuzione condizionata di ogni stato futuro N (t) dati gli stati passati
N (tn−1 ), . . . , N (t1 ), N (t0 ) e lo stato presente N (tn ), è indipendente dagli stati
passati e dipende soltanto dallo stato presente (proprietà di Markov di assenza
di memoria). La proprietà (2.12), che caratterizza l’omogeneità (proprietà di
stazionarietà) della catena, mostra che le probabilità condizionate dipendono
soltanto dalla lunghezza dell’intervallo di tempo e non dalla sua collocazione
temporale. Poiché (2.12) è una funzione di probabilità condizionata, per ogni
t ≥ 0 sussistono le condizioni:
pi,j (t) ≥ 0 (i, j = 0, 1 . . .),
+∞
X
pi,j (t) = 1
(i = 0, 1, . . .).
(2.14)
j=0
Nei sistemi di servizio gli stati della catena di Markov corrispondono al
numero di utenti presenti nel sistema e le probabilità pi,j (t) rappresentano le
A.G. Nobile
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
23
probabilità di transire da i utenti a j utenti nell’intervallo di tempo (0, t). Invece
in una rete di code gli stati della catena si possono identificare con le varie risorse
della rete e le probabilità pi,j (t) rappresentano le probabilità di transire dalla
risorsa i alla risorsa j nell’intervallo di tempo (0, t).
Denotiamo ora con
pj (t) = P {N (t) = j}
(j = 0, 1, . . .)
(2.15)
la probabilità che lo stato della catena di Markov sia j al tempo t. Ovviamente,
per ogni t ≥ 0, si ha
pj (t) ≥ 0
+∞
X
(j = 0, 1 . . .),
pj (t) = 1,
j=0
poiché in un fissato istante di tempo il processo deve necessariamente essere in
qualche stato della catena. Usando il teorema delle probabilità totali, per ogni
t > 0 è possibile esprimere le probabilità di N (t) in termini delle probabilità di
transizione (2.12) e delle probabilità di stato iniziali, ossia
pj (t) = P {N (t) = j} =
+∞
X
P {N (t) = j, N (0) = i}
i=0
=
+∞
X
P {N (0) = i} P {N (t) = j | N (0) = i},
i=0
che conduce a
pj (t) =
+∞
X
pi (0) pi,j (t)
(j = 0, 1, . . .).
(2.16)
i=0
Il comportamento di una catena di Markov omogenea continua nel tempo è quindi completamente determinato dopo aver specificato la distribuzione di probabilità {p0 (0), p1 (0), . . .} dello stato iniziale e le probabilità di transizione pi,j (t)
(i, j = 0, 1, . . .).
2.3.1
Derivazione delle equazioni forward di Kolmogorov
Come già visto per il processo di Poisson, nelle catene di Markov continue spesso
si suppone che in un piccolo intervallo di tempo di ampiezza ∆t le probabilità
di transizione assumono la forma:
pi,j (∆t) = γi,j ∆t + o(∆t)
(i, j = 0, 1, . . . ; i 6= j)
(2.17)
pi,i (∆t) = 1 − γi,i ∆t + o(∆t)
(i = 0, 1, . . .)
dove γi,j sono reali non negativi che rappresentano le frequenze di transizione
dallo stato i allo stato j. Procedendo al limite per ∆t che tende a zero nelle
A.G. Nobile
24
CAPITOLO 2. CATENE DI MARKOV CONTINUE
(2.17) si ha:
pi,j (∆t)
= γi,j
∆t→0
∆t
lim
(i, j = 0, 1, . . . ; i 6= j)
(2.18)
1 − pi,i (∆t)
lim
= γi,i
∆t→0
∆t
(i = 0, 1, . . .)
Teorema 2.3 Le frequenze di transizione γi,j (i, j = 0, 1, . . .) soddisfano le
relazioni:
X
γi,i =
γi,j
(i = 0, 1, . . .)
(2.19)
j6=i
Dimostrazione Facendo uso della seconda di (2.14) si ha:
+∞
X
pi,j (∆t) = 1
(i = 0, 1, . . .),
j=0
o equivalentemente:
X
j6=i
h
i
pi,j (∆t) + pi,i (∆t) − 1 = 0
(i = 0, 1, . . .)
(2.20)
Dividendo entrambi i termini di (2.20) per ∆t e procedendo al limite per ∆t → 0,
facendo uso delle (2.18) segue immediatamente la (2.19).
Vogliamo ora derivare le equazioni forward di Kolmogorov per le probabilità di
transizione pi,j (t) e per le probabilità di stato pj (t) di una catena di Markov
omogenea continua nel tempo.
Teorema 2.4 Sia {N (t), t ≥ 0} una catena di Markov omogenea continua nel
tempo. Se sussistono le (2.17), le probabilità di transizione pi,j (t) soddisfano il
sistema di equazioni differenziali:
X
dpi,j (t)
= −pi,j (t) γj,j +
pi,k (t) γk,j
dt
(i, j = 0, 1, . . .)
(2.21)
k6=j
da risolvere con le condizioni iniziali (2.13). Inoltre, le probabilità di stato pj (t)
soddisfano il sistema di equazioni differenziali
X
dpj (t)
= −pj (t) γj,j +
pk (t) γk,j
dt
(j = 0, 1, . . .)
(2.22)
k6=j
da risolvere utilizzando la distribuzione {p0 (0), p1 (0), . . .} relativa allo stato iniziale N (0) della catena.
A.G. Nobile
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
25
Dimostrazione Le probabilità di transizione di una catena di Markov omogenea continua nel tempo soddisfano le equazioni di Chapman-Kolmogorov:
pi,j (t + ∆t) =
+∞
X
pi,k (t) pk,j (∆t)
k=0
= pi,j (t) pj,j (∆t) +
X
pi,k (t) pk,j (∆t) (i, j = 0, 1, . . .)
(2.23)
k6=j
per ogni t ≥ 0. Sostituendo (2.17) in (2.23) si ottiene
X
pi,j (t + ∆t) = pi,j (t) 1 − γj,j ∆t +
pi,k (t) γk,j ∆t + o(∆t),
k6=j
o equivalentemente:
X
o(∆t)
pi,j (t + ∆t) − pi,j (t)
= −pi,j (t) γj,j +
,
pi,k (t) γk,j +
∆t
∆t
k6=j
da cui, procedendo al limite per ∆t che tende a zero, si ricava la (2.21).
Per dimostrare la (2.22) osserviamo che per j = 0, 1, . . . risulta:
pj (t + ∆t) =
=
+∞
X
k=0
+∞
X
P {N (t) = k} P {N (t + ∆t) = j|N (t) = k}
pk (t) pk,j (∆t) = pj (t) pj,j (∆t) +
X
pk (t) pk,j (∆t)
(2.24)
k6=j
k=0
per ogni t ≥ 0. Sostituendo (2.17) in (2.24) si ottiene:
X
pj (t + ∆t) = pj (t) 1 − γj,j ∆t +
pk (t) γk,j ∆t + o(∆t),
k6=j
o equivalentemente:
X
pj (t + ∆t) − pj (t)
o(∆t)
= −pj (t) γj,j +
,
pk (t) γk,j +
∆t
∆t
k6=j
da cui, effettuando al limite il ∆t che tende a zero, si ottiene la (2.22).
Occorre sottolineare che, eccetto in casi particolarmente semplici, è difficile pervenire alla distribuzione di probabilità {p0 (t), p1 (t), . . .} della catena di
Markov risolvendo il sistema di equazioni differenziali (2.22). Spesso quindi si
ricorre a metodi di simulazione per fornire delle stime delle probabilità pj (t)
(j = 0, 1, . . .) della catena di Markov.
Una catena di Markov omogenea continua nel tempo può essere visualizzata
mediante un grafo di transizione. In questo grafo ogni stato è rappresentato
da un cerchietto etichettato con il numero intero associato allo stato. Gli archi
che collegano i nodi mostrano quali sono le possibili transizioni di stato e sono
etichettati con le frequenze di transizione.
A.G. Nobile
26
CAPITOLO 2. CATENE DI MARKOV CONTINUE
Esempio 2.3 Il processo di Poisson, discusso nel Paragrafo 2.2, è una particolare catena di Markov omogenea continua nel tempo il cui grafo di transizione
è illustrato in Figura 2.7. I cerchietti sono etichettati con il numero di arrivi
0, 1, . . . e si possono avere solo transizioni da uno stato a quello immediatamente
successivo.
♦
̺
̺
̺
- 1
- 2
0
···
···
̺
- n
- ·· ·· ··
Figura 2.7: Grafo di transizione di un processo di Poisson.
2.3.2
Classificazione degli stati
Gli stati di un’arbitraria catena di Markov omogenea continua nel tempo possono essere classificati in stati assorbenti, raggiungibili (accessibili) e intercomunicanti.
Uno stato i è detto assorbente se γi,j = 0 per ogni j 6= i, cosı̀ che il processo,
una volta entrato nello stato i, è destinato a rimanere in tale stato.
Esempio 2.4 Consideriamo un dispositivo costituito da due componenti che
possono essere soggetti a guasti e a riparazioni. Assumiamo che se entrambi i
componenti si guastano il dispositivo cessa di funzionare. Inoltre supponiamo
che non tutti i guasti dei due componenti sono riparabili e indichiamo con p la
probabilità condizionata che il componente sia riparabile dato che si è guastato.
Il numero di componenti che funzionano correttamente nel sistema considerato
può essere descritto dalla catena di Markov {N (t), t ≥ 0} con spazio degli stati
{0, 1, 2} illustrata in Figura 2.8.
2 λ p
2
1
µ
@
@
λ
2 λ (1 − p) @
@
R
@
0
Figura 2.8: Catena di Markov descrivente il numero di componenti che funzionano
correttamente in un dispositivo con probabilità p di riparazione dei componenti.
Se un solo componente è in funzione il tempo di riparazione del dispositivo
è distribuito esponenzialmente con valore medio 1/µ, mentre il suo tempo di
A.G. Nobile
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
27
rottura è distribuito esponenzialmente con valore medio 1/λ; invece se entrambi
i componenti sono in funzione, il tempo di guasto di uno dei componenti è
distribuito esponenzialmente con valore medio (2 λ p)−1 se il guasto è riparabile,
mentre il tempo di un guasto del dispositivo è distribuito esponenzialmente con
valore medio [2 λ (1 − p)]−1 se il guasto non è riparabile.
Le frequenze di transizione della catena sono:
γ0,0 = 0,
γ1,0 = λ,
γ0,1 = 0,
γ0,2 = 0,
γ1,1 = λ + µ,
γ1,2 = µ
γ2,0 = 2 λ (1 − p),
γ2,1 = 2 λ p,
γ2,2 = 2 λ.
Lo stato 0 è assorbente poiché una volta raggiunto (entrambi i componenti non
funzionano) il dispositivo cessa di funzionare. Se si suppone che inizialmente entrambi i dispositivi sono in funzione, dalle (2.22) si ottiene il sistema di
equazioni differenziali:
dp0 (t)
= λ p1 (t) + 2 λ (1 − p) p2 (t),
dt
dp1 (t)
= −(λ + µ) p1 (t) + 2 λ p p2 (t),
dt
dp2 (t)
= µ p1 (t) − 2 λ p2 (t),
dt
(2.25)
da risolvere con le condizioni iniziali p0 (0) = p1 (0) = 0 e p2 (0) = 1, ossia
inizialmente entrambi i componenti funzionano correttamente. Se si denota con
R la variabile aleatoria che descrive il tempo di rottura del dispositivo, si ha
P (R > t) = 1 − p0 (t),
ossia la probabilità che il tempo di rottura del dispositivo sia maggiore di t
è uguale alla probabilità che fino al tempo t non si sia ancora verificata una
rottura del dispositivo. Quindi, la densità del tempo di rottura del dispositivo
è:
dp0 (t)
dP (R < t)
=
,
fR (t) =
dt
dt
da cui, facendo uso delle (2.25), si può dimostrare che il tempo medio di rottura
è:
Z +∞
λ(1 + 2 p) + µ
·
E(R) =
t fR (t) dt =
2
λ
[λ + µ (1 − p)]
0
Nella Figura 2.9 è illustrato il caso in cui p = 1, ossia in cui è unitaria la
probabilità condizionata che il componente sia riparabile dato che si è guastato.
In tal caso il tempo di rottura del dispositivo è:
E(R) =
3
µ
3λ+µ
=
·
+
2 λ2
2 λ 2 λ2
dove 3/(2 λ) descrive il tempo di rottura in assenza di riparazione e µ/(2 λ2 ) il
tempo aggiuntivo di sopravvivenza del dispositivo dovuto alla riparazione.
♦
A.G. Nobile
28
CAPITOLO 2. CATENE DI MARKOV CONTINUE
2 λ
2
µ
- λ
1
-
0
Figura 2.9: Catena di Markov descrivente il numero di componenti che funzionano
correttamente in un dispositivo con probabilità unitaria di riparazione dei componenti.
Uno stato j è detto raggiungibile (accessibile) da uno stato i se per almeno un istante di tempo t > 0 risulti pi,j (t) > 0. Due stati i e j sono detti
intercomunicanti se j è raggiungibile da i ed inoltre i è raggiungibile da j.
Una catena di Markov omogenea continua nel tempo è detta irriducibile se
ogni stato della catena è raggiungibile da ogni altro stato, ossia tutti gli stati
sono intercomunicanti. Si noti che le catene di Markov omogenee continue nel
tempo illustrate in Figura 2.8 e in Figura 2.9 non sono irriducibili.
2.3.3
Distribuzione di equilibrio
Denotiamo ora con
qj = lim pj (t)
t→+∞
(j = 0, 1, . . .)
(2.26)
la probabilità che la catena di Markov sia nello stato j nella situazione di equilibrio statistico. Se i limiti in (2.26) esistono e non dipendono dalle condizioni iniziali, diremo che la catena di Markov raggiunge una situazione di equilibrio statistico descritta dalla distribuzione di equilibrio {q0 , q1 , . . .}. Sussiste il
seguente risultato.
Teorema 2.5 Per una catena di Markov omogenea irriducibile continua nel
tempo i limiti
qj = lim pj (t) = lim pi,j (t)
t→+∞
t→+∞
(i, j = 0, 1, . . .)
(2.27)
esistono sempre e sono indipendenti dallo stato iniziale i.
Se la distribuzione di equilibrio esiste, procedendo al limite per t che tende
all’infinito nella (2.21) e osservando che
lim
t→+∞
dpi,j (t)
=0
dt
(i, j = 0, 1, . . .),
si ottiene il seguente sistema di equazioni lineari omogenee:
X
−qj γj,j +
qk γk,j = 0
(j = 0, 1, . . .).
k6=j
A.G. Nobile
(2.28)
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
29
Per determinare l’unica soluzione (con componenti non tutte nulle) del sistema
(2.28) occorre utilizzare le condizioni:
qj ≥ 0
(j = 0, 1, . . .),
+∞
X
qj = 1.
(2.29)
j=0
Le catene di Markov irriducibili continue nel tempo che forniscono una distribuzione di equilibrio {q0 , q1 . . . .} con componenti tutte positive soddisfacenti
(2.28) e (2.29) sono dette positivo-ricorrenti.
Le equazioni (2.28) hanno un’interessante interpretazione. Se la catena di
Markov ha raggiunto la situazione di equilibrio statistico, allora per ogni stato j
assumiamo che valga il principio di bilanciamento che afferma: “il flusso medio
con cui la catena entra nello stato j deve uguagliare il flusso medio con cui la
catena esce da tale stato”.
0 H
HHγ0,j
γHH
j 1,j H
1
j
..
γk,j *
.
k ..
.
0
*
γj,0 γj,1 1
j
(k 6= j)
HHγ
..
Hj,k
.
H
HH
j k
..
.
Figura 2.10: Frequenze con cui il processo entra nello stato j e con cui esce da tale
stato.
In Figura 2.10 sono illustrate le frequenze quando il processo entra nello stato j
e quando il processo esce dallo stato j. Si nota che quando il processo è in uno
stato k, con k 6= j, la frequenza di transizione nello stato j è γk,j , cosı̀ che
X
qk γk,j
k6=j
è il flusso medio con cui il processo entra nello stato j. Analogamente, quando il
processo è in uno stato j, la frequenza di transizione in uno stato k, con k 6= j,
è γj,k. Ricordando la (2.19), segue quindi che
X
qj
γj,k = qj γj,j
k6=j
è il flusso medio con cui il processo esce dallo stato j. Uguagliando il flusso
con cui il processo entra nello stato j con il flusso con cui il processo esce dallo
stato j per ogni j = 0, 1, . . ., si ottengono le equazioni (2.28), che sono note in
letteratura come equazioni di bilanciamento.
A.G. Nobile
30
CAPITOLO 2. CATENE DI MARKOV CONTINUE
Esempio 2.5 Consideriamo un dispositivo che in caso di rottura può essere
soggetto ad una fase di verifica e ad una fase di riparazione. Denotiamo con
{N (t), t ≥ 0} una catena di Markov omogenea continua nel tempo con spazio
degli stati {0, 1, 2}, dove lo stato 0 corrisponde alla fase di corretto funzionamento del dispositivo, lo stato 1 corrisponde alla fase di verifica del dispositivo e lo
stato 2 corrisponde alla fase finale di riparazione del dispositivo. In Figura 2.11
è illustrato il diagramma di stato della catena.
0
λ
- 1
µ1
µ2
- 2
Figura 2.11: Catena di Markov descrivente un dispositivo soggetto a guasti, verifiche
e riparazioni.
Assumiamo che il tempo di guasto del dispositivo sia distribuito esponenzialmente con valore medio 1/λ, il tempo di verifica del dispositivo sia distribuito
esponenzialmente con valore medio 1/µ1 e il tempo di riparazione sia distribuito
esponenzialmente con valore medio 1/µ2 .
Gli stati della catena sono intercomunicanti e quindi la catena è irriducibile.
La distribuzione di equilibrio può essere determinata dalle (2.28) risolvendo le
equazioni di bilanciamento
λ q0 = µ2 q2
µ1 q1 = λ q0
µ2 q2 = µ1 q1 ,
da cui si ottiene
q1 =
λ
q0 ,
µ1
q2 =
µ1
µ1 λ
q1 =
q0 .
µ2
µ2 µ1
Imponendo che q0 + q1 + q2 = 1 si ha:
q0 +
λ
λ
q0 +
q0 = 1.
µ1
µ2
Le probabilità in condizioni di equilibrio statistico sono quindi:
h
λ
λ i−1
q0 = 1 +
+
,
µ1
µ2
q1 =
λ
q0 ,
µ1
q2 =
λ
q0
µ2
♦
Le equazioni di bilanciamento rivestono notevole importanza nei modelli
dei sistemi di servizio e nei modelli di reti di code come illustrato nell’esempio
seguente.
A.G. Nobile
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
31
Esempio 2.6 Consideriamo la rete tandem illustrata in Figura 2.12 costituita
da due risorse poste in sequenza ognuna con unico servitore e fila di attesa a
capacità nulla. Supponiamo che un utente arriva alla prima risorsa secondo un
processo di Poisson di parametro λ, ossia i tempi di interarrivo sono distribuiti esponenzialmente con valore medio 1/λ. L’utente può accedere alla prima
risorsa soltanto se in essa non sono presenti utenti. Una volta completato il
servizio nella prima risorsa l’utente entra nella seconda risorsa se essa è vuota,
altrimenti aspetta nella prima risorsa finché non si liberi la seconda. Supponiamo che i tempi di servizio relativi ai due centri di servizio siano distribuiti
esponenzialmente con valori medi 1/µ1 e 1/µ2 , rispettivamente. Ci proponiamo
di determinare il tempo medio di attesa di un utente nella rete.
-
λ
Risorsa
1
µ1
Risorsa
2
-
µ2
-
Figura 2.12: Rete tandem con blocco costituita da due risorse ognuna con singolo
servitore.
Lo spazio degli stati è {(0, 0), (1, 0), (0, 1), (1, 1), (b, 1)}, dove
(0,0) nessun utente è presente nella rete;
(1,0) un unico utente è presente nella rete ed è in servizio nella prima risorsa;
(0,1) un unico utente è presente nella rete ed è in servizio nella seconda risorsa;
(1,1) due utenti sono presenti nella rete e sono rispettivamente in servizio da
ognuno dei due servitori;
(b,1) due utenti sono presenti nella rete; l’utente nella prima risorsa, anche se
ha completato il servizio nella prima risorsa, è bloccato ed aspetta che si
liberi il servitore della seconda risorsa.
Indichiamo con
qij = lim P {N1 (t) = i, N2 (t) = j}
t→+∞
(i = 0, 1, b; j = 0, 1)
la probabilità che in condizioni di equilibrio la rete si trovi nello stato (i, j).
Per ottenere tali probabilità costruiamo il grafo di transizione della catena di
Markov, illustrato in Figura 2.13. Applicando il principio di bilanciamento ai
vari nodi della catena si ottiene il seguente sistema di equazioni
λ q00 = µ2 q01 ,
µ1 q10 = λ q00 + µ2 q11 ,
(λ + µ2 ) q01 = µ1 q10 + µ2 qb1 ,
(µ1 + µ2 ) q11 = λ q01 ,
µ2 qb1 = µ1 q11 ,
A.G. Nobile
32
CAPITOLO 2. CATENE DI MARKOV CONTINUE
λ
µ2
1, 0 λ
µ1
0, 0
I
@
µ2 @
?
@
0, 1 µ2
1, 1
µ1
?
b, 1
Figura 2.13: Catena di Markov descrivente una rete tandem con blocco.
con q00 + q10 + q01 + q11 + qb1 = 1. Risolvendo tale sistema si ha:
λ
q00 ,
µ2
λ2
λ
q01 =
=
q00 ,
µ1 + µ2
µ2 (µ1 + µ2 )
q01 =
q11
(2.30)
2
µ1 λ
µ1
q11 = 2
q00 ,
µ2
µ2 (µ1 + µ2 )
λ
λ
µ2
λ2
=
q00 ,
q00 +
q11 =
+
µ1
µ1
µ1
µ1 (µ1 + µ2 )
qb1 =
q10
da cui segue:
h
i
λ
λ2
λ2
µ1 λ2
λ
q00 1 +
= 1.
+
+
+ 2
+
µ2
µ2 (µ1 + µ2 ) µ2 (µ1 + µ2 ) µ1
µ1 (µ1 + µ2 )
La probabilità che in condizioni di equilibrio non siano presenti utenti nella rete
è:
h
i−1
λ
λ2
λ2
µ1 λ2
λ
q00 = 1 +
+
+
+ 2
+
µ2
µ2 (µ1 + µ2 ) µ2 (µ1 + µ2 ) µ1
µ1 (µ1 + µ2 )
e quindi utilizzando le (2.30) è possibile ottenere le restanti probabilità. Il
numero medio di utenti presenti nel sistema è
E(N ) = q10 + q01 + 2 (q11 + qb1 ).
Per determinare il tempo medio di attesa di un utente possiamo utilizzare la
prima legge di Little E(N ) = λ∗ E(W ), dove λ∗ denota la frequenza media di
A.G. Nobile
2.3. CATENE DI MARKOV CONTINUE NEL TEMPO
33
arrivo per unità di tempo. Nel nostro caso λ∗ = λ (q00 + q01 ); infatti un utente,
che arriva con frequenza λ, può accedere alla rete soltanto se nella prima risorsa
non sono presenti utenti. In conclusione, il tempo medio di attesa di un utente
è
q10 + q01 + 2 (q11 + qb1 )
E(N )
=
.
E(W ) =
λ(q00 + q01 )
λ(q00 + q01 )
♦
Nel prossimo capitolo analizzeremo particolari catene di Markov omogenee
continue nel tempo, ossia i processi stocastici di nascita morte. Particolare
attenzione sarà dedicata ad alcuni sistemi di servizio di interesse nell’analisi
delle reti di code.
A.G. Nobile
34
A.G. Nobile
CAPITOLO 2. CATENE DI MARKOV CONTINUE
Capitolo 3
Singole risorse della rete
3.1
Introduzione
Ci proponiamo ora di introdurre i processi di nascita morte e alcuni modelli di
sistemi di servizio di particolare interesse nella descrizione delle singole risorse
di una rete di code, ossia il sistema M/M/1, M/M/1/k, M/M/s e M/M/∞.
In particolare, desideriamo focalizzare l’attenzione sull’equilibrio statistico
e sul principio di bilanciamento dei flussi in modelli di sistemi di servizio, sul
principio PASTA (Poisson Arrivals See Time Averages) e sul teorema di Burke
(che fornisce informazioni sulla distribuzione del processo di output di alcuni
sistemi di servizio).
3.2
Processi stocastici di nascita morte
Le più note catene di Markov omogenee continue nel tempo sono i processi di
nascita morte, introdotto da Feller nel 1939. Essi sono utili nella costruzione di
modelli di crescita di popolazione, di sistemi di servizio, in epidemiologia e in
molte aree di interesse sia teorico che applicativo.
Una catena di Markov omogenea continua nel tempo {N (t), t ≥ 0} con lo
spazio degli stati {0, 1, . . .} è detta processo di nascita morte se esistono dei
reali non negativi λi (i = 0, 1, . . .) e µi (i = 1, 2, . . .) tali che le frequenze di
transizione sono:
γi,i+1 = λi
γ0,0 = λ0 ,
γi,j = 0
(i = 0, 1, . . .),
γi,i = λi + µi
γi,i−1 = µi
(i = 1, 2, . . .)
(i = 1, 2, . . .)
(3.1)
(j − i = ±2, ±3, . . .).
I processi di nascita morte sono quindi catene di Markov omogenee continue nel
tempo caratterizzate dalla proprietà che le transizioni da uno stato ad un altro
stato possono soltanto verificarsi in stati adiacenti.
35
36
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
Con riferimento ai sistemi di servizio, il parametro λi (i = 0, 1, . . .) è la
frequenza di arrivo quando il processo si trova nello stato i e il parametro µi
(i = 1, 2, . . .) è la frequenza di partenza quando il processo si trova nello stato
i. Si suppone che in ogni fissato stato gli arrivi e le partenze si verificano
indipendentemente tra loro.
Per un processo di nascita morte {N (t), t ≥ 0} uno dei seguenti eventi
mutualmente esclusivi ed esaustivi si verifica:
• il sistema è nello stato n al tempo t e un arrivo si verifica nell’intervallo
(t, t + ∆t]; la probabilità condizionata associata è
pn,n+1 (∆t) = P N (t + ∆t) = n + 1 | N (t) = n = λn ∆t + o(∆t)
(n = 0, 1, . . .)
• Il sistema è nello stato n al tempo t e una partenza si verifica nell’intervallo
(t, t + ∆t]; la probabilità condizionata associata è
pn,n−1 (∆t) = P N (t + ∆t) = n − 1|N (t) = n = µn ∆t + o(∆t)
(n = 1, 2, . . .)
• il sistema è nello stato n al tempo t e nessun cambiamento di stato si verifica
nell’intervallo (t, t + ∆t]; la probabilità condizionata associata è
pn,n (∆t) = P N (t + ∆t) = n | N (t) = n
1 − λ0 ∆t + o(∆t),
n=0
=
1 − (λn + µn ) ∆t + o(∆t), n = 1, 2, . . .
• Il sistema è nello stato n al tempo t e due o più transizioni si verificano
nell’intervallo (t, t + ∆t]; le probabilità condizionate associate sono
pn,n±k (∆t) = P N (t + ∆t) = n ± k|N (t) = n = o(∆t)
(k = 2, 3, . . .).
Utilizzando (3.1) in (2.22) segue che le probabilità di stato pn (t) = P {N (t) = n}
di avere n utenti presenti nel sistema al tempo t soddisfano il sistema di equazioni
differenziali
X
dp0 (t)
= −p0 (t) γ0,0 +
pk (t) γk,0 = −λ0 p0 (t) + µ1 p1 (t)
dt
k6=0
dpj (t)
= −pj (t) γj,j +
dt
X
pk (t) γk,j
k6=j
= −(λj + µj ) pj (t) + λj−1 pj−1 (t) + µj+1 pj+1 (t)
(j = 0, 1, . . .),
da risolvere utilizzando la distribuzione di probabilità iniziale del processo di
nascita morte {p0 (0), p1 (0), . . .}.
A.G. Nobile
3.2. PROCESSI STOCASTICI DI NASCITA MORTE
λ0
λ1
- - 37
λn−1
λn
-
- - n
n−1
n+ 1 ···
0
1
2
······ ···
µ1
µ2
µn
µn+1
Figura 3.1: Grafo di transizione di un processo di nascita morte in condizioni
di equilibrio statistico.
Denotiamo con
qn = lim pn (t)
t→+∞
(n = 0, 1, . . .)
(3.2)
la probabilità di avere n utenti nel sistema nella situazione di equilibrio statistico. Per ottenere la distribuzione di equilibrio, costruiamo il grafo di transizione,
illustrato in Figura 3.1 e utilizziamo il principio di bilanciamento che consiste
nell’uguagliare il flusso medio con cui il processo entra nello stato n ed il flusso
medio con cui il processo esce dallo stato n (n = 0, 1, . . .). In questo grafo ogni
stato è rappresentato da un cerchietto etichettato con il numero intero associato allo stato. Gli archi che collegano i nodi mostrano quali sono le possibili
transizioni di stato e sono etichettati con le frequenze di transizione (ossia le
frequenze di arrivo o di servizio). Le equazioni di bilanciamento (2.28) per il
processo di nascita morte diventano:
µ1 q1 = λ0 q0
(3.3)
λn−1 qn−1 + µn+1 qn+1 = λn qn + µn qn
(n = 1, 2, . . .).
da risolvere con le condizioni (2.29). Si dimostra che un processo di nascita
morte ammette una distribuzione di equilibrio {q0 , q1 , . . .} se e solo se la serie
1+
+∞
X
λ0 λ1 · · · λn−1
µ1 µ2 · · · µn
n=1
converge e in tal caso la distribuzione di equilibrio risulta essere:
−1
+∞
X
λ0 λ1 · · · λn−1
q0 = 1 +
,
µ1 µ2 · · · µn
n=1
λ0 λ1 · · · λn−1
qn = q0
µ1 µ2 · · · µn
(3.4)
(3.5)
(n = 1, 2, . . .).
Se la serie (3.4) diverge, ciò indica che un sistema di servizio a capacità infinita,
caratterizzato da frequenze di arrivo λn (n = 0, 1, . . .) e da frequenze di partenza
A.G. Nobile
38
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
µn (n = 1, 2, . . .), è instabile nel senso che in media gli arrivi si verificano più
frequentemente delle partenze.
3.3
Il principio PASTA
Denotiamo con {N (t), t ≥ 0} il processo stocastico che descrive il numero N (t)
di utenti presenti nel sistema di servizio al tempo t e con pn (t) = P {N (t) = n}
(n = 0, 1, . . .) la probabilità che siano presenti n utenti nel sistema al tempo t.
Sia inoltre
qn = lim pn (t)
(n = 0, 1, . . .)
t→+∞
la probabilità di avere n utenti nel sistema di servizio nella situazione di equilibrio statistico.
In ogni intervallo di tempo di lunghezza τ è possibile considerare il rapporto
tra il tempo tn (τ ) che il sistema spende nello stato n e la lunghezza complessiva
τ dell’intervallo di tempo considerato. Se il sistema di servizio raggiunge una
situazione di equilibrio statistico, al crescere di τ tale rapporto fornisce proprio
la probabilità qn , ossia per ogni n = 0, 1, . . . si ha:
tempo che il sistema spende nello stato n nell′ intervallo (0, τ )
τ →+∞
τ
tn (τ )
= lim
·
(3.6)
τ →+∞
τ
qn = lim
Consideriamo ora i seguenti eventi:
An =“un utente in arrivo trova n utenti nel sistema” (n = 0, 1, . . .),
Dn =“un utente in partenza lascia n utenti nel sistema” (n = 0, 1, . . .).
e siano
πn(a) = P (An ),
πn(d) = P (Dn )
(n = 0, 1, . . .)
(3.7)
le relative probabilità in condizioni di equilibrio statistico.
(a)
(d)
Le tre probabilità qn , πn e πn non sempre sono uguali per ogni n = 0, 1, . . ..
Sussiste il seguente risultato valido per utenti che non arrivano in gruppi e che
lasciano il sistema singolarmente.
Teorema 3.1 In ogni sistema di servizio in cui gli utenti arrivano uno alla
volta e lasciano il sistema uno alla volta, nella situazione di equilibrio statistico
si ha:
πn(a) = πn(d)
(n = 0, 1, . . .).
(3.8)
Dimostrazione Supponiamo che un utente in arrivo trovi n utenti presenti nel
sistema (n = 0, 1, . . .); il numero di utenti nel sistema verrà quindi incrementato
di un’unità e passerà da n a n+1. Supponiamo inoltre che un utente in partenza
lasci n utenti presenti nel sistema (n = 0, 1, . . .); il numero di utenti nel sistema
verrà decrementato di un’unità e passerà da n + 1 a n.
A.G. Nobile
3.3. IL PRINCIPIO PASTA
39
6
N (t)
3
2
1
-
0
τ1
τ2
t
Figura 3.2: Una tipica realizzazione di un sistema di servizio con arrivi singoli.
In ogni intervallo di tempo di ampiezza τ , il numero di transizioni nA (τ )
da n a n + 1 e il numero di transizioni nD (τ ) da n + 1 a n differirà al più di
un’unità, ossia nA (τ ) = nD (τ ) oppure nA (τ ) = nD (τ ) + 1. Ciò è illustrato in
Figura 3.2 in cui partendo nello stato 0, se le transizioni da 1 a 2 si verificano
3 volte, allora 3 (oppure 2) volte si deve avere una transizione all’indietro allo
stato 1 partendo dallo stato 2. Infatti fino all’istante τ1 le transizioni da 1 a 2
si verificano nA (τ1 ) = 2 volte e le transizioni da 2 a 1 si verificano nD (τ1 ) = 2
volte, mentre fino all’istante τ2 le transizioni da 1 a 2 si verificano nA (τ2 ) = 3
volte e le transizioni da 2 a 1 si verificano nD (τ2 ) = 2 volte.
Per ogni n = 0, 1, . . ., si ha quindi:
nD (τ )
nA (τ )
=
τ
τ
oppure
nA (τ )
nD (τ )
1
=
+ ,
τ
τ
τ
da cui si ottiene:
lim
τ →+∞
nA (τ )
nD (τ )
= lim
·
τ
→+∞
τ
τ
ossia, per ogni n = 0, 1, . . . la frequenza con cui un utente in arrivo trova n
utenti nel sistema è uguale alla frequenza con cui un utente in partenza lascia
n utenti nel sistema. Ciò significa che in media arrivi e partenze vedono sempre
lo stesso numero di utenti, implicando che la probabilità che un arrivo trovi n
utenti nel sistema è uguale alla probabilità che una partenza lasci n utenti nel
(d)
(a)
sistema. Quindi, le probabilità πn e πn sono uguali per ogni n = 0, 1, . . .. Nella situazione di equilibrio statistico, la probabilità che un arrivo trovi n
(a)
utenti nel sistema, ossia πn , è spesso differente dalla probabilità di avere n
utenti nel sistema, ossia qn . Un’importante eccezione si ha quando gli arrivi
si verificano secondo un processo di Poisson, come afferma il principio PASTA
(Poisson Arrivals See Time Averages). Tale principio afferma che un osservatore
esterno, arrivando al sistema di servizio secondo un processo di Poisson, vede il
sistema come se esso fosse in una situazione di equilibrio.
A.G. Nobile
40
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
Teorema 3.2 (Principio PASTA) In ogni sistema di servizio in cui gli arrivi si
verificano secondo un processo di Poisson, nella situazione di equilibrio statistico
la probabilità che un utente in arrivo trovi n utenti nel sistema è uguale alla
probabilità che il sistema sia nello stato n, ossia
πn(a) = qn
(n = 0, 1, . . .).
(3.9)
Dimostrazione Una dimostrazione rigorosa del principio PASTA è stata fornita da R.W. Wolff nel 1982 in un articolo avente come titolo “Poisson Arrivals
See Time Averages”pubblicato su Operations Research, Vol. 30(2), pp. 223-231.
Ci limitiamo ora a fornire una semplice dimostrazione di tipo euristico.
Dalla (3.6) segue che il tempo che il sistema di servizio spende nello stato n
durante un intervallo di tempo di lunghezza τ è approssimativamente tn (τ ) =
qn τ per grandi τ . Se gli arrivi si verificano con frequenza λ qualsiasi sia lo stato
del sistema, il numero medio di arrivi che trovano il sistema nello stato n in un
intervallo di ampiezza τ è approssimativamente λ tn (τ ) = λ qn τ per grandi τ .
Ricordando poi che gli arrivi si verificano secondo un processo di Poisson di
parametro λ, facendo uso della prima delle (2.3) si ricava che il numero medio
complessivo di arrivi nell’intervallo (0, τ ) è E[N (τ )] = λ τ. Quindi, per grandi τ ,
la proporzione di arrivi che trovano il sistema nello stato n è (λ τ qn )/(λ τ ) = qn .
Ne consegue che qn si può anche interpretare come la probabilità che un utente
in arrivo trovi n utenti nel sistema.
Dai Teoremi 3.1 e 3.2 segue che in ogni sistema di servizio in cui gli utenti
arrivano uno alla volta secondo un processo di Poisson e lasciano il sistema uno
alla volta, nella situazione di equilibrio si ha
πn(d) = πn(a) = qn
(n = 0, 1, . . .).
Questo risultato svolgerà un ruolo fondamentale nella descrizione dell’output
dei sistemi di servizio M/M/1, M/M/s e M/M/∞.
Occorre sottolineare che il principio PASTA non è valido per tutti i sistemi di
servizio, ma soltanto per quelli in cui gli arrivi si verificano secondo un processo
di Poisson, come mostrato nel seguente esempio.
Esempio 3.1 Consideriamo un sistema D/D/1 in cui i tempi di interarrivo e
di servizio sono di tipo deterministico, ossia hanno una durata costante. Supponiamo che ogni secondo arriva un job che richiede 0.6 secondi per ricevere
servizio, come illustrato in Figura 3.3. In questo caso il tempo di interarrivo
è E(T ) = 1/λ = 1 e il tempo medio di servizio E(S) = 1/µ = 0.6, e quindi
l’intensità di traffico è ̺ = λ/µ = 0.6.
Essendo ̺ < 1, il sistema considerato ammetterà sempre una distribuzione
di equilibrio. Si nota che quando un job arriva, trova il servitore libero con
(a)
certezza, ossia π0 = 1. Invece, la probabilità che in condizioni di equilibrio il
sistema sia vuoto è q0 = P (N = 0) = 1 − ̺ = 0.4, che mostra che per tale
sistema non sussiste il principio PASTA.
♦
A.G. Nobile
3.4. COEFFICIENTE DI UTILIZZAZIONE E THROUGHPUT 41
6N (t)
1
-
0
0.6
1.0
1.6
2.0
2.6
t
Figura 3.3: Una tipica realizzazione di un sistema di servizio D/D/1 con E(T ) =
1/λ = 1 e o E(S) = 1/µ = 0.6.
3.4
Coefficiente di utilizzazione e throughput
Vogliamo ora definire il coefficiente di utilizzazione e il throughput per un sistema di servizio con singolo servitore e con più servitori identici che lavorano in
parallelo.
3.4.1
Sistema con singolo servitore
Consideriamo un sistema di servizio con singolo servitore e, in condizioni di
equilibrio statistico, denotiamo con f il coefficiente di utilizzazione del sistema,
definito come:
f = E(Ns ) = 1 · q1 + 1 · q2 + . . . = P (N ≥ 1) = 1 − P (N = 0) = 1 − q0 . (3.10)
Il coefficiente di utilizzazione del sistema fornisce la probabilità che nel sistema
di servizio con unico servitore sia presente almeno un utente, ossia la probabilità
che il centro di servizio sia occupato, e coincide con il numero medio di servitori
occupati (attivi).
In condizioni di equilibrio statistico, denotiamo poi con τ il throughput (capacità di trasporto o capacità produttiva) di un sistema di servizio con singolo
servitore. Il throughput fornisce la frequenza con cui gli utenti (job, task) lasciano con successo un sistema e si ottiene moltiplicando la frequenza media di
servizio per numero medio di servitori occupati, ossia
τ = µ E(Ns ) = µ P (N ≥ 1) = µ (1 − q0 ).
3.4.2
(3.11)
Sistema con servitori multipli in parallelo
Consideriamo un sistema di servizio con s servitori che lavorano in parallelo e in
cui la politica di servizio non privilegia nessuno di tali servitori e, in condizioni di
equilibrio statistico, denotiamo con f il coefficiente di utilizzazione del sistema,
ossia la frazione media di servitori attivi (occupati) nel sistema, definito come:
f=
A.G. Nobile
E(Ns )
s
(3.12)
42
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
dove il numero medio di servitori occupati si calcola nel seguente modo:
E(Ns ) =
s−1
X
n qn + s
+∞
X
qn
(3.13)
n=s
n=1
Infatti se nel sistema sono presenti n utenti, con n = 1, 2, . . . , s − 1, soltanto n
servitori sono occupati, mentre se nel sistema sono presenti un numero maggiore
o uguale a s di utenti tutti i servitori sono occupati.
In condizioni di equilibrio statistico, il throughput del sistema si ottiene moltiplicando la frequenza media di servizio per numero medio di servitori occupati,
ossia
+∞
s−1
i
hX
X
(3.14)
τ = µ E(Ns ) = µ
k qk + s
qk .
k=1
k=s
Il throughput del sistema descrive la frequenza con cui, in condizioni di equilibrio, gli utenti (job, task) lasciano con successo il sistema di servizio con s
servitori.
3.5
Sistema di servizio M/M/1
Supponiamo che gli utenti arrivino al sistema di servizio secondo un processo
di Poisson di parametro λ. I tempi tra due successivi arrivi (tempi di interarrivo) sono quindi indipendenti ed esponenzialmente distribuiti con valore medio
1/λ. Dopo l’arrivo, ogni utente è immediatamente servito se il servitore è libero,
mentre se il servitore è occupato allora l’utente si mette in coda (ossia nella fila
di attesa). Quando il servitore termina di servire un utente, l’utente lascia il
sistema e il nuovo utente nella fila di attesa, se ne esiste almeno uno presente, può accedere al servizio. Supponiamo che i tempi di servizio degli utenti
siano indipendenti ed esponenzialmente distribuiti con valore medio 1/µ. Tale
modello, illustrato in Figura 3.4, è noto in letteratura come sistema di servizio
M/M/1 (o equivalentemente come sistema di servizio M/M/1/∞).
λ
-
µ
Figura 3.4: Sistema di servizio M/M/1.
La prima M significa che i tempi di interarrivo sono indipendenti e distribuiti
esponenzialmente (proprietà di Markov legata alla mancanza di memoria della
funzione di distribuzione esponenziale); la seconda M significa che i tempi di
servizio sono indipendenti e distribuiti esponenzialmente; il simbolo 1 si riferisce
all’unico servitore disponibile, il simbolo ∞ si riferisce al fatto che la capacità
del sistema è illimitata.
Se denotiamo con N (t) il numero di utenti presenti nel sistema al tempo t,
allora {N (t), t ≥ 0} può essere descritto ricorrendo ad un processo di nascita
A.G. Nobile
3.5. SISTEMA DI SERVIZIO M/M/1
43
morte caratterizzato da frequenze
λn = λ (n = 0, 1, . . .);
µn = µ
(n = 1, 2, . . .).
(3.15)
Il sistema M/M/1 raggiunge una situazione di equilibrio statistico se e solo se
̺ = λ/µ < 1 e, facendo uso delle (3.5), risulta:
qn = (1 − ̺) ̺n
(n = 0, 1, . . .),
(3.16)
ossia una funzione di probabilità geometrica di parametro ̺. La condizione
̺ < 1 è equivalente a richiedere che E(S) < E(T ), ossia il sistema raggiunge
una situazione di equilibrio statistico se e solo se il tempo medio di servizio è
minore del tempo medio di interarrivo.
In un sistema M/M/1 la frequenza media di arrivo per unità di tempo è
λ∗ = λ e quindi dalla terza legge di Little segue che il numero medio di servitori
attivi (occupati) è
E(Ns ) = λ∗ E(S) = λ E(S) =
3.5.1
λ
= ̺.
µ
Utilizzazione e throughput per il sistema M/M/1
Calcoliamo ora esplicitamente il coefficiente di utilizzazione e il throughput del
sistema M/M/1. Ricordando la (3.10) e la (3.16) per n = 0, segue che per il
sistema M/M/1 il coefficiente di utilizzazione è:
f = E(Ns ) = P (N ≥ 1) = 1 − q0 = ̺ =
λ
µ
(3.17)
Invece, il throughput di un sistema M/M/1 è:
τ = µ E(Ns ) = λ.
(3.18)
La (3.18) mostra che in condizioni di equilibrio la frequenza con cui gli utenti
lasciano con successo il sistema M/M/1 corrisponde alla frequenza di arrivo
degli utenti nel sistema.
Nella Tabella 3.1 sono riportati alcuni parametri prestazionali del sistema
M/M/1.
3.5.2
Output del sistema M/M/1
Il problema dell’output di un sistema di servizio è stato considerato per la
prima volta da Morse (1955). Egli osservò che il processo delle partenze da un
sistema M/M/1 in condizioni di equilibrio è un processo di Poisson con lo stesso
parametro del processo di Poisson di input. Una dimostrazione rigorosa di tale
risultato è stata fornita da Burke (1956, 1968).
A.G. Nobile
44
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
λn = λ
(n = 0, 1, . . .),
̺ = λ/µ < 1
µn = µ
(condizione di equilibrio statistico)
qn = P (N = n) = (1 − ̺) ̺n
E(N ) =
̺
,
1−̺
λ∗ = λ
(n = 1, 2, . . .)
E(W ) =
(n = 0, 1, . . .)
1
µ−λ
(frequenza media di arrivo per unità di tempo)
E(Ns ) = λ∗ E(S) = λ E(S) =
f = E(Ns ) = P (N ≥ 1) =
τ = µ E(Ns ) = λ
λ
µ
λ
µ
(numero medio di servitori occupati)
(coefficiente di utilizzazione del sistema)
(throughput del sistema)
Tabella 3.1: Alcuni parametri prestazionali del sistema di servizio M/M/1.
Teorema 3.3 (Teorema di Burke) In un sistema di servizio M/M/1 in condizioni di equilibrio statistico, le lunghezze degli intervalli di tempo tra partenze
successive (tempi di interpartenze) sono variabili aleatorie indipendenti ed esponenzialmente distribuite con valore medio 1/λ, dove λ è il parametro del processo
di Poisson di input. Quindi, il processo di output (delle partenze) di un sistema
di servizio M/M/1 in condizioni di equilibrio statistico è un processo di Poisson
di parametro λ.
Dimostrazione Denotiamo con Y la variabile aleatoria che descrive la lunghezza dell’intervallo di tempo che intercorre tra due partenze successive in un
sistema M/M/1. Siamo interessati a calcolare la funzione di distribuzione di Y .
Nella situazione di equilibrio statistico denotiamo con Dn l’evento “un utente
in partenza lascia n utenti nel sistema” (n = 0, 1, . . .). Si nota immediatamente
che l’evento {Y < t} può essere cosı̀ rappresentato:
∞ h
i
[
Dn ∩ {Y < t} .
{Y < t} =
(3.19)
n=0
Infatti, l’evento {Y < t} si realizza se si verifica uno qualunque dei eventi
incompatibili D0 , D1 , . . . ed inoltre Y < t. Pertanto se t > 0, utilizzando il
teorema delle probabilità totali si ha:
∞
∞
h
i X
X
P (Y < t) =
P Dn ∩ {Y < t} =
πn(d) P (Y < t | Dn )
n=0
A.G. Nobile
n=0
3.5. SISTEMA DI SERVIZIO M/M/1
0
tempo di ozio
del servitore
?
Z
tempo di
servizio
6
S
45
n
?
tempo di servizio
?
?
S
Figura 3.5: Tempo di interpartenza quando n = 0 sulla sinistra e quando n =
1, 2, . . . sulla destra.
(d)
= π0 P (Y < t | D0 ) +
∞
X
πn(d) P (Y < t | Dn ),
(3.20)
n=1
(d)
dove si è posto πn = P (Dn ). Facendo uso dei Teoremi 3.1 e 3.2, per il sistema
M/M/1 in equilibrio statistico si ha
πn(d) = πn(a) = qn = (1 − ̺) ̺n
(n = 0, 1, . . .).
(3.21)
Pertanto dalla (3.20) segue che
P (Y < t) = q0 P (Y < t | D0 ) +
∞
X
qn P (Y < t | Dn ).
(3.22)
n=1
Quando n = 0, ossia quando un utente in partenza non lascia utenti nel
sistema, la lunghezza dell’intervallo tra due partenze successive è pari alla somma del tempo di ozio del servitore (tempo residuodi interarrivo) più il tempo di
servizio del prossimo utente che arriva. Denotando con S il tempo di servizio e
con Z il tempo di ozio del servitore, si ha Y = S + Z, cosı̀ come illustrato alla
sinistra di Figura 3.5. Invece, quando un utente in partenza lascia n utenti nel
sistema, con n = 1, 2, . . ., la lunghezza dell’intervallo tra due partenze successive
è pari al tempo di servizio del prossimo utente, ossia Y = S, cosı̀ come illustrato
alla destra di Figura 3.5.
Quando t > 0 la (3.22) si può quindi anche scrivere:
P (Y < t) = q0 P (S + Z < t) + P (S < t)
∞
X
qn
n=1
= q0 P (S + Z < t) + P (S < t) 1 − q0 ,
(3.23)
essendo q0 + q1 + . . . = 1. La densità di probabilità della variabile aleatoria Y
è quindi:
dP (Y < t)
(3.24)
= q0 fS+Z (t) + fS (t) 1 − q0 ,
fY (t) =
dt
dove fY (t), fS (t) e fS+Z denotano rispettivamente le densità di probabilità di
Y , S e S + Z.
Poiché i tempi di interarrivo del sistema M/M/1 sono distribuiti esponenzialmente con valore medio 1/λ, per l’assenza di memoria della densità di probabilità
A.G. Nobile
46
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
esponenziale, anche i tempi residui di interarrivo sono distribuiti esponenzialmente con lo stesso valore medio. Ricordando inoltre che per il sistema M/M/1
anche il tempo di servizio è distribuito esponenzialmente con valore medio 1/µ,
si ha:
−µ t
µe
, t>0
λ e−λ t , t > 0
fZ (t) =
fS (t) =
(3.25)
0,
altrimenti.
0,
altrimenti.
Essendo le variabili aleatorie S e Z indipendenti, quando t > 0 si ottiene:
Z t
Z t
fS+Z (t) =
fZ (τ )fS (t − τ ) dτ =
λ e−λ τ µ e−µ (t−τ ) dτ
0
0
Z t
λµ
e−λ t − e−µ t
(3.26)
= λ µ e−µ t
e(µ−λ)τ dτ =
µ
−
λ
0
Facendo uso di (3.21), (3.25) e (3.26) in (3.24), quando t > 0 si ha:
λµ
e−λ t − e−µ t + ̺ µ e−µ t
µ−λ
= λ e−λ t − e−µ t + λ e−µ t = λ e−λ t .
fY (t) = (1 − ̺)
(3.27)
Il processo delle partenze da un sistema di servizio M/M/1 è quindi un processo
di Poisson di parametro λ.
3.6
M/M/1/K
Supponiamo che gli utenti arrivino al sistema di servizio secondo un processo di
Poisson di parametro λ. Dopo l’arrivo, ogni utente è direttamente servito se il
servitore è libero, mentre se il servitore è occupato allora l’utente si mette in fila
di attesa se il numero di utenti presenti nel sistema è minore di K, altrimenti
abbandona il sistema. Quando un utente termina il servizio lascia il sistema e il
nuovo utente nella fila di attesa (se ne esiste almeno uno presente) può accedere
al servizio. Supponiamo che i tempi di servizio degli utenti siano indipendenti
e distribuiti esponenzialmente con valore medio 1/µ. Come mostrato in Figura 3.6, in questo sistema la fila di attesa è limitata, ossia al più K utenti, incluso
quello in servizio, possono essere presenti nel sistema.
λ
K −1
µ
Figura 3.6: Sistema di servizio M/M/1/K.
Tale modello è noto in letteratura come sistema di servizio M/M/1/K. In
particolare, se K = 1, si ottiene il sistema di servizio M/M/1/1 che può descrivere un centralino telefonico con un’unica linea disponibile in cui le chiamate
che arrivano e trovano il centralino occupato sono perse.
A.G. Nobile
3.6. M/M/1/K
47
Se denotiamo con N (t) il numero di utenti presenti nel sistema M/M/1/K
al tempo t, allora {N (t), t ≥ 0} può essere analizzato facendo ricorso ad un
processo di nascita morte caratterizzato da frequenze:
µ, n = 1, 2, . . . , K
λ, n = 0, 1, . . . , K − 1
λn =
,
µn =
(3.28)
0, n = K, K + 1, . . .
0, n = K + 1, K + 2, . . .
Il sistema di servizio M/M/1/K raggiunge sempre una situazione di equilibrio
statistico e, facendo uso di (3.5) si ottiene:

1−̺


̺n , ̺ 6= 1

1 − ̺K+1
(n = 0, 1, . . . , K).
(3.29)
qn = P (N = n) =

1


,
̺=1
K +1
dove si è posto ̺ = λ/µ.
A differenza del sistema M/M/1, il sistema M/M/1/K ammette sempre una
distribuzione di equilibrio. Quando ̺ = 1 la distribuzione di equilibrio è quella
equiprobabile, ossia una distribuzione che assegna uguali probabilità a tutti i
K + 1 stati.
Se ̺ 6= 1, dalle (3.29) si ricava qn /qn−1 = ̺ (n = 1, 2, . . .). Risulta quindi
q0 > q1 > . . . > qK se ̺ < 1, mentre qK > qK−1 > . . . > q0 se ̺ > 1.
Tali disuguaglianze mostrano che se ̺ < 1 è più probabile trovare il sistema
vuoto, mentre se ̺ > 1 è più probabile trovare il sistema saturo. Per evitare
la congestione di un sistema di servizio non è quindi conveniente ridurre la
capacità del sistema. Infatti, quando ̺ > 1, essendo più probabile trovare il
sistema saturo, si impedisce di accedere al sistema a potenziali utenti.
La probabilità qK = P (N = K) è detta blocking probability e fornisce la
probabilità che in condizioni di equilibrio il buffer del sistema M/M/1/K sia
pieno e corrisponde anche alla probabilità che un utente (job, task) sia rifiutato
essendo il buffer saturo. Il calcolo di qK è molto importante poiché consente di
scegliere la misura adeguata della fila di attesa (del buffer). Dalla (3.29) segue
che la probabilità che un utente in arrivo non sia rifiutato o, equivalentemente,
la probabilità che il buffer non sia pieno è

1 − ̺K


, ̺ 6= 1

1 − ̺K+1
1 − qK = P (N < K) =
(3.30)


 K ,
̺ = 1.
K +1
Inoltre, dalla (3.29) si ottiene anche la probabilità che nel sistema M/M/1/K
sia presente almeno un utente:

K

 ̺(1 − ̺ ) , ̺ 6= 1

K+1
1−̺
1 − q0 = P (N ≥ 1) =
(3.31)


 K ,
̺ = 1.
K +1
A.G. Nobile
48
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
Confrontando (3.30) e (3.31) si nota che per il sistema M/M/1/K sussiste la
seguente identità:
1 − q0 = ̺ (1 − qK ).
La frequenza media di arrivo per unità di tempo è
λ∗ = λ (1 − qK ),
ossia la frequenza di arrivo moltiplicata per la probabilità che la fila di attesa
(buffer) non sia piena; infatti soltanto in questo caso gli utenti possono accedere
al sistema di servizio. Dalla terza legge di Little segue che il numero medio di
servitori occupati è:
E(Ns ) = λ∗ E(S) =
3.6.1
λ
(1 − qK ).
µ
Utilizzazione e throughput per il sistema M/M/1/K
In condizioni di equilibrio statistico, valutiamo ora il coefficiente di utilizzazione
e il throughput del sistema M/M/1/K. Ricordando (3.10) e (3.29), il coefficiente
di utilizzazione del sistema M/M/1/K è:
f = E(Ns ) = P (N ≥ 1) = 1 − q0 =
λ
(1 − qK ).
µ
(3.32)
Il throughput del sistema M/M/1/K, ossia la frequenza con cui gli utenti lasciano con successo il sistema, si ottiene moltiplicando la frequenza media di
servizio per numero medio di servitori occupati:
τ = µ E(Ns ) = λ (1 − qK ).
(3.33)
La (3.33) mostra che in condizioni di equilibrio la frequenza con cui gli utenti
lasciano con successo il sistema M/M/1/K corrisponde alla frequenza con cui
gli utenti che arrivano non sono rifiutati.
Nella Tabella 3.2 sono riportati alcuni parametri prestazionali del sistema di
servizio M/M/1/K.
Un ovvio rimedio per un sistema di servizio che presenta congestione consiste
nell’aumentare il numero di servitori.
3.7
Sistema di servizio M/M/s
Consideriamo un sistema di servizio a capacità infinita con un’unica fila di
attesa e s servitori. Supponiamo che i tempi di interarrivo siano indipendenti
e distribuiti esponenzialmente con valore medio 1/λ e che i tempi di servizio
per ogni servitore siano indipendenti e distribuiti esponenzialmente con valore
medio 1/µ. Se un utente arriva e trova tutti i servitori occupati allora si mette
in fila di attesa, mentre se trova dei servitori liberi sceglie a caso uno di essi per
essere servito.
A.G. Nobile
3.7. SISTEMA DI SERVIZIO M/M/S
λn =
λ,
0,
n = 0, 1, . . . , K − 1
n = K, K + 1, . . .
µn =
µ,
0,
49
n = 1, 2, . . . , K
n = K + 1, K + 2, . . .
̺ = λ/µ < +∞
qn = P (N = n) =
E(N ) =








1−̺
̺n ,
1 − ̺K+1
̺ 6= 1
1/(K + 1) ,
̺=1
̺
(K + 1) ̺K+1
−
,
1−̺
1 − ̺K+1
K/2 ,
 1
K ̺K

1
−
,
µ 1−̺
1 − ̺K
E(W ) =


(K + 1)/(2 µ) ,
(n = 0, 1, . . . , K)
̺ 6= 1
̺=1
̺ 6= 1
̺=1
λ∗ = λ (1 − qK )
(frequenza media di arrivo per unità di tempo)
E(Ns ) = λ∗ E(S) =
λ
(1 − qK )
µ
f = E(Ns ) = P (N ≥ 1) =
τ = µ E(Ns ) = λ (1 − qK )
(numero medio di servitori occupati)
λ
(1 − qK )
µ
(coefficiente di utilizzazione del sistema)
(throughput del sistema)
Tabella 3.2: Alcuni parametri prestazionali del sistema di servizio M/M/1/K
Tale sistema, noto in letteratura come M/M/s, è descrivibile mediante un
processo di nascita morte {N (t), t ≥ 0} caratterizzato da frequenze
n µ n = 1, 2, . . . , s − 1
λn = λ
(n = 0, 1, . . .)
µn =
(3.34)
s µ, n = s, s + 1, . . .
Il sistema di servizio M/M/s, illustrato in Figura 3.7, raggiunge una situazione
di equilibrio statistico se e solo se ̺ = λ/(s µ) < 1. Per decidere il numero di
servitori necessari e sufficienti affinché il sistema sia stabile occorre osservare il
rapporto λ/µ e determinare l’intero positivo s tale che
(s − 1) ≤
λ
< s.
µ
Se (s − 1) ≤ λ/µ < s, allora s servitori sono necessari per raggiungere la
situazione di equilibrio statistico poiché in tal caso λ/(s µ) < 1 e inoltre sono
anche sufficienti nel senso che sarebbe poco economico considerare più di s
servitori. Facendo uso delle (3.5), risulta:
s−1
hX
(λ/µ)s i−1
(λ/µ)n
,
+
q0 = P (N = 0) =
n!
s! (1 − ̺)
n=0
A.G. Nobile
50
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
T
1
T
µ
λ
T
µ
Q T
2
Q
T
Q
······
µ
s−1
µ
s
##
-#
A
@
A@
A
A
A
-
-
Figura 3.7: Sistema di servizio M/M/s.
qn = P (N = n) = q0
λ0 λ1 · · · λn−1
µ1 µ2 · · · µn
(3.35)

n
(λ/µ)


, n = 1, 2, . . . , s
 q0
n!
=
n


 q0 (λ/µ) , n = s + 1, s + 2, . . .
s! sn−s
con ̺ = λ/µ. Un parametro molto importante per il sistema di servizio M/M/s
è rappresentato dalla probabilità che un utente in arrivo debba attendere nella
fila di attesa prima di ricevere il servizio. È evidente che ciò si verifica se e
solo se vi sono almeno s utenti già presenti nel sistema. Tale probabilità, detta
formula C di Erlang, può essere cosı̀ ottenuta
C(s, λ/µ) = P (N ≥ s) =
(λ/µ)s
s!
(λ/µ)s
+ (1 − ̺)
s!
s−1
X
(λ/µ)n
n!
n=0
= q0
(λ/µ)s
·
s! (1 − ̺)
(3.36)
In particolare, se s = 1 (ossia per un sistema M/M/1) risulta che C(s, λ/µ) =
C(1, λ/µ) = ̺ = λ/µ, che coincide con la probabilità che almeno un utente sia
presente nel sistema.
Per il sistema M/M/s la frequenza media di arrivo per unità di tempo è
λ∗ = λ. Utilizzando la terza legge di Little, in condizioni di equilibrio statistico
il numero medio di utenti in servizio, o equivalentemente di servitori attivi
(occupati) è:
E(Ns ) = λ∗ E(S) =
λ
·
µ
(3.37)
La (3.37) potrebbe anche essere ricavata direttamente senza ricorrere alla terza
legge di Little. Infatti, utilizzando le probabilità di equilibrio (3.35) in (3.13) si
A.G. Nobile
3.7. SISTEMA DI SERVIZIO M/M/S
51
ottiene:
E(Ns ) =
s−1
X
n qn + s
n=1
+∞
X
n=s
qn =
s−1
X
n qn + s P (N ≥ s)
n=1
X
s−1
(λ/µ)n
(λ/µ)s
(λ/µ)n
+ s C(s, λ/µ) = q0
n
+s
n!
n!
s! (1 − ̺)
n=1
n=1
X
s−1
λ
(λ/µ)n−1
(λ/µ)s−1
= q0
+
µ n=1 (n − 1)!
(s − 1)! (1 − ̺)
X
s
(λ/µ)n−1
(λ/µ)s−1
(λ/µ)s−1
λ
−
+
= q0
µ n=1 (n − 1)!
(s − 1)!
(s − 1)! (1 − ̺)
X
s−1
λ
(λ/µ)s
λ
(λ/µ)k
λ
= q0 q0−1 = ·
+
= q0
µ
k!
s! (1 − ̺)
µ
µ
=
s−1
X
n q0
k=0
3.7.1
Utilizzazione e throughput per il sistema M/M/s
Consideriamo un sistema di servizio con s servitori che lavorano in parallelo e
in cui la politica di servizio non privilegia nessuno di tali servitori. Ricordando
la (3.12), in condizioni di equilibrio statistico il coefficiente di utilizzazione del
sistema è:
λ
E(Ns )
=
.
(3.38)
f=
s
sµ
Inoltre dalla (3.14) segue che il throughput del sistema è
τ = µ E(Ns ) = µ
λ
= λ,
µ
(3.39)
che mostra che in condizioni di equilibrio statistico la frequenza con cui gli
utenti lasciano con successo il sistema M/M/s corrisponde alla frequenza di
arrivo degli utenti nel sistema.
Nella Tabella 3.3 sono riportati alcuni parametri prestazionali del sistema
M/M/s.
Quando s = 2 dalla (3.35) si ha:

1−̺


n=0

1−̺ n
1+̺
qn =
̺ ∆(n) =
(3.40)
1−̺ n

1+̺

2
̺
n = 0, 1, . . .
1+̺
dove ̺ = λ/(2 µ) e ∆(n) = 1 se n = 0 mentre ∆(n) = 2 se n = 1, 2, . . ..
Nella Tabella 3.4 invece sono riportati alcuni parametri prestazionali del sistema
M/M/2.
A.G. Nobile
52
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
λn = λ
̺=
(n = 0, 1, . . .)
λ
<1
sµ
µn =
nµ
s µ,
n = 1, 2, . . . , s − 1
n = s, s + 1, . . .
(condizione di equilibrio statistico)
s−1
X (λ/µ)n
(λ/µ)s −1
,
q0 = 1 +
+
n!
s! (1 − ̺)
n=1
qn = q0
λ0 λ1 · · · λn−1
µ1 µ2 · · · µn

(λ/µ)n


,
 q0
n!
=
n


 q0 (λ/µ) ,
sn−s s!
C(s, λ/µ) = P (N ≥ s) = q0
E(N ) =
λ∗ = λ
(λ/µ)s
s! (1 − ̺)
λ
̺
+
C(s, λ/µ),
µ
1−̺
n = s + 1, s + 2, . . .
(formula C di Erlang)
E(W ) =
1
C(s, λ/µ)
+
µ
s µ (1 − ̺)
(frequenza media di arrivo per unità di tempo)
E(Ns ) = λ∗ E(S) = λ E(S) =
f=
n = 1, 2, . . . , s
E(Ns )
λ
=
s
sµ
τ = µ E(Ns ) = λ
λ
µ
(numero medio di servitori occupati)
(coefficiente di utilizzazione del sistema)
(throughput del sistema)
Tabella 3.3: Alcuni parametri prestazionali del sistema di servizio M/M/s
3.7.2
Output del sistema M/M/s
Il teorema di Burke dimostrato per il sistema M/M/1 può anche essere generalizzato al sistema M/M/s (Burke, 1968).
Teorema 3.4 (Teorema di Burke) In un sistema di servizio M/M/s in condizioni di equilibrio statistico, le lunghezze degli intervalli di tempo tra partenze
successive (tempi di interpartenze) sono variabili aleatorie indipendenti ed esponenzialmente distribuite con valore medio 1/λ, dove λ è il parametro del processo
di Poisson di input. Quindi, il processo di output (delle partenze) da un sistema
di servizio M/M/s in condizioni di equilibrio statistico è un processo di Poisson
di parametro λ.
Dimostrazione La dimostrazione, che viene omessa, procede in maniera simile a quella del sistema M/M/1.
A.G. Nobile
3.8. SISTEMA DI SERVIZIO M/M/∞
λn = λ
(n = 0, 1, . . .),
̺=
λ
<1
2µ
q0 =
1−̺
,
1+̺
λ∗ = λ
qn = 2
2̺
,
1 − ̺2
1−̺ n
̺
1+̺
2 ̺2
1+̺
E(W ) =
(n = 2, 3, . . .)
(n = 1, 2, . . .)
(formula C di Erlang)
1
µ (1 − ̺2 )
(frequenza media di arrivo per unità di tempo)
E(Ns ) = λ∗ E(S) = λ E(S) =
f =
µn = 2 µ
(condizione di equilibrio statistico)
C(2, λ/µ) = P (N ≥ 2) =
E(N ) =
µ1 = µ,
53
λ
E(Ns )
=
2
2µ
τ = µ E(Ns ) = λ
λ
µ
(numero medio di servitori occupati)
(coefficiente di utilizzazione del sistema)
(throughput del sistema)
Tabella 3.4: Alcuni parametri prestazionali del sistema di servizio M/M/2.
3.8
Sistema di servizio M/M/∞
Consideriamo un sistema di servizio a capacità infinita con un’unica fila di attesa
e infiniti servitori. Supponiamo che i tempi di interarrivo siano indipendenti
e distribuiti esponenzialmente con valore medio 1/λ e che i tempi di servizio
per ogni servitore siano indipendenti e distribuiti esponenzialmente con valore
medio 1/µ. Poiché esistono infiniti servitori un utente che arriva può essere
direttamente servito, ossia il suo tempo di attesa nel sistema è uguale al suo
tempo di servizio. Tale sistema è noto in letteratura come sistema M/M/∞ ed è
descrivibile mediante un processo di nascita morte {N (t), t ≥ 0} caratterizzato
da frequenze:
λn = λ
(n = 0, 1, . . .)
µn = n µ
(n = 1, 2, . . .).
(3.41)
Tale sistema costituisce una buona approssimazione di molti sistemi reali di tipo
self–service nei quali un utente che arriva è direttamente servito. Esempi tipici
sono grandi parcheggi, cinema, supermarket, . . .
Il sistema M/M/∞ raggiunge sempre una situazione di equilibrio statistico
e si ha
n λo
1 λ n
(n = 0, 1, . . .).
(3.42)
exp −
qn =
n! µ
µ
La (3.42) è una distribuzione di Poisson di parametro λ/µ. Pertanto E(N ) =
E(Ns ) = λ/µ.
A.G. Nobile
54
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
In condizioni di equilibrio statistico, il throughput del sistema M/M/∞ è
τ = µ E(Ns ) = λ,
ossia la frequenza con cui gli utenti lasciano con successo il sistema M/M/∞
corrisponde alla frequenza di arrivo degli utenti nel sistema.
Alcuni parametri prestazionali del sistema M/M/∞ sono indicati in Tabella 3.5.
λn = λ
(n = 0, 1, . . .)
µn = n µ
λ
1 λ n
exp −
qn =
,
n! µ
µ
E(N ) = E(Ns ) =
τ = µ E(Ns ) = λ
λ
,
µ
(n = 1, 2, . . .)
(n = 0, 1, . . .)
E(W ) = E(S) =
1
µ
(throughput del sistema)
Tabella 3.5: Alcuni parametri prestazionali del sistema di servizio M/M/∞.
Anche per il sistema M/M/∞ sussiste il Teorema 3.4 di Burke. Burke ha
anche dimostrato che tra tutti i sistemi di servizio con disciplina FIFO, i sistemi
M/M/1, M/M/s e M/M/∞ sono gli unici sistemi di servizio che godono di
questa proprietà, ossia sono tali che il processo di output è un processo di
Poisson di parametro λ, dove λ è il parametro del processo di Poisson di input.
3.9
Applicazioni
I campi di applicazione della teoria delle file di attesa sono numerosi. Alcuni
esempi in cui sono presenti file di attese sono i seguenti:
- gli utenti in banca o all’ufficio postale;
- le persone in attesa di un taxi e anche le chiamate ad un servizio di radiotaxi;
- gli aerei in attesa di decollare o di atterrare;
- i componenti in attesa di essere lavorati;
- le macchine da riparare in un’officina;
- i progetti di legge in parlamento.
Ne consegue che i risultati della teoria delle file di attesa trovano applicazione
in molteplici settori industriali e dei servizi, quali:
- sistemi di comunicazione e di trasmissione dati;
A.G. Nobile
3.9. APPLICAZIONI
55
- sistemi di elaborazione;
- sistemi di trasporto;
- sistemi di produzione, catene di montaggio;
- servizi (ospedali, aeroporti, banche, uffici postali, . . .).
La teoria delle file di attesa può fornire il suo apporto anche nella gestione
delle azioni della vita quotidiana, come, ad esempio, nell’utilizzo di macchine erogatrici di biglietti di prenotazione per prestazioni ambulatoriali o visite
specialistiche presso centri ospedalieri oppure per la richiesta di servizi all’ufficio postale o in banca. In tal caso, il numero di prenotazione offre una stima
ragionevole del tempo di attesa prima di ricevere il servizio. In base a tale informazione l’utente può decidere di occupare il tempo di attesa per svolgere altre
attività, evitando cosı̀ di trascorrere inutilmente del tempo.
A.G. Nobile
56
A.G. Nobile
CAPITOLO 3. SINGOLE RISORSE DELLA RETE
Capitolo 4
Analisi di reti di code
4.1
Introduzione
Nel Capitolo 3 abbiamo considerato sistemi di servizio caratterizzati da un’unica
risorsa costituita da un centro di attesa e da un centro di servizio con uno o più
servitori.
L’obiettivo della teoria delle reti di code è quello di costruire dei modelli
matematici di tipo probabilistico che permettano di analizzare e valutare le
prestazioni delle reti oltre ad individuare eventuali correttivi, se necessari, atti
a porre rimedio ai vari problemi di conflitto che si possono verificare quando si
considerano insiemi di risorse interconnesse tra loro.
4.2
Descrizione di una rete di code
Supponiamo che la rete di code sia costituita da R risorse disponibili, numerate
da 1 a R. Per ogni i = 1, 2, . . . , R sia {Ni (t), t ≥ 0} un processo stocastico
unidimensionale, dove Ni (t) rappresenta il numero di utenti presenti nella iesima risorsa al tempo t. Quindi Ni (t) è la somma del numero di utenti nella fila
di attesa più quelli in servizio nella i-esima risorsa al tempo t (i = 1, 2, . . . , R).
Una rete di code con R risorse disponibili può essere modellata con un processo
stocastico R-dimensionale {N(t), t ≥ 0}, con N(t) = (N1 (t), N2 (t), . . . , NR (t)).
In ogni istante di tempo t la rete può trovarsi in uno stato specificato da
una R-upla (n1 , n2 , . . . , nR ), dove ni (i = 1, 2, . . . , R) denota il numero di utenti
presenti nella i-esima risorsa al tempo t. Se la rete è chiusa e contiene K utenti
allora le componenti del vettore (n1 , n2 , . . . , nR ) debbono anche soddisfare la
condizione n1 + n2 + . . . + nR = K.
Denotiamo con
p(n1 , n2 , . . . , nR , t) = P {N1 (t) = n1 , N2 (t) = n2 , . . . , NR (t) = nR }
(ni = 0, 1, . . . ; i = 1, 2, . . . , R)
57
(4.1)
58
CAPITOLO 4.
ANALISI DI RETI DI CODE
la probabilità che al tempo t nella rete siano presenti n1 utenti nella prima
risorsa, n2 utenti nella seconda risorsa, . . ., nR utenti nella R-esima risorsa.
La conoscenza delle probabilità congiunte (4.1) permette di determinare le
probabilità marginali
pi (k, t) = P {Ni (t) = k}
(k = 0, 1, . . .),
(4.2)
ossia la probabilità che al tempo t siano presenti k utenti nella i-esima risorsa
della rete (i = 1, 2, . . . , R).
Per la maggior parte delle reti di code le probabilità (4.1) e (4.2) sono molto
difficili da calcolare. Si preferisce quindi analizzare il comportamento delle reti
di code nella situazione di equilibrio statistico. A tal fine sia Ni la variabile
aleatoria che descrive il numero di utenti presenti nella i-esima risorsa nella
situazione di equilibrio statistico (i = 1, 2, . . . , R). Quindi, Ni è la somma del
numero di utenti nella fila di attesa e di quelli in servizio nella i-esima risorsa
(i = 1, 2, . . . , R) in condizioni di equilibrio statistico. Denotiamo con
q(n1 , n2 , . . . , nR ) = P {N1 = n1 , N2 = n2 , . . . , NR = nR }
= lim p(n1 , n2 , . . . , nR , t)
(ni = 0, 1, . . . ; i = 1, 2, . . . , R)
t→+∞
(4.3)
la probabilità che in condizioni di equilibrio statistico nella rete siano presenti
n1 utenti nella prima risorsa, n2 utenti nella seconda risorsa, . . ., nR utenti
nella R-esima risorsa. Se i limiti (4.3) esistono e non dipendono dalle condizioni
iniziali, la rete raggiunge una situazione di equilibrio statistico e
qi (k) = lim P {Ni (t) = k}
t→+∞
(k = 0, 1, . . .),
(4.4)
denota la probabilità che siano presenti k utenti nella i-esima risorsa della rete.
In particolare, se le variabili aleatorie N1 , N2 , . . ., NR sono indipendenti, allora
per ogni R-upla (n1 , n2 , . . . , nR ) si ha:
q(n1 , n2 , . . . , nR ) = q1 (n1 ) q2 (n2 ) · · · qR (nR ),
(4.5)
ossia la probabilità congiunta si fattorizza come il prodotto delle singole probabilità marginali. Occorre osservare che la relazione (4.5) non può sussistere per una rete chiusa poiché le variabili aleatorie N1 , N2 , . . ., NR non sono
indipendenti.
Le distribuzioni di equilibrio (4.3) e (4.4) permettono di ottenere alcuni indici
di prestazione della rete. In primo luogo dalla distribuzione di equilibrio (4.4)
è possibile calcolare il valore medio E(Ni ) e la varianza Var(Ni ) del numero di
utenti presenti nella i-esima risorsa della rete (i = 1, 2, . . . , R).
Nel caso di reti aperte o miste il numero totale di utenti nella rete è descritto
da una variabile aleatoria, mentre in reti chiuse tale numero è fissato e finito.
Pertanto, nel caso di una rete chiusa contenente K utenti, nella situazione di
equilibrio statistico sussiste la relazione di compatibilità
N1 + N2 + . . . + NR = K.
A.G. Nobile
4.3. LEGGI DI LITTLE
59
Invece, nel caso di una rete aperta o mista, denotiamo con N la variabile
aleatoria che descrive il numero complessivo di utenti presenti nella rete nella
situazione di equilibrio statistico. Sussiste allora la relazione di compatibilità
N = N1 + N2 + . . . + NR ,
(4.6)
che afferma che il numero complessivo di utenti nella rete è la somma degli
utenti presenti nelle varie risorse della rete. Dalla (4.6) per una rete aperta o
mista si ottiene:
E(N ) = E(N1 + N2 + . . . + NR ) = E(N1 ) + E(N2 ) + . . . + E(NR ),
(4.7)
Var(N ) = Var(N1 + N2 + . . . + NR ) =
R
X
Var(Ni ) + 2
R
X
Cov(Ni , Nj ),
i,j=1
i<j
i=1
dove
Cov(Ni , Nj ) = E [Ni − E(Ni )] [Nj − E(Nj )]
= E(N1 N2 ) − E(Ni ) E(Nj )
(i, j = 1, 2, . . . , R; i 6= j)
(4.8)
denota la covarianza tra Ni e Nj . La prima delle (4.7) mostra che in una
rete aperta o mista il numero medio complessivo di utenti è uguale alla somma
dei numeri medi di utenti presenti nelle diverse risorse. La seconda delle (4.7)
permette di valutare la varianza del numero complessivo di utenti in una rete
aperta o mista. In particolare, se le variabili aleatorie N1 , N2 , . . ., NR sono
indipendenti dalla seconda delle (4.7) si ha:
Var(N ) = Var(N1 ) + Var(N2 ) + . . . + Var(NR ),
(4.9)
ossia, nel caso di indipendenza, la varianza del numero di utenti in una rete
aperta o mista è uguale alla somma delle varianze dei numeri di utenti presenti
nelle diverse risorse.
4.3
Leggi di Little
Nella situazione di equilibrio statistico denotiamo inoltre con
λi - frequenza media per unità di tempo degli arrivi nella i-esima risorsa
dall’esterno della rete;
αi - frequenza media complessiva per unità di tempo degli arrivi nella i-esima
risorsa considerando sia gli arrivi da altre risorse della rete sia gli arrivi
provenienti dall’esterno;
µi - frequenza media per unità di tempo delle partenze da un generico servitore
nella i-esima risorsa.
A.G. Nobile
60
CAPITOLO 4.
ANALISI DI RETI DI CODE
Ovviamente se la rete è chiusa risulta λ1 = λ2 = . . . = λR = 0.
Possiamo quindi definire l’intensità di traffico ai relativa alla risorsa i-esima:
ai =
αi
µi
(i = 1, 2, . . . , R)
(4.10)
Tale coefficiente rappresenta l’intensità del lavoro che svolge la risorsa i-esima
della rete nella situazione di equilibrio statistico.
Il rapporto tra l’intensità di traffico ai della risorsa i-esima e il numero di
servitori si presenti nel centro di servizio di tale risorsa
̺i =
αi
s i µi
(i = 1, 2, . . . , R)
(4.11)
prende il nome di fattore di utilizzazione della i-esima risorsa della rete. Tale
coefficiente rappresenta l’intensità del lavoro di un generico servitore della iesima risorsa nella situazione di equilibrio statistico.
Affinché il numero di utenti nella fila di attesa della risorsa i-esima non aumenti indefinitamente occorre che ̺i < 1. Per una risorsa con capacità infinita,
̺i può essere quindi interpretato come una misura di congestione della risorsa
i-esima della rete. Nella situazione di equilibrio statistico, una condizione necessaria affinché la rete di code aperta o mista non sia congestionata è quindi
che
̺1 =
α1
< 1,
s 1 µ1
̺2 =
α2
αR
< 1, . . . . . . , ̺R =
< 1.
s 2 µ2
s R µR
(4.12)
Denotiamo inoltre con Wi il tempo di attesa in ogni singola visita di un
utente nella i-esima risorsa (i = 1, 2, . . . , R) in condizioni di equilibrio statistico.
Applicando la prima legge di Little alla risorsa i-esima si ha:
E(Ni ) = αi E(Wi )
(i = 1, 2, . . . , R),
(4.13)
che prende il nome di legge di Little locale poiché relativa alle singole risorse
della rete. Se la rete è aperta o mista, utilizzando (4.13) nella prima delle (4.7),
si ottiene:
E(N ) = E(N1 ) + E(N2 ) + . . . + E(NR ) =
R
X
αi E(Wi ).
(4.14)
i=1
Inoltre, se la rete è aperta o mista, nella condizione di equilibrio statistico la
legge di Little globale per l’intera rete di code, illustrata in Figura 4.1, afferma
che
R
i
hX
(4.15)
λi E(W ),
E(N ) =
i=1
ossia il numero medio di utenti presenti nella rete è uguale al prodotto della
somma delle frequenze degli arrivi dall’esterno della rete alle varie risorse e del
tempo medio di attesa di un utente nella rete.
A.G. Nobile
4.4. RETI DI CODE MARKOVIANE
λ1
λ2
λR−1
λR
61
HH
1
HH
'
$
j
H
R
·········
·········
X
·· ·· ·· ·· ·· ·· ·· ·· ··
·· ·· ·· ·· ·· ·· ·· ·· ··
λi E(W )
E(N ) =
i=1
P%
*&
PP
PP
q
P
Figura 4.1: Legge di Little globale per una rete aperta o mista.
Se la rete è aperta o mista, dalle (4.14) e (4.15) si ricava una relazione che
permette di esprimere il tempo medio di attesa di un utente nella rete in funzione
dei tempi medi di attesa in ogni singola visita di un utente nelle singole risorse
della rete:
E(W ) =
R
R
−1 X
X
E(N )
αi E(Wi ).
λi
=
λ1 + λ2 + . . . + λR
i=1
i=1
(4.16)
Occorre infine sottolineare che la struttura di interconnessione tra gli stati
della rete, le discipline di servizio, le distribuzioni dei tempi di interarrivo degli
utenti e dei tempi di servizio per servitore nelle varie risorse e le classi in cui sono
suddivisi gli utenti possono fare aumentare considerevolmente la complessità
della descrizione probabilistica delle reti di code.
4.4
Reti di code markoviane
Le più semplici reti di code sono le reti markoviane, molto utilizzate in diversi
contesti applicativi.
Una rete di code, costituita da R risorse disponibili, si dice markoviana se
è descrivibile mediante una catena di Markov omogenea continua nel tempo, i
cui stati sono specificati da R-uple n = (n1 , n2 , . . . , nR ), essendo ni il numero
di utenti presenti nella i-esima risorsa.
Il diagramma degli stati di una rete di code markoviana può essere rappresentato mediante un grafo orientato ed etichettato. Ogni nodo del grafo definisce
un possibile stato della rete, ossia una delle R-uple (n1 , n2 , . . . , nR ) contenente i
numeri di utenti presenti nelle diverse risorse della rete. Gli archi, invece, individuano le possibili transizioni tra gli stati della rete, ossia le possibili transizioni
degli utenti tra le risorse. Infine, le etichette degli archi individuano le frequenze
di transizione tra gli stati della rete.
Il principale obiettivo nell’analisi delle reti di code markoviane consiste nella
determinazione della distribuzione di equilibrio (4.3), che permette poi di otA.G. Nobile
62
CAPITOLO 4.
ANALISI DI RETI DI CODE
tenere gli indici di prestazione locali (relativi ad una singola risorsa) e globali
(ossia relativi all’insieme di risorse) della rete.
Il principio di bilanciamento è un utile metodo di analisi per determinare la
distribuzione di equilibrio di una rete markoviana. Infatti, nella situazione di
equilibrio statistico denotiamo con q(n) la probabilità che la rete di Markov con
R risorse disponibili si trovi nello stato n = (n1 , n2 , . . . , nR ) e denotiamo con
γ(m, n) la frequenza di transizione da un generico stato m ad uno stato n. Per
ogni stato n della rete assumiamo che valga il principio di bilanciamento che
afferma: “il flusso medio con cui il processo entra nello stato n deve uguagliare
il flusso medio con cui il processo esce da tale stato”.
m1 H γ(m , n)
H 1
HH
HH
j γ(m2 , n)m2
n
..
*
γ(mk , n)
.
mk ..
.
m1
γ(n, m2)
n
m2
(m 6= n)
H γ(n, mk ) ..
HH
.
HH j mk
H
..
.
γ(n, m1 ) *
Figura 4.2: Frequenze con cui la rete entra nello stato n e con cui esce da tale stato.
In Figura 4.2 sono illustrate illustrate le frequenze quando il processo entra nello
stato n e quando il processo esce dallo stato n. Si nota che quando il processo è
in uno stato m , con m 6= n, la frequenza di transizione nello stato n è γ(m, n),
cosı̀ che
X
q(m) γ(m, n)
(4.17)
m6=n
è il flusso medio con cui la rete entra nello stato n. Analogamente, quando il
processo è in uno stato n, la frequenza di transizione in uno stato m è γ(n, m)
quando m 6= n, cosı̀ che
X
q(n)
γ(n, m)
(4.18)
m6=n
è il flusso medio con cui il processo esce dallo stato n. Ricordando che frequenze
di transizione soddisfano la proprietà
γ(n, n) =
X
γ(n, m),
(4.19)
m6=n
dalla (4.18) segue che il flusso medio con cui il processo esce dallo stato n è
q(n) γ(n, n)
A.G. Nobile
(4.20)
4.4. RETI DI CODE MARKOVIANE
63
Uguagliando il flusso medio con cui la rete di Markov entra nello stato n con il
flusso medio con cui la rete esce dallo stato n, per ogni possibile stato della rete
si ottengono le equazioni di bilanciamento:
X
−q(n) γ(n, n) +
q(m) γ(m, n) = 0.
(4.21)
m6=n
Per determinare l’unica soluzione (con componenti non tutte nulle) del sistema
(4.21) occorre utilizzare le condizioni:
X
q(n) ≥ 0,
q(n) = 1,
(4.22)
n
con n = (n1 , n2 , . . . , nR ).
Esempio 4.1 Consideriamo una rete di code costituita da due risorse collegate
in serie, ognuna con unico servitore, schematizzata nella FIgura 4.3.
λ
-
µ1
µ2
Figura 4.3: Rete di code con due risorse collegate in serie ognuna con unico
servitore
Il sistema consiste di due sistemi di servizio dotati ognuno di un centro di
attesa e un centro di servizio. Assumiamo che gli utenti arrivino al sistema
secondo un processo di Poisson di parametro λ. I tempi di interarrivo, ossia
i tempi che intercorrono tra due arrivi successivi, sono quindi indipendenti e
distribuiti esponenzialmente con valore medio 1/λ. Questi utenti costituiscono
l’input alla prima risorsa. La prima risorsa è costituita da un centro di attesa a
capacità illimitata e un centro di servizio dotato di un unico servitore. Supponiamo che i tempi di servizio, ossia i tempi necessari per soddisfare le richieste
di ogni utente nella prima risorsa, siano indipendenti e distribuiti esponenzialmente con valore medio 1/µ1 . Gli utenti che escono dalla prima risorsa, essendo
stati serviti, costituiscono l’input alla seconda risorsa. Anche la seconda risorsa
è costituita da un centro di attesa a capacità illimitata e un centro di servizio
dotato di un unico servitore. Un utente attende in fila di attesa se il servitore
della seconda risorsa è occupato. Supponiamo che i tempi di servizio, ossia i
tempi necessari per soddisfare le richieste di ogni utente nella seconda risorsa,
siano indipendenti e distribuiti esponenzialmente con valore medio 1/µ2 .
Il sistema può essere modellato con una catena di Markov omogenea continua
nel tempo {N(t), t ≥ 0}, i cui stati sono specificati da coppie (n1 , n2 ), con
n1 = 0, 1, . . . e n2 = 0, 1, . . ., dove ni (i = 1, 2) denota il numero di utenti
presenti nella i-esima risorsa (ossia la somma del numero di utenti nella fila di
attesa più quelli in servizio) al tempo t. Se N1 (t) denota il numero di utenti
presenti nella prima risorsa al tempo t e N2 (t) denota il numero di utenti presenti
nella seconda risorsa al tempo t, allora N(t) = (N1 (t), N2 (t)).
A.G. Nobile
64
CAPITOLO 4.
ANALISI DI RETI DI CODE
Z
Z
6 ZZ
6
Z
Z
λ
λ
λ
µ1ZZ
µ1 Z
Z
'$ Z
'$
'$
~
Z
ZZ
~
2, 0 2, 1 2, 2
µ2
µ2
µ2
&%
&%
&%
Z
Z
Z
Z
6
6 Z
6
Z
Z
Z
Z
λ
λ
λ
µZ
µ1ZZ
µ1ZZ
1 Z
Z
Z
'$ Z
'$
'$
~
Z
~
Z
~
Z
6
1, 1
1, 2 µ2
µ2
µ2
&%
&%
&%
Z
Z
Z
Z
6 Z
6 Z
6
Z
Z
Z
λ
λ
λ
µ1 Z
µ1 Z
µ1 Z
Z
Z
Z
'$ ZZ
~'$ ZZ
~'$ ZZ
~
0, 0
0, 1
0, 2
µ2
µ2
µ2
&%
&%
&%
1, 0
Figura 4.4: Grafo di transizione della rete con due risorse disponibili collegate
in serie.
Denotiamo con
p(n1 , n2 , t) = P {N1 (t) = n1 , N2 (t) = n2 }
(n1 , n2 = 0, 1, . . .)
(4.23)
la probabilità che nella rete al tempo t siano presenti n1 utenti nella prima
risorsa e n2 utenti nella seconda risorsa. Inoltre denotiamo con
q(n1 , n2 ) = lim p(n1 , n2 , t)
t→+∞
(n1 , n2 = 0, 1, . . .)
(4.24)
la probabilità che nel sistema siano presenti n1 utenti nella prima risorsa e n2
utenti nella seconda risorsa nella situazione di equilibrio statistico. Se i limiti
(4.24) esistono e non dipendono dalle condizioni iniziali, la rete con due risorse
disponibili collegate in serie raggiunge una situazione di equilibrio statistico.
Il grafo di transizione per la rete di code con due risorse collegate in serie
è illustrato in Figura 4.4. In questo grafo ogni stato è rappresentato da un
cerchietto (nodo) etichettato con la coppia n1 , n2 . Gli archi che collegano i nodi
mostrano quali sono le possibili transizioni di stato e sono etichettati con le
frequenze di transizione (ossia i parametri di arrivo o di servizio).
Se la rete con due risorse disponibili collegate in serie ha raggiunto la situazione di equilibrio statistico, allora per ogni stato (n1 , n2 ) del sistema (n1 , n2 =
0, 1, . . .) assumiamo che valga il principio di bilanciamento.
A.G. Nobile
4.4. RETI DI CODE MARKOVIANE
'$
n1 , n2 − 1
65
'$
n1 + 1,
n2 − 1
&%
&%
J
] µ
µ1 J
2
J
J '$
'$
'$
/
J
λ
λ
- n1 , n2
- n1 + 1, n2
n1 − 1, n2
&%
&%
&%
I
@
µ
2
@
@
@
'$
'$
µ1
n1 − 1,
n2 + 1
&%
n1 , n2 + 1
&%
Figura 4.5: Grafo di transizione per lo stato (n1 , n2 ) nella rete con due risorse
collegate in serie ognuna con unico servitore.
Uguagliando il flusso medio entrante nello stato (0, 0) e il flusso medio uscente
da tale stato, si ha
λ q(0, 0) = µ2 q(0, 1).
(4.25)
Se n1 = 1, 2, . . ., uguagliando il flusso medio entrante nello stato (n1 , 0) e il
flusso medio uscente da tale stato, si ha:
(λ + µ1 ) q(n1 , 0) = µ2 q(n1 , 1) + λ q(n1 − 1, 0)
(n1 = 1, 2, . . .).
(4.26)
Se invece n2 = 1, 2, . . ., uguagliando il flusso medio entrante nello stato (0, n2 )
e il flusso medio uscente da tale stato, si ottiene:
(λ + µ2 ) q(0, n2 ) = µ1 q(1, n2 − 1) + µ2 q(0, n2 + 1)
(n2 = 1, 2, . . .). (4.27)
In Figura 4.5 è invece preso in esame il generico stato (n1 , n2 ) con n1 , n2 =
1, 2, . . . Uguagliando il flusso medio entrante nello stato (n1 , n2 ) e il flusso medio
uscente da tale stato, risulta:
(λ + µ1 + µ2 ) q(n1 , n2 ) = µ1 q(n1 + 1, n2 − 1) + µ2 q(n1 , n2 + 1)
+λ q(n1 − 1, n2 )
(n1 , n2 = 1, 2, . . .). (4.28)
Le equazioni di bilanciamento (4.25), (4.26), (4.27), (4.28) debbono essere risolte
imponendo che valga la condizione
+∞ X
+∞
X
n1 =0 n2 =0
A.G. Nobile
q(n1 , n2 ) = 1.
66
CAPITOLO 4.
ANALISI DI RETI DI CODE
È facile dimostrare per diretta sostituzione che la soluzione delle equazioni di
bilanciamento è
q(n1 , n2 ) = P (N1 = n1 , N2 = n2 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2
(n1 , n2 = 0, 1, . . .)
(4.29)
dove ̺1 = λ/µ1 e ̺2 = λ/µ2 . La condizione affinché la rete con due risorse
disponibili collegate in serie raggiunga una situazione di equilibrio statistico è
̺1 < 1 e ̺2 < 1, ossia λ < min(µ1 , µ2 ). La (4.29) fornisce una soluzione in
forma prodotto.
♦
Come si evince nell’Esempio 4.1, anche per modelli di reti di code markoviane
molto semplici lo spazio degli stati cresce in modo esponenziale nel numero di
stati rendendo il metodo di analisi basato sul principio di bilanciamento spesso
intrattabile da un punto di vista computazionale. Tuttavia esiste una classe
di reti markoviane particolarmente semplici da analizzare che consentono di
ottenere efficienti algoritmi risolutivi. Tali reti di code markoviane sono dette
separabili o che ammettono una soluzione in forma prodotto.
Il prototipo di questi sistemi è la rete di Jackson scoperta da James R.
Jackson nel 1957. Baskett, Chandy, Muntz e Palacios hanno poi esteso nel
1975 il modello di Jackson. Reiser e Lavenberg hanno poi introdotto nel 1980
gli algoritmi per l’analisi del valore medio (MVA) che permettono di analizzare
vari modelli di reti di code.
Nei prossimi capitoli sarà dedicata particolare attenzione alla classe delle
reti di code che ammettono una soluzione in forma prodotto e all’analisi delle
loro prestazioni.
A.G. Nobile
Capitolo 5
Reti tandem e acicliche
5.1
Introduzione
Una rete di code aperta è detta aciclica se il grafo orientato associato alle risorse
della rete è aciclico. In una rete di code aciclica gli utenti non possono usufruire
più di una volta del servizio offerto da una risorsa. In una rete aciclica le prime
risorse possono ricevere arrivi soltanto dall’esterno, mentre le risorse successive
possono ricevere arrivi sia dalle risorse precedenti sia dall’esterno della rete. Nel
seguito supporremo anche che i tempi di servizio per servitore in ogni singola
risorsa della rete siano distribuiti esponenzialmente e che gli arrivi dall’esterno
si verifichino secondo processi di Poisson di parametri costanti.
Le più semplici reti di code acicliche sono le reti tandem, introdotte da
Jackson nel 1954, costituite da un insieme finito di sistemi di servizio collegati
in serie. Le risorse della rete tandem sono quindi organizzate in sequenza. Ogni
risorsa è dotata di un centro di attesa e di un centro di servizio con uno o più
servitori identici che lavorano in parallelo. Ogni utente (unità) che entra nella
rete attraversa le singole risorse in sequenza ed è servito in ognuno dei centri
di servizio delle varie risorse. Se il centro di servizio di una risorsa è occupato,
ossia se tutti i servitori sono occupati, l’utente si accoda nel centro di attesa di
quella risorsa.
In una rete tandem si assume che il centro di attesa di ogni singola risorsa
sia a capacità infinita in maniera tale da contenere un numero qualsiasi di utenti
in attesa. Si suppone inoltre che la prima risorsa può ricevere arrivi soltanto
dall’esterno, mentre nelle successive risorse il processo di input corrisponde al
processo di output della risorsa precedente.
Le reti tandem sono utilizzate per modellare reti di code per il controllo di
risorse in sequenza, dove in ogni risorsa sono svolte operazioni (servizi) differenti
quali, ad esempio, smontaggio, ispezione, riparazione, assemblaggio e testing.
67
68
5.2
CAPITOLO 5. RETI TANDEM E ACICLICHE
Rete tandem: due risorse, unico servitore
Consideriamo una rete tandem con due risorse ognuna con unico servitore
schematizzata nella Figura 5.1.
Risorsa 1
λ
-
λ µ1
Risorsa 2
µ2
Figura 5.1: Rete tandem con due risorse ognuna con unico servitore
Nell’Esempio 4.1 utilizzando il principio di bilanciamento abbiamo mostrato
che la distribuzione di equilibrio si presenta in forma prodotto, ossia risulta
q(n1 , n2 ) = P (N1 = n1 , N2 = n2 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2
(n1 , n2 = 0, 1, . . .)
(5.1)
dove ̺1 = λ/µ1 e ̺2 = λ/µ2 . La condizione affinché la rete tandem raggiunga
una situazione di equilibrio statistico è ̺1 < 1 e ̺2 < 1, ossia λ < min(µ1 , µ2 ).
Alla distribuzione di equilibrio (5.1) è possibile giungere senza far ricorso alle
equazioni di bilanciamento. Osserviamo infatti che gli utenti arrivano alla prima
risorsa secondo un processo di Poisson di parametro λ e i tempi di servizio sono
indipendenti e distribuiti esponenzialmente con valore medio 1/µ1 . La prima
risorsa della rete tandem può quindi essere descritta con un sistema di servizio
M/M/1 caratterizzato da intensità di traffico ̺1 = λ/µ1 . Segue che la prima
risorsa raggiunge una situazione di equilibrio statistico se ̺1 < 1 e la probabilità
di avere k utenti in tale risorsa è
q1 (k) = P (N1 = k) = (1 − ̺1 ) ̺k1
(k = 0, 1, . . .).
(5.2)
Il Teorema 3.3 di Burke afferma che il processo di output da un sistema di servizio M/M/1 in condizioni di equilibrio statistico è un processo di Poisson con
lo stesso parametro del processo di Poisson di input. Facendo uso di questo
risultato, in condizioni di equilibrio statistico il processo delle partenze dalla
prima risorsa è un processo di Poisson di parametro λ. In condizioni di equilibrio statistico, l’input alla seconda risorsa della rete tandem è quindi anche
un processo di Poisson di parametro λ e i tempi di servizio sono indipendenti e
distribuiti esponenzialmente con valore medio 1/µ2 . Pertanto, in condizioni di
equilibrio statistico, la seconda risorsa della rete tandem può essere descritta con
un sistema di servizio M/M/1 caratterizzato da intensità di traffico ̺2 = λ/µ2 .
La seconda risorsa raggiunge una situazione di equilibrio statistico se ̺2 < 1 e
la probabilità di avere k utenti in tale risorsa è
q2 (k) = P (N2 = k) = (1 − ̺2 ) ̺k2
(k = 0, 1, . . .).
(5.3)
La rete tandem con due risorse ognuna con singolo servitore può essere quindi
rappresentata con la notazione M/M/1 → M/M/1.
A.G. Nobile
5.2. RETE TANDEM: DUE RISORSE, UNICO SERVITORE
69
Dalle (5.1), (5.2) e (5.3) segue che
q(n1 , n2 ) = q1 (n1 ) q2 (n2 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2 ,
(5.4)
ossia la probabilità congiunta q(n1 , n2 ) è il prodotto delle probabilità marginali
q1 (n1 ) e q2 (n2 ). Nella situazione di equilibrio statistico quindi le variabili aleatorie N1 e N2 sono indipendenti e le due risorse possono essere riguardate come
due sistemi M/M/1 indipendenti. Affinché la rete tandem non sia congestionata
occorre che ̺1 < 1 e ̺2 < 1, ossia λ < min(µ1 , µ2 ).
Ricordando i risultati della Tabella 3.1, nella situazione di equilibrio statistico il numero medio di utenti presenti nelle due singole risorse è
E(N1 ) =
λ
̺1
=
,
1 − ̺1
µ1 − λ
E(N2 ) =
λ
̺2
=
·
1 − ̺2
µ2 − λ
(5.5)
Denotando con N la variabile aleatoria che descrive il numero complessivo di
utenti presenti nella rete tandem con due risorse ognuna con unico servitore, se
λ < min(µ1 , µ2 ) il numero medio di utenti presenti nella rete nella situazione di
equilibrio statistico è:
E(N ) = E(N1 ) + E(N2 ) =
̺2
λ
λ
̺1
+
=
+
·
1 − ̺1
1 − ̺2
µ1 − λ µ2 − λ
(5.6)
Utilizzando la prima legge di Little locale segue che nella situazione di equilibrio
statistico i tempi medi di attesa degli utenti nelle due singole risorse sono:
E(W1 ) =
1
1
E(N1 ) =
,
λ
µ1 − λ
E(W2 ) =
1
1
E(N2 ) =
λ
µ2 − λ
(5.7)
Ricordando poi che entrambe le risorse della rete vengono visitate una sola
volta, se λ < min(µ1 , µ2 ) il tempo medio di attesa degli utenti nella rete nella
situazione di equilibrio statistico è:
E(W ) = E(W1 ) + E(W2 ) =
1
1
+
·
µ1 − λ µ2 − λ
(5.8)
Per la rete di code tandem con due risorse, ognuna con singolo servitore, la legge
di Little globale diventa:
E(N ) = λ E(W ) = λ E(W1 ) + E(W2 ) .
(5.9)
È anche possibile ottenere la distribuzione di probabilità della variabile aleatoria
N . Infatti, sfruttando l’indipendenza di N1 e N2 e ricordando le (5.2) e (5.3),
si ha:
n
X
P (N = n) = P (N1 + N2 = n) =
P (N1 = k, N2 = n − k)
k=0
=
n
X
P (N1 = k) P (N2 = n − k) =
k=0
= (1 − ̺1 ) (1 − ̺2 ) ̺n2
(1 − ̺1 ) ̺k1 (1 − ̺2 ) ̺2n−k
k=0
n X
̺1 k
k=0
A.G. Nobile
n
X
̺2
.
(5.10)
70
CAPITOLO 5. RETI TANDEM E ACICLICHE
Se µ1 = µ2 , ossia ̺1 = ̺2 = ̺, dalla (5.10) si ha
P (N = n) = (n + 1) (1 − ̺)2 ̺n
(n = 0, 1, . . .),
(5.11)
mentre se µ1 6= µ2 , ossia ̺1 6= ̺2 , dalla (5.10) invece si ottiene:
P (N = n) = (1 − ̺1 ) (1 − ̺2 )
5.3
̺n+1
− ̺n+1
2
1
̺2 − ̺1
(n = 0, 1, . . .).
(5.12)
Rete tandem: risorse multiple, un servitore
I risultati ottenuti nel Paragrafo 5.2 per una rete tandem con due risorse ognuna
con unico servitore possono essere facilmente estesi ad una rete tandem con R
risorse ognuna con unico servitore. A tal fine consideriamo una rete tandem con
R risorse ognuna con unico servitore, schematizzata nella Figura 5.2.
λ
-
Risorsa 1
.........
λ- . . . . . . . . .
µ1
. . . . . . . . .
λ
-
Risorsa R µR
Figura 5.2: Rete tandem con R risorse ognuna con unico servitore
Alla prima risorsa gli utenti arrivano secondo un processo di Poisson di parametro λ e i tempi di servizio relativi alla i-esima risorsa sono indipendenti e
distribuiti esponenzialmente con valore medio 1/µi (i = 1, 2, . . . , R). Facendo
uso del Teorema 3.3 di Burke, nella situazione di equilibrio statistico il processo
delle partenze da ogni risorsa è un processo di Poisson di parametro λ. In condizioni di equilibrio statistico quindi l’input ad ogni risorsa della rete tandem è
un processo di Poisson di parametro λ.
La rete tandem con R risorse ognuna con unico servitore può quindi essere
rappresentata con la notazione M/M/1 → M/M/1 . . . → M/M/1, ossia ogni
singola risorsa della della rete può essere descritta con un sistema di servizio
M/M/1. Il sistema M/M/1 relativo alla i-esima risorsa è caratterizzato da intensità di traffico ̺i = λ/µi e raggiunge una situazione di equilibrio statistico se
̺i < 1. Ricordando la (3.16), in condizioni di equilibrio statistico la probabilità
di avere k utenti nella i-esima risorsa è
qi (k) = P (Ni = k) = (1 − ̺i ) ̺ki
(k = 0, 1, . . .).
(5.13)
Affinché la rete tandem con R risorse ognuna con singolo servitore non sia congestionata occorre che ̺1 < 1, ̺2 < 1, . . ., ̺R < 1, ossia λ < min(µ1 , µ2 , . . . , µR ).
Nella situazione di equilibrio statistico, la probabilità che nella rete siano
presenti n1 utenti nella prima risorsa, n2 utenti nella seconda risorsa, . . ., nR
utenti nella R-esima risorsa è :
q(n1 , n2 , . . . , nR ) = q1 (n1 ) q2 (n2 ) · · · qR (nR )
= (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2 · · · (1 − ̺R ) ̺nRR ,
A.G. Nobile
(5.14)
5.3. RETE TANDEM: RISORSE MULTIPLE, UN SERVITORE 71
ossia la probabilità congiunta è il prodotto delle probabilità marginali. Quindi,
nella situazione di equilibrio statistico le variabili aleatorie N1 , N2 , . . . , NR sono
indipendenti e le R risorse possono essere riguardate come R sistemi M/M/1
indipendenti.
Ricordando i risultati di Tabella 3.1, nella situazione di equilibrio statistico
il numero medio di utenti presenti nella risorsa i-esima è
E(Ni ) =
λ
̺i
=
1 − ̺i
µi − λ
(i = 1, 2, . . . , R).
(5.15)
Denotando inoltre con N la variabile aleatoria che descrive il numero complessivo di utenti presenti nella rete tandem con R risorse ognuna con unico servitore,
se λ < min(µ1 , µ2 , . . . , µR ) il numero medio di utenti presenti nella rete nella
situazione di equilibrio statistico è:
E(N ) = E(N1 ) + E(N2 ) + . . . + E(NR ) =
R
X
i=1
R
X
̺i
1
=λ
· (5.16)
1 − ̺i
µ −λ
i=1 i
Utilizzando poi la prima legge di Little locale segue che nella situazione di
equilibrio statistico il tempo medio di attesa degli utenti nella i-esima risorsa è:
E(Wi ) =
1
1
E(Ni ) =
λ
µi − λ
(i = 1, 2, . . . , R)
(5.17)
Ricordando che ognuna delle R risorse della rete è visitata un’unica volta, se
λ < min(µ1 , µ2 , . . . , µR ) il tempo medio di attesa degli utenti nella rete è:
E(W ) = E(W1 ) + E(W2 ) + . . . + E(WR ) =
R
X
i=1
1
·
µi − λ
(5.18)
La legge di Little globale per la rete di code tandem con R risorse, ognuna con
singolo servitore, diventa:
E(N ) = λ E(W1 ) + E(W2 ) + . . . + E(WR ) = λ E(W ).
(5.19)
Se µ1 = µ2 = . . . = µR , ossia ̺1 = ̺2 = . . . = ̺R = ̺, è anche possibile ottenere
la distribuzione di probabilità della variabile aleatoria N . Infatti, denotando
con
D = {(n1 , n2 , . . . , nR ) : n1 + n2 + . . . + nR = n}
e ricordando (5.14) si ha:
P (N = n) = P (N1 + N2 + . . . + NR = n) =
= (1 − ̺)R
X
D
A.G. Nobile
X
q(n1 , n2 , . . . , nR )
D
̺n1 +n2 +...+nR = (1 − ̺)R ̺n
X
D
1
(5.20)
72
CAPITOLO 5. RETI TANDEM E ACICLICHE
Osserviamo ora che la sommatoria al lato destro della (5.20) è la cardinalità
dell’insieme D e quindi, facendo ricorso al calcolo combinatorio, si può interpretare come il numero di modi in cui è possibile disporre n oggetti tra loro
indistinguibili in R urne, ossia
n+R−1
·
R−1
La (5.20) pertanto conduce a
n+R−1
P (N = n) =
(1 − ̺)R ̺n
R−1
(n = 0, 1, . . .).
(5.21)
Si noti che se la rete è costituita da due sole risorse, ponendo R = 2 in (5.21) si
ottiene la (5.11).
Esempio 5.1 Consideriamo la rete tandem costituita da R risorse ognuna con
unico servitore illustrata in Figura 5.2. In condizioni di equilibrio la probabilità
che nella rete siano presenti zero utenti, ossia la probabilità che non sono presenti
utenti in tutte le risorse, è
P (N = 0) = q(0, 0, . . . , 0) = q1 (0) q2 (0) · · · qR (0) = (1 − ̺1 )(1 − ̺2 ) · · · (1 − ̺R ),
mentre la probabilità che nella rete sia presente un unico utente è
P (N = 1) = q(1, 0, . . . , 0) + q(0, 1, . . . , 0) + . . . + q(0, 0, . . . , 1)
= (1 − ̺1 )(1 − ̺2 ) · · · (1 − ̺R )(̺1 + ̺2 + . . . + ̺R ).
(5.22)
♦
5.4
Rete tandem: risorse multiple, più servitori
Consideriamo una rete tandem con R risorse ognuna con più servitori identici
che lavorano in parallelo, schematizzata nella Figura 5.3.
In particolare, se s1 = s2 = . . . = sR = 1 la rete tandem considerata in
Figura 5.3 si identifica con la rete tandem illustrata in Figura 5.2 e analizzata
nel Paragrafo 5.3.
Alla prima risorsa gli utenti arrivano secondo un processo di Poisson di parametro λ e i tempi di servizio per servitore relativi alla i-esima risorsa sono indipendenti e distribuiti esponenzialmente con valore medio 1/µi (i = 1, 2, . . . , R).
Facendo uso del Teorema 3.4 di Burke, nella situazione di equilibrio statistico
il processo delle partenze da ogni risorsa è un processo di Poisson di parametro
λ. In condizioni di equilibrio statistico l’input ad ogni risorsa della rete tandem
è quindi un processo di Poisson di parametro λ.
In una rete tandem con R risorse ognuna con vari servitori che lavorano in
parallelo, la risorsa i-esima della rete può essere descritta con un sistema di
servizio M/M/si (i = 1, 2, . . . , R) e quindi l’intera rete può essere rappresentata
A.G. Nobile
5.4. RETE TANDEM: RISORSE MULTIPLE, PIÙ SERVITORI 73
Risorsa 1
λ
-
-
@
C@
C
C
C
µm
1 1
µm
1 2
C
C
···
JC
λ
JC - · · · λ µm
1
···
s1
µm
1
Risorsa R
m1
µR
-
@
C@
C
C
C
m2
µR
C
C
\C
\C
m µR
msR µR
-
Figura 5.3: Rete tandem con R risorse ognuna con servitori identici che lavorano
in parallelo
con la notazione M/M/s1 → M/M/s2 . . . → M/M/sR . Il sistema M/M/si
relativo alla i-esima risorsa è caratterizzato da fattore di utilizzazione del sistema
̺i = λ/(si µi ) e raggiunge una situazione di equilibrio statistico se ̺i < 1.
Ricordando la (3.35), in condizioni di equilibrio statistico la probabilità di avere
k utenti nella i-esima risorsa è
qi (0) =
i −1
hsX
(λ/µi )n
(λ/µi )si i−1
,
+
n!
si ! (1 − ̺i )
n=0

(λ/µi )k


, k = 1, 2, . . . , si

 qi (0)
k!
qi (k) =

(λ/µi )k


, k = si + 1, si + 2, . . . .
 qi (0)
si ! sik−si
(5.23)
Affinché la rete tandem con R risorse ognuna con vari servitori che lavorano in
parallelo non sia congestionata occorre che ̺1 < 1, ̺2 < 1, . . ., ̺R < 1, ossia
λ < min(s1 µ1 , s2 µ2 , . . . , sR µR ).
Nella situazione di equilibrio statistico, la probabilità che nella rete siano
presenti n1 utenti nella prima risorsa, n2 utenti nella seconda risorsa, . . ., nR
utenti nella R-esima risorsa è :
q(n1 , n2 , . . . , nR ) = q1 (n1 ) q2 (n2 ) · · · qR (nR ),
(5.24)
ossia la probabilità congiunta è il prodotto delle probabilità marginali. Quindi,
nella situazione di equilibrio statistico le variabili aleatorie N1 , N2 , . . . , NR sono
indipendenti.
Ricordando i risultati della Tabella 3.3, nella situazione di equilibrio statistico il numero medio di utenti presenti nella risorsa i-esima è

λ


si = 1

µi − λ
(i = 1, 2, . . . , R) (5.25)
E(Ni ) =

̺i
λ


+
C si , λ/µi si = 2, 3, . . .
µi
1 − ̺i
A.G. Nobile
74
CAPITOLO 5. RETI TANDEM E ACICLICHE
dove C si , λ/µi = P (Ni ≥ si ) è definita in (3.36).
Denotando con N la variabile aleatoria che descrive il numero complessivo
di utenti presenti nella rete con R risorse ognuna con vari servitori, se λ <
min(s1 µ1 , s2 µ2 , . . . , sR µR ) il numero medio di utenti presenti nella rete nella
situazione di equilibrio statistico è:
R
X
E(N ) =
E(Ni ).
(5.26)
i=1
Utilizzando poi la prima legge di Little segue che nella situazione di equilibrio
statistico il tempo medio di attesa degli utenti nella i-esima risorsa è:

1

si = 1

E(Ni )  µi − λ
E(Wi ) =
(i = 1, 2, . . . , R)
=

C si , λ/µi
λ
1


+
si = 2, 3, . . .
µi
µi s i − λ
(5.27)
Ricordando che ognuna delle R risorse della rete è visitata un’unica volta, se
λ < min(s1 µ1 , s2 µ2 , . . . , sR µR ) il tempo medio di attesa degli utenti nella rete
è
R
X
E(Wi ).
(5.28)
E(W ) =
i=1
La legge di Little globale per la rete di code tandem con R risorse ognuna con
vari servitori che lavorano in parallelo diventa:
E(N ) = λ E(W1 ) + E(W2 ) + . . . + E(WR ) = λ E(W ).
(5.29)
Esempio 5.2 Consideriamo una rete tandem costituita da tre risorse con disciplina di servizio FIFO. Supponiamo che gli utenti arrivino alla prima risorsa
secondo un processo di Poisson di parametro λ = 6, implicando che i tempi
di interarrivo alla prima risorsa sono distribuiti esponenzialmente con valore
medio 1/6. Assumiamo inoltre che i tempi di servizio di ognuno dei servitori
presenti nella prima, seconda e terza risorsa siano distribuiti esponenzialmente
con rispettivi valori medi 1/12, 1/2, 1/3. Segue che
λ = 6,
µ1 = 12,
µ2 = 2,
µ3 = 3.
Ci proponiamo di determinare il numero di servitori necessari e sufficienti in
ogni risorsa affinché la rete non si congestioni. I numeri di servitori s1 , s2 , s3
necessari e sufficienti nelle tre risorse debbono essere tali da soddisfare le seguenti
disuguaglianze:
s1 − 1 ≤
1
λ
= < s1 ,
µ1
2
s2 − 1 ≤
λ
= 3 < s2 ,
µ2
s3 − 1 ≤
λ
= 2 < s3 ,
µ3
che mostrano che s1 = 1, s2 = 4 e s3 = 3; pertanto è sufficiente un solo servitore
nella prima risorsa, occorrono quattro servitori nella seconda risorsa e infine tre
A.G. Nobile
5.5. RETI ACICLICHE
75
servitori nella terza risorsa. I fattori di utilizzazione delle tre risorse sono quindi:
̺1 =
λ
1
= ,
µ1
2
̺2 =
3
λ
= ,
4 µ2
4
̺3 =
2
λ
= ·
3 µ3
3
♦
Occorre sottolineare che nella rete tandem schematizzata in Figura 5.3 ogni
risorsa è caratterizzata da una fila di attesa di capacità illimitata. Questa ipotesi ha consentito di applicare il teorema di Burke alle varie risorse della rete
mostrando che il processo di output da ogni risorsa è ancora un processo di
Poisson con lo stesso parametro del processo di Poisson di input.
Se la fila di attesa di una risorsa della rete tandem è a capacità finita si
possono considerare tre tipi di discipline:
(i) (Disciplina overflow): l’utente che ha completato il servizio alla risorsa
i-esima e che non può accedere alla (i + 1)-esima risorsa poiché satura,
oltrepassa tale risorsa e accede immediatamente alla risorsa successiva
i + 2;
(ii) (Disciplina loss): l’utente che ha completato il servizio alla risorsa i-esima
e che non può accedere alla (i + 1)-esima risorsa poiché satura, lascia il
sistema;
(iii) (Disciplina blocking): l’utente che ha completato il servizio alla risorsa
i-esima e che non può accedere alla (i + 1)-esima risorsa poiché satura, attende nella i-esima risorsa finché la risorsa (i + 1)-esima diventa
disponibile.
Se la capacità delle file di attesa di alcune o di tutte le risorse di una rete
tandem è finita, la descrizione probabilistica della rete di code diventa molto
più complessa poiché non è più possibile far ricorso al teorema di Burke. Per
semplificare il modello matematico, si preferisce quindi considerare nelle reti
aperte file di attesa di capacità illimitata.
5.5
Reti acicliche
Ci proponiamo ora di estendere i risultati ottenuti per le reti di code tandem alle
reti di code aperte acicliche, ossia alle reti di code in cui gli utenti non possono
usufruire più di una volta del servizio offerto da una risorsa.
Se si numerano opportunamente le risorse di una rete di code aperta aciclica
si nota che la matrice delle probabilità di switching (o di instradamento) P è
triangolare superiore.
Prima di giungere alla formulazione del teorema di Jackson per le reti acicliche, nell’esempio seguente mostreremo il ruolo fondamentale del teorema di
Burke, del teorema di composizione di processi di Poisson e del teorema di decomposizione di un processo di Poisson nell’analisi delle prestazioni di una rete
aciclica.
A.G. Nobile
76
CAPITOLO 5. RETI TANDEM E ACICLICHE
Risorsa 1
λ1
-
Risorsa 3
-
Risorsa 6
-
Risorsa 4
λ2
p24
Risorsa 2
p25
-
-
Risorsa 5
-
p60
-
p67
-
Risorsa 7
Figura 5.4: Una rete di code aciclica con 7 risorse, due ingressi e due uscite.
Esempio 5.3 Consideriamo la rete aciclica mostrato in Figura 5.4.
Essa è caratterizzata dalla seguente matrice di diramazione, di cardinalità
7 × 8:
1 2 3 4
5 6 7 Stop


1 0 0 1 0
0 0 0
0
2
0 
 0 0 0 p24 p25 0 0


30 0 0 0
0 1 0
0 

0 1 0
0 
D = 4
0 0 0 0

5
0 0 1
0 
0 0 0 0

60 0 0 0
0 0 p67 p60 
7 0 0 0 0
0 0 0
1
che soddisfa le condizioni: p24 + p25 = 1 e p67 + p60 = 1. Si nota che la matrice
delle probabilità di switching P , ottenuta considerando solo le prime 7 colonne
della matrice D, è triangolare superiore.
Alla prima risorsa gli utenti arrivano secondo un processo di Poisson di
parametro λ1 e alla seconda risorsa gli utenti arrivano secondo un processo
di Poisson di parametro λ2 . Ogni risorsa è dotata di un unico servitore e la
capacità di ogni centro di attesa è infinita. Supponiamo che i tempi di servizio
della risorsa i-esima sono indipendenti e distribuiti esponenzialmente con valore
medio 1/µi (i = 1, 2, . . . , 7).
La prima risorsa è descrivibile mediante un sistema di servizio M/M/1 con
intensità di traffico ̺1 = λ1 /µ1 . Analogamente la seconda risorsa è descrivibile
mediante un sistema di servizio M/M/1 con intensità di traffico ̺2 = λ2 /µ2 .
Dal Teorema 3.3 di Burke segue che in condizioni di equilibrio statistico il
processo delle partenze dalla prima risorsa è un processo di Poisson di parametro
λ1 . Pertanto alla terza risorsa gli utenti arrivano secondo un processo di Poisson
di parametro λ1 . La terza risorsa è quindi descrivibile mediante un sistema di
servizio M/M/1 con intensità di traffico ̺3 = λ1 /µ3 . Dal teorema di Burke
A.G. Nobile
5.5. RETI ACICLICHE
77
segue che in condizioni di equilibrio statistico il processo delle partenze dalla
terza risorsa è un processo di Poisson di parametro λ1 .
Dal teorema di Burke inoltre segue che in condizioni di equilibrio statistico il processo delle partenze dalla seconda risorsa è un processo di Poisson di
parametro λ2 . Dal Teorema 2.2 di decomposizione di un processo di Poisson
segue che gli utenti arrivano alla quarta risorsa secondo un processo di Poisson
di parametro λ2 p24 , mentre arrivano alla quinta risorsa secondo un processo di
Poisson di parametro λ2 p25 . La quarta risorsa è pertanto descrivibile mediante
un sistema di servizio M/M/1 con intensità di traffico ̺4 = λ2 p24 /µ4 , mentre
la quinta risorsa è descrivibile mediante un sistema di servizio M/M/1 con intensità di traffico ̺5 = λ2 p25 /µ5 . Inoltre, dal teorema di Burke segue che in
condizioni di equilibrio statistico il processo delle partenze dalla quarta risorsa
è un processo di Poisson di parametro λ2 p24 , mentre il processo delle partenze
dalla quinta risorsa è un processo di Poisson di parametro λ2 p25 .
Dal Teorema 2.1 di composizione di processi di Poisson segue che gli utenti
arrivano alla sesta risorsa secondo un processo di Poisson di parametro λ1 +
λ2 p24 . La sesta risorsa è quindi descrivibile mediante un sistema di servizio
M/M/1 con intensità di traffico ̺6 = [λ1 + λ2 p24 ]/µ6 .
Dal teorema di Burke segue che in condizioni di equilibrio statistico il processo delle partenze dalla sesta risorsa è un processo di Poisson di parametro λ1 + λ2 p24 . Per il teorema di decomposizione di un processo di Poisson segue che gli utenti escono dalla rete attraverso la sesta risorsa secondo
un processo di Poisson di parametro [λ1 + λ2 p24 ] p60 mentre, invece, si dirigono verso la settima risorsa secondo un processo di Poisson di parametro
[λ1 + λ2 p24 ] p67 . Facendo uso del teorema di composizione di processi di Poisson segue che gli utenti arrivano alla settima risorsa secondo un processo di
Poisson di parametro [λ1 + λ2 p24 ] p67 + λ2 p25 . In conclusione la settima risorsa
è descrivibile mediante un sistema di servizio M/M/1 con intensità di traffico
̺7 = {[λ1 + λ2 p24 ] p67 + λ2 p25 }/µ7 . La Tabella 5.1 riassume le frequenze di
arrivo, denotate con αi , alla risorsa i-esima della rete (i = 1, 2, . . . , 7).
Risorsa
1
2
3
4
5
6
7
αi
λ1
λ2
λ1
λ2 p24
λ2 (1 − p24 )
λ1 + λ2 p24
[λ1 + λ2 p24 ] p67 + λ2 (1 − p24 )
Tabella 5.1: Frequenze di arrivo della rete aciclica di Figura 5.4.
In condizioni di equilibrio statistico la probabilità che nella i-esima risorsa
A.G. Nobile
78
CAPITOLO 5. RETI TANDEM E ACICLICHE
siano presenti k utenti è:
αi αi k
qi (k) = P (Ni = k) = 1 −
µi
µi
(i = 0, 1, . . . , 7).
Affinché la rete aciclica di Figura 5.4 non sia congestionata occorre che ̺i =
αi /µi < 1 per ogni i = 1, 2, . . . , 7. Pertanto, nella situazione di equilibrio statistico, la probabilità che nella rete siano presenti n1 utenti nella prima risorsa,
n2 utenti nella seconda risorsa, . . ., n7 utenti nella settima risorsa è :
q(n1 , n2 , . . . , n7 ) =
7 Y
i=1
1−
αi αi ni
;
µi
µi
Inoltre, in condizioni di equilibrio statistico, il numero medio di utenti presenti
nella rete aciclica di Figura 5.4 è
E(N ) = E(N1 ) + E(N2 ) + . . . + E(N7 ) =
7
X
i=1
7
X αi
̺i
=
1 − ̺i
µ − αi
i=1 i
e, facendo uso della legge di Little globale, il tempo medio di attesa di un utente
è dunque:
E(W ) =
7
7
X
X
E(N )
1
1
αi
αi E(Wi ) =
=
,
λ1 + λ2
λ1 + λ2 i=1
λ1 + λ2 i=1 µi − αi
con i parametri αi forniti in Tabella 5.1.
♦
In generale, per le reti acicliche numeriamo in primo luogo opportunamente
le risorse della rete dalla sorgente (sorgenti) alla destinazione (destinazioni) in
maniera tale che la matrice di switching P sia triangolare superiore.
Il modello generale di rete aciclica si basa allora sulle seguenti ipotesi:
(1) R risorse, ciascuna con una fila di attesa di capacità infinita;
(2) singola classe di utenti e disciplina FIFO per ciascuna risorsa della rete;
(3) gli utenti accedono alla risorsa i-esima della rete dall’esterno secondo un
processo di Poisson di parametro λi (i = 1, 2, . . . , R);
(4) la risorsa i-esima (i = 1, 2, . . . , R) consiste di si servitori identici, ognuno
con tempo di servizio distribuito esponenzialmente con valore medio 1/µi ;
(5) gli utenti, dopo aver ricevuto servizio nella i-esima risorsa, procedono
istantaneamente nella j-esima risorsa (j > i) con probabilità di switching
pij ;
(6) gli utenti, dopo aver ricevuto servizio nella i-esima risorsa, escono istantaR
X
pij ;
neamente dalla rete con probabilità pi0 = 1 −
j=i+1
A.G. Nobile
5.5. RETI ACICLICHE
79
(7) le frequenze complessive medie α1 , α2 , . . . , αR di arrivo alle risorse della
rete (considerando sia gli arrivi da altre risorse della rete sia gli arrivi
provenienti dall’esterno) soddisfano il sistema
α1 = λ1 ,
αi = λi +
i−1
X
αj pji
(i = 2, 3, . . . , R).
(5.30)
j=1
Le equazioni (5.30) sono note come equazioni di conservazione dei parametri
di arrivo. In Figura 5.5 sono visualizzati i flussi entranti ed uscenti dalla risorsa
i-esima di una rete aciclica.
Risorsa 1
A
A
α1 p1i
AU
@
RA
@
α2 p2i@A
A
@
······
6
······
······
αi−1 pi−1,i λi
Risorsa i − 1 Risorsa 2
Input
esterno
Capacità
infinita
Risorsa i + 1
µi
1 B
αi pi,i+1
B
µi
% B
2 J
Risorsa i + 2
%
B
7
J
······
%
B
J - αi pi,i+2 · · · · · ·
······
-
%
JB ······
······
C αi piR · · · · · ·
BJ
J
CJ
BJ
C J
BJ
^ Risorsa R
µi
C
B
C
B
si C αi pi0
B
µi
CW
Risorsa i
Output
esterno
Figura 5.5: Diagramma della i-esima risorsa di una rete aciclica.
Come si evince dalla Figura 5.5, l’input alla risorsa i-esima consiste di output
di altre risorse e di input esterni che arrivano secondo un processo di Poisson di
parametro λi . La frequenza media complessiva di arrivo αi alla i-esima risorsa
è quindi la somma della frequenza di arrivo λi dall’esterno della rete e delle
frequenze di arrivo alla risorsa i-esima dalle altre risorse della rete.
Teorema 5.1 (Teorema di Jackson per una rete aciclica) Nelle ipotesi (1)–(7)
precedentemente elencate, sia (n1 , n2 , . . . , nR ) uno stato di una rete aciclica,
nella quale sono presenti ni utenti nella i-esima risorsa (i = 1, 2 . . . , R) e sia
q(n1 , n2 , . . . , nR ) la probabilità che in condizioni di equilibrio statistico la rete
sia nello stato (n1 , n2 , . . . , nR ). Se
αi
̺i =
<1
(i = 1, 2. . . . , R),
(5.31)
s i µi
dove α1 , α2 , . . . , αR sono soluzioni delle equazioni di conservazione dei parametri
di arrivo (5.30), allora
q(n1 , n2 , . . . , nR ) = q1 (n1 ) q2 (n2 ) · · · qR (nR ),
A.G. Nobile
(5.32)
80
CAPITOLO 5. RETI TANDEM E ACICLICHE
dove le probabilità di avere k utenti nella risorsa i-esima sono:
qi (0) =
qi (k) =
i −1
hsX
(αi /µi )n
(αi /µi )si i−1
,
+
n!
si ! (1 − ̺i )
n=0

(αi /µi )k



,
 qi (0)
k!

(αi /µi )k


,
 qi (0)
si ! sik−si
(5.33)
k = 1, 2, . . . , si
k = si + 1, si + 2, . . . .
Dimostrazione Il risultato (5.32) per una rete aciclica segue applicando il
teorema di Burke e le proprietà di composizione di processi di Poisson indipendenti e di decomposizione di un processo di Poisson. La struttura aciclica
della rete consente di conservare la proprietà di indipendenza necessaria nella
composizione e decomposizione di processi di Poisson.
Questa classe di reti è un primo esempio di reti di code markoviane separabili
o che ammettono soluzione in forma prodotto; infatti, la probabilità congiunta
q(n1 , n2 , . . . , nR ) è esprimibile come prodotto delle probabilità qi (ni ) relative
alle singole risorse. Nella situazione di equilibrio statistico quindi la rete aciclica
può essere vista come composta da R sistemi di servizio isolati, dove la risorsa
i-esima della rete è descrivibile mediante un sistema di servizio M/M/si con
frequenza di arrivo αi e frequenza di partenza da ognuno degli si servitori µi
(i = 1, 2, . . . , R). Una soluzione in forma prodotto costituisce una caratteristica
chiaramente desiderabile di una rete di code poiché il calcolo delle probabilità
di stato e dei parametri prestazionali dell’intera rete di R risorse può essere
ricondotto al calcolo delle probabilità di stato e dei parametri prestazionali di
ciascuna delle R singole risorse della rete.
Il calcolo della distribuzione di probabilità (5.32) non dipende dall’ordine in
cui sono visitate le varie risorse della rete. Inoltre, la conoscenza della distribuzione di probabilità (5.32) consente di determinare gli indici di prestazione locali
e globali della rete stessa, quali il numero medio di utenti nella rete e il tempo
medio di attesa di un utente nella rete in condizioni di equilibrio statistico.
L’algoritmo basato sul teorema di Jackson per una rete aciclica è quindi il
seguente:
⋄ Algoritmo
• Step 1: calcolare le frequenze complessive di arrivo αi (i = 1, 2, . . . , R)
per tutte le R risorse della rete aciclica utilizzando le relazioni iterative
(5.30) (oppure i teoremi di Burke, di composizione e di decomposizione di
processi di Poisson);
• Step 2: individuare il fattore di utilizzazione ̺i = αi /(si µi ) (i = 1, 2, . . . , R)
per tutte le R risorse della rete aciclica e stabilire le condizioni di equilibrio utilizzando la (5.31). In condizioni di equilibrio, ossia se ̺i < 1
A.G. Nobile
5.5. RETI ACICLICHE
81
(i = 1, 2, . . . , R), calcolare le probabilità di equilibrio per ogni singola risorsa della rete e gli indici di prestazione, ossia il numero medio di utenti
presenti in ogni risorsa e il tempo medio di attesa di un utente in ogni
singola risorsa della rete;
• Step 3: calcolare le probabilità di equilibrio per l’intera rete e gli indici di
prestazione globali, quali il numero medio di utenti presenti nella rete e il
tempo medio di attesa di un utente nella rete.
Negli esempi seguenti utilizziamo l’algoritmo basato sul teorema di Jackson
per determinare gli indici di prestazione di alcune reti acicliche.
Esempio 5.4 Consideriamo la rete aciclica illustrata in Figura 5.6 caratterizzata da:
Risorsa 1
λ1
λ2
-
-
-
-
Risorsa 3
Risorsa 2
Figura 5.6: Una rete di code aciclica con 3 risorse, due ingressi e un’uscita.
- numero di risorse R = 3,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2, 3),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ1 per
la prima risorsa e 1/λ2 per la seconda risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 3 × 4:
1
1 0
D = 20
3 0

2
0
0
0
3
1
1
0
Stop

0
0 
1
Si nota che la matrice di instradamento P è triangolare superiore. Applichiamo
l’algoritmo basato sul teorema di Jackson.
A.G. Nobile
82
CAPITOLO 5. RETI TANDEM E ACICLICHE
Step 1: Le frequenze complessive di arrivo alle singole risorse della rete possono
essere ottenute utilizzando le relazioni iterative (5.30)
α1 = λ1 ,
α2 = λ2 ,
α3 =
2
X
αj pj3 = α1 p13 + α2 p23 = λ1 + λ2 .
j=1
Equivalentemente, facendo uso del teorema di Burke, in condizioni di equilibrio
statistico l’output della prima e della seconda risorsa sono di Poisson con rispettivi parametri λ1 e λ2 e applicando il teorema di composizione di due processi
di Poisson indipendenti il processo di input alla terza risorsa è un processo di
Poisson con parametro λ1 + λ2 .
Step 2: I fattori di utilizzazione delle tre risorse della rete sono rispettivamente:
̺1 =
λ1
,
µ1
̺2 =
λ2
,
µ2
̺3 =
λ1 + λ2
·
µ3
Step 3: La rete aciclica di Figura 5.6 raggiunge una situazione di equilibrio
statistico se ̺1 < 1, ̺2 < 1, ̺3 < 1 e la distribuzione di equilibrio è:
q(n1 , n2 , n3 ) = q1 (n1 ) q2 (n2 ) q3 (n3 ) =
3
Y
(1 − ̺i ) ̺ni i
i=1
(n1 , n2 , n3 = 0, 1, . . .)
da cui segue che la probabilità che nella rete siano presenti n utenti, con n =
0, 1, . . ., è
X
X
P (N = n) =
q(n1 , n2 , n3 ) =
(1−̺1 ) ̺n1 1 (1−̺2 ) ̺n2 2 (1−̺3 ) ̺n3 3 .
n1 +n2 +n3 =n
n1 +n2 +n3 =n
Facendo uso dei risultati di Tabella 3.1, il numero medio di utenti nella rete è:
E(N ) = E(N1 ) + E(N2 ) + E(N3 ) =
3
X
i=1
αi
,
µi − αi
essendo E(Ni ) = αi /(µi − αi ). Applicando la legge di Little globale, e successivamente la legge di Little locale alle singole risorse della rete, si ottiene il tempo
medio di attesa di un utente nella rete:
E(W ) =
=
3
X
E(N )
1
αi E(Wi )
=
λ1 + λ2
λ1 + λ2 i=1
λ2
λ1
E(W1 ) +
E(W2 ) + E(W3 )
λ1 + λ2
λ1 + λ2
con E(Wi ) = 1/(µi − αi ). Come si evidenzia anche dalla Figura 5.6, questa
formula mostra che con probabilità λ1 /(λ1 + λ2 ) l’utente sceglie la prima risorsa
e con probabilità λ2 /(λ1 + λ2 ) l’utente sceglie la seconda risorsa; invece, la terza
risorsa deve essere necessariamente attraversata.
A.G. Nobile
5.5. RETI ACICLICHE
83
Caso 1 Se le frequenze di arrivo e di partenza al minuto sono
λ1 = 1,
λ2 = 2,
µ1 = 2,
µ2 = 4,
µ3 = 6,
la rete aciclica di Figura 5.6 raggiunge una situazione di equilibrio essendo ̺1 =
̺2 = ̺3 = 0.5. In tal caso il numero medio di utenti nel sistema è E(N ) = 3
e il tempo medio di attesa di un utente nel sistema è E(W ) = 1 minuto. La
probabilità che nella rete non siano presenti utenti è
P (N = 0) = q(0, 0, 0) = (1 − ̺1 )(1 − ̺2 )(1 − ̺3 ) =
1 1 1
1
= ,
2 2 2
8
mentre la probabilità che nella rete sia presente un unico utente è:
P (N = 1) = q(1, 0, 0) + q(0, 1, 0) + q(0, 0, 1) = (1 − ̺1 )̺1 (1 − ̺2 ) (1 − ̺3 )
3
·
+(1 − ̺1 ) (1 − ̺2 )̺2 (1 − ̺3 ) + (1 − ̺1 ) (1 − ̺2 ) (1 − ̺3 )̺3 =
16
Caso 2 Se le frequenze di arrivo e di partenza al minuto sono
λ1 = 1,
λ2 = 2,
µ1 = 2,
µ2 = 4,
µ3 = 3,
la rete aciclica di Figura 5.6 non raggiunge mai una situazione di equilibrio
essendo ̺1 = ̺2 = 0.5 e ̺3 = 1. In questo caso la terza risorsa della rete è
destinata a congestionarsi nel senso che la sua fila di attesa cresce infinitamente.
Per porre rimedio alla congestione della rete è sufficiente aggiungere alla terza
risorsa della rete un ulteriore servitore, come illustrato in Figura 5.7.
Risorsa 1
λ1
λ2
-
-
Risorsa 2
Risorsa 3
n
n
-
Figura 5.7: Rete di Figura 5.6 modificata con due servitori nella terza risorsa.
Se si utilizza questa strategia i fattori di utilizzazione delle risorse della rete
diventano ̺1 = ̺2 = 0.5 e ̺3 = (λ1 + λ2 )/(2 µ3 ) = 0.5. Ricordando i risultati di
Tabella 3.4, è possibile valutare la distribuzione di equilibrio, il numero medio
di utenti e il tempo medio di attesa di un utente nella terza risorsa della rete
e utilizzare poi tali risultati per calcolare i parametri prestazionali complessivi
della rete modificata. In particolare, la distribuzione di equilibrio è:
q(n1 , n2 , n3 ) = q1 (n1 ) q2 (n2 ) q3 (n3 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2
1 − ̺3 n3
×
̺ ∆(n3 )
(n1 , n2 , n3 = 0, 1, . . .)
1 + ̺3 3
A.G. Nobile
84
CAPITOLO 5. RETI TANDEM E ACICLICHE
dove ∆(n3 ) = 1 se n3 = 0 e ∆(n3 ) = 2 se n3 = 1, 2, . . .. Inoltre, la probabilità
che nella rete sono presenti n utenti è:
X
P (N = n) =
q(n1 , n2 , n3 ).
n1 +n2 +n3 =n
In particolare, la probabilità che nella rete non siano presenti utenti è
P (N = 0) = q(0, 0, 0) = (1 − ̺1 )(1 − ̺2 )
1 − ̺3
1 1 1
1
=
=
,
1 + ̺3
2 2 3
12
mentre la probabilità che sia presente un unico utente è
P (N = 1) = q(1, 0, 0) + q(0, 1, 0) + q(0, 0, 1) = (1 − ̺1 )̺1 (1 − ̺2 )
1 − ̺3
1 + ̺3
1 − ̺3
1 − ̺3
1
+ (1 − ̺1 ) (1 − ̺2 )
2̺3 = ·
1 + ̺3
1 + ̺3
6
+(1 − ̺1 ) (1 − ̺2 )̺2
Ricordando la Tabella 3.4, il numero medio di utenti nella rete è
E(N ) = E(N1 ) + E(N2 ) + E(N3 ) =
̺1
̺2
2 ̺3
4
10
+
+
=2+ =
2
1 − ̺1
1 − ̺2
1 − ̺3
3
3
e applicando la legge di Little globale si ottiene il tempo medio di attesa di un
generico utente nella rete:
E(W ) =
10
E(N )
=
·
λ1 + λ2
9
♦
Esempio 5.5 Consideriamo la rete aciclica illustrata in Figura 5.8 caratterizzata da:
Risorsa 2
p
-
Risorsa 1
λ
-
1−p
-
-
Risorsa
3
-
Risorsa
4
-
Figura 5.8: Una rete di code aciclica con 4 risorse, un solo ingresso e un’uscita.
- numero di risorse R = 4,
A.G. Nobile
5.5. RETI ACICLICHE
85
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti esponenzialmente con valore medio 1/µi per la i-esima risorsa (i =
1, 2, 3, 4),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 4 × 5:
1
1 0
20
D= 
30
4 0

2
p
0
0
0
3
1−p
0
0
0
4
0
0
1
0
Stop

0
1 

0 
1
(0 < p < 1).
Si nota che la matrice di instradamento P è triangolare superiore. Applichiamo
l’algoritmo basato sul teorema di Jackson.
Step 1: Le frequenze complessive di arrivo alle singole risorse della rete possono
essere ottenute utilizzando le relazioni iterative (5.30)
α1 = λ,
α2 = α1 p12 = λ p,
α3 = α1 p13 + α2 p23 = λ (1 − p),
α4 = α1 p14 + α2 p24 + α3 p34 = λ (1 − p) .
Equivalentemente, facendo ricorso al teorema di Burke, in condizioni di equilibrio statistico l’output della prima risorsa è un processo di Poisson con parametro λ e per il teorema di decomposizione di un processo di Poisson l’input
della seconda e della terza risorsa sono di Poisson con rispettivi parametri λ p e
λ (1 − p); applicando nuovamente il teorema di Burke, in condizioni di equilibrio
statistico l’output della terza risorsa, che costituisce l’input della quarta risorsa,
è un processo di Poisson con parametro λ (1 − p).
Step 2: I fattori di utilizzazione delle quattro risorse della rete sono rispettivamente:
̺1 =
λ
,
µ1
̺2 =
λp
,
µ2
̺3 =
λ (1 − p)
,
µ3
̺4 =
λ (1 − p)
·
µ4
Step 3: La rete aciclica di Figura 5.8 raggiunge una situazione di equilibrio
statistico se ̺1 < 1, ̺2 < 1, ̺3 < 1, ̺4 < 1, ossia se
n
µ2 µ3
µ4 o
λ < min µ1 , ,
.
(5.34)
,
p 1−p 1−p
La distribuzione di equilibrio è:
q(n1 , n2 , n3 , n4 ) = q1 (n1 )q2 (n2 )q3 (n3 )q4 (n4 ) =
4
Y
i=1
A.G. Nobile
(1 − ̺i ) ̺ni i
86
CAPITOLO 5. RETI TANDEM E ACICLICHE
con n1 , n2 , n3 , n4 = 0, 1, . . .. Facendo uso dei risultati di Tabella 3.1, il numero
medio di utenti nella rete è:
E(N ) = E(N1 ) + E(N2 ) + E(N3 ) + E(N4 ) =
4
X
i=1
4
X αi
̺i
=
,
1 − ̺i
µ − αi
i=1 i
e, applicando la legge di Little globale, il tempo medio di attesa di un utente
nella rete è:
4
E(N )
1 X αi
E(W ) =
·
=
λ
λ i=1 µi − αi
Caso 1 Se
µ1 = µ2 = µ3 = µ4 = µ
dalla (5.34) segue che la rete raggiunge una situazione di equilibrio statistico se
e solo se
λ < min{µ, µ/p, µ/(1 − p)} = µ,
ossia se λ < µ. Quindi, se λ ≥ µ la rete considerata è destinata a congestionarsi.
Caso 2 Se
µ1 = µ2 = µ3 = µ4 = µ, λ = µ
si ha
̺1 = 1,
̺2 = p,
̺3 = ̺4 = 1 − p
e quindi la rete considerata non raggiunge una situazione di equilibrio. Per
porre rimedio alla congestione è sufficiente aggiungere alla prima risorsa della
rete un ulteriore servitore, come illustrato in Figura 5.9.
Risorsa 2
p
l
Risorsa 1
λ
-
l
-
-
-
-
Risorsa
3
1−p
Risorsa
4
-
Figura 5.9: Rete di Figura 5.8 con λ = µ1 = µ2 = µ3 = µ4 modificata con due
servitori nella prima risorsa.
Se si utilizza questa strategia i fattori di utilizzazione delle risorse della rete
diventano
1
λ
= , ̺2 = p, ̺3 = ̺4 = 1 − p.
̺1 =
2µ
2
e risultano minori dell’unità. Ricordando i risultati di Tabella 3.4, è possibile
valutare la distribuzione di equilibrio, il numero medio di utenti e il tempo medio
A.G. Nobile
5.5. RETI ACICLICHE
87
di attesa di un utente nella prima risorsa della rete e utilizzare poi tali risultati
per calcolare i parametri prestazionali complessivi della rete modificata:
2 ̺1
̺2
̺3
̺4
4
p
2 (1 − p)
+
+
+
= +
+
,
1 − ̺21
1 − ̺2
1 − ̺3
1 − ̺4
3 1−p
p
E(N )
1 h4
p
2 (1 − p) i
E(W ) =
.
=
+
+
λ
λ 3 1−p
p
E(N ) =
♦
Esempio 5.6 Consideriamo la rete aciclica illustrata in Figura 5.10 caratterizzata da:
Risorsa 2
λ2
-
1/3
λ1
-
Risorsa 1
3/4
-
1/4
?
-
2/3
-
Risorsa 3
Figura 5.10: Una rete di code aciclica con 3 risorse, due ingressi e due uscite.
- numero di risorse R = 3,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2, 3),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ1 e
1/λ2 rispettivamente per la prima e per la risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 3 × 4:
1
1 0
D = 20
3 0

2
3 Stop

1/3 2/3
0
0 1/4 3/4 
0
0
1
Si nota che la matrice P è triangolare superiore. Applichiamo l’algoritmo basato
sul teorema di Jackson.
A.G. Nobile
88
CAPITOLO 5. RETI TANDEM E ACICLICHE
Step 1: Le frequenze complessive di arrivo alle singole risorse della rete possono
essere ottenute utilizzando le relazioni iterative (5.30)
1
α2 = λ2 + α1 p12 = λ2 + λ1 · ,
3
λ1 1
3 λ1
λ2
2 · =
+ .
α3 = α1 p13 + α2 p23 = λ1 · + λ2 +
3
3
4
4
4
α1 = λ1 ,
Equivalentemente, facendo uso del teorema di Burke, in condizioni di equilibrio
statistico l’output della prima risorsa è un processo di Poisson con parametro λ1
e per il teorema di decomposizione e composizione l’input della seconda risorsa
è un processo di Poisson di parametro λ2 + λ1 /3 e per il teorema di Burke tale
processo costituisce anche l’output della seconda risorsa. Inoltre per il teorema
di decomposizione e composizione l’input della seconda risorsa è un processo di
Poisson di parametro 2 λ1 /3 + (λ2 + λ1 /3)/4.
Step 2: I fattori di utilizzazione delle tre risorse della rete sono rispettivamente:
̺1 =
λ1
,
µ1
̺2 =
λ2 + λ1 /3
,
µ2
3 λ1 /4 + λ2 /4
·
µ3
̺3 =
Step 3: La rete aciclica di Figura 5.10 raggiunge una situazione di equilibrio
statistico se ̺1 < 1, ̺2 < 1, ̺3 < 1 e la distribuzione di equilibrio è:
q(n1 , n2 , n3 ) = q1 (n1 ) q2 (n2 ) q3 (n3 ) =
3
Y
(1−̺i ) ̺ni i
i=1
(n1 , n2 , n3 = 0, 1, . . .).
Facendo uso dei risultati di Tabella 3.1 il numero medio di utenti nella rete è:
E(N ) = E(N1 ) + E(N2 ) + E(N3 ) =
3
X
i=1
3
X αi
̺i
=
,
1 − ̺i
µ − αi
i=1 i
e il tempo medio di attesa di un utente nella rete è:
E(W ) =
3
X
E(N )
αi
1
=
·
λ1 + λ2
λ1 + λ2 i=1 µi − αi
Caso 1 Se scegliamo
λ1 = λ2 = λ,
µ1 = µ2 = µ3 = µ,
allora α1 = α3 = λ e α2 = 4 λ/3; i fattori di utilizzazione della rete sono quindi
̺1 = ̺3 =
λ
,
µ
̺2 =
4λ
·
3µ
La rete raggiunge una situazione di equilibrio statistico se
λ < min(µ, 3 µ/4) = 3 µ/4.
A.G. Nobile
5.5. RETI ACICLICHE
89
Risorsa 2
λ2
-
m
1/3
λ1
-
Risorsa 1
-
2/3
m
-
3/4
1/4
?
-
Risorsa 3
Figura 5.11: Rete di Figura 5.10 modificata con due servitori nella seconda
risorsa.
Caso 2 Se scegliamo
λ1 = λ2 = 1,
µ1 = µ2 = µ3 =
4
,
3
la rete è destinata a congestionarsi, essendo ̺1 = ̺3 = 3/4 e ̺2 = 1.
Per porre rimedio alla congestione è sufficiente aggiungere alla seconda risorsa della rete un ulteriore servitore come illustrato in Figura 5.11. Se si utilizza
questa strategia i fattori di utilizzazione delle risorse della rete diventano
̺1 =
λ
3
= ,
µ
4
̺2 =
4λ
1
= ,
6µ
2
̺3 =
λ
3
= ·
µ
4
Ricordando i risultati di Tabella 3.4, è possibile valutare la distribuzione di
equilibrio, il numero medio di utenti e il tempo medio di attesa di un utente nella
seconda risorsa della rete e utilizzare poi tali risultati per calcolare i parametri
prestazionali complessivi della rete modificata:
E(N ) =
E(W ) =
2 ̺2
̺3
4
22
̺1
+
+
=3+ +3=
,
1 − ̺1
1 − ̺22
1 − ̺3
3
3
3
X
E(N )
11
1
αi E(Wi ) =
=
·
λ1 + λ2
λ1 + λ2 i=1
3
Inoltre, la probabilità di non avere utenti nella rete è:
q(0, 0, 0) = (1 − ̺1 )
1 1 1
1
1 − ̺2
(1 − ̺3 ) =
=
·
1 + ̺2
4 3 4
48
♦
A.G. Nobile
90
A.G. Nobile
CAPITOLO 5. RETI TANDEM E ACICLICHE
Capitolo 6
Reti di Jackson
6.1
Introduzione
La condizione di non avere cicli, come accade nelle reti markoviane acicliche
discusse nel Capitolo 5, è molto restrittiva nella costruzione di modelli di reti
di code aperte. Infatti molti sistemi reali, quali sistemi di computer, di traffico
stradale, di controllo, di trasmissione dati, di comunicazione, di produzione non
possono essere sempre modellati utilizzando reti di code acicliche. Fortunatamente, nel 1957 Jackson considerò anche delle reti di code aperte markoviane più
generali, dette reti di Jackson, che possono presentare dei cicli e che ammettono
una soluzione in forma prodotto.
Nel seguito considereremo prima delle semplici reti aperte con feedback e
successivamente il modello più generale delle reti markoviane aperte di Jackson.
6.2
Sistema M/M/1 con feedback
Consideriamo il sistema di servizio M/M/1 con feedback schematizzato in Figura 6.1, con 0 < p ≤ 1.
Feedback
?
λ
1−p
6
Risorsa
-
µ
p
-
Figura 6.1: Sistema di servizio M/M/1 con feedback.
Questo sistema, che può descrivere la trasmissione di messaggi in un sistema
di comunicazione, è costituito da un’unica risorsa e la disciplina di servizio è
quella FIFO. Supponiamo che i messaggi arrivino dall’esterno al sistema secondo
un processo di Poisson di parametro λ e che l’unica risorsa sia dotata di una fila
di attesa di capacità infinita e di un unico servitore i cui tempi di servizio sono
91
92
CAPITOLO 6. RETI DI JACKSON
indipendenti e distribuiti esponenzialmente con valore medio 1/µ. Supponiamo
inoltre che la probabilità che un messaggio sia trasmesso correttamente sia p,
mentre 1 − p è la probabilità che un messaggio debba essere ritrasmesso.
Se indichiamo con N la variabile aleatoria che descrive il numero di messaggi
presenti nel sistema in condizioni di equilibrio statistico, siamo interessati a
calcolare la probabilità che nel sistema siano presenti N = n messaggi (n =
0, 1, . . .), oltre che a valutare il numero medio di messaggi E(N ) e il tempo medio
di attesa E(W ), ossia il tempo medio necessario per trasmettere correttamente
un messaggio.
Sia qn = P (N = n) la probabilità di avere n messaggi nel sistema nella situazione di equilibrio statistico. Il diagramma degli stati del sistema di Figura 6.1
è mostrato in Figura 6.2,
λ
λ
- - λ
λ
-
- - n
n−1
n + 1 ···
0
1
2
······ ···
µp
µp
µp
µp
Figura 6.2: Diagramma degli stati del sistema in Figura 6.1 in condizioni di
equilibrio statistico.
Per il principio di bilanciamento si ha:
λ q0 = µ p q1
(6.1)
(λ + µ p) qn = λ qn−1 + µ p qn+1
(n = 1, 2, . . .).
Utilizzando la condizione di normalizzazione (ossia che la somma delle probabilità sia unitaria), se ̺ = λ/(µ p) < 1 si ottiene come soluzione:
λ λ n
qn = 1 −
µp
µp
(n = 0, 1, . . .).
(6.2)
Nella situazione di equilibrio statistico il numero medio di messaggi presenti nel
sistema è quindi:
E(N ) =
̺
λ/p
λ
=
=
·
1−̺
µ − λ/p
µp − λ
(6.3)
La frequenza media di arrivo all’unica risorsa della rete è α1 = λ/p. Utilizzando quindi la legge di Little locale il tempo medio di attesa per trasmettere un
messaggio in ogni singola visita è
E(W1 ) =
A.G. Nobile
E(N )
E(N )
p
=
=
·
α1
λ/p
µp − λ
(6.4)
6.2. SISTEMA M/M/1 CON FEEDBACK
93
Ricordando che la risorsa può anche essere attraversata più volte, applicando la legge di Little globale si ha che il tempo medio di attesa per trasmettere
correttamente un messaggio è:
E(N )
1
=
·
λ
µp − λ
(6.5)
1
p
1
= E(W1 ) = ν1 E(W1 ),
p µp − λ
p
(6.6)
E(W ) =
Si nota che
E(W ) =
dove ν1 = 1/p ≥ 1 rappresenta il numero medio di visite dell’unica risorsa della
rete.
Feedback
?
λ
Risorsa
λ/p
-
6
λ/p
µ
λ
Figura 6.3: Frequenze di arrivo e di uscita per il sistema di servizio di Figura 6.1.
Burke nel 1976 ha dimostrato che il processo degli arrivi all’unica risorsa del
sistema in Figura 6.1 (che è una composizione del processo degli arrivi dall’esterno e del processo degli arrivi causati da feedback) non è di Poisson, sebbene
per il sistema M/M/1 senza feedback il processo degli arrivi e il processo delle
partenze sono entrambi di Poisson di parametro λ. Infatti Burke ha dimostrato
che in condizioni di equilibrio i tempi di interarrivo alla risorsa della rete sono
caratterizzati dalla seguente densità di probabilità iperesponenziale di ordine
due:


 µ (1 − p) µ e−µ t + µ p − λ λ e−λ t , t > 0
µ−λ
µ−λ
a(t) =
(6.7)


0,
altrimenti.
Il tempo medio di interarrivo è quindi:
Z +∞
µp − λ 1
µ (1 − p) 1
+
E(T ) =
t a(t) dt =
µ−λ µ
µ−λ λ
0
p
λ (1 − p) + µ p − λ
= ,
=
λ (µ − λ)
λ
Si nota che quando p = 1, ossia in assenza di feedback, a(t) diventa una densità
esponenziale di valore medio 1/λ. Invece, se 0 < p < 1, ossia in presenza di
feedback, il tempo medio di interarrivo dei messaggi alla risorsa della rete (ossia
dei messaggi provenienti dall’esterno e dei messaggi da ritrasmettere) è inferiore
al tempo medio di interarrivo esponenziale (ossia dei messaggi provenienti dall’esterno della rete). Inoltre, la frequenza complessiva di arrivo all’unica risorsa
della rete è l’inverso del tempo di interarrivo, ossia λ/p.
A.G. Nobile
94
CAPITOLO 6. RETI DI JACKSON
Burke ha dimostrato che il processo di output dall’unica risorsa della rete è
di Poisson di parametro λ/p e quindi il processo di uscita dalla rete (ossia delle
partenze dalla rete) è di Poisson con parametro λ, come illustrato in Figura 6.3.
In conclusione, la presenza di cicli non permette di conservare la caratteristica di Poisson del processo di arrivo alla risorsa. Nonostante ciò la distribuzione
di equilibrio (6.2) corrisponde a quella di un sistema M/M/1 con frequenza di
arrivo λ/p e frequenza di partenza µ.
6.3
Due sistemi M/M/1 in serie con feedback
Consideriamo la rete aperta schematizzato in Figura 6.4 costituita da due sistemi
di servizio M/M/1 collegati in serie con feedback, con 0 < p ≤ 1.
Feedback
?
λ
Risorsa 1
-
µ1
Risorsa 2
-
1−p
6
µ2
p
-
Figura 6.4: Due sistemi di servizio M/M/1 collegati in serie con feedback.
Il sistema consiste di due sistemi di servizio dotati ognuno di un centro di
attesa e di un centro di servizio. Assumiamo che gli utenti arrivino al sistema
dall’esterno secondo un processo di Poisson di parametro λ. La prima risorsa è
costituita da un centro di attesa a capacità illimitata e da un centro di servizio
dotato di un unico servitore. Supponiamo che i tempi di servizio, ossia i tempi
necessari per soddisfare le richieste di ogni utente nella prima risorsa, siano
indipendenti e distribuiti esponenzialmente con valore medio 1/µ1 . Gli utenti
che escono dalla prima risorsa, essendo stati serviti, costituiscono l’input alla
seconda risorsa. Anche la seconda risorsa è costituita da un centro di attesa a
capacità illimitata e da un centro di servizio dotato di un unico servitore. Un
utente attende in fila di attesa se il servitore della seconda risorsa è occupato.
Supponiamo che i tempi di servizio, ossia i tempi necessari per soddisfare le
richieste di ogni utente nella seconda risorsa, siano indipendenti e distribuiti
esponenzialmente con valore medio 1/µ2 . Supponiamo inoltre che la probabilità
che un utente esca dalla rete sia p, mentre 1 − p è la probabilità che l’utente
ritorni alla prima risorsa.
Denotiamo con q(n1 , n2 ) la probabilità che nel sistema siano presenti n1
utenti nella prima risorsa e n2 utenti nella seconda risorsa nella situazione di
equilibrio statistico, con n1 , n2 = 0, 1, . . ..
Il grafo di transizione della rete aperta costituita da due sistemi di servizio
M/M/1 collegati in serie con feedback è illustrato in Figura 6.5. In questo grafo
ogni stato è rappresentato da un cerchietto (nodo) etichettato con la coppia
n1 , n2 . Gli archi che collegano i nodi mostrano quali sono le possibili transizioni
di stato e sono etichettati con le frequenze di transizione (ossia i parametri
A.G. Nobile
6.3. DUE SISTEMI M/M/1 IN SERIE CON FEEDBACK
95
}
Z
}
Z
6 ZZZµ2 (1 − p) 6 ZZZµ2 (1 − p) 6
Z Z
Z Z
Z Z
Z Z
λ
λ
λ
µZ
µZ
'$
1 ZZ '$
1 ZZ '$
Z
Z
Z
ZZ
~
Z
~
2, 0 2, 1 2, 2
µ2 p
µ2 p
µ2 p
}
Z
}
Z
&%
&%
&%
}
Z
Z Z
Z Z
Z Z
6 Z Z µ2 (1 − p) 6 Z Z µ2 (1 − p) 6
Z Z µ2 (1 − p)
Z Z
Z Z
λ
λ
λ
Z Z
Z Z
Z Z
Z
µZ
µ1 Z Z
µ1 Z Z
1 Z Z
'$ Z Z
'$ Z Z
'$
Z Z
~
Z
~
Z
~
Z
1, 0
1, 1
1, 2 µ2 p
µ2 p
µ2 p
}
Z
&%
&%
&%
}
Z
}
Z
ZZ
6Z Z µ2 (1 − p) 6Z Z µ2 (1 − p) 6 Z Z µ2 (1 − p)
Z Z
Z Z
ZZ
λ
λ
λ
Z Z
Z Z
ZZ
Z
Z Z
µ1 Z Z
µ
µZ
1 Z Z
1 Z Z
'$
'$
'$
Z Z
Z Z
Z Z
~
Z
~
Z
~
Z
0, 0
0, 1
0, 2
µ2 p
µ2 p
µ2 p
&%
&%
&%
Figura 6.5: Grafo di transizione della rete schematizzata in Figura 6.4
di arrivo o di servizio). Se la rete di Figura 6.4 ha raggiunto la situazione di
equilibrio statistico, allora per ogni stato (n1 , n2 ) della rete (n1 , n2 = 0, 1, . . .)
assumiamo che valga il principio di bilanciamento.
Uguagliando il flusso medio entrante nello stato (0, 0) e il flusso medio uscente
da tale stato, si ha
λ q(0, 0) = µ2 p q(0, 1)
(6.8)
Se n1 = 1, 2, . . ., uguagliando il flusso medio entrante nello stato (n1 , 0) e il
flusso medio uscente da tale stato, si ha:
(λ + µ1 ) q(n1 , 0) = µ2 p q(n1 , 1) + λ q(n1 − 1, 0) + µ2 (1 − p) q(n1 − 1, 1)
(n1 = 1, 2, . . .)
(6.9)
Se invece n2 = 1, 2, . . ., uguagliando il flusso medio entrante nello stato (0, n2 )
e il flusso medio uscente da tale stato, si ottiene:
(λ + µ2 ) q(0, n2 ) = µ1 q(1, n2 − 1) + µ2 p q(0, n2 + 1)
(n2 = 1, 2, . . .) (6.10)
In Figura 6.6 è preso in esame il generico stato (n1 , n2 ) con n1 , n2 = 1, 2, . . .
Uguagliando il flusso medio entrante nello stato (n1 , n2 ) e il flusso medio uscente
da tale stato, risulta:
(λ + µ1 + µ2 ) q(n1 , n2 ) = µ1 q(n1 + 1, n2 − 1) + µ2 p q(n1 , n2 + 1)
+µ2 (1 − p) q(n1 − 1, n2 + 1) + λ q(n1 − 1, n2 )
(n1 , n2 = 1, 2, . . .). (6.11)
A.G. Nobile
96
CAPITOLO 6. RETI DI JACKSON
'$
'$
n1 + 1,
n2 − 1
n1 , n2 − 1
&%
&%
7
J
] µ p
µ1 J 2
µ2 (1 − p)
J
J
/
'$
'$
'$
J
λ
λ
- n1 , n2
- n + 1, n
n1 − 1, n2
1
&%
2
&%
&%
I
@
µ1 µ p
@ 2
µ
(1
−
p)
2
@
@
'$
'$
n1 − 1,
n2 + 1
&%
n1 , n2 + 1
&%
Figura 6.6: Grafo di transizione per lo stato (n1 , n2 ) della rete con feedback di
Figura 6.4.
Le equazioni di bilanciamento (6.8), (6.9), (6.10) e (6.11) debbono essere risolte
imponendo che valga la condizione
+∞ X
+∞
X
q(n1 , n2 ) = 1.
n1 =0 n2 =0
È facile dimostrare per diretta sostituzione che se
̺1 =
λ
< 1,
µ1 p
̺2 =
λ
< 1,
µ2 p
la soluzione delle equazioni di bilanciamento è:
λ λ n2
λ λ n1 1−
q(n1 , n2 ) = 1 −
µ1 p
µ1 p
µ2 p
µ2 p
(n1 , n2 = 0, 1, . . .).
(6.12)
La condizione affinché la rete costituita da due sistemi di servizio M/M/1 collegati in serie con feedback raggiunga una situazione di equilibrio statistico è
quindi che risulti
λ < min(µ1 p, µ2 p).
La (6.12) fornisce una soluzione in forma prodotto. Anche se la presenza
di cicli non permette di conservare la caratteristica di Poisson dei processi di
arrivo alle risorse, la distribuzione di equilibrio (6.12) corrisponde a quella di
due sistemi M/M/1 collegati in serie (rete tandem con due risorse ognuna con
A.G. Nobile
6.4. RETI DI JACKSON
97
unico servitore); il primo sistema M/M/1 è caratterizzato da frequenza di arrivo
λ/p e frequenza di partenza µ1 mentre il secondo sistema ha frequenza di arrivo
λ/p e frequenza di partenza µ2 .
Nella situazione di equilibrio statistico il numero medio di utenti presenti
nelle due singole risorse è
E(N1 ) =
̺1
λ
=
,
1 − ̺1
µ1 p − λ
E(N2 ) =
λ
̺2
=
·
1 − ̺2
µ2 p − λ
(6.13)
Denotando con N la variabile aleatoria che descrive il numero complessivo di
utenti presenti nella rete di Figura 6.4, se λ < min(µ1 p, µ2 p) il numero medio
di utenti presenti nella rete nella situazione di equilibrio statistico è:
E(N ) = E(N1 ) + E(N2 ) =
λ
λ
+
·
µ1 p − λ µ2 p − λ
(6.14)
Utilizzando poi la prima legge di Little segue che nella situazione di equilibrio
statistico il tempo medio di attesa degli utenti nelle due singole risorse è:
E(W1 ) =
E(N1 )
p
=
,
λ/p
µ1 p − λ
E(W2 ) =
E(N2 )
p
=
λ/p
µ2 p − λ
(6.15)
Ricordando la (4.16), se λ < min(µ1 p, µ2 p) il tempo medio di attesa degli utenti
nella rete di Figura 6.4 nella situazione di equilibrio statistico è
E(W ) =
E(N )
1
1
=
+
λ
µ1 p − λ µ2 p − λ
(6.16)
Come si evince analizzando la rete di code aperta di Figura 6.4, anche per
modelli di reti di code markoviane aperte con feedback molto semplici lo spazio
degli stati cresce in modo esponenziale nel numero di stati rendendo il metodo di
analisi basato sul principio di bilanciamento spesso intrattabile da un punto di
vista computazionale. Tuttavia Jackson ha dimostrato che esiste una classe di
reti markoviane aperte, in cui possono essere presenti cicli, semplici da analizzare
che consentono di ottenere efficienti algoritmi risolutivi.
6.4
Reti di Jackson
Illustriamo ora in generale le reti di Jackson. In primo luogo, numeriamo opportunamente le risorse della rete dalla sorgente (sorgenti) alla destinazione
(destinazioni). Il modello generale delle reti di Jackson si basa sulle seguenti
ipotesi:
(1) R risorse, ciascuna con una fila di attesa di capacità infinita (buffer illimitato);
(2) singola classe di utenti e disciplina FIFO per ciascuna risorsa della rete;
(3) la risorsa i-esima (i = 1, 2, . . . , R) consiste di si servitori identici, ognuno
con tempo di servizio distribuito esponenzialmente con valore medio 1/µi ;
A.G. Nobile
98
CAPITOLO 6. RETI DI JACKSON
(4) gli utenti, dopo aver ricevuto servizio nella i-esima risorsa, procedono istantaneamente nella j-esima risorsa (i, j = 1, 2, . . . , R) con probabilità di
diramazione pij ;
(5) gli utenti accedono alla risorsa i-esima della rete dall’esterno secondo un
processo di Poisson di parametro λi (i = 1, 2, . . . , R);
(6) gli utenti, dopo aver ricevuto servizio nella i-esima risorsa, escono istantaR
X
pij ;
neamente dalla rete con probabilità pi0 = 1 −
j=1
(7) le frequenze complessive medie α1 , α2 , . . . , αR di arrivo alle risorse della
rete (considerando sia gli arrivi dalle varie risorse della rete sia gli arrivi
provenienti dall’esterno) soddisfano il sistema
αi = λi +
R
X
αj pji
(i = 1, 2, . . . , R).
(6.17)
j=1
Una rete aperta di Jackson può contenere cicli ed il sistema (6.17) è un’estensione del sistema (5.30) introdotto per le reti acicliche. Le reti tandem e
le reti acicliche discusse nel Capitolo 5 sono quindi casi particolari delle reti di
Jackson.
Le equazioni (6.17) sono note come equazioni di conservazione dei parametri
di arrivo.
6.4.1
Frequenza media complessiva degli arrivi
In una generica rete di code aperta di Jackson, un utente può visitare una risorsa
anche diverse volte, prima di uscire dalla rete. Inoltre, poiché gli instradamenti
sono caratterizzati in modo probabilistico, differentemente dalle reti tandem si
ha che utenti differenti possono visitare le risorse un numero diverso di volte.
Alla risorsa i-esima arrivano sia utenti nuovi sia utenti che avevano già visitato
in precedenza tale risorsa. Quindi la frequenza media complessiva αi degli arrivi
alla risorsa i-esima può essere superiore alla frequenza λi che tiene conto solo
degli arrivi dall’esterno. Infatti, la frequenza media complessiva αi deve tenere
anche conto degli utenti che arrivano alla risorsa i-esima dalle varie risorse della
rete. In Figura 6.7 sono visualizzati i flussi entranti ed uscenti dalla risorsa
i-esima di una rete aperta di Jackson. L’input alla risorsa i-esima consiste di
output di altre risorse e di input esterni che arrivano secondo un processo di
Poisson di parametro λi . La frequenza complessiva di arrivo αi alla i-esima
risorsa è la somma della frequenza di arrivo λi dall’esterno della rete e dei
parametri di arrivo alla risorsa i-esima dalle altre risorse della rete.
Interpretiamo ora la (6.17). Se alla risorsa j-esima arrivano in media αj
utenti e se soltanto una frazione pari a pji viene indirizzata verso i, allora αj pji
rappresenta il contributo agli arrivi alla risorsa i-esima da parte della risorsa
j-esima. Pertanto la frequenza media complessiva αi degli arrivi alla risorsa
A.G. Nobile
6.4. RETI DI JACKSON
Risorsa 1
A
A
α1 p1i
AU
@ A
R@A
@
α2 p2i
A
@
······
6
······
······
αR pRi
λi
Risorsa R Risorsa 2
Input
esterno
Capacità
infinita
99
Risorsa 1
µi
1
αi pi1
B
B
µi
B
2 J
Risorsa 2
%
7
B
%
J
······
αi pi2
B
%
J B -
······
·· ·· ·· ·· ·· ··
-
%
J
······
J
BJ
C αi piR · · · · · ·
BJ
CJ
^ Risorsa R
BJ
C J
µi
B
C
B
C
si B
C αi pi0
µi
CCW
Risorsa i
Output
esterno
Figura 6.7: Diagramma di transizione della i-esima risorsa di una rete aperta
di Jackson.
i-esima è la somma della frequenza media λi degli arrivi dall’esterno e di tutti
i contributi agli arrivi da parte delle varie risorse della rete.
Se si denota con α
~ il vettore riga di componenti (α1 , α2 , . . . , αR ), con ~λ
il vettore riga di componenti (λ1 , λ2 , . . . , λR ) e con P la matrice di switching
di cardinalità R × R, il sistema (6.17) può essere equivalentemente scritto in
notazione matriciale
α
~ = ~λ + α
~ P,
(6.18)
o equivalentemente
α
~ (I − P ) = ~λ,
dove I è la matrice identità, di cardinalità R × R, i cui elementi sono unitari
sulla diagonale principale e nulli altrove.
Una condizione necessaria affinché il sistema (6.17) ammetta un’unica soluzione è che la matrice dei coefficienti I − P sia non singolare. Per una rete
aperta di Jackson tale condizione è sempre verificata. Se, infatti, la matrice
risultasse singolare, esisterebbe un sottoinsieme di risorse nel quale gli utenti
continuerebbero a circolare senza possibilità di uscita. Poiché la rete aperta di
Jackson è aperta e ogni utente prima o poi lascia la rete, si ha che ogni elemento
della matrice P n converge a 0 quando n → +∞. La matrice I − P è quindi
invertibile ed è di rango R. Ciò dimostra che per ogni fissato ~λ ed ogni fissata
matrice P il sistema (6.18) possiede un’unica soluzione in α
~.
Il fatto che il sistema (6.18) possieda un’unica soluzione non è sufficiente a
garantire che la rete raggiunga una situazione di equilibrio statistico. Infatti,
qualche frequenza complessiva di arrivo αi (i = 1, 2, . . . , R) potrebbe essere
troppo elevata rispetto alla capacità di servizio della risorsa i-esima, espressa
A.G. Nobile
100
CAPITOLO 6. RETI DI JACKSON
da si µi . Come vedremo nel seguito la condizione sotto la quale una rete di code
aperta di Jackson ammette una distribuzione di equilibrio è che la capacità
di servizio di ciascuna risorsa sia strettamente maggiore della frequenza media
complessiva degli arrivi a quella risorsa.
6.4.2
Frequenza media di uscita dalla rete
Come appare anche evidente in Figura 6.7, nella situazione di equilibrio statistico i processi di output verso l’esterno di una rete aperta di Jackson sono processi di Poisson indipendenti con parametro αi pi0 per la risorsa i-esima
(i = 1, 2, . . . , R).
Per una rete aperta di Jackson, in situazione di equilibrio statistico le frequenze complessive di input dall’esterno e di uscita dalla rete sono uguali, ossia
risulta:
R
R
X
X
αi pi0 .
(6.19)
λj =
j=1
i=1
Infatti, ricordando inoltre la (6.17), si ha:
R
X
αi pi0 =
i=1
i=1
=
R
X
R
X
i=1
αi −
X
R X
R
R
R
X
X
αi pij
αi −
pij =
αi 1 −
R
X
j=1
i=1
j=1
(αj − λj ) =
R
X
j=1 i=1
λj .
j=1
Si nota che se la risorsa è unica come nel caso del sistema M/M/1 con feedback,
discusso nel Paragrafo 6.2, la (6.19) diventa λ = α1 p, ossia α1 = λ/p. Invece per
i due sistemi di servizio M/M/1 in serie con feedback discussi nel Paragrafo 6.3,
la (6.19) diventa λ = α1 p10 + α2 p20 = α2 p, da cui segue che α2 = λ/p.
La classe delle reti aperte di Jackson è abbastanza generale. Infatti, arrivi
dall’esterno possono giungere a qualsiasi risorsa, gli utenti possono uscire dalla
rete in qualunque risorsa e infine può essere presente feedback di utenti tra le diverse risorse, come ad esempio avviene tipicamente allorché un pezzo che risulta
difettoso al collaudo viene rispedito in lavorazione. Occorre comunque sottolineare che tutti gli utenti (pezzi, job, . . .) che arrivano ad un centro di servizio
(centro di lavorazione) sono trattati allo stesso modo dal servitore indipendentemente dal fatto che essi visitino una determinata risorsa per la prima volta o
meno. Inoltre, il modello delle reti di Jackson si basa sull’assunzione di tempi
di servizio distribuiti esponenzialmente e sull’ipotesi che gli utenti accedono alle
risorse dall’esterno secondo processi di Poisson.
In alcune situazioni reali le ipotesi delle reti di Jackson non si rivelano ragionevoli, ad esempio quando i tempi di lavorazione sono con ottima approssimazione deterministici, ossia di durata costante. L’analisi della rete richiederebbe
l’uso di singole risorse non descrivibili con sistemi di servizio di tipo M/M/s e
questo complicherebbe notevolmente la trattazione matematica. Comunque, la
A.G. Nobile
6.4. RETI DI JACKSON
101
maggiore precisione che si otterrebbe adottando modelli più aderenti alla realtà
non è tale da compensare lo sforzo matematico e computazionale aggiuntivo.
6.4.3
Il teorema di Jackson
Sia q(n1 , n2 , . . . , nR ) la probabilità che in condizioni di equilibrio statistico la
rete aperta di Jackson sia nello stato n = (n1 , n2 , . . . , nR ), dove ni denota il
numero di utenti presenti nella i-esima risorsa (i = 1, 2 . . . , R)
Teorema 6.1 (Teorema di Jackson) Nelle ipotesi (1)–(7) precedentemente elencate, se
αi
̺i =
<1
(i = 1, 2. . . . , R),
(6.20)
s i µi
dove α1 , α2 , . . . , αR sono soluzioni delle equazioni di conservazione dei parametri
di arrivo (6.17), allora la probabilità di equilibrio che la rete aperta di Jackson
si trovi nello stato (n1 , n2 , . . . , nR ), dove ni denota il numero di utenti presenti
nella i-esima risorsa, ha la forma prodotto
q(n1 , n2 , . . . , nR ) = q1 (n1 ) q2 (n2 ) · · · qR (nR ),
(6.21)
dove le probabilità qi (k) di avere k utenti nella i-esima risorsa (i = 1, 2, . . . , R)
sono:
qi (0) = P (Ni = 0) =
qi (k) = P (Ni = k) =
i −1
hsX
(αi /µi )n
(αi /µi )si i−1
,
+
n!
si ! (1 − ̺i )
n=0

(αi /µi )k


,

 qi (0)
k!

(αi /µi )k


,
 qi (0)
si ! sik−si
(6.22)
k = 1, 2, . . . , si
k = si + 1, si + 2, . . . .
Dimostrazione Si procede come per la rete costituita da due sistemi M/M/1
in serie con feedback discussa nel Paragrafo 6.3. Infatti, la dimostrazione consisterà nell’individuare per ogni singolo nodo della rete il flusso medio entrante
ed uscente pervenendo cosı̀ a scrivere il sistema di equazioni di bilanciamento
e mostrando poi che le (6.22) sono soluzioni di tale sistema. Facendo ricorso
alla teoria dei processi di Markov, si mostrerà infine che se sussistono le ipotesi (6.20) tale soluzione corrisponde alla distribuzione di equilibrio della rete di
Jackson.
In primo luogo per ogni i = 1, 2, . . . , R consideriamo le funzioni:
n n = 0, 1, . . . , si − 1
ψi (n) = min(n.si ) =
(6.23)
si n = si , si + 1, . . .
e la funzione indicatrice:
δ(n) =
A.G. Nobile
0
1
n<0
n = 0, 1, . . .
(6.24)
102
CAPITOLO 6. RETI DI JACKSON
Si nota che ψi (n) µi rappresenta la frequenze di partenza dalla risorsa i-esima
della rete costituita da si servitori quando in tale risorsa sono presenti n utenti;
ovviamente risulta ψi (0) = 0. Inoltre, la funzione indicatrice δ(n) sarà utile per
considerare transizioni soltanto da stati con numero di utenti non negativi.
Nella situazione di equilibrio statistico denotiamo con q(n1 , n2 , . . . , nR ) la
probabilità che la rete aperta di Jackson con R risorse disponibili si trovi nello
stato n = (n1 , n2 , . . . , nR ) e denotiamo con γ(n, m) la frequenza di transizione
dallo stato n ad un generico stato m e con γ(m, n) la frequenza di transizione
da un generico stato m allo stato n. Vogliamo determinare le frequenze di
transizione γ(n, m) e γ(m, n) per ogni possibile stato m della rete.
Distinguiamo i seguenti casi:
(a) un utente arriva dall’esterno in una risorsa della rete e quindi si incrementa
il numero di utenti presenti in tale risorsa. In tal caso sono possibili le
seguenti transizioni di stato:
• l’utente arriva dall’esterno alla risorsa i-esima della rete:
n = (n1 , . . . , ni , . . . , nj , . . . , nR ) −→ x = (n1 , . . . , ni + 1, . . . , nj , . . . , nR )
con frequenza di transizione da n a x:
γ(n, x) = λi .
• l’utente arriva dall’esterno alla risorsa j-esima della rete:
z = (n1 , . . . , ni , . . . , nj − 1, . . . , nR ) −→ n = (n1 , . . . , ni , . . . , nj , . . . , nR )
con frequenza di transizione da z a n:
γ(z, n) = λj δ(nj − 1).
(b) un utente lascia una risorsa (avendo completato il servizio in uno dei servitori disponibili in tale risorsa) uscendo dalla rete. In tal caso sono possibili
le seguenti transizioni di stato:
• l’utente lascia la risorsa i-esima uscendo dalla rete:
x = (n1 , . . . , ni + 1, . . . , nj , . . . , nR ) −→ n = (n1 , . . . , ni , . . . , nj , . . . , nR )
con frequenza di transizione da x a n:
R
i
h
X
pij ψi (ni + 1) µi
γ(x, n) = pi0 ψi (ni + 1) µi = 1 −
j=1
• l’utente lascia la risorsa j-esima uscendo dalla rete:
n = (n1 , . . . , ni , . . . , nj , . . . , nR ) −→ z = (n1 , . . . , ni , . . . , nj − 1, . . . , nR )
con frequenza di transizione da n a z:
R
i
h
X
pjk ψj (nj ) µj
γ(n, z) = pj0 ψj (nj ) µj = 1 −
k=1
A.G. Nobile
6.4. RETI DI JACKSON
103
(c) un utente lascia la risorsa h-esima per andare alla risorsa k-esima, aumentando di un’unità il numero di utenti della risorsa k-esima e diminuendo
di un’unità il numero di utenti della risorsa h-esima. In questo caso sono
possibili le seguenti transizioni di stato:
• un utente lascia la risorsa i-esima per andare alla risorsa j-esima
y = (n1 , . . . , ni +1, . . . , nj −1, . . . , nR ) −→ n = (n1 , . . . , ni , . . . , nj , . . . , nR )
con frequenza di transizione da y a n:
γ(y, n) = pij ψi (ni + 1) µi δ(nj − 1)
• un utente lascia la risorsa j-esima per andare alla risorsa i-esima
n = (n1 , . . . , ni , . . . , nj , . . . , nR ) −→ y = (n1 , . . . , ni +1, . . . , nj −1, . . . , nR )
con frequenza di transizione da n a y:
γ(n, y) = pji ψj (nj ) µj
In Figura 6.8 sono visualizzate le frequenze di transizione precedentemente
considerate.
Per ogni stato n della rete assumiamo che valga il principio di bilanciamento:
X
R
λi +
j=1
i=1
=
R
X
R
X
ψj (nj ) µj
q(n1 , n2 , . . . , nR )
λj δ(nj − 1) q(n1 , . . . , ni , . . . , nj − 1, . . . , nR )
j=1
+
R h
X
1−
i=1
+
R X
R
X
R
X
j=1
i
pij ψi (ni + 1) µi q(n1 , . . . , ni + 1, . . . , nj , . . . , nR )
pij ψi (ni + 1) µi δ(nj − 1) q(n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR ). (6.25)
i=1 j=1
Nella (6.25) al primo membro è presente il flusso medio con cui il processo esce
dallo stato n = (n1 , n2 , . . . , nR ) mentre al secondo membro è riportato il flusso
medio con cui il processo entra nello stato n.
Occorre ora dimostrare che q(n1 , n2 , . . . , nR ) fornita in (6.21) è una soluzione
dell’equazione (6.25). Facendo uso di (6.21) e (6.22) si nota che
q(n1 , . . . , ni + 1, . . . , nj , . . . , nR )
qi (ni + 1)
=
q(n1 , n2 , . . . , nR )
qi (ni )

αi

ni = 0, 1, . . . , si − 1

αi
µi (ni + 1)
=
=
 αi
ψi (ni + 1) µi 
ni = si , si + 1, . . .
µi s i
A.G. Nobile
(6.26)
104
CAPITOLO 6. RETI DI JACKSON
γ(z, n) = λj δ(nj − 1)
x
z
k
Q
(j = 1, 2, . . . , R) Q
Q
Q
>
Q γ(n, x) = λi
Q
Q (i = 1, 2, . . . , R) Q
Q
Q
R
R
Q X
X
Q
=
Q
pjk ψj (nj ) µj
γ(x, n) = 1 −
pij ψi (ni + 1) µiQ
γ(n, z) = 1 −
Q
j=1
k=1
s n Q
6
(i = 1, 2, . . . , R)
γ(y, n) = pij ψi (ni + 1) µi δ(nj − 1)
γ(n, y) = pji ψj (nj ) µj
(i, j = 1, 2, . . . , R)
(i, j = 1, 2, . . . , R)
(j = 1, 2, . . . , R)
?
y
n = (n1 , . . . , ni , . . . , nj , . . . , nR )
x = (n1 , . . . , ni + 1, . . . , nj , . . . , nR )
y = (n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR )
z = (n1 , . . . , ni , . . . , nj − 1, . . . , nR )
Figura 6.8: Grafo di transizione per lo stato n = (n1 , n2 , . . . , nR ) della rete
aperta di Jackson.
qj (nj − 1)
q(n1 , . . . , ni , . . . , nj − 1, . . . , nR )
=
q(n1 , n2 , . . . , nR )
qj (nj )
 µj n j

nj = 1, 2, . . . , sj
 α
ψj (nj ) µj
j
(6.27)
=
= µj s j

αj

nj = sj + 1, sj + 2, . . .
αj
q(n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR )
qi (ni + 1) qj (nj − 1)
=
q(n1 , n2 , . . . , nR )
qi (ni )
qj (nj )

µj n j
αi

nj = 1, 2, . . . , sj
 µ (n + 1) α
αi
ψj (nj ) µj
i
i
j
(6.28)
=
=
α µj s j

ψi (ni + 1) µi
αj
 i
nj = sj + 1, sj + 2, . . .
µi si αj
Dividendo entrambi i membri della (6.25) per q(n1 , n2 , . . . , nR ) e facendo uso di
(6.26), (6.27) e (6.28) si ottiene:
X
R
λi +
i=1
A.G. Nobile
R
X
j=1
ψj (nj ) µj
=
R
X
j=1
λj δ(nj − 1)
h ψ (n ) µ i
j
j
j
αj
6.4. RETI DI JACKSON
+
R h
X
1−
j=1
i=1
+
R
X
R X
R
X
i=1 j=1
105
h
i
pij ψi (ni + 1) µi
i
αi
ψi (ni + 1) µi
h
pij ψi (ni + 1) µi δ(nj − 1)
αi
ψj (nj ) µj i
,
ψi (ni + 1) µi
αj
ossia
X
R
λi +
ψj (nj ) µj
R
X
i
j=1
i=1
+
R
X
R
X
h
αi 1 −
i=1
=
pij +
j=1
R
X
λj δ(nj − 1)
j=1
R
R X
X
h ψ (n ) µ i
j
j
j
αj
pij αi δ(nj − 1)
i=1 j=1
ψj (nj ) µj
·
αj
(6.29)
Ricordando (6.17) e (6.19) si nota che sussistono le seguenti uguaglianze:
R
X
i=1
R
R
R
i X
h
X
X
λj ,
αi pi0 =
pij =
αi 1 −
R X
R
X
pij αi δ(nj − 1)
i=1 j=1
=
R
X
δ(nj − 1)
j=1
=
R
X
(6.30)
j=1
i=1
j=1
R
R
X
ψj (nj ) µj
ψj (nj ) µj X
αi pij
δ(nj − 1)
=
αj
αj
i=1
j=1
ψj (nj ) µj
(αj − λj )
αj
δ(nj − 1) ψj (nj ) µj −
R
X
λj δ(nj − 1)
j=1
j=1
ψj (nj ) µj
αj
(6.31)
Facendo uso di (6.30) e (6.31) in (6.29) si ottiene:
X
R
i=1
λi +
R
X
j=1
ψj (nj ) µj
=
R
X
λj +
R
X
δ(nj − 1) ψj (nj ) µj
j=1
j=1
che risulta essere un’identità poiché ψj (nj ) = δ(nj − 1) ψj (nj ). Abbiamo cosı̀
dimostrato che q(n1 , n2 , . . . , nR ) fornita in (6.21) è una soluzione dell’equazione
(6.25). Inoltre (6.21) soddisfa la condizione di normalizzazione, ossia
X
X
X
X
q(nR ) = 1.
q(n2 ) · · ·
q(n1 )
q(n1 , n2 , . . . , nR ) =
n
n1
n2
nR
Dalla teoria dei processi di Markov segue che se esiste una soluzione positiva
delle equazioni di bilanciamento di un catena di Markov irriducibile e se tale
soluzione soddisfa la condizione di normalizzazione, allora tale soluzione fornisce
la distribuzione di equilibrio del processo. Essendo la catena di Markov relativa agli stati della rete aperta di Jackson irriducibile, abbiamo cosı̀ dimostrato
l’unicità della soluzione.
A.G. Nobile
106
CAPITOLO 6. RETI DI JACKSON
Il Teorema 6.1 mostra che nella situazione di equilibrio statistico, la rete aperta
di Jackson può essere riguardata come composta da R sistemi di servizio indipendenti, dove la risorsa i-esima della rete è descrivibile mediante un sistema di
servizio M/M/si con frequenza di arrivo αi e frequenza di partenza da ognuno
degli si servitori µi (i = 1, 2, . . . , R). Questo implica che nella situazione di
equilibrio le variabili aleatorie N1 , N2 , . . . , NR , descriventi il numero di utenti
presenti nelle varie risorse della rete, sono indipendenti. La (6.21) costituisce
quella che (come già si era anticipato) va sotto il nome di soluzione in forma
prodotto, in quanto la probabilità che in condizioni di equilibrio statistico il sistema si trovi in un certo stato (n1 , n2 , . . . , nR ) è esattamente uguale al prodotto
delle probabilità che le singole risorse che costituiscono la rete si trovino nei
rispettivi stati nj (j = 1, 2, . . . , nR ) indipendentemente da ciò che avviene nelle
altre risorse. La soluzione in forma prodotto dipende solo dalla struttura della
rete, dalle frequenze medie di arrivo αi , dalle frequenze medie di partenza µi e
dal numero di servitori delle singole risorse della rete.
Occorre sottolineare che il processo totale degli input ad una specifica risorsa
della rete non è necessariamente di Poisson anche se la rete ha raggiunto la
situazione di equilibrio statistico. Per questa ragione il teorema di Jackson è di
notevole interesse nell’analisi delle reti di code aperte.
Il Teorema 6.1 si semplifica notevolmente se ogni risorsa della rete aperta di
Jackson è dotata di un unico servitore. In questo caso ponendo si = 1 per ogni
i = 1, 2, . . . , R nel Teorema 6.1 si ottiene il seguente risultato.
Proposizione 6.1 In una rete aperta di Jackson con R risorse disponibili ognuna con singolo servitore, supponiamo che risulti
̺i =
αi
<1
µi
(i = 1, 2. . . . , R),
dove α1 , α2 , . . . , αR sono soluzioni delle equazioni di conservazione dei parametri
di arrivo (6.17). Allora, nella situazione di equilibrio la probabilità che la rete
si trovi nello stato (n1 , n2 , . . . , nR ), dove ni denota il numero di utenti presenti
nella i-esima risorsa, ha la forma prodotto
q(n1 , n2 , . . . , nR ) = (1 − ̺1 ) ̺ni 1 (1 − ̺2 ) ̺ni 2 · · · (1 − ̺R ) ̺nRR .
(6.32)
Riassumendo, sotto le ipotesi del Teorema 6.1 di Jackson, in condizioni
di equilibrio statistico è possibile effettuare lo studio delle reti di code aperte
secondo una procedura di massima che possiamo riassumere nei seguenti passi:
(a) determinare le frequenze medie complessive degli arrivi α1 , α2 , . . . , αR alle
R risorse della rete tramite il sistema (6.17);
(b) analizzare ogni singola risorsa indipendentemente dalle altre risorse e verificare che valgano le (6.20);
(c) aggregare opportunamente i risultati per avere indicazioni sul sistema
complessivo.
A.G. Nobile
6.4. RETI DI JACKSON
107
Essendoci finora soffermati sui passi (a) e (b), analizziamo ora il punto (c),
ossia vediamo in che modo occorre aggregare i risultati relativi alle singole risorse
della rete aperta di Jackson. Il fatto che in condizioni di equilibrio statistico le
risorse si comportino come sistemi di servizio indipendenti facilita enormemente
il problema di calcolare i parametri prestazionali di maggiore interesse relativi
al funzionamento globale del sistema.
6.4.4
Indici di prestazione di una rete di Jackson
La conoscenza della distribuzione di probabilità di equilibrio (6.21) consente di
determinare gli indici di prestazione locali e globali della rete stessa, quali il
numero medio di utenti nella rete e il tempo medio di attesa di un utente nella
rete, oltre che il tempo medio trascorso da un utente in ogni singola risorsa della
rete.
Numero medio di utenti
Nella situazione di equilibrio statistico il numero medio di utenti presenti nella
risorsa i-esima è
 αi

si = 1
µ −α
i
i
E(Ni ) = α
(i = 1, 2, . . . , R)
 i + ̺i C s , α /µ s = 2, 3, . . .

i
i
i
i
µi
1 − ̺i
(6.33)
dove ̺i = αi /(si µi ) e C si , αi /µi = P (Ni ≥ si ), definita in (3.36), è la formula
C di Erlang.
Denotando con N la variabile aleatoria che descrive il numero complessivo
di utenti presenti nella rete aperta di Jackson con R risorse, se ̺i < 1 per ogni
i = 1, 2, . . . , R il numero medio di utenti presenti nella rete nella situazione di
equilibrio statistico è:
R
X
E(Ni )
(6.34)
E(N ) =
i=1
Tempo medio di attesa
Utilizzando poi la legge di Little locale segue che nella situazione di equilibrio
statistico il tempo medio di attesa degli utenti nella i-esima risorsa in ogni
singola visita è:

1

si = 1


µi − αi
E(Ni )
E(Wi ) =
=
(i = 1, 2, . . . , R)

αi
C si , αi /µi
1


+
si = 2, 3, . . .
µi
µi si − αi
(6.35)
Utilizzando nuovamente la legge di Little locale (4.14), il numero medio di utenti
presenti in una rete aperta di Jackson con R risorse si può anche scrivere:
E(N ) =
R
X
i=1
A.G. Nobile
αi E(Wi ).
(6.36)
108
CAPITOLO 6. RETI DI JACKSON
Applicando poi la legge di Little globale, se ̺i < 1 (i = 1, 2, . . . , R) il tempo
medio complessivo di attesa degli utenti nella rete è
R
E(W ) =
X
αi
E(N )
=
E(Wi ).
λ1 + λ2 + . . . + λR
λ
+
λ
+
. . . + λR
1
2
i=1
(6.37)
Supponiamo ora di volere determinare il tempo medio trascorso da un utente
nella i-esima risorsa. A tal fine, osserviamo che E(Wi ) rappresenta il tempo
medio che un utente trascorre nella i-esima risorsa in ogni singola visita. Tale
valore coincide con il tempo medio trascorso da un utente nella i-esima risorsa
soltanto se l’utente visita tale risorsa una ed una sola volta. In generale, tuttavia,
un utente visita la risorsa i-esima una o più volte. Analizzando le singole risorse
separatamente, non sappiamo se la frequenza media complessiva αi di arrivi per
unità di tempo alla i-esima risorsa (i = 1, 2, . . . , R) sia dovuta ad utenti sempre
diversi (che giungono dall’esterno o da altre risorse per la prima volta) oppure
anche ad utenti che hanno già visitato precedentemente tale risorsa.
Numero medio di visite
Indichiamo con νi il numero medio di visite di un utente nella risorsa i-esima
(i = 1, 2, . . . , R). I numeri medi di visite ν1 , ν2 , . . . , νR sono molto semplici da
calcolare. Prendendo in esame la i-esima risorsa della rete, osserviamo che la
frazione di utenti provenienti dall’esterno che visitano la risorsa i-esima per la
prima volta è λi /(λ1 + λ2 + . . . + λR ); tale rapporto coincide con la probabilità
che un utente proveniente dall’esterno entri nella i-esima risorsa (i = 1, 2, . . . , R)
della rete. Inoltre una frazione pji di utenti (j = 1, 2, . . . , R) che hanno transitato nella j-esima risorsa vengono instradati alla i-esima risorsa della rete. Si
ottiene quindi il sistema:
R
νi =
X
λi
νj pji
+
R
X
j=1
λj
(i = 1, 2, . . . , R).
j=1
nelle incognite ν1 , ν2 , . . . , νR . Ricordando (6.17), segue che il precedente sistema
ammette un’unica soluzione data da:
αi
(i = 1, 2, . . . , R).
(6.38)
νi =
λ1 + λ2 + . . . + λR
Tempo medio complessivo nelle file di attesa e nei centri di servizio
Poiché E(Wi ) rappresenta il tempo medio che un utente trascorre nella risorsa
i-esima in ogni singola visita, il tempo medio complessivo trascorso da un utente
nella risorsa i-esima è:
E(Wic ) = νi E(Wi )
(i = 1, 2, . . . , R),
(6.39)
da cui si ricava il tempo medio complessivo trascorso da un utente nella rete:
E(W ) =
R
X
i=1
A.G. Nobile
E(Wic ) =
R
X
i=1
νi E(Wi )
(i = 1, 2, . . . , R),
(6.40)
6.4. RETI DI JACKSON
109
che coincide con la (6.37).
Osserviamo inoltre che il tempo medio che un utente trascorre nella risorsa
i-esima in ogni singola visita è la somma del tempo medio trascorso nella fila di
attesa e del tempo trascorso nel centro di servizio in ogni singola visita, ossia
E(Wi ) = E(Qi ) + E(Si ) (i = 1, 2, . . . , R). Pertanto dalla (6.39) segue anche
che i tempi medi complessivi trascorsi da un utente nella fila di attesa e nel
centro di servizio della i-esima risorsa sono rispettivamente:
E(Qci ) = νi E(Qi ),
E(Sic ) = νi E(Si )
(i = 1, 2, . . . , R).
(6.41)
Ricordando poi la (6.40), si ricava il tempo medio complessivo trascorso da un
utente nelle file di attesa e nei centri di servizio delle varie risorse della rete
sono rispettivamente:
E(Q) =
R
X
νi E(Qi ),
E(S) =
R
X
νi E(Si )
(i = 1, 2, . . . , R).
(6.42)
i=1
i=1
Una rete è congestionata quando almeno una delle sue risorse è congestionata. Al crescere del carico di lavoro (numero di utenti nel sistema), alcuni centri
di servizio delle singole risorse della rete potrebbero diventare costantemente
occupati. Quando ciò si verifica sia il numero medio di utenti sia il tempo di
attesa degli utenti nella rete crescono indefinitamente.
Risorsa meno efficiente e massimo throughput della rete
Nell’analisi delle reti di code è quindi importante determinare la risorsa meno
efficiente di tutto il sistema, spesso chiamata collo di bottiglia della rete (bottleneck device). La risorsa meno efficiente della rete (il collo di bottiglia della rete),
si identifica con la risorsa che per prima raggiunge un fattore di utilizzazione
unitario.
Se denotiamo con
n α
α2
αR o
1
β = max(̺1 , ̺2 , . . . , ̺R ) = max
,
(6.43)
,
,...,
s 1 µ1 s 2 µ2
s R µR
il collo di bottiglia di una rete si identifica con la risorsa i-esima per la quale
risulta ̺i = β.
Ricordando la (6.38), si nota che la (6.43) si può anche scrivere:
R
n ν
ν2
νR o X
1
β = max
λj ,
,
,...,
s 1 µ1 s 2 µ2
sR µR j=1
R
h
ns µ s µ
sR µR oi−1 X
2 2
1 1
λj ,
,
,...,
= min
ν1
ν2
νR
j=1
(6.44)
o equivalentemente:
ns µ s µ
s R µR o
1 1
2 2
λj = β min
.
,
,...,
ν1
ν2
νR
j=1
R
X
A.G. Nobile
(6.45)
110
CAPITOLO 6. RETI DI JACKSON
Poiché in condizioni di equilibrio deve risultare β < 1, dalla (6.45) si ricava
l’importante disuguaglianza:
ns µ s µ
s R µR o
1 1
2 2
λj < Λmax = min
,
,
,...,
ν1
ν2
νR
j=1
R
X
(6.46)
dove la quantità Λmax rappresenta la massima capacità di trasporto o massima
capacità produttiva della rete ed è detta anche massimo throughput della rete.
La disuguaglianza (6.46) mostra che la frequenza complessiva di input dall’esterno alla rete aperta di Jackson deve essere sempre inferiore alla massima
capacità di trasporto della rete.
L’algoritmo per l’analisi di una rete aperta di Jackson può allora essere cosı̀
schematizzato:
⋄ Algoritmo
Fornire in input la struttura della rete aperta di Jackson con R risorse precisando
i parametri dei processi di input di Poisson alle singole risorse, il numero di
servitori per ogni risorsa, i tempi medi di servizio per ognuno dei servitori delle
singole risorse e la matrice di diramazione D.
• Step 1: determinare la soluzione del sistema di equazioni (6.17) per calcolare α1 , α2 , . . . , αR , dove αi è la frequenza complessiva degli arrivi alla
i-esima risorsa della rete;
• Step 2: determinare i fattori di utilizzazione ̺1 , ̺2 , . . . , ̺R delle singole
risorse della rete in modo da verificare le (6.20) stabilendo le condizioni
necessarie a garantire che la rete raggiunga una situazione di equilibrio
statistico;
• Step 3:
nella situazione di equilibrio statistico calcolare le probabilità
qi (ni ) di avere ni utenti nella risorsa i-esima della rete (i = 1, 2, . . . , R)
utilizzando le formule del sistema M/M/si con frequenza di arrivo αi e
frequenza di partenza per servitore µi ; successivamente calcolare la probabilità q(n1 , n2 , . . . , nR ) che la rete si trovi nello stato (n1 , n2 , . . . , nR )
utilizzando la soluzione in forma prodotto (6.21);
• Step 4: calcolare gli indici di prestazione locali e globali della rete:
(a) il numero medio di utenti E(Ni ) presenti nelle singole risorse (i =
1, 2, . . . , R),
(b) il tempo medio di attesa E(Wi ) = E(Ni )/αi di un utente in ogni
singola visita della i-esima risorsa della rete utilizzando la legge di Little
locale (i = 1, 2, . . . , R);
(c) il numero medio di volte νi = αi /(λ1 + λ2 + . . . + λR ) in cui la risorsa
i-esima è visitata (i = 1, 2, . . . , R);
(d) il tempo medio complessivo di attesa E(Wic ) = νi E(Wi ) di un utente
nella i-esima risorsa della rete (i = 1, 2, . . . , R);
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
111
(e) il numero medio di utenti E(N ) = E(N1 ) + E(N2 ) + . . . + E(NR )
presenti nella rete;
(f ) il tempo medio di attesa E(W ) di un utente nell’intera rete utilizzando
la legge di Little globale E(W ) = E(N )/(λ1 + λ2 + . . . + λR ) oppure
equivalentemente E(W ) = E(W1c ) + E(W2c ) + . . . + E(WRc );
• Step 5:
determinare la risorsa meno efficiente (collo di bottiglia della
rete), ossia la risorsa che per prima raggiunge un fattore di utilizzazione
unitario; calcolare la massima capacità di trasporto (massimo throughput)
Λmax della rete.
6.5
Esempi di reti di Jackson
Vogliamo ora utilizzare l’algoritmo di Jackson per determinare gli indici di
prestazione locali e globali di alcune reti aperte.
Esempio 6.1 Riconsideriamo la rete aperta di Jackson illustrata in Figura 6.1
costituita da un sistema di servizio M/M/1 con feedback. Tale rete è caratterizzata da
- numero di risorse R = 1,
- singolo servitore con tempi di servizio distribuiti esponenzialmente con valore
medio 1/µ,
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ,
- disciplina di servizio FIFO,
- matrice di diramazione di cardinalità 1 × 2:
D =1
1
1−p
con la condizione 0 < p ≤ 1.
Stop
p
Step 1: Il sistema (6.17) è costituito dall’unica equazione
α1 = λ + α1 (1 − p),
la cui soluzione è
α1 =
λ
≥ λ.
p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺=
A.G. Nobile
λ
α1
=
< 1.
µ
µp
112
CAPITOLO 6. RETI DI JACKSON
Step 3: Applicando il teorema di Jackson, se λ < µ p la probabilità di avere n
utenti presenti nella rete è:
α1 α1 n λ λ n
qn = 1 −
= 1−
µ
µ
µp
µp
(n = 0, 1, . . .),
che si identifica con la (6.2). Si nota che saremmo giunti agli stessi risultati se avessimo considerato un sistema di servizio M/M/1 senza feedback con
frequenza di arrivo λ e frequenza di partenza µ p.
Step 4: Se λ < µ p dalle (6.33) e (6.35) si ottiene:
E(N ) =
λ
,
µp − λ
E(W1 ) =
E(N )
p
=
,
λ/p
µp − λ
E(W ) =
E(N )
1
=
·
λ
µp − λ
dove E(W1 ) rappresenta il tempo medio di attesa in ogni singola visita e E(W )
il tempo complessivo di attesa.
Step 5: Si nota che β = ̺ = λ/(µ p). La massima capacità di trasporto (massimo
throughput) della rete in Figura 6.1 è
Λmax = µ p.
λ
µp
E(N)
Figura 6.9: Rappresentazione di λ in funzione di E(N ) per la rete di Figura 6.1.
Alla determinazione di Λmax si poteva giungere anche in modo diverso ricavando
λ dall’espressione del numero medio E(N ) di utenti presenti nella rete:
λ=
µ p E(N )
·
1 + E(N )
Come mostrato in Figura 6.9, la funzione al secondo membro è strettamente
crescente in E(N ) e tende asintoticamente al massimo throughput della rete,
ossia a µ p.
♦
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
113
Esempio 6.2 Riconsideriamo la rete aperta di Jackson illustrata in Figura 6.4
costituita da due sistemi di servizio M/M/1 collegati in serie con feedback
caratterizzata da:
- numero di risorse R = 2,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 2 × 3:
1
D=
2
1
0
1−p
2 Stop
1
0
0
p
con la condizione 0 < p ≤ 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti due equazioni
α1 = λ + α2 (1 − p)
α2 = α1 ,
la cui soluzione è
α1 = α2 =
λ
≥ λ.
p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
λ
α1
=
< 1,
µ1
µ1 p
̺2 =
λ
α2
=
< 1,
µ2
µ2 p
ossia se
λ < min(µ1 p, µ2 p).
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di avere n1 utenti nella prima risorsa e n2 utenti nella seconda
risorsa è:
λ λ n1 λ λ n2
q(n1 , n2 ) = 1 −
1−
(n1 , n2 = 0, 1, . . .)
µ1 p
µ1 p
µ2 p
µ2 p
che si identifica con la (6.12). Occorre sottolineare che saremmo giunti agli stessi
risultati se avessimo considerato una rete tandem con due risorse ognuna con
unico servitore, con la prima risorsa caratterizzata da frequenza di arrivo λ e
frequenza di partenza µ1 p e con la seconda risorsa caratterizzata da frequenza
di arrivo λ e frequenza di partenza µ2 p.
A.G. Nobile
114
CAPITOLO 6. RETI DI JACKSON
Step 4: Se λ < min(µ1 p, µ2 p), si ottiene:
̺1
λ
λ
̺2
=
=
,
E(N2 ) =
,
1 − ̺1
µ1 p − λ
1 − ̺2
µ2 p − λ
p
p
E(N1 )
E(N2 )
=
=
E(W1 ) =
,
E(W2 ) =
,
α1
µ1 p − λ
α2
µ2 p − λ
α1
1
α2
1
ν1 =
= ,
ν2 =
= ,
λ
p
λ
p
1
1
E(W1c ) = ν1 E(W1 ) =
,
E(W2c ) = ν2 E(W2 ) =
µ1 p − λ
µ2 p − λ
h
i
1
1
E(N ) = E(N1 ) + E(N2 ) = λ
,
+
µ1 p − λ µ2 p − λ
E(N )
1
1
E(W ) =
=
+
·
λ
µ1 p − λ µ2 p − λ
E(N1 ) =
Si nota che ν1 = ν2 > 1, ossia il numero medio di visite in ognuna delle due
risorse è maggiore dell’unità. Inoltre
E(W1c ) > E(W1 ),
E(W2c ) > E(W2 ).
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.4.
Poiché risulta
n 1
n λ
λ o
1 o
= λ max
,
,
,
β = max(̺1 , ̺2 ) = max
µ1 p µ2 p
µ1 p µ2 p
il collo di bottiglia della rete è
- la prima risorsa se µ1 < µ2 , ossia se E(S1 ) > E(S2 ),
- la seconda risorsa se µ1 > µ2 , ossia se E(S1 ) < E(S2 ).
Poiché
h
i−1
< 1 ⇐⇒ λ < min(µ1 p, µ2 p),
β = λ min(µ1 p, µ2 p)
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.4
è:
Λmax = min(µ1 p, µ2 p).
♦
Esempio 6.3 Modifichiamo ora la rete in Figura 6.4 considerando la rete aperta
di Jackson illustrata in Figura 6.10 costituita da due sistemi di servizio M/M/1
collegati in serie con feedback. Tale rete è caratterizzata da:
- numero di risorse R = 2,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2),
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
115
Feedback
?
Risorsa 1
-
λ
p
µ1
Risorsa 2
1−p
6
-
µ2
?
Figura 6.10: Due sistemi di servizio M/M/1 collegati in serie con feedback.
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 2 × 3:
1
2
D=
1
2
0 1−p
1
0
Stop
p
0
con la condizione 0 < p ≤ 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti due equazioni
α1 = λ + α2
α2 = α1 (1 − p),
la cui soluzione è
α1 =
λ
p
α2 =
λ (1 − p)
·
p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
ossia se
α1
λ
=
< 1,
µ1
µ1 p
̺2 =
λ (1 − p)
α2
=
< 1,
µ2
µ2 p
n
µ2 p o
.
λ < min µ1 p,
1−p
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di avere n1 utenti nella prima risorsa e n2 utenti nella seconda
risorsa è:
λ λ n1 h λ (1 − p) i h λ (1 − p) in2
1−
q(n1 , n2 ) = 1−
(n1 , n2 = 0, 1, . . .)
µ1 p
µ1 p
µ2 p
µ2 p
Step 4: Se λ < min{µ1 p, µ2 p/(1 − p)} si ottiene:
E(N1 ) =
A.G. Nobile
̺1
λ
=
,
1 − ̺1
µ1 p − λ
E(N2 ) =
λ (1 − p)
̺2
=
,
1 − ̺2
µ2 p − λ (1 − p)
116
CAPITOLO 6. RETI DI JACKSON
E(N1 )
p
p
E(N2 )
=
=
,
E(W2 ) =
,
α1
µ1 p − λ
α2
µ2 p − λ (1 − p)
α1
1
α2
1−p
ν1 =
= ,
ν2 =
=
,
λ
p
λ
p
1
1−p
E(W1c ) = ν1 E(W1 ) =
, E(W2c ) = ν2 E(W2 ) =
µ1 p − λ
µ2 p − λ (1 − p)
h
i
1
1−p
,
E(N ) = E(N1 ) + E(N2 ) = λ
+
µ1 p − λ µ2 p − λ (1 − p)
1
1−p
E(N )
=
+
·
E(W ) =
λ
µ1 p − λ µ2 p − λ (1 − p)
E(W1 ) =
Si nota che ν1 > ν2 , ossia il numero medio di visite alla prima risorsa è maggiore
del numero medio di visite alla seconda risorsa della rete. Inoltre per la prima
risorsa ν1 > 1 mentre per la seconda risorsa ν2 > 1 se p < 1/2, ν2 = 1 se
p = 1/2, e ν2 < 1 se p > 1/2. Risulta inoltre che
E(W1c )
> E(W1 ),
E(W2c ) < E(W2 ) p > 1/2
E(W2c ) = E(W2 ) p = 1/2
E(W2c ) > E(W2 ) p < 1/2.
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.10.
Essendo
n 1 1 − po
n λ λ (1 − p) o
= λ max
,
,
β = max(̺1 , ̺2 ) = max
µ1 p
µ2 p
µ1 p µ2 p
il collo di bottiglia della rete è
- la prima risorsa della rete se µ1 (1 − p) < µ2 , ossia se E(S1c ) > E(S2c ) (il
tempo complessivo di servizio nella prima risorsa è maggiore del tempo
complessivo di servizio nella seconda risorsa),
- la seconda risorsa della rete se µ1 (1 − p) > µ2 , ossia se risulta E(S1c ) < E(S2c )
(il tempo complessivo di servizio nella prima risorsa è minore del tempo
complessivo di servizio nella seconda risorsa).
Poiché
h
µ2 p µ2 p i−1
,
< 1 ⇐⇒ λ < min µ1 p,
β = λ min µ1 p,
1−p
1−p
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.10
è:
µ2 p Λmax = min µ1 p,
1−p
♦
Esempio 6.4 Modifichiamo nuovamente le reti di Figura 6.4 e di Figura 6.10
considerando la rete aperta di Jackson illustrata in Figura 6.11; essa contiene
due sistemi di servizio M/M/1 collegati in serie con feedback e un unico input
esterno di Poisson con parametro λ. Tale rete è caratterizzata da:
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
117
Feedback
?
Risorsa 1
-
λ
µ1
Risorsa 2
-
1−p
6
p
µ2
Figura 6.11: Due sistemi di servizio M/M/1 collegati in serie con feedback.
- numero di risorse R = 2,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete;
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 2 × 3:
D=
1
2
1
2
0
1
0 1−p
Stop
0
p
con la condizione 0 < p ≤ 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti due equazioni
α1 = λ,
α2 = α1 + α2 (1 − p),
la cui soluzione è
α1 = λ,
α2 =
λ
·
p
Risulta che α2 ≥ λ.
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
λ
α1
=
<1
µ1
µ1
̺2 =
α2
λ
=
< 1,
µ2
µ2 p
ossia se
λ < min(µ1 , µ2 p).
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di avere n1 utenti nella prima risorsa e n2 utenti nella seconda
risorsa è:
λ λ n1 λ λ n2
q(n1 , n2 ) = 1 −
1−
(n1 , n2 = 0, 1, . . .)
µ1
µ1
µ2 p
µ2 p
A.G. Nobile
118
CAPITOLO 6. RETI DI JACKSON
Step 4: Se λ < min(µ1 , µ2 p) si ottiene:
λ
̺1
=
,
1 − ̺1
µ1 − λ
1
E(N1 )
=
E(W1 ) =
,
α1
µ1 − λ
α1
ν1 =
= 1,
λ
1
,
E(W1c ) =
µ1 − λ
λ
̺2
=
,
1 − ̺2
µ2 p − λ
p
E(N2 )
=
E(W2 ) =
,
α2
µ2 p − λ
α2
1
ν2 =
= ,
λ
p
1
E(W2c ) =
,
µ2 p − λ
λ
λ
E(N ) = E(N1 ) + E(N2 ) =
+
,
µ1 − λ µ2 p − λ
1
1
E(N )
=
+
·
E(W ) =
λ
µ1 − λ µ2 p − λ
E(N1 ) =
E(N2 ) =
Si nota che ν1 = 1 poiché la prima risorsa è visitata un’unica volta, mentre per
la seconda risorsa si ha ν2 > 1. Quindi
E(W1c ) = E(W1 ),
E(W2c ) > E(W2 ).
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.11.
Essendo
nλ
n1
λ o
1 o
β = max(̺1 , ̺2 ) = max
= λ max
,
,
,
µ1 µ2 p
µ1 µ2 p
il collo di bottiglia della rete è
- la prima risorsa se µ1 < µ2 p, ossia se E(S1 ) > E(S2c ) (il tempo di servizio
nella prima risorsa è maggiore del tempo complessivo di servizio nella
seconda risorsa),
- la seconda risorsa della rete se µ1 > µ2 p, ossia se E(S1 ) < E(S2c ) (il tempo
di servizio nella prima risorsa è minore del tempo complessivo di servizio
nella seconda risorsa).
Poiché
−1
β = λ min(µ1 , µ2 p)
< 1 ⇐⇒ λ < min(µ1 , µ2 p),
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.11
è
Λmax = min(µ1 , µ2 p).
♦
Esempio 6.5 Consideriamo la rete aperta di Jackson con feedback illustrata in
Figura 6.12 costituita da un sistema di servizio M/M/1 e un sistema di servizio
M/M/2 collegati in serie con feedback e un unico input esterno di Poisson con
parametro λ. Tale rete è caratterizzata da:
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
119
Risorsa 1
λ
-
?
-
A
A
-
µ1
Feedback
A
A
µ2
µ2
6
1−p
p
-
Risorsa 2
Figura 6.12: Una rete aperta di Jackson con feedback costituita dai sistemi
M/M/1 e M/M/2 collegati in serie.
- numero di risorse R = 2,
- singolo servitore per la prima risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µ1 e due servitori per la seconda
risorsa della rete con tempi di servizio distribuiti esponenzialmente con
valore medio 1/µ2 per ognuno dei servitori,
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete;
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 2 × 3:
D=
1
2
1
2
0
1
0 1−p
Stop
0
p
con la condizione 0 < p ≤ 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti due equazioni
α1 = λ,
α2 = α1 + α2 (1 − p),
la cui soluzione è
α1 = λ,
α2 =
λ
·
p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
A.G. Nobile
λ
α1
=
< 1,
µ1
µ1
̺2 =
α2
λ
=
<1
2 µ2
2 µ2 p
120
CAPITOLO 6. RETI DI JACKSON
ossia se
λ < min(µ1 , 2 µ2 p).
Step 3: Nella situazione di equilibrio statistico, ricordando la (3.40) e applicando
il teorema di Jackson la probabilità di avere n1 utenti nella prima risorsa e n2
utenti nella seconda risorsa è:
λ λ n1 1 − ̺2 n2
q(n1 , n2 ) = 1 −
̺ ∆(n2 )
(n1 , n2 = 0, 1, . . .),
µ1
µ1
1 + ̺2 2
dove ∆(n2 ) = 1 se n2 = 0 mentre ∆(n2 ) = 2 se n2 = 1, 2, . . ..
Step 4: Se λ < min(µ1 , 2 µ2 p) si ottiene:
̺1
λ
=
,
1 − ̺1
µ1 − λ
E(N1 )
1
E(W1 ) =
=
,
α1
µ1 − λ
α1
ν1 =
= 1,
λ
1
,
E(W1c ) =
µ1 − λ
2 ̺2
,
1 − ̺22
1
E(N2 )
=
,
E(W2 ) =
α2
µ2 (1 − ̺22 )
α2
1
ν2 =
= ,
λ
p
1
,
E(W2c ) =
µ2 p (1 − ̺22 )
λ
2 ̺2
E(N ) = E(N1 ) + E(N2 ) =
,
+
µ1 − λ 1 − ̺22
E(N )
1
1
E(W ) =
=
+
·
λ
µ1 − λ µ2 p (1 − ̺22 )
E(N1 ) =
E(N2 ) =
Si nota che ν1 = 1 poiché la prima risorsa è visitata un’unica volta, mentre
ν2 > 1. Quindi
E(W1c ) = E(W1 ),
E(W2c ) > E(W2 ).
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.12.
Essendo
nλ
n1
λ o
1 o
β = max(̺1 , ̺2 ) = max
= λ max
,
,
,
µ1 2 µ2 p
µ1 2 µ2 p
il collo di bottiglia della rete è
- la prima risorsa della rete se µ1 < 2 µ2 p, ossia se E(S1 ) > E(S2c )/2,
- la seconda risorsa della rete se µ1 > 2 µ2 p, ossia se E(S1 ) < E(S2c )/2.
Poiché
−1
β = λ min(µ1 , 2 µ2 p)
< 1 ⇐⇒ λ < min(µ1 , 2 µ2 p),
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.12
è
Λmax = min(µ1 , 2 µ2 p).
♦
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
121
Risorsa 2
Risorsa 1
λ
6 6
-
-
p11 A
-
p12
µ2
µ1
?
A p13
A
Feedback
µ3
p31
-
p33
?
-
6
-
Risorsa 3
?
Feedback
Feedback
Figura 6.13: Una rete aperta di Jackson con 3 risorse, ognuna con unico
servitore.
Esempio 6.6 Consideriamo la rete aperta di Jackson con feedback illustrata
in Figura 6.13 costituita da 3 risorse. Tale rete è caratterizzata da:
- numero di risorse R = 3,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi (i = 1, 2, 3),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 3 × 4:
1
1 p11
D = 2 0
2 p31

2
p12
0
0
3
p13
0
p33
Stop

0
1 
0
con le condizioni p11 + p12 + p13 = 1 e p31 + p33 = 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti tre equazioni:
α1 = λ + α1 p11 + α3 p31 ,
α2 = α1 p12 ,
α3 = α1 p13 + α3 p33 ,
A.G. Nobile
122
CAPITOLO 6. RETI DI JACKSON
da risolvere con le condizioni p11 + p12 + p13 = 1 e p31 + p33 = 1. La soluzione
del sistema è
λ
λ p13
α1 =
,
α2 = λ,
α3 =
p12
p12 p31
Step 2: La condizione di equilibrio statistico si raggiunge se
α1
λ
=
< 1,
µ1
µ1 p12
α2
λ
λ p13
=
< 1,
̺3 =
< 1.
µ2
µ2
µ3 p12 p31
ossia se λ < min µ1 p12 , µ2 , µ3 p12 p31 /p13 .
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di essere nello stato (n1 , n2 , n3 ) è:
̺1 =
̺2 =
q(n1 , n2 , n3 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2 (1 − ̺3 ) ̺n3 3 .
Step 4: Se ̺i < 1 per i = 1, 2, 3, dalle (6.34) e (6.36) si ottiene:
E(N ) =
3
X
i=1
̺i
,
1 − ̺i
E(W ) =
3
E(N )
1 X ̺i
·
=
λ
λ i=1 1 − ̺i
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.13.
Essendo
n λ
λ
λ p13 o
β = max(̺1 , ̺2 , ̺3 ) = max
,
,
µ1 p12 µ2 µ3 p12 p31
h
µ3 p12 p31 i−1
= λ min µ1 p12 , µ2 ,
p13
il collo di bottiglia della rete è la risorsa i-esima per la quale ̺i = β. Poiché
µ3 p12 p31 β < 1 ⇐⇒ λ < min µ1 p12 , µ2 ,
,
p13
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.13
è:
µ3 p12 p31 .
Λmax = min µ1 p12 , µ2 ,
p13
♦
Esempio 6.7 Consideriamo la rete aperta di Jackson con feedback illustrata
in Figura 6.14. Tale rete rappresenta un sistema di lavorazione costituito da tre
risorse ciascuna con un solo servitore. Le prime due sono risorse di produzione
in cui i pezzi arrivano dall’esterno con due processi di Poisson con lo stesso
parametro, mentre l’ultima è una risorsa di controllo che scarta una frazione
2 p di pezzi per instradarli con uguale probabilità p nuovamente alle precedenti
due risorse di produzione. Tale rete è caratterizzata da:
- numero di risorse R = 3,
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
123
Risorsa 1
-
λ
µ1
6p
-
Unità produttive
-
λ
µ3
Unità di controllo
µ2
Risorsa 3
1−2p
p
?
Risorsa 2
Figura 6.14: Una rete aperta di Jackson con 3 risorse, ognuna con unico
servitore.
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi (i = 1, 2, 3),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima e la seconda risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di diramazione di cardinalità 3 × 4:
1

1 0
D = 20
3 p
con la condizioni 0 ≤ p < 1/2.
2
0
0
p
3
1
1
0
Stop

0
0 
1−2p
Step 1: Il sistema (6.17) è costituito dalle seguenti 3 equazioni:
α1 = λ + p α3
α2 = λ + p α3
α3 = α1 + α2
la cui soluzione è
α1 = α2 =
λ
,
1−2p
α3 =
2λ
.
1−2p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
λ
< 1,
µ1 (1 − 2 p)
A.G. Nobile
̺2 =
λ
< 1,
µ2 (1 − 2 p)
̺3 =
2λ
< 1,
µ3 (1 − 2 p)
124
CAPITOLO 6. RETI DI JACKSON
ossia se
µ3 λ < (1 − 2 p) min µ1 , µ2 ,
.
2
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di essere nello stato (n1 , n2 , n3 ) è:
q(n1 , n2 , n3 ) = (1 − ̺1 ) ̺n1 1 (1 − ̺2 ) ̺n2 2 (1 − ̺3 ) ̺n3 3 .
Step 4: Se λ < (1 − 2 p) min(µ1 , µ2 , µ3 /2), dalle (6.34) e (6.36) si ottiene:
E(N ) =
3
X
i=1
̺i
,
1 − ̺i
E(W ) =
3
E(N )
1 X ̺i
·
=
2λ
2 λ i=1 1 − ̺i
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.14.
Essendo
o
n
λ
2λ
λ
β = max(̺1 , ̺2 , ̺3 ) = max
,
,
µ1 (1 − 2 p) µ2 (1 − 2 p) µ3 (1 − 2 p)
n1 1 2 o
λ
=
,
, ,
max
1−2p
µ1 µ2 µ3
il collo di bottiglia della rete è la prima risorsa della rete se µ1 < min(µ2 , µ3 /2),
è la seconda risorsa della rete se µ2 < min(µ1 , µ3 /2) ed è la terza risorsa della
rete se µ3 < 2 min(µ1 , µ2 ). Poiché
β=
i−1
λ h
min µ1 , µ2 , µ3 /2
< 1 ⇐⇒ λ < (1 − 2 p) min µ1 , µ2 , µ3 /2 ,
1−2p
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.14
è:
Λmax = 2 (1 − 2 p) min µ1 , µ2 , µ3 /2 .
♦
Esempio 6.8 Consideriamo la rete aperta di Jackson con feedback illustrata in
Figura 6.15. Essa rappresenta una rete di computer-system costituita da quattro
risorse ciascuna con un solo servitore, ossia CPU e risorse di I/O.
Tale rete è caratterizzata da:
- numero di risorse R = 4,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi (i = 1, 2, 3, 4),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
125
µ3
Risorsa 3
Risorsa 2
Risorsa 1
-
λ
µ1
-
I/O Device
µ2
CPU
1/2
I/O Devices
µ4
1/2
-
p
-
1−p
Risorsa 4
Figura 6.15: Una rete aperta di Jackson con 4 risorse, ognuna con unico
servitore.
- matrice di diramazione di cardinalità 4 × 5:
1

1 0
20
D= 
30
4 0
2
1
0
1
1−p
con la condizione 0 < p ≤ 1.
3
4 Stop

0
0
0
1/2 1/2
0 

0
0
0 
0
0
p
Step 1: Il sistema (6.17) è costituito dalle seguenti 4 equazioni
α1 = λ
α2 = α1 + α3 + (1 − p) α4
α3 = α2 /2
α4 = α2 /2,
la cui soluzione è
α1 = λ ,
α2 =
2λ
p
α3 = α4 =
λ
·
p
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
λ
< 1,
µ1
ossia se
A.G. Nobile
̺2 =
2λ
< 1,
µ2 p
̺3 =
λ
< 1,
µ3 p
µ2 p
λ < min µ1 ,
, µ3 p, µ4 p .
2
̺4 =
λ
·
µ4 p
126
CAPITOLO 6. RETI DI JACKSON
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di essere nello stato (n1 , n2 , n3 , n4 ) è:
q(n1 , n2 , n3 ) =
4
Y
(1 − ̺i ) ̺ni i .
i=1
Step 4: Se λ < min µ1 , µ2 p/2, µ3 p, µ4 p , dalle (6.34) e (6.36) si ottiene:
E(N ) =
4
X
i=1
̺i
,
1 − ̺i
E(W ) =
4
E(N )
1 X ̺i
·
=
λ
λ i=1 1 − ̺i
Step 5: Vogliamo ora determinare la risorsa meno efficiente della rete in Figura 6.15. Essendo
n 1
2
1
1 o
,
β = max(̺1 , ̺2 , ̺3 , ̺4 ) = λ max
,
,
µ1 µ2 p µ3 p µ4 p
h
i
−1
µ2 p
= λ min µ1 ,
, µ3 p, µ4 p
,
2
il collo di bottiglia della rete è la risorsa i-esima per cui risulta ̺i = β. Poiché
µ2 p
, µ3 p, µ4 p ,
β < 1 ⇐⇒ λ < min µ1 ,
2
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.15
è:
µ2 p
, µ3 p, µ4 p .
Λmax = min µ1 ,
2
♦
Esempio 6.9 Consideriamo la rete aperta di Jackson con feedback illustrata in
Figura 6.16 costituita da m + 1 risorse. Essa rappresenta una rete di computer
system con un’unità centrale e m risorse di I/O.
Tale rete è caratterizzata da:
- numero di risorse R = m + 1,
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi (i = 1, 2, . . . , m + 1),
- tempi di interarrivo distribuiti esponenzialmente con valore medio 1/λ per la
prima risorsa della rete,
- disciplina di servizio FIFO per ogni risorsa,
A.G. Nobile
6.5. ESEMPI DI RETI DI JACKSON
127
Feedback
Risorsa 2
p1
?
-
-
λ
Input
esterno
CPU
······
-
?
I/O Devices
······
p0
pm
?
6
µ2
Risorsa 1
µ1
-
6
µm+1
Output
esterno
Risorsa m + 1
Figura 6.16: Una rete aperta di Jackson con m + 1 risorse, ognuna con unico
servitore.
- matrice di diramazione di cardinalità (m + 1) × (m + 2):
1
1
0
1
2
.
..
.
.
.
D=

i
1
.
..
 ..
.
m+1 1

2
p1
0
..
.
0
..
.
...
j
. . . pj−1
...
0
..
..
.
.
...
0
..
..
.
.
0
...
0
. . . m + 1 Stop

...
pm
p0
...
0
0 
..
.. 
..

.
.
. 

...
0
0 
..
.. 
..
.
.
. 
...
0
0
con la condizione pi ≥ 0 (i = 0, 1, . . . , m) e p0 + p1 + . . . + pm = 1.
Step 1: Il sistema (6.17) è costituito dalle seguenti m + 1 equazioni
α1 = λ + α2 + α3 + . . . + αm+1
αi = α1 pi−1
(i = 2, 3, . . . , m + 1),
da cui segue
α1 = λ + α1 p1 + . . . + α1 pm .
La soluzione del sistema è quindi:
α1 =
λ
,
p0
αi =
λ pi−1
p0
(i = 2, 3, . . . , m + 1).
Step 2: La condizione di equilibrio statistico si raggiunge se
̺1 =
A.G. Nobile
λ
< 1,
µ1 p 0
̺i =
λ pi−1
<1
µi p 0
(i = 2, 3, . . . , m + 1),
128
CAPITOLO 6. RETI DI JACKSON
ossia se
p 0 µ2 p 0 µ3
p0 µm+1 λ < min µ1 p0 ,
.
,
,...,
p1
p2
pm
Step 3: Nella situazione di equilibrio statistico, applicando il teorema di Jackson,
la probabilità di essere nello stato (n1 , n2 , . . . , nm+1 ) è:
q(n1 , n2 , . . . , nm+1 ) = 1 −
m+1
λ pi−1 i h λ pi−1 ini
λ λ n1 Y h
1−
µ1 p 0
µ1 p 0
µi p 0
µi p 0
i=2
(ni = 0, 1, . . . ; i = 1, 2, . . . , m + 1).
Step 4: Inoltre se ̺i < 1 per ogni i = 1, 2, . . . , m + 1, dalle (6.34) e (6.36) si
ottiene:
E(N ) =
m+1
X
i=1
E(W ) =
m+1
i
h
X
αi
pi−1
1
,
=λ
+
µi − αi
µ1 p 0 − λ
µi p0 − λ pi+1
i=2
m+1
X
pi−1
1
E(N )
·
=
+
λ
µ1 p 0 − λ
µi p0 − λ pi+1
i=2
Step 5: Determiniamo ora la risorsa meno efficiente della rete in Figura 6.16.
Essendo
n λ
λ p1
λ pm o
β = max(̺1 , ̺2 , . . . , ̺m+1 ) = max
,
,...,
µ1 p 0 µ2 p 0
µm+1 p0
h
µ2 p 0
µm+1 p0 i−1
= λ min µ1 p0 ,
,...,
p1
pm
il collo di bottiglia della rete è la risorsa i-esima per la quale ̺i = β. Si nota
che a seconda della scelta dei parametri la risorsa meno efficiente della rete può
essere l’unità di CPU oppure una delle risorse di I/O. Poiché
µm+1 p0 µ2 p 0
,
,...,
β < 1 ⇐⇒ λ < min µ1 p0 ,
p1
pm
la massima capacità di trasporto (massimo throughput) della rete in Figura 6.16
è:
µ2 p 0
µm+1 p0 Λmax = min µ1 p0 ,
,...,
.
p1
pm
♦
A.G. Nobile
Capitolo 7
Simulazione di reti di code
7.1
Introduzione alla simulazione
Con i modelli probabilistici si riescono ad analizzare soltanto alcuni tipi di reti
di code, quali ad esempio, le reti di Jackson che prevedono arrivi dall’esterno di
Poisson, tempi di servizio distribuiti esponenzialmente per ognuno dei servitori
e disciplina di servizio di tipo FIFO. Non è invece possibile studiare reti più
complesse, quali ad esempio reti con arrivi dall’esterno non di Poisson, (deterministici, a gruppi, . . .), con tempi di servizio non esponenziali (deterministici,
uniformi, . . .), discipline di servizio diverse da quella FIFO. Inoltre, con i modelli
probabilistici si riescono ad analizzare le reti soltanto in condizioni di equilibrio
statistico, mentre spesso si è interessati al comportamento della rete di code
anche nella sua fase transiente. Per superare tali difficoltà si ricorre spesso alla
simulazione.
La simulazione consiste nel definire un modello, detto modello di simulazione,
che consenta di ricostruire al computer l’evoluzione nel tempo del comportamento
del sistema in esame. Lo scopo della simulazione è di
- valutare le caratteristiche di un sistema;
- confrontare due o più sistemi;
- individuare le risorse meno efficienti del sistema;
- fornire previsioni sulle prestazioni di un sistema prima di procedere alla sua
effettiva realizzazione.
Le aree di applicazione della simulazione sono numerose: sistemi di elaborazione, di comunicazione, di trasporto, di produzione e automazione, sociali,
naturali, economici. La simulazione trova anche applicazione nei videogames
basati sulla riproduzione del funzionamento di un sistema, nei simulatori di volo per l’addestramento di piloti, nella predizione dello sviluppo di ecosistemi,
nella verifica di tattiche militari o di investimenti in borsa, . . .
129
130
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Mediante la simulazione è anche possibile analizzare il comportamento dinamico di una rete di code fornendo informazioni sulle sue prestazioni. Infatti,
la simulazione permette di ottenere stime locali (relative alle singole risorse) e
stime globali (relative all’intera rete di code).
Con il modello probabilistico di una rete di code ci si prefigge di ottenere
soluzioni analitiche e pertanto le ipotesi di base del modello sono semplificate
in maniera tale da superare le difficoltà di natura matematica. Ad esempio
nelle reti di Jackson si ottengono delle formule che permettono di esprimere
gli indici di prestazione della rete in funzione dei parametri di input (numero
di risorse, numero di servitori per ogni singola risorsa, matrice di diramazione,
tempi medi di interarrivo, tempi medi di servizio, disciplina di servizio). Tali
formule sono utilizzabili in maniera veloce ed efficiente per un ampio intervallo
di valori dei parametri di input e permettono di interpretare qualitativamente
il comportamento della rete e di individuare le condizioni sui parametri che
garantiscono il raggiungimento dell’equilibrio statistico.
In un modello costruito per la simulazione, invece, si possono includere un
numero maggiore di caratteristiche significative, spesso rispecchiando meglio il
comportamento del sistema reale. La simulazione comunque necessita spesso
di lunghi periodi di esecuzione per ottenere stime degli indici di prestazione e
richiede anche indagini approfondite per l’individuazione delle condizioni che
garantiscono il raggiungimento dell’equilibrio statistico.
La simulazione è quindi una tecnica alternativa per la descrizione di una
rete di code e può essere utile se riesce a fornire soluzioni significative e di facile
interpretazione ad un costo competitivo rispetto ad altre tecniche di natura
probabilistica. Quando si decide di adottare tecniche di simulazione occorre
pianificare l’esperimento in più fasi successive:
(i) formulazione del problema e del modello di simulazione;
(ii) acquisizione dei dati del sistema reale;
(iii) stima e verifica dei parametri e delle caratteristiche operative del sistema
reale;
(iv) formulazione del programma di simulazione;
(v) progettazione degli esperimenti e analisi dei risultati.
(i) Formulazione del problema e del modello di simulazione
Formulare il problema significa fissare gli obiettivi di studio e stabilire dei criteri per esaminare le soluzioni del problema. In una rete di code ci si pone, ad
esempio, il problema di stabilire come organizzare in modo efficiente le risorse
e di individuare il numero di servitori necessari in ogni singola risorsa al fine di
ottenere le migliori prestazioni della rete. Si desidera inoltre stabilire gli effetti
dovuti al cambiamento dei parametri, quali i tempi medi di interarrivo degli
utenti provenienti dall’esterno oppure i tempi medi di servizio per ognuno dei
servitori. Si desidera anche analizzare se l’introduzione di una nuova risorsa in
una catena di produzione può permettere di migliorare i tempi di produzione.
A.G. Nobile
7.1. INTRODUZIONE ALLA SIMULAZIONE
131
Occorre infine individuare un modello di simulazione utile a descrivere in modo
astratto il sistema reale, precisando i parametri di input, individuando le grandezze ritenute significative per la descrizione della rete e specificando gli indici
di prestazione di interesse.
(ii) Acquisizione dei dati del sistema reale
L’acquisizione dei dati consiste nell’effettuare un’analisi preliminare sul sistema
reale per rilevare i dati su cui si baserà la scelta del modello, la stima dei
parametri e delle caratteristiche operative e anche la decisione sui componenti e
sulle variabili da introdurre nel modello di simulazione. Occorrerà, ad esempio,
effettuare opportuni campionamenti sui tempi di interarrivo degli autoveicoli ai
caselli autostradali in varie ore della giornata, oppure sui tempi di produzione
di particolari articoli in un’industria nelle varie risorse.
(iii) Stima e verifica dei parametri e delle caratteristiche operative del
sistema reale
Questo passo è inteso a trasferire nel modello i parametri e le caratteristiche
operative del sistema reale, stimate sulla base dei dati raccolti nel punto (ii).
Essa si traduce nell’applicare delle tecniche statistiche per la stima dei parametri,
quali il valore medio e la varianza di una distribuzione di probabilità di tipo
noto e talora di una distribuzione di probabilità non nota. Spesso interessa
anche stabilire quale sia il tipo di distribuzione di probabilità più adeguata da
utilizzare.
Una volta che, sulla base dei dati raccolti, si è formulato un modello e si sono
scelti i parametri e le caratteristiche funzionali è necessaria una valutazione
della sua adeguatezza per descrivere il sistema reale prima di procedere alla
costruzione del simulatore.
(iv) Formulazione del programma di simulazione
Questo passo consiste nella traduzione del modello di simulazione in un modello
interpretabile dall’elaboratore. Esso comprende la stesura di un programma
che descriva la successione logica delle operazioni necessarie per analizzare il
modello nella fase transiente (per produrre la storia del sistema), la scelta del
linguaggio di programmazione e la scelta dello stato iniziale, ossia dei valori da
assegnare inizialmente alle variabili del programma.
Occorre anche verificare se il simulatore si comporta come previsto e rifletta
la situazione reale. Infatti, nella simulazione possono essere intervenuti errori
di programmazione, errori di arrotondamento, problemi di convergenza, . . .
(v) Progettazione degli esperimenti e analisi dei risultati
In tale passo occorre progettare gli esperimenti da effettuare. In particolare,
occorre stabilire la durata della simulazione, quante esecuzioni sono necessarie
per ogni esperimento e come effettuare le misure al termine della simulazione. Aumentando il numero di esecuzioni aumenta la significatività statistica
dei risultati, ma aumenta anche considerevolmente il costo stesso della simulazione. Infine, occorre effettuare un’analisi delle misure ottenute mediante gli
esperimenti di simulazione in maniera da interpretare i risultati e comprendere
il comportamento del sistema reale.
A.G. Nobile
132
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
I vantaggi della simulazione di reti di code consistono nella possibilità di
effettuare dei test sulle reti prima di procedere alla loro effettiva realizzazione,
di individuare le cause di cattivi funzionamenti, di esplorare e valutare nuove
politiche di gestione della rete.
7.2
Generazione di numeri pseudocasuali
Nella simulazione gioca un ruolo fondamentale la generazione di sequenze di numeri casuali. In passato sono state proposte varie tecniche per generare numeri
casuali. Una consisteva nel dotare l’elaboratore di una speciale apparecchiatura
capace di generare numeri casuali sfruttando qualche particolare fenomeno fisico
con lo scopo di produrre tabelle di numeri casuali che gli studiosi potessero poi
utilizzare nelle loro simulazioni. Furono cosı̀ costruite delle macchine sia di tipo
meccanico sia di tipo elettronico che presentavano però l’inconveniente di imporre una laboriosa manutenzione per garantire l’efficienza di apparecchiature
spesso delicate atte a generare sequenze casuali, che risultavano talvolta poco
adatte alle applicazioni desiderate.
Per superare gli inconvenienti finora discussi sono stati sviluppati metodi che
permettono di ottenere dagli elaboratori sequenze di numeri casuali attraverso il
ripetuto uso di un meccanismo algebrico deterministico. Tali tecniche presentano il vantaggio di essere facilmente implementabili con algoritmi estremamente
veloci computazionalmente, di richiedere poco spazio di memoria, di permettere
di riprodurre sequenze identiche a quelle già utilizzate in modo da riottenere gli
stessi risultati. Attualmente proprio questi metodi e loro varianti sono spesso
utilizzati nelle applicazioni.
In generale, un processo è veramente casuale se le predizioni sul suo comportamento futuro non possono essere migliorate dalla conoscenza del comportamento passato. Nell’adottare meccanismi algebrici deterministici per la
generazione di sequenze casuali, si può incorrere nell’inconveniente di venire
meno all’indipendenza statistica tra gli elementi della sequenza stessa. Per questa ragione in processi di simulazione il termine casuale è quindi generalmente
sostituito con il termine pseudo–casuale.
Un metodo per la generazione di sequenze di numeri pseudo–casuali con
distribuzione uniforme è accettabile se soddisfa i seguenti requisiti:
(i) i numeri sono statisticamente uniformemente distribuiti nella sequenza;
(ii) i numeri sono statisticamente indipendenti nella sequenza;
(iii) la sequenza è riproducibile;
(iv) la sequenza ha un periodo di lunghezza sufficientemente grande;
(v) il metodo è eseguito dall’elaboratore con rapidità e richiede poco spazio di
memoria.
A.G. Nobile
7.2. GENERAZIONE DI NUMERI PSEUDOCASUALI
133
I più semplici generatori di numeri pseudocasuali sono i generatori congruenziali moltiplicativi che producono sequenze {xn , n = 0, 1, 2, . . .} come
segue:
(i) fissare un intero positivo m detto modulo del generatore
(ii) scegliere degli interi positivi a e x0 minori del modulo m; x0 (x0 6= 0)
è detto valore iniziale o seme e la costante a (a 6= 0) è detta costante
moltiplicativa oppure moltiplicatore.
(iii) generare xn mediante la relazione di congruenza lineare
xn+1 ≡ a xn
(mod m)
(7.1)
che si legge xn+1 è congruente ad a xn modulo m.
La procedura inizia con un valore iniziale x0 che deve essere diverso da zero.
Per determinare gli elementi della sequenza {xn , n = 1, 2, . . .} occorre calcolare
a xn e assegnare a xn+1 il resto r (con 0 ≤ r ≤ m − 1) della divisione di a xn
per il modulo m.
Il più piccolo intero p tale che x0 = xp è detto periodo fondamentale della
sequenza, ossia il periodo fondamentale rappresenta la lunghezza del ciclo della
sequenza a partire da una generico valore iniziale fino al valore per il quale la
sequenza inizia a ripetersi. Poiché i valori generati dalla (7.1) sono sempre minori
del modulo m, è chiaro che tra due valori identici non si possono presentare più
di m valori diversi; la lunghezza del periodo non può quindi mai essere superiore
a m.
Il vantaggio del generatore congruente moltiplicativo è l’estrema velocità di
generazione dei numeri. Alcuni svantaggi sono: la sequenza generata è periodica di periodo al più uguale a m; ogni valore della sequenza è completamente
determinato dai tre parametri a, x0 e m; esiste una correlazione tra i valori
successivi della sequenza.
Le scelte maggiormente utilizzate per m sono: (a) scelta del modulo come
potenza di 2 e (b) scelta del modulo come numero primo.
(a) Scelta del modulo come potenza di 2
Sebbene non esistano restrizioni sulla scelta del modulo m, ai fini dell’implementazione su elaboratori binari una possibile scelta del modulo è m = 2b per
rendere più veloce la generazione di ogni numero xn+1 della sequenza a partire
dal numero xn usando la relazione congruente (7.1). Si può mostrare che se
m = 2b , con b ≥ 4, e se si scelgono i parametri a e x0 del generatore congruente
moltiplicativo minori del modulo e tali che
(i) x0 intero positivo dispari, ossia x0 = 1, 3, 5, . . .;
(ii) a = 8 n + 3 oppure a = 8 n + 5, dove n è un qualsiasi intero non negativo,
si ottiene il periodo massimo 2b−2 .
A.G. Nobile
134
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Il passaggio dalla sequenza pseudo–casuale x0 , x1 , . . . (con 0 ≤ xn < m) ad
una sequenza pseudo–casuale di numeri u0 , u1 , . . . (con 0 ≤ un < 1) può essere
effettuata ponendo
xn
un =
(n = 0, 1, . . .).
(7.2)
m
Analogamente, se si desidera passare dalla sequenza pseudo–casuale x0 , x1 , . . .
(con 0 ≤ xn ≤ m − 1) ad una sequenza pseudo–casuale di numeri u0 , u1 , . . . (con
0 ≤ un ≤ 1) basterà invece porre
un =
xn
m−1
(n = 0, 1, . . .).
(7.3)
Le (7.2) e (7.3) sono rispettivamente quindi utilizzate per generare numeri
uniformemente distribuiti nell’intervallo [0, 1) e in [0, 1].
I passi dell’algoritmo per generare una sequenza pseudo–casuale di numeri
u0 , u1 , . . . (con 0 ≤ un < 1) utilizzando il metodo congruenziale moltiplicativo
con m = 2b sono quindi i seguenti:
⋄ Algoritmo
Step 1: fornire in input x0 , a e b tali da soddisfare le ipotesi (i) e (ii).
Step 2: per ogni n = 1, 2, . . . , 2b−2 − 1 calcolare
xn ≡ a xn−1
(mod 2b ),
Step 3: per ogni n = 0, 1, . . . , 2b−2 − 1 calcolare
un = xn · 2−b .
(b) Scelta del modulo come numero primo
Nel generatore congruente moltiplicativo (7.1) si può anche scegliere m come
numero primo. In tal caso se x0 è un intero positivo e si scelgono i parametri a
e m del generatore congruente moltiplicativo (7.1) minori del modulo e tali che
(1) m è un numero primo (ad esempio m = 231 − 1);
(2) a è un elemento primitivo modulo m
si ottiene il periodo massimo m − 1.
Ricordiamo che un numero a è un elemento primitivo modulo m se il più
piccolo numero intero s per il quale (as −1) è divisibile per m è proprio s = m−1.
Quindi, a è un elemento primitivo modulo m se as − 1 è un multiplo di m per
s = m − 1 ma non lo è per valori interi s più piccoli di m − 1. Ad esempio, se
si considera il generatore congruente moltiplicativo
xn+1 ≡ 5 xn
A.G. Nobile
(mod 7)
7.2. GENERAZIONE DI NUMERI PSEUDOCASUALI
risulta che a = 5 è un elemento primitivo modulo

4,



24,



124,
as − 1 = 5 s − 1 =
624,





 3124,
15624,
135
7. Infatti, essendo
s=1
s=2
s=3
s=4
s=5
s=6
si nota che 5s − 1 è un multiplo di m = 7 per s = m − 1 = 6 essendo 15624 =
2232 · 7. Tale generatore ha quindi un periodo massimo pari a m − 1 = 6.
I passi dell’algoritmo per generare una sequenza pseudo–casuale di numeri
u0 , u1 , . . . (con 0 ≤ un < 1) utilizzando il metodo congruenziale moltiplicativo
con m numero primo sono quindi i seguenti:
⋄ Algoritmo
Step 1: fornire in input x0 , a e b tali da soddisfare le ipotesi del (1) e (2)
Step 2: per ogni n = 1, 2, . . . , m − 2 calcolare
xn ≡ a xn−1
(mod m),
Step 3: per ogni n = 0, 1, . . . , m − 2 calcolare
un = xn /m
Una scelta spesso utilizzata dei parametri del generatore congruente moltiplicativo con m numero primo è m = 231 − 1 = 2.147.483.647 e a = 75 = 16807.
Nella Tabella 7.1 sono riportati alcuni semi che conducono, almeno nella fase iniziale, a differenti sequenze di numeri pseudocasuali per il generatore congruente
moltiplicativo
xn+1 ≡ 75 xn (mod 231 − 1).
(7.4)
Il generatore congruente moltiplicativo (7.4) fornisce uno standard minimo
qualitativo che deve possedere un buon generatore di numeri pseudocasuali1 .
A partire dal generatore congruente moltiplicativo (7.4) sono stati introdotti
in letteratura generatori sempre più complessi in grado da soddisfare vari tipi
di test statistici. Infatti, una volta effettuata la scelta di x0 , a e m tali da
ottenere un periodo sufficientemente grande, ogni generatore di numeri pseudocasuali deve essere sottoposto ad opportuni test statistici miranti a verificare
che le sequenze ottenute non si discostino di molto da quelle ottenute con un
generatore perfettamente casuale.
In conclusione, le caratteristiche che deve avere un buon generatore di sequenze pseudo–casuali sono:
1 Park and Miller, “Random Number Generators:
Good ones are hard to find”,
Communications of the ACM, October 1988, Volume 31, No 10, pages 1192–1201.
A.G. Nobile
136
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Seme Iniziale
748932582
1985072130
1631331038
67377721
366304404
1094585182
1767585417
1980520317
392682216
64298628
250756106
1025663860
186056398
522237216
213453332
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Seme Iniziale
1651217741
909094944
2095891343
203905359
2001697019
431442774
1659181395
400219676
1904711401
263704907
350425820
873344587
1416387147
1881263549
1456845529
Tabella 7.1: Semi da utilizzare per il generatore congruente moltiplicativo in (7.4).
• ripetibilità, che garantisce la possibilità di ripetere più volte lo stesso esperimento di simulazione;
• soddisfacimento di test statistici, in maniera da verificare che il generatore
sia abbastanza simile ad un generatore di numeri perfettamente casuali
• semplicità e rapidità di utilizzazione, in maniera da risultare efficiente computazionalmente
• di periodo lungo, in maniera tale da poter disporre di sequenze lunghe di
numeri pseudo–casuali;
• portabilità, in maniera tale da rendere l’implementazione del generatore
indipendente dalla piattaforma.
7.3
Generazione di variabili aleatorie
Nel Paragrafo 7.2 abbiamo visto come costruire generatori uniformi nell’intervallo (0, 1). Vogliamo ora introdurre delle tecniche che permettano di ottenere
variabili aleatorie con funzione di distribuzione diversa da quella uniforme a
partire da variabili aleatorie con distribuzione uniforme nell’intervallo (0, 1). In
particolare, per simulare una rete di Jackson occorre disporre di metodi che
permettano di generare i tempi di interarrivo e di servizio distribuiti esponenzialmente e di tecniche che consentano di simulare le variabili aleatorie non
degeneri relative alle singole righe della matrice di diramazione D.
A.G. Nobile
7.3. GENERAZIONE DI VARIABILI ALEATORIE
7.3.1
137
Variabile aleatoria esponenziale
Nel seguito denoteremo con U una variabile aleatoria uniformemente distribuita
nell’intervallo (0, 1) e con
FU (u) = P (U < u) =
( 0,
u≤0
u, 0 < u ≤ 1
1, u > 1,
(7.5)
la sua funzione di distribuzione. Se desideriamo simulare una variabile aleatoria
continua X spesso si utilizza il metodo di inversione della funzione di distribuzione che afferma che è possibile simulare una variabile aleatoria X continua caratterizzata da funzione di distribuzione F (x) invertibile simulando una variabile
aleatoria U uniformemente distribuito in (0, 1) e ponendo X = F −1 (U ).
Consideriamo ora una variabile aleatoria X esponenzialmente distribuita con
valore medio 1/λ e sia
FX (x) = P (X < x) =
0,
x≤0
1 − e−λ x , x > 0
la sua funzione di distribuzione. Applicando il metodo di inversione della
funzione di distribuzione possiamo scrivere
U = F (X) = 1 − e−λ X ,
da cui segue
X=−
1
ln (1 − U ),
λ
dove U è una variabile aleatoria uniformemente distribuita nell’intervallo (0, 1).
Utilizzando il metodo di inversione della funzione di distribuzione si può quindi
simulare la variabile aleatoria X esponenzialmente distribuita con valore medio
1/λ nel seguente modo:
⋄ Algoritmo
Step 1: Generare una variabile aleatoria U uniformemente distribuita nell’intervallo (0, 1);
Step 2: Porre
X=−
1
ln (1 − U ),
λ
A partire dalla sequenza u0 , u1 , . . . di numeri uniformemente distribuiti in (0, 1),
possiamo quindi ottenere la sequenza x0 , x1 , . . . di numeri esponenzialmente
distribuiti con valore medio 1/λ tramite la relazione
xi = −
A.G. Nobile
1
ln (1 − ui )
λ
(i = 0, 1, . . .).
138
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Se U è uniformemente distribuita in (0, 1), anche la variabile aleatoria 1 −
U è uniformemente distribuita in (0, 1). Pertanto una variabile aleatoria X
esponenzialmente distribuita può essere anche espressa tramite la relazione
1
X = − ln U.
λ
Quindi a partire dalla sequenza u0 , u1 , . . . di numeri uniformemente distribuiti
in (0, 1), possiamo quindi ottenere la sequenza x0 , x1 , . . . di numeri esponenzialmente distribuiti con valore medio 1/λ anche tramite la relazione
1
ln ui
(i = 0, 1, . . .).
λ
La simulazione di variabili aleatorie con distribuzione esponenziale riveste un
ruolo fondamentale nella generazione di sequenze di tempi di interarrivo o di
sequenze di tempi di servizio in sistemi con file di attesa e in reti di code.
Metodi per generare differenti variabili aleatorie non uniformi, utili per generare
sequenze di tempi di interarrivo e di servizio più generali, sono indicati, ad
esempio, nel libro di Luc Devroye2 .
xi = −
7.4
Variabili aleatorie discrete
La matrice di diramazione di una rete di code con R risorse ha la forma
1
...
j
... R
Stop


1
p11 . . . p1j . . . p1R p10
..  ..
..
..
.. 
..
..
.
.
. 
.
.
. 
 .


p
.
.
.
p
.
.
.
p
p
D= i 
ij
iR
i0 
 i1

..  ..
.
.
.
.
.
..
..
..
..
.. 
.  .
R pR1 . . . pRj . . . pRR pR0
dove pij (i, j = 1, 2, . . . , R) denota la probabilità che l’utente si diriga istantaneamente alla risorsa j dopo aver completato il servizio alla risorsa i-esima
e dove pi0 (i = 1, 2, . . . , R) denota la probabilità che un utente esca istantaneamente dalla rete non appena ha completato il servizio alla risorsa i-esima.
Poiché risulta
pij ≥ 0,
R
X
(i, j = 1, 2 . . . , R),
pij + pi0 = 1
pi0 ≥ 0
(i = 1, 2, . . . , R)
(i = 1, 2, . . . , R),
j=1
la matrice D è stocastica, ossia la somma delle probabilità su ogni riga è unitaria.
Denotiamo ora con Xi (i = 1, 2, . . . , R) la seguente variabile aleatoria discreta
0
1 ... k ... R
(i = 1, 2, . . . , R)
(7.6)
Xi =
pi0 pi1 . . . pik . . . piR
2 Luc Devroye, “Non-Uniform Random Variate Generation”, Springer-Verlag, New York,
1986, Online.
A.G. Nobile
7.4. VARIABILI ALEATORIE DISCRETE
139
che assume i valori 0, 1, . . . , R con rispettive probabilità pi0 , pi1 , . . . , piR . I valori
assunti dalla variabile aleatoria Xi descrivono la risorsa (j = 1, 2, . . . , R) o la
destinazione (j = 0) in cui si è instradati appena completato il servizio nella
risorsa i-esima della rete. Un metodo generale per simulare la variabile aleatoria
discreta Xi è il seguente:
⋄ Algoritmo
Step 1: Generare una variabile aleatoria U uniformemente distribuita in
(0, 1);
Step 2: Porre

0,
0 ≤ U < pi0




1,
pi0 ≤ U < pi0 + pi1



..................



.. . .. .. . .


k
k−1

X
X


pij
pij ≤ U <
k,
Xi =
j=0
j=0




..................


.. . .. .. . .



R
R−1

X
X



pij
pij ≤ U <
R,


j=0
j=0
L’algoritmo per simulare la variabile aleatoria discreta Xi data in (7.6) è quindi
il seguente:
⋄ Algoritmo
Step 1: Generare una variabile aleatoria U uniformemente distribuita in
(0, 1);
Step 2: Eseguire in sequenza i seguenti passi:
- Se 0 ≤ U < pi0 porre Xi = 0 (completato il servizio nella i-esima risorsa
l’utente esce dalla rete);
- Se U < pi0 + pi1 porre Xi = 1 (completato il servizio nella i-esima
risorsa l’utente si dirige verso la prima risorsa dalla rete);
- Se U < pi0 + pi1 + pi2 porre Xi = 2 (completato il servizio nella i-esima
risorsa l’utente si dirige verso la seconda risorsa dalla rete);
.
..
..
..
..
..
..
..
..
..
..
..
..
..
- ..
.
.
.
.
.
.
.
.
.
.
.
.
.
- Se U < pi0 + pi1 + . . . + piR porre Xi = R (completato il servizio nella
i-esima risorsa l’utente si dirige verso la risorsa R-esima dalla rete).
Per generare una sequenza di valori della variabile aleatoria Xi data in (7.6)
si procede quindi nel seguente modo. Si genera un reale uk uniformemente
distribuito nell’intervallo [0, 1) e si ricava tramite l’algoritmo precedente il valore
xk corrispondente al numero uk generato. Iterando questo procedimento ai vari
elementi della sequenza u0 , u1 , . . . si ottiene la sequenza x0 , x1 , . . . di numeri
reali che costituiscono osservazioni della variabile aleatoria Xi .
A.G. Nobile
140
7.5
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Simulazione ad eventi discreti
La simulazione dei sistemi di servizio e delle reti di code deve prevedere la
rappresentazione cronologica degli stati attraverso cui passa il sistema durante
un prefissato intervallo di tempo.
I simulatori possono essere distinti in sincroni e asincroni in base alle modalità con cui viene descritto il trascorrere del tempo.
Nei simulatori sincroni il tempo di simulazione viene suddiviso in tanti intervalli di uguale ampiezza. All’inizio o alla fine di ciascuno di questi intervalli
si determinano gli eventuali cambiamenti di stato del sistema. In tali simulatori
è importante scegliere accuratamente il passo di discretizzazione dell’asse temporale. Infatti se il passo è scelto molto piccolo si rischia di aggiornare troppo
spesso e inutilmente le variabili, la durata della simulazione diventa elevata e
aumenta la complessità computazionale. Invece, un passo di discretizzazione
molto grande può fornire una rappresentazione imprecisa (grossolana) del comportamento del sistema. La perdita di precisione e di efficienza di un simulatore
sincrono comportano che le misure prestazionali del sistema potrebbero risultare
imprecise.
Nei simulatori asincroni il tempo di simulazione viene aggiornato in modo
irregolare in base ai cambiamenti di stato del sistema. I simulatori asincroni
si basano sul principio che lo stato del sistema rimane invariato tra gli istanti
successivi di cambiamento di stato del processo e quindi non occorre osservare
il sistema in questi periodi di tempo.
La simulazione a eventi discreti (orientata agli eventi) utilizza simulatori
asincroni. In essa lo scorrere del tempo è strettamente legato al verificarsi di
cambiamenti di stato (detti eventi) del sistema. Gli eventi non avvengono in modo continuo ma soltanto negli istanti temporali in cui si verificano cambiamento
di stato del sistema. Il simulatore ad eventi discreti quindi salta i periodi in cui
non si verificano cambiamenti di stato poiché tali periodi non sono significativi
per la descrizione dell’evoluzione del sistema.
La simulazione a eventi discreti è quindi di fondamentale importanza nella
descrizione di sistemi di servizio e di reti di code. Gli elementi chiave della
simulazione a eventi discreti sono le variabili e gli eventi.
Ogni possibile situazione che porta ad un cambiamento del valore delle variabili di stato che descrivono il comportamento del sistema prende il nome di
evento. Ad esempio, nel caso di un sistema di servizio M/M/1 si possono identificare due tipi di eventi: (a) l’arrivo di un utente che causa un incremento
unitario nel numero di utenti nel sistema e (b) la partenza di un utente che
causa un decremento unitario nel numero di utenti nel sistema. Ogni evento è
caratterizzato da due parametri: l’istante di occorrenza dell’evento e il tipo di
evento.
Nella simulazione a eventi discreti occorre:
- definire i tipi di eventi che si possono verificare;
- definire per ogni evento le modifiche da apportare allo stato del sistema;
A.G. Nobile
7.6. SISTEMA M/G/1 CON LIMITAZIONE TEMPORALE
141
- definire una variabile temporale e ordinare gli eventi in un elenco cronologico
in base all’istante di occorrenza dell’evento;
- definire uno stato iniziale;
- scorrere l’elenco ed ogni volta che si incontra un evento eseguire le modifiche
alle variabili di stato corrispondenti a quell’evento;
- effettuare misure di tipo statistico sulle variabili di uscita.
Nell’effettuare la simulazione ad eventi discreti occorre di continuo tenere
traccia di alcune variabili. In generale, sono spesso utilizzate tre tipi di variabili:
la variabile temporale, le variabili contatore e la variabile di stato del sistema:
Variabile temporale t: mantiene traccia del tempo trascorso
Variabili contatore: mantengono il conteggio del numero di volte in cui si è
verificato un determinato evento fino al tempo t
Variabile di stato del sistema: descrive lo stato del sistema al tempo t.
7.6
Sistema M/G/1 con limitazione temporale
Consideriamo un sistema di servizio M/G/1 singolo servitore, singola fila di
attesa, a capacità infinita, con disciplina di servizio FIFO in cui il processo degli
arrivi è di Poisson di parametro λ (i tempi di interarrivo degli utenti sono quindi
distribuiti esponenzialmente con valore medio 1/λ) e i tempi di servizio hanno
una distribuzione di probabilità di tipo generale (deterministica, esponenziale,
. . .). Il sistema di servizio M/G/1 è illustrato in Figura 7.1.
Distribuzione G dei
tempi di servizio
Processo
di Poisson
di parametro λ
-
Figura 7.1: Sistema di servizio M/G/1 con limitazione temporale degli utenti
in entrata.
Supponiamo di denotare con Tf in l’istante di tempo dopo il quale si suppone
non sia più permesso agli utenti in arrivo di accedere al sistema sebbene il
servitore dopo tale istante dovrà completare il servizio di tutti gli utenti che
sono già nel sistema al tempo Tf in . Questa situazione si verifica frequentemente
in sistemi di servizio (banche, uffici postali, . . .) in cui è previsto un orario
giornaliero di apertura e di chiusura al pubblico.
Denotiamo con Ts la variabile aleatoria che descrive il tempo del primo arrivo
dopo s. Come si evince dalla Figura 7.2 l’intervallo di tempo che intercorre tra
s e il tempo Ts del primo arrivo dopo s è un intervallo residuo di interarrivo.
A.G. Nobile
142
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
0
tempo di interarrivo
residuo
6
Ts
s
-
nuovo arrivo dopo s
Figura 7.2: Tempo del primo arrivo dopo s per il sistema di servizio M/G/1.
Poiché il processo degli arrivi è di Poisson, l’intervallo residuo di interarrivo ha
la stessa distribuzione esponenziale dell’intervallo di interarrivo.
La variabile aleatoria Ts può quindi essere cosı̀ simulata:
⋄ Algoritmo
Step 1: Porre t = s;
Step 2: Generare una variabile aleatoria U uniformemente distribuita nell’intervallo (0, 1);
Step 3: Porre
Ts = s −
1
ln (1 − U ).
λ
Denotiamo poi con S la variabile aleatoria che descrive il tempo di servizio,
caratterizzata da distribuzione di probabilità generale. In particolare, se i tempi
di servizio sono distribuiti esponenzialmente con valore medio 1/µ, la variabile
aleatoria S può essere cosı̀ simulata:
⋄ Algoritmo
Step 1: Generare una variabile aleatoria U uniformemente distribuita nell’intervallo (0, 1);
Step 2: Porre
S=−
1
ln (1 − U ).
µ
Quando i tempi di servizio sono distribuiti esponenzialmente si ottiene il
sistema di servizio M/M/1 con limitazione temporale che può descrivere una
singola risorsa con unico servitore di una rete di Jackson. È comunque possibile
simulare tempi di servizio non distribuiti esponenzialmente utilizzando idonei
algoritmi di generazione per la variabile S.
Supponiamo di essere interessati a simulare il sistema M/G/1 con limitazione
temporale degli utenti in entrata e di voler determinare: (a) il tempo medio di
attesa di un utente, (b) il tempo in cui l’ultimo utente lascia il sistema, (c) il
numero medio di utenti presenti nel sistema.
Per effettuare la simulazione del sistema M/G/1 con limitazione temporale
degli utenti in entrata, usiamo le seguenti variabili:
A.G. Nobile
7.6. SISTEMA M/G/1 CON LIMITAZIONE TEMPORALE
143
Variabile temporale: t (tempo di osservazione)
Variabili contatore:
NA : numero cumulativo di arrivi fino al tempo t
ND : numero cumulativo di partenze fino al tempo t
Variabile di stato (SS) del sistema:
tempo t).
n (numero di utenti nel sistema al
Poiché le precedenti variabili cambiano valore quando si verifica un arrivo o
una partenza di un utente, scegliamo gli arrivi dall’esterno e le partenze come
eventi. La lista degli eventi dovrà pertanto contenere
EL = tA , tD
dove
- tA è il tempo del nuovo arrivo (successivo a t),
- tD è il tempo di completamento del servizio dell’utente attualmente in servizio.
Se nessun utente è presente in servizio, allora tD verrà posto uguale a ∞, ossia
tD = ∞.
Le variabili di output da calcolare sono:
- A(i) il tempo di arrivo dell’utente i-esimo (i ≥ 1),
- D(i) il tempo di partenza dell’utente i-esimo (i ≥ 1),
- Tp il tempo in cui l’ultimo utente lascia il sistema,
- la coppia (n, t), ossia il numero di utenti nel sistema in ogni istante di tempo
t = tA e t = tD in cui si verifica un evento.
Per iniziare la simulazione occorre inizializzare le variabili e i tempi degli
eventi come segue:
Inizializzazione
Al tempo t = 0
- porre NA = ND = 0 (il numero cumulativo di arrivi e di partenze fino al
tempo t = 0 sono nulli);
- porre SS = 0 (il numero di utenti nel sistema al tempo t = 0 è nullo);
- Generare T0 (il tempo del prossimo arrivo dopo t = 0) e porre tA = T0
e tD = ∞ (si pone il tempo di servizio infinito non essendoci utenti in
servizio al tempo t = 0).
A.G. Nobile
144
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Per procedere nella simulazione occorre muoversi lungo l’asse temporale fino ad incontrare il prossimo evento. Supponiamo che in un generico passo
dell’algoritmo nell’elenco degli eventi abbiamo ottenuto:
t = variabile temporale,
SS = n,
EL = tA , tD
Al passo successivo occorre esaminare differenti casi a seconda di quale evento
si verifica per primo.
Caso 1 tA ≤ tD , tA = min(tA , tD ) ≤ Tf in (Procedura di arrivo)
In questo caso il tempo del prossimo arrivo dopo t è minore o uguale al tempo
di completamento del servizio dell’utente attualmente in servizio ed inoltre il
tempo del prossimo arrivo dopo t è inferiore a Tf in . I passi da compiere sono:
- Reset:
t = tA (ci muoviamo fino al tempo tA );
- Reset:
n = n + 1 (poiché esiste ora un nuovo utente);
- Reset:
NA = NA + 1 (poiché esiste un nuovo arrivo al tempo tA );
- Generare Tt e porre tA = Tt (questo è il tempo del nuovo arrivo dopo l’istante
di tempo t)
- Se n = 1 (ossia se l’utente arrivato è l’unico presente nel sistema) generare
S (poiché occorre generare il tempo di servizio del nuovo utente) e porre
tD = t + S (tempo di completamento del servizio dell’utente attualmente
in servizio). Si noti che se n > 1 esiste già un utente in servizio.
- In output registrare il tempo A(NA ) = t (il tempo di arrivo dell’utente NA è
t) e SS = n (numero di utenti presenti al tempo t).
Caso 2 tD < tA , tD = min(tA , tD ) ≤ Tf in (Procedura di partenza)
In questo caso il tempo del prossimo arrivo dopo t è maggiore del tempo di
completamento del servizio dell’utente attualmente in servizio ed inoltre tale
tempo è inferiore a Tf in . I passi da compiere sono:
- Reset:
t = tD (ci muoviamo fino al tempo tD );
- Reset:
n = n − 1 (poiché l’utente in servizio lascia il sistema);
- Reset:
ND = ND + 1 (poiché una partenza si verifica al tempo tD );
- Se n = 0 (non ci sono utenti nel sistema) porre tD = ∞. Se invece n > 0
(ossia ci sono ancora utenti nel sistema) generare S e porre tD = t + S
(tempo di completamento del servizio dell’utente attualmente in servizio);
- In output registrare il tempo D(ND ) = t (il tempo di partenza dell’utente
ND è t) e SS = n (numero di utenti presenti al tempo t).
A.G. Nobile
7.6. SISTEMA M/G/1 CON LIMITAZIONE TEMPORALE
145
Caso 3 min(tA , tD ) > Tf in , n > 0 (Procedura di terminazione)
In questo caso il tempo del prossimo arrivo dopo t e il tempo di completamento
del servizio dell’utente attualmente in servizio sono maggiori di Tf in e nel sistema sono ancora presenti degli utenti. Nel sistema non possono più accedere
nuovi utenti ed occorre fornire il servizio agli utenti già entrati nel sistema. I
passi da compiere sono:
- Reset:
t = tD (ci muoviamo fino al tempo tD );
- Reset:
n = n − 1 (poiché l’utente in servizio lascia il sistema);
- Reset:
ND = ND + 1 (poiché una partenza si verifica al tempo tD );
- Se n > 0 (sono presenti ancora utenti nel sistema) generare S e porre tD =
t + S;
- In output registrare il tempo D(ND ) = t (il tempo di partenza dell’utente
ND è t) e SS = n (numero di utenti presenti al tempo t).
Caso 4 min(tA , tD ) > Tf in , n = 0 (Terminazione della simulazione)
In questo caso il tempo del prossimo arrivo dopo t e il tempo di completamento del servizio dell’utente attualmente in servizio sono maggiori di Tf in e nel
sistema non sono più presenti degli utenti.
- In output registrare Tp = tD (tempo in cui l’ultimo utente lascia il sistema).
In Figura 7.3 è illustrato il diagramma di flusso dell’algoritmo di simulazione
precedentemente esaminato per il sistema M/G/1 con limitazione temporale
degli utenti in entrata.
Al termine della simulazione abbiamo ottenuto NA (numero totale di arrivi)
che sarà anche uguale a ND (numero totale delle partenze). Per ogni i =
1, 2, . . . , NA abbiamo registrato A(i) (il tempo di arrivo dell’utente i-esimo) e
D(i) (il tempo di partenza dell’utente i-esimo), cosı̀ che D(i) − A(i) rappresenta
il tempo che l’utente i-esimo spende nel sistema. Alla fine abbiamo calcolato
anche Tp , ossia il tempo in cui l’ultimo utente lascia il sistema.
La media campionaria e la varianza campionaria del tempo di attesa nel
sistema sono quindi dati da:
NA
1 X
W =
[D(i) − A(i)],
NA i=1
NA
X
1
V (W ) =
[D(i) − A(i) − W ]2 . (7.7)
NA − 1 i=1
I risultati della simulazione permettono inoltre di ottenere il numero di utenti
N (t) presenti nel sistema al tempo t a partire dalle coppie (n, t), dove t denota
l’istante di tempo in cui si è verificato un evento (arrivo o partenza) e dove n
denota il numero di utenti presenti nel sistema al tempo t. Una stima della
probabilità di avere i utenti nel sistema nell’intervallo (0, Tp ) può essere cosı̀
ottenuta:
tempo trascorso nello stato i
(i = 0, 1, . . . , NA ),
(7.8)
qbi =
Tp
A.G. Nobile
146
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
t = tA
n=n+1
NA=NA+1
- A(NA )= t
-
Caso 1
?
Left
box
t, n
tA , tD
n>0
3
tD = t + S
- D(ND )=t @
@
n=0
R tD = ∞
@
t = tD
Caso 2
-n =n−1
ND =ND+1
J
J
Caso 3, 4 J
J
J
J
^
n=0
-
n =
1
*
Generare
S
tD = t + S
@
@ n 6= 1
?
@
Generare
Go to
@
R- left
@
S
Generare
Tt
tA = Tt
box
6
Tp = tD
Stop
3
n=0
n>0
?
t = tD
n=n−1
N D = ND + 1
I
@
D(ND ) = t
@
@
n>0
-
Generare S
tD = t + S
Figura 7.3: Diagramma di flusso del sistema di servizio M/G/1 con limitazione
temporale degli utenti in entrata.
da cui è possibile ricavare una stima della media e della varianza del numero di
utenti presenti nel sistema nell’intervallo (0, Tp ):
N=
NA
X
i=1
i qbi
V (N ) =
NA
X
i=1
(i − N )2 qbi .
(7.9)
L’esempio seguente mostra l’utilizzazione dell’algoritmo in un semplice caso.
Esempio 7.1 Consideriamo la simulazione di un sistema di servizio M/G/1 in
cui si sono verificati soltanto tre arrivi fino al tempo finale Tf in . I risultati della
simulazione sono elencati in Tabella 7.2 in cui gli istanti di arrivo a1 , a2 , a3 dei
tre utenti, i loro rispettivi istanti di completamento del servizio d1 , d2 , d3 e il
tempo finale di simulazione sono ordinati come segue:
a1 < d1 < a2 < a3 < d2 < Tf in < d3 .
A.G. Nobile
7.6. SISTEMA M/G/1 CON LIMITAZIONE TEMPORALE
t
0
a1
d1
a2
a3
d2
d3
Stop
n
0
1
0
1
2
1
0
NA
0
1
1
2
3
3
3
ND
0
0
1
1
1
2
3
tA
T0 = a 1
Ta 1 = a 2
a2
Ta 2 = a 3
Ta 3 = a 4
a4
a4
tD
∞
a 1 + S = d1
∞
a 2 + S = d2
d2
d2 + S = d3
d3
A(i)
D(i)
A(1) = a1
D(1) = d1
A(2) = a2
A(3) = a3
D(2) = d2
D(3) = d3
147
Casi
Iniz.
C1
C2
C1
C1
C2
C3
C4
Tabella 7.2: Esempio di funzionamento del simulatore del sistema M/G/1 con
soltanto tre arrivi.
I risultati della simulazione indicati in Tabella 7.2 permettono di ottenere
una stima dei tempi di attesa nel sistema dei tre utenti, ossia Wi = D(i) − A(i)
(i = 1, 2, 3), da cui tramite la (7.7) si ricava la media campionaria e la varianza
campionaria del tempo di attesa di un utente nel sistema. Inoltre, l’istante in
cui l’ultimo utente lascia il sistema dopo Tf in è Tp = d3 . Dalla Tabella 7.2 si
ricava:

0, 0 ≤ t < a1



1,
a1 ≤ t < d1




0,
d

1 ≤ t < a2
N (t) = 1, a2 ≤ t < a3
(7.10)


2,
a
≤
t
<
d

3
2




 1, d2 ≤ t < d3
0, t = d3 ,
da cui è possibile ricostruire la realizzazione, illustrata in Figura 7.4, del sistema
di servizio M/G/1 ottenuta con la simulazione di soltanto tre arrivi.
6
N (t)
2
1
a1
d1
a2
a3
d2
Tf in
d3
t
Figura 7.4: Una semplice realizzazione del sistema di servizio M/G/1 con tre
arrivi fino al tempo Tf in .
A.G. Nobile
148
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Facendo uso di (7.10) in (7.8) si ottiene poi una stima delle probabilità di
avere i utenti (i = 0, 1, 2) nel sistema nell’intervallo (0, d3 ):
qb0 =
a1 + (a2 − d1 )
,
d3
qb1 =
(d1 − a1 ) + (a3 − a2 ) + (d3 − d2 )
,
d3
qb2 =
d2 − a3
,
d3
da cui utilizzando la (7.9) con NA = 3 si ricava una stima della media e della
varianza del numero di utenti nel sistema nell’intervallo (0, d3 ).
♦
7.7
Rete tandem: due risorse, unico servitore
Consideriamo una rete tandem con due risorse ognuna con unico servitore
schematizzata nella Figura 7.5.
Processo di
Poisson di
parametro λ
Risorsa 1
-
G1
Risorsa 2
-
G2
Figura 7.5: Rete tandem con due risorse ognuna con unico servitore con
distribuzione dei tempi di servizio di tipo generale
Supponiamo che il processo degli arrivi alla prima risorsa sia di Poisson di
parametro λ (tempi di interarrivo distribuiti esponenzialmente con valore medio
1/λ) e che i tempi di servizio del servitore della risorsa i-esima siano caratterizzati da una distribuzione di probabilità Gi di tipo generale (deterministica,
esponenziale, . . .). In particolare, se la distribuzione dei tempi di servizio di
entrambi i servitori è di tipo esponenziale con rispettivi valori medi 1/µ1 e 1/µ2
si ottiene una rete di code tandem con due risorse di Jackson.
Una scelta importante consiste nello stabilire in che modo termina la simulazione (numero massimo di utenti a cui fornire il servizio, tempo massimo di
simulazione, . . .). Supponiamo di scegliere come modalità con cui terminare la
simulazione il numero massimo di utenti a cui fornire servizio e denotiamo con
Tp il tempo in cui l’ultimo utente lascia la rete.
Siamo interessati ad usare la simulazione per analizzare (a) il tempo medio
che un utente spende in ogni singola risorsa della rete, (b) il tempo in cui l’ultimo
utente lascia la rete tandem e (c) il numero di utenti presenti nelle singole
risorse.
Per effettuare la simulazione del sistema tandem illustrato in Figura 7.5
usiamo le seguenti variabili:
Variabile temporale: t (tempo di osservazione)
Variabili contatore:
NA : numero cumulativo di arrivi fino al tempo t
ND : numero cumulativo di partenze fino al tempo t
A.G. Nobile
7.7. RETE TANDEM: DUE RISORSE, UNICO SERVITORE 149
Variabile di stato (SS) del sistema: (n1 , n2 ) (sono presenti n1 utenti
nella prima risorsa e n2 utenti nella seconda risorsa al tempo t).
Poiché le precedenti variabili cambiano valore quando si verifica un arrivo dall’esterno oppure una partenza di un utente dalla prima risorsa oppure una partenza
dalla seconda risorsa, scegliamo gli arrivi dall’esterno e le partenze da ognuna
delle due risorse come eventi. La lista degli eventi dovrà contenere il tempo del
nuovo arrivo e il tempo della partenza dell’utente attualmente in servizio dalla
prima e dalla seconda risorsa della rete di code tandem. La lista degli eventi
dovrà quindi contenere tre variabili
EL = tA , t1 , t2
dove
- tA è il tempo del nuovo arrivo dall’esterno (successivo a t),
- ti è il tempo di completamento del servizio dell’utente attualmente in servizio
nella risorsa i-esima della rete (i = 1, 2). Se non ci sono utenti in servizio
nella i-esima risorsa allora ti (i = 1, 2) verrà posto uguale a ∞, ossia
ti = ∞.
Le variabili di output da calcolare sono:
- A1 (n) il tempo di arrivo dell’utente n-esimo alla prima risorsa (n = 1, 2, . . .);
- A2 (n) il tempo di arrivo dell’utente n-esimo alla seconda risorsa (n = 1, 2, . . .);
si noti che A2 (n) coincide con il tempo di completamento del servizio nella
prima risorsa della rete tandem;
- D(n) il tempo di partenza dell’utente n-esimo dalla rete tandem (n = 1, 2, . . .);
- la tripla (n1 , n2 , t), ossia il numero di utenti nelle singole risorse della rete in
ogni istante di tempo t = tA , t1 , t2 in cui si verifica un evento.
Per iniziare la simulazione occorre inizializzare le variabili e i tempi degli eventi
come segue:
Inizializzazione
Al tempo t = 0
- porre NA = ND = 0 (il numero di arrivi e di partenze fino al tempo t = 0
sono nulli);
- porre SS = (0, 0) (il numero di utenti in entrambe le risorse della rete al
tempo t = 0 è nullo);
- Generare T0 (il tempo del prossimo arrivo nella prima risorsa dopo t = 0)
e porre tA = T0 e t1 = t2 = ∞ (si pone il tempo di servizio infinito per
entrambe le risorse non essendoci utenti in servizio al tempo t = 0).
A.G. Nobile
150
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Per procedere nella simulazione occorre muoversi lungo l’asse temporale fino ad incontrare il prossimo evento. Supponiamo che in un generico passo
dell’algoritmo nell’elenco degli eventi abbiamo ottenuto:
t = variabile temporale,
SS = (n1 , n2 ),
EL = tA , t1 , t2
Al passo successivo occorre considerare casi differenti a seconda di quale evento
si verifica per primo.
Caso 1 tA = min(tA , t1 , t2 ) (Procedura di arrivo alla prima risorsa)
In questo caso il tempo del prossimo arrivo dopo t è inferiore al tempo di completamento del servizio dell’utente attualmente in servizio in entrambe le risorse
della rete. I passi da compiere sono:
- Reset:
t = tA (ci muoviamo fino al tempo tA );
- Reset:
n1 = n1 + 1 (poiché è arrivato dall’esterno un nuovo utente nella
prima risorsa);
- Reset:
NA = NA + 1 (poiché esiste un nuovo arrivo al tempo tA );
- Generare Tt e porre tA = Tt (questo è il tempo del nuovo arrivo dopo l’istante
di tempo t)
- Se n1 = 1 (ossia se l’utente arrivato è l’unico presente nella prima risorsa)
generare S1 (poiché occorre generare il tempo di servizio del nuovo utente
della prima risorsa) e porre t1 = t + S1 (tempo di completamento del
servizio dell’utente attualmente in servizio nella prima risorsa). Si noti
che se n1 > 1 esiste già un utente in servizio nella prima risorsa;
- In output registrare il tempo A1 (NA ) = t (il tempo di arrivo dell’utente NA
alla prima risorsa è t) e SS = (n1 , n2 ) (il numero di utenti al tempo t è n1
nella prima risorsa e n2 nella seconda risorsa).
Caso 2 t1 < tA , t1 ≤ t2 (Procedura di arrivo alla seconda risorsa)
In questo caso il tempo del prossimo arrivo dopo t è maggiore del tempo di completamento del servizio dell’utente attualmente in servizio nella prima risorsa
ed inoltre tale tempo t1 è inferiore al tempo di completamento del servizio dell’utente attualmente in servizio nella seconda risorsa della rete tandem. Quindi
un utente deve uscire dalla prima risorsa ed entrare nella seconda risorsa della
rete di code tandem. I passi da compiere sono:
- Reset:
t = t1 (ci muoviamo fino al tempo t1 );
- Reset:
n1 = n1 − 1, n2 = n2 + 1 (poiché l’utente in servizio alla prima
risorsa completa il servizio e passa istantaneamente alla seconda risorsa);
- Se n1 = 0 (non ci sono utenti nella prima risorsa) porre t1 = ∞. Se invece
n1 > 0 (ossia ci sono utenti nella prima risorsa) generare S1 e porre t1 =
t + S1 (tempo di completamento del servizio dell’utente attualmente in
servizio nella prima risorsa);
A.G. Nobile
7.7. RETE TANDEM: DUE RISORSE, UNICO SERVITORE 151
- Se n2 = 1 (esiste un solo utente nella seconda risorsa) generare S2 e porre
t2 = t + S2 (tempo di completamento del servizio dell’utente attualmente
in servizio nella seconda risorsa). Si noti che se n2 > 1 esiste già un utente
in servizio nella seconda risorsa;
- In output registrare il tempo A2 (NA − n1 ) = t (il tempo di arrivo dell’utente
NA − n1 alla seconda risorsa è t, essendo arrivati NA utenti di cui n1 sono
nella prima risorsa) e SS = (n1 , n2 ) (il numero di utenti al tempo t nella
prima risorsa è è n1 e nella seconda risorsa è n2 ).
Caso 3 t2 < tA , t2 ≤ t1 (Procedura di partenza alla seconda risorsa)
In questo caso il tempo del prossimo arrivo dopo t è maggiore del tempo di
completamento del servizio dell’utente attualmente in servizio nella seconda
risorsa ed inoltre tale tempo t2 è inferiore al tempo di completamento del servizio
dell’utente attualmente in servizio nella prima risorsa della rete tandem. Quindi
un utente deve uscire dalla seconda risorsa della rete di code tandem. I passi
da compiere sono:
- Reset:
t = t2 (ci muoviamo fino al tempo t2 );
- Reset:
n2 = n2 −1 (poiché l’utente in servizio alla seconda risorsa completa
il servizio);
- Reset:
ND = ND + 1 (poiché un utente lascia la rete avendo completato
il servizio nella seconda risorsa);
- Se n2 = 0 (non ci sono utenti nella seconda risorsa) porre t2 = ∞, mentre
se n2 > 0 (ossia esistono degli utenti nella seconda risorsa) generare S2
e porre t2 = t + S2 (tempo di completamento del servizio dell’utente
attualmente in servizio nella seconda risorsa);
- In output registrare il tempo D(ND ) = t (il tempo di partenza dalla rete
dell’utente è t) e SS = (n1 , n2 ) (il numero di utenti al tempo t nella prima
risorsa è è n1 e nella seconda risorsa è n2 ).
Al termine della simulazione abbiamo ottenuto NA (numero totale di arrivi) e
ND (numero totale di partenze), con NA = ND . Poiché abbiamo scelto come
modalità per terminare la simulazione il numero massimo di utenti a cui fornire
servizio, al termine della simulazione ND rappresenta tale numero e Tp = D(ND )
è il tempo in cui l’ultimo utente lascia la rete tandem.
Per ogni i = 1, 2, . . . , NA abbiamo registrato A1 (i) (il tempo di arrivo dell’utente i-esimo alla prima risorsa) e A2 (i) (il tempo di arrivo dell’utente i-esimo
alla seconda risorsa che coincide con il tempo di completamento del servizio
nella prima risorsa) e D(i) (il tempo di uscita dalla rete dell’utente i-esimo).
Quindi A2 (i) − A1 (i) rappresenta il tempo che l’utente i-esimo spende nella prima risorsa e D(i) − A2 (i) rappresenta il tempo che l’utente i-esimo spende nella
seconda risorsa.
A.G. Nobile
152
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
La media campionaria e la varianza campionaria del tempo di attesa nella
prima risorsa della rete sono
W1=
NA
1 X
[A2 (i)−A1 (i)],
NA i=1
N
V (W1 ) =
A
X
1
[A2 (i)−A1 (i)−W 1 ]2 , (7.11)
NA − 1 i=1
mentre la media campionaria e la varianza campionaria del tempo di attesa nella
seconda risorsa della rete sono
W2=
NA
1 X
[D(i)−A2 (i)],
NA i=1
V (W2 ) =
NA
X
1
[D(i)−A2 (i)−W 2 ]2 . (7.12)
NA − 1 i=1
Dalle (7.11) e (7.12) segue che una stima del tempo medio di attesa di un utente
nella rete è W = W 1 + W 2 .
I risultati della
simulazione permettono inoltre di ottenere il numero di utenti N1 (t), N2 (t) presenti nella rete tandem al tempo t a partire dalle triple
(n1 , n2 .t), dove t denota l’istante di tempo in cui si è verificato un evento (arrivo ad una delle due risorse o uscita dalla rete) e dove la coppia (n1 , n2 ) denota
il numero di utenti presenti nelle due risorse al tempo t = tA , t1 , t2 . Una stima
della probabilità di avere i utenti nella prima risorsa e j utenti nella seconda
risorsa della rete di code tandem nell’intervallo (0, Tp ) è
qb(i, j) =
tempo trascorso nello stato (i, j)
Tp
(i, j = 0, 1, . . . , NA ),
(7.13)
da cui è possibile ricavare le probabilità marginali:
qb1 (i) =
NA
X
j=0
qb(i, j) (i = 0, 1, . . . , NA ),
qb2 (j) =
NA
X
i=0
qb(i, j) (j = 0, 1, . . . , NA ).
(7.14)
Si nota che a differenza di quanto accade nell’analisi asintotica delle reti tandem
di Jackson, nella simulazione la probabilità congiunta (7.13) non si fattorizza
come il prodotto delle singole probabilità (7.14).
Una stima della media e della varianza del numero di utenti presenti nella
prima risorsa nell’intervallo (0, Tp ) è:
N1 =
NA
X
i qb1 (i)
V (N1 ) =
j qb2 (j)
V (N2 ) =
i=1
NA
X
i=1
(i − N 1 )2 qb1 (i),
(7.15)
(j − N 2 )2 qb2 (j).
(7.16)
mentre una stima della media e della varianza del numero di utenti presenti
nella seconda risorsa nell’intervallo (0, Tp ) è:
N2 =
NA
X
j=1
NA
X
j=1
Una stima del numero medio di utenti presenti nella rete tandem considerata è
quindi N = N 1 + N 2 .
A.G. Nobile
7.7. RETE TANDEM: DUE RISORSE, UNICO SERVITORE 153
Esempio 7.2 Consideriamo la simulazione della rete tandem in Figura 7.5 e
supponiamo che sia tre il numero massimo di utenti a cui fornire il servizio,
ossia supponiamo di terminare la simulazione non appena i tre utenti lasciano
la rete. I risultati della simulazione sono elencati in Tabella 7.3 in cui gli istanti
di arrivo a1 , a2 , a3 alla prima risorsa dei tre utenti, gli istanti di arrivo b1 , b2 , b3
alla seconda risorsa e i loro rispettivi istanti d1 , d2 , d3 di uscita dalla rete sono
ordinati come segue:
a1 < a2 < b1 < d1 < b2 < a3 < b3 < d2 < d3 .
t
0
a1
a2
b1
d1
b2
a3
b3
d2
d3
n1
0
1
2
1
1
0
1
0
0
0
n2
0
0
0
1
0
1
1
2
1
0
NA
0
1
2
2
2
2
3
3
3
3
ND
0
0
0
0
1
1
1
1
2
3
tA
T0 = a1
Ta1 = a2
Ta2 = a3
a3
a3
a3
Ta3 = a4
a4
a4
a4
t1
∞
a1 + S1 = b1
b1
b1 + S1 = b2
b2
∞
a3 + S1 = b3
∞
∞
∞
t2
∞
∞
∞
b1 + S2 = d1
∞
b2 + S2 = d2
d2
d2
d2 + S2 = d3
∞
Aj (i), D(i)
A1 (1) = a1
A1 (2) = a2
A2 (1) = b1
D(1) = d1
A2 (2) = b2
A1 (3) = a3
A2 (3) = b3
D(2) = d2
D(3) = d3
Casi
Iniz
C1
C1
C2
C3
C2
C1
C2
C3
C3
Tabella 7.3: Esempio di funzionamento del simulatore della rete tandem di Figura 7.5.
I risultati della simulazione indicati in Tabella 7.3 permettono di ottenere una
stima dei tempi di attesa A2 (i) − A1 (i) dei tre utenti nella prima risorsa e dei
loro tempi di attesa D(i)−A2 (i) nella seconda risorsa (i = 1, 2, 3), da cui tramite
le (7.11) e (7.12) si ricavano la media campionaria e la varianza campionaria del
tempo di attesa nelle singole due risorse della rete. Inoltre l’istante di tempo in
cui il terzo utente lascia la rete è Tp = d3 . Denotando con N(t) = (N1 (t), N2 (t)),
dalla Tabella 7.3 si ricava:
 (0, 0), 0 ≤ t < a
1


(1, 0), a1 ≤ t < a2

 0, 0 ≤ t < a1
 0, 0 ≤ t < b1


(2, 0), a2 ≤ t < b1






1,
a
≤
t
<
a
1, b1 ≤ t < d1
1
2






 (1, 1), b1 ≤ t < d1
 2, a2 ≤ t < b1
 0, d1 ≤ t < b2
(1, 0), d ≤ t < b
N(t) = (0, 1), b 1 ≤ t < a2 N1 (t) = 1, b1 ≤ t < b2 N2 (t) = 1, b2 ≤ t < b3
2
3



0, b2 ≤ t < a3
2, b3 ≤ t < d2






(1, 1), a3 ≤ t < b3





1, a3 ≤ t < b3
1, d2 ≤ t < d3


(0, 2), b3 ≤ t < d2


0, b3 ≤ t ≤ d3 ,
0, t = d3 ,

 (0, 1), d2 ≤ t < d3
(0, 0),
t = d3 ,
(7.17)
da cui è possibile ricostruire le realizzazioni dei processi N1 (t) e N2 (t), illustrate
in Figura 7.6, ottenute mediante la simulazione della rete tandem di Figura 7.5.
Dalle (7.17) inoltre si ottiene anche il numero complessivo di utenti presenti
nella rete, ossia N (t) = N1 (t) + N2 (t).
Facendo uso di (7.17) in (7.13) si ricava poi una stima delle probabilità di
avere i utenti nella prima risorsa e j utenti nella seconda risorsa (i, j = 0, 1, 2)
nella rete tandem nell’intervallo (0, d3 ):
qb(0, 0) =
A.G. Nobile
a1
,
d3
qb(0, 1) =
(a3 − b2 ) + (d3 − d2 )
,
d3
qb(0, 2) =
d2 − b3
,
d3
154
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
6N1 (t)
2
1
a1
a2
b1
d1
b2
a3
b3
d2
d3 t
a2
b1
d1
b2
a3
b3
d2
d3 t
6N2 (t)
2
1
a1
Figura 7.6: Una semplice realizzazione del numero di utenti presenti nelle due
risorse della rete tandem di Figura 7.5
(d1 − b1 ) + (b3 − a3 )
(a2 − a1 ) + (b2 − d1 )
, qb(1, 1) =
,
d3
d3
b1 − a2
qb(2, 0) =
,
qb(2, 1) = 0,
qb(2, 2) = 0,
d3
qb(1, 0) =
qb(1, 2) = 0,
da cui utilizzando (7.14) si ottengono le stima delle probabilità marginali relative
al numero di utenti presenti nelle singole risorse della rete nell’intervallo (0, d3 ):
(a2 −a1 )+(b2 −b1 ) + (b3 −a3 )
b1 − a2
a1 +(a3 −b2 )+(d3 −b3 )
, qb1 (1) =
, qb1 (2) =
d3
d3
d3
b1 + (b2 − d1 )
(d1 − b1 ) + (b3 − b2 ) + (d3 − d2 )
d2 − b3
qb2 (0) =
, qb2 (1) =
, qb2 (2) =
.
d3
d3
d3
qb1 (0) =
Tali valutazioni permettono di ottenere tramite le (7.15) e (7.16) con NA = 3
le stime della media e della varianza del numero di utenti nelle due risorse della
rete tandem nell’intervallo (0, d3 ).
♦
7.8
Due servitori che lavorano in parallelo
Consideriamo un sistema di servizio con due servitori che lavorano in parallelo,
singola fila di attesa, a capacità infinita, con disciplina di servizio FIFO in cui
il processo degli arrivi è di Poisson di parametro λ (i tempi di interarrivo degli
utenti sono quindi distribuiti esponenzialmente con valore medio 1/λ) e i tempi
di servizio del servitore i-esimo (i = 1, 2) hanno una distribuzione di probabilità
Gi di tipo generale (deterministica, esponenziale, . . .). Tale sistema di servizio
è illustrato in Figura 7.7.
A.G. Nobile
7.8. DUE SERVITORI CHE LAVORANO IN PARALLELO
Processo di
Poisson di
parametro λ
-
- Q
Q
Q
G1
b
b
b
#
#
#
G2
155
-
Figura 7.7: Sistema di servizio con due servitori che lavorano in parallelo.
Il sistema di servizio schematizzato in Figura 7.7 può prevedere servitori con
differenti velocità di servizio, ad esempio uno molto veloce e l’altro estremamente
lento. Se i due servitori sono identici, ossia la distribuzione dei tempi di servizio
è la stessa per entrambi, allora per descrivere il sistema di servizio in esame si
può adottare la notazione di Kendall M/G/2. In particolare, se la distribuzione
dei tempi di servizio per entrambi i servitori è di tipo esponenziale con valore
medio 1/µ, si ottiene un sistema di servizio M/M/2 che può descrivere una
singola risorsa con due servitori di una rete di Jackson.
Dopo l’arrivo l’utente si metterà in fila di attesa se entrambi i servitori
sono occupati, entrerà in servizio dal servitore 1 se risulta libero oppure entrerà
in servizio dal servitore 2 se il primo servitore è occupato. Quando l’utente
completa il servizio da uno dei due servitori, l’utente uscirà dal sistema e l’utente
arrivato per primo (se ne sono presenti più di uno) entrerà nel centro di servizio.
Inoltre, questo meccanismo di servizio differisce da quello del modello M/M/2
poiché assumiamo che se entrambi i servitori sono liberi l’utente che entra in
servizio non sceglie in maniera casuale uno dei due servitori ma si dirige sempre
verso il primo servitore.
Scegliamo come modalità di terminazione della simulazione il numero massimo di utenti a cui il sistema deve fornire servizio e denotiamo con Tp il tempo
in cui l’ultimo utente lascia il sistema.
Supponiamo di voler simulare il precedente sistema registrando il tempo
trascorso nel sistema da ogni utente e il numero di completamenti di servizio
effettuati da ognuno dei due servitori.
Poiché sono presenti due servitori, gli utenti non partiranno necessariamente
nell’ordine in cui sono arrivati. Quindi per conoscere quale utente ha lasciato il
sistema dopo il completamento del servizio occorre registrare gli utenti presenti
nel sistema. Cosı̀ numeriamo gli utenti che arrivano nel sistema: il primo arrivo
è l’utente numero 1, il seguente è l’utente numero 2 e cosı̀ via. Poiché la disciplina
di servizio è quella FIFO (entrano in servizio secondo il loro arrivo), segue che la
conoscenza di quali utenti (ossia del numero ad essi associato) sono in servizio
e di quanti utenti sono nel sistema, ci permette di identificare gli utenti in fila
di attesa. Ad esempio, supponiamo che gli utenti numerati i e j sono in servizio
con i < j, e che ne esistano n > 2 nel sistema, ossia due in servizio e n − 2 in
fila di attesa. Poiché tutti gli utenti con numero minore di j sono già entrati in
servizio prima dell’utente j-esimo e inoltre nessun utente con numero più alto di
j ha completato il servizio, segue che gli utenti numerati con j + 1, . . . , j + n − 2
sono in fila di attesa.
A.G. Nobile
156
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
Per effettuare la simulazione del sistema di servizio, illustrato in Figura 7.7,
con due servitori che lavorano in parallelo usiamo le seguenti variabili:
Variabile temporale: t (tempo di osservazione)
Variabili contatore:
NA : numero cumulativo di arrivi fino al tempo t
Cj : numero cumulativo di partenze dal servitore j-esimo (j = 1, 2) fino al
tempo t
Variabile di stato (SS) del sistema: (n, i1 , i2 ) (sono presenti n utenti nel
sistema al tempo t, i1 è il numero associato all’utente attualmente in servizio dal primo servitore e i2 è il numero associato all’utente attualmente
in servizio dal secondo servitore). Poniamo inoltre SS = (0) quando il sistema è vuoto al tempo t, SS = (1, j, 0) quando al tempo t l’unico utente
nel sistema è il j-esimo ed è servito dal primo servitore e SS = (1, 0, j)
quando al tempo t l’unico utente è il j-esimo ed è servito dal secondo
servitore.
Poiché le precedenti variabili cambiano valore quando si verifica un arrivo oppure una partenza di un utente dal primo servitore oppure una partenza dal
secondo servitore, scegliamo gli arrivi dall’esterno e le partenze da ognuno dei
due servitori come eventi. La lista degli eventi contiene il tempo del nuovo arrivo e il tempo della partenza dell’utente attualmente in servizio dal primo e
dal secondo servitore del sistema di servizio. La lista degli eventi dovrà quindi
contenere tre variabili
EL = tA , t1 , t2
dove
- tA è il tempo del nuovo arrivo (successivo a t),
- ti è il tempo di completamento del servizio dell’utente attualmente in servizio
presso il servitore i-esimo (i = 1, 2). Se non ci sono utenti in servizio presso
il servitore i-esimo allora ti (i = 1, 2) verrà posto uguale a ∞.
Le variabili di output da calcolare sono:
- A(n) il tempo di arrivo dell’utente n-esimo nel sistema (n = 1, 2, . . .),
- D(n) il tempo di partenza dell’utente n-esimo dal sistema (n = 1, 2, . . .),
- la quadrupla (n, i1 , i2 , t), ossia il numero n di utenti nel sistema, il numero i1
associato all’utente in servizio dal primo servitore e il numero i2 associato
all’utente in servizio dal secondo servitore in ogni istante di tempo t =
tA , t1 , t2 in cui si verifica un evento.
Per iniziare la simulazione occorre inizializzare le variabili e i tempi degli eventi
come segue:
Inizializzazione
Al tempo t = 0
A.G. Nobile
7.8. DUE SERVITORI CHE LAVORANO IN PARALLELO
157
- porre NA = C1 = C2 = 0 (il numero cumulativo di arrivi e il numero
cumulativo di partenze da ognuno dei due servitori fino al tempo t = 0
sono nulli);
- porre SS = (0) (il sistema è vuoto al tempo t = 0);
- Generare T0 (il tempo del prossimo arrivo nel sistema dopo t = 0) e porre
tA = T0 e t1 = t2 = ∞ (si pone il tempo di servizio infinito per entrambi
i servitori non essendoci utenti in servizio al tempo t = 0).
Per procedere nella simulazione occorre muoversi lungo l’asse temporale fino ad incontrare il prossimo evento. Supponiamo che in un generico passo
dell’algoritmo nell’elenco degli eventi abbiamo ottenuto:
t = variabile temporale,
SS = (n, i1 , i2 ),
EL = tA , t1 , t2
Al passo successivo occorre considerare casi differenti a seconda di quale evento
si verifica per primo.
Caso 1 SS = (n, i1 , i2 ) e tA = min(tA , t1 , t2 )
In questo caso il tempo del prossimo arrivo dopo t è inferiore al tempo di
completamento del servizio per entrambi i servitori. I passi da compiere sono:
- Reset:
t = tA (ci muoviamo fino al tempo tA );
- Reset:
NA = NA + 1 (poiché esiste un nuovo arrivo al tempo tA );
- Generare Tt e porre tA = Tt (questo è il tempo del nuovo arrivo dopo t);
- In output registrare il tempo A(NA ) = t (il tempo di arrivo dell’utente NA è
t). Inoltre:
- Se lo stato del sistema era SS = (0).
Reset:
SS = (1, NA , 0) (il sistema è vuoto e arriva un utente che
accede al servizio offerto dal primo servitore; il numero associato all’utente
in servizio dal primo servitore è NA )
Generare S1 (tempo di servizio dell’utente attualmente in servizio dal
primo servitore) e porre t1 = t + S1 (tempo di completamento del servizio
dell’utente in servizio dal primo servitore)
- Se lo stato del sistema era SS = (1, j, 0)
Reset:
SS = (2, j, NA ) (nel sistema è presente un solo utente che è in
servizio dal primo servitore e arriva un nuovo utente che accede al servizio
offerto dal secondo servitore; il numero associato all’utente in servizio dal
secondo servitore è NA )
Generare S2 (tempo di servizio dell’utente attualmente in servizio dal
secondo servitore) e porre t2 = t+S2 (tempo di completamento del servizio
dell’utente in servizio dal secondo servitore)
A.G. Nobile
158
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
- Se lo stato del sistema era SS = (1, 0, j)
Reset:
SS = (2, NA , j) (nel sistema è presente un solo utente che
è in servizio dal secondo servitore e arriva un nuovo utente che accede
al servizio offerto dal primo servitore; il numero associato all’utente in
servizio dal primo servitore è NA )
Generare S1 e porre t1 = t + S1
- Se il numero di utenti presenti nel sistema era n > 1
Reset:
SS = (n + 1, i1 , i2 ) (entrambi i servitori sono occupati e il
nuovo utente che arriva si metterà in fila di attesa).
Caso 2 SS = (n, i1 , i2 ), t1 < tA , t1 ≤ t2
In questo caso il tempo del prossimo arrivo dopo t è maggiore del tempo di
completamento del servizio dell’utente attualmente in servizio dal primo servitore ed inoltre tale tempo t1 è inferiore al tempo di completamento del servizio
dell’utente attualmente in servizio dal secondo servitore. Quindi l’uscita dal
sistema di un utente si deve verificare dal primo servitore. I passi da compiere
sono:
- Reset:
t = t1 (ci muoviamo fino al tempo t1 );
- Reset:
C1 = C1 + 1
(esiste una partenza dal primo servitore)
- In output registrare il tempo D(i1 ) = t (il tempo di partenza dell’utente i1 è
t). Inoltre:
- Se il numero di utenti presenti nel sistema era n = 1
Reset:
SS = (0) (è presente un utente dal primo servitore e tale
utente lascia il sistema)
Reset:
t1 = ∞
- Se il numero di utenti presenti nel sistema era n = 2
Reset:
SS = (1, 0, i2 ) (sono presenti due utenti in servizio e si verifica
una partenza dal primo servitore)
Reset:
t1 = ∞
- Se il numero di utenti presenti nel sistema era n > 2, posto m = max(i1 , i2 )
Reset:
SS = (n−1, m+1, i2) (esistono utenti in coda e una partenza
dal primo servitore consente ad un utente in fila di attesa di accedere al
servizio del primo servitore; il numero associato a tale utente è m + 1)
Generare S1 e porre t1 = t + S1 (poiché un nuovo utente accede al servizio
del primo servitore essendo non vuota la fila di attesa)
Caso 3 SS = (n, i1 , i2 ), t2 < tA , t2 ≤ t1
In questo caso il tempo del prossimo arrivo dopo t è maggiore del tempo di completamento del servizio dell’utente attualmente in servizio dal secondo servitore
A.G. Nobile
7.8. DUE SERVITORI CHE LAVORANO IN PARALLELO
159
ed inoltre tale tempo t2 è inferiore al tempo di completamento del servizio dell’utente attualmente in servizio dal primo servitore. Quindi l’uscita dal sistema
di un utente si deve verificare dal secondo servitore. I passi da compiere sono:
- Reset:
t = t2 (ci muoviamo fino al tempo t2 );
- Reset:
C2 = C2 + 1
(esiste una partenza dal secondo servitore)
- In output registrare il tempo D(i2 ) = t (il tempo di partenza dell’utente i2 è
t). Inoltre:
- Se il numero di utenti presenti nel sistema era n = 1
Reset:
SS = (0) (è presente un utente dal secondo servitore e tale
utente lascia il sistema)
Reset:
t2 = ∞
- Se il numero di utenti presenti nel sistema era n = 2
Reset:
SS = (1, i1 , 0)
(sono presenti due utenti e si verifica una
partenza dal secondo servitore)
Reset:
t2 = ∞
- Se il numero di utenti presenti nel sistema era n > 2, posto m = max(i1 , i2 )
Reset:
SS = (n−1, i1, m+1) (esistono utenti in coda e una partenza
dal secondo servitore consente ad un utente in fila di attesa di accedere al
servizio del secondo servitore; il numero associato a tale utente è m + 1)
Generare S2 e porre t2 = t + S2 (poiché un nuovo utente accede al servizio
del secondo servitore essendo non vuota la fila di attesa)
Utilizzando questo algoritmo è possibile ottenere i tempi di arrivo e di partenza
dei vari utenti, cosı̀ come il numero di completamenti di servizio effettuati da
ognuno dei due servitori. Al termine della simulazione abbiamo ottenuto NA
(numero complessivo di arrivi), C1 (numero complessivo di partenze dal primo
servitore) e C2 (numero complessivo di partenze dal secondo servitore), da cui è
possibile ricavare il numero complessivo di utenti a cui è stato fornito il servizio,
ossia ND = C1 + C2 .La simulazione termina quando abbiamo fornito il servizio
a tutti gli utenti previsti ed il tempo in cui l’ultimo utente lascia il sistema è
Tp = D(ND ). Per ogni i = 1, 2, . . . , NA abbiamo registrato A(i) (il tempo di
arrivo dell’utente i-esimo) e D(i) il tempo di uscita dal sistema dell’utente iesimo). Quindi D(i) − A(i) rappresenta il tempo che l’utente i-esimo spende nel
sistema. La media campionaria e la varianza campionaria del tempo di attesa
nel sistema sono:
W=
NA
1 X
[D(i) − A(i)],
NA i=1
V (W ) =
NA
1 X
[D(i) − A(i) − W ]2 .
NA − 1 i=1
(7.18)
I risultati della simulazione permettono inoltre di ottenere il numero di utenti
presenti nel sistema al tempo t a partire dalle coppie (n, t), dove t denota l’istante
A.G. Nobile
160
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
di tempo in cui si è verificato un evento e n il numero di utenti presenti nel
sistema al tempo t. Una stima delle probabilità di avere i utenti nel sistema
nell’intervallo (0, Tp ) può essere cosı̀ ottenuta:
qbi =
tempo trascorso nello stato i
Tp
(i = 0, 1, . . . , NA ),
(7.19)
da cui è possibile ricavare una stima della media e della varianza del numero di
utenti presenti nel sistema nell’intervallo (0, Tp ):
N=
NA
X
i=1
i qbi
V (N ) =
NA
X
i=1
(i − N )2 qbi .
(7.20)
È anche possibile studiare le potenzialità dei due servitori analizzando i numeri
medi complessivi di partenze C 1 e C 2 dal primo e dal secondo servitore fino al
tempo Tp .
L’esempio seguente mostra l’utilizzazione dell’algoritmo in un semplice caso.
Esempio 7.3 Consideriamo la simulazione del sistema di servizio, illustrato
in Figura 7.7 con due servitori che lavorano in parallelo e supponiamo che il
sistema deve fornire servizio a quattro utenti. Quindi la simulazione terminerà
quando si saranno avute quattro uscite dal sistema. I risultati della simulazione
sono elencati in Tabella 7.4 in cui gli istanti di arrivo a1 , a2 , a3 , a4 , gli istanti di
uscita b1 , b2 , b3 dal primo servitore e l’istante di uscita d1 dal secondo servitore
sono cosı̀ ordinati:
a1 < a2 < b1 < d1 < a3 < b2 < a4 < b3 .
t
0
a1
a2
b1
d1
a3
b2
a4
b3
(n, i1 , i2 )
(0)
(1, 1, 0)
(2, 1, 2)
(1, 0, 2)
(0)
(1, 3, 0)
(0)
(1, 4, 0)
(0)
NA
0
1
2
2
2
3
3
4
4
C1
0
0
0
1
1
1
2
2
3
C2
0
0
0
0
1
1
1
1
1
tA
T0 = a1
Ta1 = a2
Ta2 = a3
a3
a3
Ta3 = a4
a4
Ta4 = a5
a5
t1
∞
a1 + S1 = b1
b1
∞
∞
a3 + S1 = b2
∞
a4 + S1 = b3
∞
t2
∞
∞
a2 + S2 = d1
d1
∞
∞
∞
∞
∞
A(i), D(i)
A(1) = a1
A(2) = a2
D(1) = b1
D(2) = d1
A(3) = a3
D(3) = b2
A(4) = a4
D(4) = b3
Tabella 7.4: Esempio di funzionamento del simulatore del sistema di servizio con due
servitori che lavorano in parallelo.
I risultati della simulazione indicati in Tabella 7.4 permettono di ottenere una
stima dei tempi di attesa nel sistema dei quattro utenti, ossia D(i) − A(i) (i =
1, 2, 3, 4), da cui tramite la (7.18) si ricava la media campionaria e la varianza
A.G. Nobile
Casi
Iniz
C1
C1
C2
C3
C1
C2
C1
C2
7.8. DUE SERVITORI CHE LAVORANO IN PARALLELO
6
161
N (t)
2
1
0
a1
a2
b1
d1
a3
b2
a4
b3
t
Figura 7.8: Una semplice realizzazione del numero di utenti presenti in un
sistema di servizio con due servitori che lavorano in parallelo.
campionaria

0,



1,




2,




 1,
N (t) = 0,


1,




0,





 1,
0,
del tempo di attesa. Dalla Tabella 7.4 si ricava inoltre
0 ≤ t < a1
a1 ≤ t < a2
a2 ≤ t < b 1
b1 ≤ t < d1
d1 ≤ t < a3
a3 ≤ t < b 2
b 2 ≤ t < a4
a4 ≤ t < b 3
t = b3 ,

0,


1,
C1 (t) =
 2,

3,
0 ≤ t < b1
b1 ≤ t < b2
b2 ≤ t < b3
t = b3 ,
C2 (t) =
0, 0 ≤ t < d1
1, d1 ≤ t < b3 ,
da cui è possibile ricostruire la realizzazione illustrata in Figura 7.8 del sistema
di servizio con due servitori che lavorano in parallelo. Facendo uso di (7.19) si
ottiene poi una stima delle probabilità di avere i utenti (i = 0, 1, 2) nel sistema
nell’intervallo (0, b3 ):
a1 + (a3 − d1 ) + (a4 − b2 )
,
b3
(a2 − a1 ) + (d1 − b1 ) + (b2 − a3 ) + (b3 − a4 )
,
qb1 =
b3
b 1 − a2
qb2 =
,
b3
qb0 =
da cui utilizzando la (7.20) con NA = 4 si ricava una stima della media e
della varianza del numero di utenti nel sistema nell’intervallo (0, b3 ). Infine,
utilizzando nuovamente la Tabella 7.4 è anche possibile ottenere le realizzazioni,
illustrate in Figura 7.9 del numero cumulativo di partenze C1 e C2 dal primo
e dal secondo servitore al crescere del tempo. Il numero medio complessivo di
partenze dal primo servitore fino al tempo b3 è
C1 =
A.G. Nobile
b2 − b1
b3 − b2
b1 + b2
+2
=2−
,
b3
b3
b3
162
CAPITOLO 7. SIMULAZIONE DI RETI DI CODE
6
C1 (t)
2
1
0
2
a1
a2
b1
d1
a3
b2
a4
b3
t
d1
a3
b2
a4
b3
t
6
C2 (t)
1
0
a1
a2
b1
Figura 7.9: Una semplice realizzazione del numero cumulativo di partenze C1 e
C2 dai primo e dal secondo servitore.
mentre il numero medio complessivo di partenze dal secondo servitore fino al
tempo b3 è
d1
b3 − d1
=1− .
C2 =
b3
b3
Si nota che il numero medio di partenze dal primo servitore è maggiore del
numero medio di partenze dal secondo servitore, ossia
C1 − C2 =
b3 − b2 + d1 − b1
> 0,
b3
Pertanto, le prestazioni del primo servitore sono migliori di quelle del secondo.
♦
La simulazione ad eventi discreti fornisce quindi un valido strumento per la
descrizione e per l’analisi di singole risorse e di reti di code.
A.G. Nobile
Capitolo 8
Reti di Gordon-Newell
8.1
Introduzione
Nel 1967 Gordon e Newell considerarono delle reti markoviane chiuse in cui un
numero fissato e finito K di utenti circolano nella rete e non sono presenti input
e output esterni alla rete. Le reti di Gordon-Newell si sono rivelate utili nella
descrizione di sistemi di comunicazione, di traffico stradale, di riparazione e di
computer multiprogrammati.
Nel seguito considereremo prima una semplice rete chiusa con feedback e
successivamente il modello più generale delle reti markoviane chiuse di GordonNewell. Tra queste particolare interesse rivestono le reti cicliche. In una rete
ciclica l’output di una risorsa diventa l’input della successiva risorsa e l’output
dell’ultima risorsa diventa l’input della prima risorsa.
8.2
Rete chiusa con due risorse
Consideriamo la rete chiusa schematizzato in Figura 8.1 costituita da due risorse,
ognuna con unico servitore, collegate in serie con feedback in cui un utente che
esce dalla prima risorsa può accedere nuovamente a tale risorsa con probabilità
1 − p (0 < p ≤ 1)
Feedback
?
Risorsa 1
6
?
1−p
µ1
Risorsa 2
p
-
6
µ2
Figura 8.1: Una rete chiusa costituita da due sistemi di servizio, ognuno con
unico servitore, collegati in serie con feedback.
163
164
CAPITOLO 8. RETI DI GORDON-NEWELL
Il sistema consiste di due risorse dotate ognuna di un centro di attesa e un
centro di servizio. Assumiamo che nella rete siano presenti K utenti. La prima
risorsa è costituita da un centro di attesa la cui capacità è K − 1 e un centro di
servizio dotato di un unico servitore. Supponiamo che i tempi di servizio, ossia
i tempi necessari per soddisfare le richieste di ogni utente nella prima risorsa,
siano indipendenti e distribuiti esponenzialmente con valore medio 1/µ1 . Gli
utenti che escono dalla prima risorsa, essendo stati serviti, possono ritornare
istantaneamente alla prima risorsa con probabilità 1 − p, oppure con probabilità
p (0 < p ≤ 1) accedere alla seconda risorsa. Anche la seconda risorsa è costituita
da un centro di attesa la cui capacità è K − 1 e un centro di servizio dotato
di un unico servitore. Un utente attende in fila di attesa se il servitore della
seconda risorsa è occupato. Supponiamo che i tempi di servizio, ossia i tempi
necessari per soddisfare le richieste di ogni utente nella seconda risorsa, siano
indipendenti e distribuiti esponenzialmente con valore medio 1/µ2 . Assumiamo
inoltre che ogni utente che esce dalla seconda risorsa si diriga istantaneamente
nella prima risorsa.
La rete in Figura 8.1 può descrivere un modello di computer system in cui
la CPU è rappresentata dalla prima risorsa e l’I/O dalla seconda risorsa e in
cui un numero fissato e finito K di programmi circolano indefinitamente nel
sistema. Quando un programma termina l’esecuzione nella CPU può richiedere
un’operazione alla risorsa di I/O con probabilità p.
Denotiamo con q(n1 , n2 ) la probabilità che nella situazione di equilibrio statistico nel sistema siano presenti n1 utenti nella prima risorsa e n2 utenti nella
seconda risorsa, con n1 = 0, 1, . . . , K e n1 + n2 = K.
In Figura 8.2 è preso in esame il generico stato (n1 , n2 ) con n1 = 1, 2, . . . , K −
1 e n1 + n2 = K.
···
···
···
'$
µ2
n1 − 1,
n2 + 1
µ p
&%1
-
'$
µ2
n1 , n2
µ p
&%1
'$
···
- n1 + 1,
···
n2 − 1
···
&%
(n1 + n2 = K)
Figura 8.2: Grafo di transizione per lo stato (n1 , n2 ) della rete chiusa con
feedback di Figura 8.1 quando n1 = 1, 2, . . . , K − 1 e n1 + n2 = K.
Uguagliando il flusso medio entrante nello stato (n1 , n2 ) e il flusso medio
uscente da tale stato, risulta:
(µ1 p + µ2 ) q(n1 , n2 ) = µ1 p q (n1 + 1, n2 − 1) + µ2 q(n1 − 1, n2 + 1)
(n1 = 1, 2, . . . , K − 1; n2 = K − n1 ).
(8.1)
In Figura 8.3 è invece preso in esame sia lo stato (0, K) sia lo stato (K, 0).
Uguagliando il flusso medio entrante nello stato (0, K) e il flusso medio uscente
da tale stato, si ha:
µ2 q(0, K) = µ1 p q(1, K − 1)
(8.2)
A.G. Nobile
8.2. RETE CHIUSA CON DUE RISORSE
'$
µ2
0, K
µ p
&%1
'$
'$
µ2
1, K − 1
K − 1, 1
µ p
&%1
&%
165
'$
K, 0
&%
Figura 8.3: Grafo di transizione per lo stato (0, K) e per lo stato (K, 0) della
rete chiusa con feedback di Figura 8.1.
Infine, uguagliando il flusso medio entrante nello stato (K, 0) e il flusso medio
uscente da tale stato, si ottiene:
µ1 p q(K, 0) = µ2 q(K − 1, 1)
(8.3)
È facile dimostrare per diretta sostituzione che la soluzione delle equazioni di
bilanciamento (8.1), (8.2) e (8.3) è
1 b n1 b p n2
(n1 = 0, 1, . . . , K; n1 + n2 = K), (8.4)
q(n1 , n2 ) =
C2 (K) µ1
µ2
dove b è un numero reale positivo arbitrario e dove C2 (K), detta costante di
normalizzazione, è tale che risulti:
K
X
q(n1 , K − n1 ) = 1.
(8.5)
n1 =0
In condizioni di equilibrio statistico si nota che le probabilità di stato (8.4)
si presentano ancora in forma prodotto, anche se le probabilità q(n1 , n2 ) non
sono il prodotto delle probabilità di stato delle singole risorse della rete. Infatti,
essendo n1 +n2 = K, in condizioni di equilibrio gli stati delle singole risorse non
sono indipendenti come accadeva nella corrispondente rete aperta di Jackson.
Se poniamo α1 = b e α2 = b p, possiamo interpretare α1 e α2 rispettivamente
come le frequenze medie complessive di arrivo alla prima ed alla seconda risorsa
della rete. Quindi,
̺1 =
b
α1
=
,
µ1
µ1
̺2 =
α2
bp
=
µ2
µ2
(8.6)
si possono rispettivamente interpretare come le intensità di traffico della prima
e della seconda risorsa della rete.
Sostituendo (8.4) in (8.5) si ha:
K X
b n1 b p K−n1
1
,
1=
C2 (K) n =0 µ1
µ2
1
ossia
K b p K X
µ2 n1
C2 (K) =
.
µ2
µ1 p
n =0
1
A.G. Nobile
(8.7)
166
CAPITOLO 8. RETI DI GORDON-NEWELL
Distinguiamo due casi: (i) µ2 = µ1 p e (ii) µ2 6= µ1 p.
(i) Se µ2 = µ1 p, dalla (8.7) segue che
C2 (K) =
b p K
µ2
(K + 1)
e quindi la (8.4) diventa:
q(n1 , K − n1 ) =
1
µ2
1
=
K + 1 µ1 p
K +1
(n1 = 0, 1, . . . , K)
(ii) Se invece µ2 6= µ1 p, dalla (8.7) segue che
C2 (K) =
b p K
µ2
µ K+1
2
µ1 p
µ2
1−
µ1 p
1−
e quindi la (8.4) diventa:
µ2
1−
µ n1
µ1 p
2
q(n1 , K − n1 ) =
µ K+1
µ1 p
2
1−
µ1 p
(n1 = 0, 1, . . . , K).
Ponendo r = µ2 /(µ1 p), nella situazione di equilibrio statistico quindi si ha:

1−r


rn1 , r 6= 1

1 − rK+1
(n1 = 0, 1, . . . , K).
(8.8)
q(n1 , K − n1 ) =

1


,
r=1
K +1
In condizioni di equilibrio la probabilità q(n1 , K − n1 ) ha la stessa forma funzionale della probabilità di avere n1 utenti presenti nel sistema M/M/1/K. Infatti,
se si pone in (3.29) l’intensità di traffico ̺ = r, si ottiene la (8.8).
Si noti che sebbene i valori di ̺1 , ̺2 e C2 (K) dipendano dalla costante
positiva b (scelta arbitrariamente), dalla (8.8) segue che le probabilità q(n1 , n2 )
non sono influenzate da tale costante.
La rete in in Figura 8.1 diventa ciclica quando p = 1; il grafico di tale rete
ciclica è mostrata in Figura 8.4. Per ottenere le probabilità di stato in condizioni
di equilibrio statistico per la rete ciclica di Figura 8.4 basta porre r = µ2 /µ1 in
(8.8).
In condizioni di equilibrio statistico la descrizione delle reti chiuse è molto
più complessa rispetto alle reti aperte poiché i comportamenti delle diverse
risorse non sono completamente disaccoppiati (come invece accade per le reti
aperte di Jackson). Ad esempio, se si considera la rete composta da due risorse
di Figura 8.1, la probabilità che nella prima risorsa siano presenti n1 utenti
coincide con la probabilità che nella seconda risorsa siano presenti n2 = K − n1
utenti, venendo cosı̀ meno all’indipendenza tra le risorse. Nonostante ciò anche
A.G. Nobile
8.3. RETE CHIUSA DI GORDON-NEWELL
167
Feedback
?
Risorsa 1
-
µ1
Risorsa 2
-
6
µ2
Figura 8.4: Una rete ciclica costituita da due sistemi di servizio collegati in serie
con feedback.
per le reti chiuse si può parlare di soluzione in forma prodotto, benché esisterà
sempre un coefficiente di normalizzazione che tiene conto della distribuzione
complessiva degli utenti tra le risorse e che quindi collega le evoluzioni di tutte
le singole risorse della rete chiusa.
8.3
Rete chiusa di Gordon-Newell
Illustriamo ora in generale le reti chiuse di Gordon-Newell. In primo luogo,
numeriamo opportunamente le risorse della rete. Il modello generale delle reti
di Gordon-Newell si basa sulle seguenti ipotesi:
(1) un numero fissato e finito K di utenti che circolano nella rete;
(2) R risorse, ciascuna con una fila di attesa (buffer) di capacità finita;
(3) singola classe di utenti e disciplina FIFO per ciascuna risorsa della rete;
(4) la risorsa i-esima (i = 1, 2, . . . , R) consiste di si servitori, ognuno con tempi
di servizio distribuiti esponenzialmente con valore medio 1/µi ;
(5) gli utenti, dopo aver ricevuto servizio nella i-esima risorsa, procedono istantaneamente nella j-esima risorsa (i, j = 1, 2, . . . , R) con probabilità di
diramazione pij ;
(6) le frequenze complessive medie α1 , α2 , . . . , αR di arrivo alle risorse della rete
(considerando gli arrivi da altre risorse della rete) soddisfano il sistema
αi =
R
X
αj pji
(i = 1, 2, . . . , R).
(8.9)
j=1
Le (8.9) sono le equazioni di conservazione dei parametri di arrivo e la
frequenza αi è anche detta frequenza di visita relativo alla i-esima risorsa.
Per una rete chiusa di Gordon-Newell la matrice di switching (di instradamento) P è una matrice stocastica, ossia tale che
pij ≥ 0,
(i, j = 1, 2 . . . , R),
R
X
j=1
A.G. Nobile
pij = 1
(i = 1, 2, . . . , R).
168
CAPITOLO 8. RETI DI GORDON-NEWELL
Se il numero di utenti presenti nella i-esima risorsa (dotata di si servitori) di
una rete di Gordon-Newell è K, il numero massimo di utenti presenti in fila di
attesa è K − si .
8.3.1
Frequenza media complessiva degli arrivi
In Figura 8.5 sono visualizzati i flussi entranti ed uscenti dalla risorsa i-esima
di una rete chiusa di Gordon-Newell.
Risorsa 1
A
α1 p1i
A
U
A
Risorsa 2
@@
RA
α2 p2i@A
@A
······
······
······
αR pRi
Risorsa R Risorsa 1
µi
1
αi pi1
B
B
µi
% B
2 J
Risorsa 2
%
B
7
J
······
%
JB - αi pi2
······
-%
JB ······
······
BJ
C
······
BJ
C
Capacità
finita K − si
······
BJ
C
µi
B
C αi piR
B
C
si B
C
µi
CWC Risorsa R
Risorsa i
Figura 8.5: Diagramma di transizione della i-esima risorsa di una rete chiusa di
Gordon-Newell.
Interpretiamo ora le (8.9). Se alla risorsa j-esima di una rete di GordonNewell arrivano in media αj utenti e se soltanto una frazione pari a pji viene
indirizzata verso la i-esima risorsa, allora αj pji rappresenta il contributo agli
arrivi alla i-esima risorsa. Pertanto la frequenza media complessiva αi degli
arrivi alla risorsa i-esima è la somma di tutti i contributi agli arrivi da parte
delle varie risorse della rete.
Se si denota con α
~ il vettore riga di componenti (α1 , α2 , . . . , αR ) e con P la
matrice stocastica di switching (di instradamento), il sistema (8.9) può essere
equivalentemente scritto in notazione matriciale
α
~ =α
~ P,
(8.10)
o equivalentemente
α
~ (I − P ) = 0,
dove I è la matrice identità, di cardinalità R × R, i cui elementi sono unitari
sulla diagonale principale e nulli altrove. A differenza della rete di Jackson, la
matrice dei coefficienti I − P è ora singolare, dal momento che la somma degli
A.G. Nobile
8.3. RETE CHIUSA DI GORDON-NEWELL
169
elementi di ciascuna riga è nulla (non ci sono uscite dalla rete). Poiché P è una
matrice stocastica, soltanto R − 1 delle R equazioni sono indipendenti e una di
esse è ridondante.
Il sistema (8.9) ammette quindi infinite soluzioni, ovvero è possibile fissare
arbitrariamente il valore di una variabile e le altre variabili risultano determinate
di conseguenza. La frequenza αj che viene fissata assume dunque il significato
di una variabile di riferimento, in quanto tutti gli altri valori di αk (k 6= j)
saranno relativi a tale αj . Infatti, essendo la rete chiusa, non esiste un riferimento esterno assoluto, ma sarà invece solo possibile stabilire, ad esempio,
se una risorsa è visitata in media il doppio (il triplo, . . .) di quanto è visitata
in media un’altra risorsa della rete. Se, ad esempio, esiste una risorsa i-esima
della rete che viene visitata esattamente d volte da ogni utente si può porre
αi = d e gli altri valori di αj (j 6= i) risulteranno determinati di conseguenza.
È quindi importante ricordare che in generale in una rete chiusa α1 , α2 , . . . , αR
rappresentano soltanto degli indici relativi.
Dalla Figura 8.5 si nota anche che la frequenza media complessiva di uscita
dalla risorsa i-esima di una rete chiusa di Gordon-Newell con R risorse è
R
X
αi pij = αi
j=1
R
X
pij = αi ,
j=1
e coincide con la frequenza media complessiva degli arrivi a tale risorsa.
Anche se nella rete di Gordon-Newell gli utenti continuano a circolare nella
rete chiusa da una risorsa ad un’altra senza mai entrare o uscire dalla rete, nella
realtà possono verificarsi, ovviamente, sia ingressi che uscite. Infatti, spesso in
una rete chiusa si inserisce una risorsa aggiuntiva di input/output in cui non
appena un utente esce dalla rete è istantaneamente sostituito da un nuovo utente
che entra nella rete. Si nota che il numero di volte in cui la risorsa aggiuntiva di
input/output è visitata non dipende dalle probabilità di instradamento pij cosı̀
come accade per le altre risorse.
8.3.2
Numero di stati
Denotiamo con n = (n1 , n2 , . . . , nR ) un generico stato di una rete chiusa con
R risorse e K utenti che circolano nella rete e assumiamo che n1 , n2 , . . . , nR =
0, 1, . . . , K e che n1 + n2 + . . . + nR = K. Inoltre indichiamo con DR (K) il
seguente insieme:
DR (K) = {n = (n1 , n2 , . . . , nR ) : 0 ≤ ni ≤ K, n1 + n2 + . . . + nR = K}.
La cardinalità dell’insieme DR (K) si identifica con il numero di stati (n1 , n2 , . . . ,
nR ) di una rete chiusa con R risorse e K utenti e corrisponde al numero di modi
in cui è possibile disporre K oggetti tra loro indistinguibili in R urne:
R+K −1
(R + K − 1)!
R+K −1
|DR (K)| =
=
=
·
(8.11)
R−1
K
K! (R − 1)!
A.G. Nobile
170
CAPITOLO 8. RETI DI GORDON-NEWELL
Ad esempio, se R = 2 il numero degli stati della rete è K+1
= K + 1. Se
1
14
invece K = 10 e R = 5 il numero di stati della rete è 4 = 1001. Inoltre se
K = 25 e R = 10 allora il numero di stati è 34
= 52451256. Si nota che il
9
numero di stati cresce esponenzialmente sia con il numero K di utenti sia con
il numero R di risorse; quindi anche per valori relativamente piccoli di K e di
R tale cardinalità è molto grande.
Fortunatamente, Gordon e Newell nel 1967 hanno mostrato che le probabilità
di stato di reti chiuse markoviane hanno una forma prodotto relativamente
semplice che però non si presenta come prodotto delle probabilità di stato delle
singole risorse della rete. Infatti, essendo n1 + n2 + . . . + nR = K, gli stati delle
singole risorse non sono indipendenti come invece accade per le reti aperte di
Jackson.
8.3.3
Teorema di Gordon-Newell
Sia q(n1 , n2 , . . . , nR ) la probabilità che in condizioni di equilibrio statistico la
rete chiusa di Gordon-Newell sia nello stato (n1 , n2 , . . . , nR ), dove ni denota il
numero di utenti presenti nella i-esima risorsa (i = 1, 2 . . . , R). Se ni = 0 allora
nella risorsa i-esima non sono presenti utenti. Se ni = n con n = 1, 2, . . . , si
allora nella risorsa i-esima sono occupati n servitori e la fila di attesa è vuota.
Infine, se ni = n con n = si + 1, si + 2, . . . allora tutti i servitori della risorsa
i-esima sono occupati e sono presenti n − si utenti nella fila di attesa.
Essendo il numero di utenti che circolano in una rete chiusa fissato e finito,
non esistono problemi di stabilità, ossia una rete di code chiusa ammette sempre
una distribuzione di equilibrio (il che non sempre si verifica in una rete aperta
di Jackson).
Teorema 8.1 (Teorema di Gordon-Newell) Nelle ipotesi (1)–(6) precedentemente elencate, la probabilità che in condizioni di equilibrio statistico una rete
chiusa di Gordon-Newell con R risorse e K utenti che circolano nella rete si trovi nello stato n = (n1 , n2 , . . . , nR ), dove ni denota il numero di utenti presenti
nella i-esima risorsa, è:
q(n1 , n2 , . . . , nR ) =
1
g1 (n1 ) g2 (n2 ) · · · gR (nR ),
CR (K)
(8.12)
con
gi (0) = 1,

(αi /µi )n



n!
gi (n) =
n
(α
/µ

i
i)


si ! sin−si
n = 1, 2, . . . , si
(8.13)
n = si + 1, si + 2, . . . , K,
dove α1 , α2 , . . . , αR sono le soluzioni delle equazioni di conservazione dei parametri di arrivo (8.9) e dove CR (K) è la costante di normalizzazione:
X
g1 (n1 ) g2 (n2 ) · · · gR (nR ),
(8.14)
CR (K) =
n∈DR (K)
A.G. Nobile
8.3. RETE CHIUSA DI GORDON-NEWELL
171
ottenuta imponendo che la somma delle probabilità (8.12) sia unitaria.
Dimostrazione Si procede come per la rete chiusa discussa nel Paragrafo 8.2.
Infatti, la dimostrazione consisterà nell’individuare per ogni singolo nodo della
rete il flusso medio entrante ed uscente pervenendo cosı̀ a scrivere il sistema
di equazioni di bilanciamento e mostrando poi che le (8.12) sono soluzioni di
tale sistema. Facendo ricorso alla teoria dei processi di Markov, si mostrerà
infine che tale soluzione corrisponde alla distribuzione di equilibrio della rete di
Gordon-Newell.
In primo luogo consideriamo le funzioni:
n n = 0, 1, . . . , si − 1
ψi (n) = min(n.si ) =
(8.15)
si n = si , si + 1, . . .
e
δ(n) =
0
1
n<0
n = 0, 1, . . .
(8.16)
Si nota che ψi (n) µi rappresenta la frequenze di partenza dalla risorsa i-esima
della rete costituita da si servitori quando in tale risorsa sono presenti n utenti;
ovviamente risulta ψi (0) = 0. Inoltre, la funzione indicatrice δ(n) sarà utile per
considerare transizioni soltanto da stati con numero di utenti non negativi.
Nella situazione di equilibrio statistico denotiamo con q(n1 , n2 , . . . , nR ) la
probabilità che la rete chiusa di Gordon-Newell con R risorse disponibili si trovi nello stato n = (n1 , n2 , . . . , nR ) e denotiamo con γ(n, m) la frequenza di
transizione dallo stato n ad un generico stato m e con γ(m, n) la frequenza
di transizione da un generico stato m allo stato n. Vogliamo determinare le
frequenze di transizione γ(n, m) e γ(m, n) per ogni possibile stato m della rete
per tutti i possibili stati della rete. Per ogni fissato stato n = (n1 , n2 , . . . , nR )
le transizioni di stato possibili sono le seguenti:
• un utente lascia la risorsa i-esima per andare alla risorsa j-esima, aumentando
di un’unità il numero di utenti della risorsa j-esima e diminuendo di un’unità il
numero di utenti della risorsa i-esima
m = (n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR ) −→ n = (n1 , . . . , ni , . . . , nj , . . . , nR )
con frequenza di transizione da m a n:
γ(m, n) = pij ψi (ni + 1) µi δ(nj − 1)
• un utente lascia la risorsa j-esima per andare alla risorsa i-esima, aumentando
di un’unità il numero di utenti della risorsa i-esima e diminuendo di un’unità il
numero di utenti della risorsa j-esima
n = (n1 , . . . , ni , . . . , nj , . . . , nR ) −→ m = (n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR )
con frequenza di transizione da n a m:
γ(n, m) = pji ψj (nj ) µj
A.G. Nobile
172
CAPITOLO 8. RETI DI GORDON-NEWELL
#
γ(n, m) = pji ψj (nj ) µj
(i, j = 1, 2, . . . , R)
n
"!
γ(m, n) = pij ψi (ni + 1) µi δ(nj − 1)
n = (n1 , . . . , ni , . . . , nj , . . . , nR )
#
m
(i, j = 1, 2, . . . , R)"!
m = (n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR )
Figura 8.6: Grafo di transizione per lo stato n = (n1 , n2 , . . . , nR ) della rete
chiusa di Gordon-Newell.
In Figura 8.6 sono visualizzate le frequenze di transizione precedentemente
considerate.
Per ogni stato n della rete assumiamo che valga il principio di bilanciamento:
X
R X
R
pji ψj (nj ) µj
i=1 j=1
=
R X
R
X
q(n1 , n2 , . . . , nR )
pij ψi (ni + 1) µi δ(nj − 1) q(n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR ). (8.17)
i=1 j=1
Nella (8.17) al primo membro è presente il flusso medio con cui il processo esce
dallo stato n = (n1 , n2 , . . . , nR ) mentre al secondo membro è riportato il flusso
medio con cui il processo entra nello stato n. Poiché la matrice di switching P
è stocastica segue che
R
R X
X
i=1 j=1
pji ψj (nj ) µj =
R
X
ψj (nj ) µj
j=1
R
X
i=1
pji =
R
X
ψj (nj ) µj
j=1
e quindi la (8.17) può essere cosı̀ riscritta:
X
R
ψj (nj ) µj
j=1
=
R X
R
X
q(n1 , n2 , . . . , nR )
pij ψi (ni + 1) µi δ(nj − 1) q(n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR ). (8.18)
i=1 j=1
Occorre ora dimostrare che q(n1 , n2 , . . . , nR ) fornita in (8.12) è una soluzione
dell’equazione (8.18). Facendo uso di (8.13) si nota che
q(n1 , . . . , ni + 1, . . . , nj − 1, . . . , nR )
gi (ni + 1) gj (nj − 1)
=
q(n1 , n2 , . . . , nR )
gi (ni )
gj (nj )

µj n j
αi

nj = 1, 2, . . . , sj
 µ (n + 1) α
αi
ψj (nj ) µj
i
i
j
(8.19)
=
=
α µj s j

ψi (ni + 1) µi
αj
 i
nj = sj + 1, sj + 2, . . .
µi si αj
A.G. Nobile
8.3. RETE CHIUSA DI GORDON-NEWELL
173
Dividendo entrambi i membri della (8.18) per q(n1 , n2 , . . . , nR ) e facendo uso di
(8.19), si ottiene:
R
X
ψj (nj ) µj =
R X
R
X
i=1 j=1
j=1
h
pij ψi (ni + 1) µi δ(nj − 1)
αi
ψj (nj ) µj i
,
ψi (ni + 1) µi
αj
ossia
R
X
ψj (nj ) µj =
j=1
R X
R
X
pij αi δ(nj − 1)
i=1 j=1
ψj (nj ) µj
·
αj
(8.20)
Ricordando (8.9) si nota che sussiste la seguente uguaglianza:
R X
R
X
pij αi δ(nj − 1)
i=1 j=1
=
R
X
R
R
X
ψj (nj ) µj X
ψj (nj ) µj
αi pij
δ(nj − 1)
=
αj
αj
i=1
j=1
δ(nj − 1) ψj (nj ) µj
(8.21)
j=1
Facendo uso di (8.21) in (8.20) si ottiene:
R
X
ψj (nj ) µj =
j=1
R
X
δ(nj − 1) ψj (nj ) µj
j=1
che risulta essere un’identità poiché ψj (nj ) = δ(nj − 1) ψj (nj ). Abbiamo cosı̀
dimostrato che q(n1 , n2 , . . . , nR ) fornita in (8.12) è una soluzione dell’equazione
(8.18). Inoltre (8.12) soddisfa la condizione di normalizzazione, ossia
X
q(n1 , n2 , . . . , nR ) =
(n1 ,n2 ,...,nR )∈DR (K)
=
1
CR (K)
X
g(n1 ) g(n2 ) · · · g(nR )
(n1 ,n2 ,...,nR )∈DR (K)
1
CR (K) = 1,
CR (K)
dove l’ultima uguaglianza segue dalla (8.14).
Dalla teoria dei processi di Markov segue che se esiste una soluzione positiva delle equazioni di bilanciamento di un catena di Markov irriducibile e se
tale soluzione soddisfa la condizione di normalizzazione, allora tale soluzione
fornisce la distribuzione di equilibrio del processo. Essendo la catena di Markov
relativa agli stati della rete chiusa di Gordon-Newell irriducibile, abbiamo cosı̀
dimostrato l’unicità della soluzione.
È abbastanza evidente la somiglianza formale delle (8.12) con le corrispondenti espressioni (6.21) viste per le reti aperte di Jackson. In particolare, nell’espressione di q(n1 , n2 , . . . , nR ) è presente ancora il prodotto di R funzioni,
ciascuna dipendente soltanto dal valore ni degli utenti nella i-esima risorsa.
A.G. Nobile
174
CAPITOLO 8. RETI DI GORDON-NEWELL
L’interazione tra le risorse viene riassunta unicamente nella costante di normalizzazione CR (K). Come si evince dalla dimostrazione del teorema di GordonNewell, tale costante non serve a garantire che le equazioni di equilibrio siano
soddisfatte, bensı̀ a fare in modo che la somma di tutte le probabilità sia unitaria.
Riassumendo, sotto le ipotesi del Teorema 8.1, in condizioni di equilibrio
statistico è possibile effettuare lo studio delle reti di code chiuse di GordonNewell secondo una procedura di massima che possiamo riassumere nei seguenti
passi:
(a) determinare le frequenze medie complessive degli arrivi α1 , α2 , . . . , αR alle
R risorse della rete tramite il sistema (8.9);
(b) calcolare le funzioni gi (ni ) (i = 1, 2, . . . , R) per tutte le R risorse della
rete utilizzando la (8.13); in particolare se la risorsa i-esima ha un unico
servitore allora
α n
i
gi (0) = 1,
gi (n) = ̺ni =
(n = 1, 2, . . . , K),
µi
mentre se la risorsa i-esima ha due servitori risulta:
α n
i
(n = 1, 2, . . . , K).
gi (0) = 1,
gi (n) = 2 ̺ni = 2
2 µi
(c) calcolare la costante di normalizzazione CR (K) mediante la (8.14);
(d) calcolare le probabilità di stato in condizioni di equilibrio statistico tramite
la (8.12).
Il Teorema 8.1 si semplifica notevolmente se ogni risorsa della rete chiusa di
Gordon-Newell è dotata di un unico servitore. In questo caso ponendo si = 1
(i = 1, 2, . . . , R) nel Teorema 8.1 si ottiene il seguente risultato.
Teorema 8.2 Nelle ipotesi (1)–(6) precedentemente elencate, in una rete di
Gordon-Newell con R risorse disponibili ognuna con singolo servitore e con K
utenti che circolano nella rete, denotiamo con ̺i = αi /µi (i = 1, 2, . . . , R), dove
α1 , α2 , . . . , αR sono le soluzioni delle equazioni di conservazione dei parametri
di arrivo (8.9). Allora, nella situazione di equilibrio la probabilità che la rete
si trovi nello stato n = (n1 , n2 , . . . , nR ), dove ni denota il numero di utenti
presenti nella i-esima risorsa, è
q(n1 , n2 , . . . , nR ) =
1
̺n1 ̺n2 · · · ̺nRR ,
CR (K) 1 2
dove la costante di normalizzazione è:
X
CR (K) =
n∈DR (K)
A.G. Nobile
̺n1 1 ̺n2 2 · · · ̺nRR .
(8.22)
(8.23)
8.3. RETE CHIUSA DI GORDON-NEWELL
175
Riassumendo, sotto le ipotesi del Teorema 8.2, in condizioni di equilibrio
statistico è possibile effettuare lo studio delle reti di code chiuse di GordonNewell con ogni risorsa dotata di un unico servitore secondo una procedura di
massima che possiamo riassumere nei seguenti passi:
(a) determinare le frequenze medie complessive degli arrivi α1 , α2 , . . . , αR alle
R risorse della rete tramite il sistema (8.9);
(b) calcolare ̺i = αi /µi (i = 1, 2, . . . , R);
(c) calcolare la costante di normalizzazione CR (K) mediante la (8.23);
(d) calcolare le probabilità di stato in condizioni di equilibrio statistico tramite
la (8.22).
Occorre infine ribadire che in una rete chiusa di Gordon-Newell le intensità
di traffico ̺i (i = 1, 2, . . . , R) non sono soggette a nessuna limitazione, cosa che
invece è indispensabile in una rete di Jackson per garantire il raggiungimento
dell’equilibrio statistico.
Esempio 8.1 Consideriamo la rete chiusa schematizzata in Figura 8.7 costituita da tre risorse ognuna con unico servitore. Tale rete è caratterizzata
Risorsa 1
6
µ
Risorsa 2
µ
µ
-
1/2
1/2
?
Risorsa 3
Figura 8.7: Una rete chiusa costituita da tre risorse.
da
- K utenti che circolano nella rete,
- numero di risorse R = 3,
- un singolo servitore per ogni singola risorsa della rete con tempi di servizio
distribuiti esponenzialmente con valore medio 1/µ,
- disciplina di servizio FIFO per ogni risorsa,
A.G. Nobile
176
CAPITOLO 8. RETI DI GORDON-NEWELL
- matrice di switching di cardinalità 3 × 3:
1

1 0
P = 21
3 1
2
3

1/2 1/2
0
0 .
0
0
Il sistema (8.9) è costituito dalle seguenti tre equazioni:
α1 = α2 + α3 ,
α2 =
α1
,
2
α1
,
2
α3 =
la cui soluzione è
b
b
,
α3 = ,
2
2
dove b è un reale positivo arbitrario. Pertanto
α1 = b,
̺1 =
b
α1
= ,
µ
µ
α2 =
̺2 =
α2
b
=
,
µ
2µ
̺3 =
α3
b
=
·
µ
2µ
Poiché nelle tre risorse è presente un solo servitore, possiamo utilizzare il Teorema 8.2. Dalla (8.22) si ha:
b n1 +n2 +n3 1 n2 +n3
1
1
̺n1 1 ̺n2 2 ̺n3 3 =
C3 (K)
C3 (K) µ
2
b K 1 n2 +n3
1
,
=
C3 (K) µ
2
q(n1 , n2 , n3 ) =
dove C3 (K) è la costante di normalizzazione delle probabilità, ossia
C3 (K) =
b K
µ
X 1 n2 +n3
.
2
n∈D3 (K)
Il numero di stati possibili, ossia la cardinalità dell’insieme D3 (K), è
R+K −1
3+K −1
(K + 1) (K + 2)
2+K
=
=
=
·
R−1
3−1
2
2
Supponiamo ora che soltanto tre utenti circolino nella rete, ossia che K = 3. Il
numero di stati è 52 = 10, ossia:
D3 (3) = (0, 0, 3), (0, 1, 2), (0, 2, 1), (0, 3, 0), (1, 0, 2), (1, 1, 1), (1, 2, 0),
(2, 0, 1), (2, 1, 0), (3, 0, 0) .
Essendo
C3 (3) =
A.G. Nobile
i 13 b 3
1 2
1
b 3 h 1 3
4
+1 =
+3
+2
,
µ
2
2
2
4 µ
8.3. RETE CHIUSA DI GORDON-NEWELL
177
si ricava
4 1 n2 +n3
.
13 2
Si nota che tali probabilità non dipendono dalla costante arbitraria b introdotta
nella valutazione delle frequenze complessive di arrivo.
Le probabilità marginali relative alla prima risorsa della rete sono:
q(n1 , n2 , n3 ) =
P (N1 = 0) = q(0, 0, 3) + q(0, 1, 2) + q(0, 2, 1) + q(0, 3, 0) =
P (N1 = 1) = q(1, 0, 2) + q(1, 1, 1) + q(1, 2, 0) =
P (N1 = 2) = q(2, 0, 1) + q(2, 1, 0) =
P (N1 = 3) = q(3, 0, 0) =
2
,
13
3
,
13
4
,
13
4
·
13
Le probabilità marginali relative alla seconda risorsa della rete sono:
P (N2 = 0) = q(0, 0, 3) + q(1, 0, 2) + q(2, 0, 1) + q(3, 0, 0) =
P (N2 = 1) = q(0, 1, 2) + q(1, 1, 1) + q(2, 1, 0) =
P (N2 = 2) = q(0, 2, 1) + q(1, 2, 0) =
P (N2 = 3) = q(0, 3, 0) =
15
,
26
7
,
26
3
,
26
1
·
26
Infine le probabilità marginali relative alla terza risorsa della rete sono:
P (N3 = 0) = q(0, 3, 0) + q(1, 2, 0) + q(2, 1, 0) + q(3, 0, 0) =
P (N3 = 1) = q(0, 2, 1) + q(1, 1, 1) + q(2, 0, 1) =
P (N3 = 2) = q(0, 1, 2) + q(1, 0, 2) =
P (N3 = 3) = q(0, 0, 3) =
15
,
26
7
,
26
3
,
26
1
·
26
I numeri medi di utenti presenti nelle tre risorse della rete di Figura 8.7 sono:
E(N1 ) =
E(N2 ) =
E(N3 ) =
3
X
n=1
3
X
n=1
3
X
n=1
A.G. Nobile
n P (N1 = n) =
23
= 1.7692,
13
n P (N2 = n) =
8
= 0.6154,
13
n P (N3 = n) =
8
= 0.6154.
13
178
CAPITOLO 8. RETI DI GORDON-NEWELL
Si nota che le funzioni di probabilità marginali e i valori medi relativi alla
seconda e terza risorsa della rete coincidono e sono inferiori al numero medio di
utenti presenti nella prima risorsa. Inoltre, sussiste l’ovvia relazione E(N1 ) +
E(N2 ) + E(N3 ) = 3.
♦
L’Esempio 8.1 precedente mostra che il calcolo delle probabilità q(n1 , n2 , . . . , nR )
per una rete chiusa di Gordon-Newell richiede l’individuazione di tutti i possibili
stati appartenenti all’insieme DR (K), la cui cardinalità cresce esponenzialmente
sia con R sia con K.
8.4
Reti cicliche
Consideriamo una rete chiusa di Gordon-Newell con K utenti che circolano nella
rete e R risorse tali che l’output della i-esima risorsa costituisce l’input della
(i + 1)-esima risorsa (i = 1, 2, . . . , R − 1) mentre l’output della risorsa R-esima
fornisce l’input della prima risorsa. Tale rete di code è detta rete ciclica.
Una rete ciclica è caratterizzata da matrice di instradamento P = {pij } di
cardinalità R × R i cui elementi godono della proprietà:
pij =
(
1, j = i + 1; i = 1, 2, . . . , R − 1
1, i = R; j = 1
0, altrimenti
(8.24)
La matrice di instradamento P è quindi la seguente:
1
0
0
.
.
.

P = i
0
.
....
 ..
..

R − 10
R
1
1
2
....
..

2
1
0
..
.
3
0
1
..
.
0
..
.
0
..
0
0
0
0
.
... i + 1
...
0
...
0
..
..
.
.
...
1
..
..
.
.
...
...
0
0
... R

... 0
... 0 

..

.


... 0 

..

.

... 1 
... 0
Le frequenze complessive medie α1 , α2 , . . . , αR di arrivo alle risorse della rete
ciclica possono essere valutate utilizzando (8.9), ossia
α1 = αR
αi = αi−1
(i = 2, 3, . . . , R),
cosı̀ che
α1 = α2 = . . . = αR .
Per una rete ciclica sussistono i Teoremi 8.1 e 8.2 con α1 = α2 = . . . = αR .
A.G. Nobile
8.4. RETI CICLICHE
179
Teorema 8.3 Nelle ipotesi (1)–(6) precedentemente elencate, in una rete ciclica di Gordon-Newell con K utenti che circolano nella rete e con R risorse
disponibili, con si servitori nella i-esima risorsa (i = 1, 2, . . .), si ha:
q(n1 , n2 , . . . , nR ) =
1
g1 (n1 ) g2 (n2 ) · · · gR (nR ),
CR (K)
(8.25)
dove
gi (0) = 1,
gi (n) =

(1/µi )n


 n!
(1/µi )n



si ! sin−si
n = 1, 2, . . . , si
(8.26)
n = si + 1, si + 2, . . . , K
e CR (K) è la costante di normalizzazione, ossia
X
g1 (n1 ) g2 (n2 ) · · · gR (nR ).
CR (K) =
(8.27)
n∈DR (K)
Riassumendo, sotto le ipotesi del Teorema 8.3, in condizioni di equilibrio statistico è possibile effettuare lo studio delle reti di code cicliche di Gordon-Newell
effettuando i seguenti passi:
(a) calcolare le funzioni gi (ni ) (i = 1, 2, . . . , R) per tutte le R risorse della rete
tramite la (8.26);
(b) calcolare la costante di normalizzazione CR (K) utilizzando la (8.27);
(c) calcolare le probabilità di stato in condizioni di equilibrio statistico mediante la (8.25).
Il Teorema 8.3 si semplifica se ogni risorsa della rete ciclica di Gordon-Newell
è dotata di un unico servitore. In questo caso ponendo si = 1 (i = 1, 2, . . . , R)
nel Teorema 8.3 si ottiene il seguente risultato.
Teorema 8.4 Nelle ipotesi (1)–(6) precedentemente elencate, in una rete ciclica di Gordon-Newell con K utenti che circolano nella rete e con R risorse
disponibili ognuna con singolo servitore, si ha:
q(n1 , n2 , . . . , nR ) =
1
1
,
n1 n2
CR (K) µ1 µ2 · · · µnRR
(8.28)
dove CR (K) è la costante di normalizzazione:
CR (K) =
X
µn1
n∈DR (K) 1
1
.
· · · µnRR
µn2 2
(8.29)
Riassumendo, sotto le ipotesi del Teorema 8.4, in condizioni di equilibrio
statistico è possibile effettuare lo studio delle reti di code cicliche di GordonNewell con ogni risorsa dotata di un unico servitore in accordo con i seguenti
passi:
A.G. Nobile
180
CAPITOLO 8. RETI DI GORDON-NEWELL
(a) calcolare la costante di normalizzazione CR (K) tramite la (8.29);
(b) calcolare le probabilità di stato in condizioni di equilibrio statistico tramite
la (8.28).
Esempio 8.2 Consideriamo la rete ciclica illustrata in Figura 8.8 costituita da
due sistemi di servizio collegati in serie con feedback e K utenti che circolano
nella rete.
Feedback
?
Risorsa 1
-
µ
6
Risorsa 2
-
µ
Figura 8.8: Una rete ciclica costituita da due sistemi di servizio collegati in serie
con feedback.
Dal Teorema 8.4 segue che
q(n1 , n2 ) =
1 1 K
1 1 n1 +n2
=
C2 (K) µ
C2 (K) µ
Essendo
C2 (K) =
K K
X
1
n=1
segue immediatamente che
q(n1 , K − n1 ) =
µ
(n1 = 0, 1, . . . , K; n1 +n2 = K).
= (K + 1)
1
K +1
1 K
µ
,
(n1 = 0, 1, . . . , K)
Pertanto il numero medio di utenti presenti in ognuna delle due risorse è K/2.
Infatti, si ha:
E(N1 ) =
K
X
n=1
n
K
K(K + 1)
1 X
K
1
1
=
= ,
n=
K+1
K + 1 n=1
K +1
2
2
E(N2 ) = K − E(N1 ) =
K
·
2
♦
8.5
Probabilità marginali
Per valutare le prestazioni di una rete chiusa di Gordon-Newell occorre calcolare
le probabilità relative alle singole risorse (probabilità marginali) che permettono
di ottenere varie misure prestazionali, quali il numero medio di utenti presenti
A.G. Nobile
8.5. PROBABILITÀ MARGINALI
181
nelle singole risorse della rete, i coefficienti di utilizzazione, i throughput e i
tempi medi di attesa in ogni singola visita di ogni risorsa della rete.
In condizioni di equilibrio nelle reti aperte di Jackson le probabilità di stato
si fattorizzano come il prodotto delle probabilità relative alle singole risorse e
quindi le probabilità marginali e congiunte sono facilmente calcolabili. Invece,
in una rete chiusa di Gordon-Newell viene meno l’indipendenza tra le risorse e
quindi in condizioni di equilibrio il calcolo delle probabilità relative alle singole
risorse diventa più complesso.
Se la risorsa i-esima di una rete chiusa di Gordon-Newell è dotata di un unico
servitore è possibile fornire espressioni generali per le probabilità marginali e per
il numero medio di utenti presenti in tale risorsa. Tali espressioni non richiedono
il calcolo esplicito delle probabilità di stato congiunte dell’intera rete.
8.5.1
Singolo servitore in una risorsa della rete chiusa
Consideriamo una rete chiusa di Gordon-Newell con R risorse e K utenti che
circolano nella rete. In condizioni di equilibrio statistico denotiamo con Ni la
variabile aleatoria che descrive il numero utenti presenti nella i-esima risorsa
(i = 1, 2, . . . , R).
Proposizione 8.1 Si consideri una rete di Gordon-Newell con R risorse e K
utenti che circolano nella rete. Se nella i–esima risorsa è presente un unico
servitore (e uno o più servitori nelle restanti risorse), in condizioni di equilibrio
statistico si ha:
P (Ni ≥ n) = ̺ni
CR (K − n)
CR (K)
(n = 0, 1, . . . , K),
(8.30)
dove si è posto CR (0) = 1 e ̺i = αi /µi per ogni i = 1, 2, . . . , R.
Dimostrazione Se la risorsa i–esima possiede un singolo servitore e le restanti
hanno uno o più servitori, la probabilità P (Ni ≥ n) si può calcolare come somma
di opportune probabilità congiunte (8.12) con gi (ni ) = ̺ni i , ossia:
X
q(n1 , n2 , . . . , nR )
P (Ni ≥ n) =
n∈DR (K)
ni ≥n
=
=
=
1
CR (K)
X
g1 (n1 ) g2 (n2 ) · · · ̺ni i · · · gR (nR )
n∈DR (K)
ni ≥n
1
̺n
CR (K) i
1
̺n
CR (K) i
X
g1 (n1 ) g2 (n2 ) · · · ̺ini −n · · · gR (nR )
n∈DR (K)
ni ≥n
X
n∈DR (K−n)
1
̺n CR (K − n)
=
CR (K) i
A.G. Nobile
g1 (n1 ) g2 (n2 ) · · · ̺ni i · · · gR (nR )
(n = 0, 1, . . . , K),
182
CAPITOLO 8. RETI DI GORDON-NEWELL
che coincide con la (8.30).
La proposizione seguente fornisce le probabilità di stato marginali relative alle
risorse con unico servitore della rete chiusa di Gordon-Newell.
Proposizione 8.2 Si consideri una rete di Gordon-Newell con R risorse e K
utenti che circolano nella rete. Se nella i–esima risorsa è presente un unico
servitore (e uno o più servitori nelle restanti risorse), in condizioni di equilibrio statistico la probabilità qi (n) = P (Ni = n) che nella risorsa i-esima
(i = 1, 2, . . . , R) siano presenti n utenti è:


n CR (K − n) − ̺i CR (K − n − 1)

 ̺i
CR (K)
qi (n) =
1

 ̺K

i
CR (K)
n = 0, 1, . . . , K − 1
(8.31)
n = K,
dove si è posto CR (0) = 1 e ̺i = αi /µi per ogni i = 1, 2, . . . , R.
Dimostrazione Se n = K, dalla (8.30) si ottiene immediatamente la (8.31)
ricordando che P (Ni = K) = P (Ni ≥ K) e che CR (0) = 1. Se invece n =
0, 1, . . . , K − 1 facendo uso di (8.30) si ha:
qi (n) = P (Ni = n) = P (Ni ≥ n) − P (Ni ≥ n + 1)
1
1
=
̺n CR (K − n) −
̺n+1 CR (K − n − 1),
CR (K) i
CR (K) i
da cui segue immediatamente la prima delle (8.31).
La (8.31) è una distribuzione di probabilità; infatti, in virtù della (8.30), si ha:
K
X
n=0
qi (n) =
K
X
P (Ni = n) = 1
(i = 1, 2, . . . , R).
n=0
La (8.31) mostra che la valutazione delle probabilità marginali qi (n) = P (Ni =
n) richiede il calcolo esplicito della costante di normalizzazione CR (K).
Le (8.30) si rivelano utili per determinare il numero medio di utenti presenti
nella i-esima risorsa (i = 1, 2, . . . , R) con singolo servitore di una rete chiusa di
Gordon-Newell.
Proposizione 8.3 Si consideri una rete di Gordon-Newell con R risorse e K
utenti che circolano nella rete. In condizioni di equilibrio statistico il numero
medio di utenti presenti nella i–esima risorsa dotata di un unico servitore è:
K
X
1
E(Ni ) =
̺n CR (K − n).
CR (K) n=1 i
A.G. Nobile
(8.32)
8.6. ALGORITMO DI CONVOLUZIONE PER CR (K)
183
Dimostrazione Osserviamo in primo luogo che Ni è una variabile aleatoria
discreta che assume i valori 0, 1, . . . , K. Per la definizione di valore medio si ha:
E(Ni ) =
K
X
r P (Ni = r) =
r=1
=
K
X
n=1
K
X
P (Ni = r)
r=1
1·
K
X
r=n
P (Ni = r) =
r
X
1
n=1
K
X
P (Ni ≥ n).
(8.33)
n=1
Sostituendo infine (8.30) nell’ultimo termine al lato destro della (8.33), si ottiene
la (8.32).
Si nota nuovamente che la valutazione del numero medio di utenti presenti
nella risorsa i-esima di una rete chiusa di Gordon-Newell con singolo servitore
richiede il calcolo esplicito della costante di normalizzazione CR (K) che deve
essere effettuato con algoritmi computazionalmente efficienti.
8.5.2
Caso generale
Le espressioni delle probabilità marginali qi (n) (n = 0, 1, . . . , K) e del numero
medio di utenti E(Ni ) presenti nella risorsa i-esima (i = 1, 2, . . . , R) di una generale rete chiusa di Gordon-Newell (in cui possono essere presenti più servitori
in ogni risorsa della rete) sono molto più complesse. È richiesta l’individuazione
di tutti i possibili stati della rete in esame, il calcolo della probabilità associata ad ognuno di questi stati e successivamente la derivazione delle probabilità
marginali relative alle singole risorse.
8.6
Algoritmo di convoluzione per CR (K)
Per analizzare una rete di code chiusa è sempre richiesta la valutazione della
costante di normalizzazione CR (K). Dalla (8.14) si nota che CR (K) è la somma
dei prodotti g1 (n1 ) g2 (n2 ) · · · gR (nR ) per tutti gli stati (n1 , n2 , . . . , nR ) caratterizzati dal fatto di avere esattamente K utenti, ossia per tutti gli stati possibili
della rete. Per ognuno dei possibili modi di assegnare K utenti a R risorse abbiamo quindi il prodotto di R termini. Il calcolo di CR (K) per enumerazione
completa degli stati è in generale improponibile in quanto il tempo di calcolo
cresce esponenzialmente sia con N e sia con R.
È possibile comunque calcolare CR (K) in modo più efficiente utilizzando
opportuni algoritmi (Buzen,1973; Harrison, 1985). Nel seguito illustreremo
l’algoritmo di convoluzione.
Sia
Dj (n) = (n1 , n2 , . . . , nj ) : 0 ≤ ni ≤ n, n1 + n2 + . . . + nj = n
e denotiamo con Cj (n) la somma dei prodotti g1 (n1 ) g2 (n2 ) · · · gj (nj ) per tutti
gli stati (n1 , n2 , . . . , nj ) caratterizzati dal fatto di avere esattamente n utenti,
A.G. Nobile
184
CAPITOLO 8. RETI DI GORDON-NEWELL
ossia
Cj (n) =
X
g1 (n1 ) g2 (n2 ) · · · gj (nj ).
(8.34)
n∈Dj (n)
Assumiamo che C0 (0) = 1 e che C0 (n) = 0 per ogni n = 1, 2, . . .. Osserviamo
inoltre che
Cj (0) = 1
(j = 1, 2, . . .)
(8.35)
poiché esiste un unico stato con tutti gli elementi nulli.
Proposizione 8.4 La funzione Cj (n) definita in (8.34) soddisfa la relazione di
ricorrenza:
Cj (n) =
n
X
gj (m) Cj−1 (n − m)
(j = 1, 2, . . . ; n = 0, 1, 2, . . .).
(8.36)
m=0
con le condizioni iniziali C0 (0) = 1, C0 (n) = 0 (n = 1, 2, . . .) e Cj (0) = 1 (j =
1, 2, . . .).
Dimostrazione È possibile esprimere Cj (n) ragionando come segue: se nella
risorsa j-esima sono presenti m utenti, la somma dei prodotti g1 (n1 ) g2 (n2 )
· · · gj (nj ) si ottiene moltiplicando gj (m) per il termine relativo a tutti i possibili
modi di assegnare gli altri n − m utenti alle rimanenti j − 1 risorse, ossia
gj (m) Cj−1 (n − m)
(m = 0, 1, . . . , n)
e successivamente, sommando su tutti i possibili m, si ottengono tutti i termini
relativi ai modi di distribuire n utenti tra le risorse 1, 2, . . . , j. Segue quindi
immediatamente la (8.36).
La (8.36) può essere utilizzata per calcolare il coefficiente di normalizzazione
CR (K) di una qualsiasi rete chiusa di Gordon-Newell. Infatti, ponendo j = R e
n = K in (8.36) si ha:
CR (K) =
K
X
gR (m) CR−1 (K − m).
(8.37)
m=0
La (8.37) fornisce un’espressione che consente il calcolo di CR (K) in O(R K 2 );
infatti, ogni matrice utile per il calcolo di Cj (n) richiede O(R K) valutazioni e
il calcolo di K differenti termini Cj (n) richiede O(K).
Se tutte le risorse della rete chiusa sono dotate di un unico servitore esiste un modo computazionalmente più efficiente per calcolare la costante di
normalizzazione CR (K).
Proposizione 8.5 Sia
Cj (n) =
X
n∈Dj (n)
A.G. Nobile
n
̺n1 1 ̺n2 2 · · · ̺j j
(8.38)
8.6. ALGORITMO DI CONVOLUZIONE PER CR (K)
185
con ̺i = αi /µi . Sussiste la seguente equazione di ricorrenza:
Cj (n) = Cj−1 (n) + ̺j Cj (n − 1)
(j = 1, 2, . . . ; n = 1, 2, . . .).
(8.39)
da risolvere con le condizioni iniziali C0 (0) = 1, C0 (n) = 0 (n = 1, 2, . . .) e
Cj (0) = 1 (j = 1, 2, . . .).
m
Dimostrazione Ponendo gj (m) = ̺m
nella (8.36) si ha:
j = (αj /µj )
Cj (n) =
n
X
̺m
j Cj−1 (n − m)
(j = 1, 2, . . . ; n = 0, 1, 2, . . .).
(8.40)
m=0
Isolando in (8.40) il termine per m = 0 dai restanti termini si ricava:
Cj (n) = Cj−1 (n) + ̺j
n
X
̺m−1
Cj−1 (n − m)
j
m=1
n−1
X
= Cj−1 (n) + ̺j
̺ij Cj−1 (n − 1 − i),
(8.41)
i=0
dove l’ultima identità è stata ottenuta effettuando il cambiamento di variabile
i = m − 1. Osserviamo che dalla (8.40) segue che
Cj (n − 1) =
n−1
X
̺ij Cj−1 (n − 1 − i)
i=0
e quindi la (8.41) si può scrivere nella forma (8.39).
In particolare, ponendo j = R e n = K in (8.39) si ha:
CR (K) = CR−1 (K) + ̺R CR (K − 1).
(8.42)
L’algoritmo di convoluzione per il calcolo di CR (K) per una rete chiusa di
Gordon-Newell con unico servitore in ogni risorsa fa uso della formula iterativa
(8.39) ed utilizza una doppia iterazione sulle risorse e sul numero di utenti
presenti nella rete. La complessità computazionale è O(R K), ossia è dell’ordine
del prodotto del numero di risorse per il numero di utenti. Tale algoritmo,
anche se semplice e computazionalmente efficiente, può alcune volte presentare
problemi di instabilità numerica.
Applichiamo ora l’algoritmo di convoluzione alla rete chiusa di GordonNewell illustrata in Figura 8.7.
Esempio 8.3 Riconsideriamo la rete chiusa di Gordon-Newell discussa nell’Esempio 8.1 e illustrata in Figura 8.7, costituita da tre risorse ognuna con unico
servitore e da tre utenti che circolano nella rete.
Vogliamo ora calcolare C3 (3) utilizzando la formula iterativa (8.39) ed il
numero medio di utenti presenti nelle tre risorse. Nell’Esempio 8.1 abbiamo già
mostrato che
b
b
b
̺2 =
,
̺3 =
,
̺1 = ,
µ
2µ
2µ
A.G. Nobile
186
CAPITOLO 8. RETI DI GORDON-NEWELL
Risorsa 1
6
µ
Risorsa 2
µ
µ
-
1/2
1/2
?
Risorsa 3
Figura 8.9: Una rete chiusa costituita da tre risorse.
dove b è una costante positiva arbitraria. Applicando l’algoritmo di convoluzione
si ha:
C1 (0) = 1
C1 (1) = C0 (1) + ̺1 C1 (0) = 0 + ̺1 1 = ̺1
C1 (2) = C0 (2) + ̺1 C1 (1) = ̺21
C1 (3) = C0 (3) + ̺1 C1 (2) = ̺31
C2 (0) = 1
C2 (1) = C1 (1) + ̺2 C2 (0) = ̺1 + ̺2
C2 (2) = C1 (2) + ̺2 C2 (1) = ̺21 + ̺2 (̺1 + ̺2 )
C2 (3) = C1 (3) + ̺2 C2 (2) = ̺31 + ̺2 [̺21 + ̺2 (̺1 + ̺2 )]
C3 (0) = 1
C3 (1) = C2 (1) + ̺3 C3 (0) = ̺1 + ̺2 + ̺3
C3 (2) = C2 (2) + ̺3 C3 (1) = ̺21 + ̺2 (̺1 + ̺2 ) + ̺3 (̺1 + ̺2 + ̺3 )
C3 (3) = C2 (3) + ̺3 C3 (2) = ̺31 + ̺2 [̺21 + ̺2 (̺1 + ̺2 )]
+̺3 [̺21 + ̺2 (̺1 + ̺2 ) + ̺3 (̺1 + ̺2 + ̺3 )]
ossia risulta:
C1 (0) = 1,
C2 (0) = 1,
C3 (0) = 1,
A.G. Nobile
b
,
µ
3 b
C2 (1) =
,
2 µ
b
C3 (1) = 2 ,
µ
C1 (1) =
C1 (2) =
b 2
,
µ
7 b 2
,
C2 (2) =
4 µ
11 b 2
,
C3 (2) =
4 µ
C1 (3) =
b 3
µ
15 b 3
8 µ
13 b 3
C3 (3) =
.
4 µ
C2 (3) =
8.7. PRESTAZIONI: SINGOLO SERVITORE
187
Dalla (8.32) si possono quindi ricavare i numeri medi di utenti presenti nelle
singole risorse della rete:
E(N1 ) =
E(N2 ) =
E(N2 ) =
3
X
1
23
̺1 C3 (2) + ̺21 C3 (1) + ̺31 C3 (0)
=
̺n1 C3 (3 − n) =
C3 (3) n=1
C3 (3)
13
3
X
1
8
̺2 C3 (2) + ̺22 C3 (1) + ̺32 C3 (0)
=
̺n2 C3 (3 − n) =
C3 (3) n=1
C3 (3)
13
3
X
8
̺3 C3 (2) + ̺23 C3 (1) + ̺33 C3 (0)
1
=
·
̺n3 C3 (3 − n) =
C3 (3) n=1
C3 (3)
13
A differenza di quanto visto nell’Esempio 8.1 l’utilizzazione dell’algoritmo di
convoluzione consente di valutare direttamente il numero medio di utenti presenti nelle tre risorse senza dover prima individuare tutti i possibili stati della
rete, calcolare le probabilità congiunte associate a tali stati e le probabilità
marginali relative alle singole risorse della rete.
♦
Nelle reti chiuse di Gordon-Newell il numero medio di utenti che circolano nella
rete è fissato e finito e non deve essere calcolato come avveniva nelle reti aperte
di Jackson. Inoltre per le reti chiuse di Gordon-Newell non è utile calcolare
il tempo medio di attesa di un utente nella rete poiché gli utenti circolano
indefinitamente nella rete e quindi non è più valida la legge di Little globale.
Una grandezza di estremo interesse in una rete chiusa di Gordon-Newell è il
throughput (la capacità di trasporto o la capacità produttiva) delle singole risorse
della rete. Tale grandezza permetterà di calcolare il tempo medio di attesa in
ogni singola visita di un utente in ogni risorsa della rete.
Nel Paragrafo 8.7 valuteremo gli indici di prestazione della i-esima risorsa
con unico servitore di una rete chiusa di Gordon-Newell confrontando i risultati
con quelli ottenuti per le reti di Jackson. Infine, nel Paragrafo 8.8 valuteremo
gli indici di prestazione della i-esima risorsa con più servitori di una rete chiusa
di Gordon-Newell confrontando nuovamente i risultati con quelli ottenuti per le
reti di Jackson.
8.7
Prestazioni: singolo servitore
Denotiamo con fi il coefficiente di utilizzazione della i-esima risorsa con unico
servitore di una rete chiusa di Gordon-Newell con R risorse e K utenti che
circolano nella rete. Il coefficiente di utilizzazione della risorsa i-esima con
unico servitore fornisce la probabilità che in tale risorsa sia presente almeno un
utente, ossia con la probabilità che il centro di servizio di tale risorsa, costituito
da un unico servitore, sia occupato e coincide con il numero medio di servitori
occupati (attivi). Facendo uso di (8.30) si ha
fi = P (Ni ≥ 1) = ̺i
A.G. Nobile
CR (K − 1)
CR (K)
(8.43)
188
CAPITOLO 8. RETI DI GORDON-NEWELL
dove ̺i = αi /µi .
Il throughput della risorsa i-esima con unico servitore di una rete chiusa di
Gordon-Newell fornisce la frequenza con cui gli utenti (job, task) lasciano con
successo tale risorsa e si ottiene moltiplicando la frequenza media di servizio
per il numero medio di servitori occupati, ossia:
τi = µi fi = µi P (Ni ≥ 1) = αi
CR (K − 1)
·
CR (K)
(8.44)
Nella situazione di equilibrio statistico, denotiamo con E(Wi ) il tempo medio
di attesa in ogni singola visita di un utente nella risorsa i-esima con singolo
servitore di una rete chiusa di Gordon-Newell. In tal caso si ha:
E(Ni ) = τi E(Wi ) = fi µi E(Wi ).
(8.45)
e quindi il tempo medio di attesa in ogni singola visita di un utente nella risorsa
i-esima con singolo servitore di una rete chiusa di Gordon-Newell è:
E(Wi ) =
E(Ni )
E(Ni )
=
.
τi
f i µi
(8.46)
Singoli servitori in ogni risorsa della rete chiusa di Gordon Newell
Per una rete chiusa Gordon-Newell con singoli servitori in ognuna delle R risorse
sussistono le seguenti identità:
̺i
fi
=
(i, j = 1, 2, . . . , R),
fj
̺j
τi
f i µi
f i µi
̺ i µi
αi
=
=
=
=
τj
f j µj
f j µj
̺ j µj
αj
(i, j = 1, 2, . . . , R).
L’algoritmo per l’analisi di una rete chiusa di Gordon-Newell con singolo
servitore in ogni risorsa può allora essere cosı̀ schematizzato:
⋄ Algoritmo
• Step 1: determinare la soluzione del sistema di equazioni (8.9) per calcolare
α1 , α2 , . . . , αR , dove αi è la frequenza complessiva degli arrivi alla i-esima
risorsa della rete;
• Step 2: calcolare la costante di normalizzazione CR (K) tramite la procedura iterativa:
Cj (n) = Cj−1 (n) + ̺j Cj (n − 1)
(j = 1, 2, . . . , R; n = 1, 2, . . . , K).
da risolvere con le condizioni iniziali C0 (0) = 1, C0 (n) = 0 (n = 1, 2, . . . , K)
e Cj (0) = 1 (j = 1, 2, . . . , R).
• Step 3: calcolare le probabilità di stato in condizioni di equilibrio statistico
q(n1 , n2 , . . . , nR ) =
1
̺n1 ̺n2 · · · ̺nRR
CR (K) 1 2
dove ̺i = αi /µi per ogni i = 1, 2, . . . , R.
A.G. Nobile
8.7. PRESTAZIONI: SINGOLO SERVITORE
189
• Step 4: calcolare le probabilità marginali relative alle singole risorse della
rete:

C (K − n) − ̺i CR (K − n − 1)

 ̺ni R
n = 0, 1, . . . , K − 1

CR (K)
qi (n) =
1


 ̺K
n = K.
i
CR (K)
e calcolare le probabilità:
P (Ni ≥ n) = ̺ni
CR (K − n)
CR (K)
(n = 0, 1, . . . , K).
• Step 5: calcolare gli indici di prestazione della rete chiusa:
(a) il numero medio E(Ni ) di utenti presenti nelle singole risorse:
E(Ni ) =
K
X
1
̺n CR (K − n)
CR (K) n=1 i
(i = 1, 2, . . . , R).
(b) il coefficiente di utilizzazione fi di ogni singola risorsa:
CR (K − 1)
(i = 1, 2, . . . , R)
fi = P (Ni ≥ 1) = ̺i
CR (K)
(c) il throughput τi di ogni singola risorsa:
CR (K − 1)
τi = µi P (Ni ≥ 1) = αi
CR (K)
(i = 1, 2, . . . , R).
(d) il tempo medio di attesa E(Wi ) di un utente in ogni singola visita
della i-esima risorsa della rete:
E(Ni )
E(Wi ) =
(i = 1, 2, . . . , R).
τi
Occorre sottolineare che il passo 3 dell’algoritmo richiede l’individuazione di
tutti i possibili stati della rete, mentre i passi 1, 2, 4, 5 non richiedono tale
enumerazione.
Confronti tra le reti di Gordon Newell e le reti di Jackson
Vediamo ora cosa diventa il coefficiente di utilizzazione (8.43), il throughput
(8.44) e la relazione (8.45) per la risorsa i-esima con singolo servitore di una
rete aperta di Jackson.
Il coefficiente di utilizzazione della i-esima risorsa con singolo servitore di
una rete aperta di Jackson con R risorse è
αi
fi = P (Ni ≥ 1) = 1 − P (Ni = 0) = ̺i = ,
µi
poiché nella situazione di equilibrio statistico la risorsa i-esima può essere descritta con un sistema M/M/1. Inoltre, si nota che il throughput della risorsa
i-esima con unico servitore di una rete aperta di Jackson è
αi
τi = µi P (Ni ≥ 1) = µi
= αi ,
µi
A.G. Nobile
190
CAPITOLO 8. RETI DI GORDON-NEWELL
Rete di Gordon-Newell
Rete di Jackson
Probabilità marginali della risorsa i-esima


n CR (K − n) − ̺i CR (K − n − 1)

 ̺i
CR (K)
qi (n) =
1
 K

 ̺i
CR (K)
n≤K−1
qi (n) = ̺i (1 − ̺i )
n = K,
Numero medio di utenti nella risorsa i-esima
E(Ni ) =
K
X
1
̺n CR (K − n)
CR (K) n=1 i
E(Ni ) =
̺i
αi
=
1 − ̺i
µi − αi
Coefficiente di utilizzazione della risorsa i-esima
fi = P (Ni ≥ 1) = ̺i
CR (K − 1)
CR (K)
fi = P (Ni ≥ 1) =
αi
µi
Throughput della risorsa i-esima
τi = µi P (Ni ≥ 1) = αi
CR (K − 1)
CR (K)
τi = αi
Tempo medio di attesa in ogni singola visita della risorsa i-esima
E(Wi ) =
E(Ni )
τi
E(Wi ) =
E(Ni )
αi
Tabella 8.1: Confronto tra alcuni parametri prestazionali della risorsa i-esima con
singolo servitore di una rete chiusa di Gordon-Newell e di una rete aperta di Jackson
con R risorse.
che coincide con la frequenza complessiva degli arrivi alla i-esima risorsa della
rete aperta. Infine, la relazione (8.45) si identifica con la legge di Little relativa
alla i-esima risorsa con singolo servitore di una rete aperta di Jackson:
E(Ni ) = τi E(Wi ) = αi E(Wi ).
La Tabella 8.1 illustra le differenze tra alcuni parametri prestazionali relativi
alla risorsa i-esima di una rete chiusa di Gordon-Newell con K utenti e di una
rete aperta di Jackson con R risorse ognuna con unico servitore.
Esempio 8.4 Riconsideriamo la rete di code chiusa descritta in Figura 8.1
costituita da due sistemi di servizio collegati in serie con feedback e in cui K
utenti circolano nella rete.
Tale rete è caratterizzata da
- K utenti che circolano nella rete,
- numero di risorse R = 2,
A.G. Nobile
8.7. PRESTAZIONI: SINGOLO SERVITORE
191
?
Risorsa 1
6
?
1−p
µ1
Risorsa 2
p
6
-
µ2
Figura 8.10: Una rete chiusa costituita da due sistemi di servizio, ognuno con
unico servitore, collegati in serie con feedback.
- singolo servitore per ogni risorsa della rete con tempi di servizio distribuiti
esponenzialmente con valore medio 1/µi per la i-esima risorsa (i = 1, 2),
- disciplina di servizio FIFO per ogni risorsa,
- matrice di switching di cardinalità 2 × 2:
P =
1
2
1
2
1−p p
1
0
(0 < p ≤ 1)
Richiamiamo prima i risultati ottenuti nel Paragrafo 8.2 relativi alla funzione di probabilità congiunta della rete e ricaviamo poi i principali parametri
prestazionali della rete.
Step 1: Il sistema (8.9) è costituito dalle seguenti due equazioni:
α1 = α1 (1 − p) + α2
α2 = α1 p,
la cui soluzione è α2 = α1 p, ossia:
α1 = b,
α2 = b p
dove b è un reale positivo arbitrario. Pertanto, ponendo b = 1 risulta
̺1 =
1
α1
=
,
µ1
µ1
̺2 =
α2
p
=
·
µ2
µ2
Step 2-3-4: Nel Paragrafo 8.2 abbiamo già calcolato la probabilità di avere n1
utenti nella prima risorsa e n2 = K −n1 utenti nella seconda risorsa in condizioni
di equilibrio statistico Infatti, ponendo r = µ2 /(µ1 p) si ha

1−r


rn1 , r 6= 1

1 − rK+1
q(n1 , K − n1 ) =
(n1 = 0, 1, . . .).

1


,
r=1
K+1
A.G. Nobile
192
CAPITOLO 8. RETI DI GORDON-NEWELL
che coincide con la (8.8). Ricordiamo che tale probabilità ha la stessa forma
funzionale delle probabilità di avere n1 utenti presenti nel sistema M/M/1/K
con intensità di traffico ̺ = r.
Step 5: Vogliamo ora determinare gli indici di prestazione della rete di code
chiusa descritta in Figura 8.1, ossia il numero medio di utenti presenti nelle due
risorse, i coefficienti di utilizzazione delle due risorse, i throughput delle due
risorse e i tempi medi di attesa in ogni risorsa per ogni visita.
Ricordando la Tabella 3.2 del sistema M/M/1/K, nella situazione di equilibrio statistico il numero medio E(N1 ) e E(N2 ) di utenti presenti nella prima e
seconda risorsa della rete di Figura 8.1 sono rispettivamente:

r
(K + 1) rK+1


K
, r 6= 1
−

X
1 − rK+1
E(N1 ) =
n q(n, K − n) = 1 − r


n=0
K ,
r = 1.
2

r
(K + 1) rK+1


, r 6= 1
+
K −
1−r
1 − rK+1
E(N2 ) = K − E(N1 ) =


K,
r=1
2
con r = µ2 /(µ1 p). Denotiamo con f1 e f2 rispettivamente i coefficienti di utilizzazione della prima e della seconda risorsa della rete in Figura 8.1, interpretabili
rispettivamente come la CPU e l’unità di I/O. Facendo uso di (8.43) e ricordando che r = µ2 /(µ1 p), il coefficiente di utilizzazione della prima risorsa, che
corrisponde alla probabilità che la CPU sia occupata, è:

r (1 − rK )


r 6= 1

C2 (K − 1)
1 − rK+1
f1 = P (N1 ≥ 1) = ̺1
=

C2 (K)

 K
r = 1,
K +1
mentre il coefficiente di utilizzazione della seconda risorsa, che corrisponde alla
probabilità che la risorsa di I/O sia occupata è:

1 − rK


, r 6= 1

C2 (K − 1)
1 − rK+1
=
f2 = P (N2 ≥ 1) = ̺2

C2 (K)

 K ,
r = 1.
K +1
Si nota che sussiste la relazione:
r=
̺1
µ2
f1
= ·
=
µ1 p
f2
̺2
I throughput delle due risorse della rete sono:
τ1 = f1 µ1 ,
A.G. Nobile
τ2 = f2 µ2
(8.47)
8.7. PRESTAZIONI: SINGOLO SERVITORE
193
e i tempi medi E(W1 ) e E(W2 ) che un utente spende nella prima e seconda
risorsa della rete in ogni visita, possono essere quindi calcolati utilizzando le
seguenti identità:
E(W1 ) =
E(N1 )
,
τ1
E(W2 ) =
E(N2 )
·
τ2
♦
Esempio 8.5 Riconsideriamo la rete di code chiusa descritta in Figura 8.7
costituita da tre risorse ognuna con unico servitore discussa negli Esempi 8.1 e
8.3.
Risorsa 1
6
µ
Risorsa 2
µ
µ
-
1/2
1/2
?
Risorsa 3
Figura 8.11: Una rete chiusa costituita da tre risorse.
Supponiamo che K = 3 utenti circolano nella rete. Richiamiamo prima i
risultati ottenuti negli Esempi 8.1 e 8.3 e ricaviamo poi i principali parametri
prestazionali della rete.
Step 1: Nell’Esempio 8.1 abbiamo mostrato che le frequenze complessive di
arrivo sono:
b
b
α3 = ,
α1 = b,
α2 = ,
2
2
dove b è un reale positivo arbitrario. Pertanto, ponendo b = 1 risulta
̺1 =
1
α1
= ,
µ
µ
̺2 =
α2
1
=
,
µ
2µ
̺3 =
α3
1
=
·
µ
2µ
Step 2: Nell’Esempio 8.3 l’algoritmo di convoluzione ha prodotto i seguenti
risultati:
1 3
1 2
1
,
C1 (3) =
C1 (0) = 1,
C1 (1) = ,
C1 (2) =
µ
µ
µ
2
3 1
15 1 3
7 1
C2 (0) = 1,
C2 (1) =
,
C2 (3) =
,
C2 (2) =
2 µ
4 µ
8 µ
13 1 3
11 1 2
1
,
C3 (3) =
.
C3 (2) =
C3 (0) = 1,
C3 (1) = 2 ,
µ
4 µ
4 µ
A.G. Nobile
194
CAPITOLO 8. RETI DI GORDON-NEWELL
Step 3: Le probabilità di stato in condizioni di equilibrio statistico sono:
1
4 1 n2 +n3
q(n1 , n2 , n3 ) =
.
̺n1 1 ̺n2 2 ̺n3 3 =
C3 (3)
13 2
con n1 + n2 + n3 = 3.
Step 4: Le probabilità marginali relative alle tre risorse della rete sono:
2
,
13
15
P (N2 = 0) =
,
26
15
P (N3 = 0) =
,
26
P (N1 = 0) =
3
,
13
7
P (N2 = 1) =
,
26
7
P (N3 = 1) =
,
26
P (N1 = 1) =
4
,
13
3
P (N2 = 2) =
,
26
3
P (N3 = 2) =
,
26
P (N1 = 2) =
4
;
13
1
P (N2 = 3) =
;
26
1
P (N3 = 3) =
·
26
P (N1 = 3) =
Step 5: Vogliamo ora determinare gli indici di prestazione della rete di code
chiusa descritta in Figura 8.7, ossia i fattori di utilizzazione delle tre risorse,
i throughput delle tre risorse e i tempi medi di attesa in ogni risorsa per ogni
visita. Ricordiamo che nella situazione di equilibrio statistico i numeri medi di
utenti presenti nelle tre risorse della rete di Figura 8.7 sono rispettivamente:
E(N1 ) =
23
,
13
E(N2 ) =
8
,
13
E(N3 ) =
8
·
13
Facendo uso di (8.43) è possibile ottenere i fattori di utilizzazione delle tre
risorse della rete in Figura 8.7, ossia le probabilità che i centri di servizio di tali
risorse siano occupati:
C3 (2)
11
=
,
C3 (3)
13
C3 (2)
11
f2 = P (N2 ≥ 1) = ̺2
=
,
C3 (3)
26
11
C3 (2)
=
,·
f3 = P (N3 ≥ 1) = ̺3
C3 (3)
26
f1 = P (N1 ≥ 1) = ̺1
Sussiste la relazione fi /fj = ̺i /̺j . I throughput delle tre risorse della rete sono:
τ1 = f1 µ =
11
µ,
13
τ2 = f2 µ =
11
µ,
26
τ3 = f3 µ =
11
µ
26
Sussiste la relazione τi /τj = αi /αj . I tempi medi che un utente spende nelle tre
risorse della rete in ogni singola visita sono:
E(W1 ) =
E(N1 )
23
=
,
τ1
11 µ
E(W2 ) =
16
E(N2 )
=
,
τ2
11 µ
E(W3 ) =
16
E(N3 )
=
·
τ3
11 µ
Si nota che il numero medio di utenti presenti nella prima risorsa è maggiore del
numero medio di utenti presenti nelle altre due risorse. Inoltre anche il tempo
medio di attesa di un utente in ogni visita nella prima risorsa è maggiore dei
rispettivi tempi medi nelle altre due risorse.
♦
A.G. Nobile
8.8. PRESTAZIONI: CASO GENERALE
8.8
195
Prestazioni: caso generale
Consideriamo una rete generale chiusa di Gordon-Newell con R risorse e K
utenti che circolano nella rete. In condizioni di equilibrio denotiamo con fi
il coefficiente di utilizzazione della i-esima risorsa dotata di si servitori che
lavorano in parallelo e in cui la politica di servizio non privilegia nessuno di tali
servitori. Il coefficiente di utilizzazione fornisce la frazione media di servitori
attivi (occupati) nella risorsa, definito come:
fi =
E[Ns (i)]
,
si
(8.48)
dove il numero medio di servitori occupati si calcola nel seguente modo:
E[Ns (i)] =
sX
i −1
n qi (n) + si
K
X
qi (n) =
n=si
n=1
sX
i −1
n qi (n) + si P (Ni ≥ si )
(8.49)
n=1
dove qi (n) = P (Ni = n). Infatti, se nella i-esima risorsa con si servitori sono
presenti n utenti, con n = 1, 2, . . . , si − 1, soltanto n servitori sono occupati,
mentre se nella risorsa sono presenti un numero maggiore o uguale a si di utenti
tutti gli si servitori sono occupati. In particolare, se si = 2 dalle (8.48) e (8.49)
si ha
1
E[Ns (i)]
= qi (1) + P (Ni ≥ 2).
fi =
si
2
In condizioni di equilibrio statistico, il throughput della risorsa i-esima di
una rete chiusa di Gordon-Newell con si servitori si ottiene moltiplicando la
frequenza media di servizio per il numero medio di servitori occupati, ossia
τi = µi si fi .
(8.50)
Il tempo medio di attesa in ogni singola visita di un utente nella risorsa i-esima
della rete di Gordon-Newell è:
E(Wi ) =
E(Ni )
τi
(i = 1, 2, . . . , K).
(8.51)
L’algoritmo per l’analisi di una generale rete chiusa di Gordon-Newell può
allora essere cosı̀ schematizzato:
⋄ Algoritmo
• Step 1: determinare la soluzione del sistema di equazioni (8.9) per calcolare
α1 , α2 , . . . , αR , dove αi è la frequenza complessiva degli arrivi alla i-esima
risorsa della rete;
• Step 2: calcolare la costante di normalizzazione CR (K) tramite la procedura iterativa:
Cj (n) =
n
X
m=0
A.G. Nobile
gj (m) Cj−1 (n − m)
(j = 1, 2, . . . , R; n = 1, 2, . . . , K).
196
CAPITOLO 8. RETI DI GORDON-NEWELL
da risolvere con le condizioni iniziali C0 (0) = 1, C0 (n) = 0 (n = 1, 2, . . . , K)
e Cj (0) = 1 (j = 1, 2, . . . , R).
• Step 3: calcolare le probabilità di stato in condizioni di equilibrio statistico
q(n1 , n2 , . . . , nR ) =
1
g1 (n1 ) g2 (n2 ) · · · gR (nR ),
CR (K)
con
gi (0) = 1,

(αi /µi )n



n!
gi (n) =
 (αi /µi )n


si ! sin−si
n = 1, 2, . . . , si
n = si + 1, si + 2, . . . , K,
• Step 4: calcolare le probabilità marginali qi (n) = P (Ni = n) relative alle
singole risorse della rete.
• Step 5: calcolare gli indici di prestazione della rete chiusa:
(a) il numero medio E(Ni ) di utenti presenti nelle singole risorse:
(b) il coefficiente di utilizzazione fi di ogni singola risorsa:
fi = P (Ni ≥ si ) +
sX
i −1
n=1
n
qi (n)
si
(i = 1, 2, . . . , R).
(c) il throughput τi di ogni singola risorsa:
τi = µi si fi
(i = 1, 2, . . . , R).
(d) il tempo medio di attesa E(Wi ) di un utente in ogni singola visita
della i-esima risorsa della rete:
E(Ni )
E(Wi ) =
(i = 1, 2, . . . , R).
τi
Occorre sottolineare che i passi 3,4,5 dell’algoritmo richiedono l’individuazione
di tutti i possibili stati della rete.
Confronti tra le reti di Gordon Newell e le reti di Jackson
Vediamo ora cosa diventano il coefficiente di utilizzazione (8.48), il throughput
(8.50) e la relazione (8.51) per la i-esima risorsa, caratterizzata da si servitori,
per una rete aperta di Jackson.
Ricordando i risultati ottenuti per il sistema M/M/s, in una rete di Jackson
il coefficiente di utilizzazione della i-esima risorsa è:
fi =
αi
·
s i µi
Il throughput della i-esima risorsa di una rete di Jackson è quindi
τi = µi si fi = αi .
A.G. Nobile
8.8. PRESTAZIONI: CASO GENERALE
197
La relazione (8.51) corrisponde quindi alla legge di Little locale per una rete
aperta di Jackson.
La Tabella 8.2 illustra le differenze tra alcuni parametri prestazionali relativi
alla risorsa i-esima con si servitori di una rete chiusa di Gordon-Newell e di una
rete aperta di Jackson con R risorse.
Rete di Gordon-Newell
Rete di Jackson
Coefficiente di utilizzazione della risorsa i-esima
fi = P (Ni ≥ si ) +
sX
i −1
n=1
n
qi (n)
si
fi =
αi
si µi
Throughput della risorsa i-esima
τi = fi si µi
τi = αi
Tempo medio di attesa in ogni singola visita della risorsa i-esima
E(Wi ) =
E(Ni )
τi
E(Wi ) =
E(Ni )
αi
Tabella 8.2: Confronto tra alcuni parametri prestazionali relativi alla risorsa i-esima
con si servitori di una rete chiusa di Gordon-Newell e di una rete aperta di Jackson
con R risorse.
Esempio 8.6 Consideriamo la rete chiusa schematizzata in Figura 8.12 in cui
la prima risorsa ha un unico servitore mentre la seconda risorsa ha due servitori
che lavorano in parallelo. Tale rete è caratterizzata da
Risorsa 2
Risorsa 1
?
-
µ1
-
-
A
A
6
A
A
µ2
µ2
6p
?1 − p
Figura 8.12: Una rete chiusa costituita da due risorse, la prima con unico
servitore e la seconda con due servitori.
- K utenti che circolano nella rete,
A.G. Nobile
198
CAPITOLO 8. RETI DI GORDON-NEWELL
- numero di risorse R = 2,
- un singolo servitore per la prima risorsa della rete con tempi di servizio
distribuiti esponenzialmente con valore medio 1/µ1 e due servitori che
lavorano in parallelo con tempi di servizio distribuiti esponenzialmente
con valore medio 1/µ2 per ognuno dei due servitori,
- disciplina di servizio FIFO per ogni risorsa,
- matrice di switching di cardinalità 2 × 2:
P =
1
2
1
2
0
1
p 1−p
(0 < p ≤ 1).
Si nota che la rete chiusa in Figura 8.12 diventa ciclica se p = 1.
Step 1: Il sistema (8.9) è costituito dalle seguenti due equazioni:
α1 = α2 p
α2 = α1 + α2 (1 − p),
la cui soluzione è α1 = α2 p, ossia:
α1 = b p,
α2 = b,
dove b è un reale positivo arbitrario. Pertanto, ponendo b = 1 si ha:
̺1 =
α1
p
=
,
µ1
µ1
̺2 =
α2
1
=
·
2 µ2
2 µ2
Step 2: Nella situazione di equilibrio statistico, dal Teorema 8.1 segue che
q(n1 , n2 ) =
1
g1 (n1 ) g2 (n2 ),
C2 (K)
dove C2 (K) è la costante di normalizzazione e dove
α n
1
g1 (0) = 1,
g1 (n) =
= ̺n1 ,
µ1
α n
2
g2 (0) = 1,
g2 (n) = 2
= 2 ̺n2 .
2 µ2
Supponiamo ora che K = 2, ossia che soltanto due utenti circolino nella rete.
In tal caso si ha:
Utilizziamo l’algoritmo di convoluzione per determinare il coefficiente di
normalizzazione C2 (2) utilizzando la relazione (8.36):
C1 (0) = 1,
C1 (1) = g1 (0) C0 (1) + g1 (1) C0 (0) = ̺1 ,
C1 (2) = g1 (0) C0 (2) + g1 (1) C0 (1) + g1 (2) C0 (0) = ̺21 ,
C2 (0) = 1,
C2 (1) = g2 (0) C1 (1) + g2 (1) C1 (0) = ̺1 + 2 ̺2 ,
C2 (2) = g2 (0) C1 (2) + g2 (1) C1 (1) + g2 (2) C1 (0) = ̺21 + 2̺2 ̺1 + 2 ̺22 ,
A.G. Nobile
8.8. PRESTAZIONI: CASO GENERALE
g1 (0) = 1
g2 (0) = 1
g1 (1) = ̺1
g2 (1) = 2 ̺2
g1 (2) = ̺21
g2 (2) = 2 ̺22
199
Il numero di stati possibili è:
R+K −1
3
=
= 3,
R−1
1
ossia D2 (2) = {(0, 2), (1, 1), (2, 0)} e quindi:
q(0, 2) =
1
2 ̺22 ,
C2 (2)
q(1, 1) =
1
̺1 2 ̺2 ,
C2 (2)
q(2, 0) =
1
̺2
C2 (2) 1
dove
C2 (2) = ̺21 + 2 ̺1 ̺2 + 2 ̺22 .
In questo esempio, essendo K = 2, la costante di normalizzazione poteva anche
essere determinata più semplicemente imponendo che q(0, 2) + q(1, 1) + q(2, 0) =
1. Quindi, in condizioni di equilibrio statistico le probabilità di stato sono:
2 ̺22
,
̺21 + 2 ̺1 ̺2 + 2 ̺22
2 ̺1 ̺2
,
q(1, 1) = 2
̺1 + 2 ̺1 ̺2 + 2 ̺22
̺21
q(2, 0) = 2
̺1 + 2 ̺1 ̺2 + 2 ̺22
q(0, 2) =
e le probabilità marginali relative alle due risorse della rete sono:
P (N1 = 0) = q(0, 2),
P (N1 = 1) = q(1, 1),
P (N1 = 2) = q(2, 0)
P (N2 = 0) = q(2, 0),
P (N2 = 1) = q(1, 1),
P (N2 = 2) = q(0, 2).
Step 3: Se K = 2 i numeri medi di utenti presenti rispettivamente nella prima
e nella seconda risorsa sono:
E(N1 ) =
E(N2 ) =
2
X
n=1
2
X
n P (N1 = n) = q(1, 1) + 2 q(2, 0),
n P (N2 = n) = q(1, 1) + 2 q(0, 2),
n=1
da cui segue l’ovvia relazione E(N1 ) + E(N2 ) = 2 [q(1, 1) + q(0, 2) + q(2, 0)] = 2.
A.G. Nobile
200
CAPITOLO 8. RETI DI GORDON-NEWELL
I coefficienti di utilizzazione delle due risorse, ossia le probabilità che i centri
di servizio delle risorse della rete siano occupati, sono:
f1 = P (N1 ≥ 1) = q(1, 1) + q(2, 0),
1
2 q(0, 2) + q(1, 1)
f2 = P (N2 = 2) + P (N2 = 1) =
·
2
2
I throughput delle due risorse della rete sono:
τ1 = µ1 f1 = µ1 [q(1, 1) + q(2, 0)]
2 q(0, 2) + q(1, 1)
.
τ2 = 2 µ2 f2 = 2 µ2
2
I tempi medi di attesa di un utente nelle prima e nella seconda risorsa della rete
in una singola visita sono:
q(1, 1) + 2 q(2, 0)
q(2, 0)
E(N1 )
1
=
+
=
τ1
µ1 [q(1, 1) + q(2, 0)]
µ1
µ1 [q(1, 1) + q(2, 0)]
E(N2 )
1
E(W2 ) =
=
·
τ2
µ2
E(W1 ) =
Poiché nella rete sono presenti due utenti, un utente che accede alla seconda
risorsa riceve immediatamente servizio da uno dei due servitori e quindi il suo
tempo medio di attesa in ogni singola visita coincide con il tempo medio di
servizio 1/µ2 di ognuno dei due servitori. Invece il tempo medio di attesa in
ogni singola visita nella prima risorsa della rete è pari alla somma del tempo
medio di servizio 1/µ1 e del tempo medio di permanenza in fila di attesa.
♦
Esempio 8.7 Consideriamo la rete chiusa schematizzata in Figura 8.13 in cui
nella prima risorsa sono presenti due servitori che lavorano in parallelo mentre
nelle altre tre risorse esiste un unico servitore. Tale rete è caratterizzata da
- K utenti che circolano nella rete,
- numero di risorse R = 4,
- due servitori che lavorano in parallelo con tempi di servizio distribuiti esponenzialmente con valore medio 1/µ1 per ognuno dei due servitori presenti
nella prima risorsa e un singolo servitore per le altre tre risorse della rete
con tempi di servizio distribuiti esponenzialmente con valore medio 1/µi
(i = 1, 2, 3),
- disciplina di servizio FIFO per ogni risorsa,
- matrice di switching di cardinalità 4 × 4:
1
1 0
2
1
P = 
31
4 1

A.G. Nobile
2
3
4

0.5 0.3 0.2
0
0
0 
.
0
0
0 
0
0
0
8.8. PRESTAZIONI: CASO GENERALE
201
Risorsa 2
0.5
Risorsa 1
B
B
-
µm
1
JJ
µm
1
-
A
A
Risorsa 3
0.3
A
A
-
A
A
-
µm
2
-
µm
3
-
Risorsa 4
0.2
µm
4
-
-
Figura 8.13: Una rete chiusa costituita da quattro risorse, la prima con due
servitori e le rimanenti con unico servitore.
Nel seguito supponiamo che
µ1 = 1.0,
µ2 = 0.5,
µ3 = 1.0,
µ4 = 2.0,
da cui segue E(S2 ) > E(S3 ) > E(S4 ) essendo
E(S1 ) = 1,
E(S2 ) = 2,
E(S3 ) = 1,
E(S4 ) = 0.5.
Step 1: Il sistema (8.9) è costituito dalle seguenti equazioni:
α1 = α2 + α3 + α4
α2 = 0.5 α1
α3 = 0.3 α1
α4 = 0.2 α1 .
la cui soluzione è α1 = b, α2 = 0.5 α1 , α3 = 0.3 α1 e α4 = 0.2 α1 , dove b è un
reale positivo arbitrario. Ponendo α1 = 1 le soluzioni del sistema sono:
α1 = 1,
α2 = 0.5,
α3 = 0.3,
α4 = 0.2.
Pertanto
̺1 =
α1
= 0.5,
2 µ1
̺2 =
α2
= 1,
µ2
̺3 =
α3
= 0.3,
µ3
che mostra che la risorsa meno efficiente è la seconda.
A.G. Nobile
̺4 =
α4
= 0.1,
µ4
202
CAPITOLO 8. RETI DI GORDON-NEWELL
Step 2: Nella situazione di equilibrio statistico, dal Teorema 8.1 segue che
q(n1 , n2 , n3 , n4 ) =
1
g1 (n1 ) g2 (n2 ) g3 (n3 ) g4 (n4 ),
C4 (K)
dove C4 (K) è la costante di normalizzazione e dove
g1 (0) = 1,
gi (0) = 1,
g1 (n) = 2 ̺n1
gi (n) =
(n = 1, 2 . . . , K),
̺ni ,
(i = 2, 3, 4; n1 = 1, 2 . . . , K).
Supponiamo ora, per semplicità, che K = 3, ossia che soltanto tre utenti
circolano nella rete. In tal caso risulta
g1 (0) = 1
g1 (1) = 2 · 0.5 = 1
g1 (2) = 2 · 0.52 = 0.5
g1 (3) = 2 · 0.53 = 0.25
g2 (0) = 1
g2 (1) = 1
g2 (2) = 1
g2 (3) = 1
g3 (0) = 1
g3 (1) = 0.3
g3 (2) = 0.09
g3 (3) = 0.027
g4 (0) = 1
g4 (1) = 0.1
g4 (2) = 0.01
g4 (3) = 0.001
Utilizziamo l’algoritmo di convoluzione per determinare il coefficiente di
normalizzazione C4 (3) utilizzando la (8.36):
C1 (0) = 1,
C1 (1) = g1 (0) C0 (1) + g1 (1) C0 (0) = 1,
C1 (2) = g1 (0) C0 (2) + g1 (1) C0 (1) + g1 (2) C0 (0) = 0.5,
C1 (3) = g1 (0) C0 (3) + g1 (1) C0 (2) + g1 (2) C0 (1) + g1 (3) C0 (0) = 0.25,
C2 (0) = 1,
C2 (1) = g2 (0) C1 (1) + g2 (1) C1 (0) = 2,
C2 (2) = g2 (0) C1 (2) + g2 (1) C1 (1) + g2 (2) C1 (0) = 2.5
C2 (3) = g2 (0) C1 (3) + g2 (1) C1 (2) + g2 (2) C1 (1) + g2 (3) C1 (0) = 2.75
C3 (0) = 1,
C3 (1) = g3 (0) C2 (1) + g3 (1) C2 (0) = 2.3,
C3 (2) = g3 (0) C2 (2) + g3 (1) C2 (1) + g3 (2) C2 (0) = 3.19
C3 (3) = g3 (0) C2 (3) + g3 (1) C2 (2) + g3 (2) C2 (1) + g3 (3) C2 (0) = 3.707.
C4 (0) = 1,
C4 (1) = g4 (0) C3 (1) + g4 (1) C3 (0) = 2.4,
C4 (2) = g4 (0) C3 (2) + g4 (1) C3 (1) + g4 (2) C4 (0) = 3.43
C4 (3) = g4 (0) C3 (3) + g4 (1) C3 (2) + g4 (2) C3 (1) + g4 (3) C3 (0) = 4.05.
Se n1 + n2 + n3 + n4 = 3, si ha quindi:
q(n1 , n2 , n3 , n4 ) =
A.G. Nobile
1
1
g1 (n1 ) g2 (n2 ) g3 (n3 ) g4 (n4 ) =
g1 (n1 ) ̺n2 2 ̺n3 3 ̺n4 4 ,
4.05
4.05
8.8. PRESTAZIONI: CASO GENERALE
203
dove g1 (0) = 1 e g1 (n1 ) = 2̺1n1 (n = 1, 2, 3). In particolare, risulta
q(3, 0, 0, 0) =
1
1
0.25
2 ̺31 =
2 · 0.53 =
= 0.0617.
4.05
4.05
4.05
Il numero di stati possibili è:
R+K −1
6
=
= 20,
R−1
3
ossia l’insieme D4 (3) contiene i venti possibili stati
(0111)
(2010)
(1020)
(0012)
(1011)
(2001)
(0120)
(3000)
(1101)
(1200)
(0021)
(0300)
(1110)
(0210)
(1002)
(0030)
(2100)
(0201)
(0102)
(0003)
Calcoliamo le probabilità marginali per le singole risorse della rete. Per la
prima risorsa della rete si ha:
q1 (0) = q(0, 1, 1, 1) + q(0, 2, 1, 0) + q(0, 2, 0, 1) + q(0, 1, 2, 0) + q(0, 0, 2, 1)
+q(0, 1, 0, 2) + q(0, 0, 1, 2) + q(0, 3, 0, 0) + q(0, 0, 3, 0) + q(0, 0, 0, 3),
q1 (1) = q(1, 0, 1, 1) + q(1, 1, 0, 1) + q(1, 1, 1, 0) + q(1, 2, 0, 0) + q(1, 0, 2, 0)
+q(1, 0, 0, 2),
q1 (2) = q(2, 1, 0, 0) + q(2, 0, 1, 0) + q(2, 0, 0, 1),
q1 (3) = q(3, 0, 0, 0).
In maniera analoga si possono calcolare le probabilità marginali per le altre tre
risorse della rete.
Step 3: I numeri medi di utenti presenti nella seconda, terza e quarta risorsa
(con unico servitore) possono essere calcolati utilizzando la (8.32):
E(N2 ) =
E(N3 ) =
E(N4 ) =
3
X
1
̺n C4 (3 − n) = 1.6864,
C4 (3) n=1 2
3
X
1
̺n C4 (3 − n) = 0.3141,
C4 (3) n=1 3
3
X
1
̺n C4 (3 − n) = 0.0909,
C4 (3) n=1 4
da cui, ricordando che il numero di utenti che circolano nella rete è K = 3, segue
che
E(N1 ) = 3 − E(N2 ) − E(N3 ) − E(N4 ) = 0.9086.
Si nota che E(N2 ) > E(N1 ) > E(N3 ) > E(N4 ).
A.G. Nobile
204
CAPITOLO 8. RETI DI GORDON-NEWELL
ll fattore di utilizzazione della prima risorsa può essere calcolato tramite le
(8.48) e (8.49) nel seguente modo:
f1 = q1 (2) + q1 (3) +
1
q1 (1).
2
Invece per calcolare il coefficiente di utilizzazione delle altre risorse della rete
possiamo utilizzare la (8.43):
C4 (2)
3.43
=
= 0.8469,
C4 (3)
4.05
3.43
C4 (2)
= 0.3
= 0.2541,
f3 = P (N3 ≥ 1) = ̺3
C4 (3)
4.06
C4 (2)
3.63
f4 = P (N4 ≥ 1) = ̺4
= 0.1
= 0.0847.
C4 (3)
4.05
f2 = P (N2 ≥ 1) = ̺2
I throughput delle quattro risorse della rete sono:
τ1 = 2 µ1 f1 = 2 q1 (2) + 2 q1 (3) + q1 (1),
τ2 = µ2 f2 = 0.5 · 0.8469 = 0.4234,
τ3 = µ3 f3 = 1.0 · 0.25407 = 0.2541,
τ4 = µ4 f4 = 2.0 · 0.0847 = 0.1694.
I tempi medi di attesa di un utente nelle singole risorse della rete in ogni singola
visita sono:
E(N1 )
τ1
E(N2 )
E(W2 ) =
τ2
E(N3 )
E(W3 ) =
τ3
E(N4 )
E(W4 ) =
τ4
E(W1 ) =
0.9086
,
2 q1 (2) + 2 q1 (3) + q1 (1)
1.6864
=
= 3.983,
0.4234
0.3141
=
= 1.2361,
0.2541
0.0909
=
= 0.5366.
0.1694
=
Si nota che, anche se la seconda risorsa è scelta con probabilità 0.5, il tempo di
attesa in tale risorsa E(W2 ) è maggiore del tempo di attesa nella terza e nella
quarta risorsa. Ciò dipende dal fatto che nella seconda risorsa è presente un
servitore lento, ossia con tempo medio di servizio superiore a quello della terza
e quarta risorsa della rete. Questo esempio mostra che nella valutazione delle
prestazioni delle reti chiuse di Gordon-Newell giocano un ruolo essenziale sia i
tempi medi di servizio per servitore, sia le probabilità di transizione tra le varie
risorse.
♦
A.G. Nobile
8.8. PRESTAZIONI: CASO GENERALE
205
Spero che questi appunti possano costituire un valido aiuto nella preparazione
dell’esame di Prestazioni e Simulazione di Sistemi (Simulazione II).
Vi auguro di completare con successo la vostra carriera universitaria.
Amelia G. Nobile
P.S. Prego gli studenti di segnalare ogni possibile imperfezione ed eventuali
suggerimenti.
A.G. Nobile
206
A.G. Nobile
CAPITOLO 8. RETI DI GORDON-NEWELL
Indice
1 Reti di code
1.1 Introduzione . . . . . . . . . . . . . . . . . . . . .
1.2 Classificazione di una rete di code . . . . . . . .
1.3 Struttura di interconnessione . . . . . . . . . . .
1.4 Sistemi di servizio . . . . . . . . . . . . . . . . .
1.4.1 Notazioni della teoria delle file di attesa .
1.4.2 Intensità di traffico per sistemi di servizio
1.4.3 Leggi di Little per sistemi di servizio . . .
1.5 Obiettivo dei successivi capitoli . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Catene di Markov continue
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Processo di Poisson . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Composizione di processi di Poisson . . . . . . . .
2.2.2 Decomposizione di un processo di Poisson . . . . .
2.3 Catene di Markov continue nel tempo . . . . . . . . . . .
2.3.1 Derivazione delle equazioni forward di Kolmogorov
2.3.2 Classificazione degli stati . . . . . . . . . . . . . .
2.3.3 Distribuzione di equilibrio . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
5
6
8
11
12
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
15
17
19
22
23
26
28
3 Singole risorse della rete
3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Processi stocastici di nascita morte . . . . . . . . . . . . . .
3.3 Il principio PASTA . . . . . . . . . . . . . . . . . . . . . . .
3.4 Coefficiente di utilizzazione e throughput . . . . . . . . . .
3.4.1 Sistema con singolo servitore . . . . . . . . . . . . .
3.4.2 Sistema con servitori multipli in parallelo . . . . . .
3.5 Sistema di servizio M/M/1 . . . . . . . . . . . . . . . . . .
3.5.1 Utilizzazione e throughput per il sistema M/M/1 . .
3.5.2 Output del sistema M/M/1 . . . . . . . . . . . . . .
3.6 M/M/1/K . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Utilizzazione e throughput per il sistema M/M/1/K
3.7 Sistema di servizio M/M/s . . . . . . . . . . . . . . . . . .
3.7.1 Utilizzazione e throughput per il sistema M/M/s . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
38
41
41
41
42
43
43
46
48
48
51
207
208
3.8
3.9
4
INDICE
3.7.2 Output del sistema M/M/s . . . . . . . . . . . . . . . . .
Sistema di servizio M/M/∞ . . . . . . . . . . . . . . . . . . . . .
Applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analisi di reti di code
4.1 Introduzione . . . . . . . . . . .
4.2 Descrizione di una rete di code
4.3 Leggi di Little . . . . . . . . . .
4.4 Reti di code markoviane . . . .
52
53
54
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
57
57
59
61
5 Reti tandem e acicliche
5.1 Introduzione . . . . . . . . . . . . . . . . . .
5.2 Rete tandem: due risorse, unico servitore .
5.3 Rete tandem: risorse multiple, un servitore
5.4 Rete tandem: risorse multiple, più servitori
5.5 Reti acicliche . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
67
68
70
72
75
6 Reti di Jackson
6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . .
6.2 Sistema M/M/1 con feedback . . . . . . . . . . . .
6.3 Due sistemi M/M/1 in serie con feedback . . . . .
6.4 Reti di Jackson . . . . . . . . . . . . . . . . . . . .
6.4.1 Frequenza media complessiva degli arrivi .
6.4.2 Frequenza media di uscita dalla rete . . . .
6.4.3 Il teorema di Jackson . . . . . . . . . . . .
6.4.4 Indici di prestazione di una rete di Jackson
6.5 Esempi di reti di Jackson . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
91
91
94
97
98
100
101
107
111
7 Simulazione di reti di code
7.1 Introduzione alla simulazione . . . . . . .
7.2 Generazione di numeri pseudocasuali . . .
7.3 Generazione di variabili aleatorie . . . . .
7.3.1 Variabile aleatoria esponenziale . .
7.4 Variabili aleatorie discrete . . . . . . . . .
7.5 Simulazione ad eventi discreti . . . . . . .
7.6 Sistema M/G/1 con limitazione temporale
7.7 Rete tandem: due risorse, unico servitore
7.8 Due servitori che lavorano in parallelo . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
129
129
132
136
137
138
140
141
148
154
8 Reti di Gordon-Newell
8.1 Introduzione . . . . . . . . . . . . . . . . . . . . .
8.2 Rete chiusa con due risorse . . . . . . . . . . . .
8.3 Rete chiusa di Gordon-Newell . . . . . . . . . . .
8.3.1 Frequenza media complessiva degli arrivi
8.3.2 Numero di stati . . . . . . . . . . . . . . .
8.3.3 Teorema di Gordon-Newell . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
163
163
163
167
168
169
170
A.G. Nobile
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
INDICE
8.4
8.5
8.6
8.7
8.8
Reti cicliche . . . . . . . . . . . . . . . . . . . . . . . . .
Probabilità marginali . . . . . . . . . . . . . . . . . . . .
8.5.1 Singolo servitore in una risorsa della rete chiusa .
8.5.2 Caso generale . . . . . . . . . . . . . . . . . . . .
Algoritmo di convoluzione per CR (K) . . . . . . . . . .
Prestazioni: singolo servitore . . . . . . . . . . . . . . .
Prestazioni: caso generale . . . . . . . . . . . . . . . . .
A.G. Nobile
209
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
178
180
181
183
183
187
195
210
A.G. Nobile
INDICE