Salta al contenuto
Note per Studenti Sistemi a coda M-M-1 e M-M-m

Sistemi a coda M/M/1 e M/M/m

In questa pagina 7

I sistemi markoviani sono quelli in cui sia gli arrivi sia i servizi sono senza memoria: arrivi di Poisson (Processi di arrivo e processo di PoissonUn sistema a coda ha clienti che arrivano, un'area di attesa e $m$ servitori. Il processo di arrivo è un processo di punto con tempi di interarrivo $\tau_n=t_n-t_{n-1}$ e tasso $\lambda=\frac1{E[\tau]}$. Nel processo di Poisson omogeneo gli arrivi in intervalli disgiunti sono indipendenti e di Poisson con media $\lambda T$, gli interarrivi sono esponenziali $\lambda e^{-\lambda a}$ e senza memoria; somma di processi di Poisson è Poisson (tassi che si sommano), il diradamento con probabilità $p$ dà Poisson di tasso $p\lambda$; in $[0,h]$ c'è un arrivo con probabilità $\lambda h+o(h)$. Servizio con tasso $\mu=\frac1{E[y]}$; notazione di Kendall $A/B/m/K/N-S$.Processi di arrivo e processo di Poisson →) e tempi di servizio esponenziali. Per loro lo stato del sistema ("quanti clienti ci sono") basta a predire l'evoluzione futura e si arriva a formule chiuse. Qui si ricavano le formule dell'M/M/1 e dell'M/M/m, e di alcuni modelli collegati (M/M/∞\infty, M/M/1/KK). Il caso con servizio generale è in Sistemi a coda M-G-1 e formula di LittleMisure di un sistema a coda: occupazione $x=q+z$, tempi $s=w+y$, traffico offerto $G=\frac\lambda\mu$, fattore di carico $\rho=\frac\lambda{m\mu}$, throughput $\eta$ e throughput normalizzato $S=\frac\eta\mu$. Il sistema senza blocco è stabile se $\rho<1$ e allora $\eta=\lambda$, altrimenti $\eta=m\mu$. La formula di Little $E[x]=\lambda E[s]$ vale sempre (anche per la sola coda, $E[q]=\lambda E[w]$, e per il servizio, $E[z]=\lambda E[y]$). Per arrivi di Poisson e servizio generale (M/G/1) la formula di Pollaczek-Khinchin dà $E[w]=\frac{\lambda E[y^2]}{2(1-\rho)}$: con servizio esponenziale si ritrova l'M/M/1, con servizio costante (M/D/1) l'attesa si dimezza, $E[w]=\frac{\rho}{2\mu(1-\rho)}$.Sistemi a coda M-G-1 e formula di Little →, dove si definiscono anche le misure di prestazione usate qui (x,q,zx,q,z, s,w,ys,w,y, ρ\rho, GG, throughput) e si dimostra la formula di Little, che sotto è usata.

1. Il modello M/M/1 come catena di Markov

Il sistema M/M/1 ha arrivi di Poisson di tasso λ\lambda, servizi i.i.d. esponenziali di tasso μ\mu (media 1μ\frac1\mu), un servitore, coda infinita, FCFS. Sia x(t)x(t) il numero di clienti nel sistema (in coda più in servizio). Si studia che cosa può succedere in un intervallo piccolissimo [t,t+h][t,t+h].

Arrivi. Come visto: P[1 arrivo]=λh+o(h)P[1\ \text{arrivo}]=\lambda h+o(h), P[0]=1−λh+o(h)P[0]=1-\lambda h+o(h), P[≥2]=o(h)P[\ge2]=o(h) (e non dipendono dalla storia).

Partenze. Se il servitore è occupato, il tempo di servizio è esponenziale: per l'assenza di memoria il tempo residuo del cliente in servizio è ancora esponenziale di tasso μ\mu, qualunque sia il tempo già speso. Quindi, se x(t)>0x(t)>0, P[1 partenza]=μh+o(h)P[1\ \text{partenza}]=\mu h+o(h) e P[0]=1−μh+o(h)P[0]=1-\mu h+o(h). Se x(t)=0x(t)=0 non possono esserci partenze. (Equivalentemente si può pensare a un processo di partenze "virtuale" di Poisson di tasso μ\mu che "scarta" i servizi quando il sistema è vuoto.)

