>>はじめに(注意事項、問題の傾向)
 ここでは、ソフトウェア開発技術者試験だけでなく、ネットワーク試験(テクニカルエンジニア)の基礎にもなる待ち行列理論について解説します。待ち行列理論の範囲は広いため、ここですべてを取り上げる事は不可能(1冊の本を書ける量になりえませんし、大学教養範囲の数学の能力も必要とされる。)ですので、あくまで試験対策用として書いています。

 過去の試験から見て、問題の種類は次の2種類に分類されます。(下線付きの問題を下で解説しています)
 1.待ち行列(M/M/1)を考慮した計算問題、レスポンスタイムの算出など
     H8 問34  H9 問56  H12 問52

 2.M/M/1など待ち行列に関する定義・特性
     H7 問40  H9 問80  H10 問53
     H11 問52  H12 問56

 ここ数年は毎年出題されていますし、得点できるところはできるだけ得点しましょう。また、待ち行列でもM/M/1がメインであり、狭い範囲に収束されていますので、対策も割と容易です。押さえるべきポイントを一つずつ着実に理解してください。


 >>待ち行列について
 私たちの普段の生活の中には、"待ち行列"がたくさん潜んでいます。
 例えば、スーパーマーケットへ買い物に行ったときのことをイメージしてください。食事の材料や生活用品等、買うものをカゴに入れていき、それを済ませたらレジに並ぶ事になります。そして、前の人が勘定を済ませるまで待ち、自分の番が来たら勘定を済ませることになります。この一連の流れが待ち行列を表しています。
 イメージ図を示します。それと共に、待ち行列理論で用いられる3つの用語も表記します。   
 母集団は、窓口でサービスを受けるもの全部を表しています。
 窓口は、母集団からの要求に対してサービスを提供します。
 そして待ち行列は、"窓口でのサービスの能力"などの要因により、母集団からの到着に対応しきれなくなった時発生する、待ちの状態です。


 >>ケンドール記号
 待ち行列の特徴を到着分布/サービス時間分布/窓口数/(待ち行列の長さ)で表します。到着分布、サービス時間分布については、以下のパラメータを用い(主に用いられるものをピックアップした)、窓口数には自然数を用います。待ち行列の長さは特に指定しなければ、∞(無限大、すなわち長さ制限無し)となります。
 また、窓口におけるサービスは先着順(FIFO:First In First Out)である行列の途中からの抜け出しや割り込みはなしとする、ことをケンドール記号の前提条件としてあげています。

パラメータ到着分布の種類サービス時間分布の種類
ポアソン分布
(ランダム到着)
指数分布サービス
等間隔到着一定時間サービス
一般分布到着一般分布サービス
kk次のアーラン分布到着
例)
M/M/1
・客の到着分布はポアソン分布(ランダム到着)に従う
・窓口のサービス時間は指数分布に従う
・窓口は一つである
・待ち行列の長さに制限が無い
・サービスは先着順に受ける
・行列から、客が立ち去ったり割り込んだりしない

M/D/1
・客の到着分布は同上
・窓口のサービス時間は一定である
・以下、上記M/M/1モデルに同じ


 >>計算問題

1.平均到着率  λ (ラムダ) [件(人)/秒]
 単位時間(例えば1秒)あたりに到着する客の数

 1時間あたり平均90人が到着するとすれば、λ=90/3600=0.025[人/秒]

 1秒あたり0.025人が訪れるということは、40秒間隔で1人到着することを表す。
 これを平均到着間隔ta(tはtime、aはarrival)で表し、ta=1/λ。
 この例の場合、ta=1/0.25=4[秒/人]
(←ta=1/0.25=4[秒/人]になってました!すいません。)

2.平均サービス時間 ts(tはtime、sはservice) [秒/件(人)]
 窓口において、要求されたサービス1件を処理するのにかかる時間

 平均サービス時間は、窓口が何であるかを見きわめてtsを算出する必要がある。


 以下、M/M/1モデルについて解説します。窓口が2つ(M/M/2)になったり、サービス時間が一定(M/D/1)の場合では計算式が異なる事に留意してください。なお、M/M/1の式を理解しておけば、今挙げたモデルの基礎になります。
 (注:正式には窓口が2つ存在する場合必ずしもM/M/2になるとは限りません。関連事項を後述することにします。)


