Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Ing. Pazzo
8 giugno 2010
2
Si consiglia di affiancare il materiale presente in questo riassunto agli appunti presi a lezione. Que-
sto perché (ovviamente!) non si vuole avere alcuna presunzione di esaustività, né di assoluta corret-
tezza: nonostante le revisioni fin’ora effettuate, potrebbero infatti essere ancora presenti molti errori e
imprecisioni.
2
Indice
1 Nozioni di base 5
1.1 Teorema di Little . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 La notazione di Kendall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Processo di Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Proprietà di composizione e decomposizione . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Tempo interarrivo in un processo di Poisson . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Variabile aleatoria esponenziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Caratterizzazione del tempo di servizio . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 La crescita esponenziale del traffico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Catene di Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Processi di nascita e di morte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 I sistemi a coda 11
2.1 Parametri e notazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Sistema M/M/∞ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Sistema M/M/m/0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Sistema M/M/m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Sistema M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Sistema M/M/1/L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Altri esercizi 29
3.1 Esercizio 4.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Esercizio 5.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Esercizio 5.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4 Esercizio 5.16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5 Esercizio 5.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6 Esercizio 5.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.7 Esercizio 5.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Esercizio 5.19 (il gemello del 5.17) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3
4 INDICE
4
Capitolo 1
Nozioni di base
A0 = A s + A p
ESERCIZIO:
In un fast food entrano mediamente 2 clienti al minuto. Ciascun cliente impiega mediamente 7
minuti alla cassa per ottenere quanto ordinato. Quindi il 60% dei clienti lascia il locale, mentre il 40%
rimane a mangiare impiegando mediamente 20 minuti. Volendo dimensionare la ripartizione dello spazio
fra casse e tavoli all’interno del locale si vuole calcolare:
• Il numero medio di clienti presenti nel locale.
Il numero di clienti all’interno del locale sarà pari a:
λtavoli ϑ̄tavoli = 2 · 0, 4 · 20 = 16
5
6 CAPITOLO 1. NOZIONI DI BASE
I simboli A e B saranno quasi sempre pari ad M, ad indicare un processo di Poisson (vedi paragrafo
1.3): l’unica eccezione si ha quando si considerano processi generici (G ), dei quali cioè non si hanno
informazioni complete relativamente alla distribuzione di probabilità del tempo d’interarrivo. Le quantità
m ed n sono invece fondamentali per inquadrare bene la situazione:
• m indica il numero di servitori: lo status di servitore può essere assunto da qualsiasi tipo di entità,
dunque non bisogna fossilizzarsi nel pensare che sia necessariamente un elaboratore. Potrebbe infatti
trattarsi di una linea di trasmissione dati, di un router, di una memoria che ha una certa velocità di
scrittura, di un essere umano, di un macchinario industriale, etc. . . Un router a cui sono collegate tre
linee a diversa velocità, attraverso le quali vengono smistati i pacchetti da e verso la rete pubblica, è
un esempio sistema a tre servitori;
• n indica la lunghezza della coda. Per noi sarà quasi sempre infinita.
• richieste del singolo utente distribuite uniformemente nel periodo T con densità di probabilità f (t) =
1/T.
Fatta l’ipotesi di processo di Poisson, la probabilità di avere k arrivi in T secondi, detta λ la frequenza
media d’arrivo, è:
(λT )k −λT
P (k, T ) = e
k!
Il valor medio e la varianza di un processo stocastico di Poisson sono uguali e pari a λT.
λi = Pi λ ∀i ∈ [1; N ]
1 Per una trattazione esaustiva si rimanda al testo indicato dal prof. Callegati, mentre in questa sede esamineremo solo ciò che
6
CAPITOLO 1. NOZIONI DI BASE 7
Pr {τ 6 t} = 1 − Pr {τ > t} = 1 − P (0, t)
In men che non si dica abbiamo già ricavato la funzione cumulativa (per t ≥ 0) del tempo interarrivo:
f τ (t) = λe−λt
f ϑ (t) = µe−µt
Fϑ (t) = 1 − e−µt
ESERCIZIO:
Sistema a coda con 5 servitori indipendenti e occupati all’istante t0 = 0, distribuzione esponenziale
negativa per il tempo di servizio, ϑ̄ = 10 minuti, nessun ulteriore arrivo.
Possiamo effettuare le considerazioni che riportiamo di seguito in virtù dell’assenza di memoria della v.a.
esponenziale. La probabilità che nessun cliente abbia finito dopo 10 minuti si ricava tenendo conto che:
Tenendo conto che si ha, per la distribuzione cumulativa del tempo di servizio
Fϑ (t) = 1 − e−µt
7
8 CAPITOLO 1. NOZIONI DI BASE
e che la presenza di cinque servitori indipendenti e occupati fa sì che la frequenza di morte sia2
5
µ0 = 5µ =
ϑ̄
abbiamo che
Pr {Nessun servito dopo 10 minuti} = 1 − (1 − e−5µt ) = 0, 0067
La probabilità che dopo 20 minuti tutti abbiano completato il servizio?
La probabilità che dopo 20 minuti tutti abbiano completato il servizio è calcolabile mediante una probabilità
congiunta:
Pr {fine 5 utenti entro 20 min} = Pr {fine primo utente entro 20 min} ·
Pr {fine secondo utente entro 20 min} · etc... =
5 5
= 1 − e−µt = 1 − e−20µ = 0, 483
Determinare la densità di probabilità del tempo di servizio dell’ultimo cliente che esce.
Ovviamente l’istante d’uscita dell’ultimo cliente equivale all’istante in cui tutti i clienti sono stati serviti. Perciò
la distribuzione di probabilità di ϑ̄5 è, come abbiamo appena trovato,
ESEMPIO:
In data odierna si prevede un traffico offerto pari ad A0 = 11 E. Si prevede un raddoppio in un
triennio con andamento esponenziale. Calcolare l’andamento nel tempo del traffico offerto.
Utilizzando gli anni come unità di misura del tempo, la locuzione ’in data odierna’ si riferisce ovviamente a
t = 0. Il raddoppio deve invece avvenire in t = 3, cioè allo scadere del terzo anno (o all’inizio del quarto, che dir
si voglia). Siccome l’andamento esponenziale ha forma
t
x = Ae τ
dovrà verificarsi:
3
2 · Ainiziale
0 = Ainiziale
0 eτ
Da cui:
τ = 4.33 anni
A questo punto basta effettuare il calcolo in t ∈ [0, 3] e, sfruttando i risultati già calcolati, si hanno i risultati in
tabella 1.1 e in figura 1.1.
2 Scrivere tale relazione è possibile solo in virtù del fatto che, se nessuno muore entro 10 minuti, significa anche che i servitori
rimarranno tutti occupati in questo lasso di tempo. Ciò rende invariante la frequenza di morte complessiva del nostro sistema.
Se essa variasse, in seguito all’uscita di un cliente, non potremmo unificare la densità di probabilità in un unico esponenziale con,
all’esponente, 5µ, come viene fatto di seguito.
8
CAPITOLO 1. NOZIONI DI BASE 9
Anno Traffico
0 A0 e0/4.33 = 11
1 A0 e1/4.33 = 13.9
2 A0 e2/4.33 = 17.5
3 A0 e3/4.33 = 22
Figura 1.1: Rappresentazione grafica della esponenziale del traffico (raddoppio in un triennio)
non dipendono dall’istante di tempo considerato ma solamente dagli stati di partenza e di arrivo. In altre
parole si deve avere:
Pij (n) = Pij ∀n
Una catena di Markov tempo-omogenea può essere graficamente rappresentata tramite il cosiddetto dia-
gramma degli stati: ogni cerchio rappresenta uno stato e le frecce indicano la transizione da uno stato ad
un altro con associata la probabilità che tale transizione avvenga.
π j (n) = Pr{ Xn = j}
9
10 CAPITOLO 1. NOZIONI DI BASE
I parametri λk e µk sono anche dette ritmo (o frequenza) di nascita e ritmo (o frequenza) di morte dallo stato k.
All’equilibrio, in particolare, si ha:
k −1
λi 1
Pk = P0 ∏ , i > 0, P0 =
µ i +1 k −1
i =0 1+ ∑ ∏ λi
µ i +1
k >0 i =0
Questa formula viene utilizzata per ricavare tutte le formule ’di stato’ relative ai casi che vedremo di
seguito (la dimostrazione non verrà tuttavia riportata).
10
Capitolo 2
I sistemi a coda
• m il numero di servitori;
• δ̄ il tempo medio di servizio, ovvero il tempo che il nostro cliente trascorre all’interno del sistema. Per
definizione il tempo medio di servizio comprende:
Dunque si ha:
δ̄ = η̄ + ϑ̄
Il tempo medio di servizio è spesso - ma non sempre - una quantità nota o una specifica vincolante
sulle prestazioni del nostro sistema da far assolutamente rispettare (e dalla quale partire per ricavare
l’incognita dell’esercizio);
• ε̄ il tempo medio impiegato in coda sapendo di essere effettivamente entrati in coda. Non si confon-
da questo parametro con η̄: quest’ultimo valore è tanto minore rispetto a ε̄ tanto più bassa è la
probabilità di finire in coda, visto che in questo caso si tiene conto dei casi in cui l’attesa è nulla;
1
• µ= ϑ̄
la frequenza di servizio;
Tutte queste quantità sono adimensionali, ma si misurano comunque in Erlang [E] in onore al
matematico danese precursore degli studi sulla teoria del teletraffico.
• ρ = Ams l’utilizzazione dei servitori. Indica quanto efficacemente viene utilizzato il sistema: l’ideale
sarebbe avere questo parametro il più possibile vicino ad 1;
• Pk la proprietà di stato relativa al parametro k, ovvero la probabilità che nel sistema vi siano k
servitori occupati.
11
12 CAPITOLO 2. I SISTEMI A CODA
serviti immediatamente, lo spazio di attesa è nullo e non vi sono utenti rifiutati; il traffico servito e il
traffico offerto, dunque, coincidono:
λ
λϑ̄ = = A0 = As
µ
Il ritmo di nascita, ovvero la velocità con cui gli utenti entrano nel sistema, è costante e pari al ritmo di
arrivo del processo di Poisson:
λ = λk
La frequenza di morte, invece, dipende da quanti utenti sono all’interno del sistema; in maniera intuitiva,
se in un certo istante sono presenti molti utenti, è alta la probabilità che siano piuttosto numerosi anche
quelli in procinto di uscire. Se invece gli utenti sotto servizio sono pochi, saranno altrettanto pochi quelli
a dover lasciare il sistema. Infatti si ha:
µk = kµ
Questa proprietà è valida in generale e non solo per questo tipo di sistema. La probabilità di stato, ovvero
la probabilità che vi siano k servitori impegnati, è
A0k − A0
Pk =e
k!
Il numero medio di utenti presenti nel sistema coincide ovviamente con il numero medio di servitori
occupati:
A = λδ̄ = λθ̄ = A0 = As
Dicevamo che il sistema non si troverà mai in stato di congestione: in ogni caso una sorta di misura del
livello di occupazione del sistema può essere il calcolo della probabilità di trovare m o più di m servitori
impegnati:
m −1 A k
πm = 1 − ∑ 0 e− A0 = A (m, A0 )
k =0
k!
La sopraccitata A viene detta formula A di Erlang.
Sistemi di questo tipo sono poco frequenti negli esercizi. . . C’è ben poco da calcolare!
12
CAPITOLO 2. I SISTEMI A CODA 13
A B Esterno
A - 5 5
B 3 - 2
Esterno 4 1 -
ESERCIZIO:
Il tipico esercizio in cui si richiede l’applicazione della B di Erlang è quello in cui si considerano una o più
centrali collegate fra di loro e/o con l’esterno (PSTN = Public Switched Telephone Network). Spesso viene
fornita una tabellina come la 2.1: in essa è riportato il traffico offerto A0 da ogni centrale (v. riga) ad ogni
altra (v. colonna). Ovviamente la diagonale non contiene valori, visto che non ha senso definire un traffico da
una locazione verso sé stessa. In tal caso viene specificato che B, per andare verso l’esterno, deve passare da A.
Questo particolare non è di poco conto, visto che influenza le caratteristiche del flusso di traffico attraverso le
linee: per questo è sempre importante scindere le informazioni che vengono date in tabelle come la 2.1 rispetto alla
topologia di maglia con coi abbiamo a che fare. Il traffico infatti può imboccare diverse vie in base ai collegamenti
lungo i quali è possibile dipanare i pacchetti: in una rete a maglia completa, ad esempio, ogni centrale è connessa
a tutte le altre, dunque non ci sarà bisogno di passare tramite altre locazioni. Non è questo il caso dell’esercizio
che stiamo esaminando: considerando infatti che il traffico è bidirezionale abbiamo
• tra A e l’esterno (E): il traffico ( A → E) + ( E → A) +( B → E) + ( E → B). In totale: 5 + 2 + 4 + 1 =
12 E. Visto che A è responsabile ’dei rapporti col mondo esterno’ si poteva pensare di rispondere a questo
quesito sommando il traffico della colonna più a destra della tabella 2.1 con quello dell’ultima riga.
m = 0;
B = 1;
while (B > p)
m = m+1;
B = (A0*B)/(m+A0*B);
end
Abbiamo come risultato:
B (m, 11) 6 0.01 ⇒ m = 19
B (m, 12) 6 0.01 ⇒ m = 20
Il numero medio di utenti nel sistema è pari al numero medio di servitori occupati, e quindi al traffico
smaltito, per cui:
A = As = 1 − π p A0 = [1 − B (m, A0 )] A0
Si ha inoltre:
λs = 1 − π p λ
A A 1
δ̄ = = 0 = = ϑ̄
λs λ µ
L’utilizzazione dei servitori è pari a:
As A0 (1 − π p )
ρ= =
m m
13
14 CAPITOLO 2. I SISTEMI A CODA
Si ha inoltre che, a parità di qualità di servizio, un sistema di grandi dimensioni fa un migliore uso dei
suoi servitori. Per questo è sempre conveniente raggruppare il traffico.
ESERCIZIO:
Scenario: centralino. Utenti da servire pari a 100, traffico per utente pari a 0,05 Erlang, modello a
perdita, probabilità di perdita/blocco da mantenere inferiore all’1%.
100 · 0, 05 = 5 Erlang
B(m, 5) < 0, 01
Utilizzando lo script già sperimentato nell’esercizio precedente, oppure calcolando per tentativi la B di Erlang, si
ha:
m = 11
Utilizzazione dei collegamenti?
As A0 (1 − π p ) A (1 − B(11, 5))
ρ= = = 0
m m m
Calcoliamo la B di Erlang con lo scriptino magico seguente:
function [p] = bErlang(m,A0)
p = 1;
for i=1:m
p = (A0*p)/(i+A0*p);
end
e otteniamo:
A0 (1 − B(11, 5)) 5 · (1 − 0, 0083)
ρ= = = 0, 4508
m 11
Probabilità di blocco e rendimento nel caso di un collegamento fuori servizio?
In pratica si chiede di rieffettuare i calcoli del punto precedente con m = 10. Senza bisogno di una gran
immaginazione:
• La probabilità di blocco aumenterà. E che caspita: è morto un servitore!
• L’utilizzazione dei servitori aumenterà, perché quelli rimasti dovranno in parte sopperire alla scomparsa di
uno di loro. É infatti vero che in ρ è presente, al numeratore, il parametro (1 − π p ) (e dunque l’aumento
di π p contribuisce a diminuire ρ), tuttavia m - al denominatore - è passato da 11 a 10!
E infatti. . .
π p = B (10, 5) = 0, 0183
A0 1 − π p 5 (1 − 0, 0183)
ρ= = = 0, 49
m 10
Probabilità di blocco e rendimento nel caso di aumento del 10% del traffico?
A00 = A0 · 1, 1 = 5, 5
14
CAPITOLO 2. I SISTEMI A CODA 15
Dunque:
B(11, 5.5) = 0, 0144
ESERCIZIO:
Due centrali telefoniche collegate da m = 80 canali, sistema a perdita. A un certo punto il traffico
sale a A0 = 80 Erlang. Obiettivo di qualità: mantenere il traffico perduto A p < 1 Erlang. Quanti canali
bisogna aggiungere nel caso di:
1. canali aggiuntivi indistinguibili da quelli pre-esistenti: in questo caso, per garantire il requisito di qualità,
dobbiamo applicare la B di Erlang e moltiplicare per il traffico offerto.
A p = B(m + x, A0 ) · A0 < 1
Utilizzando lo script in Matlab già esposto in altri esercizi oppure consultando le tabelle si ha:
m + x = 95
Da cui, sapendo noi che m = 80:
x = 15
2. canali aggiuntivi contenuti in un fascio separato (ipotesi di traffico Poissoniano anche su di loro):
in questo caso, anzitutto, dobbiamo capire quanti Erlang vengono mediamente rifiutati (ricordiamo che il
sistema è a chiamate bloccate/cancellate) sulla linea avente m = 80, dopodiché utilizzeremo tale parametro
per dimensionare l’altro fascio di collegamenti. Volenti o nolenti, ci serve nuovamente la B di Erlang:
traffico perso nella prima linea: A p1 = A0 B (m, A0 ) = 80 · B (80, 80) = 6, 73
Con la stessa formula calcoliamo le linee che servono nel secondo collegamento, imponendo:
A p = B ( x, 6.73) · 6.73 < 1
Si ottene infine:
x=9
Ma come! - verrebbe da sbottare - abbiamo sempre detto che conviene concentrare il traffico e ora invece
appare più conveniente separarlo? Bisogna però tenere presente che questo punto soggiace all’ipotesi di
traffico Poissoniano su entrambe le vie: nella realtà quest’ipotesi è errata, in quanto si dimostra che il traffico
sul secondo fascio di cavi è di tipo peaky (cioè con una varianza maggiore del valor medio). Questo si deve
al fatto che, se un utente trova il sistema occupato, gli utenti che lo seguono hanno maggior probabilità di
trovare anche loro occupato rispetto ad utenti scelti a caso: ne risulta perciò un traffico molto più correlato
di quello Poissoniano. Il numero di giunzioni che - nel mondo reale - sarebbe necessario fornire in questo
secondo punto dell’esercizio continua dunque ad essere pari a 15. Pazienza.
15
16 CAPITOLO 2. I SISTEMI A CODA
ESERCIZIO:
Sistema a coda con 5 servitori indipendenti e occupati all’istante t0 = 0, distribuzione esponenziale
negativa per il tempo di servizio, ϑ̄ = 10 minuti, nessun ulteriore arrivo.
Tempo medio necessario per il completamento del servizio del primo cliente?
Domanda che a una prima lettura sembra banale ma che invece nasconde un sottile trabocchetto. Si potrebbe
infatti pensare che tale tempo medio sia pari a ϑ̄ = 10 minuti, ma questo non è vero perché abbiamo in campo non
uno, bensì cinque servitori indipendenti e tutti quanti impegnati (non si sa da quanto). La variabile esponenziale
negativa è senza memoria, certo, ma risulta intuitivo il fatto che a un maggiore numero di utenti all’interno del
sistema farà da controcanto una maggiore probabilità di ’veder uscire presto’ qualcuno, ovvero colui che nel testo
dell’esercizio viene chiamato ’il primo cliente’. Se all’interno del sistema è presente un solo utente, questo uscirà
mediamente dopo 10 minuti; ma se gli utenti fossero un milione, e giungendo noi ad esaminare il sistema in un
qualsiasi istante, è molto probabile che il primo termini di essere servito lì a pochi millisecondi. Numericamente
abbiamo che, siccome k = 5, la frequenza di morte sarà 5µ e dunque:
1
ϑ̄1 = = 2 minuti
5µ
Risulta chiaro che sistemi del genere, non avendo un numero infinito di servitori, non possono reggere
qualunque tipo di frequenza d’arrivo da parte degli utenti: se questi arrivano troppo velocemente, infatti,
non si è abbastanza veloci per servirli tutti e si finisce per ingrossare la coda fino all’infinito. Il limite entro
il quale ciò non accade, e per cui il sistema è stabile, è il seguente:
A0 λ
ρ= = <1
m mµ
Quest’ultima viene detta condizione di stabilità e deve essere verificata perché il sistema non collassi. Spesso
questa condizione è utilizzata negli esercizi, dunque è bene tenerla a mente.
Le probabilità di stato sono:
! −1
m −1 A l A0m A0k
m
∑ l!
0
+ per 0 ≤ k < m
m! m − A0
l =0
k!
Pk = ! −1
m −1 A l A0m A0k
m
∑ l! m! m − A0
0
per k ≥ m
+
m!mk−m
l =0
La probabilità di congestione, ovvero l’eventualità che un cliente entri nel sistema e trovi tutti i servitori
impegnati venendo quindi messo in attesa, è pari a:
! −1
A0m m −1 A k A0m
m m
m! m − A0 k∑
0
πr = + = C (m, A0 )
=0
k! m! m − A0
16
CAPITOLO 2. I SISTEMI A CODA 17
Tale funzione è altresì denominata formula C di Erlang. Può essere ricorsivamente ricavata nel seguente
modo:
−1
m − A0 m − 1 − A0 C (m − 1, A0 )
C (m, A0 ) = 1 +
m (m − 1 − A0 ) C (m − 1, A0 )
Acquisendo pratica negli esercizi si noterà che, per qualunque valore di m e A0 , la C di Erlang ha valori
superiori alla B di Erlang. Ciò si può intuitivamente spiegare dicendo che nel sistema con attesa il traffico
risulta superiore, per cui maggiore sarà la probabilità di trovare i servitori impegnati.
Il numero medio di utenti in coda è
A0
Ac = C (m, A0 )
m − A0
Ac ϑ̄
η̄ = = C (m, A0 )
λ m − A0
A ϑ̄
δ̄ = = ϑ̄ + C (m, A0 )
λ m − A0
Come già abbiamo detto (vedi paragrafo 2.1), il tempo medio speso in coda condizionato al fatto che
facciamo la coda sarà leggermente più alto di η̄ e pari a:
ϑ̄
ε̄ =
m − A0
Concludiamo questa parte sui sistemi M/M/m dando le seguenti funzioni cumulative:
Fε (t) = 1 − e−(mµ−λ)t
ESERCIZIO:
Tempo medio di servizio ϑ̄ = 3 minuti, traffico offerto A0 = 21 Erlang, coda infinita, probabilità di
passare meno di ε 0 = 3 minuti in coda (sapendo di essere in coda) maggiore o uguale al 90%. Trovare
m, cioè il numero di servitori, e il tempo medio speso in coda η̄ (non sapendo a prescindere se andremo
in coda)
Bene bene, questo è il tipico esempio di sistema M/M/m. Siccome non è sicuramente di tipo M/M/1
(vedi paragrafo 2.5), visto che m è in maniera intuitiva molto maggiore di 1, dovremo giocoforza utilizzare la C
di Erlang. In particolare, faremo riferimento alla formula:
17
18 CAPITOLO 2. I SISTEMI A CODA
Questa funzione cumulativa permette di ricavare la probabilità di passare meno di t minuti in coda: sostituendo
i dati otteniamo
1 − e−(mµ−λ)t > 0, 9
−1 − A −1
e−(mϑ̄ )ε 0 < 0, 1
0 ϑ̄
− mϑ̄−1 − A0 ϑ̄−1 ε 0 < ln 0, 1
− (m · 0, 3̄ − 21 · 0, 3̄) · 3 < ln 0, 1
ln 0, 1
7 − m · 0, 3̄ <
3
7 ln 0, 1 7
m> − = − ln 0, 1 = 23, 34
0, 3 3 · 0, 3̄ 0, 3
m > 24
Ora che abbiamo una specifica su m possiamo lanciarci nel calcolo di η:
ϑ̄
η̄ = C(m, A0 )
m − A0
Per calcolare la C di Erlang può essere utile il seguente script Matlab:
function [C] = cErlang(m,A0)
sum = 0;
for i=0:(m-1)
sum = sum + (A0^i)/factorial(i);
end
C = (((A0^m)/factorial(m))*(m/(m-A0)))/(sum+(((A0^m)/factorial(m))*(m/(m-A0))));
Sfruttando a piene mani i potenti mezzi informatici per risolvere la nostra equazione abbiamo:
3
η̄ = 0, 4249 · = 0, 4249 minuti
24 − 21
ESERCIZIO:
Scenario: centralino a commutazione di circuito (sistema a coda con numero finito di servitori →
sistema M/M/m). Utenti: 500. Traffico/utente = 0.01 Erlang. Durata media della chiamata ϑ̄ = 5
minuti. Servitori: 11.
1. Probabilità di ritardo?
A0 = 500 · 0, 01 = 5 Erlang
C(11, 5) = 0, 0151
18
CAPITOLO 2. I SISTEMI A CODA 19
per ottenere
A0
Ac|coda = = 0, 83
m − A0
C(10, 5) = 0, 0361
Nel caso di 6 collegamenti fuori servizio dovremmo calcolarci la C(5,5), ma non ha neppure senso provarci:
è infatti intuitivo che il sistema, in tal caso, è instabile e presenta una coda che si allunga all’infinito (i
servitori sono troppo pochi). La prova matematica di quanto detto è la non sussistenza della seguente
disequazione di stabilità/stazionarietà:
A0
ρ<
m
ESERCIZIO:
Commutatore a pacchetto, 10 uscite, coda infinita d’attesa sulle uscite, ogni uscita è servita da 2
linee a C = 64.000 bit/s, arrivi poissoniani sulle linee di ingresso: λi = 1 pacchetti/secondo, pacchetti
distribuiti uniformemente sulle uscite, lunghezza media dei pacchetti D = 64.000 bit.
Numero massimo Nmax di linee in ingresso al commutatore affinché il tempo medio di permanenza
non superi i 2 secondi?
Esercizio un po’ meno convenzionale del solito, questo. Qualche considerazione preliminare:
• il commutatore a pacchetto ha un numero finito di servitori e una coda infinita: tutto questo dice a gran
voce ’C di Erlang’;
• la cosa ’difficile’ di questo esercizio è comprendere la topologia del nostro dispositivo: abbiamo un commu-
tatore con Nmax (da dimensionare) linee di ingresso e 10 linee di uscita, ognuna con 2 servitori. Modellare
il sistema come un M/M/20/∞ è però un po’ scomodo. . .
• . . . e infatti, siccome tutti i buffer d’uscita sono uguali ed il traffico viene equiripartito in modo uniforme, il
δ̄ nel sistema coincide con il δ̄ di ogni buffer. Per questo conviene scindere il sistema in dieci sotto-sistemi
di tipo M/M/2/∞;
19
20 CAPITOLO 2. I SISTEMI A CODA
• a questo punto l’unica accortezza è quella di ’scalare’ i parametri λ, per renderli conformi ai sotto-sistemi,
e di procedere con le solite formule.
Ciò che dobbiamo trovare ha espressione:
A ϑ̄
δ̄ = = ϑ̄ + C (2, A0 )
λ m − A0 | {z }
sistema M/M/2
Tra l’altro la disequazione di stazionarietà (Nmax < 20) ci assicura che il denominatore della relazione in Nmax
sia sicuramente positivo! Possiamo quindi gioiosamente scrivere:
2
Nmax
1<
200
2
Nmax < 200 ⇒ Nmax < 14, 1 ⇒ 14 linee in ingresso
20
CAPITOLO 2. I SISTEMI A CODA 21
ρ = πr
ρk ρ <1
Pk = +∞
−−→ (1 − ρ) ρk
∑ ρk
k =0
A ϑ̄ 1
δ̄ = = =
λ 1−ρ µ−λ
Il numero medio di utenti in servizio è As = ρ, per cui il numero di utenti in coda risulta:
ρ2
Ac =
1−ρ
Infine si ha:
Ac ρ
η̄ = = ϑ̄
λ 1−ρ
ϑ̄ 1
ε̄ = =
1−ρ µ−λ
Anche se può sembrare strano, le seguenti densità di probabilità per e δ coincidono:
Questo risultato non ha una semplice spiegazione fisica, ed è comunque limitato al caso particolare di
sistema M/M/1.
Enunciamo infine il teorema di Burke, in base al quale le partenze da un sistema M/M/1 sono un
processo di Poisson con valor medio pari a λ−1 . Questo ci permette di utilizzare tale tipo di sistemi per
studiare multiplatori statistici: essi si compongono di un insieme di linee di ingresso, sulle quali vengono
trasmesse informazioni a pacchetto, che vanno inoltrate su di una unica linea di uscita (a divisione di
tempo). Per risolvere i casi in cui un pacchetto arriva su di una linea quando un altro è in corso di
trasmissione è necessario prevedere una coda d’attesa. Se gli arrivi dei pacchetti si possono rappresentare
come un processo di Poisson ed i tempi di trasmissione sono approssimativamente esponenziali, allora il
modello a M/M/1 è perfetto per studiare il comportamento del multiplatore.
ESERCIZIO:
Multiplatore a pacchetto, due linee d’uscita a C = 2 Mbit/s, due ingressi con arrivi poissoniani
λ1 = 10 pacc/s e λ2 = 20 pacc/s, code di lunghezza infinita, pacchetti di lunghezza media D = 40 Kbit.
21
22 CAPITOLO 2. I SISTEMI A CODA
1. CASO 1: una linea ↔ una coda. Pacchetti in ingresso distribuiti in maniera uniforme sulle due
code. Tempo medio speso nel sistema?
Una cosa che possiamo anzitutto calcolare è il tempo medio di servizio: esso è pari a
D 40 Kbit
ϑ̄ = = = 20 ms
C 2 Mbit
Il trucco per risolvere quest’esercizio è quello di scindere il nostro sistema in due sottosistemi M/M/1.
Questa metodologia - quando può essere applicata - è super-consigliata, per più di un motivo:
• le formule da ricordare sono molto più elementari;
• ridurre un sistema a più sottosistemi è semplice perché basta rimodulare i parametri λ ed eventualmente
A0 ;
• è l’unica scelta possibile quando vi sono servitori che lavorano con ritmi e traffici diversi;
• non c’è bisogno di calcolare la pallosissima C di Erlang;
• NOTA: questo trucchetto è possibile solo quando ogni servitore dispone di una propria coda!
Nel nostro caso, per ricomporre il sistema di partenza, sarà poi necessario effettuare delle medie pesate per
i parametri in gioco.
In questo primo punto ogni pacchetto, qualsiasi sia l’effettiva coda d’ingresso, ha un 50% di probabilità di
finire in una delle due code d’uscita. Questo significa che si ha:
in 1 50% → → out 1
50% & %
50% % &
in 2 50% → → out 2
Dunque ogni uscita riceverà pacchetti con una frequenza:
10 + 20
λ̃ = = 15 pacc/s
2
Ecco che possiamo quindi determinare δ̄:
1
δ̄ = = 0, 0286
µ − λ̃
2. CASO 2: una linea ↔ una coda. Pacchetti in arrivo da un prefissato ingresso finiscono sempre
nella stessa coda. Tempo medio speso nel sistema?
in 2 100% → → out 2
Dobbiamo quindi conservare i λi che ci vengono dati nel testo ed effettuare due conti distinti:
1
δ̄1 = = 0, 025 s
µ − λ1
1
δ̄2 = = 0, 034 s
µ − λ2
Infine, effettuiamo la media pesata:
δ̄ = P1 δ̄1 + P2 δ̄2
Siccome dalla linea 1 e dalla linea 2 arrivano rispettivamente 1/3 e 2/3 dei pacchetti totali si ha:
1 1 2 1
δ̄ = + = 0, 0306 s
3 µ − λ1 3 µ − λ2
22
CAPITOLO 2. I SISTEMI A CODA 23
3. CASO 3: unica coda in cui vengono memorizzati e dalla quale vengono tratti tutti i pacchetti.
Tempo medio speso nel sistema?
In questo caso non è possibile scindere il sistema in due M/M/1 perché i due servitori fanno capo ad
un’unica coda. Rassegnamoci quindi al M/M/2, che avrà
λ = λ1 + λ2 = 30 pacc/s
Il traffico offerto è:
A0 = λϑ̄ = 0, 6 E
ϑ
δ̄ = ϑ + C(2, 0.6) = 0, 022 s
m − A0
Cosa abbiamo imparato? Che la condivisione dei servitori, per mezzo di un’unica coda di attesa, risulta vantaggiosa
in termini di prestazioni. Questo è quindi un altro esempio che rientra nel risultato generale che ci dice che la
condivisione delle risorse risulta in generale conveniente rispetto ad una loro ripartizione.
ESERCIZIO:
Sistema a coda con un’unica coda d’attesa di lunghezza infinita. Due flussi di traffico:
• ϑ̄1 = 0, 1, λ1 = 6 pacc/s;
Due servitori: S1 serve solo i clienti di tipo 1, S2 solo quelli di tipo 2. Ciascun servitore può servire i
pacchetti a lui corrispondenti indipendentemente dal fatto che vi siano o meno pacchetti dell’altro tipo
in attesa di essere serviti.
Probabilità che nel sistema siano presenti k1 = 4 clienti di tipo 1 e k2 = 2 clienti di tipo 2?
Il fatto che l’esercizio specifichi l’esistenza di un’unica coda di lunghezza infinita potrebbe indurre a credere che
sia obbligatorio l’uso delle formule per la risoluzione dei sistemi M/M/m (con m > 1 e pari a 2, nello specifico).
In realtà ogni servitore, trattando solo una tipologia di pacchetti e potendo lavorare indipendentemente dalla
presenza in coda di pacchetti dell’altro tipo, è come se fosse virtualmente dotato di coda (di lunghezza infinita).
Dunque è opportuno scindere il sistema in due sotto-sistemi più semplici di tipo M/M/1. I traffici offerti sono:
• A0 1 = ρ1 = λ1 ϑ̄1 = 0, 1 · 6 = 0, 6 E;
• A0 2 = ρ2 = λ2 ϑ̄2 = 0, 08 · 10 = 0, 8 E.
si ha:
• sistema 1: P4 = ρ41 (1 − ρ1 )
• sistema 2: P2 = ρ22 (1 − ρ2 )
1 Formula valida se ρ < 1, cioè se il sistema è stazionario.
23
24 CAPITOLO 2. I SISTEMI A CODA
Punto un po’ più arduo da dipanare, questo: siccome i clienti possono essere di qualunque tipo dovremo
considerare la probabilità
5 5
∑ Pksistema 1 · P5sistema
−k
2
= ∑ (1 − ρ1 ) ρ1k (1 − ρ2 ) ρ52−k
k =0 k =0
Il più, ora, è fare i calcoli.
ESERCIZIO:
Due tipi di dati per l’Unibo:
• traffico scientifico: λ1 = 100 pacc/s, requisito: δ̄ < 0, 5 s;
• traffico amministrativo: λ2 = 2 pacc/s, requisito: ε̄ > 0, 5 s con probabilità inferiore all’uno per
mille. Pacchetti di 8000 bit, noleggiati C = nC0 bit/s (C0 = 64000 bit/s) al prezzo di 6 milioni di
vecchie lire ogni C0 . Offerta speciale: 32C0 (2,408 Mbit/s) a soli 90 milioni.
Due possibili scelte:
• unire i due flussi in un unico collegamento (opzione 1);
• separare i due flussi in parallelo (opzione 2). In questo caso si aggiungono 6 milioni di spesa per
le apparecchiature di interfaccia. Si scelta l’opzione più vantaggiosa.
24
CAPITOLO 2. I SISTEMI A CODA 25
Tanto paga l’Unibo. Si noti che sia in questo punto che nel prossimo abbiamo avuto e avremo a che fare
con due sistemi M/M/1.
2. Separiamo ora i due flussi, considerando due diversi parametri di qualità. Iniziamo col traffico dati:
µ1 = 8n1
1 1
δ̄ = = 6 0, 5
µ1 − λ1 8n1 − λ1
n1 > d12, 75e = 13
Fin’ora, quindi, il costo è di:
Passiamo ora al traffico amministrativo: il vincolo che dobbiamo adottare è quello già usato nel punto
precedente.
µ2 = 8n2
e−(µ2 −λ2 )0,5 6 0, 001
...
1 ln 0, 001
n2 > − −2 =2
8 0, 5
Dunque dobbiamo aggiungere altri 12 milioni al nostro conto, che s’ingrossa fino a 96 milioni.
In conclusione l’opzione 1 risulta migliore: l’aggregazione del traffico, come regola di buona progettazione, prevale
ancora! Tra l’altro si può, sempre per quanto riguarda l’opzione 1, propendere per l’offerta speciale (2,408 Mbit/s
a soli 90 milioni): tale portata corrisponde a 32 linee, mentre per soddisfare i requisiti ne basterebbero - come
abbiamo visto - solo 15. Questo, com’è evidente, comporta un notevolissimo beneficio in termini di qualità.
25
26 CAPITOLO 2. I SISTEMI A CODA
ESERCIZIO:
Centralino aziendale con operatore. Tempo medio di servizio = 15 secondi. Frequenza delle chia-
mate in arrivo λ = 3, 2 chiamate/minuto.
2. Funzione di messa in attesa (coda lunga L). Trovare L perché la probabilità di perdita sia inferiore
al 5%.
4. Conviene aumentare L?
1 − A0
πp = A0L+1
1 − A0L+2
1 − 1, 2
πp = 1, 28 = 0, 207
1 − 1, 29
1 − A0
πp = A0L+1
1 − A0L+2
26
CAPITOLO 2. I SISTEMI A CODA 27
27
28 CAPITOLO 2. I SISTEMI A CODA
28
Capitolo 3
Altri esercizi
1 6 0, 5 (5 − λ)
1 6 2, 5 − 0, 5λ
−1, 5 6 −0, 5λ
3 > λ = λi M
3 3
M6 = = 12
λi 15/60
Come si nota, si poteva cadere nel tranello non notando che λi viene dato in pacchetti/minuto,
mentre noi facciamo riferimento ai secondi.
A0 = ϑ̄λ = 0, 2 · 0, 25 · 12 = 0, 6 E
ρ2
Ac =
1−ρ
1 Scegliamo ovviamente M = 12.
29
30 CAPITOLO 3. ALTRI ESERCIZI
D
Dove ρ = A0 = λϑ̄ = 8 · = 0, 8 E. Sostituendo i numerelli:
C
0, 64
Ac = = 3, 2
1 − 0, 8
• La densità di probabilità f b|k ( x ) della quantità di memoria occupata b, condizionata alla presenza
di k pacchetti nel sistema.
Ecco, questa è una domanda cazzuta. Anzitutto dobbiamo discriminare due casi:
– k ≤ 1: questo significa che il numero di pacchetti all’interno del sistema è pari a zero (e quindi
non c’è nessuno, ma proprio nessuno!) oppure che è presente un pacchetto, che tuttavia non
sarà in coda perché è in servizio. In questo caso la distribuzione di probabilità per la funzione
f b|k ( x ) sarà una delta di Dirac centrata in zero. Abbiamo infatti probabilità 1 che la memoria
occupata sia nulla e probabilità nulla per tutte le altre evenienze di b ∈]0, +∞];
– k ≥ 1: in tal caso la quantità di memoria impegnata è una variabile aleatoria pari alla somma
di k − 1 variabili aleatorie identiche ed esponenziali di valor medio D. La relativa densità di
probabilità è, in questo caso:
k −1
x k −2 − x
1
f b|k ( x ) = e D
D ( k − 2) !
Si ha quindi:
∞ k −1
x k −2 − x
1
f b ( x ) = ( P0 + P1 ) · δ ( x ) + ∑ (1 − ρ ) ρ k
·
D ( k − 2) !
e D
k =2
Z∞ 32678
Z
Psoluzione = Fb ( x ) dx = 1 − Fb ( x ) dx
32678 0
• Cg = 150000 lire/mese per il canone di noleggio delle linee di giunzione fra centralini;
30
CAPITOLO 3. ALTRI ESERCIZI 31
A B C Esterno (E)
A - 5 3 30
B 10 - 2 12
C 10 2 - 12
Esterno (E) 30 12 12 -
Tabella 3.1
2. come sopra, ma B e C non possono essere collegati direttamente fra loro e devono appoggiarsi ad
A;
1. In questo caso dobbiamo calcolare diverse B di Erlang basandoci sulla tabella. Il sistema è a maglia
completa quindi ogni centralino è collegato con tutti gli altri e con l’esterno. I calcoli sono riportati
in tabella 3.2.
Tabella 3.2
C1 = Ca (m A + m B + mC ) + Cg (m AB + m AC + m BC ) + Ct (30 + 12 + 12) =
| {z } | {z } | {z }
affitto verso l’esterno affitto linee inter - aziendali traffico verso l’esterno
= 145 · 30000 + 56 · 150000 + 54 · 250000 = 26250000 lire/mese
2. In questo caso vengono aggregati alcuni flussi (che prendono a passare per A). I calcoli sono riportati
in tabella 3.3. Il costo totale risulterà quindi essere:
Tabella 3.3
C2 = Ca (m A + m B + mC ) + Cg (m AB + m AC ) + Ct (30 + 12 + 12) =
| {z } | {z } | {z }
affitto verso l’esterno affitto linee inter - aziendali traffico verso l’esterno
= 145 · 30000 + 56 · 150000 + 54 · 250000 = 26250000 lire/mese
Apparentemente questo risultato può sorprendere. In realtà non c’è nulla di sbagliato, in quanto il
fatto che ciascuna chiamata da B a C impegni due linee dedicate invece che una (fattore di aumento
del congestionamento) viene compensato dall’affasciamento del traffico (fattore di contenimento del
numero di servitori). Con i valori in gioco, e in questo caso, si ottiene il medesimo risultato numerico.
3. In questa terza e ultima scelta si delega alla rete esterna lo smistamento di tutti i pacchetti. I calcoli
sono riportati in tabella 3.4.
31
32 CAPITOLO 3. ALTRI ESERCIZI
Tabella 3.4
C3 = Ca (m A + m B + mC ) + Ct (30 + 12 + 12 + 10 + 10 + 5 + 2 + 3 + 2) =
| {z } | {z }
affitto verso l’esterno traffico verso l’esterno
= 215 · 30000 + 54 · 250000 = 27450000 lire/mese
λk = λ ∀k
µk = µ ∀k
tuttavia questo sarebbe esatto solo se quelli che si trovano in coda attendessero all’infinito. In realtà,
com’è giusto che sia, coloro che vengono messi in attesa dopo un po’ si rompono le scatole e se ne
vanno dal sistema con le pive nel sacco, senza essere serviti dall’operatore. Dunque quelli che escono
dal sistema sono in maggior numero rispetto a quelli che avremmo se fosse vero che µk = µ, ∀k.
Come, quindi, andare avanti? L’approccio corretto è anche quello più intuitivo: bisogna immaginare
che coloro che si trovano in coda siano in realtà serviti da una moltitudine2 di servitori fittizi che
si occupano. . . di condurli alla ’morte’. Il tempo medio di servizio (dove il servizio è l’attesa prima
della morte o dell’accesso all’operatore) è pari a ξ̄ = 2 min, che guarda caso è lo stesso tempo di
servizio di chi viene servito veramente, dunque si ha:
32
CAPITOLO 3. ALTRI ESERCIZI 33
Tenendo presente quanto appena detto, cioè che possiamo vedere il sistema a un servitore con
coda come un sistema a infiniti servitori dove solo chi ha il servitore giusto (quello vero) viene
servito davvero mentre gli altri se ne vanno incazzati neri, il numero medio di utenti nel sistema è
semplicemente:
30
A = A0 = · 2 = 0, 5 · 2 = 1 E
60
Quanti sono gli utenti mediamente in coda? Dobbiamo sfruttare la definizione:
∞
ζ̄ = ∑ ζPζ
ζ =−∞
Si deve però prestare attenzione al fatto che, se consideriamo la probabilità di stato k-sima, abbiamo:
• k utenti complessivamente nel sistema;
• k − 1 utenti in coda. E dobbiamo effettuare la media rispetto a questo parametro!
Dunque si ha:
∞ ∞ ∞
Ac = ∑ (k − 1) Pk = ∑ kPk − ∑ Pk = A0 − (1 − P0 ) = 1 − 1 + e− A0 = e−1
k =1 k =1 k =1
33
34 CAPITOLO 3. ALTRI ESERCIZI
D 8192
• il tempo medio di servizio (trasmissione): ϑ̄ = C = 2048000 = 4 ms;
• la frequenza di servizio: µ = ϑ̄−1 = 250 pacchetti/s;
• il traffico offerto verso le reti A e B è:
A0A = ρ A = ϑλ A = 0, 8 E
A0B = ρ B = ϑλ B = 0, 6 E
A questo punto possiamo considerare i due sottosistemi M/M/1 costituiti rispettivamente dalle
linee A e B, che hanno probabilità di stato:
PkA = ρkA (1 − ρ A )
PkB = ρkB (1 − ρ B )
Dunque:
∞ ∞
Qk = ρkA (1 − ρ A ) ∑ ρiB (1 − ρ B ) + ρkB (1 − ρ B ) ∑ ρiA (1 − ρ A )
i = k +1 i =k
Scritta così è bruttina, ma c’è un barbatrucco micidiale (che non avrei mai individuato senza le
soluzioni): spezziamo la seconda sommatoria
∞ ∞
Qk = ρkA (1 − ρ A ) ∑ ρiB (1 − ρ B ) + ρkB (1 − ρ B ) ∑ ρiA (1 − ρ A ) + ρkA (1 − ρ A ) ρkB (1 − ρ B )
i = k +1 i = k +1
2. Calcolare la probabilità di blocco πc ed il tempo medio complessivo speso nel router δ̄C per i
pacchetti diretti a C.
A questo punto la probabilità di blocco per un pacchetto diretto a C è banale: trattasi infatti della
probabilità che vi siano entrambe le linee occupate con almeno un pacchetto in entrambe, dunque
πc = 1 − Q0 = ρ A ρ B = 0, 48
Per quello che riguarda il tempo medio speso in coda, dobbiamo utilizzare l’ipotesi tale per cui
il traffico diretto verso C è trascurabile se confrontato con quello di A e B4 . Questo significa che i
3 TA-DAAAH!
4 Inoltre esso viene diluito fra entrambe le vie, dunque il suo apporto è effettivamente piuttosto ridotto.
34
CAPITOLO 3. ALTRI ESERCIZI 35
pacchetti verso C sono accodati praticamente solo con pacchetti diretti ad A o a B. Dunque dobbiamo
applicare la formula
∞
ζ̄ = ∑ ζPζ
ζ =−∞
nella seguente maniera, ricordando cioè che il parametro (k + 1) inserito tiene conto dei k pacchetti
di A o B e di quello (+1) di C:
∞ ∞ ∞
δ̄C = ϑ̄ k̄coda = ϑ̄ ∑ Qk (k + 1) = ϑ̄ ∑ (ρ A ρB )k (1 − ρ A ρB ) (k + 1) = ϑ̄ (1 − ρ A ρB ) ∑ (ρ A ρB )k (k + 1) =
k =0 k =0 k =0
∞
k +1= h 1 ϑ̄
−−−−→ ϑ̄ (1 − ρ A ρ B ) ∑ h (ρ A ρB )h−1 = ϑ̄ (1 − ρ A ρB ) (1 − ρ 2
=
1 − ρ A ρB
h =0 A ρB )
3. Determinare la densità di probabilità f δ (t) del tempo speso nel router dai pacchetti diretti a C e
calcolare la probabilità Pd che un pacchetto spenda nel router più di 20 ms.
Per quest’ultimo quesito si ha:
∞ ∞
(µt)k −µt
fδ = ∑ Qk f δ|k (t ) = ∑ ( ρ A ρ B ) k (1 − ρ A ρ B ) µ
k!
e =
k =0 k =0
primitiva
= µ (1 − ρ A ρ B ) e−(1−ρ A ρB )µt −−−−−→ e−(1−ρ A ρB )µt
Dunque:
h i∞
Pδ = Pr {δ > t = 20 ms} = e−(1−ρ A ρB )µt = 0, 0743
20 ms
B(7, A0 ) < 0, 01
Da cui si ha A0 ≤ 2, 5 E.
2. Valutare il costo di: 1. giunzioni tutte affittate, 2. affitto in una centralina e traffico a consumo
nell’altra, 3. tutto traffico a consumo.
Gli altri due casi sono più complessi, perché bisogna calcolare il tempo medio d’utilizzazione per
il calcolo del traffico a consumo. Per farlo dobbiamo sfruttare l’ergodicità del sistema: siccome le
35
36 CAPITOLO 3. ALTRI ESERCIZI
statistiche sul tempo d’uso devono essere uguali alle statistiche sulla presenza di utenti, calcoliamo
la probabilità che vi siano k utenti all’interno del sistema (cioè le probabilità di stato):
A0k
Pk = P0
k!
La P7 è semplicemente la B(7,2.5) = 0,01 (dalle tabelle). Per le altre probabilità si è usato Matlab e il
seguente script
P0c = P0 = 0, 082
P1c = 1 − P0 = 0, 918
Dunque il numero medio di secondi in cui saranno occupate le due centraline è pari a:
I costi complessivi saranno quindi quelli riportati in tabella 3.5. Come mai la seconda delle tre
tariffe è la più conveniente? Perché la grande utilizzazione della prima centralina rende conveniente
il pagamento del canone d’affitto, mentre la più scarna utilizzazione della seconda fa sì che sia
preferibile optare per il traffico a consumo.
Tabella 3.5
36
CAPITOLO 3. ALTRI ESERCIZI 37
Si dice che δ1 è distribuito casualmente fra 0 e T0 : non c’è ragione perché sia più probabile che il
pacchetto debba attendere per determinati periodi di tempo piuttosto che per altri. Dunque consi-
dereremo la distribuzione di probabilità f 1 (t) uniforme in [0, T0 ]. Per quanto riguarda il tempo δ2 ,
dobbiamo scrivere quello tipico del sistema M/M/1:
f 2 (t) = (µ − λ)e−(µ−λ)t
2. Valor medio di ξ?
Il valor medio di δ1 sarà 0,5 mentre quello di δ2 sarà µ−1 λ . Il valor medio di ξ sarà la somma dei
valori medi di δ1 e δ2 :
T0 1
ξ̄ = + = 1, 5 secondi
2 µ−λ
3. Densità di probabilità di ξ?
Siccome abbiamo sommato due variabili aleatorie indipendenti, la distribuzione di probabilità della
somma sarà la convoluzione delle densità di probabilità.
Zt
1
(µ − λ) e−(µ−λ)(t− x) dx, da 0 a T0
T0
0
f ζ (t) = f 1 (t) ∗ f 2 (t) =
ZT0
1 −(µ−λ)(t− x )
T0 (µ − λ) e dx, oltre T0
0
t
µ−λ e−(µ−λ)t
e(µ−λ) x
e−t et − 1 , per t 6 T0
T0 µ−λ
= |{z} | {z } =
=1 =1 0 e−t e T0 − 1 , per t > T0
" # T0
e−(µ−λ)t
µ−λ
e(µ−λ) x
T
0 µ−λ
0
37
38 CAPITOLO 3. ALTRI ESERCIZI
centralini –> si finisce nella rete pubblica e si occupano 64 Kbit/s per ogni chiamata (traffico non
compresso). Traffico fra gli stabilimenti: A0 = 3 Erlang. Canone d’affitto delle giunzioni: C M =
1.400.000 lire/centralina/anno. Costo delle chiamate: c = 1 lira/s. Traffico pari al valore massimo per
150 ore/mese, nulla altrove.
C0 = CE · A0 = 1.620.000 lire/mese
Ma allora, si potrà dire, perché non abbiamo moltiplicato per il traffico in Erlang anche le cifre
dell’esercizio 5.17? Il fatto è che non ve n’era bisogno, in quanto l’informazione sul traffico era già
presente all’interno delle probabilità di stato Pk (per le quali anche allora abbiamo moltiplicato il
numero di secondi in 150 ore).
2. Caso di una sola linea equipaggiata con sistema di compressione. Calcolare il traffico smaltito
dalla rete e quello che finisce nella rete pubblica.
Questo caso è equivalente ad un sistema M/M/∞: nessuno viene infatti rifiutato e, tuttavia, vi sarà
chi occuperà 16 Kbit/s e chi 64 Kbit/s. In questo caso la probabilità di stato è:
A0k
Pk = P0
k!
Quanto traffico viene smaltito? Bisogna ricordare che nel caso M/M/m (il sottosistema della linea
compressa, caratterizzato da m = 3) il traffico medio smaltito è pari al numero medio di utenti
serviti. Si ha quindi:
∞
AS = P1 + 2 · P2 + 3 · ∑ Pk = P1 + 2 · P2 + 3 · (1 − P0 − P1 − P2 ) = 2, 33 E
i =3
At1 = 3 − 2, 33 = 0, 67 E
3. Stessa cosa del punto precedente, ma prima con 2 e poi con 3 linee a compressione.
Non cambia nulla di nulla: grazie al fatto che si ha il call packaging possiamo considerare il sistema
come un M/M/m (con m = 6; 9 rispettivamente) e impostare una relazione simile a quella del
punto precedente.
∞
!
5 5 5
AS2 = ∑ iPi + 6 · ∑ Pk = ∑ iPi + 6 · 1 − ∑ Pi = 2, 95 E ⇒ A T2 = 0, 05 E
i =0 i =6 i =0 i =0
∞
!
8 8 8
AS3 = ∑ iPi + 9 · ∑ Pk = ∑ iPi + 9 · 1 − ∑ Pi ≈ 3 E ⇒ A T2 ≈ 0
i =0 i =9 i =0 i =0
38
CAPITOLO 3. ALTRI ESERCIZI 39
Nella formula sopra si è tenuto conto del fatto che una linea a compressione genera una frazione di
Erlang pari alla percentuale di tempo per il quale viene utilizzata, indipendentemente dalla quantità
di traffico che smaltisce (questa è una diretta conseguenza dell’ergodicità del sistema: le statistiche
d’utilizzazione sono anche uguali alle statistiche temporali), mentre il traffico che trabocca sulla rete
pubblica viene tariffato in Erlang. I tre costi saranno dunque:
Cc
C1 = + P1 linea · CE + Aesterno · CE
12
Cc
C2 = 2 · + ( P1 linea + P2 linee ) · CE + Aesterno · CE
12
Cc
C3 = 3 · + ( P1 linea + P2 linea + P3 linee ) · CE + Aesterno · CE
12
Sostituendo i valori ci si accorge che la soluzione conveniente è quella con due linee di compressione.
39
40 CAPITOLO 3. ALTRI ESERCIZI
40
Capitolo 4
4.1 Esercizio 1
1Due router che interconnettono due sedi e in cui viaggiano, separati, i flussi di traffico dati e voce;
ciascun router dispone di due interfacce (una per i dati e una per la voce) aventi ciascuna due canali B
a 64 Kbps (equivalenti ad un collegamento full-duplex a 128 Kbps). Ciascuna sede è frequentata da 50
utenti, 0.1 Erlang per utente. Ciascun utente attivo: λv = 30 pacchetti/s, lunghezza dei pacchetti espo-
nenziale con valor medio Dv = 64 byte. Traffico dati stimabile in un flusso di pacchetti rappresentabile
con un processo di Poisson avente frequenza media di arrivo dei pacchetti λd = 25 pacchetti/s e lun-
ghezza dei pacchetti esponenziale con valore medio Dd = 512 byte. Accodamento sulla coda d’uscita
dei router. Si determinino:
1. Traffico dati: ritardo medio totale e tempo medio d’attesa in coda per i pacchetti che fanno coda.
Per quanto riguarda il traffico dati, possiamo considerare il sistema come un M/M/1 e quindi
applicare le ben note relazioni:
1 1 1 1
δ̄ = = C
= 128K
= = 0, 16 s
µ−λ D −λ 512·8− 25 6, 25
Il tempo medio di attesa per i pacchetti che fanno la coda (sapendo che andranno in coda) è pari
al tempo medio speso nel sistema. Questa peculiarità, poco intuitiva ma assolutamente veritiera, è
tipica di questo genere di sistemi.
D 512·8
Si ha ρ = A0 = λϑ̄ = 25 · C = 25 · 128.000 = 0, 8.
3. Numero massimo di telefonate attive fra le due sedi tali che il tempo medio di attesa per i pac-
chetti che vanno in coda sia inferiore a 50 ms (una telefonata implica un traffico bidirezionale).
Anche in questo caso prendiamo in considerazione le formule del sistema M/M/1: sappiamo che
1 1 1
ε= < 0, 05 ⇒ C
< 0, 05 ⇒ < 0, 05
µ−λ D − 30 · N 250 − 30 · N
1
< (250 − 30 · N ) ⇒ 20 − 250 < −30N ⇒ −230 < −30N
0, 05
230
N< = 7, 67 ⇒ N 6 7
30
1 Questo esercizio, soprattutto per quanto riguarda la sua seconda parte, ha suscitato molti dubbi. Mi hanno detto che il prof.
Callegati stesso ha accennato al fatto che vi fosse qualche errore nelle sue soluzioni, dunque prendete il tutto con le molle perché mi
sono basato esattamente su di esse.
41
42 CAPITOLO 4. ESERCIZI DEL PROF. CALLEGATI
4. La probabilità di perdita per chiamata (traffico voce) nell’ipotesi che i router siano in grado di
bloccare le chiamate quando un loro aumento di numero comporterebbe una violazione del vin-
colo sui ritardi.
Ora sappiamo che, affinché siano soddisfatti i requisiti di qualità, devono esserci al massimo 7 utenti
attivi chiamanti all’interno del sistema. I 50 utenti che sono all’interno del sistema, tuttavia, non
sono sempre e necessariamente attivi: sappiamo anzi che il traffico medio per utente è pari a 0,1
Erlang, mentre gli
D 64 · 8
A0 = ϑ̄λv = λv = 30 · = 0, 12 Erlang
C 128000
di traffico offerto si riferiscono a un chiamante pienamente attivo in un certo istante (sono, quindi, gli
Erlang/chiamata, mentre gli 0.1 sono Erlang/utente). Quindi, facendo la soprastante ipotesi di poter
bloccare l’ottavo chiamante ’pienamente attivo’, abbiamo trasformato il sistema in un M/M/7/0:
così facendo immaginiamo di avere un servitore pienamente dedicato ad ogni chiamante fino al
numero massimo stabilito nel punto precedente. Il fatto che gli utenti non siano mai pienamente
attivi, e l’utilizzazione di un traffico di tipo VoIP (a commutazione di pacchetto e non a commuta-
zione di circuito), ci permette di vedere il problema in quest’ottica e allo stesso tempo di sfruttare la
formulazione offertaci dalla B di Erlang. Dunque la probabilità di perdita è:
E poi? Dividiamo per 7? Eh no! Il traffico smaltito appena calcolato, infatti, viene riportato in
termini di numero di chiamate (si noti che, nel caso di commutazione di circuito, non aveva senso
un numero di chiamanti non intero) mentre noi vogliamo quello in termini di numero di pacchetti.
Quindi:
E ϑ2
• tempo medio residuo ξ̄ = ;
2ϑ
ρ
• tempo medio speso nel sistema η̄ = ξ̄ ;
1−ρ
1
• tempo medio speso in coda sapendo di fare coda η̄ = ξ̄ ;
1−ρ
• probabilità di andare in coda: ρ = 1 − P0 ;
ESERCIZIO:
Collegamento con protocollo di linea stop-wait. Il TX invia una trama e aspetta l’ACK prima di
spedire quella dopo. Tempo di ricezione ACK: T = 2, 5 ms. Qualora si verifichi un errore di trasmissione
la trama viene ritrasmessa dopo un tempo T0 = 3 ms. Sia T0 che T vengono misurati a partire dall’istante
d’inizio trasmissione della trama. Probabilità d’errore per trama PF = 0, 1.
42
CAPITOLO 4. ESERCIZI DEL PROF. CALLEGATI 43
• Scrivere l’espressione del tempo ϑ necessario per la corretta trasmissione di una trama in funzione
del numero di errori di trasmissione e la relativa probabilità.
Il tempo ϑ necessario alla corretta trasmissione di una trama è:
ϑ ( Nerrori ) = 2, 5 ms + Nerrori · 3 ms
Pk = (1 − PF ) PFk
Processo di arrivo delle trame: poissoniano con frequenza media di arrivo λ trame/s. Si approssimi ϑ
come v.a. esponenziale (valor medio ϑ̄). Coda di dimensioni infinite. Calcolare:
A0 = ρ < 1
δ̄ = η̄ + ϑ̄ = 10, 8 + 2, 83 = 13, 63 ms
• La probabilità che una trama impieghi più di 20 millisecondi per essere trasmessa correttamente.
Per quest’ultimo punto sfruttiamo la solita cumulativa:
43