「《待ち行列に対するアルゴリズム的解法》」の版間の差分

提供: ORWiki
ナビゲーションに移動 検索に移動
8行目: 8行目:
  
 
 状態 0 が吸収状態,状態 <math>i \in M =\{1,2,\ldots,M\}\,</math> が一時的状態である連続時間有限状態吸収マルコフ連鎖 <math>X(t)\,</math> を考える.このとき <math>X(t)\,</math> の推移率行列は
 
 状態 0 が吸収状態,状態 <math>i \in M =\{1,2,\ldots,M\}\,</math> が一時的状態である連続時間有限状態吸収マルコフ連鎖 <math>X(t)\,</math> を考える.このとき <math>X(t)\,</math> の推移率行列は
%
+
<center>
\[
+
<math>
 +
 
 
\left(\begin{array}{cc}
 
\left(\begin{array}{cc}
 
0 & 0 \\
 
0 & 0 \\
15行目: 16行目:
 
\end{array}
 
\end{array}
 
\right)
 
\right)
\]
+
</math>
%
+
</center>
 
の形に書ける.ただし <math>\mathbf{e}</math> はすべての要素が 1 の列ベクトルである.このマルコフ連鎖の初期状態分布を <math>(0, \mathbf{\alpha})</math> としたとき,<math>X(t)</math> が吸収されるまでの時間は <math>(0,\infty)</math> 上の確率分布を定め,これを表現<math>(\mathbf{\alpha}, \mathbf{T})</math> をもつ相型分布(phase-type distribution)という[1, 4].以下ではマルコフ連鎖 <math>X(t)</math> の一時的状態を相と呼ぶ.
 
の形に書ける.ただし <math>\mathbf{e}</math> はすべての要素が 1 の列ベクトルである.このマルコフ連鎖の初期状態分布を <math>(0, \mathbf{\alpha})</math> としたとき,<math>X(t)</math> が吸収されるまでの時間は <math>(0,\infty)</math> 上の確率分布を定め,これを表現<math>(\mathbf{\alpha}, \mathbf{T})</math> をもつ相型分布(phase-type distribution)という[1, 4].以下ではマルコフ連鎖 <math>X(t)</math> の一時的状態を相と呼ぶ.
  
33行目: 34行目:
  
 
 表現 (<math>\mathbf{\alpha}_X, \mathbf{T}_X\,</math>)(<math>X=A,B\,</math>)をもつ相型分布の相の数を <math>M_X\,</math> としたとき,<math>(S_A(t),S_B(t))\,</math> の取り得る状態の数は <math>L(t)=0\,</math> のとき,<math>M_A\,</math> 通り,<math>L(t) \geq 1\,</math> のときは <math>M_A \times M_B\,</math> 通りである.これらに適当な番号を割り当てることで,マルコフ連鎖 <math>(L(t), S_A(t),S_B(t))\,</math> は2変数マルコフ連鎖 <math>(L(t), S(t))\,</math> と見なすことができる.さらに,この2変数マルコフ連鎖の状態集合を <math>L(t)\,</math> の値で分類し,<math>L(t)=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.レベルの変化に注目すると,2変数マルコフ連鎖 <math>(L(t),S(t))\,</math> は以下のような形の推移率行列 <math>\mathbf{Q}\,</math> をもつ連続時間マルコフ連鎖となる.
 
 表現 (<math>\mathbf{\alpha}_X, \mathbf{T}_X\,</math>)(<math>X=A,B\,</math>)をもつ相型分布の相の数を <math>M_X\,</math> としたとき,<math>(S_A(t),S_B(t))\,</math> の取り得る状態の数は <math>L(t)=0\,</math> のとき,<math>M_A\,</math> 通り,<math>L(t) \geq 1\,</math> のときは <math>M_A \times M_B\,</math> 通りである.これらに適当な番号を割り当てることで,マルコフ連鎖 <math>(L(t), S_A(t),S_B(t))\,</math> は2変数マルコフ連鎖 <math>(L(t), S(t))\,</math> と見なすことができる.さらに,この2変数マルコフ連鎖の状態集合を <math>L(t)\,</math> の値で分類し,<math>L(t)=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.レベルの変化に注目すると,2変数マルコフ連鎖 <math>(L(t),S(t))\,</math> は以下のような形の推移率行列 <math>\mathbf{Q}\,</math> をもつ連続時間マルコフ連鎖となる.
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{Q} =  
 
\mathbf{Q} =  
 
\left(\begin{array}{ccccc}
 
\left(\begin{array}{ccccc}
48行目: 50行目:
 
\end{array}
 
\end{array}
 
\right)
 
\right)
\]
+
</math>
%
+
</center>
 
ここで <math>\mathbf{Q}_m\,</math> ならびに <math>\overline{\mathbf{Q}}_m\,</math> (<math>m=1,2,3\,</math>)はクロネッカー積 <math>\otimes\,</math>,クロネッカー和 <math>\oplus\,</math> を用いて次式で与えられる.
 
ここで <math>\mathbf{Q}_m\,</math> ならびに <math>\overline{\mathbf{Q}}_m\,</math> (<math>m=1,2,3\,</math>)はクロネッカー積 <math>\otimes\,</math>,クロネッカー和 <math>\oplus\,</math> を用いて次式で与えられる.
%
+
<center>
\begin{eqnarray*}
+
begin{eqnarray*}環境
 +
