応用情報技術者試験 科目A 第4回:待ち行列とスループット

応用情報技術者試験の科目Aに必要なM/M/1待ち行列の利用率・待ち時間・系内時間、単位の統一と安定条件、リトルの法則、直列処理のボトルネックとスループットを、例題とオリジナル演習問題4問で学びます。

応用情報技術者試験科目A待ち行列スループット

AP科目A・第4回 · 2026年度・シラバスVer.7.2に基づく独立した学習資料です。IPAとの提携はなく、合格を保証しません。 シリーズ一覧を見る

改訂日:2026-10-20 本記事の範囲は、IPA公式「応用情報技術者試験(レベル3)シラバス Ver.7.2」に基づく2026年の試験です。受験前には必ずIPAの最新情報とシラバスを確認してください。本記事は学習補助資料であり、合格を保証するものではありません。IPAが本記事を確認・承認した事実はありません。

学習目次

  1. 学習目標
  2. 用語対応表(韓国語↔日本語↔英語)
  3. 待ち行列モデルの構成要素
  4. 混同しやすい区別:WqとW、レスポンスタイム・ターンアラウンドタイム・スループット、到着率・処理能力・利用率・スループット
  5. 単位の規律
  6. M/M/1モデルの前提
  7. M/M/1の公式と導出・検算
  8. リトルの法則
  9. スループットとボトルネック
  10. 例題4問
  11. 練習問題4問(オリジナル)
  12. 公式まとめ
  13. よくある誤り
  14. 最終セルフチェック
  15. 復習計画(1/3/7日)
  16. シラバス対応
  17. 出典・参考

1. 学習目標

本記事を終えると、次のことができるようになります。

  • 待ち行列モデルの構成要素(客/ジョブ、サーバ、到着間隔、サービス時間)を説明できる。
  • 到着率λ、サービス率μ、利用率ρを同じ時間単位にそろえて計算できる。
  • M/M/1モデルの前提を述べ、安定条件λ<μを判定できる。
  • W、Wq、L、Lqを計算し、W = Wq + 1/μ、L = Lq + ρで検算できる。
  • リトルの法則を、系の境界と実効到着率に合わせて適用できる。
  • レスポンスタイム、ターンアラウンドタイム、スループットを区別し、直列処理ではボトルネックがスループットを決めることを説明できる。

2. 用語対応表

韓国語 日本語 英語 記号・単位
대기행렬 待ち行列 queue —
고객 / 작업 客 / ジョブ(トランザクション) customer / job —
서버(창구) サーバ(窓口) server —
도착 간격 到着間隔 (inter-)arrival interval 時間
서비스 시간 サービス時間 service time 時間、平均1/μ
도착률 平均到着率 arrival rate λ、件/時間
서비스율 平均サービス率 service rate μ、件/時間
이용률 利用率 utilization ρ、無次元
대기행렬 길이(대기 중 평균 개수) 待ち行列長(平均待ち数) queue length Lq、件
시스템 내 평균 개수 系内客数(系内の平均数) number in system L、件
대기 시간 待ち時間 waiting time in queue Wq、時間
시스템 체류 시간 系内時間(滞在時間) system / sojourn time W、時間
응답 시간 レスポンスタイム(応答時間) response time 時間
턴어라운드 타임 ターンアラウンドタイム turnaround time 時間
처리량 スループット throughput 件/時間
병목 ボトルネック bottleneck —
리틀의 법칙 リトルの法則(リトルの公式) Little’s law L = λW
M/M/1 모델 M/M/1 モデル M/M/1 queue —

3. 待ち行列モデルの構成要素

待ち行列モデルは、次の四つで表します。

  • 客/ジョブ:処理を受けに来る対象。銀行の客、印刷ジョブ、APIリクエストなど。
  • 到着過程:客がいつ来るか。平均到着間隔の逆数が到着率λです。平均2分ごとに1人来るならλ = 0.5人/分。
  • サーバ:処理を担当する窓口。M/M/1の「1」はサーバが1台という意味です。
  • サービス過程:1件の処理にかかる時間。平均サービス時間の逆数がサービス率μです。平均3分かかるならμ = 1/3件/分 = 20件/時間。

