資格道場 › レッスン一覧 › 基礎理論
基礎理論・12/13・13分

待ち行列と数式の近似・極限

ゴール

M/M/1 待ち行列の前提と待ち時間の式を使って、「どの運用なら前提に反しないか」「利用率がいくつで待ち時間が逆転するか」を判断できるようになる。あわせて、漸化式・不動点・分数関数の極限・(1+α)^n の近似・行列の基本操作の問題を、式を整理して解けるようになる。

システムの応答時間を見積もるときに、「サーバが混むと待ち時間がどれだけ延びるか」は性能設計の基本です。試験では、式をそのまま使う計算問題と、前提条件に反する運用を見抜く問題が繰り返し出ています。数式系の問題は、式を1行整理すれば数秒で解けるものばかりなので確実に点にできます。

このレッスンで稽古する(用語チェック・過去問)

結論:このレッスンで覚えるのは6つの型

このレッスンの問題は、ほぼ次の6つの型に収まります。どれも「式を1回整理する」か「条件を1つ見抜く」だけで解けます。待ち行列の2つが少し厚め、残りは型を覚えれば十分です。

# 型 一言でいうと
1 M/M/1 の前提 到着はでたらめ・処理時間もでたらめ・窓口1つ・行列は無制限で先着順
2 M/M/1 の待ち時間 待ち時間 = 処理時間 × ρ/(1−ρ)。ρ=0.5 で処理時間と同じになる
3 漸化式と不動点 式を f(n+1)=○×f(n) の形に直す。繰り返して値が変わらなくなったら f(y)=y
4 分数関数の極限 t→∞ では分子と分母の最高次数を比べる。分母の次数が高ければ 0
5 (1+α)^n の近似 |α| が 1 よりずっと小さいとき 1+nα で近似できる
6 行の基本操作 「定数倍」「入れ替え」「他の行の定数倍を足す」の3種類を見分ける

M/M/1 待ち行列とは:記号の意味と4つの前提

待ち行列理論は、「お客さんが来る→並ぶ→処理される」仕組みで、平均どれくらい待つかを計算する理論です。M/M/1 は、その中でいちばん単純なモデルの名前です。3つの記号は順に「到着のしかた / 処理時間のばらつき方 / 窓口の数」を表します。

記号の位置 M/M/1 での値 意味
1つ目 M ポアソン到着 お客さんは互いに無関係に、でたらめなタイミングで来る
2つ目 M 指数分布 処理時間はでたらめにばらつく(決まった時間ではない)
3つ目 1 窓口1つ 処理するのは1台・1人だけ
(暗黙の前提) 行列は無制限・先着順 行列が長くなっても断らず、来た順に処理する

たとえるなら、レジが1台だけのコンビニです。客は勝手なタイミングで来て、会計時間は人によってばらばら。行列が長くても入店を断らず、割り込みもさせない店、というイメージです。

試験では「前提に反しない運用はどれか」の形で出ます。前提に反する運用と比べると次のとおりです。

運用の例 判定 理由
緊急度や量に関係なく先着順に処理する ✅ 反しない 先着順は前提どおり
空き具合を見てから要求を出す人がいる ❌ 反する 到着が状況に左右され、「互いに無関係なでたらめな到着」ではなくなる
待ちが一定量を超えたら受付を止める ❌ 反する 行列の長さに上限ができる(無制限でなくなる)
処理時間 = 一定の準備時間 + 量に比例する時間 ❌ 反する 処理時間が式で決まってしまい、指数分布のでたらめなばらつきにならない
急ぎの仕事を優先する ❌ 反する 先着順でなくなる
M/M/1=レジが1台だけの店到着はでたらめ(ポアソン到着)…窓口1つ完了行列は無制限・先着順断らない・割り込みなし処理時間はばらばら(指数分布)
でたらめに来た客が行列の最後尾に入り、先着順に窓口1つで処理されて出ていく。行列の長さに上限はない。

M/M/1 の待ち時間の式:ρ が 0.5 を超えると「待つ方が長い」