<math>
 +
 
 
\mathbf{Q}_0 = (-\mathbf{T}_A) \mathbf{e} \mathbf{\alpha}_A \otimes \mathbf{I}_B,
 
\mathbf{Q}_0 = (-\mathbf{T}_A) \mathbf{e} \mathbf{\alpha}_A \otimes \mathbf{I}_B,
 
&
 
&
64行目: 68行目:
 
&
 
&
 
\overline{\mathbf{Q}}_2 = \mathbf{I}_A \otimes (-\mathbf{T}_B)\mathbf{e}
 
\overline{\mathbf{Q}}_2 = \mathbf{I}_A \otimes (-\mathbf{T}_B)\mathbf{e}
\end{eqnarray*}
+
</math>
%
+
</center>
 
ただし <math>\mathbf{I}_X\,</math> (<math>X=A,B\,</math>) は <math>M_X\,</math> 次元の単位行列である.
 
ただし <math>\mathbf{I}_X\,</math> (<math>X=A,B\,</math>) は <math>M_X\,</math> 次元の単位行列である.
  
73行目: 77行目:
  
 
 エルゴード的な準出生死滅過程 <math>(L(t),S(t))\,</math> の定常分布を <math>\mathbf{q} =(\mathbf{q}_0, \mathbf{q}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{q}\,</math> は <math>\mathbf{q} \mathbf{Q}={\mathbf 0}\,</math> を満たすことに注意.このとき,
 
 エルゴード的な準出生死滅過程 <math>(L(t),S(t))\,</math> の定常分布を <math>\mathbf{q} =(\mathbf{q}_0, \mathbf{q}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{q}\,</math> は <math>\mathbf{q} \mathbf{Q}={\mathbf 0}\,</math> を満たすことに注意.このとき,
%
+
<center>
\begin{equation}
+
begin{equation}環境
 +
<math>
 +
 
 
\mathbf{Q}_0 + \mathbf{R}\mathbf{Q}_1 + \mathbf{R}^2 \mathbf{Q}_2 = \mathbf{O}
 
\mathbf{Q}_0 + \mathbf{R}\mathbf{Q}_1 + \mathbf{R}^2 \mathbf{Q}_2 = \mathbf{O}
 
\label{rate-matrix-QBD}
 
\label{rate-matrix-QBD}
\end{equation}
+
</math>
%
+
</center>
 
を満たす最小の非負行列 <math>\mathbf{R}\,</math> を用いて <math>\mathbf{q}_k\,</math> (<math>k=2,3,\ldots\,</math>) は
 
を満たす最小の非負行列 <math>\mathbf{R}\,</math> を用いて <math>\mathbf{q}_k\,</math> (<math>k=2,3,\ldots\,</math>) は
%
+
<center>
\begin{equation}
+
begin{equation}環境
 +
<math>
 
\mathbf{q}_k = \mathbf{q}_1 \mathbf{R}^{k-1}, \quad k=2,3,\ldots
 
\mathbf{q}_k = \mathbf{q}_1 \mathbf{R}^{k-1}, \quad k=2,3,\ldots
 
\label{matrix-geometric-QBD}
 
\label{matrix-geometric-QBD}
 
\end{equation}
 
\end{equation}
%
+
</math>
 +
</center>
 
で与えられる.さらに <math>\mathbf{q}_0\,</math>, <math>\mathbf{q}_1\,</math> は
 
で与えられる.さらに <math>\mathbf{q}_0\,</math>, <math>\mathbf{q}_1\,</math> は
%
+
<center>
\[
+
<math>
\mathbf{q}_0 \overline{\mathbf{Q}}_1 + \mathbf{q}_1 \overline{\mathbf{Q}}_2 = {\bf 0},
+
 
 +
\mathbf{q}_0 \overline{\mathbf{Q}}_1 + \mathbf{q}_1 \overline{\mathbf{Q}}_2 = {\mathbf 0},
 
\quad
 
\quad
 
\mathbf{q}_0 \overline{\mathbf{Q}}_0 + \mathbf{q}_1  
 
\mathbf{q}_0 \overline{\mathbf{Q}}_0 + \mathbf{q}_1  
(\mathbf{Q}_1 + \mathbf{R}\mathbf{Q}_2) = {\bf 0}
+
(\mathbf{Q}_1 + \mathbf{R}\mathbf{Q}_2) = {\mathbf 0}
\]
+
</math>
%
+
</center>
 
ならびに正規化条件 <math>\mathbf{q}_0 + \mathbf{q}_1(\mathbf{I}-\mathbf{R})^{-1}\mathbf{e}=1\,</math> より求めることができる.
 
ならびに正規化条件 <math>\mathbf{q}_0 + \mathbf{q}_1(\mathbf{I}-\mathbf{R})^{-1}\mathbf{e}=1\,</math> より求めることができる.
  
 
 非負行列 <math>\mathbf{R}\,</math> は公比行列(rate matrix)と呼ばれており,(2)は行列幾何解(matrix-geometric solution)と呼ばれている.公比行列 <math>\mathbf{R}\,</math> は一般には陽に与えられないため,様々な数値計算アルゴリズムが提案されている.最も単純なものは(1)を変形することで得られる
 
 非負行列 <math>\mathbf{R}\,</math> は公比行列(rate matrix)と呼ばれており,(2)は行列幾何解(matrix-geometric solution)と呼ばれている.公比行列 <math>\mathbf{R}\,</math> は一般には陽に与えられないため,様々な数値計算アルゴリズムが提案されている.最も単純なものは(1)を変形することで得られる
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{R}_{n+1} = (\mathbf{Q}_0 + \mathbf{R}_n^2 \mathbf{Q}_2)(-\mathbf{Q}_1)^{-1},
 
\mathbf{R}_{n+1} = (\mathbf{Q}_0 + \mathbf{R}_n^2 \mathbf{Q}_2)(-\mathbf{Q}_1)^{-1},
 
\quad n=0,1,\ldots
 
\quad n=0,1,\ldots
\]
+
</math>
%
+
</center>
 
に基づいて,<math>\mathbf{R}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{R}_n\,</math> を求めるというものである.このとき <math>\mathbf{R}_n\,</math> は要素毎に単調に増加し,公比行列 <math>\mathbf{R}\,</math> に収束することが知られている.
 
に基づいて,<math>\mathbf{R}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{R}_n\,</math> を求めるというものである.このとき <math>\mathbf{R}_n\,</math> は要素毎に単調に増加し,公比行列 <math>\mathbf{R}\,</math> に収束することが知られている.
  
110行目: 120行目:
 
 客の到着間隔 <math>G\,</math> が独立で同一な分布 <math>G(x)=\Pr(G \leq x)\,</math> に従い,サービス時間が表現 (<math>\mathbf{\alpha}_B, \mathbf{T}_B\,</math>) をもつ相型分布に従う GI/PH/1 待ち行列を考える.<math>n\,</math> 番目の客の到着直前の系内客数を <math>X_n\,</math>,十
 
 客の到着間隔 <math>G\,</math> が独立で同一な分布 <math>G(x)=\Pr(G \leq x)\,</math> に従い,サービス時間が表現 (<math>\mathbf{\alpha}_B, \mathbf{T}_B\,</math>) をもつ相型分布に従う GI/PH/1 待ち行列を考える.<math>n\,</math> 番目の客の到着直前の系内客数を <math>X_n\,</math>,十
 
分に多くの客が系内にいるという仮定の下で,<math>n\,</math> 番目と<math>n+1\,</math> 番目の客の到着間隔の間にサービス可能な客数を <math>B_{n+1}\,</math> とすると
 
分に多くの客が系内にいるという仮定の下で,<math>n\,</math> 番目と<math>n+1\,</math> 番目の客の到着間隔の間にサービス可能な客数を <math>B_{n+1}\,</math> とすると
%
+
<center>
\[
+
<math>
 
X_{n+1} = \max(0, X_n + 1 - B_{n+1}), \quad n=0,1,\ldots
 
X_{n+1} = \max(0, X_n + 1 - B_{n+1}), \quad n=0,1,\ldots
\]
+
</math>
%
+
</center>
 
が成立する.よって <math>n\,</math> 番目の客の到着直前におけるサービス時間が従う相型分布の相を <math>S_n^-\,</math> とすると,<math>(X_n, S_n^-)\,</math> は下記の遷移確率行列 <math>\mathbf{P}_{\rm G/M/1}\,</math> をもつ2変数離散時間マルコフ連鎖となる.
 
が成立する.よって <math>n\,</math> 番目の客の到着直前におけるサービス時間が従う相型分布の相を <math>S_n^-\,</math> とすると,<math>(X_n, S_n^-)\,</math> は下記の遷移確率行列 <math>\mathbf{P}_{\rm G/M/1}\,</math> をもつ2変数離散時間マルコフ連鎖となる.
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{P}_{\rm G/M/1} =  
 
\mathbf{P}_{\rm G/M/1} =  
 
\left(\begin{array}{ccccc}
 
\left(\begin{array}{ccccc}
131行目: 142行目:
 
\end{array}
 
\end{array}
 
\right)
 
\right)
\]
+
</math>
%
+
</center>
 