Eventi simultanei. Un arrivo e una partenza nello stesso hh hanno probabilità o(h)o(h) (prodotto di due quantità O(h)O(h)): si trascurano.

Ne segue che in [t,t+h][t,t+h] lo stato cambia al più di ±1\pm1: x→x+1 con prob. λh,x→x−1 con prob. μh (x>0),x→x altrimenti.x\to x+1\ \text{con prob. }\lambda h,\qquad x\to x-1\ \text{con prob. }\mu h\ (x>0),\qquad x\to x\ \text{altrimenti.} E la probabilità futura dipende solo dallo stato presente: x(t)x(t) è una catena di Markov (processo di nascita e morte: le transizioni sono tra stati adiacenti; "nascita" = arrivo, "morte" = partenza).

        λ       λ       λ       λ
   0  ────→  1  ────→  2  ────→  3  ────→  …
      ←────    ←────    ←────    ←────
        μ       μ       μ       μ

2. Equazioni di equilibrio

Sia pk(t)=P[x(t)=k]p_k(t)=P[x(t)=k]. Con il teorema della probabilità totale su x(t)x(t), per k≥1k\ge1: pk(t+h)=pk−1(t) λh+pk+1(t) μh+pk(t) (1−λh−μh)+o(h),p_k(t+h)=p_{k-1}(t)\,\lambda h+p_{k+1}(t)\,\mu h+p_k(t)\,\bigl(1-\lambda h-\mu h\bigr)+o(h), (si arriva in kk da k−1k-1 con una nascita, da k+1k+1 con una morte, oppure si resta), e per k=0k=0: p0(t+h)=p0(t)(1−λh)+p1(t)μh+o(h)p_0(t+h)=p_0(t)(1-\lambda h)+p_1(t)\mu h+o(h). Si porta pk(t)p_k(t) a sinistra, si divide per hh e si fa h→0h\to0: dpkdt=λpk−1+μpk+1−(λ+μ)pk  (k≥1),dp0dt=μp1−λp0.\frac{dp_k}{dt}=\lambda p_{k-1}+\mu p_{k+1}-(\lambda+\mu)p_k\ \ (k\ge1),\qquad\frac{dp_0}{dt}=\mu p_1-\lambda p_0. Se il sistema è stabile esiste il limite πk=lim⁡t→∞pk(t)\pi_k=\lim_{t\to\infty}p_k(t) (probabilità stazionarie, indipendenti dallo stato iniziale), e a regime le derivate sono nulle: λπk−1+μπk+1=(λ+μ)πk,λπ0=μπ1.\lambda\pi_{k-1}+\mu\pi_{k+1}=(\lambda+\mu)\pi_k,\qquad\lambda\pi_0=\mu\pi_1. Dalla seconda e dalla prima per k=1k=1: μπ2=(λ+μ)π1−λπ0=λπ1+(μπ1−λπ0)=λπ1\mu\pi_2=(\lambda+\mu)\pi_1-\lambda\pi_0=\lambda\pi_1+(\mu\pi_1-\lambda\pi_0)=\lambda\pi_1, e per induzione λπk−1=μπk∀k≥1\boxed{\lambda\pi_{k-1}=\mu\pi_k\quad\forall k\ge1} Sono i bilanci di flusso (flow balance, equilibri di taglio): a regime il numero di transizioni al secondo da k−1k-1 a kk (λπk−1\lambda\pi_{k-1}: "sono nello stato k−1k-1 e arriva un cliente") eguaglia quello da kk a k−1k-1 (μπk\mu\pi_k: "sono in kk e ne parte uno"); se non fosse così la distribuzione continuerebbe a cambiare.

3. Soluzione dell'M/M/1

