Friction River Software

  • お問い合わせ

待ち行列理論の説明(会話風)

A子

いつもいつもこの時間って、何とかならないのかしら?

まさに『長蛇の列』ね

B美

うまいこと言った」みたいなドヤ顔は止めてね
たしかに1本の列がぐにゃぐにゃと曲がりくねってて、蛇みたいだけど…

C菜

A子社長のおっしゃる通りですよ~

昼休みの銀行ATMって、有名ラーメン店の行列くらい大変です~

B美

少しずつでも前に進んでるんだから良いじゃない

まぁ、こうしてる間にも、私たちの後ろにどんどん人の列が延びてるんだけどね(苦笑)

A子

ところでATMの機械ってここには6台もあるのに、わざわざ列を1本にしてるのはなんで?
ロープまで張っちゃってさぁ

6台のATMそれぞれに並べば良いじゃん

B美

そのほうが待ち時間が短くなるからよ

C菜

え?意味が分かりませんよ~

ATMの台数が増えるわけでもないし、人の数が減るわけでもないのに~

A子

あ、分かったわ

列が1本だと、その列ってどうしても長くなるわよね
それを見た利用者がうんざりして並ぶのを止めるから!

どうよ(ドヤ顔)

B美

うざっ!
ドヤ顔は止めろっつーの

てか、不正解だから!(まぁ、少しはその効果もあるかもだけど…)

C菜

うーん、分からないです~

わざわざ列を1本にする理由~?

B美

答えを言っちゃうと、確率論的にそうなるから…

正確には「待ち行列理論」によって明らかになっているから…かしらね

A子

そうこうしているうちに自分の順番が回ってきたわ

この話はまたあとでね



B美

さてお昼ご飯も食べて、会社に戻ってきたわけだけど、さっきの話の続きね

あなたたちには「待ち行列理論」の基礎の基礎について講義してあげましょう

A子

いや、別に要らない…かな
難しそうだし…

C菜

私は楽しみですぅ~♪

A子

え?裏切り?裏切りなの?
光秀なの?

C菜

誰が明智か~!

ここは本能寺じゃありませんよ~

B美

はいはい、それじゃ始めるわよ

まずは窓口が1個しかない場合ね
あ、ATMで言えば1台しかないって場合よ

C菜

コンビニのATMって感じですね~

B美

ATMって、利用者がやってくる間隔はまちまちで、その利用時間もまちまちよね

A子

そりゃそうでしょ

ATMに限らず全ての窓口、えーっと例えばコンビニやスーパーのレジとか、役所の窓口とかもそうなるかな

B美

なかなか分かってるじゃない
そう、この世にある様々なサービスの窓口は、だいたいそういうものなのよ

さて、それでは利用者のやってくる時間間隔を『Ta』、日本語では『平均到着時間間隔』としましょう。
次に、窓口を利用する時間を『Ts』、日本語では『平均サービス時間』とします。

ここまでは良いかな?

C菜

大丈夫ですぅ~

B美

Ta』の逆数を『λラムダ』として、『平均到着率
Ts』の逆数を『μミュー』として、『平均サービス率』と呼称します

要するに、ある時間内にどれだけの人がやってくるかが『λラムダ』で、ある時間内にどれだけの人にサービスを提供できるかが『μミュー』ってことなのよ

A子

だんだんやばくなってきたかも…

えっと、『λラムダ=1÷Ta』で、『μミュー=1÷Ts』ってことで良いのかな?

B美

逆数なんだから当然そうなるわね

あとは、『平均待ち時間』を『Tw』と表記し、これを計算で求めていくわけよ

C菜

出てくるギリシャ文字はλラムダμミューだけですか~?

B美

あと一つだけあるわ

最も重要な『ρロー』、日本語では『窓口利用率』ね
これは「λラムダ÷μミュー」、言い換えれば「μミュー分のλラムダ」で求められるの

A子

ピー

B美

ρローだっつーてんだろ

まぁ、呼び方はどうでもいいんだけど…
要するに100の能力があるのに、その能力を60しか使ってなけりゃ、ρローは0.6ってことよ

C菜

えっとぉ~、例えば1時間に40人対応できるレジに30人のお客さんが来たら、ρローは4分の3だから0.75ってことですかぁ~?

B美

まさにその通り!

その例だと『λラムダ』が30で、『μミュー』が40ってことになるのよ

B美

それじゃ上記の公式にあてはめてみましょう

ちなみに、Tsはμミューの逆数だから40分の1(0.025時間)ってことになるんだけど、さっきの単位は「時間」だったから「分」に換算すると1分半(90秒)ってことになるわね

C菜

0.75を(1-0.75)で割るとちょうど3ですぅ~
それに1分半を掛けるということは…

分かりました~
待ち時間Twは4分半になりますです~

B美

正解よ

あ、待ち時間は4分半なんだけど、自分が窓口を利用する時間が1分半だったらそれを足して、トータルで6分ってことになるわね

A子

その列に並び始めてから、終わって出ていくまでの時間が6分ってことか
てかさ、利用率が0.9つまり90%とかだと、Tsの9倍の時間だけ待たされるってことになるじゃん

うーん、計算は簡単だから暗算できそうではあるけどね

C菜

一人で行列に並んでて、暇なときに頭の中で計算すると良いかもですね~

公式も簡単で憶えやすいです~

B美

このようにお客さんの到着間隔がばらばらで、かつそれぞれの利用(サービス)時間もまちまちで、窓口数が1個の行列をこう呼ぶの

M/M/1』の待ち行列と…

A子

えむえむわん?

B美

そう、M/M/1えむえむわん
余談だけど、この書き方を「ケンドール記号」と呼びます。

では窓口数が2個だったらどうなると思う?
あ、列はそれぞれの窓口ごとに作るとして…

A子

M/M/2えむえむつーね(ドヤ顔)

B美

ぶっぶー、不正解

C菜

もしかして、M/M/1が2つあるとかですかぁ~?

B美

さっすがC菜、良い勘してるー
窓口が2個あっても、それぞれに列を作る場合は『M/M/1が2つある』と考えるのよ
もちろん窓口利用率であるρローは2で割るから半分になるわ

あ、でもね、A子の言った『M/M/2』という表現も実は存在するの
それこそが「行列を1本」にした場合なのよ

A子

ん?ということは昼休みの銀行ATMって、M/M/6えむえむしっくすだったってこと?

B美

大正解!

M/M/1えむえむわんが6個あるよりも、M/M/6えむえむしっくす一つのほうが劇的に待ち時間が少なくなるってこと

A子

うーん、そのへんがどうにも納得しづらい点なのよね


B美

上記の公式が『M/M/m』(ただしm≧2)の待ち時間を得るものよ

あ、mは窓口数のことね

A子

・・・

C菜

・・・

B美

無言になる気持ちはよく分かるわ(苦笑)

こんなのを手計算なんて、とてもじゃないけどやってられないわよね

B美

ところで、いきなり話は変わるんだけど『FRS統合サービス』ってWebアプリケーションがあるのよね
ここって無料のお試しユーザであっても色々な便利機能を利用できるのよ

とりあえず「ユーザID」と「パスワード」の両方に『guest』と入力してから【ログイン】ボタンを押してみて

C菜

上から4番目に【待ち行列理論による計算機】というのがあるです~

B美

出てきた画面に計算したいパラメータを入力してね

うーん、そうね
さっきの例で言うと、【平均到着率】を1時間あたり30件、【平均サービス率】を1時間あたり40件にして、「窓口数」を2、「行列は1本のみ」にしてみましょうか

C菜

【計算実行】ボタンをえいっ!…と押すです~

A子

おぉ!まさに一瞬じゃん

あ、もしも「窓口ごとに列を作る」だったらどうなるの?

C菜

やってみるです~

B美

どう?窓口が1個だったら待ち時間(Tw)は4分半、つまり270秒だったわけだけど…

窓口が2個の場合
M/M/1えむえむわんでは待ち時間が半分の135秒になるんじゃなくて、ρローが半分の0.375になるわけ

つまり待ち時間は54秒と、かなり少なくなっていることが分かるわよね

A子

ちょっと待って!

M/M/2えむえむつーの場合の待ち時間を見てよ
なにこの数値、まじ?
ほんとに正しいの?

B美

もちろん正しいわよ

待ち時間は驚異の約15秒、どうよ(ドヤ顔)

A子

ドヤ顔うっざ

うーん、でも列を1本にするってのが、めちゃくちゃ意味があるってこと、よーく分かったわ
なぜそうなるのかは未だによく分からんけど…

B美

大丈夫、私も分かってないから(笑)

C菜

列を1本にすることに意味がある」ってことを知っていれば良いってことですよね~?

B美

そういうこと

ちなみに、「待ち行列理論」ってネットワーク技術者エンジニアの必須知識だからね
複数のサーバとロードバランサを組み合わせて『M/M/m』(ただしm≧2)を作ったりするわけ

A子

またわけの分からんことを…(苦笑)

登場人物紹介ページはこちら