qsim kobe.r4
TRANSCRIPT
1
待ち行列のシミュレーション
Kobe.R #4
2014.05.17
@florets1
2
待ち行列のモデル
到着要素はランダムに到着する。
待ち行列サービスが使用中であれば、要素は待ち行列を作る。
待ち行列規則:サービスを受ける順番。到着順、ランダムなど。
サーバー要素にサービスを提供する。
サービス時間はランダム。
3
待ち行列システムの総コスト
総コスト=サービスコスト+待ち行列コスト
レジ増設→サービスコスト増大、待ち行列コスト減少
4
洗車場を例に
顧客は 1時間あたり平均 15台( 4分に 1台)、ランダムに到着
洗車時間は 1台につき平均 3分( 1時間あたり 20台)、変動あり
つまり洗車スピードは車の到着より速い。
5
分析的なモデル
単位時間あたりに到着する顧客数(平均到着率): λ
単位時間あたりにサービスを受ける顧客数(平均サービス率): μ
)9(15.0)1520(20
15
)(: 分時間平均待ち時間 =
−=
−=
λµµλ
Wq
)12(2.0)1520(20
11: 分時間間システムにいる平均時 =
−=
−=
λµW
25.020
1511: 0 =−=−=
µλ
Pサーバーのアイドル率
57.020
15: ===
µλρサーバーの利用率
6
分析的なモデルの弱み
平均到着率 λが平均サービス率 μより大きいと計算できない。
現実の待ち行列は平均を中心にして大きく変化する。
数学的に解を求めるために、モデルを制限しないといけない。
ウォ-ムアップ期間のことはわからない。
7
待ち行列システムをシミュレート (1)
1. 顧客が到着する。
2. サーバーが作業中であればサービスを待つ。
3. サービスを受ける。
4. システムから出発する。
8
待ち行列システムをシミュレート (2)
a. 顧客が到着したときにサーバーがアイドル中なら、到着と同時にサービスを開始できる。
b. 顧客が到着したときにサーバーが作業中なら、その顧客の前に到着した顧客のサービスが完了するまで、サービスは開始できない。
c. 顧客のサービス完了時刻は、サービス開始時刻に実際のサービス時間を足したものである。
9
待ち行列システムをシミュレート (3)
arrival.time[i] 顧客 iの到着時刻
start.time[i] 顧客 iのサービス開始時刻
completion.time[i] 顧客 iのサービス完了時刻
wait.time[i] 顧客 iの待ち時間
idle.time[i] 顧客 i-1と顧客 iの間のサーバーアイドル時間
tba[i] 顧客 i-1と顧客 iの到着間隔
st[i] 顧客 iのサービス時間
10
待ち行列システムをシミュレート (4)
simulate()で 100人の顧客の行列をシミュレートする。
trial() は simulate()を 1000回試行して、平均待ち時間やアイドル率を計算する。
11
待ち行列システムをシミュレート (5)
Histogram of mean.wait.time
mean.wait.time
Frequency
0 10 20 30 40 50
050
100
150
Histogram of mean.idle.rate
mean.idle.rate
Frequency
0.0 0.1 0.2 0.3 0.4 0.5
010
30
分析的なモデルでは 9分
分析的なモデルでは 0.25
12
参考文献
James R. Evans (著 ), David L. Olson (著 )
リスク分析・シミュレーション入門―Crystal Ballを利用したビジネスプランニングの実際