ここで <math>\mathbf{B}_k\,</math> は
 
ここで <math>\mathbf{B}_k\,</math> は
%
+
<center>
\[
+
<math>
 +
 
 
\sum_{k=0}^{\infty} \mathbf{B}_k z^k = \int_0^{\infty}
 
\sum_{k=0}^{\infty} \mathbf{B}_k z^k = \int_0^{\infty}
 
\exp[(\mathbf{T}_B + z (-\mathbf{T}_B)\mathbf{e}\mathbf{\alpha}_B) x]
 
\exp[(\mathbf{T}_B + z (-\mathbf{T}_B)\mathbf{e}\mathbf{\alpha}_B) x]
 
dG(x)
 
dG(x)
\]
+
</math>
%
+
</center>
 
を満たし,<math>\overline{\mathbf{B}}_k\,</math> は <math>\overline{\mathbf{B}}_k =\sum_{l=k}^{\infty} \mathbf{B}_l \mathbf{e}\mathbf{\alpha}_B\,</math> で与えられる.準出生死滅過程と同様に,<math>X_n=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.
 
を満たし,<math>\overline{\mathbf{B}}_k\,</math> は <math>\overline{\mathbf{B}}_k =\sum_{l=k}^{\infty} \mathbf{B}_l \mathbf{e}\mathbf{\alpha}_B\,</math> で与えられる.準出生死滅過程と同様に,<math>X_n=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.
  
