[ネットワークメモ]
 情報処理技術者(テクニカルエンジニア:ネットワーク)
 を目指す初心者のためのネットワークメモ。
 今回は待ち行列のお話です。
▲IT関連情報へ戻る
アバウトに捉える待ち行列(第1回) (2004/06/08)
●待ち行列理論
情報処理試験を受ける際に、ネックとなるものの一つに待ち行列理論があると思います。数学の得意な人ならいいのでしょうが、公式を見るだけでもうウンザリ、試験のときには「待ち時間」という文字を見た途端にさっさと飛ばす、なんて人もいるはずです。
ウンザリなのもうなずけます。難しいです。そもそも言っていることがサッパリわかりません。「M/M/1」ってナニ? 「ポアソン分布」ってナニ? さらには、参考書などをひっくり返してみると、たくさんの「似たような」公式が並んでいます。意味もわからずにそんな公式を覚えるなど、ムリに決まってます。
はっきり言って私もこの理論は全くわかりません。図書館などへ足を運び、数学を一からやろうと思ったこともありましたが、結局挫折しました。
じゃあやっぱり、待ち行列理論の問題が出たら飛ばした方がいいのか、いえ、実は情報処理試験の待ち行列理論の問題はラッキー問題です。なぜなら待ち行列理論を理解していなくても、あの問題は解けるのです。たった1つの公式を覚えるだけで、ほぼクリアできます。

●前提
情報処理試験で待ち行列理論の計算問題が出てくるときは、大抵「M/M/1のポアソン分布に従う」ようです。「1台の機械をみんなが並んで使う」という状況だと思ってください。最後の「/1」が機械の台数です。しつこいようですが、情報処理試験で待ち行列理論の計算問題が出てくるときは、「/1」なので気にしなくてもいいです。説明の便宜上、街に設置されているボックスのキャッシュディスペンサーを想像していてください。

●公式
覚えるべき公式は、

W=(ρ/(1−ρ))×S

のみです。ちょっと覚えにくいですが、これだけ覚えてしまえばこと足りるので、なんとか覚えてください。

●記号の意味
公式は上記の1つだけなのですが、記号の意味はきちんと覚えておかなければいけません。でないと、問題を読んだ後、どこにどんな数値を入れていいかわかりません。

:「Wait」の頭文字、つまり待ち時間です。これを求めることが目的です。待ち人数を求める場合でも、これを求めます。待ち時間さえわかれば、待ち人数など一人あたりの処理時間で割ればすぐにわかります。
:「Service」の頭文字、つまりサービス時間です。キャッシュディスペンサーで言えば、「一人のおばちゃんが使っている時間」です。
ρ:「ロー」と読みます。意味は、「単位時間あたりのサービス割合」です。キャッシュディスペンサーで解説します。「16:00〜17:00の間の1時間に人がキャッシュディスペンサーに触れていた時間が40分」であれば、「1時間のうちの40分」で「2/3」です。「10:00〜11:00の1時間はガラガラで、人がキャッシュディスペンサーに触れていた時間が5分」ならば、「1時間のうちの5分」で「1/12」です。注意点としては「割合」なので、単位がないということです。ちょっとわかりにくいですか? 下のどっちでも好きな方を選択して納得してください。
・「ρ」を求める時に「1時間(60分)のうちの5分」つまり「5分/60分」というように分母分子で「分」が消去される。だから単位がない。
・「サービス割合」を「%」で考え、いっそのこと単位のことは忘れる。「1時間のうちの40分」なら「約67%」使われていたことになる。「1時間のうちの5分」なら「約8%」使われていたことになる。計算のときは誤差があるので、分数を使うことにしよう。

●「ρ」についてもう少し詳しく
上記のディスペンサーの例では「単位時間あたり」を「1時間あたり」としましたが、別に「30分あたり」でもよいのです。その場合は当然、「16:00〜16:30の間」とか「16:30〜17:00の間」とか調査時間帯が変わってきますので、結果も変わってきます。単位時間あたりが「1分あたり」とかあまりに短いと「16:00〜16:01の間」の待ち時間とかになり、おばちゃんはその間ずっと使っていたとします。すると「ρ」は「1分のうち1分」で「1」です。
W=(1/(1−1))×1
W=(1/0)×1
「0」で割ってしまうのでまずいです。(1/0)を仮に「∞(無限大)」としたとして答えも「∞(無限大)」です。そりゃそうです。待ってても空かないのですから。

逆にその1分間は誰も使っていなかったとします。すると「ρ」は「1分のうち0分」で「0」です。
W=(0/(1−0))×0
W=(0/1)×0=0
もちろん待ち時間はありません。

●さらに例を重ねて
このディスペンサーが混んでいると、お客様から苦情がありました。そこで「1日あたり」の待ち時間をチェックしてみることにしました。とは言っても24時間稼動していることはなさそうですから、8:00〜20:00の12時間稼動で、「12時間あたり」としてみましょう。
12時間の間に180分間が利用されている時間だという報告が上がっています。すると「ρ」は「12時間(720分)のうち180分」で「0.25」です。また、一人あたり大体5分程度使っているということです。
W=(0.25/(1−0.25))×5=1.66666…
待ち時間は大体1.7分程度です。それぐらいならガマンして待てそうです。このお客様はよほど短気なのでしょうか。
ところがよく調べてみれば、このディスペンサーは昼と夕方が混んでいて、午前中はがらがらでほとんど使われていません。実際は昼の12時から13時の間が一番混んでいて、そこで50分間も利用されていることがわかりました。そこで、やっぱりその1時間だけでチェックしなおすことにしました。すると「ρ」は「1時間のうち50分」で「5/6」です。
W=(5/6/(1−5/6))×5
 =(5/6/1/6)×5
 =(5/6×6/1)×5
 =5×5
 =25
待ち時間は25分です。確かに待つのは苦痛です。

つまり1日だと空いてる時間も多いので薄まっちゃったわけです。計算が間違っていたわけではありません。
ここで重要なのは『「1時間あたり」の調査の方が優れていた』ということではなくて、『この公式は「1日あたり」でも「1時間あたり」でもちゃんとそれらしき解答が求められる』ということです。

次回は実際に過去の問題を解いてみます。

講師プロフィール:里村俊一
1995年 慶應義塾大学経済学部卒
同年 千代田生命情報システム株式会社入社
1998年 千代田生命情報システム株式会社を退社し、株式会社知識計画に入社。
2001年 情報処理技術者(テクニカルエンジニア:ネットワーク)を取得。
今に至る。

ご意見・お問合せはinfo@satram.jpまで
Copyright 2003 Satellite RAMBLING. All rights reserved.