複数クラスを持つM/M/1待ち行列(1)

ケリーネットワークの積形式解の存在証明の試み(失敗)」のあと、なかなか問題解決の糸口がつかめていません。つかめていませんが、考えたことをご紹介します。


まず、対象を非常に簡単なものにしてみました。すなわちM/M/1待ち行列にしてみました。しかし、この待ち行列には複数のクラスのジョブがそれぞれ指数分布の到着時刻間隔で到着するものとします。その時の定常状態分布はどのようになるか、考えてみました。
まず、状態の定義をします。クラスのない(クラスが1つだけの)M/M/1の場合の状態はシステム内のジョブの数でしたが、今回の場合、どのクラスのジョブが今、処理中であるかによって次に遷移する状態が変わることに気づきます。さらに、処理中のジョブの処理が終了した時、次に処理中になるジョブのクラスは、つまり、それまで処理を待っていた行列の先頭のジョブのクラスであるわけですから、処理中のジョブのクラスだけでなく待っているジョブのクラスも気にしなければならないことが分かります。以上のことから、状態は待ち行列(処理中のものも含める)に並んだ各ジョブのクラスの配列ごとに考えることにします。たとえば、クラスがA、B2つあるとし、下図の左端が処理中のジョブ、そして待ちジョブがその右に順番に並んでいるとすれば、下の図の上下2つの状態は別々の状態であると考えます。


状態をSで表します。そして上図の行列を左から順に1、2と番号をつけ、これを位置と呼ぶことにします。位置iのクラスをc(i)で表します。さらに状態Sの時にクラスkジョブが到着した状態をS(+k)で表します。またクラスの数をQで表します。ここでP(S)は状態Sの定常状態確率を、t_eは装置の平均処理時間を、\lambda_kはクラスkジョブスループットを表すとします。すると状態S(+k)dtの間にジョブの処理が終って別の状態に遷移する確率は

  • P(S(+k))\frac{1}{t_e}dt

と表すことが出来ます。次に状態Sdtの間にクラスkジョブが到着して状態S(+k)に遷移する確率は

  • P(S)\lambda_kdt

と表すことが出来ます。状態S(+k)について考えると、定常状態では前記の2つの遷移確率が等しくなるはずですから次の平衡方程式が成り立ちます。

  • P(S(+k))\frac{1}{t_e}dt=P(S)\lambda_kdt・・・・・(1)

(「M/M/1における待ち時間の式の導出(2)」に平行した議論が出ています。)


ここでクラスkについての利用率u_k

  • u_k=\lambda_k{t_e}・・・・・(2)

で定義します。このように定義すると、式(2)の両辺を全てのクラスについて合計をとると

  • \Bigsum_{k=1}^Q{u_k}=t_e\Bigsum_{k=1}^Q{\lambda_k}・・・・・(3)

ここで

  • \Bigsum_{k=1}^Q{\lambda_k}

はクラスによらずこの待ち行列に到着するジョブスループットを表していますからこれを

  • \lambda

で表すと、結局、式(3)は

  • \Bigsum_{k=1}^Q{u_k}=t_e{\lambda}

よって

  • \Bigsum_{k=1}^Q{u_k}=u・・・・・(4)

となります。ただしuは装置の利用率を表しています。(4)はu_kが装置の利用率uのうちのクラスkに関わる部分を表していることを示しています。


式(2)を式(1)に代入して変形すると

  • P(S(+k))=P(S)u_k・・・・・(5)

になります。ここでシステムがまったくジョブを持たない定常状態確率をP(0)で表すことにします。すると、システムにクラスc(1)ジョブが1個だけ処理中の状態を\{c(1)\}で表すとすると、式(5)より

  • P(\{c(1)\})=P(0)u_{c(1)}・・・・・(6)

となります。さらに、処理中のジョブのクラスがc(1)で待っているジョブのクラスがc(2)であり、この2つのジョブだけが存在する状態を\{c(1),c(2)\}で表すと式(5)と式(6)から

  • P(\{c(1),c(2)\})=P(\{c(1)\})u_{c(2)}=P(0)u_{c(1)}u_{c(2)}

同様に考えて、状態S\{c(1),c(2),...,c(N)\}と表せば、(ただしNは状態Sの時のジョブ数であるとします)

  • P(S)=P(0)\prod_{i=1}^Nu_{c(i)}

ここでP(0)は装置が空いている確率であるから1-uになるはずなので、結局

  • P(S)=(1-u)\prod_{i=1}^Nu_{c(i)}・・・・・(7)

となります。


複数クラスを持つM/M/1待ち行列(2)」に続きます。