基本情報の待ち行列モデル|M/M/1と利用率の問題を解説

基本情報の待ち行列モデルを学ぶ机とサーバーのイメージ

基本情報技術者試験の待ち行列モデルは、名前だけ見ると数学っぽくて身構えやすい分野です。M/M/1、利用率、平均待ち時間、平均サービス時間という言葉が一気に出てくるので、公式をどこから使えばよいのか迷いやすいですね。

ただ、基本情報で問われる待ち行列モデルは、大学の待ち行列理論を深く証明する問題ではありません。行列ができる条件を読み取り、利用率が高くなるほど待ち時間が急に伸びることを、式と過去問の形で判断できれば十分に得点源になります。

この記事では、基本情報の待ち行列モデルを、M/M/1の意味、利用率、平均待ち時間の公式、50%を超える理由、条件問題の見分け方まで順番に整理します。計算問題が苦手な人でも、どの数値をどこへ入れるのかが見えるように、かなり手順寄りで解説します。

この記事のポイント
  • M/M/1は到着も処理もランダムで窓口が1つ
  • 利用率は処理能力に対する混雑度として読む
  • 平均待ち時間は利用率が高いほど急に伸びる
  • 条件問題は先着順と受付停止の有無を見る
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報の待ち行列モデルの基礎

待ち行列モデルの到着と処理を表すサービス窓口のイメージ

待ち行列モデルとは

待ち行列モデルとは、処理を待つものが並ぶ状況を数式で表す考え方です。身近な例なら、レジに並ぶ人、ATMを待つ人、プリンターの印刷要求、サーバーへ届くリクエストなどがあります。基本情報では、現実の細かい事情を全部再現するというより、到着、待ち、処理という流れを単純化して、平均的な待ち時間や混雑の度合いを判断するために使います。

ここで大切なのは、「行列」という言葉に引っ張られて、人が物理的に並ぶ場面だけを想像しないことです。ITの試験では、通信回線、プリンター、CPU、サーバー、受付処理など、共有される資源に要求が集まる場面がよく題材になります。要求が少ないときはすぐ処理できますが、処理能力に近い量の要求が来ると、少しの増加でも待ち時間が大きくなります。

待ち行列モデルは「平均でどのくらい待つか」を考える道具です。個別の1件が必ず何秒待つ、という確定的な予測ではありません。

基本情報で狙われやすいのは、公式そのものよりも、問題文の状況が待ち行列モデルの前提に合っているか、利用率が変わると待ち時間がどう変わるかです。たとえば「利用率が50%を超えると、平均待ち時間が平均サービス時間より長くなる」というタイプの問題は、式を変形するだけで解けます。反対に、到着を意図的に調整したり、処理待ちがあるのに受付を止めたりする条件は、M/M/1の前提から外れやすいです。

  • 到着する要求がある
  • 処理する窓口や資源がある
  • 処理中は次の要求が待つ
  • 平均待ち時間や混雑度を求める

M/M/1の意味

M/M/1は、待ち行列モデルの条件を短く表した記号です。前から順に、到着の仕方、サービス時間の分布、窓口数を表します。1つ目のMは、要求がランダムに到着することを表します。2つ目のMは、サービス時間、つまり1件を処理する時間もランダムであることを表します。最後の1は、処理する窓口が1つであることを表します。

基本情報では、「Mはマルコフ過程だから難しい確率分布を覚えよう」と考えるより、「到着も処理時間も一定ではない」「窓口が1つ」という読み取りに集中した方が実戦的です。例えば、プリンターを1台だけ共同利用し、印刷要求が不規則に届き、印刷にかかる時間も文書ごとにばらつくなら、M/M/1のイメージに近くなります。

M/M/1は「ランダムに来る、ランダムな時間だけ処理する、窓口は1つ」と読むと、試験問題で条件を追いやすくなります。

一方で、到着が完全に予約制で一定間隔だったり、処理時間が常に同じだったり、窓口が複数だったりすると、M/M/1とは違うモデルになります。基本情報の選択肢問題では、この前提違いを突いてくることがあります。特に「空いているのを見てから要求する」「バッファがいっぱいなら受付を止める」「緊急度で順番を変える」などは、通常のM/M/1の素直な前提からずれます。公式計算だけでなく、条件の読み取りも同じくらい重要ですね。

記号意味試験での読み方
1つ目のM到着間隔がランダム要求が不規則に来る
2つ目のMサービス時間がランダム処理時間にばらつきがある
1窓口が1つ処理できる資源が1つ

