応用情報技術者 2016年 春期 午前2 問03
問題文
多数のクライアントが、LAN に接続された1台のプリンタを共同利用するときの印刷要求から印刷完了までの所要時間を、待ち行列理論を適用して見積もる場合について考える。プリンタの運用方法や利用状況に関する記述のうち,M/M/1の待ち行列モデルの条件に反しないものはどれか。
選択肢
ア:一部のクライアントは、プリンタの空き具合を見ながら印刷要求をする。
イ:印刷の緊急性や印刷量の多少にかかわらず、先着順に印刷する。(正解)
ウ:印刷待ち文書の総量がプリンタのバッファサイズを超えるときは、一時的に受付を中断する。
エ:一つの印刷要求から印刷完了までの所要時間は、印刷の準備に要する一定時間と、印刷量に比例する時間の合計である。
🔒 解説は解答すると表示されます
M/M/1の成立条件【午前2解説】
正解の理由
選択肢のうち、M/M/1待ち行列モデルの前提条件に反しないのは イ です。M/M/1は「到着はポアソン過程(すなわち到着間隔は指数分布)」「サービス時間は独立同分布の指数分布(メモリレス)」「単一サーバ」「通常は先着順(FIFO/FCFS)を想定」「バッファは無限(または受け入れを仮定)」といった前提を置きます。選択肢イは「緊急性や印刷量にかかわらず先着順に処理する」という点で、サービス順序が先着順(FIFO/FCFS)であることを明示しており、これらの前提と矛盾しません。そのため正解は イ になります。
解法ステップ
- M/M/1の主要前提を整理する:
- 到着はポアソン過程(到着間隔は指数分布)
- サービス時間は独立同分布の指数分布(メモリレス)
- 単一サーバ(1台のプリンタ)
- 通常は先着順(FCFS)
- バッファは無限(到着は原則受け入れる)
- 各選択肢が上のどれと矛盾するかを順に確認する。
- 矛盾がなければその選択肢はM/M/1の条件に「反しない」と判定する。
選択肢別の誤答解説
-
ア: 「一部のクライアントはプリンタの空き具合を見てから要求する」
→ 到着がシステム状態に依存するため、独立したポアソン到着という前提を壊します。ポアソン過程では到着は過去の状態に依存せずランダムに発生するため、アはM/M/1に反します。 -
イ: 「緊急性や印刷量にかかわらず先着順に印刷する」
→ 先着順(FIFO/FCFS)はM/M/1で通常想定されるサービス順序です。サービス時間の分布や到着過程に関する矛盾がないため、M/M/1の前提に反しません。 -
ウ: 「待ち文書の総量がバッファサイズを超えるときは一時的に受付を中断する」
→ M/M/1は通常、到着の受け入れを仮定(無限バッファ)します。受付を中断(finite capacity/遮断)するとM/M/1ではなくM/M/1/K(有限容量)や損失系のモデルになり、前提に反します。 -
エ: 「1要求の所要時間が一定時間+印刷量に比例する時間の合計」
→ この記述はサービス時間が決定論的な成分や印刷量依存の変動を持つことを示しており、一般にはサービス時間が指数分布(メモリレス)であるという前提を満たしません。よってM/M/1の前提に反します。
よくある誤解
- 「到着もサービスも両方がポアソン過程である」
→ 到着はポアソン過程(ある区間の到着数がポアソン分布、間隔は指数分布)ですが、サービスは「ポアソン過程」ではなく「サービス時間が指数分布(i.i.d.)」である、という表現が正確です。サービス時間が指数分布であることがメモリレス性の本質です。 - 「先着順でなければM/M/1でない」
→ M/M/1解析では通常FCFSを仮定しますが、指数分布のサービス時間を仮定すると、非プリエンプティブかつワークコンザービング(サーバが遊ばない)なサービス規律では平均的な性能指標が到着・サービス率のみで決まりやすい、という性質があります。ただし問題文で「先着順」と明示されていることはM/M/1の典型的な想定と一致します。 - 「バッファが有限なら少しの違いしかない」
→ 容量制限があると到着が遮断・破棄されるため性能式が変わり、M/M/1の結果は使えません(M/M/1/KやM/M/∞などの別モデルになります)。
補足コラム
M/M/1の代表的な性能指標(安定条件 を満たす場合):
- 利用率(トラフィック強度)
- 系内平均人数
- 待ち行列平均人数(待ち)
- 系内平均滞在時間 (Littleの法則より)
- 待ち時間の平均
簡単なシミュレーション例(指数分布で到着とサービスを生成):
import numpy as np
lambda_rate = 0.8
mu = 1.0
n = 100000
interarrivals = np.random.exponential(1/lambda_rate, n)
services = np.random.exponential(1/mu, n)
# 到着時刻とサービス時間の配列(簡易)
arrivals = np.cumsum(interarrivals)
有限バッファや非指数分布のサービス時間がある場合は、モデル名や解析式が変わります(例:M/G/1やM/M/1/K)。
FAQ
Q1. 到着が厳密にポアソンでないと解析は無意味ですか?
A1. 実運用では近似が有効なことが多いですが、到着が明確に状態依存(例:クライアントが空き具合を見て送信する)だとポアソン仮定は破られ、解析結果が不正確になります。その場合は別モデルやシミュレーションが必要です。
A1. 実運用では近似が有効なことが多いですが、到着が明確に状態依存(例:クライアントが空き具合を見て送信する)だとポアソン仮定は破られ、解析結果が不正確になります。その場合は別モデルやシミュレーションが必要です。
Q2. サービス順序を変えたら平均待ち時間はどう変わりますか?
A2. サービス時間が指数分布でワークコンザービングな場合、平均人数や平均滞在時間はサービス順序にあまり依存しない性質がありますが、待ち時間の分布や個別の優先度要件は順序に依存します。設計目的に応じて順序ルールを選ぶべきです。
A2. サービス時間が指数分布でワークコンザービングな場合、平均人数や平均滞在時間はサービス順序にあまり依存しない性質がありますが、待ち時間の分布や個別の優先度要件は順序に依存します。設計目的に応じて順序ルールを選ぶべきです。
Q3. プリンタのバッファ上限が現実的にある場合はどう扱えばよいですか?
A3. バッファが有限ならM/M/1/K(Kは系容量)や損失系M/M/K/0などのモデルを用いるか、離散イベントシミュレーションで評価してください。
A3. バッファが有限ならM/M/1/K(Kは系容量)や損失系M/M/K/0などのモデルを用いるか、離散イベントシミュレーションで評価してください。
関連キーワード: 待ち行列理論、M/M/1、ポアソン過程、指数分布、メモリレス性、到着率、サービス率、FCFS、バッファ制限

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

