Upgrade to Pro — share decks privately, control downloads, hide ads and more …

将棋の実現可能局面数の推計

 将棋の実現可能局面数の推計

2024年11月15日の情報処理学会ゲームプログラミングワークショップ2024で利用したスライドを再編集したものです。
同一のスライドを https://github.com/u-tokyo-gps-tanaka-lab/shogilib でも公開しています。

Sotaro Ishii

January 22, 2025
Tweet

Other Decks in Research

Transcript

  1. 将棋の実現可能局⾯数の推計 Statistical estimation of the number of legal positions in

    Shogi ⽯井颯太郎, ⽥中哲朗 (東京⼤学) GPW2024 2024年 11⽉ 15⽇ ⽯井颯太郎, ⽥中哲朗. “将棋の実現可能局⾯数の推定.” ゲームプログラミングワークショップ2024論⽂集, pp. 150-157, 情報処理学会, 2024.
  2. 本発表の要約 課題 将棋の状態数に関して, 既知の上下界はギャップが⼤きい. → 将棋の状態数を⾼い精度で正確に推定したい. 提案⼿法 • 将棋の合法局⾯ (=実現可能局⾯)

    の判定⼿法を開発した. • 同アルゴリズムを⽤いて, 将棋の状態数を推計した. 結果 約   個という有効数字3桁の推計値を得た. 2
  3. 研究背景 状態数 (実現可能局⾯数, 状態空間複雑性) … ゲームの規模を特徴づける量の1つ • ゲームの規模それ⾃体が興味の対象になる • ゲームの解決可能性を測るための⽬安になる

    → 様々なゲームに対して, 状態数の計算が試みられてきた 〈参考 : “ゲームの解決” の種類〉 弱解決 = 初期局⾯のゲーム値も, その証明に必要な各局⾯での最善⼿も判明している 強解決 = 初期局⾯から到達可能な全局⾯に対して, ゲーム値と最善⼿が判明している 4
  4. 禁則事項を破らない駒配置を 厳密に数え上げることで, 上界・下界が計 算されている • (篠⽥, 2008) • (都 et

    al, 2022) ➜ しかし, 上下界の⼤きなギャップは未解決のまま. (到達可能性のチェックが 難しいため) 先⾏研究 … 将棋の状態数 6
  5. 1. 標本局⾯集合 の⽣成 2. 合法な標本局⾯集合 の検出 3. ⺟⽐率の区間推定 ※2. の実⾏の際に,

    局⾯の合法性判定アルゴリズムが必要 推計の流れ Python実装: https://github.com/u-tokyo-gps-tanaka-lab/shogilib C++実装: https://github.com/u-tokyo-gps-tanaka-lab/YaneuraOu 9
  6. ⼿法 > ① 標本局⾯集団の⽣成 1. 王将以外の駒種に対して「盤上/駒台に 駒 p が各何枚あるか」のパター ンを⽣成

    2. 各パターンに当てはまる駒配置を求める 3. 求めた駒配置に整数を重複なく割り当てる → 該当する駒配置 (擬合法局⾯) の総数 = ≒ 約 個 [*] [*] 厳密には 80, 880, 932, 079, 767, 835, 177, 773, 204, 009, 328, 769, 812, 438, 521, 503, 800, 714, 936, 366, 945, 233, 084, 532 個 10
  7. ⼿法 > ① 標本局⾯集団の⽣成 • 反則(⼆歩・⾏きどころのない駒・王⼿放置)も含めて⽣成 ◦ 反則局⾯は合法性チェックの際に除去 ◦ 左右対称性や反則をある程度考慮しての⽣成は,

    実装が煩雑 ▪ 本研究では実装の容易さを重視して, 王2枚の左右対称性のみを考慮 して⽣成 • を実際に⽣成するのではなく, 事前に計算したテーブルを⽤いて, ある整 数と1対1対応する局⾯を導く ◦ 変換⼿法の詳細は予稿を参照 11
  8. ⼿法 > ② 標本中の合法局⾯を⾒つける 擬合法局⾯の組から, 2段階に分けて⾮合法局⾯を取り除く A. 盤⾯を⾒ただけで分かる反則局⾯を除去 ◦ ⼆歩,

    ⾏き所のない駒, 王⼿放置 ◦ ここで左右の対称性のチェックも⾏う B. 反則ではないが, 初⼿から到達できない局⾯を除去 ◦ ここで合法性判定アルゴリズムが必要. 最も難しい ➜ 取り除かれずに残った局⾯が, 合法局⾯となる. 13
  9. ⼿法 > ② 標本中の合法局⾯を⾒つける 擬合法局⾯の組から, 2段階に分けて⾮合法局⾯を取り除く A. 盤⾯を⾒ただけで分かる反則局⾯を除去 ◦ ⼆歩,

    ⾏き所のない駒, 王⼿放置 ◦ ここで左右の対称性のチェックも⾏う B. 反則ではないが, 初⼿から到達できない局⾯を除去 ◦ ここで合法性判定アルゴリズムが必要. 最も難しい ➜ 取り除かれずに残った局⾯が, 合法局⾯となる. 14
  10. 相⼿の⽟を取れるのに, 放置されている局⾯の排除 盤⾯を⾒れば判定可能 • 通過: 5898万1117個 ◦ 50億標本の 1.18% •

    排除: 1億2823万8946個 ➜ チェックを通過した5898万 1117個から合法局⾯を探索. ※将棋では, 王⼿の放置や⾃殺⼿は反則. 17
  11. ⼿法 > ② 標本中の合法局⾯を⾒つける 擬合法局⾯の組から, 2段階に分けて⾮合法局⾯を取り除く A. 盤⾯を⾒ただけで分かる反則局⾯を除去 ◦ ⼆歩,

    ⾏き所のない駒, 王⼿放置 ◦ ここで左右の対称性のチェックも⾏う B. 反則ではないが, 初⼿から到達できない局⾯を除去 ◦ ここで合法性判定アルゴリズムが必要. 最も難しい ➜ 取り除かれずに残った局⾯が, 合法局⾯となる. 18
  12. 反則ではないが, 初⼿から到達できない局⾯を除く • 局⾯が合法である =「初期局⾯から到達可能である」 • だが, 初期局⾯から特定の局⾯に到達可能かの判定は難しい ➡ 初期局⾯と相互に到達できる「遡りやすい合法局⾯」

    を⽤意し, 「遡りやすい合法局⾯」に遡れるかを判定すれば良い. ➜ 擬合法局⾯から「遡りやすい合法局⾯」に辿れるならば,「遡りやすい合 法局⾯」を経由して初期局⾯にまで辿れる. 19
  13. ⼿法 > ③ ⺟⽐率の区間推定 • 中の合法局⾯の割合 • 標本数 , 標本中の合法局⾯の数

    , 標本⽐率 この時, ⼆項分布の正規近似による の (約99.73%) 信頼区間は が分かれば, 全体の状態数 の期待値も求まる 29
  14. 50億標本に対する3σの推定 推定時の条件 • (既出; 厳密な値は省略) • 標本数 (既出) • 実際に貪欲最良優先探索した局⾯数

    5898万1117個 = 合法性チェック (先述) を通った局⾯ • 探索した全局⾯に対して, 数万以内の探索ノード数で探索終了 ◦ KK局⾯への到達可能性を証明: 4049万1613個 ◦ KK局⾯への到達不能性を証明: 1848万9504個 30
  15. 1. 擬合法局⾯ (:= 合法か分からない局⾯) を列挙する 2. 擬合法局⾯を何個かランダムに取り出し, その中の合法局⾯の数を調べる 3. 2.の結果から全体の状態数を推計する

    関連研究 … ゲームの状態数の統計的推計 → チェスの状態数を 約 個と推計 (200万標本) Tromp (2021) による実験 ※合法局⾯の検出のため, 初期局⾯からの最良優先探索で到達可能性を判定 John Tromp. “Chesspositionranking.” https://github.com/tromp/ChessPositionRanking, 2021. 35
  16. 関連研究 … 5五将棋の状態数 • 5×5マス盤で⾏う⼩型の将棋 • 本研究と同じ⼿法によって, 状態数を 約 個と推定

    (⽯井・⽥中, 2024) Tromp (2021) との主な違い • 到達可能性の探索⽅向が逆 • 探索に “KK局⾯” を利⽤ ⽯井颯太郎, ⽥中哲朗. “5五将棋の実現可能局⾯数の推計.” 情報処理学会研究報告 ゲーム情報学 (GI), Vol. 2024-GI-53, No. 1, 2024. 36
  17. まとめ 課題 将棋の状態数に関して, 既知の上下界はギャップが⼤きい. → 将棋の状態数を⾼い精度で正確に推定したい. 提案⼿法 • 将棋の合法局⾯ (=実現可能局⾯)

    の判定⼿法を開発した. • 同アルゴリズムを⽤いて, 将棋の状態数を推計した. 結果 約   個という有効数字3桁の推計値を得た. 37