Sei sulla pagina 1di 46

Simulazioni per il corso di Progetto di Reti di

Telecomunicazioni LS

November 11, 2010


Contents

1 Poisson, Pareto, Switched Poisson Process 2


1.1 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Analisi del problema . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Simulatore statistico e modelli di traffico . . . . . . . . 3
1.2.2 Parametri di ingresso . . . . . . . . . . . . . . . . . . 5
1.3 Simulazioni ed analisi dei risultati . . . . . . . . . . . . . . . 6
1.3.1 Simulazioni Poisson . . . . . . . . . . . . . . . . . . . 6
1.3.2 Simulazioni Pareto . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Simulazioni SPP . . . . . . . . . . . . . . . . . . . . . 12
1.3.4 Simulazione comparativa . . . . . . . . . . . . . . . . 15

2 Sistema a coda M/G/1 17


2.1 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Analisi del problema . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Simulatore statistico e sistemi a coda . . . . . . . . . . 18
2.2.2 Parametri di ingresso . . . . . . . . . . . . . . . . . . 19
2.3 Simulazioni, analisi e validazione analitica . . . . . . . . . . . 19
2.3.1 Simulazione M/G/1 con α = 2.5 . . . . . . . . . . . . 21
2.3.2 Simulazione M/G/1 con α = 1.5 . . . . . . . . . . . . 24
2.3.3 Simulazione M/G/1 con α = 3 . . . . . . . . . . . . . 27

3 Sistema a coda M/G/1//PRIO 30


3.1 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Analisi del problema . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Simulatore statistico e sistemi a coda con gestione
delle classi di priorità . . . . . . . . . . . . . . . . . . 32
3.2.2 Parametri di ingresso . . . . . . . . . . . . . . . . . . 33
3.3 Simulazioni, analisi e validazione analitica . . . . . . . . . . . 33
3.3.1 Simulazione M/M/1//PRIO con 2 classi di priorità . . 35
3.3.2 Simulazione M/M/1//PRIO con 3 classi di priorità . . 38

4 Appendice algoritmi 41

1
Chapter 1

Poisson, Pareto, Switched


Poisson Process

1.1 Requisiti
Realizzare un simulatore software per lo studio del comportamento di sistemi
i cui arrivi sono generati da processi di Poisson, Pareto e Switched Poisson
Process. Si richiede di valutare i seguenti indici di prestazione:

• Media Campionaria dei tempi di interarrivo (X̄(n));

• Varianza Campionaria dei tempi di interarrivo (S 2 );

• Intervallo di confidenza (δ) con affidabilità 0.9 e 0.95;

• Index of dispersion for counts (IDC 1 ).

In seguito bisogna validare analiticamente 2 i risultati ottenuti dalle simu-


lazioni ed effettuare una analisi comparativa degli indici di prestazione dei
tre modelli di traffico.

1
IDC è la misura normalizzata della dispersione di una distribuzione di probabilità.
Misura quanto un set di arrivi sono dispersi regolarmente rispetto ad un modello statistico
standard. Essa è definita come rapporto tra varianza e media.
2
Validare i dati sperimentali ottenuti tramite i modelli matematici studiati.

2
1.2 Analisi del problema
1.2.1 Simulatore statistico e modelli di traffico
Il simulatore statistico da realizzare prevede lo studio di tre modelli di traf-
fico differenti. Il sistema a stati risultante ha come rappresentazione dello
stato corrente il numero degli arrivi. Una singola simulazione ha come
oggetto di studio uno o più modelli di traffico ed è composta da un nu-
mero m di esperimenti ognuno dei quali comprende un campione di n arrivi
generati.
Ogni modello di traffico riproduce nel simulatore il comportamento del
sistema reale corrispondente. Il comportamento emerge dallo studio dell’in-
sieme dei tempi di arrivo ottenuti fornendo in input alla legge caratteristica
del modello una generazione di numeri random.
Le formule analitiche che descrivono le leggi caratteristiche di ogni mo-
dello sono riassunte nella tabella (1.1).

Modello Tempo interarrivo τ


Poisson
− ln(y)
τ=
λ

Pareto
x
αK α
Z 
K x≥κ
τ= α+1
dt = 1 con
κ t (1 − y) α x<0

SPP
− ln(y) − ln(y)
τ= z=
λi qi

Table 1.1: Leggi caratteristiche

3
Sono riportate di seguito le equazioni usate nel simulatore per il calcolo
degli indici di prestazione:

Media Campionaria dei tempi di interarrivo


n
1 X
X̄(n) = ( ) xi
n
i=1

Varianza Campionaria dei tempi di interarrivo



1 X
S2 = ( ) (xi − x̄)
n−1
i=1

Intervallo di confidenza
r
S 2 (n)
δ = t(n−1, 1− α2 )
n
Index of dispersion for counts