利用率 ρ(ロー) は、窓口がふさがっている時間の割合です(0〜1 の値)。M/M/1 では次の式が成り立ちます。

平均待ち時間 = 平均サービス時間 × ρ / (1 − ρ)

平均サービス時間は、1件の処理そのものにかかる時間です(問題文では「平均伝送時間」などと呼ばれます)。ρ/(1−ρ) が「処理時間の何倍待つか」を表すので、ρ を入れて計算すれば倍率が分かります。

利用率 ρ ρ/(1−ρ) 待ち時間は処理時間の…
0.4 0.4/0.6 ≒ 0.67 0.67倍(処理より短い)
0.5 0.5/0.5 = 1 ちょうど同じ
0.6 0.6/0.4 = 1.5 1.5倍
0.8 0.8/0.2 = 4 4倍
0.9 0.9/0.1 = 9 9倍

ρ が 1 に近づくと待ち時間は急に膨らみます。これが「サーバの利用率は余裕をもって設計する」理由です。なお、待ち時間に処理時間を足したもの(応答時間)は、処理時間 ÷ (1−ρ) になります。問題文で聞かれているのが「待ち時間」か「応答時間」かは必ず確認してください。

待ち時間は処理時間の何倍か倍149ρ=0.5 → 1倍(同じ)ρ=0.6 → 1.5倍ρ=0.8 → 4倍ρ=0.9 → 9倍00.50.60.80.91利用率 ρ
利用率 ρ と、待ち時間が処理時間の何倍か(ρ/(1−ρ))の関係。ρ=0.5 で1倍、0.8 で4倍、0.9 で9倍と急に膨らむ。

漸化式と不動点:まず f(n+1)=○×f(n) に直す

漸化式は、「次の値を、いまの値から計算するルール」を書いた式です。読み方のコツは、左辺を f(n+1) だけにしてから倍率を読むことです。

例:f(n+1) + 0.2×f(n) = 2×f(n) → f(n+1) = 2f(n) − 0.2f(n) = 1.8×f(n)。つまり1世代後は 1.8倍です。選択肢の文章は 0.2 を「何に対する割合か」でずらしてきます。

選択肢の言い方 実際の倍率
2倍になり、増殖後の20%が死ぬ 2 × 0.8 = 1.6倍
2倍になり、増殖後の20%が増える 2 × 1.2 = 2.4倍
2.2倍に増える 2 + 0.2(移項の符号ミス)
1.8倍に増える 2 − 0.2 = 1.8倍(正解)

不動点は、関数に入れても値が変わらない点(f(y)=y となる y)です。「y←f(x)、x←y」を繰り返して y が変わらなくなったなら、そのとき f(y)=y が成り立ちます。

f(n+1)=2f(n)−0.2f(n)f(n)赤=0.2f(n)2×f(n)正しい読み:2×f(n)−0.2f(n)正解1.8倍0.2f(n)よくある誤り:2×f(n)の20%誤り1.6倍0.4f(n)赤の幅:正解は f(n) の赤と同じ、誤りは2倍
棒の長さを f(n) を基準に実寸でそろえた図。正しい読みは元の f(n) の0.2倍を引いて1.8倍、誤りは2×f(n) の20%(0.4f(n))を引いて1.6倍。

分数関数の極限:最高次数を比べるだけ

極限(lim)は、t をどこまでも大きくしたときに値が近づく先のことです。t→∞ の分数は、分子と分母の最高次数(t の何乗がいちばん大きいか)を比べれば答えが決まります。

比べた結果 極限 例
分子の次数 < 分母の次数 0 (t+1)/(t²−t) → 0
分子の次数 = 分母の次数 最高次の係数の比 (3t+1)/(2t−5) → 3/2
分子の次数 > 分母の次数 ∞(発散) t²/(t+1) → ∞

分数を分数で割る形 g(t)/f(t) は、先に「割る分数をひっくり返して掛ける」で1つの分数にまとめます。

(1+α)^n ≒ 1+nα の近似条件