到着率とサービス率

待ち行列モデルでは、到着率とサービス率を分けて考えます。到着率は、単位時間あたりに要求がどのくらい来るかです。サービス率は、単位時間あたりにどのくらい処理できるかです。たとえば、1分あたり4件の要求が来て、1分あたり5件処理できるなら、処理能力には少し余裕があります。逆に1分あたり5件処理できるところへ、1分あたり5件以上が来続けるなら、待ち行列は縮みにくくなります。

基本情報の問題では、到着率やサービス率という言葉が直接出ないこともあります。代わりに、「平均伝送時間」「平均処理時間」「回線利用率」「窓口利用率」のような形で与えられます。ここで焦って全部を公式へ入れるのではなく、まず「これは処理する側の時間なのか」「これは混雑度なのか」を分けると整理しやすいです。

単位時間あたりの到着量と処理量を比べると、利用率の意味が見えます。処理能力ぎりぎりほど、待ち時間は小さな変化に敏感になります。

数学記号で書くと、利用率は到着率をサービス率で割ったものとして扱われます。ただし基本情報の計算では、すでに利用率が0.4や0.6のように与えられていることが多いです。そのため、到着率とサービス率の記号を完璧に覚えるより、「利用率は0に近いほど空いていて、1に近いほど限界に近い」と理解する方が点につながります。0.8なら8割稼働、0.95ならかなり詰まっている、という感覚ですね。

  • 到着率は要求が来る速さ
  • サービス率は処理できる速さ
  • 利用率は処理能力に対する混雑度
  • 利用率が1に近づくほど待ち時間が伸びる

利用率の考え方

利用率は、処理する窓口や回線がどのくらい使われているかを表す割合です。基本情報では、0.5、0.6、0.8のような小数で出ることもあれば、50%、60%、80%のように百分率で出ることもあります。計算するときは、百分率を小数へ直すのを忘れないようにします。60%なら0.6、80%なら0.8です。

待ち行列モデルの利用率で重要なのは、利用率が2倍になったら待ち時間も単純に2倍になるわけではないことです。利用率が低い間は、要求が来てもすぐ処理できる余裕があります。しかし、利用率が高くなると、前の要求がまだ処理中の確率が上がり、次の要求が待たされやすくなります。特に1に近づくほど、待ち時間は急激に伸びます。

利用率は「忙しさ」ではなく「余裕の少なさ」として読むと理解しやすいです。80%稼働はまだ2割空いている、ではなく、待ちが伸びやすい状態に近づいていると見ます。

ここは稼働率計算と少し似ていますが、意味は違います。稼働率はシステムが使える割合を表すことが多く、待ち行列の利用率は処理資源がどのくらい占有されているかを表します。似た言葉で混乱しやすい場合は、基本情報の稼働率計算も合わせて確認すると、直列・並列の稼働率と待ち行列の利用率を分けて覚えやすくなります。

利用率状態のイメージ待ち時間の見方
0.2かなり余裕がある待ちは短くなりやすい
0.5半分使っている平均サービス時間と同程度が境目
0.8かなり混んでいる待ち時間が大きく伸びやすい
1.0付近限界に近い行列がなかなか減らない

公式を丸暗記しない

基本情報の待ち行列モデルでは、平均待ち時間の公式が出てきます。代表的には、平均待ち時間 = 平均サービス時間 × 利用率 / (1 – 利用率) という形です。この式だけを見ると、分母や分子の位置を暗記する問題に見えます。ただ、暗記だけで押し切ろうとすると、平均待ち時間と平均サービス時間のどちらが長くなるのか、利用率が何を表すのかを見失いやすいです。

式の意味は、利用率が高くなるほど待ち時間が伸びる、ということです。利用率が0なら待ち時間は0に近くなります。利用率が0.5なら、利用率 / (1 – 利用率) は1です。利用率が0.8なら、0.8 / 0.2 で4になります。つまり、平均サービス時間の4倍程度の平均待ち時間になるという読み方です。

公式は「利用率 / (1 – 利用率)」の部分が主役です。分母が小さくなるほど、待ち時間が大きくなると見れば、式の形を忘れにくくなります。

また、問題によって「平均回線待ち時間」「平均伝送時間」「平均サービス時間」など言葉が変わることがあります。言葉が変わっても、処理そのものにかかる平均時間が平均サービス時間に相当し、待っている時間が平均待ち時間に相当します。用語だけで止まらず、要求が来る、待つ、処理される、という流れに置き換えて読むのがコツです。計算問題全般の進め方は、基本情報技術者試験の計算問題の攻略法でも整理しています。

公式の読み方

平均待ち時間は、平均サービス時間に「利用率 / (1 – 利用率)」を掛けて考えます。利用率が上がるほど分母が小さくなり、待ち時間が急に伸びるのがポイントです。

基本情報の待ち行列モデルの解き方

M/M/1の利用率と平均待ち時間を計算する学習イメージ

平均待ち時間の公式

平均待ち時間の公式は、基本情報の待ち行列モデルで最もよく使う部分です。式は、平均待ち時間 = 平均サービス時間 × 利用率 / (1 – 利用率) と考えます。問題文が通信回線なら平均サービス時間が平均伝送時間、プリンターなら平均印刷時間、サーバーなら平均処理時間に近い言葉で出てくることがあります。用語が少し違っても、1件を処理する平均時間を探すのが最初の作業です。

計算の順番は、利用率を小数に直す、1 – 利用率を求める、利用率をその値で割る、最後に平均サービス時間を掛ける、です。例えば平均サービス時間が2秒、利用率が0.6なら、0.6 / (1 – 0.6) = 0.6 / 0.4 = 1.5です。平均待ち時間は2秒 × 1.5 = 3秒になります。分母を先に作ると、計算ミスがかなり減ります。

百分率のまま式に入れないことが大切です。60%は60ではなく0.6、25%は0.25として扱います。

注意したいのは、平均待ち時間にサービス時間を含めるかどうかです。基本情報の問題文では、式が与えられる場合もあります。そのときは、問題文の式に合わせて解けば十分です。一方で、一般的な説明では「待ち時間」「滞在時間」「応答時間」の意味が分かれることがあります。待ち時間は処理前に並ぶ時間、サービス時間は処理そのものの時間、滞在時間や応答時間は両方を足した時間として扱うことが多いです。試験では、問われている時間の範囲を必ず確認しましょう。

手順見るもの注意点
利用率を確認0.5や60%など百分率なら小数へ直す
分母を作る1 – 利用率利用率が高いほど小さい
倍率を出す利用率 / (1 – 利用率)待ち時間の伸びを表す
時間を掛ける平均サービス時間単位をそろえる

50%を超える理由

基本情報の待ち行列モデルで特に出やすいのが、「平均待ち時間が平均サービス時間より長くなるのは、利用率がいくつを超えたときか」という問題です。これは公式を丸暗記していなくても、式の倍率部分を見れば解けます。平均待ち時間 = 平均サービス時間 × 利用率 / (1 – 利用率) なので、平均待ち時間が平均サービス時間より長くなるには、利用率 / (1 – 利用率) が1より大きくなればよいです。

利用率が0.5のとき、0.5 / (1 – 0.5) = 0.5 / 0.5 = 1です。つまり、平均待ち時間と平均サービス時間が同じになります。利用率が0.6なら、0.6 / 0.4 = 1.5なので、平均待ち時間の方が長くなります。利用率が0.4なら、0.4 / 0.6 で1より小さいので、まだ平均サービス時間より短いです。境目は0.5、つまり50%ですね。

利用率が高いと待ち行列が伸びる比較イメージ

本文途中追加画像として、利用率が低い場合と高い場合で待ち行列の長さが変わるイメージを入れています。50%を超える理由は、分母の「1 – 利用率」が小さくなるところを見ると理解しやすいです。

この問題は、過去問でも繰り返し見かける形です。ポイントは、0.5を「半分だからまだ余裕」と感覚で判断しないことです。M/M/1の平均待ち時間の公式では、利用率が0.5の時点で平均サービス時間と同じ倍率になります。そこを超えると、待ち時間の方が長くなります。選択肢に0.4、0.5、0.6、0.7が並ぶような問題では、0.5が境目だと判断できれば素早く解けます。

50%の境目

利用率が0.5なら、利用率 / (1 – 利用率) は1です。平均待ち時間が平均サービス時間より長くなるのは、利用率が0.5を超えたときです。

条件問題の見分け方

待ち行列モデルは、計算だけでなく条件問題も出ます。たとえば、プリンターを共同利用するとき、M/M/1の待ち行列モデルの条件に反しないものはどれか、というタイプです。この場合は、公式に数値を入れるのではなく、M/M/1の前提に合っているかを見ます。到着がランダム、処理時間がランダム、窓口が1つ、先着順で処理される、受付を勝手に止めない、という観点です。