V ar[k(T )]
IDC(T ) =
E[k(T )]

Per il calcolo dell’indice IDC si considera come periodo di riferimento


un multiplo del tempo medio di inter-arrivo:
h
T =
λ
dove h = 15

4
1.2.2 Parametri di ingresso
Nella tabella seguente i parametri da specificare al simulatore:

Simulatore
s numero di simulazioni
m numero di esperimenti per simulazione
n numero di arrivi per esperimento (campione)

I tre modelli di traffico presentano dei parametri di ingresso specifici che


devono essere modulati opportunamente prima del lancio del simulatore.
Abbiamo i seguenti ingressi per i tre modelli di traffico:

Poisson
λ frequenza degli arrivi

Pareto
α specifica α per la distribuzione di Pareto
κ specifica κ per la distribuzione di Pareto

SPP
λ0 frequenza degli arrivi per lo stato 0
λ1 frequenza degli arrivi per lo stato 1
q01 frequenza del cambio di stato 0 → 1
q10 frequenza del cambio di stato 1 → 0

5
1.3 Simulazioni ed analisi dei risultati
Con lo scopo di descrivere in modo chiaro i risultati ottenuti dal lavoro del
simulatore, vengono presentate per ogni serie di simulazioni una tabella di
input, una tabella di output e la rappresentazione grafica dell’andamento
dell’indice di prestazione richiesto.
Una serie di simulazioni prevede che ogni singola simulazione venga lan-
ciata con lo stesso numero di esperimenti. La numerosità del campione
oggetto del singolo esperimento varia da simulazione in simulazione, in par-
ticolare viene incrementata fino ad un valore limite nell’ultima simulazione.
Pertanto le tabelle input e output sono relative alla simulazione più affida-
bile, ovvero quella con la più alta numerosità del campione.

1.3.1 Simulazioni Poisson

id serie sim m n-range λ


Poisson 100 10 1 · 103 ÷ 1 · 105 10.0

Table 1.2: input

id serie X̄(n) S2 δ IDC


Poisson 0.099 0.009 ∼ 0.5 · 10−3 0.996

Table 1.3: output

Osservazioni sui dati di output


Analizzando la tabella di output (1.3) e il grafico generato dal simulatore
(1.1), si possono trarre le seguenti conclusioni:

• Il tempo medio di interarrivo X̄(n) è prossimo al reciproco del valore


di λ, ovvero 0.099 ≈ 0.1

• Il valore δ decresce con l’aumentare della numerosità del campione di


arrivi n poiché cresce l’accuratezza della stima del tempo medio di
interarrivo

• Il valore dell’indice IDC tende rapidamente ad 1, ciò è quello che ci


si aspetta dalla distribuzione di Poisson

6
Figure 1.1: Andamento δ in Poisson

7
1.3.2 Simulazioni Pareto

id serie sim m n-range κ α


Pareto (1.2) 100 10 1 · 103 ÷ 1 · 105 1.0 1.2
Pareto (2.2) 100 10 1 · 103 ÷ 1 · 105 1.0 2.2
Pareto (3.2) 100 10 1 · 103 ÷ 1 · 105 1.0 3.2

Table 1.4: input

id serie X̄(n) S2 δ IDC


Pareto (1.2) 5.659 27159.148 0.25 ÷ 4 10.824
Pareto (2.2) 1.833 4.700 ∼ 0.010 0.822
Pareto (3.2) 1.454 0.550 ∼ 0.003 0.244

Table 1.5: output

Osservazioni sui dati di output


Analizzando la tabella di output (1.5) ed i grafici generati dal simulatore
(1.2, 1.3, 1.4), si possono trarre le seguenti conclusioni:

• Il valore δ nelle serie Pareto (2.2) e Pareto (3.2) decresce con l’aumen-
tare della numerosità del campione di arrivi n, mentre nella serie
Pareto (1.2) ha un valore maggiore ed instabile. Questo risultato è
dovuto al notevole indice di varianza questa particolare distribuzione

• Il valore dell’indice IDC nel caso della serie Pareto (3.2) è circa 0.24
per poi arrivare al valore 0.82 della serie Pareto (2.2). Nel caso della
serie Pareto (1.2) invece ha un valore elevato 10.8 ovvero ciò che ci si
aspetta da una distribuzione con una burstiness elevata.

8
Figure 1.2: Andamento δ in Pareto (1.2)

9
Figure 1.3: Andamento δ in Pareto (2.2)

10
Figure 1.4: Andamento δ in Pareto (3.2)

11
1.3.3 Simulazioni SPP

id serie sim m n-range λ0 λ1 q01 q10


SPP (1) 100 10 1 · 103 ÷ 1 · 105 5 50 0.1 0.1
SPP (2) 100 10 1 · 103 ÷ 1 · 105 2 2 0.5 0.5

