1.8.1 Generalità
La trattazione della teoria delle code effettuata fino ad ora ha sempre considerato
singoli sistemi a coda. Tuttavia, molto spesso i sistemi reali si possono presentare
sotto forma di più sistemi a coda connessi fra di loro e si parla quindi di reti di
code.
Le reti di code cono state utilizzate con successo nella modellizzazione di molti
sistemi reali: reti di telecomunicazioni, sistemi di calcolo, sistemi manufatturieri
e molti altri.
Una rete di code può essere descritta come un grafo orientato composto da un
certo numero di nodi (m) ciascuno dei quali rappresenta un sistema a coda e
gli archi rappresentano le rotte seguite dagli utenti da un sistema all’altro. In
generale, si può pensare che ad una rete di code arrivino utenti dall’esterno in
ciascun nodo della rete, cosı̀ come da ciascun nodo un utente può lasciare la rete.
Ovvero, un utente entra nella rete in un certo nodo, attraversa alcuni nodi della
rete e poi presso un nodo lascia la rete. Può anche accadere che gli utenti possano
ritornare presso nodi già visitati.
È facile immaginare che lo studio di una rete è in generale è molto più complicato
dello studio di un singolo sistema a coda perché ovviamente si deve tenere conto
di ogni sistema a coda componente la rete per analizzare il flusso totale degli
utenti.
Preliminare allo studio delle reti di code c’è l’analisi del processo delle partenze
(uscite) dal sistema degli utenti che hanno usufruito del servizio. È molto impor-
tante conoscere le caratteristiche di questo processo per studiare le reti di code
in quanto il processo delle partenze da un sistema coincide con il processo degli
Teorema di arrivi nel sistema successivo. Riportiamo un risultato che vale per sistemi M/M/s
Burke noto come Teorema di Burke.
λ n −1
λ n
n−1 n n+1
µ n
µ n +1
t 1 t 2
considerare le seguenti equazioni di bilancio del flusso tra due stati adiacenti
(dette equazioni di bilancio dettagliato). Si considerino i due tagli t1 e t2 in
Figura 1.8.3. Relativamente al flusso che attraversa il taglio t1 si ha
λn pn = µn+1 pn+1 .
La più semplice rete di code che si può costruire consiste nell’avere un numero
fissato (m) di sistemi a coda in serie, in cui non ci siano limiti sulla capacità della
coda di ogni singolo sistema componente la rete.
Questa situazione si verifica nella pratica, ad esempio, nei sistemi manufatturi-
eri (linee di assemblaggio in cui i prodotti devono passare attraverso una serie
di stazioni di lavoro); nei sistemi ospedalieri dove un paziente può essere sotto-
posto, in sequenza, ad un certo numero di accertamenti; nelle procedure di tipo
amministrativo che prevedono più fasi successive (registrazione, pagamento, ri-
tiro documenti, ...). Assumiamo che al primo sistema arrivino utenti secondo un
processo di Poisson di parametro λ e che in ciascun sistema componente ci siano
si serventi, i = 1, . . . , m, ciascuno operante con tempi di servizio distribuiti espo-
nenzialmente con parametro µi con λ < si µi per ogni i = 1, . . . , m. Si assume
RETI DI CODE 91
inoltre che tali tempi di servizio siano indipendenti. In condizioni stazionarie, per
il Teorema di Burke, ciascuno dei sistemi ha arrivi poissoniani con parametro λ
e quindi i sistemi possono essere analizzati come tanti sistemi M/M/si isolati. Il
caso più semplice corrisponde ad avere due sistemi in serie (sistema tandem) con
singolo servente. In questo caso è molto semplice dimostrare che la probabilità
congiunta che n1 utenti sono nel primo sistema e n2 utenti nel secondo sistema è
data dal prodotto delle singole probabilità, ovvero
P (n) = P (n1 , n2 , . . . , nm ) = pn1 pn2 · · · pnm = ρn1 1 (1−ρ1 )ρn2 2 (1−ρ2 ) · · · ρnmm (1−ρm ),
Esempio 1.8.1 Supponiamo di avere un sistema formato da due stazioni di lavoro monoserventi
in serie: la prima è una stazione di lavorazione, la seconda una stazione di collaudo. I pezzi
arrivano alla prima stazione secondo un processo di Poisson di parametro λ = 10. I tempi di
servizio dei serventi sono distribuiti esponenzialmente con µ1 = 12 e µ2 = 15.
Per quanto esposto, gli arrivi alla seconda stazione sono poissoniani di parametro λ = 10 e
l’analisi può essere condotta studiando singolarmente i due sistemi M/M/1. Poiché risulta
5 2
ρ1 = <1 ρ2 = <1
6 3
esiste una distribuzione stazionaria della rete. Analizzando i due sistemi singolarmente si ha
1 1 1 1
T1 = = ora, T2 = = ora
µ1 − λ 2 µ2 − λ 5
e
N1 = λT1 = 5 pezzi, N2 = λT2 = 2 pezzi.
Per quanto riguarda la rete si ha N = N1 + N2 = 7 pezzi e T = T1 + T2 = 7/10 ora, ovvero 42
minuti.
RETI DI CODE 93
Una tipologia di reti di code molto studiate e che continua a prevedere l’utilizzo
del modello M/M/s sono le cosiddette reti di Jackson aperte. A differenza dei
sistemi a coda in serie, gli utenti visitano i nodi in un ordine qualsiasi e in ogni Rete di
nodo ci possono essere utenti che arrivano sia dall’esterno sia da altri nodi. For- Jackson
malmente si ha la seguente definizione.
Definizione 1.8.2 Una rete di code aperta si dice rete di Jackson aperta se
È chiaro che la frequenza media effettiva degli arrivi degli utenti presso un nodo
si ottiene sommando gli arrivi dall’esterno del sistema (che sono poissoniani di
parametro γi ) e gli arrivi dai nodi interni alle rete (che non sono necessariamente
poissoniani). Ovvero, se indichiamo con λj la frequenza media effettiva degli
arrivi al nodo j si ha che essa è data da
94 TEORIA DELLE CODE
m
X
λj = γj + λi pij j = 1, . . . , m. (1.8.2)
i=1
Questo perché λi pij rappresenta il contributo agli arrivi nel nodo j da parte del
nodo i. Poiché le γi sono assegnate, come anche le pij , la (1.8.2) rappresenta
un sistema lineare di m equazioni in m incognite (le λj ) che quindi ammette
soluzione (unica) se la matrice dei coefficienti è non singolare. Definendo i vettori
Λ = (λ1 , . . . , λm )T e Γ = (γ1 , . . . , γm )T , la (1.8.2) può essere scritta in forma
vettoriale
Λ = Γ + P T Λ,
ovvero, nell’ipotesi che la matrice (I − P T ) sia invertibile, Λ = (I − P T )−1 Γ, dove
P è la matrice di routing e I è l’identità m × m.
Si osservi che l’espressione (1.8.2) per la determinazione della frequenza effettiva
vale per una generica rete di code aperta, non solamente per reti di Jackson.
Anche per le reti di Jackson aperte è stato dimostrato che, analogamente al caso
delle reti in serie, la probabilità congiunta dello stato n è data dalla produttoria
delle probabilità di stato dei singoli sistemi (probabilità marginali). Questo si-
gnifica che si continua ad avere la soluzione in forma prodotto anche per reti che
non sono feedforward come invece era richiesto per l’applicazione del Teorema
di Burke. Riportiamo ora in dettaglio questo risultato che va sotto il nome di
Teorema di Jackson.
Caso monoserevente
Supporremo inizialmente che i singoli sistemi a coda componenti la rete siano
monoserventi (si = 1, i = 1, . . . , m) e che il fattore di utilizzazione del servente
Teorema di sia dato da ρj = λj /µj dove λj è la soluzione del sistema (1.8.2), supponendo che
Jackson ρj < 1, j = 1, . . . , m.
dove
n
pnj = ρj j (1 − ρj ).
RETI DI CODE 95
1
P (0, . . . , 0) = ∞ ∞ ∞ Y
m
X X X nj
··· ρj
n1 =0 n2 =0 nm =0 j=1
1
= ∞ ∞ ∞
X X X
ρn1 1 ρn2 2 · · · ρnmm
n1 =0 n2 =0 nm =0
1
=
1 1 1
···
1 − ρ1 1 − ρ2 1 − ρm
= (1 − ρ1 )(1 − ρ2 ) · · · (1 − ρm ).
96 TEORIA DELLE CODE
Esempio 1.8.3 Si consideri una semplice rete di code formata da due nodi: il primo nodo è
una stazione di lavorazione, il secondo è una stazione di ispezione–collaudo. I pezzi arrivano
dall’esterno alla stazione 1 secondo un processo di Poisson con media 10 pezzi l’ora e succes-
sivamente alla lavorazione nella stazione 1 procedono nella stazione 2 per il controllo. Dalla
stazione 2 si ha che il 10% dei pezzi collaudati risultano difettosi e tornano alla stazione 1 per
essere lavorati di nuovo. Le due stazioni sono monoserventi con tempi di servizio distributi espo-
nenzialmente rispettivamente con media 12 pezzi l’ora e 15 pezzi l’ora. Determinare il numero
medio di utenti presenti nella rete e il tempo medio di permanenza.
7 Nell’ambitodei sistemi manufatturieri i nodi di una rete di code vengono, di solito chiamati “stazioni”
e T viene chiamato “throughput time”.
98 TEORIA DELLE CODE
Esercizio 1.8.4 Si consideri una rete di Jackson aperta composta da 3 stazioni. Alla stazione 1
arrivano utenti dall’esterno della rete con frequenza media di arrivo pari a 1 utente l’ora (arrivi
poissoniani). Dalla stazione 1 gli utenti con probabilità 1/3 si recano alla stazione 2 e con
probabilità 2/3 raggiungono la stazione 3. Dalla stazione 2 gli utenti tornano all’ingresso della
stessa stazione 2 con probabilità 1/2 oppure escono all’esterno della rete. Dalla stazione 3 gli
utenti escono all’esterno dalla rete oppure con probabilità 1/3 tornano alla stazione 1. Le stazioni
2 e 3 sono identiche e sono monoserventi con tempi di servizio distribuiti esponenzialmente con
µ2 = µ3 = 3/2 utenti l’ora. La stazione 1 è monoservente con tempi di servizio distribuiti
esponenzialmente con µ1 = 2 utenti l’ora. Verificare se esiste la distribuzione stazionaria e in
caso affermativo calcolare il numero medio di utenti presenti nella rete e il tempo medio di
permanenza.
Caso multiservente
Il Teorema di Jackson enunciato per reti di code costituite da sistemi con singolo
servente si estende anche al caso in cui ogni nodo della rete può avere più di un
servente. Supponiamo, quindi, che sj ≥ 1 sia il numero dei serventi per ciascun
nodo j = 1, . . . , m, ed inoltre assumiamo che ρj = λj /(sj µj ) < 1. Allora vale il
seguente risultato.
dove à !nj
1 λj
p0j , per nj < sj
n ! µ
j j
pnj = Ã !nj
1 λj
p0j , per nj ≥ sj
nj −sj
s!s µj
Questo teorema afferma che, in maniera del tutto analoga al caso monoservente,
la probabilità congiunta si fattorizza nelle probabilità di avere nj utenti nel nodo
j−esimo considerato singolarmente come sistema M/M/sj con frequenza media
degli arrivi pari alla frequenza effettiva λj e tempo medio di servizio µj e questo
indipendentemente dagli altri nodi della rete.
Come nel caso monoservente, le misure di prestazione di interesse possono essere
calcolate aggregando i valori ottenuti nei singoli nodi.
Esempio 1.8.5 [Gross, Harris, 1998] Si consideri un call center al quale arrivano chiamate
secondo la distribuzione di Poisson con media 35 l’ora. Alle chiamate che arrivano il gestore
fornisce due opzioni: digitare il tasto 1 per il servizio reclami, oppure digitare 2 per il servizio
informazioni. Si stima che il tempo di ascolto del messsaggio e della pressione del tasto sia
esponenziale con media 30 secondi. Le chiamate che trovassero occupato vengono poste in
attesa con l’assunzione che nessun utente si scoraggia per l’attesa e quindi aspetta comunque
di usufruire del servizio. Il 55% delle chiamate chiedono di accedere al servizio reclami e le
rimanenti chiedono di accedere al servizio informazioni. Il nodo del processo dei reclami ha 3
serventi (operanti in parallelo) che operano con tempi di servizio distribuiti esponenzialmente
con media 6 minuti. Il nodo del processo delle informazioni ha 7 serventi (operanti in parallelo)
che operano con tempi di servizio distribuiti esponenzialmente con media 20 minuti. I buffer
di attesa si assumono illimitati. Inoltre circa il 2% dei clienti che hanno usufruito del servizio
reclami decidono di usufruire anche del servizio informazioni e l’1% dei clienti che hanno usufruito
del servizio informazioni chiedono anche di usufruire del servizio reclami. Si vuole determinare
la lunghezza media della coda in ciascun nodo e il tempo medio totale che un cliente passa nella
in linea con il call center.
Esercizio 1.8.6 Si consideri una rete di Jackson aperta composta da 4 stazioni. Le stazioni 1
e 2 sono monoservetnti. Nella stazione 3 e 4 ci sono 2 serventi. Alla stazione 1 e alla stazione 2
arrivano utenti dall’esterno della rete con frequenza media di arrivo pari a 1 utente l’ora (arrivi
poissoniani). Dalla stazione 1 gli utenti si recano alla stazione 3. Dalla stazione 2 gli utenti si
recano alla stazione 3 con probabilità 1/3, oppure si recano all’ingresso della stazione 4. Dalla
stazione 3 gli utenti escono all’esterno della rete oppure tornano all’ingresso della stazione 1 con
probabilità 1/2. Dalla stazione 4 gli utenti escono dalla rete. I tempi di servizio nelle uattro
stazioni sone distribuiti esponenzialmente con µ1 = 7, µ2 = 2, µ3 = 4 e µ4 = 1 utenti l’ora.
Verificare se esiste la distribuzione stazionaria e in caso affermativo calcolare il numero medio
di utenti presenti nella rete e il tempo medio di permanenza.
RETI DI CODE 101
Si tratta di reti di code in cui non sono consentiti né arrivi, né partenze di
utenti dalla rete e quindi il numero totale di utenti presenti nella rete risulta
fissato. Quindi in una rete chiusa il valore di N non è più un valore medio da
determinare, ma è un dato del problema.
Anche se il modello che si utilizza non prevede arrivi o partenze dalla rete, da
un punto di vista pratico esso rappresenta bene quei casi in cui ogniqualvolta ci
sia un utente che esce dalla rete, esso viene immediatamente rimpiazzato da un
nuovo utente.
Questa tipologia di rete di code è stata introdotta da Gordon e Newell nel 1967
e ha applicazioni significative nei sistemi di calcolo time-sharing e multi-utente.
Ovviamente, in una rete chiusa il numero degli stati possibili è finito ed è uguale
al numero dei modi che si hanno di disporre N utenti (indistinguibili tra di loro)
negli m nodi, considerando che ogni nodo può avere al più N + 1 stati possibili
(includendo lo stato 0). Tale numero è dato da
µ ¶
m+N −1
.
m−1
Inoltre, poichè in una rete chiusa il numero degli utenti è limitato, una rete chiusa
ammette sempre una distribuzione stazionaria.
Nell’analizzare questo tipo di reti di code, c’è un’importante differenza rispetto
alle reti aperte, che sta nella determinazione della frequenza media effettiva di
arrivo ad ogni singolo nodo. Infatti, poiché risulta γj = 0 per j = 1, . . . , m, il
sistema di equazioni (1.8.2) diventa
m
X
λj = λi pij , j = 1, . . . , m (1.8.8)
i=1
(I − P T )Λ = 0,
Teorema 1.8.4 Sia data una rete di Jackson chiusa composta da m nodi a
singolo sevente. Allora la distribuzione congiunta è data da
1
P (n) = P (n1 , . . . , nm ) = ρn1 ρn2 · · · ρnmm ,
G(N ) 1 2
con n1 + n2 + · · · + nm = N e dove
X
G(N ) = ρn1 1 ρn2 2 · · · ρnmm .
n1 ,n2 ,...,nm
n1 +n2 +···nm =N
dove
nj
Xj
n !,
per nj < sj
j
p̂nj = n
Xj j
, per nj ≥ sj ,
n −sj
sj !sj j
dove X
G(N ) = p̂n1 p̂n2 · · · p̂nm .
n1 ,n2 ,...,nm
n1 +n2 +···nm =N
Esiste un’ampia letteratura e numerosi testi specifici dedicati alla Teoria delle
code e alle sue applicazioni. Fra questi citiamo il testo classico in due volumi
[Kleinrock, 1975], [Kleinrock, 1976] che riporta una trattazione sia elementare
sia avanzata della teoria delle code. Un altro testo specifico sulla Teoria delle
code è [Cooper, 1981] disponibile in rete all’indirizzo http://www.cse.fau.edu/
e bob/publications/IntroToQueueingTheory Cooper.pdf.
La Teoria delle code è sviluppata in modo sintetico anche in numerosi testi di
Ricerca Operativa, fra i quali citiamo [Hillier, Lieberman, 2001] che dedica i
capitoli 17 e 18 alla Teoria delle code e alle sue applicazioni.
Esiste, inoltre un sito interamente dedicato alla Teoria delle code che riporta nu-
merosi link molto utili: http://web2.uwindsor.ca/math/hlynka/queue.html.
Per i richiami di Probabilità e le proprietà sulle distribuzioni di probabilità si può
fare riferimento ad un qualsiasi testo di Calcolo delle Probabilità.
λk = αk λ k ≥ 0, 0≤α<1
µk = µ k≥1
Esercizio 1.10.3 Una banca ha 5 cassieri e ciascuno di essi ha una coda di clienti
davanti a sé. I clienti che arrivano scelgono una coda a caso e aspettano di essere
serviti. Gli arrivi dei clienti nella banca sono poissoniani con frequenza di 40 l’ora
e i tempi di servizio di ciascun cassiere sono esponenziali con media di 5 minuti.
La banca sta considerando la possibilità di introdurre un sistema a coda unica,
in cui ogni cliente viene servito dal primo cassiere che si libera. Determinare qual
è l’effetto di questo cambiamento sul tempo medio di attesa in coda. Inoltre, in
riferimento al sistema a coda unica, determinare:
a) i valori delle misure di prestazione, ovvero il numero medio di utenti presenti
nella banca, il numero medio di utenti in attesa in coda, il tempo medio di
permanenza nella banca e il tempo medio attesa in coda;
b) la probabilità che il tempo medio di attesa in coda sia non nullo;
c) la probabilità che nella banca vi siano più di 7 clienti.
In media, ogni giorno arrivano 2.5 riordini, 4 ordini normali e 5.5 ordini secondari.
Descrivere un sistema di code che permette di costruire un modello di questo
reparto spedizioni e determinare, per ciascun tipo di ordine
b) il tempo medio di attesa che passa tra la ricezione dell’ordine da parte del
reparto e l’inizio della sua elaborazione;
d) il numero medio di ordini che sono presso tale reparto spedizioni in attesa
di essere elaborati.
Esercizio 1.10.6 Una società costruisce immobili per l’edilizia residenziale. Gli
acquirenti stipulano il contratto di acquisto e poi aspettano che l’immobile che
hanno acquistato sia realizzato prima di poterne entrare effettivamente in pos-
sesso. Vengono stipulati, in media, 9 contratti l’anno secondo una distribuzione
di Poisson.
Tale società adotta la strategia di iniziare a costruire una nuova casa non appena
è stata completata la costruzione della casa precedente. Inoltre essa dispone di un
numero di operai tale da permettere la costruzione, in media, di 12 case l’anno,
ESERCIZI DI RIEPILOGO 107
Calcolare, infine, come varia la percentuale di utilizzazione del servente dal primo
caso in cui non ci sono limiti di capacità al secondo caso in cui tale limitazione è
presente.
e) Calcolare il tempo medio che una persona passa in attesa prima di essere
servita.
Supponiamo, ora, che un auto che arriva e che trova tutte le quattro postazioni
occupate, deve attendere il proprio turno in un parcheggio che ha una capienza
massima di tre auto; se anche il parcheggio risultasse pieno, allora l’auto rinuncia
definitivamente ad entrare nella stazione di servizio.
Sulla base di quest’ultimo sistema, descritto al punto e), la stazione sta stu-
diando alcune variazioni operative. La prima consiste nell’intervenire solamente
sul parcheggio, eliminandolo e quindi non permettendo piú l’attesa delle auto che
trovano le quattro postazioni occupate.