Dal bilancio πk=ρ πk−1\pi_k=\rho\,\pi_{k-1} con ρ=λμ\rho=\frac\lambda\mu, quindi πk=ρkπ0\pi_k=\rho^k\pi_0. Le probabilità devono sommare a 1: ∑k≥0ρkπ0=π01−ρ=1\sum_{k\ge0}\rho^k\pi_0=\frac{\pi_0}{1-\rho}=1 (serie geometrica, Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →), che converge solo se ρ<1\rho<1: è la condizione di stabilità, λ<μ\lambda<\mu. Quindi πk=(1−ρ)ρk,k=0,1,2,…\boxed{\pi_k=(1-\rho)\rho^k,\quad k=0,1,2,\dots} (distribuzione geometrica, Distribuzione geometricaGeo(p) è il numero della prova in cui arriva il primo successo in prove indipendenti: P(X = n) = (1−p)^(n−1) p per n ≥ 1, P(X > n) = (1−p)^n (lunga attesa), media 1/p, varianza (1−p)/p², ed è senza memoria.Distribuzione geometrica →), con π0=1−ρ\pi_0=1-\rho probabilità di sistema vuoto. Da qui:

Grandezza Formula Come si ricava
P[x≥k]P[x\ge k] ρk\rho^k ∑j≥k(1−ρ)ρj=(1−ρ)ρk11−ρ\sum_{j\ge k}(1-\rho)\rho^j=(1-\rho)\rho^k\frac1{1-\rho}
clienti nel sistema E[x]E[x] ρ1−ρ\frac\rho{1-\rho} ∑k(1−ρ)ρk=(1−ρ)ρ∑kρk−1=(1−ρ)ρ(1−ρ)2\sum k(1-\rho)\rho^k=(1-\rho)\rho\sum k\rho^{k-1}=\frac{(1-\rho)\rho}{(1-\rho)^2} (derivata della serie geometrica)
varianza di xx ρ(1−ρ)2\frac\rho{(1-\rho)^2} E[x(x−1)]=2ρ2(1−ρ)2E[x(x-1)]=\frac{2\rho^2}{(1-\rho)^2} e σ2=E[x2]−E[x]2\sigma^2=E[x^2]-E[x]^2
clienti in servizio E[z]E[z] ρ\rho z=1z=1 se x≥1x\ge1: E[z]=1−π0=ρE[z]=1-\pi_0=\rho
clienti in coda E[q]E[q] ρ21−ρ\frac{\rho^2}{1-\rho} E[x]−E[z]E[x]-E[z]
tempo nel sistema E[s]E[s] 1μ−λ=1/μ1−ρ\frac1{\mu-\lambda}=\frac{1/\mu}{1-\rho} Little: E[x]=λE[s]E[x]=\lambda E[s]
attesa in coda E[w]E[w] ρμ−λ=ρ/μ1−ρ\frac\rho{\mu-\lambda}=\frac{\rho/\mu}{1-\rho} E[s]−1μE[s]-\frac1\mu oppure E[q]=λE[w]E[q]=\lambda E[w]

Il numero di clienti in servizio è E[z]=ρE[z]=\rho: per un servitore solo, ρ\rho è la frazione di tempo in cui è occupato. Il tempo di sistema è il tempo di servizio 1μ\frac1\mu diviso per (1−ρ)(1-\rho): esplode per ρ→1\rho\to1.

Grafico interattivo: Tempo medio nel sistema M/M/1 normalizzato al tempo di servizio, E[s]·μ = 1/(1−ρ), in funzione del carico ρ: vale 2 a ρ = 0,5, 10 a ρ = 0,9, 100 a ρ = 0,99 e diverge per ρ → 1

Esempio. Un collegamento da 11 Mbit/s con pacchetti di lunghezza esponenziale di media 10001000 bit ha μ=1061000=1000\mu=\frac{10^6}{1000}=1000 pacchetti/s. Con λ=800\lambda=800 pacchetti/s: ρ=0,8\rho=0{,}8, E[x]=0,80,2=4E[x]=\frac{0{,}8}{0{,}2}=4, E[q]=0,640,2=3,2E[q]=\frac{0{,}64}{0{,}2}=3{,}2, E[z]=0,8E[z]=0{,}8 (3,2+0,8=43{,}2+0{,}8=4 ✓); E[s]=11000−800=5E[s]=\frac1{1000-800}=5 ms (Little: 800⋅0,005=4800\cdot0{,}005=4 ✓), E[w]=0,8200=4E[w]=\frac{0{,}8}{200}=4 ms (=5−1=5-1 ✓); P[x≥5]=0,85=0,328P[x\ge5]=0{,}8^5=0{,}328; sistema vuoto con probabilità 0,20{,}2. Se il carico sale a ρ=0,95\rho=0{,}95 (λ=950\lambda=950): E[s]=150=20E[s]=\frac1{50}=20 ms, quattro volte di più.

