Excelによる、GI/G/s待ち行列の簡易シミュレートは出来るか?

では、「Excelによる、GI/G/1待ち行列の簡易シミュレート」で述べた方法を拡張してGI/G/s待ち行列の簡易シミュレートは出来るでしょうか? その前にそもそもGI/G/2待ち行列の簡易シミュレートは出来るでしょうか?
実は、これは出来ません。そのわけをこれから説明します。


Marshallの公式に向けて(1)」で出てきた図(=ガント・チャート)をGI/G/2に拡張すると

  • 図1

  • 図2

でよいように思えます。ただし、装置は装置1と装置2の2台であり、上の図ではB(=処理時間)のところにどちらの装置で処理されているかを示す数字をカッコの中に示しました。これらの図から以下の式

  • W_{n+2}=\max(0,W_n+B_n-A_n-A_{n+1})・・・・・(1)

が成り立つように一見、思えます。しかし、処理時間Bは確率変数ですので、B_nの終了時刻、つまり、(W_nの開始時刻、つまりジョブnの到着時刻を基準として時刻を測れば)W_n+B_nB_{n+1}の終了時刻、つまりA_n+W_{n+1}+B_{n+1}とはどちらが先か決まっていません。つまり

  • 図3

ということがあり得るのです。(ただし、ジョブはFIFOで装置に割付けられるので、B_nの開始時刻がB_{n+1}の開始時刻よりあとになることはありません。) それでは、ちょっとややこしいですが、W_n+B_nA_n+W_{n+1}+B_{n+1}のうち小さいほうと、A_n+A_{n+1}の差を取ればよいのでしょうか? つまり、次の式のように考えるのです。

  • W_{n+2}=\max[0,min(W_n+B_n,A_n+W_{n+1}+B_{n+1})-A_n-A_{n+1}]・・・・・(2)

ところが、これも正しくありません。図3で、さらにもう1つジョブの到着を書き加えます。

  • 図4


このジョブは装置1で処理されますが、その待ち時間W_{n+3}は、図から

  • W_{n+3}=W_n+B_n-A_n-A_{n+1}-A_{n+2}・・・・(3)

となります。ジョブn+3にとっては3つ前のジョブの動きまで気にしないとW_{n+3}の値が決まらないのです。よって式(2)では不十分であることが分かります。図4におけるB_nがもっと長ければ、その間、装置2でジョブをいくつも処理することになるので、一般に待ち時間Wを計算するのに、いくつ前のジョブの情報まで必要になるかは決めることが出来ません。そうすると、これをExcelで実現することは難しくなります。(私はそれほどExcelに詳しいわけではないので、ひょっとすると実現する方法があるのかもしれませんが。)


こういう理由で、「Excelによる、GI/G/1待ち行列の簡易シミュレート」をGI/G/sに拡張することが出来ないのです。