1. はじめに
応用情報技術者試験などの過去問で見かける「M/M/1の待ち行列モデル」。
解説を見ると下記の公式で解けるようです。
$W = \frac{\rho}{1 - \rho} \times T_s$
このギリシャ文字と分数の羅列を見た瞬間、嫌になりますが、
今回は、この待ち行列モデルを「友達の家でのスマブラ」に置き換えて、なぜこの計算式になるのかを考えてみます。
2. 待ち行列の公式を「スマブラ」に翻訳する
まずは、小難しい専門用語を一旦リセットして、スマブラの状況に翻訳してみましょう。
-
$T_s$(平均サービス時間) = 1試合にかかる時間
- 例:タイム制で1試合の平均が「4分」とします。
-
$\rho$(利用率) = Switchの混み具合
- 例:常に誰かが遊んでいる状態が100%(1.0)。半分くらい空いている時間が50%(0.5)です。
-
$W$(平均待ち時間) = コントローラーを握るまで待つ時間
- 例:自分の番が回ってくるまでに、後ろのソファーで他の人のプレイを見ながら待つ時間です。
これを先ほどの公式に当てはめると、こういうことになります。
「待ち時間 =($\frac{\text{今の混み具合}}{1 - \text{今の混み具合}}$)$\times$ 1試合の時間」
具体的な数字で計算してみよう(待ち時間のリアル)
公式の形がわかったところで、実際の数字を入れて「待ち時間のリアル」を体感してみましょう。1試合の時間は先ほどと同じ「4分($T_s = 4$)」とします。
パターン①:ほどよく遊んでいる状態。1試合同じくらい(4分)ダラダラする時間がある状態。(利用率50%)
- $\rho = 0.5$ の場合です。
- 計算式:$W = \frac{0.5}{1 - 0.5} \times 4$
- $W = \frac{0.5}{0.5} \times 4 = 1 \times 4 = \mathbf{4}$ 分
【結果】 待ち時間は4分。つまり、目の前でやっている1試合が終わるのを待てば、すぐに自分の番が回ってきます。直感的にも非常に納得できる数字ですね。
パターン②:みんなガチ勢な状態。ほとんど休憩なしで回している状態(利用率80%)
- 「ちょっと混んできたな」という $\rho = 0.8$ の場合です。
- 計算式:$W = \frac{0.8}{1 - 0.8} \times 4$
- $W = \frac{0.8}{0.2} \times 4 = 4 \times 4 = \mathbf{16}$ 分
【結果】 なんと、待ち時間は一気に16分に跳ね上がります!1試合4分のために、他の人が戦っているのを4試合分もソファーで眺めていなければなりません。
このように、具体的な数字を入れてみると、「混み具合(利用率)が少し上がるだけで、待ち時間は一気に跳ね上がる」というのがイメージできます。
3. 「窓口を統合したら待ち時間はどうなる?」
もし、窓口を1つにまとめたら、待ち時間はどう変化するか?こちらもスマブラで例えてみます。
【統合前:別々の部屋で遊ぶ】
Aくんの部屋とBくんの部屋に、それぞれSwitchが1台ずつあります。
それぞれの部屋の混み具合(利用率)は「$\rho$」だとします。
【統合後:1つの部屋に全員集合】
ある日、Aくんの部屋のSwitchが壊れてしまいました。
仕方なく、全員Bくんの部屋(Switch1台)に集まることになりました。
1試合の時間($Ts$)は4分のまま変わりませんが、遊びに来る人が2倍になりました。
Switchは1台のままなので、Switchの混み具合(利用率)も単純に2倍の「$2\rho$」になります。
人が2倍になったなら、Switchの混み具合(利用率)も単純に2倍の「$2\rho$」になりますよね。
【公式への代入】
ここで先ほどの「魔法の計算式」の出番です。
「待ち時間 =($\frac{\text{今の混み具合}}{1 - \text{今の混み具合}}$)$\times$ 1試合の時間」
今の混み具合は「$2\rho$」になったので、そのまま当てはめるだけ!
$W = \frac{2\rho}{1 - 2\rho} \times T_s$
4. 利用率(混み具合)が上がると待ち時間は「爆発」する
さて、ここで勘違いしやすい大きな罠があります。
「人が2倍(混み具合が2倍)になれば、待ち時間も2倍になるんでしょ?」と思いがちですが、
それは間違いです。
実際に、1試合4分($T_s = 4$)でシミュレーションしてみましょう。
-
パターンA:元々ガラガラだった場合
- 元々の利用率が20%($\rho = 0.2$)だったとします。
- 統合して人が2倍になっても、利用率は40%($\rho = 0.4$)です。
- 計算:$\frac{0.4}{1 - 0.4} \times 4$ = 約2.66分(約2分40秒)
- 結果:まだ余裕です。すぐ順番が回ってきます。
-
パターンB:元々そこそこ混んでいた場合
- 元々の利用率が45%($\rho = 0.45$)だったとします。
- 統合して人が2倍になると、利用率は一気に90%($\rho = 0.9$)になります。
- 計算:$\frac{0.9}{1 - 0.9} \times 4 = \frac{0.9}{0.1} \times 4 = 9 \times 4$ = 36分
- 結果:1試合4分遊ぶために、36分待つことになります。
このように、利用率が100%(1.0)に近づくと、待ち時間は比例(直線)ではなく加速度的に(反比例のカーブを描いて)爆発します。
5. まとめ
M/M/1の公式は、「利用率($\rho$)= 忙しさのパラメータ」という構造さえイメージできれば、
「窓口が統合された」「処理速度が半分になった」と設定が変わっても、解くことができそうです。
🍌NanoBanana君による解説漫画