表計算ソフトウェアでシミュレーション(5)待ち行列のシミュレーション②待ち時間を推測してみた

モデル化とシミュレーション

こんにちは。前回はお客さんが飲食店に来て、何かを注文して受け取る時刻がどのようになるかをシミュレーションして、店に来てから注文できるまでの時間を求めました。

その値の傾向を今回はつかむことにしていきます。

ある程度の回数シミュレーションして、平均待ち時間を求めていきます。回数を増やしていくと待ち時間の期待値に収束すると考えています。

循環参照を使う

反復して試行し平均を求めるには、このシリーズの第2回目で取り上げた内容のうち循環参照を使う方法で求めることができます。

それでは、集計できるような計算式を作っていきます。

累計を求める

はじめに、試行回数と店の到着時刻・注文時刻・受取時刻・待ち時間の累計を求めます。

試行回数と累計は別のような感じがしますが、試行回数は1回の試行ごとに1ずつ、累計は1回の試行回数でその回の値だけ増えることになります。

そのことから試行回数は

=試行回数+1

時刻・時間の累計は

=累計+その回の時刻・時間

ということになります。

待ち時間の平均値を求める

平均値は単純に

=累計/試行回数

で求めることができます。

ここまでで、次のような表が出来上がります。

値をリセットできるようにしているので、式がいくらか複雑になっていますが、肝心なところは上の計算式で求めています。

10000回試行してみた

それではF9キーで再計算をひたすら繰り返してみます。

とりあえず10000回試行してみました。

桁数を丸めていないので、見にくいのですが概ね傾向はつかめると思います。

とりあえず5人目のお客さんの数値を拾ってみます。

平均到着時刻 ・・・  97.158秒

平均注文時刻 ・・・ 189.289秒

平均待ち時間 ・・・  92.131秒

(平均受取時刻 ・・・ 231.314秒)

ちなみに、20人目のお客さんまでシミュレーションしていて、20人目のお客さんの平均待ち時間は430.21秒です。

約7分10秒か・・・長いような気がするな・・・

とりあえず今回はこれでおしまいにします。それではまた。

Posted by 春日井 優