ソルバー相互検証
ソルバー相互検証とは、数値シミュレータを、手法もコードベースも異なる独立実装と突き合わせて検証することです — 実装エラーは自己整合的で、単一のコードベースの内側からは見えないからです。
どういう意味か
シミュレータは常に自分自身とは一致します。反転した符号、係数2、正規化のミス、基底順序の取り違えは、数学的には有効な — ただし別の物理の — 時間発展を生み出すため、同じコードベース内に書かれたどんなテストもそれを捕らえる保証はありません:間違える頭と検査する頭が同じ頭だからです。構造的な解決策は、2つの軸で同時に独立した再実装を行うこと:異なる数値手法と、異なるコードベースです。GradPulseのケーススタディでは3つのソルバーを使います:トロッター分解を用いる微分可能なPyTorch伝播器(検証対象)、完全なリウヴィリアンの厳密な行列指数を取る純NumPyソルバー(時間をまったく刻まない唯一のソルバー)、そしてコミュニティ検証済みのQuTiPの適応型ODE積分器です。~10⁻¹⁴の一致は転記バグの不在を保証し、3つの残差は1次トロッター誤差の大きさ~2×10⁻⁷で合流し、dt → 0 に外挿すると~10⁻¹³に収束します — 近似誤差が予測どおりに振る舞っているのです(2026年時点)。CIゲートが設計を完成させます:どの2つのソルバーでも動作点で食い違えば、ビルドは自動的に失敗します — 検証が一度きりのイベントではなく、すべてのコミットに課される不変条件になります。日常のたとえ
よくある誤解
- 2つの実装がコードを共有していたり同じ近似ファミリーを使っていたりすれば、その一致は何も証明しません — 共有された仮定は反響するだけで、検証にはなりません。独立性は設計されなければなりません:異なる手法の軸と、異なるコードベースの軸。
- ユニットテストは作者が想像したミスしか捕らえません — 作者の頭の中の物理が間違っていれば、テストの期待値も同じように間違っています。想像されなかったエラーを捕らえるには、独立した再実装が必要です。
- 一度きりの検証は、その後のすべてのコミットを未検証のまま残します — CIゲートは検証をイベントから、すべてのコミットに強制される不変条件へと変えます。
要点
- 実装エラー(符号の反転、係数2、正規化、基底順序)は自己整合的で、1つのコードベースの内側からは検出できません。
- 3方向の分割:トロッター伝播 vs 厳密な行列指数 vs 適応型ODE — それぞれが他の2つには見えないエラーを捕らえます。
- ~10⁻¹⁴の一致(転記バグなし)と、1次トロッター誤差~2×10⁻⁷で合流し dt → 0 外挿で~10⁻¹³に収束する残差は、誤差が予測どおりに振る舞うことを示しています(GradPulseケーススタディ、2026年時点);CIゲートはソルバーのずれをビルド失敗にします。
理解度チェック
単一のコードベース内のユニットテストが、リンドブラッド生成子の符号ミスを検出できないことがあるのはなぜですか?
- A.符号ミスは計算されるダイナミクスに何の影響も与えないから
- B.誤った生成子も自己整合的で数学的に有効な時間発展を生み、テストの期待値も同じ(間違っているかもしれない)頭の中のモデルから来るから
- C.浮動小数点演算がすべての符号エラーを機械精度以下に隠すから
- D.リンドブラッド生成子はそもそも数値的にテストできないから
答えを見る
答え: B. 誤った生成子も自己整合的で数学的に有効な時間発展を生み、テストの期待値も同じ(間違っているかもしれない)頭の中のモデルから来るから
理由: 誤って転記された生成子は完全な内部整合性をもって間違った物理を発展させ、テスト作者の期待値はその誤りを生んだのと同じ頭から出てきます — 間違える頭と検査する頭が同じ頭なのです。
3重ソルバー相互検証で、少なくとも1つのソルバーが時間分割ではなく厳密な行列指数を使わなければならないのはなぜですか?
- A.厳密な行列指数はトロッターステップより常に速いから
- B.適応型ODE積分器はリンドブラッド方程式を扱えないから
- C.同じ時間離散化ファミリーを共有するソルバーは、コモンモードのトロッター系誤差を検出できないから — 時間をまったく刻まない手法だけがそれを暴けます
- D.CIシステムが少なくとも1つの閉形式計算を要求するから
答えを見る
答え: C. 同じ時間離散化ファミリーを共有するソルバーは、コモンモードのトロッター系誤差を検出できないから — 時間をまったく刻まない手法だけがそれを暴けます
理由: トロッター系のソルバー2つは同じ離散化誤差を共有し、互いの中にそれを見ることができません(コモンモード誤差)。厳密な行列指数は時間を刻まないので、共有された近似誤差はそれとの残差として現れます — 実際、予測された1次トロッターのスケールで合流します。
前提となる概念
Independent-reimplementation methodology is sound practice, but the concrete figures (1e-14 agreement, 2e-7 Trotter residual) are from the 2026 GradPulse case study (repo verified 2026-07-03).