Esempio (instabile). Con λ=1,01\lambda=1{,}01 s−1^{-1} e μ=1\mu=1 s−1^{-1} (ρ=1,01\rho=1{,}01, il 1%1\% oltre il limite) x(t)x(t) cresce senza limite: i clienti si accumulano in media al ritmo λ−μ=0,01\lambda-\mu=0{,}01 al secondo e non esiste distribuzione stazionaria. Se λ=μ\lambda=\mu il sistema è marginalmente instabile: la coda non cresce linearmente ma non ha regime (πk=0\pi_k=0 per ogni kk).

4. La distribuzione del tempo di sistema

Un cliente ("Leo") arriva e trova kk clienti: uno in servizio e k−1k-1 in attesa. Il suo tempo di sistema ss è la somma del residuo del servizio in corso (ancora esponenziale di tasso μ\mu, per l'assenza di memoria), dei k−1k-1 servizi dei clienti in attesa e del proprio servizio: k+1k+1 esponenziali i.i.d. di tasso μ\mu, cioè una variabile di Erlang-(k+1)(k+1): ps∣k(a)=μ(μa)kk!e−μa, a≥0.p_{s|k}(a)=\frac{\mu(\mu a)^k}{k!}e^{-\mu a},\ a\ge0. Con che probabilità trova kk clienti? Per la proprietà PASTA (Poisson Arrivals See Time Averages): gli arrivi di Poisson vedono il sistema nello stato kk con la probabilità media di quello stato, πk\pi_k (perché l'arrivo è indipendente dallo stato passato: non "si sceglie" i momenti). Quindi ps(a)=∑k≥0(1−ρ)ρkμ(μa)kk!e−μa=(1−ρ)μe−μa∑k≥0(ρμa)kk!=(1−ρ)μe−μaeρμa.p_s(a)=\sum_{k\ge0}(1-\rho)\rho^k\frac{\mu(\mu a)^k}{k!}e^{-\mu a}=(1-\rho)\mu e^{-\mu a}\sum_{k\ge0}\frac{(\rho\mu a)^k}{k!}=(1-\rho)\mu e^{-\mu a}e^{\rho\mu a}. Ricordando μ(1−ρ)=μ−λ\mu(1-\rho)=\mu-\lambda: ps(a)=(μ−λ)e−(μ−λ)a,P[s>t]=e−(μ−λ)t\boxed{p_s(a)=(\mu-\lambda)e^{-(\mu-\lambda)a},\qquad P[s>t]=e^{-(\mu-\lambda)t}} Il tempo di sistema è esponenziale con tasso μ−λ\mu-\lambda (media 1μ−λ\frac1{\mu-\lambda}, come da Little). Per l'attesa in coda: w=0w=0 se il cliente trova il sistema vuoto (probabilità 1−ρ1-\rho); altrimenti il suo tempo è somma di kk servizi con k≥1k\ge1 e si ottiene P[w>t]=ρ e−(μ−λ)tP[w>t]=\rho\,e^{-(\mu-\lambda)t}.

Esempio. Nell'esempio sopra (μ−λ=200\mu-\lambda=200 s−1^{-1}): P[s>10 ms]=e−2=0,135P[s>10\ \text{ms}]=e^{-2}=0{,}135 e P[w>5 ms]=0,8e−1=0,294P[w>5\ \text{ms}]=0{,}8e^{-1}=0{,}294. Se Leo trova k=2k=2 clienti il suo tempo medio è 3μ=3\frac{3}{\mu}=3 ms.

Teorema di Burke. Il processo delle partenze di un'M/M/1 stabile è di Poisson con lo stesso tasso λ\lambda degli arrivi. Conseguenza: se l'uscita di una coda alimenta una seconda coda (code in cascata), anche questa riceve arrivi di Poisson e, se il suo servizio è esponenziale, si può studiare come M/M/1 isolata.

5. Il modello M/M/m