(1+α)^n を展開すると 1 + nα + (α² の項) + (α³ の項)… となります。|α| が 1 よりずっと小さいと、α²・α³ の項はほぼ 0 になるので、1+nα だけで近似できます(これを一次近似といいます)。たとえば 1.01^3 = 1.030301 は、1+3×0.01 = 1.03 とほぼ同じです。

行の基本操作(掃き出し法):3種類を見分ける

連立方程式の係数を表(行列)に並べ、行に操作を加えて解を出す方法を掃き出し法といいます。使える操作は次の3種類だけです。

操作 見分け方
(1) ある行に 0 でない数を掛ける 1つの行の数が全部同じ倍率で変わる(例:0,3,6 → 0,1,2)
(2) 行を入れ替える 2つの行の位置がそのまま入れ替わる
(3) ある行に他の行の定数倍を足す 片方の行だけが、もう片方の行の数を使って変わる

判定のコツは、変化前後で「どの行が変わったか」と「変わった行の新しい値が、他の行から作れるか」を見ることです。

例題 1

待ち時間が伝送時間を最初に上回る利用率

通信回線を使用したデータ伝送システムに M/M/1 の待ち行列モデルを適用すると,平均回線待ち時間,平均伝送時間,回線利用率の関係は,次の式で表すことができる。 平均回線待ち時間 = 平均伝送時間 × 回線利用率 / (1-回線利用率) 回線利用率が 0 から徐々に増加していく場合,平均回線待ち時間が平均伝送時間よりも最初に長くなるのは,回線利用率が幾つを超えたときか。

ア 0.4
イ 0.5
ウ 0.6
エ 0.7

出典:基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問4

解き方と答えを見る
  1. 式を書く:平均回線待ち時間 = 平均伝送時間 × ρ/(1−ρ)(ρ は回線利用率)
  2. 「待ち時間 > 伝送時間」になる条件は、倍率 ρ/(1−ρ) が 1 を超えること
  3. ρ/(1−ρ) = 1 となる境界を求める:ρ = 1 − ρ → 2ρ = 1 → ρ = 0.5
  4. 確かめる:ρ=0.4 なら 0.4/0.6 ≒ 0.67(1未満)、ρ=0.6 なら 0.6/0.4 = 1.5(1超)
  5. ρ が 0.5 を超えた時点で、初めて待ち時間が伝送時間より長くなる

答え:イ(0.5)

例題 2

漸化式から1世代後の倍率を読む

次の数式は,ある細菌の第 n 世代の個数 f(n) が 1 世代後にどのように変化するかを表現したものである。この漸化式の解釈として,1 世代後の細菌の個数が,第 n 世代と比較してどのようになるかを適切に説明しているものはどれか。 f(n+1) + 0.2 × f(n) = 2 × f(n)

ア 1 世代後の個数は,第 n 世代の個数の 1.8 倍に増える。
イ 1 世代後の個数は,第 n 世代の個数の 2.2 倍に増える。
ウ 1 世代後の個数は,第 n 世代の個数の 2 倍になり,更に増殖後の 20%が増える。
エ 1 世代後の個数は,第 n 世代の個数の 2 倍になるが,増殖後の 20%が死ぬ。

出典:基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問6

解き方と答えを見る
  1. 式:f(n+1) + 0.2×f(n) = 2×f(n)
  2. 左辺の 0.2×f(n) を右辺へ移す:f(n+1) = 2×f(n) − 0.2×f(n)
  3. まとめる:f(n+1) = 1.8×f(n)
  4. 1世代後は第n世代の1.8倍。1より大きいので「増える」

答え:ア(1.8倍に増える)

例題 3

繰り返し手続で値が変わらなくなったときの関係式

関数 f(x) は,引数も戻り値も実数型である。この関数を使った,①~⑤ から成る手続を考える。手続の実行を開始してから ②~⑤ を十分に繰り返した後に,③ で表示される y の値に変化がなくなった。このとき成立する関係式はどれか。
① x ← a ② y ← f(x) ③ y の値を表示する。 ④ x ← y ⑤ ② に戻る。