ケンドール記号A/B/cでは、Aが到着過程、Bがサービス時間分布、cがサーバ数です。Mは「マルコフ(無記憶性)」の意味で、到着ならポアソン到着(到着間隔が指数分布)、サービスなら指数分布のサービス時間を表します。

参考:シラバスには「乱数を使用したシミュレーション」も含まれています。公式で解きにくいモデルでは、乱数で到着間隔とサービス時間を生成して待ちの状況を模擬し、平均値を推定する、という程度の考え方を併せて押さえておきましょう。

4. 混同しやすい区別

4.1 待ち時間Wq と 系内時間W

  • Wq(待ち時間):到着した瞬間からサービスが始まるまで、行列で待つ平均時間。
  • W(系内時間・滞在時間):到着した瞬間からサービスが終わって系を離れるまでの平均時間。

したがって常に

W = Wq + 1/μ(系内時間 = 待ち時間 + 平均サービス時間)

が成り立ちます。問題文が「待ち時間」なら Wq、「応答時間」「系内時間」「処理が終わるまで」なら W を問うことが多いです。文を最後まで読み、どの時点で時計を止めるのかを確認してください。

4.2 レスポンスタイム、ターンアラウンドタイム、スループット

指標 意味(一般的な定義) 単位
レスポンスタイム 対話型処理で、要求(入力完了)からシステムが応答を返し始めるまでの時間 時間
ターンアラウンドタイム ジョブ(主にバッチ)を投入した時点から、結果をすべて受け取るまでの時間 時間
スループット 単位時間当たりに完了したジョブ数 件/時間

注意:これらの境界は資料によって完全に同じではありません。 レスポンスタイムを「応答の出力が終わるまで」とする資料もあり、待ち行列理論では系内時間Wを単に「応答時間」と呼ぶこともあります。試験問題では、問題が定義する始点と終点に従ってください。レスポンスタイムとターンアラウンドタイムは「1件にどれだけかかるか(遅延)」、スループットは「単位時間に何件終えるか(速度)」という別の軸です。片方が改善しても、もう片方が必ず改善するとは限りません。

4.3 到着率、実効到着率、サービス能力、利用率、実際のスループット

概念 記号 意味
提供到着率(offered) λ 系に入ろうとする平均の割合
実効(受理)到着率 λ_eff 拒否・損失・離脱を除き、実際に系の境界内に入った割合。損失確率をP_lossとすると λ_eff = λ(1 − P_loss)
サービス能力 μ サーバが休まず働き続けたときに処理できる最大の割合
利用率 ρ サーバが稼働している時間の割合。サーバ1台なら ρ = λ_eff / μ
実際のスループット X 実際に完了して出ていく割合

損失のない安定した系の長期平均では、X = λ_eff = λ であり、μではありません。μは「最大で出せる速度」にすぎず、到着する仕事が少なければサーバは一部の時間(1 − ρの割合)遊んでいます。

5. 単位の規律

  • λとμは必ず同じ時間単位(例:どちらも件/分)にそろえてから計算します。
  • 1/μは平均サービス時間です。「サービス時間15秒」をμ = 15として入れてはいけません。μ = 1/15件/秒 = 4件/分です。
  • W、Wqは時間、L、Lqは個数(件)、ρは無次元、スループットは件/時間です。
  • W = 1/(μ − λ) の結果の単位は、λ、μの時間単位に従います。件/時間で入れたなら答えは「時間」なので、分にするには60を掛けます。

換算の落とし穴の例:到着率が「1時間当たり180件」、平均サービス時間が「15秒」の場合、μ = 4件/分をそのまま使い λ = 180 を入れると ρ = 180/4 = 45 となり、「非常に不安定」という誤った結論になります。正しくは λ = 180/60 = 3件/分、ρ = 3/4 = 0.75 です。

6. M/M/1モデルの前提

