待ち行列のシステム同定観測だけで仕組みを特定できるかを、正解付きで検査するEnglish
現在わかっていること
中身の仕組みが隠された待ち行列の世界を用意し、外から見える記録だけを渡して、どんなモデルなのかを当てにいきました。正解は最後まで開示せず、当てた後に照合します。
最初の観測は極端でした。見かけ上はM/M/4(到着も処理も指数分布、窓口4つ)に見えるのに、滞在時間の実測平均が理論値の234倍あり、しかも時間とともに増え続けていました。
ここで新しい仕組みを足す前に、安い検査から順に潰しました。結果、到着の49.5%がまったく同じ時刻に重なっていることが分かり、まとまって到着する(バッチ到着)と特定できました。次に、窓口ごとの記録を見せてほしいと要求し、その要求と6本の予測を封印してから追加の観測を受け取りました。窓口の処理速度は約 0.693 / 0.361 / 0.364 / 1.028 で、「全部同じ速度」という説明は棄却されました。
最終的に選んだモデルは、バッチ到着+指数サービス+速度の違う窓口(近い2つの速度は同じとみなして1つにまとめた)です。このモデルは、事前に封印した10個の予測統計量のうち8個を95%予測区間の中に収め、正解の開示後に構造の5要素すべてと一致しました。
重要な限界があります。このベンチマークが検査したのは、あらかじめ示された候補集合の中で正しい一つを選べるかであって、未知の仮説空間から新しい仕組みを発見できるかではありません。
図で見る
flowchart LR O[予測と観測が大きく食い違う] --> T[安い代替説明から潰す] T --> Q[追加観測の要求を封印する] Q --> L[モデルの階段を比べる] L --> P[予測外データへの予測を封印する] P --> R[正解を開示: 構造5要素すべて一致]
この研究が示すこと
- 「観測する → 予測する → 追加観測を要求する → 複製する」という限定された手順で、与えられた候補集合の中のこの1事例を回復できた。
- 1回の実行で出た残差を、新しい仕組みを足す理由にせず、複製で確かめるという判断が機能した。
この研究が示さないこと
- 未知の仮説空間からの発見、実際の待ち行列での性能、別のシードへの一般化は示しません。
- ベンチマークを作った人と解く人は独立ではありません。
なぜ重要か
予測が外れたあとにモデルを複雑にするのは簡単です。このベンチマークでは、まず安い代替説明を除外し、新しい観測チャネルを要求する理由を明示し、モデルを拡張する前に残差を複製することを自分に課しました。手順そのものが検査対象です。
何を調べたか
予測との食い違い、追加観測の要求、封印した予測外データでの検証、複製、そしてモデルの階段的比較を使って、隠された世界を説明する最小の待ち行列モデルを同定できるか。
競合仮説
候補集合には、到着過程、サービス法則、窓口の構造、客の振る舞いについての代替案を含めました。主な候補は、途中離脱・入室拒否、混雑に応じた処理速度低下、バッチ到着、共通サービス速度の誤り、窓口ごとに異なる処理速度、指数分布でないサービス時間です。
事前に固定した予測
封印とは、結果を見る前に予測文と判定基準を確定し、ハッシュで固定することです。
- PRED-001: 同じ実行の観測レベルを1から3へ上げる前に封印。窓口速度に強い不均一があるという予測を含む6本すべてが的中。
- PRED-002: 2つの予測外条件の前に封印。報告した10個の統計量のうち8個が95%予測区間内。
- PRED-003: ある残差が新しい仕組みを要するかどうかを判定する、同条件8回の複製の前に封印。複製の平均は区間内へ戻りました。
- FINAL-MODEL: 隠された世界を開示する前に封印。
方法
世界は実行時に16バイトのシードを生成し、シードとSHA-256のコミットメントだけを保存します。仕組みとパラメータはシードから導出されます。観測レベルは段階的に情報を開きました。最初は到着と退出だけで分析し、サービス開始時刻、窓口ID、退出理由、待ち人数のサンプルは、要求と6本の予測を封印した後にだけ追加しています。
モデルの階段では、公称M/M/c、速度を当てはめたM/M/c、均一なバッチ到着モデル、不均一なバッチ到着モデルを比べました。選んだモデルは、統計的に区別できない2つの窓口速度を同じ値とみなし、完全に不均一なモデルよりパラメータを1つ減らしています。
結果
- 基準のM/M/4は平均滞在時間
W = 1.335を予測しましたが、観測はW = 311.8で、しかも線形に増加していました。 - 到着の49.5%がまったく同じ時刻を共有し、まとまりの大きさは幾何分布に近い形でした。
- 窓口速度はおよそ
0.693 / 0.361 / 0.364 / 1.028で、均一な速度という説明を棄却しました。 - 節約したモデルは予測区間への的中が10個中8個、相対誤差の中央値は0.102でした。
- 開示された構造は、宣言した5要素すべてと一致しました。平均バッチサイズの誤差0.53%、窓口速度の最大誤差2.29%、
c = 3, 4, 6での容量の誤差は0.3%未満です。
何が変わったか
- 安い検査で途中離脱と処理速度低下を除外した後、追加する観測を1つのチャネルだけに限定しました。
- 1回の実行で出た待ち時間の残差に対し、新しい仕組みを足すのではなく複製することを選びました。
- 近い2つの速度は「厳密に等しい」とは主張せず、節約のためにまとめた、という表現にしました。
何が失敗したか
初期の解析は、末尾の不完全な時間区間を含めてしまったために、到着時刻の分散が過大だと報告していました。完全な区間だけを使い、経験的なポアソン帰無分布と比べると、見かけの効果は消えました。直さなければ、必要のない「変動する/周期的な到着過程」をモデルに足していたはずです。
候補となる仕組みの集合と割当規則は、あらかじめ与えられていました。隠されていたのは事例であって、仮説空間ではありません。
証拠の範囲
言えること: 宣言済みの有限の候補集合の中にある合成の隠し事例を1つ同定し、封印した予測と予測外データでの検査を経た最終的な構造とパラメータが、開示された正解と一致した。
言えないこと: 未知の仮説空間からの発見、実際の待ち行列での性能、隠しシードを変えたときの一般性、ベンチマークを作った人と解く人の独立性。
まだ分からないこと
- 第三者が独立に拡張した候補集合でも、同じ手順が成功するか。
- 観測の長さが10分の1のときの検出力。
- 不均一な窓口と混雑依存の速度低下のように、複数のずれが同時にあるとき区別できるか。
- 新しい隠しシード、そして独立した解き手への一般化。
この結論が崩れるとき
- 同じ候補集合の新しい封印シードで、誤った構造を繰り返し選ぶ。
- 高負荷条件での容量が、当てはめた速度の総和と一致しない。
- 窓口の並び順を入れ替えると、速度の追跡が壊れる。
- 独立した再解析が、シードや正解から予測への情報漏れを発見する。
自分で確かめる
python -m pip install -r requirements-reproduce.txt
python scripts/reproduce.py --quick queue新しいブラインド実行を最初からやる場合は、新しい封印を生成し、最終モデルを封印するまで解き手に reveal を渡さないでください。同梱した完了済みの実行は公開された計算を再現できますが、正解が公開済みなのでブラインドではありません。
証拠とデータ
- 世界の生成器と観測データ
- 封印した予測
- モデルの階段の解析
- 隠し世界のコミットメント:
7c4e47709de366e295aec26be7fac462100d1c6bf3d49fcd9ec03e40930b663a - 内部の元Episodeのハッシュ:
0c632eb5cad1431953bcbfbe3a067925fea3d7caac6bb21547ce53cb03a7931f
外部からの検証
- 独立再現:0
- 再現失敗:0
- 公開後に確認されたbug:0
- 未解決の批判:0
次の実験
独立した第三者に候補集合を拡張してもらい、封印した事例を複数作って、正解も集合の作り方も解き手に渡さずに、構造をどれだけ回復できるか評価します。