149行目: 161行目:
  
 
 エルゴード的なG/M/1型マルコフ連鎖 <math>(X_n,S_n^-)\,</math> の定常分布を <math>\mathbf{x}=(\mathbf{x}_0, \mathbf{x}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{x}\,</math> は <math>\mathbf{x} = \mathbf{x} \mathbf{P}_{\mathrm G/M/1}\,</math> を満たすことに注意.このとき,
 
 エルゴード的なG/M/1型マルコフ連鎖 <math>(X_n,S_n^-)\,</math> の定常分布を <math>\mathbf{x}=(\mathbf{x}_0, \mathbf{x}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{x}\,</math> は <math>\mathbf{x} = \mathbf{x} \mathbf{P}_{\mathrm G/M/1}\,</math> を満たすことに注意.このとき,
%
+
<center>
 +
<math>
 +
 
 
\begin{equation}
 
\begin{equation}
 
\mathbf{R} = \sum_{k=0}^{\infty} \mathbf{R}^k \mathbf{B}_k
 
\mathbf{R} = \sum_{k=0}^{\infty} \mathbf{R}^k \mathbf{B}_k
 
\label{rate-matrix-GM1}
 
\label{rate-matrix-GM1}
 
\end{equation}
 
\end{equation}
%
+
</math>
 +
</center>
 
を満たす最小の非負行列 <math>\mathbf{R}\,</math> を用いて <math>\mathbf{x}_k\,</math> (<math>k=1,2,\ldots\,</math>) は
 
を満たす最小の非負行列 <math>\mathbf{R}\,</math> を用いて <math>\mathbf{x}_k\,</math> (<math>k=1,2,\ldots\,</math>) は
 
%
 
%
161行目: 176行目:
 
\label{matrix-geometric-GM1}
 
\label{matrix-geometric-GM1}
 
\end{equation}
 
\end{equation}
%
+
</math>
 +
</center>
 
で与えられる.さらに <math>\mathbf{x}_0\,</math> は
 
で与えられる.さらに <math>\mathbf{x}_0\,</math> は
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{x}_0 = \mathbf{x}_0 \sum_{k=0}^{\infty} \mathbf{R}^k  
 
\mathbf{x}_0 = \mathbf{x}_0 \sum_{k=0}^{\infty} \mathbf{R}^k  
 
\overline{\mathbf{B}}_{k+1},
 
\overline{\mathbf{B}}_{k+1},
 
\quad
 
\quad
 
\mathbf{x}_0 (\mathbf{I}_B -\mathbf{R})^{-1} \mathbf{e} = 1
 
\mathbf{x}_0 (\mathbf{I}_B -\mathbf{R})^{-1} \mathbf{e} = 1
\]
+
</math>
%
+
</center>
 
より求められる.
 
より求められる.
  
 
 準出生死滅過程の場合と同様に,非負行列 <math>\mathbf{R}\,</math> を公比行列と呼び,(4)を行列幾何解と呼ぶ.公比行列 <math>\mathbf{R}\,</math> を求める最も単純な方法は,(3)より得られる
 
 準出生死滅過程の場合と同様に,非負行列 <math>\mathbf{R}\,</math> を公比行列と呼び,(4)を行列幾何解と呼ぶ.公比行列 <math>\mathbf{R}\,</math> を求める最も単純な方法は,(3)より得られる
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{R}_{n+1} = \sum_{k=0}^{\infty} \mathbf{R}_n^k \mathbf{B}_k,
 
\mathbf{R}_{n+1} = \sum_{k=0}^{\infty} \mathbf{R}_n^k \mathbf{B}_k,
 
\quad n=0,1,\ldots
 
\quad n=0,1,\ldots
\]
+
</math>
%
+
</center>
 
に基づいて,<math>\mathbf{R}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{R}_n\,</math> を求めるというものである.このとき <math>\mathbf{R}_n\,</math> は要素毎に単調に増加し,公比行列 <math>\mathbf{R}\,</math> に収束することが知られている.
 
に基づいて,<math>\mathbf{R}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{R}_n\,</math> を求めるというものである.このとき <math>\mathbf{R}_n\,</math> は要素毎に単調に増加し,公比行列 <math>\mathbf{R}\,</math> に収束することが知られている.
  
185行目: 203行目:
  
 
 客の到着が表現 <math>(\mathbf{C},\mathbf{D})\,</math> をもつ MAP に従い,サービス時間 <math>H\,</math> が独立で同一な分布 <math>H(x)=\Pr(H \leq x)\,</math> に従うMAP/G/1 待ち行列を考える.<math>n\,</math> 番目の客のサービス終了直後の系内客数を <math>Y_n\,</math>,<math>n\,</math> 番目のサービス中に新たに到着する客数を <math>A_n\,</math> とすると
 
 客の到着が表現 <math>(\mathbf{C},\mathbf{D})\,</math> をもつ MAP に従い,サービス時間 <math>H\,</math> が独立で同一な分布 <math>H(x)=\Pr(H \leq x)\,</math> に従うMAP/G/1 待ち行列を考える.<math>n\,</math> 番目の客のサービス終了直後の系内客数を <math>Y_n\,</math>,<math>n\,</math> 番目のサービス中に新たに到着する客数を <math>A_n\,</math> とすると
%
+
<center>
\[
+
<math>
 
Y_{n+1} = \max(0, Y_n -1) + A_{n+1}, \quad n=0,1,\ldots
 
Y_{n+1} = \max(0, Y_n -1) + A_{n+1}, \quad n=0,1,\ldots
\]
+
</math>
%
+
</center>
 
