Closed6
『ゲームで学ぶ探索アルゴリズム入門』読み
ピン留めされたアイテム

書いたコードは https://github.com/ia7ck/thunder-book-game-search にあげていく。

第3章 文脈のある 一人ゲームに使いたい探索アルゴリズム
サンプルのゲーム 数字集め迷路 がシンプルで良い。
Chokudaiサーチはパラメータのチューニングなしで性能が出やすいらしい。ビームサーチと比べて。
ビーム幅=1でChokudaiサーチを実行してるけどここを増やすとどうなるんだろう?

第4章 文脈のない 一人ゲームに使いたい探索アルゴリズム
メタヒューリスティクスとも呼ばれる。AtCoder Heuristic Contest と関係が深そう。
この章はけっこう知ってること多かった。
焼きなましの冷却スケジュールで初期温度と最終温度はどう決めればいいのだろう?

第5章 交互着手二人ゲームに使いたい探索アルゴリズム
MiniMax だとゲーム木が大きいときまともに動かなそう
→ AlphaBeta で枝刈りすると性能が出るのかー!
モンテカルロ法は最後まで playout してゲームのスコアを出せばよくて、盤面評価を考えずに済むのがうれしい。
→ 完全ランダムの playout だと現実的じゃない手も探索してしまいもったいない。playout の結果を親方向のノードへ反映して次に活かす MCTS
盤面評価しやすいゲームだと、playout せずに自分でつくった評価関数をもとに探索したほうが性能が出ることがあるらしい:Thunder サーチ

第6章 同時着手二人ゲームに使いたい探索アルゴリズム
ここは CodinGame のコンテスト前に読もう。

第7章 よりよい探索をするためのテクニック
評価関数の設計
生スコアをもとに盤面評価の補正項を足して評価関数にする。
多様性の確保方針
同一盤面を高速に判定するために Zobrist hashing を使う! 多様性を確保することでビームサーチの性能があがる。
高速化
- 盤面をビットで表わしてビット演算
- めちゃくちゃ混乱するー
- 高さや幅が可変だと大変そう
- ポインタを使ってコピー回数の抑制
このスクラップは2023/11/18にクローズされました