待ち行列


ここでは待ち行列の中でも、最も出題の多いM/M/1について説明します。
待ち行列はその特徴を『到着時間分布/サービス時間分布/窓口数』で表し、M/M/1は到着時間分布がポアソン分布、サービス時間分布が指数分布、窓口数が1つという意味です。
また、それ以外の条件として、待ち行列の長さに制限がない、サービスは到着順、待ち行列から抜けたり割り込んだりはしないというのがあります。(世の中一般の待ち行列とは少し違います。)

計算方法

試験でM/M/1の待ち行列の問題が出題されるとき、与えられる条件は一定時間のサービス要求数(客の数):Taと、平均サービス時間:Tsです。
通常これから、平均待ち時間や待ち行列に並んでからサービスが終了するまでの時間を求める問題が出題されます。
待ち行列
  1. 平均到着率:λ
    単位時間あたりに到着するサービス要求者(客)の数で、これを式にすると
     λ=1/Ta
    になります。
    例えば、1分間に6人客が到着する場合の平均到着率(件/秒)は
     λ=6/60=0.1
    になります。
  2. 平均サービス時間:Ts
    これは問題の中で与えられますのでそのまま使用します。
    例えば、平均サービス時間5秒になります。
  3. 平均利用率:ρ
    窓口がどのくらい利用されているかという値で、式で表すと
     ρ=λ×Ts
    になります。
    上の例を使うと、λ=0.1、Ts=5なので
     ρ=0.1×5=0.5
    になります。
  4. 平均待ち時間:Tw
    待ち行列に並んで、サービスが開始されるまでの待ち時間で、式で表すと
     Tw=ρ/(1-ρ)×Ts
    になります。
    上の例では、Tsが5秒、ρが0.5なので
     Tw=0.5/(1-0.5)×5=5(秒)
    になります。
  5. 待ち行列に並んでからサービスが終了するまでの時間:T
    これは平均待ち時間Twと平均サービス時間Tsをたせばいいので、式にすると
     T=Tw+Ts=ρ/(1-ρ)×Ts+Ts=Ts/(1-ρ)
    になります。
    上の例では、Tsが5秒、ρが0.5なので
     T=5/(1-0.5)=10(秒)
    になります。
ちなみに、平均利用率(ρ)は0から1の間になり、1以上になってしまうと待ち行列がどんどん長くなってしまうことを意味するので、この値が1以上になるような問題は出題されません。
問題を解いているときこの値がおかしいときは計算間違いが考えられますので、すぐに見直しましょう。

2つのM/M/1とM/M/2

処理するサービスが多くなり、待ち行列が長くなってしまうので窓口を2つにしたとき、2つの窓口に別々に待ち行列を作って処理する場合(2つのM/M/1)と、1つの待ち行列で空いた窓口に振り分ける場合(M/M/2)について考えてみる。
  • 2つのM/M/1
    この場合は、到着した客が2つの列に振り分けられるので、見かけ上は平均到着率のλが半分(0.5λ)になったようになる。また、平均サービス時間のTsは同じである。
    2つのM/M/1
    • 平均利用率は、ρ=0.5λ×Ts=0.5ρになる。
      上の例では、ρ=0.5×0.1×5=0.25
    • 平均待ち時間は、Tw=0.5ρ/(1-0.5ρ)×Tsになる。
      上の例では、Tw=0.25/(1-0.25)×5=1.666…(秒)
    • 待ち行列に並んでからサービスが終了するまでの時間は、T=Ts/(1-0.5ρ)になる。
      上の例では、Tw=5/(1-0.25)=6.666…(秒)
  • M/M/2
    この場合は、2つの窓口で処理するため、大まかに考えると待っているときのサービス時間が半分(0.5Ts)になったようになる。また、平均到着率のλは1つの待ち行列を作るので同じである。
    M/M/2
    • 平均利用率は、ρ=λ×0.5Ts=0.5ρになる。
      上の例では、ρ=0.1×0.5×5=0.25
    • 平均待ち時間は、Tw=0.5ρ/(1-0.5ρ)×0.5Tsになる。
      上の例では、Tw=0.25/(1-0.25)×2.5=0.833…(秒)
    • 待ち行列に並んでからサービスが終了するまでの時間は、T=Tw+Tsになる。
      上の例では、Tw=0.833…+5=5.833…(秒)
      ※待っているときの平均サービス時間は半分に見えるが、実際のサービス時間は変わっていないことに注意。
以上のように、窓口が2つの場合には、2つのM/M/1より、M/M/2のほうが効率的(平均待ち時間が半分)になります。
(上のM/M/2の計算は少し乱暴なので参考程度に考えてください。)

戻る 一覧へ