写在前面:发现是好久之前存在草稿里的,偶然间翻出来了,稍微完善了一下。
公平组合游戏ICG
我们把这样的一类问题称作ICG:
- 游戏有两个人参与,二者轮流做出决策,决策是有限的。且这两个人的决策都对自己最有利。当有一人无法做出决策时游戏结束,无法做出决策的人输
- 游戏过程中任意时刻有确定的状态
- 无论二者如何做出决策,游戏可以在有限步内结束
- 游戏中的同一个状态不可能多次抵达。且游戏不会有平局出现
- 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,不取决于轮到哪名游戏者,之前的操作等(且两人操作的对象是一样的,如围棋就不是ICG,因为两人操作的对象不同
- 游戏者拥有游戏本身,和游戏过程的所有信息,比如规则、以前自己和对手的操作
N状态和P状态
N状态:Next player(下一个走的游戏者) wins
P状态: Previous player(刚走完的游戏者) wins
NP态理论:
- All terminal positions are P-positions
- From every N-position, there is at least one move to a P-position
- From every P-position, every move is to an N-position
游戏图
游戏可以转化成有向无环图,一个状态(局面)是一个点,一个决策是一条边,这个图叫做游戏图。
游戏图的终止状态出度为0。
对于两人进行ICG的操作,可以抽象为游戏图中的一条从起点出发到达一个出度为0的点的路径。
Sprague-Grundy SG函数
定义:
S G ( u ) = m e x ( S G ( v ) ∣ v 是 u 的 后 继 状 态 ) SG(u)=mex(SG(v)|v是u的后继状态 ) SG(u)=mex(SG(v)∣v是u的后继状态)
m e x ( m i n i m a l mex(minimal mex(minimal e