負け側の残り枚数を最大化する二人単貧民の解析

Fed6420561c9fe84d529ff2aa7b5c9aa?s=47 Katsuki Ohto
November 15, 2020

 負け側の残り枚数を最大化する二人単貧民の解析

大富豪を最も簡略化した二人単貧民ゲームにおいて、勝敗だけでなく負けた側の残り手札枚数のミニマックス値を検証。結果として、これを解くアルゴリズムを導出し、二人のパス回数や勝利への最短手数との間に密接な関係があることも示した。

Fed6420561c9fe84d529ff2aa7b5c9aa?s=128

Katsuki Ohto

November 15, 2020
Tweet

Transcript

  1. GPW2020 Oral 3-1 (Day 2) 負け側の残り枚数を最大化する 二人単貧民の解析 ◦ 大渡勝己 (フリーエンジニア)  

    木谷裕紀 (名古屋大学)   
  2. 大富豪と単貧民 ・大富豪 (Daifugo) …   日本各地で広く遊ばれているトランプゲーム   多種多様なローカルルール ・単貧民 (Tanhinmin) …   大富豪を「一枚出し」「特殊ルールなし」に限定

  3. 単貧民のルール 札の強さは 1以上の整数 場にカードを 出していく 3 1 5 2 4

  4. 単貧民のルール 札の強さは 1以上の整数 場にカードを 出していく 3 1 5 2 4

  5. 単貧民のルール 3 1 5 2 4 場より強い札を 出せる 出せる最弱札を 出す必要はない

  6. 単貧民のルール 場より強い札を 出せる 出せる最弱札を 出す必要はない 3 1 5 2 4

  7. 単貧民のルール いつでも パスができる パスをすると 場が流れて 相手から 3 1 5 2

    4
  8. 単貧民のルール いつでも パスができる パスをすると 場が流れて 相手から 3 1 5 2

    4 pass
  9. 単貧民のルール いつでも パスができる パスをすると 場が流れて 相手から 3 5 2

  10. 単貧民のルール いつでも パスができる パスをすると 場が流れて 相手から 3 5 2

  11. 単貧民のルール 3 5 2 WIN LOSE 札をすべて 出し切った方が 勝者

  12. 単貧民のルール 3 1 5 2 4 pass ただし パスをせずに 5

    を出せば この初期配置は 先手必勝
  13. 単貧民のルール ただし パスをせずに 5 を出せば この初期配置は 先手必勝 3 1 2

    4 5
  14. 単貧民のルール ただし パスをせずに 5 を出せば この初期配置は 先手必勝 3 1 2

    4 5 pass
  15. 単貧民のルール ただし パスをせずに 5 を出せば この初期配置は 先手必勝 3 2

  16. 単貧民のルール ただし パスをせずに 5 を出せば この初期配置は 先手必勝 3 2 WIN

    LOSE
  17. 単貧民の数理(先行研究) 手札枚数に対して線形時間で 二人単貧民の「勝敗」を判定できる ( 木谷 & 小野, 2018) Coq によって機械による証明検証済み!

    ※手札ソート済みを 仮定
  18. 単貧民の数理(先行研究) 二人単貧民の 勝敗判定 アルゴリズム 必勝戦略 8切りあり 二人単貧民の 勝敗判定アルゴ リズム 不完全情報

    二人単貧民の 必勝戦略
  19. 本研究の課題 〜ゲームと得点〜 多くのゲームでは, 勝敗だけでなく「得点」にも注目 例)囲碁の目数(陣地)   詰将棋の手数

  20. 本研究で解決する課題  「終局時の負け側の残り枚数」を   二人単貧民の「得点」とする 3 5 2 2枚残って負け → 先手 -2 pts.

    逆に後手 +2 pts.
  21. 本研究で解決する課題  「終局時の負け側の残り枚数」を   二人単貧民の「得点」とする 3 2 1枚残して勝ち → 先手 +1 pts. 逆に後手

    -1 pts.
  22. 本研究で解決する課題  「終局時の負け側の残り枚数」を   二人単貧民の「得点」とする Q.得点のミニマックス値を効率よく計算できる? Q.得点を最大化する戦略は?

  23. 本研究成果

  24. 君が手札を残り 2 枚にするまでに, 僕の手札を 5 枚残すことが可能だ. ただ君はその 2 枚を永遠に出すことかできないんだ. このゲームは僕の勝ちだよ.

    君はこの ゲームで 7 回のパスをしなければならない . 僕は 3 回のパスをして, 15 回目の僕の手番でジ・エンドさ .
  25. 君が手札を残り 2 枚にするまでに, 僕の手札を 5 枚残すことが可能だ. ただ君はその 2 枚を永遠に出すことかできないんだ. このゲームは僕の勝ちだよ.

    君はこの ゲームで 7 回のパスをしなければならない . 僕は 3 回のパスをして, 15 回目の僕の手番でジ・エンドさ .
  26. 君が手札を残り 2 枚にするまでに, 僕の手札を 5 枚残すことが可能だ. ただ君はその 2 枚を永遠に出すことかできないんだ. このゲームは僕の勝ちだよ.

    君はこの ゲームで 7 回のパスをしなければならない . 僕は 3 回のパスをして, 15 回目の僕の手番でジ・エンドさ .
  27. 成果① 二人単貧民の得点ミニマックス値を 線形時間で計算できる

  28. 勝敗の計算アルゴリズム お互いに自分の札より弱い相手の札(相手の最小札は除く)に 一対一のマッチングを引いていき、先手 > 後手 ⇄ 先手必勝 3 2 1

    1 1 2 5 4 6 0 2 マッチング数 4 負 勝 ここには 引けない ここには 引けない
  29. 得点の計算アルゴリズム 必敗側の手札を弱い順に抜いていく 3 2 1 1 1 2 5 4

    6 0 2 マッチング数 4 負 勝
  30. 得点の計算アルゴリズム 必敗側の手札を弱い順に抜いていく 3 2 1 1 2 5 4 6

    0 2 マッチング数 4 負 勝
  31. 得点の計算アルゴリズム 必敗側の手札を弱い順に抜いていく 3 2 1 2 5 4 6 0

    2 マッチング数 3 負 勝
  32. 得点の計算アルゴリズム 必敗側の手札を弱い順に抜いていく 3 1 2 5 4 6 0 2

    マッチング数 2 勝 負
  33. 得点の計算アルゴリズム 勝敗判定結果が覆らない最大枚数( 2 枚)が得点 3 2 1 2 5 4

    6 0 2 ∧ 3 負 勝 1 1
  34. 証明 定義:勝利条件を一般化した単貧民を考える 先手は残り手札 c 枚になれば勝ち 後手は残り手札 d 枚になれば勝ち これを勝利条件 (c,

    d) と呼ぶ
  35. 証明 補題:勝利条件 (c, d) での必勝プレイヤは 先手の手札の弱い方から c 枚 後手の手札の弱い方から d

    枚 を取り除いた場合の 通常の必勝プレイヤに一致
  36. 証明 補題:先手必勝で得点が s 点であることは 「勝利条件 (0, s − 1) では必勝 

    かつ  勝利条件 (0, s) では必敗」 と同値
  37. 証明 下 1 枚 + 最弱札 1 枚無視の 2 枚まで抜ける

    3 2 1 2 5 4 6 0 2 ∧ 3 負 勝 1 1
  38. 証明 下 1 枚 + 最弱札 1 枚無視の 2 枚まで抜ける

    3 2 1 2 5 4 6 0 2 ∧ 3 負 勝 1 1 ここには 引けない
  39. 証明 (1, 0) 条件必勝かつ (2, 0) 条件必敗→ 2 pts. 3

    2 1 2 5 4 6 0 2 ∧ 3 負 勝 1 1 ここには 引けない
  40. 結論 二人単貧民の得点ミニマックス値を 線形時間で計算できる

  41. 成果② 二人単貧民の任意の局面で 得点最大な手の必要十分な範囲を 線形時間で解ける

  42. 証明 補題: 得点最大化戦略はある勝利条件における    勝敗の最善の戦略と一致(先ほど登場) 補題:任意の勝利条件における勝敗最善な手の    必要十分な範囲は線形時間で解ける    (ポスター発表の方での結果)

  43. 結論 二人単貧民の任意の局面で 得点最大な手の必要十分な範囲を 線形時間で解ける

  44. 先行研究 パスと勝敗の関係 ・札を出せるのに単独最善: なし   →引き分け局面   : なし ・札を出せるのに最善  : あり ・空の場で最善     : あり

  45. 本研究 パスと得点最大化の関係 ・札を出せるのに単独最善: なし   →引き分け局面   : なし ・札を出せるのに最善  : あり ・空の場で最善     : なし

  46. 成果③ パスが空の場で勝 敗の意味で 最善となることはあ る パスが空の場で得 点を 最大化することは ない

  47. 先行研究 出せる中で最弱な札 弱い方から 2 番目の札 どちらかは勝敗の意味で最善

  48. 本研究 出せる中で最弱な札 弱い方から 2 番目の札 必勝局面なら どちらかは得点を最大化

  49. 成果④ (先行研究) ・出せる中で最弱な札 ・弱い方から 2 番目の札 どちらかは 勝敗の意味で最善 (本研究) ・出せる中で最弱な札

    ・弱い方から 2 番目の札 必勝局面なら どちらかは 得点を最大化
  50. 先行研究 手番側マッチング数 非手番側マッチング数 どちらか一方が分かれば 勝敗の意味で最善な手を選べる

  51. 本研究 手番側マッチング数 非手番側マッチング数 両方が分かれば 得点を最大化する手を選べる

  52. 成果⑤ (先行研究) ・手番側マッチング数 ・非手番側マッチング数 どちらか一方が分かれば 勝敗の意味で最善な 手を選べる (本研究) ・手番側マッチング数 ・非手番側マッチング数

    両方が分かれば 得点を最大化する 手を選べる
  53. 成果⑤ 手札の上から min(4, 2 + 1) = 3 番目の札 (と出せる最小札の強い方)は得点を最大化

    3 2 1
  54. 残り枚数以外 の議論

  55. 課題:パス数 できる限り自分はパスをしたくない できる限り相手にパスをさせたい   この時のパス数は?戦略は?

  56. 成果⑥ 自分のパス数最小化戦略 相手のパス数最大化戦略   には任意の局面で共通の手があり、 共通部分の戦略は得点最大化戦略に一致

  57. 成果⑥ 「札を出したいし,出されたくない」 「パスをさせたいし,したくない」 二人単貧民では表裏一体の関係

  58. 成果⑥ 各戦略の包含関係 自分の パス数 最小化 相手の パス数 最大化 得点最大化

  59. 成果⑥ 各戦略の包含関係 自分の パス数 最小化 相手の パス数 最大化 得点最大化 勝敗に対して最善

  60. 成果⑦ 自分のパス数のミニマックス値 相手のパス数のミニマックス値 これらを線形時間で計算可能

  61. 課題:手数 勝ち側はできるだけ短手数で勝ちたい 負け側はできるだけ手数を引き伸ばしたい 「詰め単貧民」

  62. 本研究成果⑧ 勝ち側の必要手数を線形時間で計算可能 自分 相手 手札枚数 4 5 残り枚数minimax値 0 2

    マッチング数 4 2 手数 = 4 + 5 − (0 + 2) − min(4, 2) = 5
  63. 君が手札を残り 2 枚にするまでに, 僕の手札を 5 枚残すことが可能だ. ただ君はその 2 枚を永遠に出すことかできないんだ. このゲームは僕の勝ちだよ.

    君はこの ゲームで 7 回のパスをしなければならない . 僕は 3 回のパスをして, 15 回目の僕の手番でジ・エンドさ .
  64. 本研究成果⑨ 得点最大化の性質はすべて 一般化勝利条件にも拡張可能

  65. 今後の展望

  66. 直接の発展研究 ・8切りありの単貧民  (勝敗を線形時間で解けることが証明済み)  における得点最大化 ・先に一定回数パスをしたら  負けの単貧民

  67. 未解決問題 ・複数枚出しありの大富豪に引き分けが存在する かど うか(存在しないはずだが証明難) ・大富豪の勝敗決定の計算量は P? NP? ・単貧民において NP に属する計算問題は存在する  

    か?
  68. 富豪道はまだ遠い