M/M/1の公式は、次の前提がすべて成り立つときの結果です。

  1. ポアソン到着:到着は互いに独立で、到着間隔は指数分布に従う(平均1/λ)。
  2. 指数分布のサービス時間:サービス時間は互いに独立で指数分布に従う(平均1/μ)。到着とも独立。
  3. サーバ1台。
  4. 待合室と呼び込み母集団が無限:行列がどれだけ長くても並ぶことができ、客の供給源は減らない。
  5. 損失・並ぶのをやめる(balking)・途中離脱(reneging)がない:来た客は全員行列に並び、最後までサービスを受ける。
  6. 仕事保存的な先着順(FCFS):学習用に先着順を仮定し、仕事があればサーバは遊ばない。
  7. 定常状態(steady state)は λ < μ、すなわち ρ < 1 のときだけ存在する。

ρ ≥ 1 の意味:このモデルでρ ≥ 1なら、長期的に行列が際限なく伸びる傾向があり、有限の定常状態の平均が存在しません(公式に入れると分母が0または負になります)。これは「M/M/1の公式では平均を求められない」という意味であって、現実のすべてのシステムがその瞬間に止まるという意味ではありません。現実のシステムにはバッファの上限、タイムアウト、利用者の離脱、短いピーク後の回復などがあり、過負荷は拒否・損失、滞留(バックログ)の蓄積、遅延の急増として現れます。過負荷が持続すれば、いずれ滞留がたまる点は同じです。

7. M/M/1の公式と導出・検算

定常状態(ρ < 1)で系内にn個ある確率は P_n = (1 − ρ)ρⁿ です。ここから出発すると:

指標 公式 単位
利用率 ρ = λ / μ 無次元
平均系内数 L = Σ n·P_n = ρ / (1 − ρ) 件
系内時間 W = L / λ = 1 / (μ − λ) 時間
待ち時間 Wq = W − 1/μ = ρ / (μ − λ) = λ / [μ(μ − λ)] 時間
平均待ち数 Lq = λ·Wq = ρ² / (1 − ρ) 件

検算の関係

  • W = Wq + 1/μ:1/(μ − λ) − 1/μ = [μ − (μ − λ)] / [μ(μ − λ)] = λ / [μ(μ − λ)] = Wq ✓
  • L = Lq + ρ:ρ/(1 − ρ) − ρ = ρ[1 − (1 − ρ)]/(1 − ρ) = ρ²/(1 − ρ) = Lq ✓(ρは「サービス中の平均数」で、サーバが稼働している確率 1 − P₀ = ρ と等しくなります。)
  • L = λW:λ/(μ − λ) = (λ/μ)/(1 − λ/μ) = ρ/(1 − ρ) ✓
  • よく使う形:W = (1/μ)/(1 − ρ)、Wq = (1/μ)·ρ/(1 − ρ)。平均サービス時間に「混雑係数」を掛けると覚えると便利です。

損失や拒否のあるモデルでリトルの法則を使うときは、λの代わりに実効到着率λ_effを使います(次節)。

8. リトルの法則

L = λ_eff · W、Lq = λ_eff · Wq

  • 境界の一致:LとWは同じ境界についての値でなければなりません。「行列だけ」ならLqとWq、「行列+サービス中」ならLとW。
  • λ_effを使う:境界内に実際に入った割合を使います。入口で拒否されたジョブは境界内に入っていないので数えません。
  • 長期平均・安定性:長期間にわたる平均であり、系内の数が際限なく増えない安定した状態を前提とします。
  • 単位の一致:λが件/秒ならWも秒。
  • M/M/1より広い:到着・サービスの分布、サーバ数、サービス順序に関係なく成り立ちます。そのため、M/M/1でない系でも「平均何件が系内にあるか」をすぐに求められます。

9. スループットとボトルネック

  • スループット = 実際の完了数 / 時間 です。
  • 損失のない安定した系の平衡状態では、スループット = 受理された到着率 です。自動的にμになるわけではありません。
  • スループットの上限は処理能力μ(サーバが複数ならその合計能力)です。到着が能力を超えると、スループットは能力付近で頭打ちになり、残りの仕事は滞留するか拒否されます。
  • 直列の段階:すべてのジョブがA→B→Cを順に通るなら、持続可能なスループットは最も能力の小さい段階(ボトルネック)以下です。能力を足してはいけません。
  • パイプライン・並行処理:各段階が同時に別々のジョブを処理すれば(パイプライン)、スループットはボトルネック段階の能力まで上がり得ます。ただし、1件のジョブがすべての段階を通る時間(遅延)は短くなりません。同じ段階にサーバを並列に追加するとその段階の能力が増え、ボトルネックが別の段階に移ることがあります。