が成立する.よって <math>n\,</math> 番目のサービス直後における客の到着が従うMAPの相を <math>S_n^+\,</math> とすると,<math>(Y_n, S_n^+)\,</math> は下記の遷移確率行列 <math>\mathbf{P}_{\mathrm M/G/1}\,</math> をもつ2変数離散時間マルコフ連鎖となる.
 
が成立する.よって <math>n\,</math> 番目のサービス直後における客の到着が従うMAPの相を <math>S_n^+\,</math> とすると,<math>(Y_n, S_n^+)\,</math> は下記の遷移確率行列 <math>\mathbf{P}_{\mathrm M/G/1}\,</math> をもつ2変数離散時間マルコフ連鎖となる.
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{P}_{\rm M/G/1} =  
 
\mathbf{P}_{\rm M/G/1} =  
 
\left(\begin{array}{ccccc}
 
\left(\begin{array}{ccccc}
207行目: 226行目:
 
\end{array}
 
\end{array}
 
\right)
 
\right)
\]
+
</math>
%
+
</center>
 
ここで <math>\mathbf{A}_k\,</math> は
 
ここで <math>\mathbf{A}_k\,</math> は
%
+
<center>
\[
+
<math>
 +
 
 
\sum_{k=0}^{\infty} \mathbf{A}_k z^k = \int_0^{\infty}
 
\sum_{k=0}^{\infty} \mathbf{A}_k z^k = \int_0^{\infty}
 
\exp[(\mathbf{C} + z \mathbf{D}) x]
 
\exp[(\mathbf{C} + z \mathbf{D}) x]
 
dH(x)
 
dH(x)
\]
+
</math>
%
+
</center>
 
を満たし,<math>\overline{\mathbf{A}}_k\,</math> は <math>\overline{\mathbf{A}}_k =(-\mathbf{C})^{-1} \mathbf{D} \mathbf{A}_k\,</math> で与えられる.準出生死滅過程やG/M/1型マルコフ連鎖の場合と同様に,<math>Y_n=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.
 
を満たし,<math>\overline{\mathbf{A}}_k\,</math> は <math>\overline{\mathbf{A}}_k =(-\mathbf{C})^{-1} \mathbf{D} \mathbf{A}_k\,</math> で与えられる.準出生死滅過程やG/M/1型マルコフ連鎖の場合と同様に,<math>Y_n=l\,</math> であるような状態からなる部分集合をレベル <math>l\,</math> と呼ぶ.
  
225行目: 245行目:
  
 
 エルゴード的なM/G/1型マルコフ連鎖 <math>(Y_n,S_n^+)\,</math> の定常分布を <math>\mathbf{y}=(\mathbf{y}_0, \mathbf{y}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{y}\,</math> は <math>\mathbf{y} = \mathbf{y} \mathbf{P}_{\rm M/G/1}\,</math> を満たすことに注意.ここで
 
 エルゴード的なM/G/1型マルコフ連鎖 <math>(Y_n,S_n^+)\,</math> の定常分布を <math>\mathbf{y}=(\mathbf{y}_0, \mathbf{y}_1, \ldots)\,</math> とする.定常分布 <math>\mathbf{y}\,</math> は <math>\mathbf{y} = \mathbf{y} \mathbf{P}_{\rm M/G/1}\,</math> を満たすことに注意.ここで
%
+
<center>
 +
<math>
 +
 
 
\begin{equation}
 
\begin{equation}
 
\mathbf{G}=\sum_{k=0}^{\infty} \mathbf{A}_k \mathbf{G}^k
 
\mathbf{G}=\sum_{k=0}^{\infty} \mathbf{A}_k \mathbf{G}^k
 
\label{matrix-G}
 
\label{matrix-G}
 
\end{equation}
 
\end{equation}
%
+
</math>
 +
</center>
 
を満たす確率行列を <math>\mathbf{G}\,</math> とし,<math>\mathbf{K}=\sum_{k=0}^{\infty}\overline{\mathbf{A}}_k \mathbf{G}^k\,</math> を定義する.行列 <math>\mathbf{K}\,</math> は確率行列であることに注意.このとき <math>\mathbf{\kappa} = \mathbf{\kappa} \mathbf{K}\,</math>を満たす確率ベクトル <math>\mathbf{\kappa}\,</math> を用いて <math>\mathbf{y}_0\,</math> は次式で与えられる.
 
を満たす確率行列を <math>\mathbf{G}\,</math> とし,<math>\mathbf{K}=\sum_{k=0}^{\infty}\overline{\mathbf{A}}_k \mathbf{G}^k\,</math> を定義する.行列 <math>\mathbf{K}\,</math> は確率行列であることに注意.このとき <math>\mathbf{\kappa} = \mathbf{\kappa} \mathbf{K}\,</math>を満たす確率ベクトル <math>\mathbf{\kappa}\,</math> を用いて <math>\mathbf{y}_0\,</math> は次式で与えられる.
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{y}_0 = \mathbf{\kappa} / C
 
\mathbf{y}_0 = \mathbf{\kappa} / C
\]
+
</math>
%
+
</center>
 
