待ち行列のシミュレーション

第一学習社『社会と情報』『情報の科学』にある待ち行列の問題をPythonでやってみよう。

客が来る間隔(分)は1〜6の整数の乱数とする。どの客も窓口で3分のサービスを受ける。200人の客の平均待ち時間を求めよという問題である。

import numpy as np

rng = np.random.default_rng()

到着時刻 = 0
開始時刻 = 0
終了時刻 = 開始時刻 + 3
待ち時間 = [開始時刻 - 到着時刻]
for 客 in range(1, 200):
    到着時刻 += rng.integers(1, 7)
    開始時刻 = max(到着時刻, 終了時刻)
    終了時刻 = 開始時刻 + 3
    待ち時間.append(開始時刻 - 到着時刻)

np.mean(待ち時間)

200 をもっと大きくして,待ち時間のヒストグラムを描いてみよう。

サービス時間も乱数にしてみよう。どんな乱数がいいだろうか。

より現実的な到着時刻の間隔は指数分布である(ポアソン過程)。


Last modified: