トラヒック計算で混雑解消
チケット予約で電話するけど話中ばかり…。現金を引き出そうとしてATMに並んでいてもなかなか前に進まない…。会計しようとレジ待ちしているけど自分の前には何人も…。
これってレジの数が少なすぎるんじゃない?ATMの数が足りないんじゃない?チケット会社の電話回線が少ないんじゃない?そう思ったことありませんか。会社はレジやATMの数をケチっているのでしょうか。それともきちんと数を計算しているのでしょうか?
電話を使ったチケット予約を例にすると、仮に1回線しか用意していなければ同時に一人しか通話できません。もし、100人が同時に掛けたとすると99人は話中です。明らかに回線数が不足でしょう。だからといって、100回線用意しておくのは明らかに無駄な感じがします。
それに予約に何十分も掛かることはありません。通話は数分で終わります。例えばチケット予約に平均2分が必要なら、1時間に30人は捌けることになります。1分なら60人です。
何度掛けても話中だった最後の一人は不幸ですが、100人いたとしても数時間もあれば、全員チケット予約ができるわけです。では一体、回線は何本用意すればいいのでしょうか。どうやら予約したい人の数と通話時間、回線数の複雑な関係があるようです。
リクエスト(要求)とリソース(資源)
チケットを予約する行為がリクエスト(要求)なのに対し、回線の数はリソース(資源)です。全てのリクエストをすぐに満せるだけのリソースが用意できればよいのですが、それは現実にはコスト高で夢物語です。
結局、いかに有限のレジやATM、回線などのリソースで、ある程度満足のいくサービスを提供できるかどうかという問題になります。
|
v
<------- サービスの提供
電話を掛けて10回に9回が話中なら不満でしょうが、10回掛けて9回通話できるならそれほど不満はないでしょう。ましてや100回掛けて99回通話できるなら大満足です。
サービスの満足度を考えながら、必要な有限リソースの数を割り出すことが重要になりそうですね。
トラヒック(トラフィック)理論とは
トラヒック理論とは、有限のリソースで効率的なサービスを提供するためにどうすればよいかを考えるものです。トラヒックとは交通量のことで、渋滞を起こさずスムーズに流れるようにコントロールするイメージですね。
トラヒック理論(トラフィック理論という人も多い)には呼、呼量、保留時間などの専門用語が出てきますが、慣れてしまえば大したことはありません。
呼 |
1回分のサービス要求のこと。トランザクションとも言います。電話なら1回の呼び出し。ATMなら一回分の操作に対応します。
|
---|---|
保留時間 |
1回のサービスに要する時間で、スループットとも言います。電話なら通話時間、ATMなら操作時間です。
|
呼量 |
呼の延べ保留時間を単位時間で割ったものになります。
|
これらは電話交換から出てきた言葉なのですが、呼は「こ」、呼量は「こりょう」と言います。英語で呼はcallですね。ちなみに話中は「わちゅう」で英語だとbusyです。
呼と保留時間はすぐに理解できますが、呼量は少し抽象的な感じがします。具体例を示しましょう。例えば、述べ保留時間が100分で単位時間が3600秒(1時間)だとすると以下のrpn式で呼量が計算できます。
1.66667
呼量は1.66667ですね。呼量はデンマーク人の数学者・電話技師のアグナー・アーラン(Agner Krarup Erlang)に因んでアーランとも言われます。今回の場合は1.67アーランです。
つまり、1時間に平均h秒の通話がc回あるとするとアーラン(呼量)は以下の式になります。
a = ------
3600
電話の場合、平均通話時間は大体3分です。そして呼び出し音が7回聞こえても相手が応答しないときに諦めて切断するそうです。ところで、電話の呼び鈴ですが鳴っている時間が1秒で鳴っていない時間は2秒です。日常の感覚では逆のように感じますね。
すると平均3分の通話が1時間に10回なら、次のrpn式のように0.5アーランになります。
0.5
では、1回の通話で1時間通話すると何アーランになるのでしょうか。
1
計算すると1アーランであることが分かります。当然、このトラヒックを満たすには最低でも1回線が必要です。別の解釈をすると1アーランは1つのリソース(回線)を100%使っている状態ともいえます。
別の例を示しましょう。1時間に2回、60分通話したときは2アーランです。
2
この場合は2つの回線がないとトラヒックを捌けません。2つのリソース(回線)を100%使っている状態ですね。
現実的な例(小さな企業の回線数)
ある小さな企業に5台の電話があります。経験上、1時間当たり1台で平均10回の電話着信があります。また、1回の通話時間は平均3分であることが分かっているとします。アーラン数はいくらになるでしょう。
2.5
3分(180秒)が10回で5台の電話機なので、それぞれを掛けて3600秒で割ると、呼量は2.5アーランだと分かります。
ちなみに企業の内線電話は平均で0.2アーラン未満で、トラヒックの1/3は外線発信、1/3は外線着信、1/3は内線相互通話です。大体1時間に12分は受話器を握っている計算になりますね。なお、家庭の電話機は平均で0.06アーラン程度だそうです。
即時式ならアーランB式
さて、呼量(アーラン)は計算できたとして、必要な外線の回線数はいくつになるのでしょうか。これを計算するには呼損率という考え方が必要です。呼損率は呼を受け付けることができなかった割合です。
サービスを提供できなかった割合。サービスを拒否した割合でもあります。
電話の場合、呼損率が0.5なら2回に1回は話中になります。呼損率の逆はサービスの品質、または満足度ともいえますね。そして、呼量と回線数が分かれば呼損率が計算できます。それが以下のアーラン式です。
a
----
n!
b = -----------------
i
n a
1 + ∑ { ---- }
i=1 i!
aはアーラン(呼量)、nは回線数、bは呼損率になります。先ほどの小さな会社を例に呼量を2.5アーラン、回線数が1回線だとしてみましょう。会社内には5台の電話、引き込んだ回線(外線)が1回線という構成ですね。rpn式は以下のとおりです。
0.714286
呼損率は0.7です。つまり、10回掛けて通話できるのは3回程度ですね。回線数が増えて2回線だとすると次のようになります。
0.471698
呼損率が0.47に改善しています。10回掛けて5回はすぐに通話できます。
最も電話を使用する時間帯を最繁時といいますが、企業なら9時台と13時台です。最繁時のアーラン数は平均とは大きく異なるため、呼損率を計算する際のアーラン数は最繁時のものを基準に考えるべきです。
では、アーラン数が2.5として呼損率が0.05(すぐに通話できる確率が95%)を満たす回線数はいくらでしょうか。上の式に従って回線数が1本の場合、2本の場合、3本の場合…と呼損率が0.05を下回るまで計算すればいいのですが、数式を入力するのがあまりにも面倒です。
そこで、erlangというrpnプログラムを用意します。erlangプログラムに指定する値ですが、最初のパラメータがアーラン(呼量)で、次が回線数です。このrpn式を計算すると呼損率が出てきます。
0.714286
>rpn 2.5 2 -c erlang
0.471698
>rpn 2.5 3 -c erlang
0.282167
>rpn 2.5 4 -c erlang
0.149916
>rpn 2.5 5 -c erlang
0.0697311
>rpn 2.5 6 -c erlang
0.0282343
会社に引く回線を6本を用意すれば呼損率5%を達成できることが分かります。つまり、お客さんがこの会社に電話した場合、100回中3回は話中ということになります(97%の確率ですぐに繋がる)。
現実的な例(テナントビルの回線数)
今までは呼損率を考慮して、アーラン数から提供可能な回線数を求めてきましたが、今度は逆に回線数から許容できるアーラン数を求めてみましょう。
ここに1本のT1回線があります。23の同時音声通話が可能な大容量の光回線です。この回線で呼損率1%を満たすことのできるアーラン数はいくらになるでしょうか。
1.42302e-23
>rpn 10 23 -c erlang
0.000175636
>rpn 20 23 -c erlang
0.0849296
>rpn 15 23 -c erlang
0.0135433
>rpn 14 23 -c erlang
0.00745414
14アーランまで許容できますね。テナントの平均アーラン数が0.2で最繁時が3倍だとしても電話機23台までカバー、10倍だとしても電話機7台までカバーできそうです。
現実的な例(衣料販売店のアーラン数)
今度は少し変わった応用です。以下は子供服販売店の実績値なのですが、この店舗のアーラン数を求めてみましょう。
・売上40万円/日 ・来店200組/日 ・滞在時間15分/組 ・来店間隔3分 ・平均5組/店内
3分毎に来客があるとして一日の来店数が200なので、営業時間は10時間。売上が40万円なので客単価は2000円。月商1200万、年商1億4千4百万円ですね。
保留時間が15分で、1時間当たり20トランザクションとして計算すると以下のrpn式になります。
5
5アーランです。このトラフィックを捌くにはリソースが最低でも5以上必要です。ただし、この場合のリソースは来客に必要な面積(移動に無理がない)です。少なくとも実績では、平均5組が店内にいてもスムーズな動線が確保できているらしいので、上記のアーラン数と合致することになりますね。
次は…
ところで上のアーラン式ですが、正確にはアーランB式といいます。これはサービスを要求したときにリソースが使えないとサービスを諦める(拒否する)タイプの計算式です。
他にもアーランB式が適用できる条件として、呼はランダムに発生すること、保留時間は指数分布に従うこと、要求数は無限でリソースは有限であることがあります。
電話回線がまさにうってつけの例ですね(サービス拒否が話中)。もともとアーラン氏は電話技師だったので当然といえば当然です。しかし、すぐに要求が通らなくても行列に並んで待つこともあります。ATMやスーパーのレジがそのケースに当たります。
次はATMやレジの場合、どれだけの台数を用意すればよいかを解決するアーラン式の紹介です。
rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。
xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。