SlideShare a Scribd company logo
組合せゲームの基本
@pazzle1230
発表の内容
•後の人の発表を理解するための基礎知識
•何も思いつかず逃げた内容みたいなところがある
•時間足りなかったから適当だからはい
•基本的定義あたりから徹夜で書いてるのでやばい
•一応理解してもらえなかったら後の人の発表が厳しくなりそう
→みなさんなら説明が疎くても理解余裕だから大丈夫!
組合せゲームの基本定理
•ある二人が行うゲーム𝐺は、先手必勝もしくは後手必勝となりその
両方とはならない
•ゲーム𝐺とは、あるゲームにおける局面を指す
•この基本定理から、ゲームの局面には四つの可能性があり、その可能性に
よって次の四つの帰結類に類別する
•ある帰結類に類別される局面は、その帰結類から𝒩局面や𝒫局面などと呼ぶ
帰結類 名称 定義
𝒩 ファジー 先手番の対局者が必ず勝つ。
𝒫 零 後手番の対局者が必ず勝つ。
ℒ 正 どちらが先手番でも左が必ず勝つ。
ℛ 負 どちらが先手番でも右が必ず勝つ。
ドミナリングでのそれぞれの帰結類の例
𝒫局面𝒩局面 ℒ局面 ℛ局面
• ゲーム(の局面)𝐺を、その局面におけるそれぞれの対局者の選択肢によっ
て𝐺 = 𝒢 𝐿
𝒢 𝑅
と定義し、 𝒢 𝐿
と 𝒢 𝑅
はそれぞれ左と右の選択肢の集合
• 集合 𝒢 𝐿 と 𝒢 𝑅 の要素を、それぞれGの左選択肢、右選択肢という
• 要素の代表を𝐺 𝐿および𝐺 𝑅で表す
• 例えばドミナリングの局面は次のようになり、対称性を考慮し簡略化してそ
の下のように表記する
= , , ,
, ,=
帰結類の確定
•ゲーム𝐺の帰結類は次の表に従ってそのゲームの選択肢の帰結類から決まる
• 左はℒか𝒫の局面に遷移できれば勝ち
• ℛか𝒩にしか遷移できなければ負け
• 右は左の場合のℒとℛを交換して判定する
ある GR ∈ ℛ ∪ 𝒫 すべての G 𝑹
∈ ℒ ∪ 𝒩
ある GL
∈ ℒ ∪ 𝒫 𝒩 ℒ
すべての GL ∈ ℛ ∪ 𝒩 ℛ 𝒫
帰結類の確定
•ゲーム木の葉は 𝒢 𝐿 = 𝒢 𝑅 = ∅なので「すべての GL ∈ ℛ ∪ 𝒩」と
「すべての G 𝑹∈ ℒ ∪ 𝒩」が成り立つ
• 𝒫局面!!!
• 打つ手がないということなのでそれはそう
•ということは葉から決めていけば求められそう!
•そこで右のゲームのゲーム木を用意します
無
無 無 無 無
𝒫 𝒫𝒫
𝒫
𝒫
𝒫𝒫𝒫
𝒫 𝒫𝒫
𝒫
𝒫
𝒫𝒫𝒫ℛ ℒ
ℛ
ℛ ℒ
𝒩
𝒫 𝒫𝒫
𝒫
𝒫
𝒫𝒫𝒫ℛ ℒ
ℛ
ℛ ℒ
𝒩𝒩 𝒩 ℒ
𝒫 𝒫𝒫
𝒫
𝒫
𝒫𝒫𝒫ℛ ℒ
ℛ
ℛ ℒ
𝒩𝒩 𝒩 ℒ
𝒩
𝒫 𝒫𝒫
𝒫
𝒫
𝒫𝒫𝒫ℛ ℒ
ℛ
ℛ ℒ
𝒩𝒩 𝒩 ℒ
𝒩
先手必勝!
不偏ゲーム
•ゲームの全局面で双方が同じ選択肢をもつゲーム
• ドミナリングは置く方向が縦と横という違いがあるため非不偏ゲーム
• 組合せゲーム理論といえばNim!←不偏ゲーム
•不偏ゲームGは𝒩または𝒫に属する
• 𝐺がℒに属するとしたら、左は先手番で勝つことができるが同じ方法で右も勝てる
不偏ゲーム
定理
•有限な不偏ゲームの全局面が次の二つの性質を満たす互いに排他的な集合
AとBに分割できるならば、Aは𝒫局面、Bは𝒩局面の集合となる
• Aに属する局面のすべての選択肢はBに属する
• Bに属する局面はどれもAに属する選択肢を少なくとも1つもつ
• 𝒫局面からは𝒩局面しか選べず、𝒩局面には𝒫局面にする選択肢があることを示し
ています
• 後の人の発表で使われます
局面の直和
•ゲームによってはいくつかの独立した局面から構成されている
•ここで、直和を考える
•直和とは、二つ以上のゲームの局面を並べて得られる局面のこと
•対局者はすきな一つの直和成分に対して手を打つことが出来る
= +
局面の価値
•どちらの対局者にとって有利かをわかりやすくするため、左に有利なときは+、
右に有利な時は−で評価する
•左にとって次の局面の価値はこのようになる
+1手 -2手-1手+2手+1手 -1手
局面の比較
•任意のゲームGで、Z ∈ 𝒫を後手必勝の任意のゲームとしたときGとG + Zの帰
結類は等しくなる
• ゲームGが𝒩に属すとすると、先手番のプレイヤーは普通にプレイする
• 後手がZに手を打ったら先手もZに手を打つ(このとき先手はZにおいて後手)
• 先手はG, Zともに勝つため帰結類は変わらない
• 𝒫に属していたとしても後手において同様に行う
•GとG + Zで帰結類は変わっていない
→ Zは和で帰結類に影響してない…?
→ Zは0!!!!!
局面の比較
任意の後手必勝ゲームだけが値0を持つ
基本的定義
1. ゲーム𝐺は 𝒢 𝐿 𝒢 𝑅 と定義する
2. G + H = 𝒢 𝐿 + 𝐻, 𝐺 + ℋ 𝐿 𝒢 𝑅 + 𝐻, 𝐺 + ℋ 𝑅
3. −𝐺 = −𝒢 𝑅
−𝒢 𝐿
4. 𝐺 = 𝐻 ⟺ ∀𝑋 𝐺 + 𝑋は𝐻 + 𝑋と同じ帰結類に属する
5. 𝐺 ≥ 𝐻 ⟺ ∀𝑋 𝐻 + 𝑋において左が勝つとき、𝐺 + 𝑋において左が勝つ
𝐺 = 𝐻の定義は「𝐺は𝐻と同じ」を意味しない
𝐺と𝐻が同一のゲーム木をもつならば同型といい𝐺 ≅ 𝐻と表記する
ゲームの誕生日
•ゲーム𝐺 = 𝒢 𝐿
𝒢 𝑅
の誕生日を、𝒢 𝐿
∪ 𝒢 𝑅
に含まれるゲームの誕生日の最大
値に1を加えたものと再帰的に定義する
• 𝒢 𝐿
= 𝒢 𝑅
= øの場合0とする
• 誕生日がnより大きくないゲームをn日目までに生まれたゲームと言う
ゲームの誕生日
•ゲーム0 = }は0日目までに生まれた唯一のゲーム
•先程の再帰的定義より1日目までに生まれたゲームを列挙できる
0 = }
1 = 0 }
−1 = 0}
∗ = 0 0
基本的定義
•任意のゲームGに対してG + 0 = 𝐺が成り立つ
• 𝐺 + 0 = 𝒢 𝐿
𝒢 𝑅
+ } = 𝒢 𝐿
+ 0, 𝐺 + ø 𝒢 𝑅
+ 0, 𝐺 + ø
• ここで、0のゲームに対して手を打つことは出来ないので 𝐺 + øは存在しない
• 帰納法より𝒢 𝐿 + 0 = 𝒢 𝐿および𝒢 𝑅 + 0 = 𝒢 𝑅が成り立つので 𝒢 𝐿 𝒢 𝑅 = 𝐺とまとまる
•直和は交換法則と結合法則を満たす。証明は帰納法でできる
• 𝐺 + 𝐻 = 𝐻 + 𝐺
• 𝐺 + 𝐻 + 𝐽 = 𝐺 + (𝐻 + 𝐽)
基本的定義
•−𝐺 = −𝒢 𝑅
−𝒢 𝐿
は、対局者の役割の交換に対応する
• 集合に対する符号の反転は、その集合すべての要素の符号を反転した集合
• −𝒢 𝑅 = −𝐺 𝑅 (𝐺 𝑅 ∈ 𝒢 𝑅)となる
• ドミナリングなら左が横に置き、右が縦に置くようになる
•符号の反転を用いてゲームの差を𝐺 − 𝐻 = 𝐺 + −𝐻 と定義できる
基本的定義
•任意のゲーム𝐺に対して𝐺 − 𝐺 = 0が成り立つ
• 先手がどちらかの局面に手を打ったとき、後手はもう一方の対応する手を打つこと
ができるため、物真似戦略で後手番の勝ちとなる
•ゲーム𝐺, 𝐻および𝐽に対して、𝐺 + 𝐽 = 𝐻 + 𝐽が成り立つとき、そしてその時に
限り𝐺 = 𝐻が成り立つ
•𝐺 − 𝐻 = 0のとき、またその時に限り𝐺 = 𝐻で𝐺 − 𝐻は𝒫配置となる
𝐺 −𝐺
+
基本的定義
•二つのゲーム𝐺と𝐻比べるには、𝐺 − 𝐻の帰結類を調べれば良い
•𝐺 − 𝐻が𝒩局面であれば𝐺 ≥ 𝐻でも𝐺 ≤ 𝐻でもないので比較不能
• 𝐺||𝐻と表記する
𝐺 > 0 ⇔ 𝐺 は左の勝ち 𝐺 > 𝐻 ⇔ 𝐺 − 𝐻は左の勝ち
𝐺 = 0 ⇔ 𝐺 は後手番の勝ち 𝐺 = 𝐻 ⇔ 𝐺 − 𝐻は後手番の勝ち
𝐺 < 0 ⇔ 𝐺 は右の勝ち 𝐺 > 𝐻 ⇔ 𝐺 − 𝐻は右の勝ち
𝐺||0 ⇔ 𝐺 は先手番の勝ち 𝐺||𝐻 ⇔ 𝐺 − 𝐻は先手番の勝ち
基本的定義
問題:四角に、<. >, = のどれが入るでしょう(||はない)
0
>
>
ゲームの標準形
•まったく異なるゲーム木を持つ二つのゲームが等しくなることがある
•右の方が見た感じ小さく、このように全てのゲーム𝐺に「最小」のゲームがあり
この最小のゲームを標準形と言う
•あるゲーム𝐺と𝐻の標準形が一致するかを調べることで等しいか判定できる
•ある局面から標準形を求めるのは次の二つの方法でできる
=
劣位な選択肢
ゲーム
𝐺 = 𝐴, 𝐵, 𝐶, … 𝐻, 𝐼, 𝐽, … }
において𝐵 ≥ 𝐴ならば
𝐺′
= 𝐵, 𝐶, … 𝐻, 𝐼, 𝐽, … }
に対して𝐺 = 𝐺′になる
同様に右選択肢でも𝐼 ≥ 𝐻ならば𝐼を取り除くことが出来る
左にとって、𝐵は𝐴より優位な選択肢, 𝐴は𝐵より劣位な選択肢という
右にとっては𝐻が𝐼よりも優位、𝐼は𝐻よりも劣位になる
そして劣位な選択肢は取り除くことが出来る
打ち消し可能な選択肢
•𝐺の左選択肢𝐴は、右にとって𝐺より悪くならない、つまり𝐴 𝑅
≤ 𝐺となる
右選択肢𝐴 𝑅がある時打ち消し可能という
•右は、左が𝐴を選んだら𝐴 𝑅
を選ぶという制約を行なっても問題ない
•そのとき、左は直接𝐴 𝑅の左選択肢を選ぶと考えることが出来る
𝐺 = {𝐴, 𝐵, 𝐶, … | 𝐻, 𝐼, 𝐽, … }
𝐴 𝑅 = 𝑊, 𝑋, 𝑌, … … }
𝐺′ = 𝑊, 𝑋, 𝑌, 𝐵, 𝐶, … 𝐻, 𝐼, 𝐽, … }
このとき𝐺 = 𝐺′が成り立つ
この置き換えの処理を短絡という
ゲームに対応する数
•前にやったようにゲームには数を対応させることが出来る
•縦に2n個マスが並んだ局面は左はn手打て、右は1手も打てないためnとなる
•逆に、横に2n個だと左は1手も打てず、右はn手打てるため-nが妥当
+1 -2-1+2+1 -1
ゲームに対応する数
•左が自由にn手打てるゲームの値は、自然にnと定義できる
•右が自由にn手打てるゲームは-n
0 = }
𝑛 = 𝑛 − 1 }
•このように定義できる
•また符号の反転の定義から次も成り立つ
−𝑛 = −ø − (𝑛 − 1)}
= 1 − 𝑛}
ゲームに対応する数
•「n」がnを値とするゲームを表すことにすると「n+1」は「n」と「1」の和に等しい
𝑛 − 1 } + 0 | = 𝑛 − 1 + 1, 𝑛 − 1 + 1 }
= 𝑛, 𝑛 }
= 𝑛 }
= 𝑛 + 1
•「n-1」についても「n」と「1」の差に等しいことが𝐺 − 𝐻 = 0で証明できる
•ゲーム𝐴, 𝐵, 𝐶の値を𝑎, 𝑏, 𝑐と表すと他にも以下が成り立つことが証明できる
• 𝐴 + 𝐵 + 𝐶 ≥ 0 ⇔ 𝑎 + 𝑏 + 𝑐 ≥ 0
• 𝐴 + 𝐵 = 𝐶 ⇔ 𝑎 + 𝑏 = 𝑐
• 𝐴 ≥ 𝐵 ⇔ 𝑎 ≥ 𝑏
ゲームに対応する数
•これらでゲームと整数の対応付けがよさそうであると示せる
•以降は整数が出てきたときにその整数を値とするゲームかただの整数かを
区別しなくても良い
•例としてハッケンブッシュというゲームで考えてみる
• 地面から辺が生えているので、左は黒い辺、右は白い辺を取り除ける
• 地面と連結でなくなった辺を消す
• 操作できなくなった方の負け
ゲームに対応する数
とても簡単な局面なので値を求めてみましょう
ゲームに対応する数
とても簡単な局面なので値を求めてみましょう
3
ゲームに対応する数
とても簡単な局面なので値を求めてみましょう
3 -3
ゲームに対応する数
とても簡単な局面なので値を求めてみましょう
3 -3 -2
ゲームに対応する数
とても簡単な局面なので値を求めてみましょう
3 -3 -2 3
ゲームに対応する数
3 -3 -2 3
和は1となり1は0より大きい
ゲームに対応する数
3 -3 -2 3
和は1となり1は0より大きい → 左必勝!
おしまい
徹夜明けなので本当に厳しい
後の人の発表を楽しんでください