ただし,定数 <math>C\,</math> はレベル 0 への平均再帰時間である.さらに <math>\mathbf{y}_0\,</math> が与えられたとき,<math>\mathbf{y}_k\,</math> (<math>k=1,2,\ldots\,</math>) は次式により順次計算される.
 
ただし,定数 <math>C\,</math> はレベル 0 への平均再帰時間である.さらに <math>\mathbf{y}_0\,</math> が与えられたとき,<math>\mathbf{y}_k\,</math> (<math>k=1,2,\ldots\,</math>) は次式により順次計算される.
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{y}_k =
 
\mathbf{y}_k =
 
\left(
 
\left(
245行目: 270行目:
 
\mathbf{y}_l \mathbf{C}_{k-l+1} \right) (\mathbf{I} - \mathbf{C}_1)^{-1},
 
\mathbf{y}_l \mathbf{C}_{k-l+1} \right) (\mathbf{I} - \mathbf{C}_1)^{-1},
 
\quad k=1,2,\ldots
 
\quad k=1,2,\ldots
\]
+
</math>
%
+
</center>
 
ただし
 
ただし
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{C}_k = \sum_{l=k}^{\infty} \mathbf{A}_l \mathbf{G}^{l-k},
 
\mathbf{C}_k = \sum_{l=k}^{\infty} \mathbf{A}_l \mathbf{G}^{l-k},
 
\quad
 
\quad
 
\overline{\mathbf{C}}_k = \sum_{l=k}^{\infty} \overline{\mathbf{A}}_l \mathbf{G}^{l-k}
 
\overline{\mathbf{C}}_k = \sum_{l=k}^{\infty} \overline{\mathbf{A}}_l \mathbf{G}^{l-k}
\]
+
</math>
 +
</center>
 +
 
  
 
 なお,行列 <math>\mathbf{G}\,</math> は(5)より得られる再帰式
 
 なお,行列 <math>\mathbf{G}\,</math> は(5)より得られる再帰式
%
+
<center>
\[
+
<math>
 +
 
 
\mathbf{G}_{n+1} = \sum_{k=0}^{\infty} \mathbf{A}_k \mathbf{G}_n^k,
 
\mathbf{G}_{n+1} = \sum_{k=0}^{\infty} \mathbf{A}_k \mathbf{G}_n^k,
 
\quad n=0,1,\ldots
 
\quad n=0,1,\ldots
\]
+
</math>
%
+
</center>
 
に基づいて,<math>\mathbf{G}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{G}_n\,</math> を計算すればよい.このとき <math>\mathbf{G}_n\,</math> は要素毎に単調に増加し,確率行列 <math>\mathbf{G}\,</math> に収束することが知られている.
 
に基づいて,<math>\mathbf{G}_0=\mathbf{O}\,</math> を初期値として順次 <math>\mathbf{G}_n\,</math> を計算すればよい.このとき <math>\mathbf{G}_n\,</math> は要素毎に単調に増加し,確率行列 <math>\mathbf{G}\,</math> に収束することが知られている.
  

2007年8月9日 (木) 16:29時点における版

【まちぎょうれつにたいするあるごりずむてきかいほう(algorithmic solution of queues)】

7.1 背景

 従来の待ち行列研究では,多くのモデルに共通する普遍的性質の解明や各種モデルにおける陽な解の導出に主眼が置かれていたが,計算機が身近になると共に,数値計算による待ち行列モデルの分析を意図する研究が活発になってきた[6].ここで共通する考え方は,(i) 待ち行列の挙動を,系内客数を表す変数と系の挙動を表現するために必要な補助的な変数の組で構成される2変数マルコフ連鎖で定式化し,(ii) その2変数マルコフ連鎖がもつ構造に注目して,マルコフ連鎖の定常分布を計算するための数値計算アルゴリズムを構築する,と言うものである[3, 7, 8].このようなアプローチをアルゴリズム的解法(algorithmic solution)あるいは行列解析法(matrix-analytic method)と呼ぶ.

7.2 相型分布とMAP

 状態 0 が吸収状態,状態 が一時的状態である連続時間有限状態吸収マルコフ連鎖 を考える.このとき の推移率行列は

の形に書ける.ただし はすべての要素が 1 の列ベクトルである.このマルコフ連鎖の初期状態分布を としたとき, が吸収されるまでの時間は 上の確率分布を定め,これを表現 をもつ相型分布(phase-type distribution)という[1, 4].以下ではマルコフ連鎖 の一時的状態を相と呼ぶ.

 定義より,表現 をもつ相型分布の分布関数は となり,その平均は である.相の数 を十分に大きく取ることにより,相型分布は で定義されたあらゆる確率分布を任意の精度で近似できることが知られており,指数分布,アーラン分布,超指数分布など,待ち行列で頻繁に用いられる確率分布を特別な場合として含む.

 表現 をもつ相型分布を用いて客の到着間隔の列,すなわち相型再生過程(phase-type renewal process)を生成するには次のようにすればよい.時刻 0 において初期状態分布 に従い相を選ぶ.その後初めて吸収が起こったとき,1 番目の客が到着する.一般に, 番目()の客の到着が起こると,直ちに過去の履歴とは独立に初期状態分布 に従い相を選び,その後吸収が起こった時点で 番目の客が到着する.このようにして生成された客の到着間隔は独立で同一な確率変数列となる.

 相型分布に従う確率変数の列に対して相関を導入可能にしたものにマルコフ型到着過程(Markovian arrival process:MAP)がある[2, 3].相型分布を用いた確率変数列の生成では,到着が起こる度に過去の履歴とは独立に初期分布を選んでいたが,MAP では一時的状態 から吸収されたとき,確率 () で次の初期状態 を選ぶ.ただし,全ての に対して である.

 通常,MAP は二つの 行列 を用いて表現される.ここで行列 は一時的状態間の推移を表し,相型分布の行列 に対応する.一方,行列 要素は状態 で吸収が起こり,次の初期状態が である率 で与えられる.なお, は規約であり, である. を満たす確率ベクトルとしたとき,定常な MAP における客の到着間隔分布は となり,その平均は で与えられる.MAP はあらゆる定常点過程を任意の精度で近似できることが知られており,マルコフ変調ポワソン過程(Markov modulated Poisson process)や独立な相型再生過程の重畳などを特別な場合として含む.特に到着間隔が独立同一な表現 をもつ相型分布に従う場合は , である.

