Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

M/M/s(M/M/c)とM/D/s(M/D/c)の特性の違い

M/M/s(M/M/c)は以下の「M/M/s(∞) の諸元」を使用。こちらは解析解として算出。 www.kogures.com

M/D/s(M/D/c)は以下のコードを手元で走らせた。こちらはシミュレーションによる解。 github.com

yamlモジュールは以下でインストール。

python -m pip install pyyaml

そのうえで、単純に実行して以下が出た場合、

PS C:\path\to\mdc_queue> python.exe .\mdc_queue.py .\input.yaml
Traceback (most recent call last):
  File "C:\path\to\mdc_queue\mdc_queue.py", line 22, in <module>
    simdata = yaml.load(fin)
TypeError: load() missing 1 required positional argument: 'Loader'

22行目の simdata = yaml.load(fin)simdata = yaml.safe_load(fin) に直すこと。

M/M/s(M/M/c)の方は平均到着間隔0.33秒(λ=3)平均サービス時間1.5秒(μ=0.66)、窓口数6。 M/D/s(M/D/c)の方は平均到着間隔0.33秒(λ=3)サービス時間は固定で1.5秒、窓口数6。 パラメータは揃えたけど、コレ結果合ってるのかな?(サービス時間の分散が小さい方が平均待ち時間は少なくなる?)

# M/M/s M/D/s
1 平均待ち行列長さ 1.361 0.72
2 平均待ち時間 0.454 0.24
3 平均系内時間 1.969 1.75