M/M/1待ち行列モデル
客がランダムに到着し、処理時間もランダムで、窓口が1つの待ち行列のモデル。窓口の利用率を ρ、平均サービス時間を Ts とすると、平均待ち時間は ρ ÷(1 − ρ)× Ts で求められる。
イマシルちゃんの解説
レジが1つしかないお店を思い浮かべてみて。
お客さんは、いつ来るかバラバラで、会計にかかる時間もバラバラだよね。
お店が空いているときは、すぐに会計できるけど、
レジが忙しくなってくると、行列がどんどん長くなっていくんだ。
しかも、ほとんどフル稼働に近づくと、待ち時間が急にびっくりするくらい長くなるんだよ。
より深い解説
ケンドール記号
待ち行列のモデルは、「到着の分布/サービス時間の分布/窓口の数」で表す。
| 記号 | 意味 |
|---|---|
| M | ランダム(到着はポアソン分布、サービス時間は指数分布に従う) |
| D | 一定(決まった時間) |
| G | 一般の分布 |
M/M/1 は、到着がランダム、サービス時間が指数分布、窓口が1つのモデルである。
公式
| 記号 | 意味 |
|---|---|
| λ | 平均到着率(単位時間あたりに来る客の数) |
| Ts | 平均サービス時間(1人の処理にかかる時間) |
| ρ | 利用率(窓口が使われている割合)= λ × Ts |
| 求めるもの | 式 |
|---|---|
| 平均待ち時間 Tw | ρ ÷(1 − ρ)× Ts |
| 平均応答時間(待ち時間+サービス時間) | Tw + Ts = Ts ÷(1 − ρ) |
| 平均待ち行列長(待っている客の数) | ρ² ÷(1 − ρ) |
ρ が1に近づくと、1 − ρ が0に近づくため、待ち時間は急激に長くなる。ρ が1以上だと、行列は限りなく伸び続ける。
計算例
ある窓口に、1時間あたり平均10件の処理要求が来る。1件の処理には平均3分かかる。
- Ts = 3分、λ = 10件 ÷ 60分 = 1/6件/分
- ρ = λ × Ts = 1/6 × 3 = 0.5
- 平均待ち時間 = 0.5 ÷(1 − 0.5)× 3 = 3分
- 要求してから処理が終わるまでの平均時間 = 3 + 3 = 6分
時間の単位(秒、分、時間)をそろえてから計算するのがポイントである。処理時間が「データ量 ÷ 処理速度」で与えられるときは、まず Ts を求める。
ネットワークでの使い道
ルータの出力の待ち行列、サーバへの要求の処理、プリンタの印刷の待ちなど、「1つの処理装置に、ランダムに仕事が届く」場面の、遅延の見積もりに使う。回線の利用率が高くなると遅延が急に増えるため、利用率に余裕を持たせて設計する。