7.3 準出生死滅過程

 到着間隔ならびにサービス時間がそれぞれ表現 () ならびに表現 () をもつ相型分布に従う PH/PH/1 待ち行列を考える.時刻 における客数を ,到着間隔が従う相型分布の相を ,サービス中の場合はサービス時間が従う相型分布の相を とする.このとき,システムの状態は で表される.ただし のときは とする.

 表現 ()()をもつ相型分布の相の数を としたとき, の取り得る状態の数は のとき, 通り, のときは 通りである.これらに適当な番号を割り当てることで,マルコフ連鎖 は2変数マルコフ連鎖 と見なすことができる.さらに,この2変数マルコフ連鎖の状態集合を の値で分類し, であるような状態からなる部分集合をレベル と呼ぶ.レベルの変化に注目すると,2変数マルコフ連鎖 は以下のような形の推移率行列 をもつ連続時間マルコフ連鎖となる.

ここで ならびに ()はクロネッカー積 ,クロネッカー和 を用いて次式で与えられる.

begin{eqnarray*}環境 構文解析に失敗 (構文エラー): {\displaystyle \mathbf{Q}_0 = (-\mathbf{T}_A) \mathbf{e} \mathbf{\alpha}_A \otimes \mathbf{I}_B, & \quad \mathbf{Q}_1 = \mathbf{T}_A \oplus \mathbf{T}_B, \quad & \mathbf{Q}_2 = \mathbf{I}_A \otimes (-\mathbf{T}_B) \mathbf{e} \mathbf{\alpha}_B \\ \overline{\mathbf{Q}}_0 = (-\mathbf{T}_A) \mathbf{e} \mathbf{\alpha}_A \otimes \mathbf{\alpha}_B, & \quad \overline{\mathbf{Q}}_1 = \mathbf{T}_A, \quad & \overline{\mathbf{Q}}_2 = \mathbf{I}_A \otimes (-\mathbf{T}_B)\mathbf{e} }

ただし () は 次元の単位行列である.

 上記の2変数マルコフ連鎖 は次の性質をもつ.(i) 境界部分を除いて空間的に同質(例えばレベルが1以上()のとき,一回の推移でレベルが一つ増加する率は の要素で与えられる),(ii) 一回の推移でレベルは高々一つしか増減しない.このような性質をもつ2変数連続時間マルコフ連鎖を準出生死滅過程(quasi birth-and-death process:QBD)という[1, 3, 4].

 推移率行列 をもつ準出生死滅過程において が規約である場合,, なる正のベクトル が一意に定まり, のとき準出生死滅過程 はエルゴード的となる.PH/PH/1 待ち行列の場合,この条件は平均到着間隔 が平均サービス時間 より大きいことと等価である.

 エルゴード的な準出生死滅過程 の定常分布を とする.定常分布 を満たすことに注意.このとき,

begin{equation}環境 構文解析に失敗 (不明な関数「\label」): {\displaystyle \mathbf{Q}_0 + \mathbf{R}\mathbf{Q}_1 + \mathbf{R}^2 \mathbf{Q}_2 = \mathbf{O} \label{rate-matrix-QBD} }

を満たす最小の非負行列 を用いて () は

begin{equation}環境 構文解析に失敗 (不明な関数「\label」): {\displaystyle \mathbf{q}_k = \mathbf{q}_1 \mathbf{R}^{k-1}, \quad k=2,3,\ldots \label{matrix-geometric-QBD} \end{equation} }

で与えられる.さらに ,

ならびに正規化条件 より求めることができる.

 非負行列 は公比行列(rate matrix)と呼ばれており,(2)は行列幾何解(matrix-geometric solution)と呼ばれている.公比行列 は一般には陽に与えられないため,様々な数値計算アルゴリズムが提案されている.最も単純なものは(1)を変形することで得られる

に基づいて, を初期値として順次 を求めるというものである.このとき は要素毎に単調に増加し,公比行列 に収束することが知られている.

7.4 G/M/1型マルコフ連鎖

 客の到着間隔 が独立で同一な分布 に従い,サービス時間が表現 () をもつ相型分布に従う GI/PH/1 待ち行列を考える. 番目の客の到着直前の系内客数を ,十 分に多くの客が系内にいるという仮定の下で, 番目と 番目の客の到着間隔の間にサービス可能な客数を とすると

が成立する.よって 番目の客の到着直前におけるサービス時間が従う相型分布の相を とすると, は下記の遷移確率行列 をもつ2変数離散時間マルコフ連鎖となる.