3.平均利用率  ρ (ロー) [単位無し]
 窓口がどれだけ利用されているかの尺度

  ρ = λ ・ts

 M/M/1モデルを採用するものとし、1時間あたり平均90人が到着して、平均サービス時間が30秒の場合を考えてみます。
 λ =90/3600=0.025[人/秒]  ts=30[秒/人]
 よって、ρ = λ ・ts=0.025×30=0.75

 また、ρ は必ず1より小さくなければならない。 ρ ≧1の場合、到着間隔より処理時間が長い、すなわち待ち行列がどんどん長くなることを意味し、いつまで経っても処理がされない状態を指します。

4.平均待ち時間 tw(tはtime、wはwait) [秒]
 待ち行列に並んで、サービス処理が開始されるまでの待ち時間

 tw= ρ /(1− ρ )・ts

 3.の例で算出すると、
 tw=0.75/(1−0.75)×30=90[秒]

 また、待ち行列に並んで、サービス処理が終了するまでの時間Tを求めます。
 この場合は時間の流れ(並んで待ったあと、サービスを受ける)に沿って、単に平均待ち時間+平均サービス時間を算出すれば良いです。
 T=tw+ts
 3.の例では、T=90+30=120[秒]となる。


 >>過去問題
簡単な部類の問題として、4問を解説します。

H8 問34

 通信回線を使用したデータ伝送システムにM/M/1モデルの待ち行列理論を適用すると、平均待ち時間、平均伝送時間、回線利用率の関係は図の式で表される。
 平均回線待ち時間が平均伝送時間よりも長くなるのは、回線利用率(%)がどの値を超える場合か。

ア 40  イ 50  ウ 60  エ 70  オ 80

--------
待ち時間twは、tw=ρ/(1−ρ)×tsで求められました。
式を見てのとおりtwがtsよりも長くなる条件は、ρ/(1−ρ)が1より大きくなるときですね。
ρ/(1−ρ)≧1
ρ≧1−ρ
2ρ≧1
∴ ρ≧0.5
答えは百分率に直すと50%以上となります。
--------


H9 問56

 単一処理を行うオンラインシステムがある。トランザクションは1秒当たり平均0.6件到着し、このトランザクションに対する平均サービス時間は750ミリ秒/件である。このときの平均応答時間は何秒か。

ア 0.45  イ 0.61  ウ 1.25  エ 1.36

-------
平均応答時間とあるが、これは平均待ち時間+平均サービス時間を表す。

1.問題文から平均到着率λと平均サービス時間tsを見つける
「トランザクションは1秒当たり平均0.6件到着」→λ(平均到着率)=0.6件/秒
「平均サービス時間は750ミリ秒/件」→ts(平均サービス時間)=0.75秒/件

2.回線利用率の計算
ρ=λ×ts=0.6×0.75=0.45

3.前の結果を用いて平均待ち時間と平均応答時間を計算
tw=0.45/(1−0.45)×0.75≒0.61
T=ts+tw=0.75+0.61=1.36
-------


H12 問52

 M/M/1待ち行列における、平均待ち時間(W)と窓口利用率(ρ)の関係で、ρが0.25から0.75になったとき、Wは何倍になるか。

ア 1/3  イ 3  ウ 4.5  エ 9

-------
ρが0.25のときと、0.75のときの平均待ち時間Wを求める。
・ρ=0.25のとき
W1=0.25/0.75×ts=ts/3

・ρ=0.75のとき
W2=0.75/0.25×ts=ts×3

W2/W1=(ts×3)/(ts/3)=9
-------


H7 問40

 M/M/1の待ち行列モデルに関して、正しい記述はどれか。

ア.一定時間に到着する客の数は指数分布に従う。
イ.客が立ち去ることがある。
ウ.サービス時間は指数分布に従う。
エ.待ち行列の長さに制限がある。
オ.窓口は複数個のことがある

-------
M/M/1の待ち行列、ケンドール記号について思い出してみましょう。

ア/到着率はポアソン分布(ランダム到着)であるので×
イ/ケンドール記号の前提で「立ち去る事はないこととする」としているので×
ウ/正解
エ/M/M/1/∞と表現されるところを省略してM/M/1としている。∞は待ち行列に制限がないことを表すので×
オ/窓口数は1個であるので×
-------