Excelによる、M/M/1のシミュレート

Excelによる、GI/G/1待ち行列の簡易シミュレート」でExcelによるシミュレーションの方法を確立しましたので、ここでいくつかの待ち行列についてシミュレートし、その平均待ち時間を求めてみましょう。まずは、M/M/1待ち行列でやってみます。
到着間隔のセルには「=-到着間隔平均*LN(RAND())」を処理時間のセルには「=-処理時間平均*LN(RAND())」を入力して、1000回のジョブ到着をシミュレートしました。また、稼働率uを入力出来るようにし、処理時間平均と稼働率から到着間隔平均を算出するようにしています。また、待ち時間平均を「AVERAGE()」を使って計算し、それを処理時間平均値で割ってX_qの欄に表示させています。


M/M/1の待ち時間CT_qは理論上では

  • CT_q=\frac{u}{1-u}t_e

なので、X_qの欄の数字は理論的には

  • X_q=\frac{CT_q}{t_e}=\frac{u}{1-u}

になります。これがシミュレーションでどのような結果になるか見てみます。その結果が下の通りです。

まあまあ、理論値と合っているのではないでしょうか? ただし、uの値が大きくなるとX_qのバラつきも大きくなってシミュレーション結果と理論値がなかなか合わない傾向があるので注意して下さい。逆に言えば、待ち行列理論の計算結果を実際に適用する際は、uの値が大きい場合には、あまり厳密な値にこだわらないほうがよい、ということです。このシミュレータで4回、シミュレーションした結果を下に示します。u=0.8,0.9の時はX_qの値は大きく変動しているのが分かります。