M/M/1型待ち行列の微分方程式

公開:2020/10/22
更新:2020/10/24
2 min読了の目安(約2200字IDEAアイデア記事

この記事では時刻ttにシステム内にnn人いる確立をPn(t)P_n(t),単位時間あたりに到着する人数の平均をλ\lambda,サービスを受ける人数をμ\muとした時の微分方程式を導く.

この待ち行列には以下の3つの確率が絡んでくる.

時刻ttnn人並んでいる確立 Δt\Delta tの間に客が来る確立 Δt\Delta tの間にサービスが終わる確立
Pt(n)P_t(n) λΔt\lambda \Delta t μΔt\mu \Delta t

時刻t+Δtt+\Delta tにおいて待ち行列の長さがnnである確立Pn(t+Δt)P_n({t+\Delta t})は4つの状態から遷移し起こりうる.

時刻tでn-1人並んでいて,その後1人並びサービスが1人終わらない場合

Δt\Delta tの間にサービスが終わらない確率は(1μΔt)(1-\mu\Delta t)と表される.

Pn1(t)λΔt(1μΔt) P_{n-1}(t)\lambda \Delta t (1-\mu \Delta t)

時刻tでn人並んでいて,その後1人並び1人サービスが1人終了する場合

Pn(t)λΔtμΔt P_n(t)\lambda \Delta t \mu \Delta t

時刻tでn人並んでいて,その後誰も来ずサービスが1人も終わらない場合

Pn(t)(1λΔt)(1μΔt) P_n(t)(1-\lambda \Delta t) (1-\mu \Delta t)

時刻tでn+1人並んでいて,その後誰も来ずサービスが1人終了する場合

Pn+1(t)(1λΔt)μΔt P_{n+1}(t)(1-\lambda \Delta t)\mu \Delta t

以上より,

Pn(t+Δt)=Pn1(t)λΔt(1μΔt)+Pn(t)λΔtμΔt+Pn(t)(1λΔt)(1μΔt)+Pn+1(t)(1λΔt)μΔt P_n(t+\Delta t)=P_{n-1}(t)\lambda \Delta t (1-\mu \Delta t)+P_n(t)\lambda \Delta t \mu \Delta t+P_n(t)(1-\lambda \Delta t) (1-\mu \Delta t)+P_{n+1}(t)(1-\lambda \Delta t)\mu \Delta t

といえる.これをさらに式変形する.具体的にはΔt0\Delta t \rightarrow 0としたときに誤差項として扱う(Δt)2(\Delta t)^2を含むものとΔt\Delta tを含むもの,そうでないものに分け,微分の定義の形となるようにしている.式変形の便宜上(Δt)2(\Delta t)^2を含むものも計算しているが,実際に計算を行う場合はΔt0\Delta t \rightarrow0とすると消えるので計算しなくとも良い.

Pn(t+Δt)=Pn1(t)λΔt+Pn(t)+Pn+1(t)μΔtPn1(t)λμ(Δt)2+Pn(t)λμ(Δt)2Pn+1(t)μ(Δt)2+Pn(t)μλ(Δt)2Pn(t+Δt)=Pn(t)+Δt(Pn1(t)λPn(t)μPn(t)λ+Pn+1(t)μ)+Pn1(t)λμ(Δt)2+Pn(t)λμ(Δt)2Pn+1(t)μ(Δt)2+Pn(t)μλ(Δt)2Pn(t+Δt)Pn(t)Δt=Pn1(t)λPn(t)μPn(t)λ+Pn+1(t)μPn1(t)λμ(Δt)2+Pn(t)λμ(Δt)2Pn+1(t)μ(Δt)2+Pn(t)μλ(Δt)2 \begin{aligned} P_n(t+\Delta t)=P_{n-1}(t)\lambda \Delta t +P_n(t)+P_{n+1}(t)\mu \Delta t - P_{n-1}(t)\lambda \mu (\Delta t)^2 + P_n(t)\lambda \mu (\Delta t)^2 - P_{n+1}(t)\mu(\Delta t)^2 + P_n(t)\mu \lambda (\Delta t)^2\\ P_n(t+\Delta t)=P_n(t) + \Delta t(P_{n-1}(t)\lambda - P_n(t)\mu - P_n(t)\lambda + P_{n+1}(t)\mu) + - P_{n-1}(t)\lambda \mu (\Delta t)^2 + P_n(t)\lambda \mu (\Delta t)^2 - P_{n+1}(t)\mu(\Delta t)^2 + P_n(t)\mu \lambda (\Delta t)^2\\ \frac{P_n(t+\Delta t) - P_n(t)}{\Delta t} = P_{n-1}(t)\lambda - P_n(t)\mu - P_n(t)\lambda + P_{n+1}(t)\mu - P_{n-1}(t)\lambda \mu (\Delta t)^2 + P_n(t)\lambda \mu (\Delta t)^2 - P_{n+1}(t)\mu(\Delta t)^2 + P_n(t)\mu \lambda (\Delta t)^2\\ \end{aligned}

ここでΔt0\Delta t \rightarrow 0とすると微分の定義と(Δt)2(\Delta t)^2を含む項が消えることによって

ddtPn(t)=Pn1(t)λPn(t)μPn(t)λ+Pn+1(t)μddtPn(t)=Pn1(t)λ(μ+λ)Pn(t)+Pn+1(t)μ \frac{d}{dt}P_{n}(t)=P_{n-1}(t)\lambda - P_n(t)\mu - P_n(t)\lambda + P_{n+1}(t)\mu\\ \frac{d}{dt}P_{n}(t)=P_{n-1}(t)\lambda - (\mu + \lambda)P_{n}(t)+ P_{n+1}(t)\mu\\

以上よりM/M/1待ち行列の微分方程式を導くことができた.