Con mm servitori identici in parallelo, ciascuno con servizi esponenziali di tasso μ\mu, se ks=min⁡(x,m)k_s=\min(x,m) servitori sono occupati il primo che finisce lo fa dopo il minimo di ksk_s esponenziali indipendenti. Il minimo di ksk_s esponenziali di tasso μ\mu è esponenziale di tasso ksμk_s\mu: infatti P[min⁡>t]=∏P[yi>t]=e−ksμtP[\min>t]=\prod P[y_i>t]=e^{-k_s\mu t}. Quindi la "morte" avviene con tasso dipendente dallo stato: tasso di partenza dallo stato k=min⁡(k,m) μ.\text{tasso di partenza dallo stato }k=\min(k,m)\,\mu. La catena è ancora di nascita e morte e i bilanci di flusso diventano λπk−1=kμ πk  (1≤k≤m),λπk−1=mμ πk  (k≥m).\lambda\pi_{k-1}=k\mu\,\pi_k\ \ (1\le k\le m),\qquad\lambda\pi_{k-1}=m\mu\,\pi_k\ \ (k\ge m). Posto G=λμG=\frac\lambda\mu (traffico offerto: numero medio di servitori richiesti) e ρ=Gm=λmμ\rho=\frac G m=\frac\lambda{m\mu} (fattore di carico), si ricava ricorsivamente πk=Gkk!π0  (0≤k≤m),πk=Gmm!ρ k−mπ0  (k≥m).\pi_k=\frac{G^k}{k!}\pi_0\ \ (0\le k\le m),\qquad\pi_k=\frac{G^m}{m!}\rho^{\,k-m}\pi_0\ \ (k\ge m). Per k≤mk\le m si ha πk=λkμπk−1\pi_k=\frac{\lambda}{k\mu}\pi_{k-1}, cioè un fattore Gk\frac Gk a ogni passo; per k>mk>m il fattore è Gm=ρ\frac{G}{m}=\rho. Normalizzando (∑πk=1\sum\pi_k=1): π0=[∑k=0m−1Gkk!+Gmm!⋅11−ρ]−1.\pi_0=\left[\sum_{k=0}^{m-1}\frac{G^k}{k!}+\frac{G^m}{m!}\cdot\frac1{1-\rho}\right]^{-1}. La seconda somma (serie geometrica di ragione ρ\rho) converge se e solo se ρ<1\rho<1, cioè λ<mμ\lambda<m\mu: condizione di stabilità per mm servitori.

Formula di Erlang C. La probabilità che un cliente che arriva trovi tutti i servitori occupati (e debba attendere) è, per PASTA, C=P[x≥m]=∑k≥mπk=πm1−ρ=Gmm! (1−ρ) π0.C=P[x\ge m]=\sum_{k\ge m}\pi_k=\frac{\pi_m}{1-\rho}=\frac{G^m}{m!\,(1-\rho)}\,\pi_0.

Misure di prestazione. I clienti in servizio sono in media quanti i servitori occupati: E[z]=GE[z]=G (ogni servitore è occupato con frazione ρ\rho, mρ=Gm\rho=G; è anche Little: E[z]=λE[y]=λμE[z]=\lambda E[y]=\frac\lambda\mu). In coda: E[q]=∑k≥m(k−m)πk=πm∑j≥0jρj=πmρ(1−ρ)2=Cρ1−ρE[q]=\sum_{k\ge m}(k-m)\pi_k=\pi_m\sum_{j\ge0}j\rho^j=\pi_m\frac\rho{(1-\rho)^2}=\frac{C\rho}{1-\rho}. Poi, con Little: E[q]=C Gm−G,E[x]=G+C Gm−G,E[w]=E[q]λ=Cmμ−λ,E[s]=E[w]+1μ.E[q]=\frac{C\,G}{m-G},\qquad E[x]=G+\frac{C\,G}{m-G},\qquad E[w]=\frac{E[q]}\lambda=\frac C{m\mu-\lambda},\qquad E[s]=E[w]+\frac1\mu. L'attesa in coda ha distribuzione: P[w>t]=C e−(mμ−λ)tP[w>t]=C\,e^{-(m\mu-\lambda)t} (con probabilità 1−C1-C non si aspetta; altrimenti si attendono k−m+1k-m+1 partenze a tasso mμm\mu e, con k−mk-m geometrico di ragione ρ\rho, la mistura è esponenziale di tasso mμ(1−ρ)=mμ−λm\mu(1-\rho)=m\mu-\lambda). Per m=1m=1: C=ρC=\rho e si ritrovano le formule M/M/1.

