やさしぃ〜プログラミング用語

2001/11/13 undo


待ち行列(queue)

人気のあるお菓子屋さんとか、混んでいる銀行のATMとか、混んでいるスーパーのレジとか、人がいっぱい順番待ちで並んでいますよね。どこかでつっかえて長く待たされると気分悪いですよね。私なんて短気だから「もうこんな店、絶対来ない!」なんて思ってしまうことが多々あります(^^;

お店側にとっては、たとえたくさん並んでいたとしても、そんなふうに思わせないことが重要でしょう。一つの解決策は、銀行のATMのように1列に並ぶことでしょう。元々、複数のATMで処理するけど、それぞれに並んでいたとして、もしATMが壊れたら、そこに並んでいた人は不愉快な思いをしますよね。でも、ATMが10台もあって1列に並んでいたら1台くらい壊れて使えなくなってもお客さんは嫌な気持ちにはならないでしょう。

しかし、ほとんどのスーパーのレジではそれぞれに並びます。途中でおばさんが財布からお金を出すのに、まごついていたら、そこのレジは処理が止まってしまいます(;_;) 途中で大量に買い込んでいるおばちゃんがいるかもしれません(^^; いやぁ〜、困ったもんです。


あのような順番待ちを待ち行列といいます。待ち行列は先入れ先出し(First In First Out)の形式です。つまり、最初に並んだ人から順序よく処理されていくのです。


かなり勘違いしている人は多いのですが、混んでいるとき、レジを1つ開けるというのは待っている客を処理するのにかなりの効果があります。たとえば、1分あたり3人の客が列に並ぶとして、レジでは1分あたり2人の客しか処理できなかったとしたら、10人目のお客さんは、そのままでは5分待たされることになりますが、1台追加すれば、2分半しか待たされないので、2倍の効果だと早合点してはいけません。たしかにレジは1台から2台になっただけです。

しかし、そのままでは1分ごとに1人分、列が長くなっていきます。しかし、もう1つのレジを開けると、合計で1分あたり4人の客を処理できることになり、並んでいた人を1分あたり1人ずつ消化できます。10人並んでいたとして、そのままだと10分後、20人並んでいることになります。このとき、お客さんに10分待たせることになります。もし、10人並んでいるところで、もう1台レジを開けると、10分後には誰も並んでいない状態になって、お客さんに待たせないサービスが可能になるのです。
その後のお客さんから見た待ち時間は2倍どころではないのです。


戻る