10. 例題

例題1:M/M/1の一通りの計算

窓口1つ、ポアソン到着 λ = 12人/時間、指数サービス μ = 20人/時間。

  1. 単位の確認:どちらも人/時間 ✓。安定性:λ = 12 < μ = 20 ✓
  2. ρ = 12/20 = 0.6
  3. 平均サービス時間 1/μ = 1/20時間 = 3分
  4. W = 1/(20 − 12) = 1/8時間 = 7.5分
  5. Wq = ρ/(μ − λ) = 0.6/8 = 0.075時間 = 4.5分
  6. L = λW = 12 × 1/8 = 1.5人
  7. Lq = λWq = 12 × 0.075 = 0.9人

検算:W = Wq + 1/μ = 4.5 + 3 = 7.5分 ✓、L = Lq + ρ = 0.9 + 0.6 = 1.5 ✓、L = ρ/(1 − ρ) = 0.6/0.4 = 1.5 ✓、Lq = ρ²/(1 − ρ) = 0.36/0.4 = 0.9 ✓

例題2:単位換算と安定性の診断

M/M/1のサーバに要求が1時間当たり180件到着し、平均サービス時間は15秒です。

  1. 単位の統一(分):λ = 180/60 = 3件/分、μ = 60/15 = 4件/分
  2. ρ = 3/4 = 0.75 < 1 → 安定
  3. W = 1/(4 − 3) = 1分、Wq = 0.75/1 = 0.75分 = 45秒、L = 3 × 1 = 3件、Lq = 3 × 0.75 = 2.25件
  4. 検算:Wq + 1/μ = 45秒 + 15秒 = 60秒 = W ✓

落とし穴:λ = 180(時間単位)とμ = 4(分単位)を混ぜると ρ = 45 と誤判定します。また「15秒」をμ = 15として入れると ρ = 3/15 = 0.2 という小さすぎる値が出ます。

負荷が増えた場合:到着が1時間当たり270件(4.5件/分)に増えると ρ = 4.5/4 = 1.125 ≥ 1 です。M/M/1モデルでは有限の定常状態の平均がないため、公式でWを求めてはいけません(1/(4 − 4.5) = −2分のような負の値は無意味)。サービス能力を増やすか、到着を減らす必要があります。

例題3:境界を明示したリトルの法則

あるAPIサーバに要求が毎秒55件到着しますが、入口の受付制御が毎秒5件を即座に拒否します。境界 = 受理後から応答完了までのサーバ内部。受理された要求の平均系内時間 W = 0.2秒、そのうち行列で待つ平均時間 Wq = 0.12秒です。(M/M/1は仮定しません。)

  1. λ_eff = 55 − 5 = 50件/秒
  2. L = λ_eff × W = 50 × 0.2 = 10件(境界内の平均要求数)
  3. Lq = λ_eff × Wq = 50 × 0.12 = 6件(行列で待つ平均数)
  4. サービス中の平均数 = 10 − 6 = 4件 = 50 × (0.2 − 0.12) = 50 × 0.08 ✓

落とし穴:提供到着率55を使うと L = 11件となり過大評価になります。拒否された要求は境界内に入ったことがありません。スループットも、安定状態なら55ではなく50件/秒です。

例題4:ボトルネックとスループット

すべてのジョブがA → B → Cを順に通る直列処理。各段階は同時に別々のジョブを処理できます(パイプライン)。能力:A 30件/分、B 12件/分、C 20件/分。段階間のバッファは十分に大きいものとします。

  1. 持続可能な最大スループット = min(30, 12, 20) = 12件/分(ボトルネック = B)。30 + 12 + 20 = 62件/分は誤りです。
  2. 到着10件/分:すべての段階の能力以下 → スループット = 10件/分(到着率と同じで、12ではない)。利用率 A = 10/30 ≈ 0.333、B = 10/12 ≈ 0.833、C = 10/20 = 0.5
  3. 到着15件/分:Bの負荷 15/12 = 1.25 > 1 → 長期スループットは約12件/分で頭打ち、Bの前の滞留は毎分約3件ずつ増加
  4. Bを同じ能力の2台に並列化するとBの能力は24件/分 → 新しいボトルネックはCで、最大スループットは20件/分

