# Queueing Theory - 3.1 Birth-Death Processes contributed by <[`kaeteyaruyo`](https://github.com/kaeteyaruyo)> ###### tags: `Queueing Theory` ![](https://i.imgur.com/LLxjuEf.png) > Figure 3.1 Rate transition diagram for a birth death process. * 第三章開始我們都只討論排隊系統的 steady state,不會有 steady state 的就沒有什麼探討價值了 * Birth-Death Processes 是 M/M/1 的通式,他的每一個狀態代表系統內還存有的事件數,每個時間區間會發生的狀態轉移就只有可能是 +1 (往後一個狀態)、 0 (維持在當前狀態)、 -1 (往前一個狀態)這三種可能性而已,如 Fig. 3.1 所示 * 在第 $n$ 個狀態往後一個狀態的**遷移率 (transition rate)** 是 $\lambda_n$ * 在第 $n$ 個狀態往前一個狀態的遷移率是 $\mu_n$,因為第 0 個狀態無法再往前遷移了,所以 $\mu_0 = 0$ * 依照這樣的規範,我們可以得知一個 birth-death process 的 intensity matrix $\textbf{Q}$(從某狀態變化到另一個狀態的速率矩陣)會有以下的規律 $$ q_{n, n+1} = \lambda_n, \; q_{n, n-1} = \mu_n, \; q_{r, j} = 0 \text{ if } |r - j| \geq 2 \\ v_n = \lambda_n + \mu_n, \; \mu_0 = 0 $$ 也就是只有對角線和對角線上下的斜線內有數字,其他都是 0。看起來會像 $$ \textbf{Q} = \begin{bmatrix} -(\lambda_0 + \mu_0) & \lambda_0 & 0 & \dots \\ \mu_1 & -(\lambda_1 + \mu_1) & \lambda_1 & 0 \\ 0 & \mu_2 & -(\lambda_2 + \mu_2) & \lambda_2 \\ \vdots & 0 & \mu_3 & \ddots \end{bmatrix} $$ * 我們想要知道 birth-death process 的穩定態會有什麼樣的分佈,因此可以透過 Theorem 2.13 和 Theorem 2.15 列出 stationary equation,然後求得 $p_n$ 在穩定態的數值 * **Birth-death process 是一個連續時間馬可夫鍊**,根據 Theorem 2.15,在穩定態時必須符合 $\textbf{p}^{'}(t) = \textbf{p}(t)\textbf{Q}$ 的等式,也就是 $$ 0 = -v_n p_n + \sum_{r \neq n}p_r q_{rn} $$ * 將上式代入實際的遷移率,會得到 $$ \begin{cases} 0 = -(\lambda_n + \mu_n)p_n + \lambda_{n-1}p_{n-1} + \mu_{n+1}p_{n+1}, \quad n \geq 1 \\ 0 = -\lambda_0 p_0 + \mu_1 p_1, \quad n = 0 \end{cases} $$ * 我們想要得到 $p_n$ 的通式,這個式子裏面不可以有未知項。因為 birth-death process 的 stationary equation 還算規律,可以簡單的用暴力法求得 $p_n$ 的通式 $$ \begin{align} & \Rightarrow \begin{cases} p_{n+1} = \frac{\lambda_n + \mu_n}{\mu_{n+1}}p_n - \frac{\lambda_{n-1}}{\mu_{n+1}}p_{n-1}, \quad n \geq 1 \\ p_1 = \frac{\lambda_0}{\mu_1}p_0, \quad n = 0 \\ \end{cases} \\ & \Rightarrow p_2 = \frac{\lambda_1 \lambda_0}{\mu_2 \mu_1}p_0, \; p_3 = \frac{\lambda_2 \lambda_1 \lambda_0}{\mu_3 \mu_2 \mu_1}p_0, \; \dots \\ & \Rightarrow p_n = p_0 \cdot \prod_{i=0}^{n} \frac{\lambda_{i-1}}{\mu_i} \tag{3.3} \end{align} $$ * 再加上 $\sum_{\forall n} p_n = 1$ 的 boundary condition,可以得知 $$ \begin{align} & \sum_{\forall n} p_n = 1 \\ & \Rightarrow \Big( 1 + \sum_{n=1}^{\infty} \prod_{i=0}^{n} \frac{\lambda_{i-1}}{\mu_i}\Big)p_0 = 1 \\ & \Rightarrow p_0 = \Big( 1 + \sum_{n=1}^{\infty} \prod_{i=0}^{n} \frac{\lambda_{i-1}}{\mu_i}\Big)^{-1} \end{align} $$ 將 $p_0$ 代回 $(3.3)$ 式,即可獲得 $p_n$ 的通式 * **注意!!** 等號右邊的分式,其**分母必須要收斂**才代表 $p_0$ 有解,否則這個系統就是無法達到 steady state 的系統 * 上述方法叫作**疊代法 (iterative method)**,僅適用在 stationary equation 較規律的 birth-death process 當中。面對 stationary equation 不規律的系統,疊代法會變得很難用,所以稍後在 M/M/1 系統當中,還會再另外介紹兩種方法來得到 $p_n$ 的通式 * 透過 Theorem 2.15 的方式列出 stationary equation 有時候很麻煩,我們可以改從 **flow balance** 的角度來看待 stationary equation(此時,又可以將其稱為 **balance equation**),如此一來在面對轉移行為不規則的系統時,也可以輕鬆的列出 stationary equation ![](https://i.imgur.com/bYkEohM.png) > Figure 3.2 狀態之間的 Flow balance。切線處代表從狀態 $n$ 往右看的 flow balance 會牽涉到哪些 flow。 * 當我們僅關注一個狀態和他其中一邊(右邊或左邊)的鄰居之間的流量平衡時,所列出的式子叫作 **Local balance equation** * 對於狀態 $n$ 來說,從自己**流出**到右邊鄰居的流量(是損耗,以負的流量表示)和從右邊鄰居**流入**自己的流量(是收入,以正的流量表示)需要達到平衡,因此往右看的 local balance equation 就是 $$ 0 = -\lambda_n p_n + \mu_{n+1} p_{n+1} $$ * 同理,往左邊看的 local balance equation 則是 $$ 0 = -\mu_n p_n + \lambda_{n-1} p_{n-1} $$ * 當我們不特別關注是往左邊還是往右邊看,只在乎對於某個狀態來說,總流入和總流出必須達到收支平衡,所列出的式子叫作 **Global balance equation**。以 Fig. 3.2 來說,狀態 $n$ 的 global balance equation 是 $$ 0 = -(\lambda_n + \mu_n)p_n + \lambda_{n-1}p_{n-1} + \mu_{n+1} p_{n+1} $$ * 在較複雜的系統當中,每一個狀態牽涉到的轉移(也就上圖中的有向邊)數量可能不規律。在面對這樣的系統時,使用 global balance equation 的觀點會比起使用 $\textbf{p}^{'}(t) = \textbf{p}(t)\textbf{Q}$ 的觀點還要容易列出系統的 stationary equation