待ち行列(M/M/1)の計算は、IPA 午前四択で繰り返し出題される定番です。公式に当てはめるだけで解けますが、最大のつまずきは『利用率とは何か』『どの公式を使うか』『利用率が 1 に近づくと待ち時間が急に伸びるのはなぜか』の 3 点です。型として整理すれば、確実な得点源に変えられます。
出発点は利用率 ρ(ロー)です。利用率は『窓口(サーバ)がどれだけ忙しいか』を 0〜1 で表し、ρ = 到着率 × 平均サービス時間 で求めます。例えば 1 秒間に平均 2 件届き(到着率 2 件/秒)、1 件の処理に平均 0.4 秒かかる(平均サービス時間 0.4 秒)なら、ρ = 2 × 0.4 = 0.8 です。利用率が 1 を超える設計は処理が追いつかず行列が無限に伸びるため、必ず 1 未満になります。
次が平均待ち時間です。M/M/1 では、平均待ち時間(行列に並んで待つ時間)= ρ ÷(1 − ρ)× 平均サービス時間 で求めます。ρ = 0.5 なら 0.5 ÷ 0.5 = 1 倍で待ち時間は平均サービス時間と同じ、ρ = 0.8 なら 0.8 ÷ 0.2 = 4 倍で平均サービス時間の 4 倍も待つことになります。係数 ρ ÷(1 − ρ)を先に出してから平均サービス時間を掛ける、と手順を固定すると間違えません。
仕上げは平均応答時間と、利用率が高いほど待ち時間が急増する性質です。平均応答時間(待ち時間 + 処理時間)= 平均サービス時間 ÷(1 − ρ)で、これは平均待ち時間に平均サービス時間を足したものと一致します。ここで分母の(1 − ρ)に注目すると、ρ が 1 に近づくほど分母が 0 に近づき、待ち時間が爆発的に伸びることが分かります(ρ = 0.9 では係数 9 倍)。性能設計で利用率を 7〜8 割程度に抑える理由がこの非線形性です。なお M/M/1 は『到着がランダム(ポアソン分布)・処理時間が指数分布・窓口が 1 つ』という前提のモデルである点も押さえておきます。
練習問題: 利用率 0.6・平均サービス時間 0.2 秒のとき、平均待ち時間と平均応答時間はそれぞれ何秒でしょうか(ヒント: まず ρ ÷(1 − ρ)の係数を求める)。過去問AI の AI コパイロットに『この待ち行列の問題の解き方を教えて』と聞くと、利用率の計算から応答時間まで手順がステップごとに表示されます。