必要な入力と、得られる結果
式には、時間あたりの到着人数、平均対応時間、窓口数を入れます。ポアソン到着、独立した指数分布の対応時間、同じ能力の窓口、先着順の共通の列、待つ場所に上限がなく途中離脱もしないことを仮定します。需要が窓口全体の処理能力を下回り、定常状態になるまで運営する前提です。
得られるのは、対応が始まるまでの平均待ち時間、稼働率、待つ確率、待つ平均人数です。待たない人も含みます。平均待ちは最長待ちの保証ではなく、人数で示す列は長さをmで測ったものでもありません。
シミュレーションには、到着時刻や時間帯ごとの到着、対応時間の分布、経路、列の規則、職員の勤務、途中離脱や兼務の条件も入れます。入力を残し、乱数を変えて複数回実行し、案ごとに結果を保存します。時刻ごとの動きや資源ごとの待ちを得られますが、実測していない仮定が計算だけで事実になるわけではありません。
式とシミュレーションが合う例
記録した照合は、120人/時のポアソン到着、平均60秒の独立した指数分布の対応時間、同じ能力の3窓口と共通の列を使います。各回48時間、最初の1時間に到着した人を除外し、seed 371〜378の8回で平均しました。歩行・優先処理・途中離脱は入れません。
再生記録の最初の人だけでなく、全件の集計を使っています。有限の実行には標本誤差と終了時点の未完了待ちがあります。同じ定常モデルの実装同士の照合であり、実施設の予測精度を検証したものではありません。
| 指標 | Erlang C | 8回の平均 |
|---|---|---|
| 平均待ち時間(秒) | 26.666667 | 26.633947 |
| 窓口稼働率(比率) | 0.666667 | 0.669731 |
| 列で待つ平均人数(人) | 0.888889 | 0.890134 |
終映後の集中を1時間平均にすると
映画館の記録は観客321人、女性個室4つです。20回で女性の利用者は平均64.5人。これは計算で生じた需要の平均で、観客全員の人数でも、各回に端数の人がいるという意味でもありません。観測は最初の終映から60分です。
式では同じ64.5人を1時間にならし、λ = 64.5人/時とします。個室の利用時間は最小・最頻・最大が60 / 90 / 240秒の三角分布を仮定しており、その平均は(60 + 90 + 240)/ 3 = 130秒。この平均と同じ4個室をErlang Cに渡します。
シミュレーションは集中を残し、終映後0〜120秒の間に歩き始めます。1時間の人数・利用時間の仮定・個室数が同じでも、終映の間隔を変えると記録した待ち時間は変わりました。20回とも観測の時間内に全観客が退館しています。
これは1時間平均への単純化と記録した場面の比較で、到着の山だけの影響を切り分けた実験ではありません。式は三角分布の利用時間を指数分布に置き換え、歩行を省きます。シミュレーションでは個室まで歩く間も個室を確保しますが、式に入れたのは利用時間の平均だけです。空の列から始まる有限時間の計算と定常状態という違いも、結果の差に含まれます。
| 終映の間隔(分) | 1時間平均のErlang C:平均待ち(分) | 記録したシミュレーション:平均待ち(分・20回) |
|---|---|---|
| 0 | 0.34 | 15.9 |
| 10 | 0.34 | 11.7 |
| 20 | 0.34 | 7.9 |
運営の条件から選ぶ
| 場面 | 出発点 | 理由・確かめること |
|---|---|---|
| 一定の到着、同じ窓口、共通の列 | 前提が合うならErlang C。 | 対象の時間帯の到着と対応を実測して使う。 |
| 終映などで一度に来る | 到着の時刻を入れたシミュレーション。 | 1時間平均では、集中する時刻と山の重なりを失う。 |
| 歩く距離や別々の列がある | 経路と列の規則を入れたシミュレーション。 | 距離、列の選び方、並び直しが待ちを左右する。 |
| 途中で帰る・職員が兼務する | その行動や仕事を設定したシミュレーション。 | 設定していない途中離脱や職員の仕事は、自動では含まれない。 |
| 定常の前提で窓口数を比べる | まず式。ほかの条件が効くならシミュレーション。 | 案ごとに需要と対応時間の前提をそろえる。 |
モデルで扱う範囲に結論をとどめる
映画館の例が扱うのはサービスの待ち列と経路で、群集の圧力・回避・扉の混雑・避難の安全性ではありません。その待ち時間も式の値も、器具数の法令適合や安全な収容人数を証明しません。実際の現場で入力を測り、必要な要件は別に確認してください。
計算ツールは登録なしで無料です。モデルを開いてシナリオを準備できますが、Laydyneでシミュレーションを実行するにはProが必要です。記事では、自分で実行する前に記録済みの結果と前提を読めます。