Esempio. m=2m=2, μ=1\mu=1 s−1^{-1}, λ=1,6\lambda=1{,}6 s−1^{-1}: G=1,6G=1{,}6, ρ=0,8\rho=0{,}8. π0=[1+1,6+1,622⋅10,2]−1=19=0,1111\pi_0=\left[1+1{,}6+\frac{1{,}6^2}{2}\cdot\frac1{0{,}2}\right]^{-1}=\frac1{9}=0{,}1111; C=G22(1−ρ)π0=1,280,2⋅19=0,711C=\frac{G^2}{2(1-\rho)}\pi_0=\frac{1{,}28}{0{,}2}\cdot\frac19=0{,}711. E[q]=0,711⋅1,60,4=2,844E[q]=\frac{0{,}711\cdot1{,}6}{0{,}4}=2{,}844; E[x]=4,444E[x]=4{,}444; E[w]=0,7112−1,6=1,778E[w]=\frac{0{,}711}{2-1{,}6}=1{,}778 s; E[s]=2,778E[s]=2{,}778 s. (Una simulazione con 3⋅1053\cdot10^5 clienti dà E[w]=1,75E[w]=1{,}75 e E[s]=2,75E[s]=2{,}75.)

Per m=2m=2 si semplifica: C=2ρ21+ρ=G22+GC=\frac{2\rho^2}{1+\rho}=\frac{G^2}{2+G}, E[s]=1μ⋅44−G2E[s]=\frac1\mu\cdot\frac{4}{4-G^2} (con μ=1\mu=1 e G=λG=\lambda: 44−λ2\frac{4}{4-\lambda^2}).

Grafico interattivo: Probabilità di accodamento (Erlang C) in funzione del fattore di carico ρ = λ/(mμ) per m = 1, 2, 3 servitori: a parità di ρ, più servitori significano meno probabilità di dover attendere (m = 1: C = ρ; m = 2: 2ρ²/(1+ρ); m = 3: 4,5ρ³/(1+2ρ+1,5ρ²)); in ρ = 0,8 valgono 0,8, 0,711 e 0,647

Un server veloce o tanti lenti?

Si confrontano tre architetture con la stessa capacità totale: (a) un'M/M/1 con un solo servitore di tasso mμ0m\mu_0 (canale unico, SC); (b) un'M/M/mm con mm servitori di tasso μ0\mu_0 (canale comune, CC); (c) mm code M/M/1 separate, ciascuna con un servitore di tasso μ0\mu_0 e arrivi λm\frac\lambda m (canali paralleli, PC). Con m=2m=2 e μ0=1\mu_0=1, il tempo di sistema in funzione di λ\lambda è

(a) 12−λ,(b) 44−λ2,(c) 22−λ.\text{(a)}\ \frac1{2-\lambda},\qquad\text{(b)}\ \frac4{4-\lambda^2},\qquad\text{(c)}\ \frac2{2-\lambda}.

Grafico interattivo: Tempo medio nel sistema con 2 servitori di tasso 1 e arrivi di tasso λ: un'unica M/M/1 con servitore doppio (SC), una M/M/2 con coda comune (CC) e due M/M/1 separate (PC). L'ordine è sempre SC meglio di CC meglio di PC; per λ vicino a 2 le tre curve crescono insieme, a carico basso SC è molto più veloce

Per λ=0,2\lambda=0{,}2: 0,556 / 1,010 / 1,1110{,}556\ /\ 1{,}010\ /\ 1{,}111; per λ=1,6\lambda=1{,}6: 2,5 / 2,78 / 52{,}5\ /\ 2{,}78\ /\ 5. Conclusione: (a) ≤\le (b) ≤\le (c): "meglio un servitore veloce che tanti lenti", e la coda condivisa (b) è molto meglio di code separate (c). A carico basso un servitore doppio dimezza il tempo di servizio (0,50{,}5 contro 11); a carico alto (b) si avvicina ad (a). Lo svantaggio di (b) e (c) è che con meno clienti di servitori alcuni servitori restano inattivi.

6. Altri modelli di nascita e morte

