「合成キューイング」について

アルゴリズム8.1:分離可能モデルのための階層的分解解法」の続きです。


前に戻って「8.2.フロー等価サービスセンターの作成」をもう一度読み進んでいきますと、次の箇所でひっかかりました。

特定の総体に対応するフロー等価サービスセンターは、クラスcのアウトプット・レート、\mu_c(\vec{n})X_c(\vec{n})に等しい負荷依存サービスセンターである。個々のクラスについてのFESCのアウトプット・レートは総体のレートに等しくなければならないので、複数クラスFESCでの「スケジューリング規律」は従来のものにはなり得ない。(例えば、もしあるFESCがFCFSでスケジュールされたならば、FESCで今処理中のクラスのみが正しいアウトプット・レートを示すだろう。というのは他の全てのクラスはゼロのアウトプット・レートを持つからである。) 代わりに、人工的なスケジュール規律で合成キューイングと呼ばれるものが一度に全てのクラスが処理を受けることが出来るように使用される。FESCがあたかも各々の客クラスについて1つずつ、全部でC個のキューを持っているかのように考えることが出来る。これらのキューは、C個のキューの個体数が\vec{n}\equiv(n_1,...,n_C)で与えられる時、クラスcキューがレート\mu_c(\vec{n})で処理されるように並行して処理される。

まず「アウトプット・レート」という言葉の意味の確認です。この言葉は定義なしで第8章にいきなり登場しています。これは文脈からスループット(「1.2.1.単一サービス・センター」には「客がサービス・センターを通過するレート」と説明されています。)と同じ意味と考えてよいでしょう。一方\muという記号も第8章で登場した記号であり、これは処理レートを表すとしています。そして処理レートは処理時間の逆数であると説明しています。しかし、ふつうの待ち行列理論(この本ではキューイング・センターと呼んでいるもの)で考えれば、処理時間の逆数がスループットに等しい場合というのは、サーバが1個であるならば、稼動率100%の時に限られているはずです。つまり、スループットと処理レートは別物のはずです。ここではそれらを同じものとして扱っているので、私の頭は混乱しました。FESCはキューイング・センターとは異なるものとして考えればよいわけで、ここでの処理レートという言葉をふつうの待ち行列理論における\muのイメージで考えないほうがよいのでしょう。

FESCがあたかも各々の客クラスについて1つずつ、全部でC個のキューを持っているかのように考えることが出来る。これらのキューは、C個のキューの個体数が\vec{n}\equiv(n_1,...,n_C)で与えられる時、クラスcキューがレート\mu_c(\vec{n})で処理されるように並行して処理される。

しかもこの\mu_cは客の数に依存すると言っているので、これを処理時間の逆数と捉えるのではなく、スループットとして捉えるのがよいと考えました。もしこれを処理時間の逆数として捉えるとしたら、その処理時間は何を意味するか、そしてその処理時間と滞在時間の関係はどうなるのか、という問題が浮かんできますが、どうも後のセクションを読んでいると高レベル・モデルの評価をする際にFESCでの客の滞在時間を使用していないようです。使用しているのはあくまでスループットであり、それが状態遷移レートに変換されて大域バランス方程式に代入されて、解を求めているのです。おそらくFESCでの客の滞在時間は、FESCの元になった総体の各状態(=総体内の客の数)毎に総体内部を表す低レベル・モデルを解くことで求めるのでしょう。そして、高レベル・モデルで求めたFESCの各状態の確率と先ほど求めた各状態毎の滞在時間から平均滞在時間を求めるのだと思います。まとめると以下の2点になります。

  • 「合成キューイング」を考える時、\mu_c(\vec{n})は各クラスのFESCでのスループットを表すと考える。処理時間の逆数であるとは考えない。
  • 「合成キューイング」センターでの待ち時間や滞在時間は考えない。それらを求めたい場合はそのFESCの元になった総体を表す低レベル・モデルに戻って考える。

正直言って、この2番目の言明にはちょっとひっかかる点があります。ひょっとしたら分離可能待ち行列ネットワークに話を限ったら、「合成キューイング」センターでの待ち時間や滞在時間は\mu_c(\vec{n})を用いてふつうに計算した時間と一致するのでは、という可能性があるのかもしれません。しかし、この点の追求はまたの機会にしたいと思います。