ここで

を満たし, で与えられる.準出生死滅過程と同様に, であるような状態からなる部分集合をレベル と呼ぶ.

 2変数マルコフ連鎖 は(i) 境界部分を除いて空間的に同質(例えばレベルが1以上()のとき,一回の遷移でレベルが変化しない確率は の要素で与えられる),(ii) 一回の遷移でレベルは高々 一つしか増加しない.このような性質をもつ2変数離散時間マルコフ連鎖をG/M/1型(Markov chain of G/M/1 type)と呼ぶ[3, 4, 7, 8].

 遷移確率行列 をもつG/M/1型マルコフ連鎖において, が規約である場合, となるような正のベクトル が一意に定まり, ならば G/M/1型マルコフ連鎖はエルゴード的である.GI/PH/1 待ち行列の場合,この条件は平均到着間隔 が平均サービス時間 より大きいことと等価である.

 エルゴード的なG/M/1型マルコフ連鎖 の定常分布を とする.定常分布 を満たすことに注意.このとき,

構文解析に失敗 (不明な関数「\begin{equation}」): {\displaystyle \begin{equation} \mathbf{R} = \sum_{k=0}^{\infty} \mathbf{R}^k \mathbf{B}_k \label{rate-matrix-GM1} \end{equation} }

を満たす最小の非負行列 を用いて () は % \begin{equation} \mathbf{x}_k = \mathbf{x}_0 \mathbf{R}^k, \quad k=1,2,\ldots \label{matrix-geometric-GM1} \end{equation} </math>

で与えられる.さらに

より求められる.

 準出生死滅過程の場合と同様に,非負行列 を公比行列と呼び,(4)を行列幾何解と呼ぶ.公比行列 を求める最も単純な方法は,(3)より得られる

に基づいて, を初期値として順次 を求めるというものである.このとき は要素毎に単調に増加し,公比行列 に収束することが知られている.

7.5 M/G/1型マルコフ連鎖

 客の到着が表現 をもつ MAP に従い,サービス時間 が独立で同一な分布 に従うMAP/G/1 待ち行列を考える. 番目の客のサービス終了直後の系内客数を 番目のサービス中に新たに到着する客数を とすると

が成立する.よって 番目のサービス直後における客の到着が従うMAPの相を とすると, は下記の遷移確率行列 をもつ2変数離散時間マルコフ連鎖となる.

ここで

を満たし, で与えられる.準出生死滅過程やG/M/1型マルコフ連鎖の場合と同様に, であるような状態からなる部分集合をレベル と呼ぶ.

 2変数マルコフ連鎖 は(i) 境界部分を除いて空間的に同質(例えばレベルが1以上()のとき,一回の遷移でレベルが 増加する確率は の要素で与えられる),(ii) 一回の遷移でレベ ルは高々一つしか減少しない.このような性質をもつ2変数離散時間マルコフ連鎖をM/G/1型(Markov chain of M/G/1 type)と呼ぶ[3, 5, 7, 8].

 遷移確率行列 をもつM/G/1型マルコフ連鎖において, が規約である場合, となるような正のベクトル が一意に定まり, かつ の各要素が有限ならば M/G/1型マルコフ連鎖はエルゴード的である.MAP/G/1 待ち行列の場合,この条件は平均到着間隔 が平均サービス時間 より大きいことと等価である.

 エルゴード的なM/G/1型マルコフ連鎖 の定常分布を とする.定常分布 を満たすことに注意.ここで

構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{equation} \mathbf{G}=\sum_{k=0}^{\infty} \mathbf{A}_k \mathbf{G}^k \label{matrix-G} \end{equation} }

を満たす確率行列を とし, を定義する.行列 は確率行列であることに注意.このとき を満たす確率ベクトル を用いて は次式で与えられる.

ただし,定数 はレベル 0 への平均再帰時間である.さらに が与えられたとき, () は次式により順次計算される.

ただし


 なお,行列 は(5)より得られる再帰式

に基づいて, を初期値として順次 を計算すればよい.このとき は要素毎に単調に増加し,確率行列 に収束することが知られている.


参考文献

[1] G. Latouche and V. Ramaswami, it Introduction to Matrix Analytic Methods in Stochastic Modeling, SIAM, 1999.

[2] D. M. Lucantoni, K. S. Meier-Hellstern and M. F. Neuts, "A single-server queue with server vacations and a class of nonrenewal arrival processes," Advances in Applied Probability, 22 (1990), 676--705.

[3] 牧本直樹,『待ち行列アルゴリズム ---行列解析アプローチ---』,朝倉書店, 2001.

[4] M. F. Neuts, Matrix-Geometric Solutions in Stochastic Models, An Algorithmic Approach, Johns Hopkins University Press, 1981.

[5] M. F. Neuts, Structured Stochastic Matrices of M/G/1 Type and Their Applications, Dekker, 1989.

[6] 高橋幸雄,「待ち行列研究の変遷」, 『オペレーションズ・リサーチ』, 43 (1998), 495--499.

[7] 高橋幸雄,牧本直樹,「相型分布と行列解析法」, 『オペレーションズ・リサーチ』, 43 (1998), 618--623.

[8] 滝根哲哉,「構造化されたマルコフ連鎖と待ち行列」, 『システム/制御/情報』, 43 (1999), 135--140.