11. 練習問題(オリジナル4問)

以下の4問はすべて本記事のために新たに作成したオリジナル問題であり、IPAの過去問題ではありません。

問題1

M/M/1モデルの窓口に、客が平均6人/時間で到着し、サービス率は10人/時間です。客がサービスが始まるまで行列で待つ平均時間は何分ですか。

  • A. 6分
  • B. 9分
  • C. 15分
  • D. 37.5分

正解:B

計算:ρ = 6/10 = 0.6、1/μ = 6分、W = 1/(10 − 6) = 0.25時間 = 15分、Wq = ρ/(μ − λ) = 0.6/4 = 0.15時間 = 9分。検算 Wq + 1/μ = 9 + 6 = 15 = W ✓

  • A. 6分は平均サービス時間1/μです。待ち時間ではありません。
  • B. 正解。行列で待つ時間Wqです。
  • C. 15分はサービス時間まで含めた系内時間Wです。WとWqを混同させる落とし穴です。
  • D. 37.5分は W = 15分をさらに 1 − ρ で割った値(15/0.4)で、混雑係数を二重に適用した誤りです。

問題2

印刷サーバ(M/M/1と仮定)にジョブが平均50秒に1件到着し、1件の平均処理時間は40秒です。正しい記述はどれですか。

  • A. 到着率72件/時間とサービス率1.5件/分で計算すると ρ = 48 なので、系は不安定である。
  • B. ρ = 0.8 なので、行列で待つ平均時間Wqは200秒である。
  • C. ρ < 1 なので、行列はできない。
  • D. ρ = 0.8 であり、ジョブが到着してから処理が終わるまでの平均時間Wは200秒である。

正解:D

計算(秒単位):λ = 1/50件/秒、μ = 1/40件/秒、ρ = 40/50 = 0.8。W = 1/(μ − λ) = 1/(0.025 − 0.02) = 1/0.005 = 200秒(= 40/(1 − 0.8))。Wq = W − 1/μ = 200 − 40 = 160秒。Lq = ρ²/(1 − ρ) = 0.64/0.2 = 3.2件。

  • A. 72件/時間(時間単位)と1.5件/分(分単位)を混ぜた単位の落とし穴です。同じ単位なら 72件/時間 ÷ 90件/時間 = 0.8 で安定です。
  • B. 200秒はWです。Wqは 200 − 40 = 160秒です。
  • C. ρ < 1 は平均的に処理能力が足りているという意味にすぎず、ランダムな到着のため行列はできます(Lq = 3.2件)。
  • D. 正解。

問題3

ある予約システムに要求が毎分120件来ますが、そのうち毎分20件は入口で即座に拒否され、系に入りません。受理された要求は、受理時点から完了まで平均3秒滞在します。長期的に安定しているとき、受理された要求は系内に平均何件ありますか。

  • A. 5件
  • B. 6件
  • C. 300件
  • D. 360件

正解:A

計算:λ_eff = 120 − 20 = 100件/分 = 100/60件/秒、L = λ_eff × W = (100/60) × 3 = 5件。境界は「受理後〜完了」であり、リトルの法則は分布の仮定を必要としないので、M/M/1でなくても適用できます。

  • A. 正解。
  • B. 拒否された要求まで含めた120件/分 = 2件/秒を使い、2 × 3 = 6件とした誤りです。
  • C. 100件/分と3秒を単位換算せずに掛けた誤り(100 × 3)です。
  • D. 120件/分と3秒を単位換算せずに掛けた誤り(120 × 3)で、二つの誤りが重なっています。

問題4

すべてのジョブが段階1 → 2 → 3を順に通る直列処理システムがあります。各段階は同時に別々のジョブを処理します。段階ごとの処理能力は 1:40件/時間、2:25件/時間、3:30件/時間です。ジョブは20件/時間で到着し、損失はなく、長期的に安定しています。長期平均のスループットはいくらですか。

  • A. 95件/時間
  • B. 25件/時間
  • C. 20件/時間
  • D. 約10.2件/時間