Table 1.6: input

id serie X̄(n) S2 δ IDC


SPP (1) 0.079 0.020 0.5 · 10−3 90.962
SPP (2) 0.399 0.159 0.1 · 10−2 1.033

Table 1.7: output

Osservazioni sui dati di output


Analizzando la tabella di output (1.7) ed i grafici generati dal simulatore
(1.5, 1.6), si possono trarre le seguenti conclusioni:

• Il valore δ sia nella serie SPP (1) che nella serie SPP (2) decresce fino
a stabilizzarsi su valori molto bassi

• Il valore IDC nel caso della serie SPP (1) presenta un valore molto
alto, giustificato dal bursting forzato dalla differenza 5 ÷ 50 tra le
frequenze di arrivo tra gli stati q0 e q1 . A conferma di questa ipotesi,
nella serie SPP (2) il valore dell’IDC scende fino ad 1.03 portandosi
al valore atteso per una distribuzione di Poisson

12
Figure 1.5: Andamento δ in SPP (1)

13
Figure 1.6: Andamento δ in SPP (2)

14
1.3.4 Simulazione comparativa
Per ottenere dei dati confrontabili dalla simulazione comparativa, bisogna
imporre ai tre modelli di traffico lo stesso valore della frequenza degli arrivi λ.
Lo si può fare a posteriori, calcolando il valore di λ prodotto dal modello
SPP ed imponendolo in ingresso al lancio della serie di Poisson. Per la serie
di Pareto bisogna calcolare il parametro κ derivandolo dal λ di riferimento.

id serie s m n-range λ0 λ1 q01 q10 α


Poisson 100 10 1 · 103 ÷ 1 · 105 − − − − −
Pareto 100 10 1 · 103 ÷ 1 · 105 − − − − 3
SPP 100 10 1 · 103 ÷ 1 · 105 5 50 0.1 0.1 −

Table 1.8: input

id serie X̄(n) S2 δ IDC


Poisson 0.021 4.3 · 10−4 1.1 · 10−4 0.991
Pareto 0.021 1.4 · 10−4 0.6 · 10−4 0.292
SPP 0.021 6.4 · 10−4 1.3 · 10−4 9807.777

Table 1.9: output

Osservazioni sui dati di output


Analizzando la tabella di output (1.9) ed il grafico generato dal simulatore
(1.7), si possono trarre le seguenti conclusioni:

• Il valore δ in tutte e tre le serie decresce fino a stabilizzarsi su valori


molto bassi e vicini tra loro

• L’indice IDC nel caso della serie SPP presenta un valore molto alto,
giustificato dal bursting forzato dalla differenza 5 ÷ 50 tra le frequenze
di arrivo degli stati q0 e q1 . Nella serie Poisson raggiunge il valore
atteso ∼ 1 e nella serie Pareto assume il valore ∼ 0.3

15
Figure 1.7: Andamento δ nell’analisi comparativa

16
Chapter 2

Sistema a coda M/G/1

2.1 Requisiti
Realizzare un simulatore software per lo studio del comportamento di sistemi
a coda M/G/1 ovvero sistemi in cui gli arrivi, di tipo poissoniani, sono
processati da un solo servitore secondo una semplice politica First Come
First Served. Per i tempi di servizio è richiesto lo studio di tre casi differenti:

• deterministici (sistema M/D/1)

• secondo Poisson (sistema M/M/1)

• secondo Pareto (sistema M/Pareto/1)

Si richiede di valutare per ogni caso elencato precedentemente:

• La stima del tempo medio di attesa in coda degli utenti (η̄) ed il suo
andamento

• L’intervallo di confidenza (δ) per il valore η̄ stimato

In seguito bisogna validare analiticamente e confrontare i risultati ottenuti.

17
2.2 Analisi del problema
2.2.1 Simulatore statistico e sistemi a coda
Il simulatore statistico da realizzare prevede lo studio di tre sistemi a coda
che differiscono per la distribuzione dei tempi di servizio. Il sistema M/G/1
ha come rappresentazione dello stato corrente il numero degli utenti presenti
ed è un sistema ad eventi. Gli eventi si dividono in arrivi e partenze. Un
evento di arrivo ha come parametri l’istante di arrivo e il tempo di servizio,
mentre un evento partenza ha come parametri l’istante di partenza.
Il simulatore implementa un algoritmo che porta a compimento ogni sin-
gola simulazione analizzando gli eventi generati. La pseudocodifica dell’algo-
ritmo è riassunta nell’appendice (4 - 4.2). L’algoritmo utilizza una struttura
dati che contiene gli eventi ordinati in base al tempo. La simulazione ter-
mina quando il numero degli eventi di partenza analizzati raggiunge il nu-
mero degli eventi di arrivo. Al termine della simulazione, vengono calcolati
gli indici η̄ e δ e graficato l’andamento.
Le formule analitiche che regolano la generazione dei tempi di servizio
sono riassunte nella tabella (2.1).