ア f(a) = y
イ f(y) = 0
ウ f(y) = a
エ f(y) = y

出典:平成27年度 秋期 基本情報技術者試験 午前 問3

解き方と答えを見る
  1. 手続の流れ:y ← f(x) を計算し、x ← y として、また y ← f(x) に戻る
  2. つまり毎回「前回の y を f に入れて、新しい y を出す」ことを繰り返している
  3. y の表示が変わらなくなった = f に y を入れても同じ y が返ってくる
  4. よって f(y) = y(不動点)。f(a)=y は1回目だけの式なので不適

答え:エ(f(y) = y)

例題 4

分数関数の比の極限

a 及び b を定数とする関数 f(t)=a/(t+1) 及び g(t)=b/(t^2-t) に対して,lim(t→∞) g(t)/f(t) はどれか。ここで,a≠0,b≠0,t>1 とする。

ア 0
イ 1
ウ b/a
エ ∞

出典:令和元年度 秋期 基本情報技術者試験 午前 問4

解き方と答えを見る
  1. g(t)/f(t) = {b/(t²−t)} ÷ {a/(t+1)}
  2. 割る分数をひっくり返して掛ける:= b/(t²−t) × (t+1)/a = b(t+1) / {a(t²−t)}
  3. 次数を比べる:分子 b(t+1) は1次、分母 a(t²−t) は2次で、分母の方が高い
  4. 確かめ:分子と分母を t² で割ると b(1/t + 1/t²) / {a(1 − 1/t)}。t→∞ で分子は 0、分母は a に近づく
  5. よって極限は 0 ÷ a = 0

答え:ア(0)

例題 5

行の基本操作を分類する

連立一次方程式 2x + 3y = 4 5x + 6y = 7 から,x の項の係数,y の項の係数,及び定数項だけを取り出した表(行列)を作り,基本操作 (1)~(3) のいずれかを順次施すことによって,解 x = −1 y = 2 が得られた。表(行列)が次のように左から右に推移する場合,同じ種類の基本操作が施された箇所の組合せはどれか。 〔基本操作〕 (1) ある行に 0 でない数を掛ける。 (2) ある行と他の行を入れ替える。 (3) ある行に他の行の定数倍を加える。
〔表(行列)の推移〕2行3列の表が a→b→c→d で推移する。 初期: | 2 | 3 | 4 |
567
--a--> | 2 | 3 | 4 |
10−1
--b--> | 1 | 0 | −1 |
234
--c--> | 1 | 0 | −1 |
036
--d--> | 1 | 0 | −1 |
012

ア a と b
イ a と c
ウ b と c
エ b と d

出典:基本情報技術者試験 科目A免除 修了試験 20211212 実施分 問4

解き方と答えを見る
  1. a:1行目(2,3,4)はそのまま。2行目が(5,6,7)→(1,0,−1)。(5,6,7) − 2×(2,3,4) = (5−4, 6−6, 7−8) = (1,0,−1) なので「他の行の定数倍を足す」=(3)
  2. b:2つの行がそのまま上下入れ替わっている =(2)
  3. c:1行目(1,0,−1)はそのまま。2行目が(2,3,4)→(0,3,6)。(2,3,4) + (−2)×(1,0,−1) = (0,3,6) なので =(3)
  4. d:2行目が(0,3,6)→(0,1,2)。全部を 1/3 倍しているので =(1)
  5. 同じ種類の操作は a と c(どちらも(3))

答え:イ(a と c)

要点(試験直前に読む)

  • M/M/1 の前提は「ポアソン到着(でたらめ・互いに無関係)・指数分布の処理時間・窓口1つ・行列無制限で先着順」。運用がこの4つのどれかを崩したら前提違反
  • M/M/1 の待ち時間 = サービス時間 × ρ/(1−ρ)。ρ=0.5 で処理時間と同じ、0.5 を超えると待つ方が長い
  • 漸化式は f(n+1)=○×f(n) に直して倍率を読む。繰り返して値が変わらなくなったら f(y)=y(不動点)
  • t→∞ の分数は最高次数で決まる。分母の次数が高い→0、同じ→係数比、分子が高い→∞
  • (1+α)^n ≒ 1+nα は |α| が 1 よりずっと小さいときに使える
  • 行の基本操作は「定数倍」「入れ替え」「他の行の定数倍を足す」の3種類

