最終回は再現とレビューのためのソース地図である。実験にはデスクトップC++/Qtアプリとブラウザ実装がある。同じ問題を別の実行環境で観察できるが、似た名称でもコード経路や数値挙動が同一とは限らない。

同じ実験へ入るネイティブとブラウザの経路
同じ実験へ入るネイティブとブラウザの経路

C++/Qt側は `model` から読む。状態特徴、行動スコア、更新、保存・読込が方針の中心だ。`game` はストリート進行、ベット、ポット精算、`finishHand` など終了処理を持つ。`card` ではデッキ表現とハンド強度を確認する。`mainwindow` は画面、入力、シミュレーションをつなぎ、ログがどの時点の状態か特定するのに必要となる。

ブラウザ側には独立したweb engineがある。反復実験と可視化には便利だが、報酬、特徴、乱数処理がネイティブ版と同じか直接比較する。一方の定数変更が他方にも反映されたとは仮定しない。

model、game、card、mainwindow、web engine、snapshotの地図
model、game、card、mainwindow、web engine、snapshotの地図

モデルスナップショットはコードと観察を結ぶ。cheolsu、younghee、minsuは、見かけが似た行動でも内部選好が異なり得ることを示す。特定学習時点の標本なので、ファイル名、コミット、設定、乱数シードと共に保存する。重み一つで全戦略を断定せず、特徴ベクトルと行動選択関数も追う。

読む順序は、ハンド終了時のchip delta計算、`finishHand`の変換、エピソード更新への伝達、保存重みと行動スコアの比較である。最後にQt画面とweb engineで同等の初期条件を再生し、実装差を実験変数として記録する。

公開ソースはpolicy collapse調査時のdiagnostic snapshotである。提案した報酬再設計、混合相手学習、信用割当改善が既に実装され、問題が解決済みだとは主張しない。ガードも根治ではなくcontainmentだ。後続変更は別コミットと同じ評価手順で検証する必要がある。

この地図の目的は誇張せず再検討可能にすることだ。ソース、モデル、再現設定、失敗例を一緒に残し、次の実験の基準線とする。

22ファイル · 5,126行 — フォルダを開いてファイルを押すとコードを読み込みます。

プロジェクトルート2ファイル
CMakeLists.txttext · 35行 · 772B

コードを読み込んでいます…

README.mdmarkdown · 28行 · 885B

コードを読み込んでいます…

models/3ファイル
models/cheolsu.modeltext · 86行 · 686B

コードを読み込んでいます…

models/minsu.modeltext · 86行 · 639B

コードを読み込んでいます…

models/younghee.modeltext · 86行 · 743B

コードを読み込んでいます…

src/11ファイル
src/card.cppc++ · 409行 · 11KB

コードを読み込んでいます…

src/card.hc++ · 27行 · 757B

コードを読み込んでいます…

src/dealer.cppc++ · 22行 · 560B

コードを読み込んでいます…

src/dealer.hc++ · 21行 · 445B

コードを読み込んでいます…

src/game.cppc++ · 854行 · 29KB

コードを読み込んでいます…

src/game.hc++ · 159行 · 4KB

コードを読み込んでいます…

src/main.cppc++ · 19行 · 380B

コードを読み込んでいます…

src/mainwindow.cppc++ · 1,193行 · 50KB

コードを読み込んでいます…

src/mainwindow.hc++ · 49行 · 996B

コードを読み込んでいます…

src/model.cppc++ · 303行 · 11KB

コードを読み込んでいます…

src/model.hc++ · 55行 · 1KB

コードを読み込んでいます…

web/6ファイル
web/css/table.csscss · 210行 · 7KB

コードを読み込んでいます…

web/index.htmltext · 38行 · 2KB

コードを読み込んでいます…

web/js/engine.jsjavascript · 985行 · 29KB

コードを読み込んでいます…

web/js/ui.jsjavascript · 358行 · 12KB

コードを読み込んでいます…

web/poker.mariago.kr.conftext · 33行 · 722B

コードを読み込んでいます…

web/test.mjsjavascript · 70行 · 3KB

コードを読み込んでいます…