M/M/∞\infty (infiniti servitori, nessuna coda). Ogni cliente ha subito un servitore: la morte da kk avviene a tasso kμk\mu. Bilancio λπk−1=kμπk\lambda\pi_{k-1}=k\mu\pi_k, quindi πk=Gkk!π0\pi_k=\frac{G^k}{k!}\pi_0 per ogni kk, e π0=[∑kGkk!]−1=e−G\pi_0=\left[\sum_k\frac{G^k}{k!}\right]^{-1}=e^{-G}: πk=Gkk!e−G(Poisson di parametro G=λμ),E[x]=G.\pi_k=\frac{G^k}{k!}e^{-G}\quad\text{(Poisson di parametro }G=\tfrac\lambda\mu),\qquad E[x]=G. È sempre stabile, per qualsiasi λ,μ\lambda,\mu (dimostrazione alternativa con il conteggio degli arrivi in Esercizio - sistema M-M-infinito). Esempio. λ=3\lambda=3 chiamate/min, durata media 0,50{,}5 min: G=1,5G=1{,}5 e π0=e−1,5=0,223\pi_0=e^{-1{,}5}=0{,}223.

M/M/1/KK (buffer finito, capacità del sistema KK). Gli stati sono 0,…,K0,\dots,K e i bilanci sono quelli dell'M/M/1: πk=π0ρk\pi_k=\pi_0\rho^k per k≤Kk\le K; la somma è finita, quindi non serve ρ<1\rho<1 (il sistema è sempre stabile): πk=(1−ρ)ρk1−ρK+1\pi_k=\frac{(1-\rho)\rho^k}{1-\rho^{K+1}}. Un cliente è perso se trova il sistema pieno; per PASTA PBLK=πK=(1−ρ)ρK1−ρK+1P_{BLK}=\pi_K=\frac{(1-\rho)\rho^K}{1-\rho^{K+1}} (per ρ=1\rho=1: 1K+1\frac1{K+1}). Esempio. ρ=0,8\rho=0{,}8, K=5K=5: PBLK=0,2⋅0,851−0,86=0,0888P_{BLK}=\frac{0{,}2\cdot0{,}8^5}{1-0{,}8^6}=0{,}0888; con K=10K=10: 0,02350{,}0235. Il throughput è λ(1−PBLK)\lambda(1-P_{BLK}) e, per Little, E[s]=E[x]λ(1−PBLK)E[s]=\frac{E[x]}{\lambda(1-P_{BLK})} (si usa il tasso dei clienti accettati).

