86 TEORIA DELLE CODE.7 SISTEMI A CODA CON DISTRIBUZIONI NON ESPONENZIALI Fino ad ora abbiamo considerato modelli di code basati su processi di nascita e morte, con tempi di interarrivo e tempi di servizio distribuiti esponenzialmente e abbiamo analizzato le importanti proprietà di tali modelli e il loro efficace uso nel rappresentare situazioni reali. Tuttavia, esistono casi reali in cui le assunzioni fino ad ora fatte non sono soddisfatte. Ad esempio, sappiamo che gli arrivi secondo Poisson approssimano bene gli arrivi casuali che rappresentano una ragionevole assunzione in moltissime situazioni; tuttavia in alcuni casi, si possono invece avere situazioni di arrivi programmati e non più casuali. Analogamente, non sono infrequenti situazioni in cui i tempi di servizio sono regolati da schemi prestabiliti che non sono approssimati bene da una distribuzione esponenziale. Per queste ragioni, in questo paragrafo verrano esaminati sistemi a coda che utilizzano distribuzioni diverse da quella esponenziale. L analisi di questi modelli risulta, in genere, molto più difficile dell analisi compiuta fino ad ora sui sistemi basati su distribuzioni esponenziali in quanto il processo corrispondente ad un tale modello non è più, in generale, un processo di nascite e morte. Inizieremo questa trattazione rimuovendo la sola assunzione di avere una distribuzione esponenziale dei tempi di servizio e quindi considerando modelli generali M/G/s e la loro particolarizzazione ai modelli M/D/s e M/E k /s. Successivamente considereremo modelli che non abbiano arrivi poissoniani..7. Sistemi M/G/ Formula di Pollaczek Kintchine Consideriamo sistemi di code in cui gli arrivi sono di tipo poissoniano e i tempi di servizio siano indipendenti, identicamente distribuiti, supponendo che non ci sia alcuna assunzione sulla distribuzione di probabilità di tali tempi di servizio t s i. Osserviamo innanzitutto che la proprietà PASTA vista nel paragrafo.5. valida per ogni sistema con arrivi poissoniani, ovviamente, continua a valere anche nel caso che stiamo esaminando. Passiamo ora allo studio analitico dei sistemi M/G/. Esistono diversi metodi di analisi; utilizzeremo, nel seguito, quello basato sui tempi residui del servizio. Assumeremo solamente di conoscere la media /µ e la varianza σ 2 della distribuzione dei tempi di servizio. Nonostante non sia stata fatta alcuna assunzione sulla distribuzione dei tempi di servizio, esiste un risultato generale che fornisce il valore per il tempo medio di attesa nella coda T q. Tale risultato è noto come formula di Pollaczek Kintchine ed esprime la T q in funzione del momento secondo del tempo di servizio E ( (t s i )2). Naturalmente, vale E ( (t s i ) 2) = V ar(t s i ) + [E(t s i )] 2 = σ 2 + /µ 2. (.7.) Riportiamo tale formula nel teorema che segue.
SISTEMI A CODA CON DISTRIBUZIONI NON ESPONENZIALI 87 Teorema.7. Si consideri un sistema M/G/ in condizioni di stazionarietà. Sia λ la frequenza media degli arrivi e siano /µ e σ 2 rispettivamente la media e la varianza dei tempi di servizio. Allora si ha T q = λ σ2 + /µ 2 2( ρ). Dimostrazione: Supponiamo che la disciplina della coda sia di tipo FIFO. Indichiamo con R i il tempo residuo al completamento del servizio visto dall i-esimo utente quando arriva (ovvero, se un utente j sta usufruendo del servizio quando arriva l utente i arriva, R i è il tempo necessario affinché sia completato il servizio sull utente j). Indichiamo, inoltre, con n q i il numero degli utenti trovati nella coda dall i-esimo utente quando arriva. Naturalmente risulta t q i = R i + i j=i n q i t s j. (.7.2) Prendendo il valore atteso 3 ad entrambi i membri della (.7.2), si ha E(t q i ) = E(R i) + E(t s j)e(n q i ) = E(R i) + µ E(nq i ). (.7.3) Si osservi che la R i e la n q i sono quantità viste dall utente che arriva, ma, poiché gli arrivi sono poissoniani, tali quantità coincidono con le corrispondenti quantità viste da un osservatore esterno che osserva il sistema in un istante arbitrario. Passando al limite per i nella (.7.3), assumendo che questi limiti esistano, si ha T q = R + µ N q, (.7.4) dove R è il tempo residuo medio (a regime) definito da R = lim i E(R i ). Ora, poiché risulta N q = λt q, dalla (.7.4) si ha T q = R + λ µ T q 3 Si utilizza un noto risultato di teoria della probabilità secondo il quale, avendo X,..., X m variabili aleatorie indipendendenti, identicamente distribuite, con media comune E(X) ed m è una variabile aleatoria che può assumere valori 0,,..., allora E(X + + X m) = E(X)E(m)
88 TEORIA DELLE CODE R(τ) s t s t 2 s t s t 2 t τ Figura.7. Grafico del tempo residuo da cui si ottiene T q = R ρ. (.7.5) Per completare la dimostrazione rimane da calcolare il valore di R. Effettueremo questo calcolo con l ausilio di un grafico. Riportiamo, infatti, in Figura.7. il grafico del tempo residuo del servizio R(τ) in funzione del tempo τ, ovvero il tempo che rimane per il completamento del servizio del cliente che sta usufruendo del servizio al tempo τ, assumendo R(0) = 0. Ovviamente, quando un nuovo servizio di durata t s i inizia, R(τ) ha valore t s i, poi decresce linearmente. Consideriamo, ora, un istante di tempo t per il quale risulti R(t) = 0 e indichiamo con il numero di arrivi (ovvero di partenze) nell intervallo [0, t]. La media temporale di R(τ) nell intervallo [0, t] è data da Poiché t 0 t t 0 R(τ)dτ. R(τ)dτ rappresenta l area della superficie racchiusa tra la funzione R(τ) e l asse delle ascisse, tale area è anche uguale alla somma delle aree dei
SISTEMI A CODA CON DISTRIBUZIONI NON ESPONENZIALI 89 triangoli, ovvero da i= 2 (ts i ) 2. Risulta quindi t t 0 R(τ)dτ = t i= 2 (ts i ) 2. (.7.6) Ora, moltiplicando e dividendo per al secondo membro della (.7.6) si ha t t 0 R(τ)dτ = 2 t (t s i ) 2 i= (.7.7) e passando al limite per t nella (.7.7) (assumendo che i limiti esistano) si ha (t s t lim R(τ)dτ = i ) 2 t t 2 lim i= lim. (.7.8) t t t 0 Ora, poiché per t sufficientemente grande vale l uguaglianza tra media temporale e valore atteso, si ha lim t t t 0 R(τ)dτ = lim i E(R i ) = R, ed inoltre lim = λ. t t Infine, per la legge forte dei grandi numeri, si ha Quindi la (.7.8) diventa lim t (t s i ) 2 i= = E ( (t s i ) 2). R = 2 λe ( (t s i ) 2) e sostituendo questo valore di R ora ottenuto nella (.7.5), utilizzando la (.7.) la dimostrazione è completata. Osservazione.7. Abbiamo derivato la formula di Pollaczek Kintchine assumendo che la disciplina della coda sia di tipo FIFO, ma la formula rimane valida in generale comunque si scelga la disciplina della coda purché essa sia indipendente dal tempo di servizio richiesto. Non è invece valida se l ordine con cui si accede al servizio dipende dal tempo di servizio.
90 TEORIA DELLE CODE Una volta determinato il valore di T q dalla formula di Pollaczek Kintchine, si possono determinare i valori delle altre misure di prestazione, ovvero N q = λt q = λ2 σ 2 + ρ 2 2( ρ) N = N q + ρ = λ2 σ 2 + ρ 2 2( ρ) + ρ T = N λ = λσ2 + λ/µ 2 2( ρ) + µ. Osservazione.7.2 Se consideriamo un sistema di code M/M/ come caso particolare di un sistema M/G/, si ha σ 2 = /µ 2 e quindi l applicazione della formula di Pollaczek Kintchine fornisce per T q il valore T q = λ/[µ(µ λ)] che naturalmente coincide con l espressione di T q già determinata nel caso di sistema M/M/. Osservazione.7.3 Osservando le espressioni delle misure di prestazione ora ottenute, si vede che a parità di λ e µ, queste grandezze aumentano all aumentare della varianza del tempo di servizio σ 2. Da questo punto di vista, la situazione ideale (ovvero quella che minimizza queste grandezze) si otterrebbe con σ 2 = 0 che si ha con tempi di servizio costanti, ovvero per sistemi di tipo M/D/. Si tenga presente che, a parità di valore atteso, si può intervenire sui tempi di servizio per renderli più regolari possibile (ovvero rendendo la varianza piccola). Questo è molto importante perché mostra che la regolarità del servizio assume una grande importanza da questo punto di vista, e che quindi non è sufficiente considerare la velocità media del servizio. La grande flessibilità dei modelli M/G/ li rende molto utili, ma il prezzo da pagare per questa loro generalità sta nel fatto che, purtroppo, non sono disponibili, nel caso generale, risultati per sistemi multiservente, ovvero per sistemi M/G/s con s >. Nel seguito esaminiamo due casi particolari importanti: i sistemi M/D/s e i sistemi M/E k /s. Sistemi M/D/s Sistemi M/D/s I sistemi di code M/D/s assumono tempi di servizio costanti; essi forniscono un buon modello per situazioni in cui il servizio è effettuato sempre attraverso una medesima procedura. Naturalmente risulta σ 2 = 0. Per quanto riguarda il caso singolo servente (s = ), i valori delle misure di prestazione si ottengono dal caso generale di sistemi M/G/ ponendo σ 2 = 0. In particolare, si avrà: T q = 2 λ µ(µ λ)
SISTEMI A CODA CON DISTRIBUZIONI NON ESPONENZIALI 9 N q = λ 2 2 µ(µ λ) ρ 2 N = 2( ρ) + ρ T = λ/µ 2 2( ρ) + µ. Soffermandoci ad osservare i valori di T q e di N q si vede che essi risultano pari esattamente alla metà dei valori corrispondenti per un sistema di code M/M/ (dove σ 2 = /µ 2 ). Questo evidenzia il fatto che una diminuzione di σ 2 porta ad un notevole miglioramento (diminuzione) di T q e di N q. Per quanto riguarda il caso multiservente, (s > ) esiste un metodo per determinare la distribuzione di probabilità del numero degli utenti nel sistema, in condizioni di stazionarietà, ma esso esula dallo scopo di queste note perché molto tecnico e particolare. Esistono anche in questo caso risultati tabulati e grafici dell andamento di N in funzione di ρ = λ/(sµ). Sistemi M/E k /s In termini di deviazione standard (σ), i sistemi M/D/s e M/M/s rappresentano Sistemi due situazioni estreme: i primi assumono che non ci siano variazioni nei tempi M/E k /s di servizio, (σ = 0), mentre i secondi assumono tempi di servizio distribuiti esponenzialmente con una variazione che può essere anche molto grande (σ = /µ). Tra questi due casi estremi si colloca una distribuzione importante per la quale risulta 0 < σ < /µ e che rappresenta bene i tempi di servizio in molte situazioni reali: si tratta della distribuzione di Erlang (E k ) di parametri k e µ a media /µ, la cui densità di probabilità è data da f(t) = (µk)k (k )! tk e kµt, t 0. Una tale distribuzione di probabilità ha varianza pari a /(kµ 2 ) e deviazione standard σ pari a /( kµ) e quindi se i tempi di servizio seguono questa distribuzione, il parametro k rappresenta una sorta di grado di variabilità dei tempi di servizio. Richiamiamo il fatto che la sua importanza deriva da due punti fondamentali: è una famiglia di distribuzioni a due parametri e quindi con scelte opportune si riesce ad approssimare bene un tempo di servizio reale ed inoltre per k = si ottiene la distribuzione esponenziale e per k essa tende alla distribuzione degenere (σ 0); dalla Proprietà E5 della distribuzione esponenziale richiamata nel paragrafo.3., si ha che la somma di k variabili indipendenti, identicamente distribuite esponenzialmente ciascuna con media /(kµ), ha distribuzione
92 TEORIA DELLE CODE di Erlang E k. Quindi se un servizio si compone di k operazioni successive a ciascuna delle quali è associato un tempo di servizio distribuito esponenzialmente con media /(kµ), allora il tempo di servizio complessivo segue la distribuzione di Erlang E k. Per quanto riguarda il caso singolo servente (s = ) dalle formule generali per un sistema M/G/ si ottengono i valori delle misure di prestazione per sistemi M/E k / ponendo σ 2 = /(kµ 2 ), ovvero T q = + k 2k N q = + k 2k λ µ(µ λ) λ 2 µ(µ λ) T = T q + µ = + k 2k N = λt = + k 2k λ µ(µ λ) + µ λ 2 µ(µ λ) + λ µ. Si osservi che ovviamente, per k, i valori di T q e di N q tendono ai corrispondenti valori ottenuti nel caso M/D/. Per quanto riguarda il caso multiservente (s > ), non è possibile ottenere analiticamente la distribuzione di probabilità del numero degli utenti presenti nel sistema in condizioni di stazionarietà. Tuttavia, anche in questo caso sono disponibili valori tabulati e grafici di N al variare di ρ = /(sµ)..7.2 Sistemi con arrivi non poissoniani Concludiamo questo paragrafo con alcuni cenni ai sistemi di code che non presentano arrivi secondo Poisson. Infatti, come abbiamo già visto per quanto riguarda i tempi di servizio, anche il processo degli arrivi potrebbe non essere casuale, ma essere programmato in una qualche forma. Possiamo pertanto considerare modelli dei seguenti tipi: GI/M/s : non impongono restrizioni sul processo degli arrivi; D/M/s : gli arrivi sono ad intervalli regolari; E k /M/s : gli arrivi seguono la distribuzione di Erlang E k. Per tutti i tre tipi ora menzionati si è assunto che i tempi di servizio sono distribuiti esponenzialmente. Tuttavia è possibile considerare anche modelli ancora più generali come E m /E k /s, E k /D/s, D/E k /s. La trattazione di questi modelli esula dallo scopo di queste note e pertanto essi non verranno trattati.
RETI DI CODE 93.8 RETI DI CODE.8. 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. Le reti di code si dividono in reti aperte in cui sono possibili ingressi di utenti alla rete dall esterno e uscite degli utenti dalla rete verso l esterno; reti chiuse in cui il numero degli utenti all interno della rete è fissato e gli utenti circolano all interno della rete senza che ci sia possibilità di ingressi dall esterno o uscite verso l esterno. Per caratterizzare completamente una rete di code devono essere assegnati: la topologia della rete le distribuzioni di probabilità dei tempi di interarrivo degli utenti presso i nodi che prevedono ingresso di utenti le distribuzioni di probabilità dei tempi di servizio presso ciascun nodo costituente la rete le regole di istradamento.
94 TEORIA DELLE CODE Figura.8. Esempio di rete aperta Lo stato n della rete è definito dal vettore n = (n,..., n m ), dove le n i, i =,..., m rappresentano lo stato del sistema i esimo..8.2 Il processo delle partenze per i sistemi M/M/s Teorema di Burke 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 importante 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 arrivi nel sistema successivo. Riportiamo di seguito un risultato che vale per sistemi M/M/s noto come Teorema di Burke.
RETI DI CODE 95 Figura.8.2 Esempio di rete chiusa Teorema.8. Si consideri un sistema M/M/s con s (incluso s = ) con frequenza media di arrivo pari a λ in condizioni di stazionarietà. Allora i) il processo della partenze dal sistema è un processo di Poisson di parametro λ; ii) in ogni istante di tempo t, il numero di utenti presenti nel sistema è indipendente dalla sequenza dei tempi di partenza prima di t. Quindi in un sistema a coda con arrivi poissoniani e tempi di servizio distribuiti esponenzialmente, anche il processo delle partenze dal sistema è un processo di Poisson, ovvero il processo delle partenze ha le stesse caratteristiche del processo degli arrivi, nonostante il servizio che è avvenuto e il relativo tempo. Si osservi inoltre che questo risultato è indipendente anche dalla disciplina della coda. L utilità di questo risultato all interno della teoria delle code è evidente: se gli utenti che escono da un sistema M/M/s entrano in un altro sistema a coda, gli arrivi a questo secondo sistema saranno ancora poissoniani. Quindi, assumendo che i tempi di servizio del secondo sistema siano distribuiti esponenzialmente, il sistema a coda del secondo nodo si comporta come un sistema M/M/s e può
96 TEORIA DELLE CODE reti feedforward essere studiato indipendentemente dal primo nodo. Quindi in virtù del teorema di Burke, possiamo collegare in una rete sistemi a coda M/M/s e, purchè non ci siano cicli, ovvero purché gli utenti non possano rivisitare nodi già precedentemente visitati (reti feedforward), si può analizzare la rete decomponendola nodo a nodo. L assenza di cicli è necessaria altrimenti si potrebbe perdere la natura poissoniana dei flussi in ingresso ai nodi. La dimostrazione di questo teorema si basa su una proprietà detta reversibilità dei processi di nascita e morte che permette di vedere i processi delle partenze corrispondenti agli arrivi del processo invertito. È stato anche dimostrato che il sistema M/M/s è l unico sistema di tipo FIFO che gode delle proprietà enunciate nel Teorema di Burke [Kleinrock, 975]..8.3 Serie di code 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 manufatturieri (linee di assemblaggio in cui i prodotti devono passare attraverso una serie di stazioni di lavoro); nei sistemi ospedalieri dove un paziente può essere sottoposto, in sequenza, ad un certo numero di accertamenti; nelle procedure di tipo amministrativo che prevedono più fasi successive (registrazione, pagamento, ritiro documenti,...). Assumiamo che al primo sistema arrivino utenti secondo un Figura.8.3 Esempio di serie di code processo di Poisson di parametro λ e che in ciascun sistema componente ci siano s i serventi, i =,..., m, ciascuno operante con tempi di servizio distribuiti esponenzialmente con parametro µ i con λ < s i µ i per ogni i =,..., m. Si assume 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/s i 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 n utenti sono nel primo sistema e n 2 utenti nel secondo sistema è data dal prodotto delle singole probabilità, ovvero P (n, n 2 ) = p n p n2 = ρ n ( ρ ) ρ n 2 2 ( ρ 2),
RETI DI CODE 97 con ρ = λ/µ < e ρ 2 = λ/µ 2 <. Infatti, per la prima parte del Teorema di Burke il processo delle partenze dal secondo sistema è di Poisson e per l indipendenza dei tempi di servizio il secondo sistema può essere visto come un singolo sistema M/M/, e quindi si ha p n = ρ n ( ρ ), p n2 = ρ n 2 2 ( ρ 2). Per la seconda parte del Teorema di Burke, in un qualsiasi istante t il numero degli utenti presenti nel primo sistema è indipendente dalla sequenza degli arrivi al secondo sistema prima di t e quindi anche dal numero degli utenti nel secondo sistema. Quindi si ha P (n, n 2 ) = ρ n ( ρ ) ρ n 2 2 ( ρ 2). Questo si estende ad una serie di un numero finito di sistemi a coda in serie. Quindi la probabilità congiunta che una rete costituita da m sistemi a coda in serie sia allo stato n = (n,..., n m ) si può scrivere nella forma P (n) = P (n, n 2,..., n m ) = p n p n2 p nm = ρ n ( ρ )ρ n 2 2 ( ρ 2) ρ nm m ( ρ m ), dove ρ j = λ/µ j <, j =,..., m. Questa rappresenta la cosiddetta soluzione in forma prodotto. Il tempo medio totale di permanenza nell intero sistema, ovvero nella rete, e il numero medio di utenti presenti nella rete si possono calcolare semplicemente sommando le corrispondenti quantità calcolate in riferimento ai singoli sistemi. Si osservi che le considerazioni fino ad ora riportate non valgono se la capacità dei singoli sistemi a coda componenti la rete fosse finita. Esempio.8. 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 con media 0 l ora. I tempi di servizio dei serventi sono distribuiti esponenzialmente con media rispettivamente di 2 e 5 pezzi l ora. Per quanto esposto, gli arrivi alla seconda stazione sono poissoniani di parametro λ = 0 e l analisi può essere condotta studiando singolarmente i due sistemi M/M/. Poiché risulta ρ = 5 6 < ρ 2 = 2 3 < esiste una distribuzione stazionaria della rete. Analizzando i due sistemi singolarmente si ha T = µ λ = 2 ora, T 2 = µ 2 λ = 5 ora e N = λt = 5 pezzi, N 2 = λt 2 = 2 pezzi. Per quanto riguarda la rete si ha N = N + N 2 = 7 pezzi e T = T + T 2 = 7/0 ora, ovvero 42 minuti.