【随机过程】18 - 连续时间马氏链与排队论

连续时间马尔科夫链与排队论

1. 连续时间马氏链

Continuous Time Markov Chains \text{Continuous Time Markov Chains} Continuous Time Markov Chains

1.1 概述

  离散时间马尔科夫链是时间是离散的,状态也是离散的一种随机过程。而连续时间马氏链是时间是连续的,状态是离散的一种随机过程。我们可以重新定义转移概率,跟离散的定义是一样的

S = { x 1 , x 2 , . . . , x n , . . . } P i j ( s , t ) = P ( X ( t ) = j ∣ X ( s ) = i ) ∀ t , t 1 , . . . , t n ⇒ ( X ( t 1 ) , . . . , X ( t n ) ) P ( X ( t n ) = x n ∣ X ( t n − 1 ) = x n − 1 , . . . , X ( t 1 ) = x 1 ) = P ( X ( t n ) = X n ∣ X ( t n − 1 ) = x n − 1 ) S = \{x_1,x_2,...,x_n,... \} \\ P_{ij}(s,t) = P(X(t)=j |X(s)=i) \\ \forall t,t_1,...,t_n \Rightarrow (X(t_1),...,X(t_n)) \\ P(X(t_n)=x_n|X(t_{n-1})=x_{n-1},...,X(t_1)=x_1) = P(X(t_n)=X_n|X(t_{n-1})=x_{n-1}) S={x1,x2,...,xn,...}Pij(s,t)=P(X(t)=jX(s)=i)t,t1,...,tn(X(t1),...,X(tn))P(X(tn)=xnX(tn1)=xn1,...,X(t1)=x1)=P(X(tn)=XnX(tn1)=xn1)

  同时,我们一般认为转移概率具有平稳性,因此转移概率就与具体时间没有关系了

P i j ( s , t ) = P i j ( t − s ) P_{ij}(s,t) = P_{ij}(t-s) Pij(s,t)=Pij(ts)

  这个转移概率的含义是,从i出发,经过t-s时间后到达j的概率。t-s这段时间,一般来说是包括在i上等待的时间和从i到j转移的时间的。如果我们忽略从i到j的转移时间,也就是会立刻到达,t-s就是一个停留的时间。

  对于连续时间马氏链的转移概率,这个概率包括两部分,一部分是停留时间(在i上停留的时间),一部分是跳变概率(从i到达要转移到哪里去)。

Sojourn Time Jump Probability \text{Sojourn Time} \\ \text{Jump Probability} Sojourn TimeJump Probability

  相比于离散时间马氏链,连续时间马氏链多了一个停留时间的概念,我们先研究停留时间的规律,然后进而研究跳变规律。

1.2 停留时间的分布

  事实上,停留时间是服从指数分布的,因为指数分布是无记忆的。

  我们可以分析一下停留时间的分布。

