待ち行列計算
サービスシステムの平均待ち時間・待ち行列長・サーバー稼働率を推定します。顧客到着率・サーバーあたりのサービス率・サーバー数を入力すると、M/M/c待ち行列理論に基づくすべての主要パフォーマンス指標を表示します。
結果はM/M/c待ち行列理論に基づく理論値です。ポアソン到着・指数分布サービス時間を仮定しています。
待ち行列理論入門:M/M/1とM/M/cモデルで待ち時間を理解する
待ち行列理論(キューイング理論)は、待ち行列(キュー)を数学的に研究する学問分野です。銀行の窓口に顧客が並ぶとき、ネットワークルーターをパケットが通過するとき、コールセンターに電話が入るとき——これらすべてに共通する基本的な力学が働いています。到着する需要が限られた数のサーバー(窓口)を奪い合い、需要と処理能力のバランスが各顧客の待ち時間を決定します。この力学を定量的に理解することで、エンジニア、オペレーション管理者、計画担当者は、過剰なリソースを使わずにサービスレベル目標を達成するシステムを設計できます。
M/M/cキューモデル
M/M/cモデルは待ち行列理論の基本的な構成要素です。2つの「M」はマルコフ性(記憶なし)を表し、1つ目は到着プロセス、2つ目はサービスプロセスを指します。「c」は並列サーバーの数です。このモデルでは、顧客は到着率λ(ラムダ)のポアソン過程に従って到着し、各サーバーは独立にサービス率μ(ミュー)の指数分布に従って処理を行い、顧客は1本の行列に並んで先着順にサービスを受けます。
cが1のとき、モデルはより単純なM/M/1キューに帰着します。cが増えると、コールセンター、複数窓口の銀行、多車線の料金所など、複数のサーバーが1本の共有待ち行列から顧客を処理するあらゆるシステムをモデル化できます。
サーバー稼働率(ρ)
待ち行列理論で最も重要なパラメータがサーバー稼働率ρ(ロー)です。ρ = λ /(c × μ)と定義され、到着率と総サービス能力の比を表します。ρ = 0.50はサーバーが平均50%の時間稼働していることを意味し、ρ = 0.90は90%の時間稼働していることを意味します。
重要な制約として、安定したキューにはρが厳密に1未満でなければなりません。ρ ≧ 1のとき、到着が処理能力と同等か上回り、キューは時間とともに際限なく増加し、待ち時間は無限大になります。ρが1に近い値でも不釣り合いに長いキューが発生します。稼働率と待ち行列長の関係は非常に非線形であり、稼働率を0.50から0.90に倍増させると、待ち時間は2倍ではなく10倍以上に跳ね上がることがあります。
主要指標:Lq、L、Wq、W
待ち行列理論は4つの主要パフォーマンス指標を導出します。Lqは待ち行列で待っている顧客の平均数(サービス中の顧客は含まない)です。Lはシステム内の顧客の平均数(待機中+サービス中)です。Wqは顧客がサービス開始前に待ち行列で待つ平均時間です。Wは顧客が到着から退出までシステム内で過ごす平均時間です。
この4つの量はリトルの法則(Little's Law)で結ばれています。これはオペレーションズリサーチで最もエレガントな結果のひとつで、L = λ × W および Lq = λ × Wq が成り立ちます。リトルの法則はM/M/cキューに限らず非常に一般的な条件下で成立するため、到着率がわかれば他の指標から任意の指標を推定できます。
アーランC式
複数サーバーのM/M/cキューにおいて、到着した顧客が空きサーバーを見つけられず待つ確率は、アーランC式(Erlang-C formula)で求められます。この確率はC(c, ρ)またはP_waitと表記され、サーバー数と総トラフィック量の両方に依存します。アーランC式の結果はLqの公式に直接組み込まれます:Lq = C(c, ρ) × ρ /(1 − ρ)。
サーバーが1台のM/M/1の場合、待機確率はρそのものに簡略化され、平均待ち行列長はLq = ρ² /(1 − ρ)となります。これらの公式により、実際のサービスシステムをモデル化し、処理能力を追加するコストと効果のトレードオフを評価できます。
実用的な応用分野
待ち行列理論は非常に幅広い分野で応用されています。通信分野では、ネットワークエンジニアがM/M/cモデル(およびより複雑なバリエーション)を使用して、パケット損失率や呼損率が許容閾値を下回るようにルーター、スイッチ、コールセンター回線の容量を設計します。医療分野では、病院管理者が待ち行列モデルを使って、患者の待ち時間を安全な範囲に収めるために必要なトリアージ看護師数、救急ベッド数、手術室数を決定します。
製造業やサプライチェーン管理では、生産ラインのバッファサイズの最適化やボトルネックの特定に待ち行列モデルが活用されます。小売や銀行では、ピーク時の人員配置の判断に利用されます。ソフトウェアエンジニアリングでは、Webサービスのスレッドプール、データベース接続プール、リクエストキューの容量設計に使われます。交差点や高速道路の交通工学でも、信号タイミングの設定や渋滞の予測に待ち行列理論が活用されています。
クラウドコンピューティングプラットフォームでは、オートスケーリングポリシーの実装に待ち行列ベースのモデルが使われています。平均CPU稼働率やリクエストキューの深さが高いρ値に相当する閾値を超えると、追加のサーバーインスタンスが自動的にプロビジョニングされ、システムを安定した低待機状態に戻します。
モデルの限界と拡張
M/M/cモデルは強力ですが、いくつかの簡略化の前提に基づいています。実際の到着プロセスは完全なポアソン過程であることは稀で、顧客の到着は特定の時間帯(昼食時、営業終了前など)に集中したり、個別ではなくまとまって到着したりする傾向があります。サービス時間も指数分布に従わない場合があり、ほぼ一定の所要時間の作業もあれば、稀に非常に長いサービス時間が平均を支配する重い裾を持つ分布の場合もあります。
こうした現実に対応するための多くの拡張モデルが存在します。M/G/1キューは一般的な(非指数的な)サービス時間分布を許容し、ポラチェク・キンチン公式で解析されます。M/D/1キューは確定的な(固定の)サービス時間をモデル化します。優先キューは一部の顧客が優先的にサービスを受けるシステムをモデル化します。有限バッファキュー(M/M/c/K)は待合室の容量が限られ、超過する到着が拒否されるシステムをモデル化します。
この計算ツールの使い方
平均到着率λを1時間あたりの顧客数で入力してください。これは顧客、リクエスト、ジョブがシステムに到着する速さです。サービス率μを1サーバーあたり1時間あたりの処理可能顧客数で入力してください。これは1台のサーバーが1時間に処理できる顧客数です。並列サーバー数cを入力してください。
計算ツールはρを算出し、キューが不安定な場合(ρ ≧ 1)は警告を表示します。安定したキューでは、平均待ち時間Wq、平均滞在時間W、平均待ち行列長Lq、平均システム内人数L、到着した顧客が待つ確率を表示します。時間はすべて見やすく分単位で表示されます。入力値を調整して、たとえばサーバーを1台追加した場合の待ち時間への影響や、平均待ち時間を目標以下に保てる最大到着率などのトレードオフを検討できます。
よくある質問
待ち行列理論とは何ですか?この計算ツールは何を計算しますか?
待ち行列理論は待ち行列(キュー)を数学的に研究する学問です。この計算ツールはM/M/cモデル(マルコフ的到着、マルコフ的サービス、c台の並列サーバー)を適用して、サーバー稼働率(ρ)、平均待ち時間(Wq)、平均滞在時間(W)、平均待ち行列長(Lq)、平均システム内人数(L)、到着した顧客が待つ確率を計算します。到着率λ、サーバーあたりのサービス率μ、サーバー数cを入力してください。
サーバー稼働率(ρ)とは何を意味しますか?
サーバー稼働率ρ = λ /(c × μ)は、サーバーが平均的に稼働している時間の割合です。0.80ならサーバーは80%の時間稼働しています。キューが安定するにはρ < 1が必要です。ρが1に近づくと待ち時間は急激に増加します。この関係は非線形であり、たとえばρを0.50から0.90に増やすと、平均待ち時間は2倍ではなく何倍にも跳ね上がります。
なぜ待ち時間に∞(無限大)と表示されるのですか?
サーバー稼働率ρ ≧ 1のとき、到着率が総サービス能力と同等以上(λ ≧ c × μ)であることを意味します。この状態ではキューは数学的に不安定で、際限なく増加し、待ち時間は無限大になります。解決するには、サーバー数を増やす、サーバーあたりのサービス率を上げる、または到着率を減らして、ρ < 1にする必要があります。
M/M/1キューとは何ですか?
M/M/1キューは最も単純な待ち行列モデルです。到着率λのポアソン到着、サービス率μの指数分布に従うサービス時間、そして1台のサーバーで構成されます。M/M/1ではρ = λ/μ、平均待ち時間Wq = ρ /(μ(1 − ρ))、平均待ち行列長Lq = ρ² /(1 − ρ)です。この計算ツールはサーバー数を1に設定すると自動的にM/M/1の公式を使用します。
リトルの法則とは何ですか?
リトルの法則は、L = λ × W(および Lq = λ × Wq)が成り立つことを示す法則です。Lはシステム内の平均顧客数、λはスループット率、Wは各顧客がシステム内で過ごす平均時間です。この基本的な結果は非常に一般的な条件下で成立し、4つの主要な待ち行列指標を結びつけます。L、λ、Wのうち2つがわかれば、残りの1つを計算できます。
実際のシステムに対してこの結果はどの程度正確ですか?
M/M/cモデルは、その前提条件(ポアソン到着、指数分布のサービス時間、無限のキュー容量、定常状態)のもとでは正確な結果を与えます。実際のシステムはこれらの前提から外れることが多く、ピーク時に到着が集中したり、サービス時間が固定または重い裾を持つ分布であったり、容量に制限があったりします。M/M/cの結果は理論的な基準値として解釈するのが適切です。前提から大きく外れるシステムでは、より専門的なモデル(M/G/1、M/D/1、シミュレーション)の方がより正確な推定を得られる場合があります。