よくある引っかけは、利用者が空き具合を見てから要求を出す条件です。これは到着が自然にランダムに発生するのではなく、混雑状況に応じて到着が調整されるため、M/M/1の前提から外れます。また、バッファがいっぱいになったら受付を中断する条件も、通常の待ち行列として並び続ける前提から外れます。緊急度で順番を変える条件も、先着順の扱いではなくなります。

条件問題では、「現実にはありそう」な運用が正解とは限りません。試験では、M/M/1の単純な前提に反していないかで判断します。

反対に、印刷の緊急性や量にかかわらず、先着順に印刷するという条件は、待ち行列モデルの前提に合いやすいです。現実のプリンター運用として最適かどうかではなく、モデルとして分析できるかどうかを見ます。問題文を読んだら、「到着を人為的に変えていないか」「待ちがあるのに受付を止めていないか」「窓口数が1つか」「先着順か」をチェックしましょう。ここを押さえると、計算がない問題でも得点しやすくなります。

  • 空き具合を見て要求を出す
  • 受付を途中で止める
  • 緊急度で順番を変える
  • 窓口が複数あるのにM/M/1として扱う

過去問の解く順番

過去問で待ち行列モデルを解くときは、いきなり計算を始めない方が安定します。まず、問題が公式計算なのか、条件判定なのかを分けます。公式計算なら、平均サービス時間、利用率、平均待ち時間のどれが与えられていて、どれを求めるのかを確認します。条件判定なら、M/M/1の意味に戻って、到着、処理時間、窓口数、先着順の条件を見ます。

計算問題では、式の倍率部分を先に作るのがおすすめです。利用率が0.25なら、0.25 / 0.75 = 1/3です。利用率が0.4なら、0.4 / 0.6 = 2/3です。利用率が0.8なら、0.8 / 0.2 = 4です。平均サービス時間が同じなら、この倍率だけで待ち時間の増減を比較できます。応用情報の過去問では、利用率が25%から40%へ増えると平均待ち時間は何倍か、というような比較問題もあります。基本情報でも、倍率の見方に慣れておくと応用しやすいです。

過去問では、式を全部展開する前に「何を比べる問題か」を決めます。倍率比較だけで解ける問題なら、平均サービス時間を最後まで置いたままでも解けます。

演習するときは、1問解いたら答えだけで終わらせず、利用率が変わると倍率がどう変わったかを見直します。0.5を超えると待ち時間が平均サービス時間より長くなる、0.8では4倍になる、1に近づくと急に伸びる。この感覚が入ると、選択肢をかなり絞りやすくなります。基本情報の学習全体で過去問をどう回すかは、基本情報技術者試験の勉強法でもまとめています。

今すぐ問題を解きたい方は、基本情報の過去問アプリで無料演習できます。待ち行列モデルは式を眺めるだけより、短い問題を何度か解いて利用率の動きを体で覚える方が定着しやすいです。

まとめ

基本情報の待ち行列モデルは、M/M/1という記号と公式の見た目で難しく感じやすいですが、試験で見るべき点はかなり絞れます。M/M/1は、到着がランダム、サービス時間がランダム、窓口が1つというモデルです。利用率は処理能力に対する混雑度であり、1に近づくほど待ち時間が急に伸びます。

平均待ち時間の公式は、平均サービス時間 × 利用率 / (1 – 利用率) です。特に、利用率が0.5のとき倍率が1になり、0.5を超えると平均待ち時間が平均サービス時間より長くなる点は、基本情報の過去問対策として必ず押さえておきたいところです。公式を暗記するだけでなく、分母の1 – 利用率が小さくなるほど待ち時間が伸びる、と理解しておくと忘れにくくなります。

基本情報の待ち行列モデルは、M/M/1の条件、利用率の意味、50%の境目、条件問題の引っかけを押さえれば得点源になります。

最後に、待ち行列モデルは基礎理論の一部ですが、通信回線、プリンター、サーバー処理など、ITの実務に近い題材で出ます。最新の試験制度や出題範囲は、必要に応じてIPAの基本情報技術者試験ページも確認してください。まずは、利用率0.4、0.5、0.8のときの倍率を自分で計算し、公式の動きを手で確かめておくのがおすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次