Sistema Tempo di servizio θ


M/M/1
− ln(y)
θ= 1
θ̄

M/D/1
θ = θ̄

M/Pareto/1
κ
θ= 1
(1 − y) α
dove
θ̄(α − 1)
κ=
α

Table 2.1: Formule dei tempi di servizio

18
2.2.2 Parametri di ingresso
Nella tabella seguente i parametri da specificare al simulatore:

Simulatore
N numero totale di arrivi per simulazione
θ̄ tempo medio di servizio
ρ utilizzazione del servitore (0 < ρ < 1)
α specifica α per la distribuzione di Pareto

2.3 Simulazioni, analisi e validazione analitica


Per ogni serie di simulazioni è stilata una tabella della configurazione dei
parametri di input, e una tabella di output con gli indici di prestazione in
uscita in relazione a valori significativi del valore di utilizzazione ρ. Inol-
tre la tabella di output espone i valori η̄atteso per la validazione analitica
dei risultati. Suddetti valori sono calcolati facendo riferimento alla formula
analitica per il calcolo del valore medio di di attesa in coda η̄ descritto nella
tabella 2.2.

19
Sistema Tempo medio di attesa in coda η̄
M/G/1
λE[θ̄2 ]
η̄ =
2(1 − ρ)

M/M/1
E[θ̄2 ] = 2θ2
λ2θ2 λθ2
η̄ = =
2(1 − ρ) (1 − ρ)

M/D/1
E[θ̄2 ] = θ2
λθ2
η̄ =
2(1 − ρ)

M/Pareto/1
θ̄2
E[θ̄2 ] = θ̄2 +
α(α − 2)
λ θ̄2
η̄ = (θ̄2 + )
2(1 − ρ) α(α − 2)

Table 2.2: Formule di Pollaczek-Khintchine

20
2.3.1 Simulazione M/G/1 con α = 2.5

id serie N θ̄ ρ − range α
M/M/1 1 · 105 5 0.01 ÷ 0.9 −
M/D/1 1 · 105 5 0.01 ÷ 0.9 −
M/Pareto/1(2.5) 1 · 105 5 0.01 ÷ 0.9 2.5

Table 2.3: input

id serie ρ η̄atteso η̄ δ
M/M/1 0.1 0.556 0.551 0.01
M/D/1 0.1 0.278 0.279 0.0050
M/Pareto/1(2.5) 0.1 0.5 0.441 0.012
M/M/1 0.2 1.25 1.268 0.016
M/D/1 0.2 0.625 0.635 0.0070
M/Pareto/1(2.5) 0.2 1.125 0.979 0.017
M/M/1 0.5 5.0 4.989 0.036
M/D/1 0.5 2.5 2.478 0.016
M/Pareto/1(2.5) 0.5 4.5 4.367 0.061
M/M/1 0.8 20.001 20.412 0.103
M/D/1 0.8 10.001 9.903 0.046
M/Pareto/1(2.5) 0.8 18.001 16.011 0.105
M/M/1 0.9 45.001 42.16 0.191
M/D/1 0.9 22.501 22.025 0.1
M/Pareto/1(2.5) 0.9 40.501 36.68 0.193

Table 2.4: output

Osservazioni sui dati di output


Analizzando la tabella di output (2.4) e i grafici generati dal simulatore
(2.1, 2.2), si possono trarre le seguenti conclusioni:

• La varianza del tempo di servizio è direttamente proporzionale al


tempo medio di attesa η̄ sperimentato

• All’aumentare dell’utilizzazione (ρ) aumenta il tempo medio di attesa


η̄ sperimentato

• Nella serie M/D/1 il tempo medio di attesa è il minore rispetto alle


altre due serie, questo grazie al carattere deterministico del tempo di
servizio in M/D/1

21
Figure 2.1: Andamento η̄(ρ)

• Nella serie M/Pareto/1(2.5) il tempo medio di attesa η̄ è maggiore


rispetto alla serie M/D/1 ma minore rispetto alla serie M/M/1

• Tutte le osservazioni sui dati di output sono in linea con le previsioni


teoriche

22
Figure 2.2: Andamento δ relativo ad η̄

23
2.3.2 Simulazione M/G/1 con α = 1.5

id serie N θ̄ ρ − range α
M/M/1 1 · 105 5 0.01 ÷ 0.9 −
M/D/1 1 · 105 5 0.01 ÷ 0.9 −
M/Pareto/1(1.5) 1 · 105 5 0.01 ÷ 0.9 1.5

Table 2.5: input