Errori comuni

  • Applicare le formule con ρ≥1\rho\ge1 (non c'è regime stazionario) o dimenticare che per mm servitori la condizione è λ<mμ\lambda<m\mu, cioè ρ=λmμ<1\rho=\frac{\lambda}{m\mu}<1 (non λμ<1\frac\lambda\mu<1).
  • Usare E[w]=ρ1−ρ⋅1μE[w]=\frac\rho{1-\rho}\cdot\frac1\mu come tempo nel sistema: è l'attesa in coda; il tempo nel sistema include il servizio: E[s]=E[w]+1μ=1/μ1−ρE[s]=E[w]+\frac1\mu=\frac{1/\mu}{1-\rho}.
  • Calcolare μ=RbLˉ\mu=\frac{R_b}{\bar L} con RbR_b in bit/s e Lˉ\bar L in bit, e λ\lambda nelle stesse unità di tempo di μ\mu.
  • Dimenticare di usare il tasso accettato λ(1−PBLK)\lambda(1-P_{BLK}) in Little per i sistemi con blocco.
  • Confondere P[x≥m]P[x\ge m] (Erlang C, probabilità di aspettare) con P[x=m]P[x=m] o con ρ\rho.
  • Pensare che i tempi siano geometrici: il numero di clienti è geometrico, il tempo di sistema è esponenziale.

Versione ripasso

Modello. Arrivi di Poisson di tasso λ\lambda (Processi di arrivo e processo di PoissonUn sistema a coda ha clienti che arrivano, un'area di attesa e $m$ servitori. Il processo di arrivo è un processo di punto con tempi di interarrivo $\tau_n=t_n-t_{n-1}$ e tasso $\lambda=\frac1{E[\tau]}$. Nel processo di Poisson omogeneo gli arrivi in intervalli disgiunti sono indipendenti e di Poisson con media $\lambda T$, gli interarrivi sono esponenziali $\lambda e^{-\lambda a}$ e senza memoria; somma di processi di Poisson è Poisson (tassi che si sommano), il diradamento con probabilità $p$ dà Poisson di tasso $p\lambda$; in $[0,h]$ c'è un arrivo con probabilità $\lambda h+o(h)$. Servizio con tasso $\mu=\frac1{E[y]}$; notazione di Kendall $A/B/m/K/N-S$.Processi di arrivo e processo di Poisson →), servizi esponenziali di media 1μ\frac1\mu, mm servitori, coda infinita FCFS. Il numero di clienti x(t)x(t) è una catena di nascita e morte: nascita a tasso λ\lambda, morte a tasso min⁡(k,m)μ\min(k,m)\mu. Il bilancio di flusso a regime è λπk−1=min⁡(k,m) μ πk.\lambda\pi_{k-1}=\min(k,m)\,\mu\,\pi_k .

M/M/1 (ρ=λμ<1\rho=\frac\lambda\mu<1).

M/M/m (G=λμG=\frac\lambda\mu, ρ=Gm=λmμ<1\rho=\frac Gm=\frac\lambda{m\mu}<1).

Confronto a parità di capacità (due servitori di tasso μ0=1\mu_0=1): (a) un'M/M/1 con servitore di tasso 2μ02\mu_0, tempo 12−λ\frac1{2-\lambda}; (b) M/M/2 con coda comune, 44−λ2\frac4{4-\lambda^2}; (c) due M/M/1 separate con arrivi λ2\frac\lambda2, 22−λ\frac2{2-\lambda}.

  • Esempi: per λ=0,2\lambda=0{,}2 valgono 0,5560{,}556, 1,0101{,}010, 1,1111{,}111 s; per λ=1,6\lambda=1{,}6 valgono 2,52{,}5, 2,782{,}78, 55 s.
  • Ordine: (a) ≤\le (b) ≤\le (c): meglio un servitore veloce che tanti lenti, e la coda condivisa batte le code separate.

M/M/∞\infty. Morte a tasso kμk\mu, sempre stabile: πk=Gkk!e−G\pi_k=\frac{G^k}{k!}e^{-G}, E[x]=GE[x]=G. Esempio: λ=3\lambda=3 chiamate/min e durata 0,50{,}5 min danno G=1,5G=1{,}5 e π0=e−1,5=0,223\pi_0=e^{-1{,}5}=0{,}223.

M/M/1/KK (capacità KK). Stesse equazioni dell'M/M/1, ma la somma è finita, quindi non serve ρ<1\rho<1: πk=(1−ρ)ρk1−ρK+1\pi_k=\frac{(1-\rho)\rho^k}{1-\rho^{K+1}}. Per PASTA la probabilità di blocco è PBLK=πKP_{BLK}=\pi_K. Little va usato con il tasso dei clienti accettati: E[s]=E[x]λ(1−PBLK)E[s]=\frac{E[x]}{\lambda(1-P_{BLK})}.

  • Esempio: ρ=0,8\rho=0{,}8: PBLK=0,0888P_{BLK}=0{,}0888 con K=5K=5; 0,02350{,}0235 con K=10K=10.

Burke. Il processo delle partenze di un'M/M/1 stabile è di Poisson di tasso λ\lambda: in una cascata di code la seconda riceve arrivi di Poisson.

Errori tipici:

  • Usare le formule con ρ≥1\rho\ge1 (nessun regime stazionario).
  • Con mm servitori la condizione è λmμ<1\frac{\lambda}{m\mu}<1, non λμ<1\frac\lambda\mu<1.
  • Prendere E[w]E[w] per il tempo nel sistema: E[s]=E[w]+1μE[s]=E[w]+\frac1\mu.
  • Confondere C=P[x≥m]C=P[x\ge m] con ρ\rho o con P[x=m]P[x=m].
  • Dire che i tempi sono geometrici: il numero di clienti è geometrico, il tempo di sistema è esponenziale.
  • Dimenticare il tasso accettato λ(1−PBLK)\lambda(1-P_{BLK}) in Little con il blocco.
  • Calcolare μ=RbLˉ\mu=\frac{R_b}{\bar L} con unità incoerenti.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata