\title{Queueing System with Potential for Recruiting Secondary Servers}
\author{Luca Lombardo}
\institute{Seminario per Metodi Numerici per Catene di Markov}
\date{}
\begin{document}
\frame{\titlepage}
\begin{frame}
\frametitle{Struttura del seminario}
\tableofcontents
\end{frame}
\section{Introduzione}
\begin{frame}
\frametitle{Queueing Theory}
\begin{itemize}
\item I modelli di coda sono strumenti matematici utilizzati per rappresentare sistemi di risorse che devono essere utilizzati da diversi utenti, chiamati "clienti".
\item La terminologia deriva da applicazioni come gli sportelli bancari o i caselli autostradali, dove i clienti effettivamente si mettono in coda finché non vengono serviti da un dipendente.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Queueing Theory}
\begin{block}{Code semplici}
\begin{itemize}
\item Le code semplici consistono di un solo server che attende un solo cliente alla volta, in ordine di arrivo
\item Si assume che il tempo sia discretizzato in intervalli di lunghezza fissa
\item Un numero casuale di clienti si unisce al sistema durante ogni intervallo
\item Il server rimuove un cliente dalla coda alla fine di ogni intervallo, se presente
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Queueing Theory}
Sia $\alpha_n$ il numero di nuovi arrivi durante l'intervallo $[n -1, n)$ e $X_n$ il numero di clienti nel sistema al tempo $n$, abbiamo:
Se ${\alpha_n}$ è una collezione di variabili casuali indipendenti, allora $X_{n+1}$ è condizionalmente indipendente da $X_0, \ldots, X_{n-1}$ se $X_n$ è noto. Se, inoltre, le $\alpha_n$ sono identicamente distribuite, allora ${X_n}$ è omogenea.
\end{block}
\end{frame}
\begin{frame}
\frametitle{Queueing Theory}
Lo spazio degli stati è $\N$ e la matrice di transizione è
\begin{equation*}
P = \begin{pmatrix}
q_0 + q_1 & q_2 & q_3 & q_4 &\ldots\\
q_0 & q_1 & q_2 & q_3 &\ddots\\
\vdots& q_0 & q_1 & q_2 &\ddots\\
0 &&\ddots&\ddots&\ddots
\end{pmatrix}
\end{equation*}
\begin{block}{}
\begin{itemize}
\item [$q_i$] è probabilità $P[\alpha=i]$ che $i$ nuovi clienti che entrino in coda durante un intervallo di un'unità di tempo
\item [$\alpha$] denota ognuna delle possibili distribuzioni di $\alpha_n$ identicamente distribuite.
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Queueing Theory}
Le catene di Markov aventi matrice di transizione della forma
\begin{equation*}
P = \begin{pmatrix}
B1 & B_2 & B_3 & B_4 &\ldots\\
A_0 & A_1 & A_2 & A_3 &\ddots\\
& A_0 & A_1 & A_2 &\ddots\\
0 &&\ddots&\ddots&\ddots
\end{pmatrix}
\end{equation*}
\noindent dove $A_i, B_{i+1}, i \geq0$ sono matrici non negative di dimensione $k \times k$, sono dette M/G/1-type Markov Chains
\end{frame}
\begin{frame}
\frametitle{Obiettivi del paper}
Nuovo approccio per migliorare i modelli di coda utilizzando server secondari temporanei reclutati tra
\begin{block}{}
\begin{itemize}
\item Server secondari disponibili solo temporaneamente e servono gruppi di diversa dimensione
\item Dopo aver servito un gruppo, i server secondari lasciano il sistema
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Obiettivi del paper}
Il paper analizza anche altri approcci di modelli di coda con server secondari presenti in letteratura, ma si concentra su due caratteristiche che sono intrinseche in alcuni sistemi del mondo reale e non sono state studiate in passato:
\begin{block}{}
\begin{itemize}
\item Server secondari assegnati ad un gruppo e offrono i servizi uno alla volta
\item Con probabilità, un cliente servito da un server secondario diventa insoddisfatto e torna al sistema principale per ottenere un nuovo servizio
\item Si considera un sistema di coda a singolo server con arrivi secondo un processo di arrivo markoviano (\emph{MAP}) con matrici di parametro di ordine $m$.
\item Il \emph{MAP} generalizza processi puntiformi noti come Poisson, Poisson interrotto e rinnovamenti di tipo fase.
\item\emph{MAP} è ideale per situazioni in cui può essere presente una correlazione nei tempi tra gli arrivi.
\item L'uso di \emph{MAP} semplifica l'analisi e ne rende più facile la comprensione grazie alla notazione semplice e all'utilizzo del formalismo delle matrici.
\item Il generatore irriducibile del processo di arrivo markoviano (\emph{MAP}) è dato dalla somma delle matrici di parametro $D_0$ e $D_1$ di ordine m.
\item La matrice $D_0$ governa le transizioni del generatore sottostante che non producono arrivi, mentre la matrice $D_1$ governa quelle transizioni corrispondenti agli arrivi nel sistema.
\end{itemize}
\begin{block}{}
L'invariante di probabilità $\delta$ soddisfa l'equazione
\begin{block}{Varianza degli tempi interni di arrivo $(\sigma^2)$}
$$\sigma^2=\frac{2}{\lambda}\delta(-D_0)^{-1} e -\frac{1}{\lambda^2}$$
\end{block}
\begin{block}{Correlazione $(\rho_c)$ tra due successivi tempi interni di arrivo}
$$\rho_c =\frac{\lambda\delta(-D_0)^{-1} D_1(-D_0)^{-1} e -1}{2\lambda\delta(-D_0)^{-1} e -1}$$
\end{block}
\end{frame}
\begin{frame}{Modello di coda con server principale e secondario}
Il sistema ha un singolo server che offre servizi in modo FCFS.
\begin{itemize}
\item Il server principale offre servizi esponenziali con parametro $\mu_1$.
\item Con probabilità $p$, un cliente servito può essere reclutato per diventare un server secondario, che offre servizi ai clienti in attesa del sistema.
\item I tempi di servizio del server secondario sono esponenziali con parametro $\mu_2$.
\end{itemize}
\begin{block}{Achtung!}
Un cliente insoddisfatto dal servizio ricevuto dal server secondario potrebbe richiedere di essere servito di nuovo con probabilità $\nu$.
\end{block}
\end{frame}
\begin{frame}{Modello di coda con server principale e secondario}
Il sistema può avere al massimo due server in qualsiasi momento.
\begin{itemize}
\item Il server secondario sarà assegnato a un gruppo di $i$ clienti dove $i =\min\{\text{numero nella coda}, L\}$, ed $L$ è un pre-determinato positivo finito intero.
\item I clienti insoddisfatti sono reinseriti nel sistema. Quando il server secondario ha finito di servire tutti i clienti assegnati, viene rilasciato dal sistema.
\end{itemize}
\begin{block}{Edge case}
Il caso in cui $\nu=1$ non è interessante poiché ogni cliente servito da un server secondario viene reinserito nel sistema e l'assunzione di server secondari rallenta solo il sistema nell'offrire servizi.
\end{block}
\end{frame}
\begin{frame}
\frametitle{Struttura del sistema}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{hVQg024.png}
\caption{Immagine da [1]}
\label{fig:diagramma_di_stato}
\end{figure}
\end{frame}
\section{Studio del modello di coda in stato stazionario}
\begin{frame}
\frametitle{Due approcci possibili}
\begin{block}{QDB}
Primo processo che analizzeremo in questa sezione: un caso particolare delle catena di markov a tempo continuo (CTMC)
Una GI/M/1-type Markov chain assume che il tempo tra gli arrivi e il tempo di servizio dei clienti seguano una distribuzione generica, mentre è presente un solo server.
Un \emph{quasi-death-birth process} (QDB) è un caso particolare di una catena di Markov a tempo continuo (CTMC) che può essere utilizzato per modellare certi tipi di sistemi di coda. Ci sono due tipi di eventi che possono verificarsi: eventi di morte e eventi di nascita.
\end{block}
\begin{itemize}
\item Un evento di morte avviene quando un cliente lascia il sistema (i.e finisce di essere servito e se ne va)
\item Un evento di nascita avviene quando un nuovo cliente entra nel sistema
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Introduzione al QDB}
\begin{block}{}
Imponendo le restrizioni di entrambi i tipi di code $M/G/1$ che delle $G/M/1$, si vietano transizioni di più di livello alla volta, ottenendo così un processo QDB.
\end{block}
La matrice di transizione di tale processo è definita come segue:
\begin{equation*}
P=
\begin{pmatrix}
B_0 & A_1 &&& 0 \\
A_{-1}& A_0 & A_1 &&\\
& A_{-1}& A_0 & A_1 &\\
&& A_{-1}& A_0 &\ddots\\
0 &&&\ddots&\ddots
\end{pmatrix}
\end{equation*}
\end{frame}
\begin{frame}
\frametitle{Introduzione al QDB}
\begin{block}{Generalizzazione del QDB}
Si potrebbe pensare al QDB come un semplice lista lineare in evoluzione: ogni livello è un nodo nella lista ed il processo è autorizzato a muoversi da un nodo ad uno dei suoi due vicini.
Allora, il processo stocastico $\{\zeta_t=(i_t,n_t,\xi_t),,t\geq0\}$ che descrive il comportamento del modello in esame è un CTMC regolare e irriducibile.
\frametitle{Generatore infinitesimale del processo QBD}
\begin{block}{}
Il generatore (infinitesimale) di un processo QDB è una matrice quadrata infinita che descrive la probabilità di transizione del sistema da uno stato $i$ ad uno stato $j$, in un dato istante di tempo $t$, attraverso un evento infinitesimo
\end{block}
% \begin{itemize}
% \item La matrice ha un numero infinito di righe e colonne, una per ogni possibile stato del sistema.
% \end{itemize}
\end{frame}
\begin{frame}
\frametitle{Generatore infinitesimale del processo QBD}
Le transizioni di un QDB sono di tre tipi:
\begin{itemize}
\item\textbf{Birth}: una nuova entità entra nel sistema.
\item\textbf{Deaths}: una entità lascia il sistema.
\item\textbf{No-change}: il numero di entità nel sistema non cambia.
% La probabilità di transizione tra uno stato i e uno stato j dipende dalla differenza tra i e j. In particolare, se j = i+1, la transizione è una birth, se j = i-1, la transizione è una death, altrimenti j = i e la transizione è una no-change.
per sostituzione diretta, verifichiamo che le componenti del vettore $x =(x_0, x_1, ... , x_L)$, corrispondenti alle uniche soluzioni del sistema visto prima, sono date da
x_0 = \frac{\mu_2}{L(1-q)\mu_1 + \mu_2}, \qquad x_i = \frac{\mu_1(1-q)}{L(1-q)\mu_1 + \mu_2}, \qquad i = 1, ..., L
\end{equation*}
La tesi segue delle equazioni viste in precedenza assieme alla definizione di $\lambda$.
\qed
\end{block}
\end{frame}
\begin{frame}
\frametitle{Osservazioni sulla dimostrazione}
\begin{block}{Osservazione 1}
\begin{itemize}
\item La condizione di ergodicità richiede che il tasso di arrivo dei clienti per unità di tempo debba essere inferiore al tasso di servizio che i clienti ricevono per unità di tempo quando il sistema è sovraccarico.
\item Il tasso di servizio medio totale nel modello di coda è dato dalla somma del tasso di servizio fornito dal server principale e del tasso di servizio fornito dal server secondario.
\end{itemize}
Possiamo esprimere il tasso di servizio medio totale come segue:
Calcoliamo la probabilità $x_0$ che il secondo server non sia presente nel sistema in un qualsiasi momento in cui il sistema è sovraccarico.
\begin{itemize}
\item Quando il sistema attiva un server secondario la durata media del server secondario continuamente presente nel sistema è data da $\frac{L}{\mu_2}$. Pertanto, abbiamo:
La distribuzione stazionaria di un processo QDB è la distribuzione di probabilità asintotica delle diverse configurazioni del sistema che si osservano nel lungo termine.
% In altre parole, la distribuzione stazionaria è la distribuzione di probabilità di trovare il sistema in uno stato particolare quando il tempo tende all'infinito.
\end{block}
In particolare, per un processo QDB con n stati, la distribuzione stazionaria è un vettore di probabilità $\pi=(\pi_1, \pi_2, ..., \pi_n)$, dove ogni $\pi_i$ rappresenta la probabilità di trovare il sistema nello stato $i$.
Sotto l'assunzione che la condizione di ergodicità sia valida, esistono le seguenti probabilità stazionarie degli stati del CTMC $\{\zeta_t, t \geq0\}$:
$$\pi(i,n,\zeta)=\lim_{t \to\infty} P\{i_t = i, n_t = n, \zeta_t =\zeta\}, ~ i \geq0$$
dove $Q$ è la matrice di transizione del CTMC $\{\zeta_t, t \geq0\}$ e $e$ è il vettore colonna di tutti gli elementi $1$
\end{frame}
% La soluzione del problema di calcolo della distribuzione stazionaria di una QBD indipendente dal livello è ben nota; si veda [37]. Per i livelli in cui le transizioni della QBD non dipendono dal livello, i vettori di probabilità stazionaria sono trovati in forma matriciale geometrica. I vettori di probabilità stazionaria dei livelli di confine, in cui le transizioni della QBD dipendono dal livello, sono quindi direttamente trovati come soluzione del sistema di equazioni algebriche lineari. Tuttavia, se il numero di livelli di confine è grande (cosa che accade nel nostro modello se $L$ è grande), questo sistema ha una grande dimensione
\begin{frame}
\frametitle{Algoritmo per risolvere il sistema di equazioni di equilibrio}
\begin{block}{}
Vediamo un algoritmo per risolvere il sistema infinito di equazioni di equilibrio che sfrutta la struttura tridiagonale a blocchi ma dipendente dal livello del generatore per i livelli minori di $L +1$.
\end{block}
\end{frame}
\begin{frame}
\frametitle{Algoritmo per risolvere il sistema di equazioni di equilibrio}
\begin{theorem}
I vettori $\pi_i, i \geq0$, sono trovati come soluzione del sistema di equazioni algebriche lineari:
\item Utilizzando la ricorsione di vettori anziché quella di matrici si ha una significativa riduzione della memoria del computer e del tempo di esecuzione.
\item Le inverse delle matrici utilizzate nell'algoritmo sono sub-generatori irriducibili e semi-stabili, il che rende stabile l'implementazione numerica dell'algoritmo.
\begin{frame}{Introduzione alle code di tipo GI/M/1}
\begin{block}{}
Le code di tipo GI/M/1 assumono che i tempi di arrivo e di servizio siano distribuiti secondo una distribuzione generale, ma la distribuzione del tempo di servizio è indipendente dal numero di clienti in coda.
\item il livello $(\textbf{i},\textbf{j})$ indica che il server principale è occupato, ci sono $i-1$ clienti in attesa nella coda principale; il server secondario è occupato e il processo di arrivo si trova in varie fasi
\item Il livello $(\textbf{0},\textbf{0})$ corrisponde al sistema inattivo con il processo \emph{MAP} in una delle $m$ fasi.
Indicando con $\widetilde{\pi}$ il vettore di probabilità stazionario del generatore $\widetilde{Q}$ come visto prima, otteniamo qui la soluzione matriciale geometrica classica:
Distribuzione iper-esponenziale con una probabilità di mixing data da (0.5, 0.3, 0.15, 0.04, 0.01) con i corrispondenti tassi della distribuzione esponenziale pari a (1.09, 0.545, 0.2725, 0.13625, 0.068125). Qui abbiamo $\lambda=0.5, \sigma=3.3942$ e $\rho_c =0$.
\item Il \textbf{PCR} ha un alto numero medio di clienti nel sistema rispetto ad altri processi di arrivo.
\item$L$ aumenta il numero medio di clienti nel sistema per i primi quattro \emph{MAP}, ma per il \textbf{PCR} il trend non è crescente a causa della correlazione positiva.
\item Alti valori di $L$ aumentano la probabilità di avere più clienti nel sistema, soprattutto per i primi quattro \emph{MAP}.
\item Per gli arrivi \textbf{PCR}, $L$ diminuisce il numero medio di clienti nel sistema perché i server secondari aiutano a ripulire la coda.
\item Il valore di $L_{\mathrm{sec}}$ è elevato per \textbf{PCR} e solo per valori piccoli di L è inferiore per \textbf{ERL-NCR}.
\item L'alta irregolarità degli arrivi nel processo \textbf{PCR} causa la "fame" del sistema, durante la quale solo il server primario è occupato offrendo servizi per la maggior parte dei clienti.
\caption{Dipendenza della probabilità $P_{\mathrm{idle-system}}$ rispetto ad $L$ che il sistema sia in idle ad un momento arbitrario, per diversi \emph{MAPs}}
\item Esiste una grande differenza nella misura a seconda dei diversi \emph{MAPs} utilizzati.
\item Il valore ottimale di $L$ dipende dall'obiettivo: ad esempio, per il processo di arrivo \textbf{PCR}, il valore ottimale di $L$ è $16$ se si cerca di minimizzare $L_{\mathrm{system}}$, ma è 6 se si massimizza $P_{\mathrm{idle-system}}$.
\caption{Dipendenza della probabilità $P_{\mathrm{idle-busy}}$ rispetto ad $L$ che il main server sia in idle quando il server secondario è in occupato, per diversi \emph{MAPs}}
\caption{Dipendenza della probabilità $P_{\mathrm{busy-idle}}$ rispetto ad $L$ che il main server sia occupato quando il server secondario è in idle, per diversi \emph{MAPs}}
Fissiamo il valore di $L$ a $10$ e i tassi di servizio $\mu_1$ e $\mu_2$ a $1$ e $0.5$. Si variano i valori di $q$ e $\nu$ da $0$ a $1$ con passo $0.05$ e si analizza l'impatto sulle misure di prestazione del sistema.
% In questo esempio ci concentriamo sul processo di arrivo PCR, la cui scelta è basata sul comportamento di questo processo sulle misure evidenziato nel primo esempio illustrativo
\item Quando $q=1$, il sistema diventa un modello \emph{MAP}/M/1 classico e il valore di $L_\mathrm{system}$ diventa $22.30425$ per tutti i valori di $\nu$.
\item L'uso di un server secondario riduce il numero medio di clienti nel sistema di oltre il $40\%,$ e il punto di interruzione per il modello classico è $\nu^*\sim0.985$.
\item Si aumenta $\lambda$ del 50\% a 0.75 per testare l'importo della riduzione del numero medio di clienti nel sistema.
\item Mantenendo gli altri parametri costanti, si ottiene una riduzione superiore al 52,8\%.
\item Ciò suggerisce che l'aggiunta di un server secondario beneficia notevolmente l'aumento del carico del sistema anche con un tasso di insoddisfazione del cliente del 50\%.
\caption{ Dipendenza del numero medio di clienti nel sistema $L_{\mathrm{sec}}$ rispetto a $q$ e $\nu$ con $\lambda=0.75$}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Secondo esempio illustrativo}
\begin{itemize}
\item$L_\mathrm{sec}$ diminuisce significativamente quando $q$ si avvicina a $1$ e quando i clienti sono raramente reclutati per diventare server secondari.
\item$L_\mathrm{sec}$ ha il valore massimo quando $q$ è uguale a zero e $\nu$ è vicino a $1$, ma questo può creare ulteriore lavoro per il sistema e riflettersi negativamente sulla fornitura di servizi.
\caption{Dipendenza della probabilità $P_\mathrm{idle-system}$ che il sistema sia in idle ad un momento arbitrario rispetto a $q$ e $\nu$.}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Secondo esempio illustrativo}
\begin{itemize}
\item$P_\mathrm{idle-system}$ ha il valore minimo di $0.4445$ quando $\nu=1$ e $q=0$, il che è intuitivo poiché servire nuovamente i clienti dopo aver passato attraverso un server secondario mette un carico sul sistema.
\item$P_\mathrm{idle-system}$ aumenta quando $q$ aumenta e/o $\nu$ diminuisce, con un valore massimo di $0.5652$ ottenuto quando $q=0.65$ e $\nu=0$.
\item I parametri fissati sono $L=10$, $q=0.5$, $\nu=0.4$, e $\lambda=0.5$.
\item I tassi $\mu_1$ e $\mu_2$ vengono variati da $0.25$ a $2.0$ con incrementi di $0.05$, ma per soddisfare la condizione di ergodicità, il valore di $\mu_2$ viene limitato quando $\mu_1$ è piccolo.
\item Solo per $\mu_1\geq0.4$, il valore di $\mu_2$ può essere variato da $0.25$, come originariamente indicato
\caption{Dipendenza del numero medio di clienti con server secondario $L_{\mathrm{sec}}$ rispetto a $\mu_1$ e $\mu_2$}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Terzo esempio illustrativo}
\begin{itemize}
\item Il valore massimo di $L_{sec}$ è di circa 5 quando $\mu_1$ e $\mu_2$ sono piccoli.
\item Con un aumento di $\mu_1$ e $\mu_2$, il valore di $L_{sec}$ diminuisce come ci si aspetterebbe.
\item Per valori piccoli di $\mu_1$, la diminuzione è significativa all'aumentare di $\mu_2$; per valori più grandi di $\mu_1$, notiamo un tasso insignificante di diminuzione in $L_{sec}$ con un aumento di $\mu_2$.
\end{itemize}
\end{frame}
\section{Conclusioni}
\begin{frame}
\frametitle{Conclusioni}
\begin{itemize}
\item Il sistema di coda analizzato prevede la possibilità di reclutare un cliente già servito come server secondario per aiutare il server principale.
\item È stata considerata la possibilità che i clienti insoddisfatti con il servizio fornito dal server secondario possano ritornare nel sistema.
\item L'analisi dello stato stazionario della catena di Markov multidimensionale ha permesso di ottenere risultati numerici utili per prendere decisioni manageriali.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Generalizzazione del modello}
\begin{itemize}
\item Si può effettuare il servizio fornito dal server secondario in gruppi.
\item Si può rilassare l'ipotesi di avere solo un server secondario e vedere l'impatto dell'aumento a 2.
\item Si possono incorporare diverse politiche di controllo, come la possibilità di reclutare molti server secondari con due tipi di clienti