id serie ρ η̄atteso η̄ δ
M/M/1 0.1 0.556 0.551 0.01
M/D/1 0.1 0.278 0.277 0.0050
M/Pareto/1(1.5) 0.1 −0.093 111.999 6.049
M/M/1 0.2 1.25 1.25 0.016
M/D/1 0.2 0.625 0.627 0.0070
M/Pareto/1(1.5) 0.2 −0.209 7.203 0.261
M/M/1 0.5 5.0 5.04 0.036
M/D/1 0.5 2.5 2.533 0.016
M/Pareto/1(1.5) 0.5 −0.834 338.575 7.364
M/M/1 0.8 20.001 19.917 0.098
M/D/1 0.8 10.001 9.618 0.045
M/Pareto/1(1.5) 0.8 −3.334 439.304 5.221
M/M/1 0.9 45.001 47.041 0.208
M/D/1 0.9 22.501 24.312 0.105
M/Pareto/1(1.5) 0.9 −7.501 185.956 1.496

Table 2.6: output

Osservazioni sui dati di output


Analizzando la tabella di output (2.6) e i grafici generati dal simulatore
(2.3, 2.4), si possono trarre le seguenti conclusioni:

• Poiché il valore del parametro α è pari a 1.5 < 2 abbiamo varianza


infinita ed il valore analitico di η̄ non è da considerare perchè negativo

• La varianza del tempo di servizio è direttamente proporzionale al


tempo medio di attesa η̄ sperimentato, fatta eccezione per la serie
M/Pareto/1(1.5)

• All’aumentare dell’utilizzazione (ρ) aumenta il tempo medio di attesa


η̄ sperimentato fatta eccezione per la serie M/Pareto/1(1.5)

24
Figure 2.3: Andamento η̄(ρ)

• Tutte le osservazioni sui dati di output sono in linea con le previsioni


teoriche

25
Figure 2.4: Andamento δ relativo ad η̄

26
2.3.3 Simulazione M/G/1 con α = 3

id serie N θ̄ ρ − range α
M/M/1 1 · 105 5 0.01 ÷ 0.9 −
M/D/1 1 · 105 5 0.01 ÷ 0.9 −
M/Pareto/1(3) 1 · 105 5 0.01 ÷ 0.9 3

Table 2.7: input

id serie ρ η̄atteso η̄ δ
M/M/1 0.1 0.556 0.54 0.01
M/D/1 0.1 0.278 0.273 0.0050
M/Pareto/1(3.0) 0.1 0.371 0.378 0.0080
M/M/1 0.2 1.25 1.256 0.016
M/D/1 0.2 0.625 0.623 0.0070
M/Pareto/1(3.0) 0.2 0.834 0.823 0.013
M/M/1 0.5 5.0 5.05 0.036
M/D/1 0.5 2.5 2.534 0.016
M/Pareto/1(3.0) 0.5 3.334 3.221 0.026
M/M/1 0.8 20.001 20.39 0.107
M/D/1 0.8 10.001 9.336 0.044
M/Pareto/1(3.0) 0.8 13.334 13.512 0.079
M/M/1 0.9 45.001 43.409 0.198
M/D/1 0.9 22.501 24.17 0.107
M/Pareto/1(3.0) 0.9 30.001 29.629 0.133

Table 2.8: output

Osservazioni sui dati di output


Analizzando la tabella di output (2.8) e i grafici generati dal simulatore
(2.5, 2.6), si possono trarre le seguenti conclusioni:

• La varianza del tempo di servizio è direttamente proporzionale al


tempo medio di attesa η̄ sperimentato

• All’aumentare dell’utilizzazione (ρ) aumenta il tempo medio di attesa


η̄ sperimentato

• Nella serie M/D/1 il tempo medio di attesa è il minore rispetto alle


altre due serie, questo grazie al carattere deterministico del tempo di
servizio in M/D/1

27
Figure 2.5: Andamento η̄(ρ)

• Nella serie M/Pareto/1(2.5) il tempo medio di attesa η̄ è maggiore


rispetto alla serie M/D/1 ma minore rispetto alla serie M/M/1

• Tutte le osservazioni sui dati di output sono in linea con le previsioni


teoriche

28
Figure 2.6: Andamento δ relativo ad η̄

29
Chapter 3

Sistema a coda
M/G/1//PRIO

3.1 Requisiti
Realizzare un simulatore software per lo studio del comportamento di sistemi
a coda M/G/1//PRIO con priorità non preemptive.
Come nel capitolo precedente, si tratta di sistemi a coda infinita in cui
gli arrivi, di tipo poissoniani, sono processati da un solo servitore.
La differenza sostanziale con i sistemi simulati finora è nella politica
con cui vengono servite le richieste. Il servitore deve rispondere a richieste
appartenenti a diverse classi di priorità, ognuna delle quali ha una propria
frequenza di arrivo (λ) ed un indice di classe (C) che definisce la classe
di appartenenza di una richiesta. Il simulatore deve quindi schedulare le
richieste pendenti in base alla priorità della classe di appartenenza secondo
questi criteri:

• Richieste di uguale classe di priorità devono essere processate con la


normale politica First Come First Served.

• Richieste di diversa classe di priorità devono essere processate dando


la precedenza alle richieste pendenti con indice di classe C minore.

Si richiede di calcolare, per ogni simulazione:

• Il tempo medio di attesa (η̄i ) per ogni classe

• Il tempo medio di attesa (η̄) per ogni richiesta, in assenza delle classi
di priorità

• Gli intervalli di confidenza δi per ogni (η̄i )

Le simulazioni devono riprodurre il comportamento del sistema con due e


tre diverse classi di priorità (C = [2, 3]).

30
Per semplicità effettuare le simulazioni generando tempi di servizio pois-
soniani, focalizzando quindi lo studio sui sistemi M/M/1. In seguito bisogna
validare analiticamente e confrontare i risultati ottenuti.

31
3.2 Analisi del problema
3.2.1 Simulatore statistico e sistemi a coda con gestione delle
classi di priorità
Il simulatore statistico da realizzare prevede lo studio di un sistema
M/G/1//PRIO che ha come rappresentazione dello stato corrente il numero
degli utenti presenti.
Ogni utente è associato ad una classe di priorità. Il sistema gestisce
la coda rispettando le priorità tra gli utenti, dando quindi precedenza di
servizio agli utenti che appartengono alla classe di priorità con indice mi-
nore. Trattandosi di un sistema M/G/1, ciò impone al simulatore (come
nel capitolo precedente) la gestione degli eventi, questa volta guidata dalle
classi di priorità. Gli eventi differiscono dagli stessi studiati per il capi-
tolo precedente per la presenza aggiuntiva dell’identificativo della classe di
priorità.
L’algoritmo implementato nel simulatore utilizza due strutture dati, esse
contengono rispettivamente un lista degli eventi futuri che contiene gli eventi
ordinati in base al tempo di occorrenza ed una lista di coda degli utenti
ordinati in base alla classe di priorità e al tempo di arrivo. La pseudo-
codifica dell’algoritmo per il simulatore è riportata nell’appendice (4 4.4).
La simulazione termina quando il numero degli eventi di partenza analizzati
raggiunge il numero degli eventi di arrivo. Al termine della simulazione,
vengono calcolati gli indici η̄ e δ e graficato l’andamento degli stessi.

32
3.2.2 Parametri di ingresso
Nella tabella seguente i parametri da specificare al simulatore:

Simulatore
N numero totale di arrivi per simulazione
θ̄ tempo medio di servizio
ρ utilizzazione del servitore (0 < ρ < 1)
nclassi numero delle classi di priorità

3.3 Simulazioni, analisi e validazione analitica


Per ogni serie di simulazioni è stilata una tabella della configurazione dei
parametri di input, e una tabella degli indici di prestazione in uscita in
relazione a valori significativi del valore del coefficiente x che stabilisce la
porzione di utilizzazione ρ assegnata alle diverse priorità. La stessa tabella
espone la validazione analitica dei risultati, calcolata facendo riferimento
alle formule per il calcolo del valore medio di attesa in coda con priorità η̄
descritto nella 3.1.

33
Sistema M/M/1

Tempo di interarrivo τ

− ln(y)
τ=
λ

Tempo di servizio θ

− ln(y)
θ= 1
θ̄

Tempo medio di attesa in coda per classe η̄r

ζ̄
η¯r =
(1 − Sr−1 )(1 − Sr )
Pr 2
1 i=1 λi 2θ

Pr
Sr = i=1 ρi 
 
 η¯0 = 2 1−ρ0
 


 

r
 
λi 2θ2
P
ζ̄ = 12 ri=1 λi E[θi 2 ] η¯1 = 12 (1−ρ0i=1
P
⇒ )(1−ρ 0 −ρ1 )

 


 

E[θi 2 ] = 2θ2
Pr
λi 2θ2
 
η¯2 = 12 (1−ρ0 −ρ1i=1


)(1−ρ0 −ρ1 −ρ2 )

Table 3.1: Formule M/M/1 per i tempi di interarrivo, servizio, at-


tesa in coda (Cobham)

34
3.3.1 Simulazione M/M/1//PRIO con 2 classi di priorità

id serie Nutenti θ̄ ρtot nclassi ρi


M/M/1//P RIO2cl 5 · 105 1.0 0.8 2 ρ1 = xρtot
ρ2 = (1 − x)ρtot

Table 3.2: input

id classe x Ao (%) η̄no−prio η̄ η̄atteso δ


Classe 1 0.1 10.0 3.906 0.872 0.87 0.0070
Classe 2 0.1 90.0 3.906 4.464 4.348 0.011
Classe 1 0.2 20.0 3.88 0.952 0.953 0.0050
Classe 2 0.2 80.0 3.88 4.826 4.762 0.013
Classe 1 0.5 50.0 3.953 1.324 1.334 0.0050
Classe 2 0.5 50.0 3.953 6.535 6.667 0.023
Classe 1 0.8 80.0 4.068 2.224 2.223 0.0060
Classe 2 0.8 20.0 4.068 10.83 11.112 0.067
Classe 1 0.9 90.0 4.046 2.871 2.858 0.0070
Classe 2 0.9 10.0 4.046 14.364 14.286 0.138

Table 3.3: output

Osservazioni sui dati di output


Analizzando la tabella di output (3.3) e i grafici generati dal simulatore
(3.1, 3.2), si possono trarre le seguenti conclusioni:

• I dati di output η̄ sono molto vicini a quelli teorici η̄atteso .

• Il grafico 3.1 evidenzia come il valore del tempo medio di attesa in


coda della Classe 1 è sempre maggiore del valore relativo alla Classe 2
che è la meno prioritaria.

• All’aumentare del valore del coefficiente x (che modula l’utilizzazione


tra le due classi), poiché cresce il traffico della Classe 1 aumenta via
via anche il tempo di attesa in coda η̄ della stessa classe. Inoltre
l’aumentare di x penalizza pesantemente il tempo di attesa in coda
per gli arrivi della Classe 2.

• Il dato più significativo riguarda il rapporto dei valori η̄ con il cor-


rispondente valore di η̄no−prio . I due indici evidenziano come all’aumen-
tare del coefficiente x, quindi del traffico prioritario rispetto a quello

35
Figure 3.1: Andamento η̄(x) per 2 classi di priorità

con priorità minore, il tempo di attesa in coda sperimentato manifesta


un effetto negativo: il traffico prioritario (Classe 1) è sempre più vicino
al tempo di attesa del caso analogo senza alcuna prioorità, ed il traffico
meno prioritario è eccessivamente penalizzato. Volendo riassumere si
potrebbe dire che per x abbastanza piccolo, si ha un ottimo η̄ per
la Classe 1 pur mantenendo accettabile il valore del tempo di attesa
della Classe 2, quindi è questo il caso in cui la politica prioritaria ha
un effetto generalmente positivo sulle prestazioni.

• Nei punti il coefficiente x assume i valori 0 e 1 il tempo di attesa della


classe di priorità sopravvissuta ha il valore η̄ prossimo a η̄no−prio come
è giusto che sia.

36
Figure 3.2: Andamento δ relativo ad η̄ per 2 classi di priorità

37
3.3.2 Simulazione M/M/1//PRIO con 3 classi di priorità

id serie Nutenti θ̄ ρtot nclassi ρi


M/M/1//P RIO3cl 5 · 105 1.0 0.8 3 ρ1 = ρ2 = x2 ρtot
ρ3 = (1 − xρtot )

Table 3.4: input

id classe x Ao (%) η̄no−prio η̄ η̄atteso δ


Classe 1 0.1 5.0 3.935 0.848 0.834 0.0090
Classe 2 0.1 5.0 3.935 0.917 0.906 0.01
Classe 3 0.1 90.0 3.935 4.44 4.348 0.011
Classe 1 0.2 10.0 4.005 0.859 0.87 0.0070
Classe 2 0.2 10.0 4.005 1.046 1.036 0.0080
Classe 3 0.2 80.0 4.005 4.747 4.762 0.013
Classe 1 0.5 25.0 3.993 1.002 1.0 0.0050
Classe 2 0.5 25.0 3.993 1.678 1.667 0.0090
Classe 3 0.5 50.0 3.993 6.784 6.667 0.024
Classe 1 0.8 40.0 3.874 1.17 1.177 0.0050
Classe 2 0.8 40.0 3.874 3.226 3.268 0.013
Classe 3 0.8 20.0 3.874 10.616 11.112 0.066
Classe 1 0.9 45.0 3.844 1.265 1.251 0.0050
Classe 2 0.9 45.0 3.844 4.573 4.465 0.018
Classe 3 0.9 10.0 3.844 14.584 14.286 0.137

Table 3.5: output

Osservazioni sui dati di output


Analizzando la tabella di output (3.5) e i grafici generati dal simulatore
(3.3, 3.4), si possono trarre le seguenti conclusioni:

• I dati di output η̄ sono molto vicini a quelli teorici η̄atteso .

• Il grafico 3.3 evidenzia come il valore del tempo medio di attesa in


coda della Classe 1 è sempre maggiore del valore relativo alla Classe 2
che è a sua volta maggiore del tempo medio di attesa della Classe 3
(la meno prioritaria).

