もう一度(これでだめな時は更新してください。) : lambdaとmuを変えて最初(time=0)からやり直します。
1〜10台のレジにおける待ち行列シミュレーション (2015年5月18日公開、2015年05月19日23:56:43第1回の改訂)
待ち行列関係M/M/1M/M/2
客数推移関係客数推移客数推移と客さばき数推移
客数推移と客さばき数推移 時間帯毎に到着率が変わる版
スクリーンセーバー

上はJAVAで作られています。メモリを大量に使ったり、重くなるかもしれません。その時は、ごめんなさい。
実行後に画面をスクロールしたり、アプレット全体が画面に入ってないと、間違った画面になるかもしれないので、気をつけてください。画面の大きさを決めてから”もう一度”をクリックするか、更新(reload)してください。


場合によってはアプレットの中の黄色い数字がスムーズに動かないかもしれません。


ここでは、レジの待ち行列をシミュレーションしようとしています。

ここで表示されている数字の時間の単位は秒だと考えると、なんとなくイメージしやすいと思います。実際には、10分の1から100分の1の高速でシミュレーションしています。
客は平均が1/lambdaの指数分布にしたがって、到着します。ただし、全レジの待ち人数が18人だと、並ばずに帰ります。次のお客さんが来るまでの時間は、t1と計算されています。
来た客は、待ち人数が一番少ないレジに並びます。一番少ないレジが複数ある場合、レジ番号(*の隣の数字がレジ番号です。)が一番小さいレジに並びます。実際には商品の棚や他の客が邪魔ですし、遠くのレジの混雑状況を把握するのも困難なので、一番短い待ちのレジに並ぶことは難しいですが、ここではそのように仮定しています。
一度レジに並んでしまったら、どんなに待たされようが、自分の番がくるまで、そのレーンで待ち続けます。
他のレーンが短くなったからといって、他のレーンに移動することもしません。(いわゆる鞍替え行動もしません。)
*の隣の数字がレジ番号で、gは挨拶などにかかる時間の平均です。sは1品の商品をスキャンするのにかかる秒数の平均です。pは金銭授受にかかる時間の平均です。cは現在の待ち人数です。tは今サービスしている客の残りのサービス時間です。
来た客に書かれている数字は、上がサービス時間、下が買上点数です。
乱数を使って、
サービス時間=挨拶時間g+スキャン時間s×買上点数+金銭授受時間p+乱数
という感じの式(実際の式は検討中で、詳しくはjavaコードを参照ください。)で、サービス時間が来たときに決められています。(実際にはサービスしながらサービス時間が決まりますが、ここでは計算の都合上、来たときにサービス時間が決まってしまっていますし、見える化されています。)
●参考文献
商業界、レジチェッカーの教科書、2004
高橋幸雄、森村英典、混雑と待ち、朝倉書店、2004
大山崇、セルフ精算機方式による食品スーパーのレジ待ち行列に関する考察、2013年度(2014年)確率モデルシンポジウム報文集、pp. 214-223
大山崇、セルフ精算機方式の普及に関する考察、流通ネットワーキング2014年3・4月号、pp. 13-16
大山崇、食品スーパーのレジの設備とその配置に関する考察、流通ネットワーキング2015年3・4月号、pp. 10-13
●プログラムのダウンロード
○Java(regi10.java)

ご意見、ご感想、お問い合わせ、お願い等がございましたら、お気軽に、
メール送信フォームからメールを送るか、
●掲示板に書き込むか、
どちらかお好きな方法で、ご連絡お願いいたします。


●大山崇のホームページの利用について
●大山崇のホームページ