行列が長い店は人気店? 待ち時間を「来る人」と「さばく速さ」に分けてみる

駅前に二つのお店があります。一つは店の外まで列が伸び、もう一つはほとんど並んでいません。「列が長いほうが人気なのかな」と思うかもしれません。でも、列を作るのはお客さんの数だけではありません。

例えば、同じ人数のお客さんが来ても、一人の会計に時間がかかる店なら列ができます。反対に、大勢が来ていてもレジの数が多く、会計が速ければ列は短いままかもしれません。今回は実際の店舗データではなく、紙と時計だけで再現できる架空の行列実験をしてみます。

一列に並ぶ五人を、時計で追いかける

小さな屋台を想像してください。お客さんは4分おきに一人ずつ来ます。最初の五人が来る時刻は、開店から0分、4分、8分、12分、16分です。会計と商品受け渡しには、毎回5分かかると仮定します。レジは一つだけです。

一人目は0分に来て、すぐ会計を始め、5分に終わります。二人目は4分に来ますが、一人目の会計が終わるまで1分待ちます。三人目が8分に来たときは、二人目の会計が10分まで続いているため、2分待ちます。

人 到着 会計を始める 会計終了 並んで待つ時間
1人目 0分 0分 5分 0分
2人目 4分 5分 10分 1分
3人目 8分 10分 15分 2分
4人目 12分 15分 20分 3分
5人目 16分 20分 25分 4分

五人の待ち時間は合計10分、平均2分です。ここでいう待ち時間は、会計が始まるまでの時間。会計そのものの5分は含めません。「列に並んだ時間」と「お店を出るまでの時間」を混同すると、数字が違ってしまいます。

お客さんの数を増やさなくても、列は伸びます

この屋台の来店間隔は変えず、会計にかかる時間だけを4分に短縮してみます。最初の人は0〜4分、二人目は4〜8分、三人目は8〜12分。全員が到着するとすぐに会計を始められます。同じ五人が来ているのに、誰も待ちません。

次に会計を6分へ延ばすと、始める時刻は0分、6分、12分、18分、24分です。待ち時間は0分、2分、4分、6分、8分。平均4分になります。たった1分の作業時間の違いでも、後から来た人ほど差が大きくなるのです。

この架空の計算では、店の人気や来客数は一切変わっていません。変えたのは一人当たりの処理時間だけです。行列を見たときに「何人来たのか」と「一人に何分かかるのか」を分ける理由がここにあります。

レジを二つにすると何が起きる?

最初の設定へ戻し、レジを二つに増やしましょう。来店は4分おき、1人の会計は5分です。0分に来た一人目はレジA、4分に来た二人目はレジBへ。8分の三人目が来るころにはAが空いているため、待たずに使えます。12分の四人目はB、16分の五人目はAを使えます。

この条件では、二つのレジをうまく使えば五人とも待ち時間は0分になります。ただし、実際のお店なら、一方のレジしか扱えない商品がある、支払い方法が違う、複数人で注文内容を相談するといった事情もあります。レジが二つあるから、どんな混み方でも必ず待たない、という意味ではありません。

考えるポイントは、列の長さという結果だけを見ず、結果を作る仕組みに戻ることです。学校の文化祭でも、行列ができた屋台の売り上げを増やしたいなら、「人気が高いから列がある」と決める前に、会計が止まっていないか、商品を渡す工程が詰まっていないかを調べたほうが具体的な改善につながります。

並んでいる人数から、待ち時間は計算できる?

もし目の前に三人並んでいて、会計が一人平均5分なら、「15分待ち」と見積もりたくなります。でも、ここにも条件があります。自分の前の三人全員がレジを使うのか、別のレジに分かれるのか、商品を選んでいるだけなのかで結果は変わります。

また、「平均5分」は一人ずつ必ず5分という意味ではありません。1分で終わる人も9分かかる人もいるなら、単純な掛け算は目安にすぎません。さらに自分の番になってからの会計時間を足すのかどうかで、「待ち時間」の定義も変わります。

正確さを求めるなら、実際に何人かの到着時刻、会計開始時刻、終了時刻を記録します。個人を特定する情報は必要ありません。例えば5人分だけでも、どこで時間が増えているかを見つけられます。理解OSの「構造分解」は、こうして目に見えた列を、時間の流れへ戻して考えると役立ちます。

その列は「人気」を何も語らないの?

そうではありません。多くの人が同時に来ることも、列の長さを左右する重要な要因です。ただし、列が長いという観察だけでは、人気の高さと処理の遅さを分けられない、ということです。

人気を調べたいなら、一定時間に何人来たかを数えます。運営を改善したいなら、各工程に何分かかるかを調べます。利用者として「待つ価値があるか」を判断したいなら、予想待ち時間、商品への期待、使える時間を比べます。同じ行列でも、知りたいことによって必要な数字が違うのです。

目の前の結果を一つ見ただけで原因を一つに決めてしまうと、大事な変数を見落とします。次に行列を見かけたら、「来る速さと進む速さ、どちらが列を作っているのだろう」と想像してみてください。たったそれだけで、行列は少し違った景色になります。

計算上の注意:本文の時刻と人数はすべて架空の一定間隔モデルです。実在店舗の平均待ち時間や混雑原因を示すデータではありません。

操作して確かめる

記事の内容を自分で動かして試すには、行列の待ち時間シミュレーターを使えます。

関連するOS・記憶学

長い行列を、来店する人数と会計を終える速さに分けると、混雑の仕組みが見えてきます。この見方を別の場面にも広げたいときは、理解OS 第12章「構造分解」を読んでみてください。

おすすめの記事