• All’aumentare del valore del coefficiente x (che modula l’utilizzazione


tra le tre classi), poiché cresce il traffico delle due classi più prioritarie,
aumenta via via anche il tempo di attesa in coda η̄ della stesse classi,

38
Figure 3.3: Andamento η̄(x) per 3 classi di priorità

pur mantenedo le distanze nelle priorità tra la Classe 1 e la Classe 2.


Inoltre l’aumentare di x penalizza pesantemente il tempo di attesa in
coda per gli arrivi della Classe 3.

• Il dato più significativo riguarda il rapporto dei valori η̄ con il cor-


rispondente valore di η̄no−prio . I due indici evidenziano come all’aumen-
tare del coefficiente x, quindi del traffico prioritario rispetto a quello
con priorità minore, il tempo di attesa in coda sperimentato manifesta
un effetto negativo: il traffico prioritario (Classe 1) è sempre più vicino
al tempo di attesa del caso analogo senza alcuna prioorità, il traffico
di Classe 2 supera tale valore con x > 0.85. Il traffico di Classe 3 è
eccessivamente penalizzato. Volendo riassumere si potrebbe dire che
per x abbastanza piccolo, si hanno dei buoni η̄ per le classi di alta e
media priorità pur mantenendo accettabile il valore del tempo di at-
tesa della Classe 3, quindi è questo il caso in cui la politica prioritaria
ha un effetto generalmente positivo sulle prestazioni.

39
Figure 3.4: Andamento δ relativo ad η̄ per 3 classi di priorità

40
Chapter 4

Appendice algoritmi

41
Listing 4.1: Algoritmo simulatore a coda M/G/1, utility
1 /∗∗
∗ Utility
3 ∗/
inizializza() {
5 k = 0;
free = 0.0;
7 now = 0.0;
arrivi = 0;
9 partenze = 0;
w = 0.0;
11 inserisci nuovo evento(expon(lambda),arrivo,serv());
}
13 // genera un tempo interarrivo con distribuzione
// esponenziale con parametro lambda
15 expon(lambda);
// genera un tempo di servizio secondo la distribuzione scelta
17 serv();

19 // gestione lista degli eventi futuri:


inserisci nuovo evento(time,type,service);
21 estrai evento();

42
Listing 4.2: Algoritmo simulatore a coda M/G/1
1 /∗∗
∗ Algoritmo
3 ∗/
inizializza();
5 while (partenze < N) {
e = estrai evento();
7 now = e time;
if (e type == arrivo) {
9 k++;
arrivi++;
11 if (k == 1) {
free = now + e service;
13 } else {
w = w + (free − now);
15 free = free + e service;
}
17 inserisci nuovo evento(free, partenza, 0);
if (arrivi < N) {
19 inserisci nuovo evento(now + expon(lambda), arrivo, serv());
} else if (e type == partenza) {
21 k−−;
partenze++;
23 }
}// fine while
25 // tempo medio di attesa in coda
w = w/N;

43
Listing 4.3: Algoritmo simulatore a coda M/G/1, utility
/∗∗
2 ∗ Utility
∗/
4 inizializza() {
k = 0;
6 free = 0.0;
now = 0.0;
8 arrivi = 0;
partenze = 0;
10 w = 0.0;
for (j = 1; j <= C; j++) {
12 arrivi[j] = 0;
w[j] = 0;
14 inserisci nuovo evento(expon(lambda[j]), arrivo, serv());
}
16 }
// inserisce un nuovo utente in fondo alla lista
18 appendi(q[j], time, service);
inserisci nuovo evento(time, type, class, service);

44
Listing 4.4: Algoritmo simulatore a coda M/G/1
1 /∗∗
∗ Algoritmo
3 ∗/
inizializza();
5 while (partenze < N) {
e = estrai evento();
7 now = e time;
if (e type == arrivo) {
9 k++;
arrivi++;
11 arrivi[e class]++;
if (k == 1) {
13 free = now + e service;
inserisci nuovo evento(free, partenza, e class, 0);
15 } else {
free = free + e service;
17 appendi(q[e class], now, e service);
}
19 if (arrivi < N) {
inserisci nuovo evento(
21 now + expon(lambda[e class]),
arrivo, e class, serv(e class)
23 );
}
25 } else if (e type == partenza) {
k−−;
27 partenze++;
if (k > 0) {
29 j = 1;
while (q[j] == NULL){
31 j++;
w[j] = w[j] + (now − q[j] t arr);
33 inserisci nuovo evento(
now+q[j] service, partenza, j, 0
35 );
q[j] = q[j] next;
37 }
}
39 }
} // fine while
41 for (j = 1; j <= C; j++) {
w = w + w[j];
43 // tempo medio di attesa in coda per la classe j
w[j] = w[j]/arrivi[j];
45 }
w = w/N;

45

Potrebbero piacerti anche