More Related Content

What's hot

乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
 
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
 
写像 12 相
写像 12 相写像 12 相
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化するアルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
AtCoder Inc.
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
okuraofvegetable
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
tmaehara
 
A3C解説
A3C解説A3C解説
A3C解説
harmonylab
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
 
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
Hiroharu Kato
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
二分探索をはじめからていねいに
二分探索をはじめからていねいに二分探索をはじめからていねいに
二分探索をはじめからていねいに
HCPC: 北海道大学競技プログラミングサークル
 
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
Proktmr
 
強化学習の分散アーキテクチャ変遷
強化学習の分散アーキテクチャ変遷強化学習の分散アーキテクチャ変遷
強化学習の分散アーキテクチャ変遷
Eiji Sekiya
 

What's hot (20)

乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
 
写像 12 相
写像 12 相写像 12 相
写像 12 相
 
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化するアルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
A3C解説
A3C解説A3C解説
A3C解説
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
二分探索をはじめからていねいに
二分探索をはじめからていねいに二分探索をはじめからていねいに
二分探索をはじめからていねいに
 
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
 
強化学習の分散アーキテクチャ変遷
強化学習の分散アーキテクチャ変遷強化学習の分散アーキテクチャ変遷
強化学習の分散アーキテクチャ変遷
 

組合せゲーム理論の基本

Editor's Notes

  1. 3分