ひっかけ

  • M/M/1 の前提問題:「処理時間=一定時間+量に比例する時間」はもっともらしいが、処理時間が式で決まるので指数分布に反する。「受付を一時中断」は行列の長さに上限ができるので反する
  • 待ち時間の問題:0.4〜0.7 を感覚で選ばせる。ρ/(1−ρ)=1 を解いて ρ=0.5 と境界を出す
  • 漸化式の問題:「2倍から20%死ぬ(1.6倍)」「2倍に20%増える(2.4倍)」「2.2倍(符号ミス)」が並ぶ。必ず移項して 1.8 を計算する
  • 極限の問題:b/a(係数の比)が選択肢にあるが、それは次数が同じときだけの答え。次数が違えば 0 か ∞
  • (1+α)^n の問題:n や n×α が大きいことを条件にする選択肢は誤り。小さくすべきは α

用語(15)

待ち行列理論 まちぎょうれつりろん
到着・行列・処理の仕組みをモデル化し、平均待ち時間や行列の長さを計算する理論。
M/M/1 エムエムワン
ポアソン到着・指数分布のサービス時間・窓口1つで、行列無制限・先着順を前提とする待ち行列モデル。
⚠ M/D/1 は2つ目が D(一定のサービス時間)。「処理時間が一定」なら M/M/1 の前提に反する。
ポアソン到着 ポアソンとうちゃく
客が互いに無関係に、でたらめなタイミングで到着すること。
⚠ 「空き具合を見て要求を出す」のように到着が状況に左右されると、ポアソン到着ではなくなる。
指数分布 しすうぶんぷ
M/M/1 でサービス時間が従うと仮定する、でたらめなばらつき方の分布。
⚠ 「一定時間+量に比例する時間」のように式で決まる処理時間は指数分布ではない。
利用率(ρ) りようりつ(ロー)
窓口が処理中でふさがっている時間の割合で、0以上1未満の値。
⚠ 待ち時間の倍率 ρ/(1−ρ) と混同しない。ρ=0.5 のとき倍率がちょうど1になる。
平均待ち時間 へいきんまちじかん
行列に並んでから処理が始まるまでの平均時間で、M/M/1 では サービス時間×ρ/(1−ρ)。
⚠ 応答時間(待ち時間+サービス時間 = サービス時間/(1−ρ))と区別する。
平均サービス時間 へいきんサービスじかん
1件の処理そのものにかかる平均時間(伝送時間・印刷時間など)。
⚠ 待ち時間は含まない。
先着順 せんちゃくじゅん(FIFO: First In First Out)
来た順に処理する方式で、M/M/1 の前提。
⚠ 緊急度や量で順番を変える優先処理は前提に反する。
漸化式 ぜんかしき
次の項の値を、前の項の値から計算するルールを表した式。
不動点 ふどうてん
関数に入れても同じ値が返る点で、f(y)=y を満たす y。
⚠ 方程式の解 f(y)=0 とは別物。
極限 きょくげん(lim: limit)
変数をある値や無限大に限りなく近づけたときに、式の値が近づく先。
次数 じすう
多項式の中で、変数が何乗まで出てくるかを表す数。
⚠ 分数の極限では係数でなく次数で判断する。係数の比が答えになるのは次数が同じときだけ。
一次近似 いちじきんじ
2乗以上の小さな項を無視し、1次の項までで値を近似すること。
行列 ぎょうれつ
数を縦横の表の形に並べたもので、連立方程式の係数をまとめるのに使う。
⚠ 待ち行列の「行列」とは無関係。
掃き出し法 はきだしほう
行の基本操作を繰り返して、係数の表を解が読める形に変える連立方程式の解き方。

このレッスンの過去問

このレッスンで稽古する