# Birth-Death Processes ![](https://i.imgur.com/N1rSKoe.png) 在了解 [Markov Chain](/K5BCWNpnQGii-DjMMuHnCQ) 的定義及其性質之後,這一節要介紹一種 continuous-time Markovian Chain: Birth-Death Processes。 在 Birth-Death Processes 中,state $n$ 只會跳到 state $n-1$ 或者 state $n+1$(state $0$ 只能跳到 state $1$),$n$ 代表 population in the system。 Transition rate 可表示為: $$\begin{cases} \lambda_n,\ n \to n+1 \newline \mu_n,\ n \to n-1\end{cases}$$ 所謂 Birth 就代表有一個 arrival($\lambda$ 對應的箭頭),使整個系統的 size 增加 1,而從一個 birth 到下一個 birth 發生的間隔時間為 exponential random variable。 所謂 Death 就代表一個 departure($\mu$ 對應的箭頭),也就是一個 customer 被 server 服務完而離開這個系統,系統的 size 減少 1,而兩個 Death(departure) 之間的時間長度也會是一個 exponential random variable。 由 Birth-Death Processes 延伸,包括日後會學到的 $M/M/1, M/M/1/2$ 等等各式各樣的 queue,這些 queue 都是以 Birth-Death Processes 為基礎,差別只在於 Server 的數量(影響到 service rate($\mu$))以及 System Capacity 的不同(影響到 blocking probability & effective arrival rate($\lambda_{eff}$))。 :::info 分析各種 queue 的第一步就是搞清楚 state transition,畫出各個 state 之間的 arrival & departure(service) rate(如 Figure 2.1),然後運用下面會介紹的 Balanced Equations 求出 steady state probability($p_n$) ,有了 steady state probability($p_n$) 就可以進一步分析 queue 的各種 metrics,像是 average system size $L$,以及 average waiting time $W$ 等等。 ::: 因為 Birth-Death Processes 屬於 continuous-time Markov Chain,因此我們可以寫出它的 generator matrix: $$Q = \begin{bmatrix} -\lambda_0 & \lambda_0 & 0 & 0 & 0 &\cdots \\ \mu_1 & -(\lambda_1 + \mu_1) & \lambda_1 & 0 & 0 & \dots \\ 0 & \lambda_2 & -(\lambda_2+\mu_2) & \lambda_2 & 0 &\cdots \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \end{bmatrix}$$ 當 state space 是有限的時候,可用 $$\begin{cases} PQ = 0 \\ Pe = 1\end{cases}$$ 來求 steady state probability。 而 $PQ = 0$ 的式子經過整理其實就是 Global Balanced Equations。 ## Global Balanced Equations 首先寫出 $PQ = 0$: $$\begin{cases} 0 = -p_{n}(\lambda_{n} + \mu_n) + p_{n-1}\lambda_{n-1} + p_{n+1}\mu_{n+1}, n \gt 0\\ 0 = -p_0\lambda_0 + p_1 \mu_1, n = 0 \end{cases}$$ 移項: $$\begin{cases} p_{n}(\lambda_{n} + \mu_n) = p_{n-1}\lambda_{n-1} + p_{n+1}\mu_{n+1}, n \gt 0\\ p_0\lambda_0 = p_1 \mu_1, n = 0 \end{cases}$$ :::info Global Balanced Equations 的意義為:在 Steady state,對一個 $p_n$ 來說要達到 Flow Balance,就是流進 $p_n$ 的 flow(右式)要和流出(左式)相等(見上面 Fig 2.1,注意**箭頭的流向**)。 ::: 將第一式移項,我們可以將 $p_{n+1}$ 表示為: $$p_{n+1} = \frac{\lambda_{n} + \mu_n}{\mu_{n+1}}p_{n} - \frac{\lambda_{n-1}}{\mu_{n+1}}p_{n-1}$$ 將第二式移項,我們可以將 $p_{1}$ 表示為: $$p_1 = \frac{\lambda_0}{\mu_1} p_0$$ 如此一來我們可以由 $p_0, p_1, p_2$ 開始,不斷往上疊代,代換出 $p_3, p_4,\cdots$,下面以 $p_2$ 為例: $$\begin{aligned} p_{2} &= \frac{\lambda_{1} + \mu_1}{\mu_{2}}p_{1} - \frac{\lambda_{0}}{\mu_{2}}p_{0} \newline &= \frac{\lambda_{1} + \mu_1}{\mu_{2}} \cdot \frac{\lambda_0}{\mu_1} p_0 - \frac{\lambda_{0}}{\mu_{2}}p_{0} \newline &= \frac{\lambda_1 \lambda_0}{\mu_2 \mu_1} \cdot p_0 \end{aligned}$$ 在代換的過程中我們會發現其規律,$p_n$ 可以被表示成: $$p_n = \frac{\lambda_{n-1}\lambda_{n-2}\cdot\cdot\cdot\lambda_{0}}{\mu_n\mu_{n-1}\cdot\cdot\cdot\mu_1} \cdot p_0$$ ## Detailed Balanced Equations ![](https://i.imgur.com/98C9Rd4.png) 對$p_{n-1}, p_{n}$ 的中間的flow來說,跨到左邊跟跨到右邊(注意**箭頭的流向**) In the long term 會平衡(記得教授上課時說的例子:教授在上課期間內,從黑板左側走到右側,以及從右側走到左側的次數會差不多,最多差一次): $$\begin{cases} p_{n-1}\lambda_{n-1} = p_n\mu_n \\ p_n = \frac{\lambda_{n-1}}{\mu_n}\cdot p_{n-1} \end{cases}$$ 繼續代換(將 $p_{n-1}$ 用 $p_{n-2}$ 表示,以此類推)即可得到下式 $p_n = \frac{\lambda_{n-1}\lambda_{n-2}\cdot\cdot\cdot\lambda_{0}} {\mu_n\mu_{n-1}\cdot\cdot\cdot\mu_1} \cdot p_0$ 不論是 Global or Detailed,最後推導出來的結果都一樣:In steady state(In the long term) $$p_n = \frac{\lambda_{n-1}\lambda_{n-2}\cdot\cdot\cdot\lambda_{0}}{\mu_n\mu_{n-1}\cdot\cdot\cdot\mu_1} \cdot p_0$$ ## Steady State Probability 求解 $p_n$ 有三種方法可以用: 1. Iterative 2. Generating Funtions 3. Recurrence Fromulas 以下用 $M/M/1$ queue 來示範上述三種方法。 ![](https://i.imgur.com/2OSafc8.png) > [image source](http://programmingpaul.blogspot.com/2013/04/queueing-theorymm1-model.html) ### Iterative 已知: $$p_n =\frac{\lambda_{n-1}\lambda_{n-2}\cdot\cdot\cdot\lambda_{0}}{\mu_n\mu_{n-1}\cdot\cdot\cdot\mu_1} \cdot p_0 = (\frac{\lambda}{\mu})^np_0 = \rho^n p_0$$ 利用機率合為一求解 $p_0$: $$\begin{align} &\sum_0^{\infty} p_n = \sum_0^{\infty}\rho^np_0 = p_0\sum_0^{\infty}\rho^n = 1 \\ &\Rightarrow p_0 = \frac{1}{\sum_0^{\infty} \rho^n} = 1 - \rho\ (\ given \ \rho \lt 1)\\ &\therefore p_n = p_0 \rho^n = (1 - \rho) \rho^n \end{align}$$ ### Generating Functions 定義 [generating function](https://en.wikipedia.org/wiki/Generating_function) $P(z)$: $$P(z) = \sum_0^{\infty}p_n\cdot z^n$$ 寫出 Global Balance Equation: $$\begin{cases} p_n(\lambda + \mu) = p_{n+1}\cdot\mu + p_{n-1}\cdot\lambda \\ p_1 = \rho p_0 \end{cases}$$ 先對第一式做整理: $$p_{n+1} = p_n (1+\rho) - p_{n-1} \cdot \rho$$ 同乘上 $z^n$: $$p_{n+1}z^{n} =(1+\rho)p_{n}z^{n} - \rho p_{n-1} z^{n}$$ 把 $z$ 做 sum 起來: $$\sum_{n=1}^{\infty} p_{n+1}z^{n} = \sum_{n=1}^{\infty} (1+\rho)p_{n}z^{n} - \sum_{n=1}^{\infty} \rho p_{n-1} z^{n}$$ 調整 $z$ 的項次使之和 $p$ 一致: $$\begin{aligned} z^{-1}\sum_{n=1}^{\infty}p_{n+1}z^{n+1} &=(1+\rho)\sum_{n=1}^{\infty}p_{n}z^{n} - z\rho\sum_{n=1}^{\infty}p_{n-1}z^{n-1} \\ \end{aligned}$$ 將 sigma 項換回 generating function,可得: $$z^{-1}(P(z) - p_0 - p_1z) = (1+\rho)(P(z) - p_0) - z\rho P(z)$$ 代入第二式($p_1 = \rho p_0$): $$z^{-1}(P(z) - (1+\rho z)p_0) = (1+\rho)(P(z) - p_0) - z\rho P(z)$$ 經過一場混戰,對式子做整理後可得: $$P(z) = \frac{p_0}{1 - z \rho}$$ $z = 1$ 代入,可得: $$\begin{align} &P(1) = \sum p_n\cdot 1^n = 1 = \frac{p_0}{1 - \rho}, \therefore p_0 = 1 - \rho \\ &\therefore P(z) = \frac{1 - \rho}{1 - z \rho} = \sum_0^{\infty} (1-\rho)\rho^n \cdot z^n = \sum_0^{\infty} p_n\cdot z^n \\ &\therefore p_n = (1-\rho)\rho^n \end{align}$$ :::info NOTE: 當 $z = 1$ 時,$\frac{d}{dz} P(z)$就是 system size 的期望值 $L = \sum n p_n$ ::: ### Recurrence Formulas $$p_{n+1} = p_n (1+\rho) - p_{n-1} \cdot \rho, n \gt 1$$ 用公式解遞迴(公式解以及其推導請參考離散數學相關課程及教材),base case 為 $p_1 = \rho p_0$,以及$\sum p_n = 1$