正解:C

計算:ボトルネックの能力 = min(40, 25, 30) = 25件/時間 > 到着20件/時間 → すべての段階が安定。損失のない安定状態ではスループット = 到着率 = 20件/時間。ボトルネック(段階2)の利用率は 20/25 = 0.8。

  • A. 能力を足した値(40 + 25 + 30)です。直列の段階では能力を足しません。
  • B. ボトルネックの能力25件/時間はスループットの上限です。到着が20件/時間しかないので、実際のスループットは25になりません。
  • C. 正解。
  • D. 1/(1/40 + 1/25 + 1/30) ≈ 10.2件/時間は、ライン全体に一度に1件しかジョブがない(パイプラインがない)場合の値です。この問題では段階が同時に動作するので当てはまりません。

12. 公式まとめ

項目 公式・ルール
利用率 ρ = λ/μ(サーバ1台。損失があれば λ_eff/μ)
安定条件(M/M/1) λ < μ(ρ < 1)
平均サービス時間 1/μ
系内時間 W = 1/(μ − λ) = (1/μ)/(1 − ρ)
待ち時間 Wq = ρ/(μ − λ) = λ/[μ(μ − λ)]
平均系内数 L = λW = ρ/(1 − ρ)
平均待ち数 Lq = λWq = ρ²/(1 − ρ)
検算 W = Wq + 1/μ、L = Lq + ρ
リトルの法則 L = λ_eff·W、Lq = λ_eff·Wq(同じ境界、長期平均、同じ単位)
スループット(安定・無損失) X = 受理された到着率 ≤ 処理能力
直列の段階 最大スループット = 各段階の能力の最小値

13. よくある誤り

  1. Wqを問われているのにWを答える(またはその逆)。
  2. λは時間当たり、μは分当たりのまま割り算する。
  3. 平均サービス時間をそのままμとして使う(μ = 1/サービス時間)。
  4. ρ ≥ 1 なのに公式に入れ、負の値や無限大を「答え」にする。
  5. ρ < 1 なら行列はできないと考える。
  6. リトルの法則に、拒否された要求まで含めた提供到着率を使う。
  7. L(系全体)とWq(行列だけ)のように、境界の異なる値を組み合わせる。
  8. スループットは常にμだと考える。
  9. 直列の段階の能力を足す。
  10. レスポンスタイム・ターンアラウンドタイムの境界を、問題の定義と違うように解釈する。

14. 最終セルフチェック

  • 1/μが何を意味するか、単位とともに言える。
  • λ = 12/時間、μ = 20/時間 で、ρ、W、Wq、L、Lqを何も見ずに計算できる。
  • W = Wq + 1/μ と L = Lq + ρ で答えを検算できる。
  • M/M/1の前提とρ ≥ 1の意味を説明できる。
  • リトルの法則を使う前に、境界・λ_eff・単位を確認する習慣がある。
  • 直列処理のスループットが、ボトルネックの能力と到着率の小さい方であることを説明できる。
  • レスポンスタイム、ターンアラウンドタイム、スループットをそれぞれ一文で区別できる。

15. 復習計画(1/3/7日)

記録やデータ収集を伴わない、自分で進める簡単な計画です。

  • 1日後:公式まとめを隠して例題1を最初から解き直し、検算まで行います。
  • 3日後:練習問題4問を解き直し、各誤答選択肢がなぜ誤りかを声に出して説明します。
  • 7日後:数値を変えて自分で問題を1つ作ってみます(例:λ = 8/時間、μ = 10/時間)。単位換算を1つ、ボトルネックを1つ必ず入れます。

16. シラバス対応

  • 大分類1:基礎理論/中分類1:基礎理論/2. 応用数学/(6)待ち行列理論
  • 大分類2:コンピュータシステム/中分類4:システム構成要素/2. システムの評価指標/(1)システムの性能特性と評価/①システムの性能指標

17. 出典・参考

本記事の改訂日:2026-10-20

シラバスは出題範囲を確認する根拠としてのみ使用しました。本記事の解説、例題、練習問題はすべて独自に作成したものであり、IPAの過去問題は使用していません。IPAの承認や確認を受けた資料ではありません。

ブログへ