T i P ( T i > t ) = P ( X ( s ) = i , s ∈ [ 0 , t ] ) = P ( X ( s ) = i , X ( t ) = i , s ∈ [ 0 , t ] ) = P ( X ( s ′ ) = i , s ′ ∈ [ s , t ] ∣ X ( s ′ ′ ) = i , s ′ ′ ∈ [ 0 , s ] ) P ( X ( s ′ ′ ) = i , s ′ ′ ∈ [ 0 , s ] ) = P ( X ( s ′ ) = i , s ′ ∈ [ s , t ] ∣ X ( s ) = i ) P ( T i > s ) = P ( T i > t − s ) P ( T i > s ) T_i \quad P(T_i >t) = P(X(s) = i,s\in[0,t]) \\ = P(X(s)=i,X(t)=i,s \in [0,t]) \\ = P(X(s')=i,s' \in[s,t] |X(s'')=i,s'' \in [0,s])P(X(s'')=i,s'' \in [0,s]) \\ =P(X(s')=i,s' \in[s,t] |X(s)=i)P(T_i > s) \\ = P(T_i > t-s)P(T_i > s) TiP(Ti>t)=P(X(s)=i,s[0,t])=P(X(s)=i,X(t)=i,s[0,t])=P(X(s)=i,s[s,t]X(s)=i,s[0,s])P(X(s)=i,s[0,s])=P(X(s)=i,s[s,t]X(s)=i)P(Ti>s)=P(Ti>ts)P(Ti>s)

Let  G ( t ) = P ( T > t ) G ( t ) = G ( s ) G ( t − s ) ∀ s ∈ [ 0 , t ] \text{Let } G(t) = P(T>t) \\ G(t) = G(s) G(t-s)\quad \forall s \in [0,t] Let G(t)=P(T>t)G(t)=G(s)G(ts)s[0,t]

  这个形式的方程的唯一解就是指数

P ( T > t ) = G ( t ) = e x p ( − λ t ) ⇒ T ∼ e x p ( λ ) P(T>t) = G(t) = exp(-\lambda t) \Rightarrow T \sim exp(\lambda) P(T>t)=G(t)=exp(λt)Texp(λ)

1.3 跳变概率

1.3.1 连续时间马氏链CK方程

  下面我们继续研究跳变概率。先从CK方程开始说起

Chapman-Kolmogorow P i j ( s + t ) = ∑ k P i k ( s ) P k i ( t ) \text{Chapman-Kolmogorow} \\ P_{ij}(s+t) = \sum_k P_{ik}(s)P_{ki}(t) Chapman-KolmogorowPij(s+t)=kPik(s)Pki(t)

  连续时间的CK方程和离散时间的CK方程是完全一样的。不过由于离散时间的CK方程,转移的最小单位是一步,可以对n步转移概率矩阵进行归并

P ( n ) = P ( n − 1 ) P ( n ) = P ( 1 ) P ( n − 1 ) ⇒ P ( n ) = ( P ( 1 ) ) n P(n) = P(n-1)P(n) = P(1)P(n-1) \\ \Rightarrow P(n) = (P(1))^n P(n)=P(n1)P(n)=P(1)P(n1)P(n)=(P(1))n

  而连续时间马氏链找不到基本的步骤,因为时间理论上是可以无限细分的。连续时间和离散时间马氏链在这里就开始产生区别了。缺乏原子步骤。

  但是,由于离散时间一般对应差分方程,连续时间一般对应微分方程。因此,我们可以使用微分方程的形式对CK方程进行进一步的表示。

P i j ( t + Δ t ) − P i j ( t ) Δ t = ∑ k P i k ( t ) P k j ( Δ t ) − P i j ( t ) Δ t = P i j ( t ) P j j ( Δ t ) − P i j ( t ) + ∑ k = j P i k ( t ) P k j ( Δ t ) Δ t = P i j ( t ) ( P j j ( Δ t ) − 1 ) Δ t + ∑ k = j P i k ( t ) P k j ( Δ t ) Δ t \frac{P_{ij}(t+\Delta t)-P_{ij}(t)}{\Delta t} = \frac{\sum_k P_{ik}(t)P_{kj}(\Delta t)-P_{ij}(t)}{\Delta t} \\ = \frac{P_{ij}(t)P_{jj}(\Delta t)-P_{ij}(t)+\sum_{k \cancel=j}P_{ik}(t)P_{kj}(\Delta t)}{\Delta t} \\ = \frac{P_{ij}(t)(P_{jj}(\Delta t)-1)}{\Delta t} + \frac{\sum_{k \cancel=j}P_{ik}(t)P_{kj}(\Delta t)}{\Delta t} ΔtPij(t+Δt)Pij(t)=ΔtkPik(t)Pkj(Δt)Pij(t)=ΔtPij(t)Pjj(Δt)Pij(t)+k= jPik(t)Pkj(Δt)=ΔtPij(t)(Pjj(Δt)1)+Δtk= jPik(t)Pkj(Δt)

  现在我们想求这个式子的极限,事实上,左边式子的极限也是有意义的,因为当转移时间无限趋近于0的时候,从j状态到j状态没有转移时间,只能待在j,也就是说概率是1,上下就都是0了,就有了求极限的价值

Δ t → 0 ⇒ l i m Δ t → 0 P i j ( t ) ( P j j ( Δ t ) − 1 ) Δ t + l i m Δ t → 0 ∑ k = j P i k ( t ) P k j ( Δ t ) Δ t = P i j ( t ) ( l i m Δ t → 0 P j j ( Δ t ) − 1 Δ t ) + ∑ k = j P i k ( t ) ( l i m Δ t → 0 P k j ( Δ t ) Δ t ) \Delta t \rightarrow 0 \Rightarrow lim_{\Delta t \rightarrow 0} \frac{P_{ij}(t)(P_{jj}(\Delta t)-1)}{\Delta t} + lim_{\Delta t \rightarrow 0}\frac{\sum_{k \cancel=j}P_{ik}(t)P_{kj}(\Delta t)}{\Delta t} \\ = P_{ij}(t)(lim_{\Delta t \rightarrow 0} \frac{P_{jj}(\Delta t)-1}{\Delta t}) + \sum_{k \cancel = j} P_{ik}(t) (lim_{\Delta t \rightarrow 0} \frac{P_{kj}(\Delta t)}{\Delta t }) Δt0limΔt0ΔtPij(t)(Pjj(Δt)1)+limΔt0Δtk= jPik(t)Pkj(Δt)=Pij(t)(limΔt0ΔtPjj(Δt)1)+k= jPik(t)(limΔt0ΔtPkj(Δt))

Let  q i i = l i m Δ t → 0 P j j ( Δ t ) − 1 Δ t q i j = l i m Δ t → 0 P i j ( Δ t ) Δ t i = j \text{Let } q_{ii} = lim_{\Delta t \rightarrow 0} \frac{P_{jj}(\Delta t)-1}{\Delta t} \\ q_{ij} = lim_{\Delta t \rightarrow 0} \frac{P_{ij}(\Delta t)}{\Delta t }\quad i \cancel=j Let qii=limΔt0ΔtPjj(Δt)1qij=limΔt0ΔtPij(Δt)i= j

  然后我们就得到了微分方程,但是这个微分方程对角元和非对角元是有区别的

d P i j ( t ) d t = P i j ( t ) g i i + ∑ k = j P i k ( t ) g k j = ∑ k P i k ( t ) q k j ⇒ d d t P ( t ) = P ( t ) Q P ( t ) = ( P i j ( t ) ) i j Q = ( q i j ) i j \frac{dP_{ij}(t)}{dt} = P_{ij}(t)g_{ii} + \sum_{k \cancel=j} P_{ik}(t)g_{kj} = \sum_k P_{ik}(t) q_{kj} \\ \Rightarrow \frac{d}{dt}P(t) = P(t)Q \\ P(t) = (P_{ij}(t))_{ij} \\ Q = (q_{ij})_{ij} dtdPij(t)=Pij(t)gii+k= jPik(t)gkj=kPik(t)qkjdtdP(t)=P(t)QP(t)=(Pij(t))ijQ=(qij)ij

  我们可以得到新的对应关系,与离散时间一步转移概率相对应的就是Q矩阵。Q矩阵就是连续时间马氏链的一步转移矩阵。

Q = l i m Δ t → 0 = P ( Δ t ) − I Δ t Q = lim_{\Delta t \rightarrow 0} = \frac{P(\Delta t)-I}{\Delta t} Q=limΔt0=ΔtP(Δt)I

1.3.2 Q矩阵

  这个Q矩阵叫做生成元,对应一步转移概率的原子操作

Generator \text{Generator} Generator

  对于Q矩阵而言,对角线元一定都是非正的,非对角线元一定都是非负的

q i i = l i m Δ t → 0 P j j ( Δ t ) − 1 Δ t q i j = l i m Δ t → 0 P i j ( Δ t ) Δ t i = j q i i ≤ 0 q i j ≥ 0 i = j q_{ii} = lim_{\Delta t \rightarrow 0} \frac{P_{jj}(\Delta t)-1}{\Delta t} \\ q_{ij} = lim_{\Delta t \rightarrow 0} \frac{P_{ij}(\Delta t)}{\Delta t }\quad i \cancel=j \\ q_{ii} \leq 0 \\ q_{ij} \geq 0 \quad i \cancel=j qii=limΔt0ΔtPjj(Δt)1qij=limΔt0ΔtPij(Δt)i= jqii0qij0i= j

  对于一步转移矩阵而言,行和是1,而对于Q矩阵而言,行和是0

∑ j g i j = 0 ⇒ ∑ j P i j ( Δ t ) − 1 = 0 \sum_jg_{ij}=0\Rightarrow\sum_{j} P_{ij}(\Delta t) -1 = 0 jgij=0jPij(Δt)1=0

1.3.3 前进后退方程

  事实上,我们知道CK方程具有两种展开形式。

P i j ( t + Δ t ) − P i j ( t ) Δ t = ∑ k P i k ( t ) P k j ( Δ t ) − P i j ( t ) Δ t ⇒ d d t P ( t ) = P ( t ) Q ( i ) \frac{P_{ij}(t+\Delta t)-P_{ij}(t)}{\Delta t} = \frac{\sum_k P_{ik}(t)P_{kj}(\Delta t)-P_{ij}(t)}{\Delta t} \\ \Rightarrow \frac{d}{dt}P(t) = P(t)Q \quad\quad(i) ΔtPij(t+Δt)Pij(t)=ΔtkPik(t)Pkj(Δt)Pij(t)dtdP(t)=P(t)Q(i)

  我们用另外一种展开方法进行分析

l i m Δ t → 0 P i j ( t + Δ t ) − P i j ( t ) Δ t = l i m Δ t → 0 ∑ k P i k ( Δ t ) P k j ( t ) − P i j ( t ) Δ t = l i m Δ t → 0 P i i ( Δ t ) P i j ( t ) + ∑ k = i P i k ( Δ t ) P k j ( t ) − P i j ( t ) Δ t = l i m Δ t → 0 ( P i i ( Δ t ) − 1 ) P i j ( t ) Δ t + ( l i m Δ t → 0 ∑ k = i P i k ( Δ t ) Δ t ) P k j ( t ) = g i i P i j ( t ) + ∑ k = i g i k P k j ( t ) = ∑ k g i k P k j ( t ) ⇒ d P ( t ) d t = Q P ( t ) ( i i ) lim_{\Delta t \rightarrow 0}\frac{P_{ij}(t+\Delta t)-P_{ij}(t)}{\Delta t} = lim_{\Delta t \rightarrow 0}\frac{\sum_k P_{ik}(\Delta t)P_{kj}(t)-P_{ij}(t)}{\Delta t} \\ = lim_{\Delta t \rightarrow 0}\frac{P_{ii}(\Delta t)P_{ij}(t)+\sum_{k\cancel=i} P_{ik}(\Delta t)P_{kj}(t)-P_{ij}(t)}{\Delta t} \\ = lim_{\Delta t \rightarrow 0}\frac{(P_{ii}(\Delta t)-1)P_{ij}(t)}{\Delta t} + (lim_{\Delta t \rightarrow 0}\frac{\sum_{k\cancel=i} P_{ik}(\Delta t)}{\Delta t})P_{kj}(t) \\ = g_{ii} P_{ij}(t) + \sum_{k \cancel=i} g_{ik} P_{kj}(t) \\ =\sum_k g_{ik} P_{kj}(t) \\ \Rightarrow \frac{d P(t)}{dt} = Q P(t) \quad\quad(ii) limΔt0ΔtPij(t+Δt)Pij(t)=limΔt0ΔtkPik(Δt)Pkj(t)Pij(t)=limΔt0ΔtPii(Δt)Pij(t)+k= iPik(Δt)Pkj(t)Pij(t)=limΔt0Δt(Pii(Δt)1)Pij(t)+(limΔt0Δtk= iPik(Δt))Pkj(t)=giiPij(t)+k= igikPkj(t)=kgikPkj(t)dtdP(t)=QP(t)(ii)

  我们得到的这两个方程都是对的,分布叫做前进方程和后退方程

d d t P ( t ) = P ( t ) Q Forward d P ( t ) d t = Q P ( t ) Backward Kolmonglov-Feller \frac{d}{dt}P(t) = P(t)Q \quad \quad \text{Forward} \\ \frac{d P(t)}{dt} = Q P(t) \quad \quad \text{Backward} \\ \text{Kolmonglov-Feller} dtdP(t)=P(t)QForwarddtdP(t)=QP(t)BackwardKolmonglov-Feller

  这两个方程具有相同的解

⇒ P ( t ) = e x p ( Q t ) P ( 0 ) P ( 0 ) = I ⇒ P i i ( 0 ) = 1 P i j ( 0 ) = 0 \Rightarrow P(t) = exp(Qt)P(0) \\ P(0) = I \Rightarrow P_{ii}(0) = 1 \quad P_{ij}(0) = 0 P(t)=exp(Qt)P(0)P(0)=IPii(0)=1Pij(0)=0

  这里需要注意的是,矩阵的指数就是其泰勒展开

e x p ( Q t ) = ∑ k = 0 ∞ ( Q t ) k k ! exp(Qt) = \sum_{k=0}^{\infty} \frac{(Qt)^k}{k!} exp(Qt)=k=0k!(Qt)k

  对于CK方程而言,离散的是矩阵乘法,连续的是矩阵指数。Q矩阵的行和是0,对角元是负的,非对角元是非负的。

  矩阵指数求解方法

  • 求矩阵Q的特征值λ1,…,λn
  • 求矩阵Q的特征向量矩阵U
  • 然后可以得到矩阵指数

e Q t = U ( e λ 1 t . . . e λ n t ) U − 1 e^{Qt} = U \begin{pmatrix} e^{\lambda_1 t} & \\ & ... \\ &&e^{\lambda_n t}\\ \end{pmatrix} U^{-1} eQt=Ueλ1t...eλntU1

1.4 泊松过程与连续时间马氏链

  连续时间马氏链是由转移概率的随机性和停留时间的随机性共同构成的,不过是在离散时间马氏链的基础上增加了指数分布的停留时间。泊松分布的停留时间也是指数分布,不过泊松分布的转移行为非常简单,不具备随机性,因此,可以说,泊松过程是最简单的马尔科夫过程。

  我们可以用马尔科夫的分析方法分析泊松过程,看看泊松过程具有怎么样的行为。

Poisson Process P i j ( Δ t ) = { ( λ Δ t ) j − i ( j − i ) ! e x p ( − λ Δ t ) j ≥ i 0 j < i \text{Poisson Process} \\ P_{ij}(\Delta t) = \begin{cases} \frac{(\lambda \Delta t)^{j-i}}{(j-i)!} exp(-\lambda \Delta t) & j \geq i \\ 0 & j <i \end{cases} Poisson ProcessPij(Δt)={(ji)!(λΔt)jiexp(λΔt)0jij<i

  然后我们来分析泊松过程的Q矩阵

g i i = l i m Δ t → 0 P i i ( Δ t ) − 1 Δ t = l i m Δ t → 0 e x p ( − λ Δ t ) − 1 Δ t = − λ g i , i + 1 = l i m Δ t → 0 P i , i + 1 ( Δ t ) Δ t = l i m Δ t → 0 λ Δ t e x p ( − λ Δ t ) Δ t = λ g i j = l i m Δ t → 0 ( λ Δ t ) i − j e x p ( − λ Δ t ) ( j − i ) ! Δ t = O ( Δ t ) = 0 j − i ≥ 2 g i j = 0 j < i g_{ii} = lim_{\Delta t \rightarrow 0} \frac{P_{ii}(\Delta t)-1}{\Delta t} = lim_{\Delta t \rightarrow 0}\frac{exp(-\lambda \Delta t)-1}{\Delta t} = -\lambda \\ g_{i,i+1} = lim_{\Delta t \rightarrow 0} \frac{P_{i,i+1}(\Delta t)}{\Delta t} = lim_{\Delta t \rightarrow 0}\frac{\lambda \Delta t exp(-\lambda \Delta t)}{\Delta t} = \lambda \\ g_{ij} = lim_{\Delta t \rightarrow 0} \frac{\frac{(\lambda \Delta t)^{i-j} exp(-\lambda \Delta t)}{(j-i)!}}{\Delta t} = O(\Delta t) = 0 \quad j-i \geq 2 \\ g_{ij} = 0 \quad\quad \quad\quad\quad\quad j<i gii=limΔt0ΔtPii(Δt)1=limΔt0Δtexp(λΔt)1=λgi,i+1=limΔt0ΔtPi,i+1(Δt)=limΔt0ΔtλΔtexp(λΔt)=λgij=limΔt0Δt(ji)!(λΔt)ijexp(λΔt)=O(Δt)=0ji2gij=0j<i

  然后我们就可以得到泊松过程的Q矩阵

Q = ( − λ λ − λ λ − λ λ . . . . . . ) Q = \begin{pmatrix} -\lambda & \lambda & & & \\ & - \lambda & \lambda && \\ && - \lambda & \lambda&\\ &&&...&... \end{pmatrix} Q=λλλλλλ......

  我们可以看出泊松过程的Q矩阵,对角线都是负的,次对角线都是正的。其他地方都是0。并且主对角线和次对角线的和是0。

  由于这个Q矩阵非常简单,如果使用连续时间马氏链的方法分析Q矩阵,莫过于大炮打蚊子。因此泊松过程使用自己的分析方法就已经可以足够简单了。

1.5 连续时间马氏链的极限分布

  连续时间马氏链的极限分布更加的简单。因为对于离散时间马氏链,如果转移行为本身是震荡的,就会有极限不存在的问题。因此离散时间马氏链需要有非周期的条件。而连续时间马氏链不需要有周期性的条件。

  因为连续时间马氏链有等待时间,在任何一个状态待多久都是有可能的,随时会自己返回。不会有震荡的问题。因此连续时间的马氏链,只有可约,就一定有极限。

  不可约这个条件和停留行为没有关系,只会影响到转移行为。

Irreducible  ⇒ Limit ! \text{Irreducible } \Rightarrow \text{Limit}! Irreducible Limit!

  我们看看如何求得极限概率

d d t P ( t ) = P ( t ) Q Forward d P ( t ) d t = Q P ( t ) Backward Kolmonglov-Feller \frac{d}{dt}P(t) = P(t)Q \quad \quad \text{Forward} \\ \frac{d P(t)}{dt} = Q P(t) \quad \quad \text{Backward} \\ \text{Kolmonglov-Feller} dtdP(t)=P(t)QForwarddtdP(t)=QP(t)BackwardKolmonglov-Feller

  当时间趋于无穷的时候,P(t)会趋于一个常数,导数就会趋于0

l i m t → ∞ P ( t ) = Π d d t P ( t ) = 0 ⇒ Π Q = 0 Forward ⇒ Q Π = 0 Backward lim_{t \rightarrow \infty} P(t) = \Pi \\ \frac{d}{dt} P(t) = 0 \\ \Rightarrow \Pi Q = 0 \quad \quad \text{Forward} \\ \Rightarrow Q \Pi = 0 \quad \quad \text{Backward} limtP(t)=ΠdtdP(t)=0ΠQ=0ForwardQΠ=0Backward

  我们应该用前进方程,不然得到的是恒等式。注意我们的π是个行向量。

Π Q = 0 P i j ( t ) = P j \Pi Q = 0 \\ P_{ij}(t) = P_j ΠQ=0Pij(t)=Pj

2. M/M/1模型排队论

2.1 模型描述

  我们之前基于过滤泊松过程介绍过M/G/∞模型的排队问题。但是这个问题不具有普遍性,因为服务台的资源不可能是无限的。

  因此,我们要介绍基于M/M/1模型的排队问题。

M / M / 1 M/M/1 M/M/1

  简单描述就是,马尔科夫的来,马尔科夫的走,然后服务台的数量是1

  马尔科夫来,意味着顾客是以泊松过程到来的;马尔科夫走,是指服务时间是指数分布。这是资源有限情况下的排队问题。

  我们假设顾客到达是强度是λ,我们假设服务时间是指数分布,其参数是μ

M ∼ λ ∼ Possion M ∼ μ ∼ Exponential M \sim \lambda \sim \text{Possion} \\ M \sim \mu \sim \text{Exponential} MλPossionMμExponential

  对于排队模型,我们需要求解两个问题,一个问题是平均队长,另外一个问题是平均等待时间。

M / M / 1 ( 1 ) Mean Queue Length ( 2 ) Mean Waiting Time M/M/1 \\ (1) \text{Mean Queue Length} \\ (2) \text{Mean Waiting Time} M/M/1(1)Mean Queue Length(2)Mean Waiting Time

2.2 模型建立–生灭模型

  为了研究平均队长和平均等待时间问题,我们必须建立一个连续时间马尔科夫模型,就是生灭模型

Birth-Death Model \text{Birth-Death Model} Birth-Death Model

  过滤泊松过程要求等待时间之间的独立的,这个要求太强了,不实用。而生灭模型中生和灭两个因素是独立起作用的,也就是要求生作用和灭作用具有独立性,这个是合理的。

  我们先说生,讲的是delta t时间内人数的增加

Birth Δ t + 1 : λ Δ + O ( Δ t ) + ≥ 2 : O ( Δ t ) \text{Birth} \quad \Delta t \\+1: \lambda \Delta +O(\Delta t) \\+ \geq 2: O(\Delta t) BirthΔt+1:λΔ+O(Δt)+2:O(Δt)

  然后是灭模型,是delta t时间内人数的减少

Death Δ t − 1 : μ Δ t + O ( Δ t ) − ≥ 2 : O ( Δ t ) \text{Death} \quad \Delta t\\-1: \mu \Delta t +O(\Delta t) \\- \geq 2: O(\Delta t) DeathΔt1:μΔt+O(Δt)2:O(Δt)

  接下来要计算转移概率矩阵和Q矩阵。

  先看不增不减的情况。就包括没有生没有灭;生一个灭一个;生多个,灭多个。这里注意一下,因为生过程和灭过程是独立的,所以可以做乘法

P i i ( Δ t ) = ( 1 − λ Δ t + O ( Δ t ) ) ( 1 − μ Δ t + O ( Δ t ) ) + ( λ Δ t + O ( Δ t ) ) ( μ Δ t + O ( Δ t ) ) + O ( Δ t ) = ( 1 − λ Δ t + O ( Δ t ) ) ( 1 − μ Δ t + O ( Δ t ) ) + O ( Δ t ) + O ( Δ t ) = ( 1 − λ Δ t + O ( Δ t ) ) ( 1 − μ Δ t + O ( Δ t ) ) + O ( Δ t ) = 1 − λ Δ t − μ Δ t + O ( Δ t ) P_{ii}(\Delta t) = (1-\lambda \Delta t + O(\Delta t))(1-\mu \Delta t +O(\Delta t)) + (\lambda \Delta t +O(\Delta t))(\mu \Delta t +O(\Delta t)) + O(\Delta t) \\ = (1-\lambda \Delta t + O(\Delta t))(1-\mu \Delta t +O(\Delta t)) + O(\Delta t) + O(\Delta t) \\ = (1-\lambda \Delta t + O(\Delta t))(1-\mu \Delta t +O(\Delta t)) + O(\Delta t) \\ = 1 -\lambda \Delta t - \mu \Delta t + O(\Delta t) Pii(Δt)=(1λΔt+O(Δt))(1μΔt+O(Δt))+(λΔt+O(Δt))(μΔt+O(Δt))+O(Δt)=(1λΔt+O(Δt))(1μΔt+O(Δt))+O(Δt)+O(Δt)=(1λΔt+O(Δt))(1μΔt+O(Δt))+O(Δt)=1λΔtμΔt+O(Δt)

  然后是增加一个。包括生一个没有灭;生两个灭一个等等

P i , i + 1 ( Δ t ) = ( λ Δ t + O ( Δ t ) ) ( 1 − μ Δ t + O ( Δ t ) ) + O ( Δ t ) P_{i,i+1}(\Delta t) = (\lambda \Delta t +O(\Delta t))(1-\mu \Delta t +O(\Delta t) ) +O(\Delta t) Pi,i+1(Δt)=(λΔt+O(Δt))(1μΔt+O(Δt))+O(Δt)

  然后是减少一个,包括没有生灭一个;灭两个生一个等等。

P i , i − 1 ( Δ t ) = ( 1 − λ Δ t + O ( Δ t ) ) ( μ Δ t + O ( Δ t ) ) + O ( Δ t ) P_{i,i-1}(\Delta t) = (1-\lambda \Delta t +O(\Delta t))(\mu \Delta t +O(\Delta t) ) +O(\Delta t) Pi,i1(Δt)=(1λΔt+O(Δt))(μΔt+O(Δt))+O(Δt)

  如果是变化了很多的情况,就都是高阶无穷小了

P i j ( Δ t ) = O ( Δ t ) P_{ij}(\Delta t) = O(\Delta t) Pij(Δt)=O(Δt)

  然后我们求Q矩阵

Q = l i m Δ t → 0 1 Δ t ( P ( Δ t ) − I ) Q = lim_{\Delta t \rightarrow 0} \frac{1}{\Delta t}(P(\Delta t) - I) Q=limΔt0Δt1(P(Δt)I)

g i i = − ( λ + μ ) g i , i + 1 = λ g i , i − 1 = μ g i j = 0 ∣ i − j ∣ > 1 g_{ii}= -(\lambda + \mu) \\ g_{i,i+1} = \lambda \\ g_{i,i-1} = \mu \\ g_{ij} = 0 \quad\quad |i-j| >1 gii=(λ+μ)gi,i+1=λgi,i1=μgij=0ij>1

  Q矩阵第一行比较特殊,只能生,不能没

Q = ( − λ λ μ − ( λ + μ ) λ μ − ( λ + μ ) λ . . . . . . . . . ) Q = \begin{pmatrix} -\lambda & \lambda && \\ \mu & -(\lambda + \mu) & \lambda &\\ & \mu & - (\lambda +\mu) & \lambda & \\ &&...&...&...& \end{pmatrix} Q=λμλ(λ+μ)μλ(λ+μ)...λ......

  我们就算好了Q矩阵,然后我们可以求极限分布了,记得求极限要用前向方程

Π Q = 0 \Pi Q =0 \\ ΠQ=0

  然后我们可以得到下列的式子

− π 0 λ 0 + π 1 μ = 0 π 0 λ − ( λ + μ ) π 1 + μ π 2 = 0 π 1 λ − ( λ + μ ) π 2 + μ π 3 = 0 -\pi_0 \lambda_0 + \pi_1 \mu = 0 \\ \pi_0 \lambda - (\lambda +\mu) \pi_1 + \mu \pi_2 = 0 \\ \pi_1 \lambda - (\lambda + \mu)\pi_2 + \mu \pi_3 = 0 π0λ0+π1μ=0π0λ(λ+μ)π1+μπ2=0π1λ(λ+μ)π2+μπ3=0

  可以得到

π 1 = λ μ π 0 π 2 = λ μ π 1 = ( λ μ ) 2 π 0 π n = ( λ μ ) n π 0 \pi_1 = \frac{\lambda}{\mu} \pi_0 \\ \pi_2 = \frac{\lambda}{\mu}\pi_1 = (\frac{\lambda}{\mu})^2 \pi_0 \\ \pi_n = (\frac{\lambda}{\mu})^n \pi_0 π1=μλπ0π2=μλπ1=(μλ)2π0πn=(μλ)nπ0

  值得注意的是,我们还必须要假设buffer是无穷大的,不然队伍太长的就会溢出。

  我们还需要对π做归一化

∑ k = 0 ∞ π k = π 0 ∑ k = 0 ∞ ( λ μ ) k λ μ < 1 \sum_{k=0}^{\infty} \pi_k = \pi_0 \sum_{k=0}^{\infty}(\frac{\lambda}{\mu})^k \\ \frac{\lambda}{\mu} <1 k=0πk=π0k=0(μλ)kμλ<1

  这里我们注意到,如果想要做归一化,还需要考虑这个级数是否收敛的问题,这里底数必须小于1

∑ k = 0 ∞ π k = π 0 ∑ k = 0 ∞ ( λ μ ) k = π 0 1 1 − λ μ = μ μ − λ π 0 = 1 ⇒ π 0 = 1 − λ μ π k = π 0 ( λ μ ) k = ( 1 − λ μ ) ( λ μ ) k \sum_{k=0}^{\infty} \pi_k = \pi_0 \sum_{k=0}^{\infty}(\frac{\lambda}{\mu})^k = \pi_0 \frac{1}{1-\frac{\lambda}{\mu}} \\ = \frac{\mu}{\mu - \lambda} \pi_0 = 1 \Rightarrow \pi_0 = 1- \frac{\lambda}{\mu} \\ \pi_k = \pi_0(\frac{\lambda}{\mu})^k = (1-\frac{\lambda}{\mu})(\frac{\lambda}{\mu})^k k=0πk=π0k=0(μλ)k=π01μλ1=μλμπ0=1π0=1μλπk=π0(μλ)k=(1μλ)(μλ)k

2.3 平均队长

  我们已经知道了各个队长的概率,下面可以计算队长的均值了

E ( L ) = ∑ k = 0 ∞ k π k = ∑ k = 1 ∞ k ( 1 − λ μ ) ( λ μ ) k = ( 1 − λ μ ) ∑ k = 1 ∞ k ( λ μ ) k E(L) = \sum_{k=0}^{\infty} k \pi_k = \sum_{k=1}^{\infty} k (1-\frac{\lambda}{\mu})(\frac{\lambda}{\mu})^k \\ = (1-\frac{\lambda}{\mu})\sum_{k=1}^{\infty} k (\frac{\lambda}{\mu})^k \\ E(L)=k=0kπk=k=1k(1μλ)(μλ)k=(1μλ)k=1k(μλ)k

  这是级数求和

a < 1 R i g h t a r r o w ∑ k = 1 ∞ k a k = a ∑ k = 1 ∞ k a k − 1 = a ∑ k = 1 ∞ ( a k ) ′ = a ( ∑ k = 1 ∞ a k ) ′ = a ( ∑ k = 0 ∞ a k − 1 ) ′ = a ( 1 − a k 1 − a − 1 ) ′ = a ( 1 1 − a − 1 ) ′ = a ( 1 − a ) 2 a <1 \\ Rightarrow \sum_{k=1}^{\infty} k a^k = a\sum_{k=1}^{\infty} k a^{k-1} = a\sum_{k=1}^{\infty} (a^{k})' \\ = a (\sum_{k=1}^{\infty}a^{k})' = a (\sum_{k=0}^{\infty}a^{k}-1)' \\ =a (\frac{1-a^k}{1-a}-1)' \\ = a (\frac{1}{1-a}-1)' = \frac{a}{(1-a)^2} \\ a<1Rightarrowk=1kak=ak=1kak1=ak=1(ak)=a(k=1ak)=a(k=0ak1)=a(1a1ak1)=a(1a11)=(1a)2a

  把这个结论代入队长的均值中

E ( L ) = ( 1 − λ μ ) ∑ k = 1 ∞ k ( λ μ ) k = ( 1 − λ μ ) λ μ ( 1 − λ μ ) 2 = λ μ ( 1 − λ μ ) = λ μ − λ E(L) = (1-\frac{\lambda}{\mu})\sum_{k=1}^{\infty} k (\frac{\lambda}{\mu})^k \\ = (1-\frac{\lambda}{\mu})\frac{\frac{\lambda}{\mu}}{(1-\frac{\lambda}{\mu})^2} = \frac{\frac{\lambda}{\mu}}{(1-\frac{\lambda}{\mu})} \\ = \frac{\lambda}{\mu - \lambda} E(L)=(1μλ)k=1k(μλ)k=(1μλ)(1μλ)2μλ=(1μλ)μλ=μλλ

2.4 平均等待时间

  然后计算一下平均等待时间,等待时间包括两部分,一部分是纯等待时间,一部分是服务时间。我们假设队长L是顾客到达的时候前面的人数,则等待时间=自身服务时间S+队长*S

  队长和服务时间的独立的,可以拆开

E ( w ) = E ( L S + S ) = E ( ( L + 1 ) S ) = E ( L + 1 ) ∗ E ( S ) = ( λ μ − λ + 1 ) ( 1 μ ) = 1 μ − λ E(w) = E(LS +S) = E((L+1)S) = E(L+1)*E(S) = (\frac{\lambda}{\mu - \lambda}+1)(\frac{1}{\mu}) = \frac{1}{\mu - \lambda} E(w)=E(LS+S)=E((L+1)S)=EL+1)E(S)=(μλλ+1)(μ1)=μλ1

2.5 little’s formula

  我们可以发现,平均队长就是平均等待时间乘以强度

E ( ω ) λ = E ( L ) E(\omega) \lambda =E(L) E(ω)λ=E(L)

  这个关系叫做little’s formula

little’s formula \text{little's formula} little’s formula

  我们可以理解为,刚来的时候排队在队尾,当随着队伍前进,成为第一个人的时候,后面又来了一些人,成为了新的队伍。在排队等待的时候,就是那些人来的时候,因此可以理解为路程(队长) = 速度(强度)*时间(等待时间)

  我们得到的这个公式应用非常广泛,不仅仅是MM1模型,这个公式是排队论的核心,很多其他的排队模型往往也能得到这个结论。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值