二分图博弈

Abstract

本文要讨论的是一类博弈问题,基于以下条件:

1.博弈者人数为两人,双方轮流进行决策。
2.博弈状态(对应点)可分为两类(状态空间可分为两个集合),对应二分图两边(X集和Y集)。任意合法的决策(对应边)使状态从一类跳转到另一类。(正是由于这个性质使得问题可以用二分图描述)
3.不可以转移至已访问的状态。(不可重复访问点)
4.无法转移者判负。

 

Body

作者水平有限,欢迎指正。 

本文要讨论的是一类博弈问题,基于以下条件:

1.博弈者人数为两人,双方轮流进行决策。
2.博弈状态(对应点)可分为两类(状态空间可分为两个集合),对应二分图两边(X集和Y集)。任意合法的决策(对应边)使状态从一类跳转到另一类。(正是由于这个性质使得问题可以用二分图描述)
3.不可以转移至已访问的状态。(不可重复访问点)
4.无法转移者判负。

这类问题相当于从二分图指定起点开始轮流移动,不可重复访问点,无法移动判负 。

 

Problem Sample1:
一个n*n的方格,A,B交替摆放棋子,A先从最角落一个方格内放置,下一个人放棋子只能在当前位置的相邻位置(上下左右)放置,放过的格子就不能再放了,如果没得放了就算输了。

把问题一般化,考虑一个一般的棋盘(可以奇形怪状,但要求联通),从某一个位置开始放置。将棋盘黑白染色(像国际象棋棋盘那样),则状态可分为两类(棋子在白格与棋子在黑格)。把每个格子和周围4个相邻格连边(边界的格可能只有2或3个相邻格),则黑格只与白格连边,白格只与黑格连边,每次转移(放置)肯定是从黑到白或从白到黑,因此图是一个二分图。无法继续转移则判负。

Problem Sample2:
在n*m的矩阵上有两个相同的棋子,有些格子是不能走的。现在两个人开始轮流对棋子操作:每次只能将其中一颗棋子向四个方向移动一格,不能移出边界,谁将两个棋子重合谁将胜利;同时移动时不能出现前面移动时出现过的局面,不能移动的就算是失败了。

还是考虑一个一般的棋盘,同样黑白染色。如果先手面临两个棋子相邻的状况那么显然他就胜利了,因此我们把这个状态视为非法,即不允许有玩家转移到该状态(否则他一定输)。因此,现在考虑所有两个棋子不相邻的可能状态。两个棋子的所有状态看作点,可分为两类(棋子在同色/异色格),能够转移之间的状态连边,则图是一个二分图。无法继续转移则判负。

 

现在问题变为从二分图指定起点开始轮流移动,不可重复访问点,无法移动判负。
不妨设起点在二分图的X集中,那么先手只能从X集移动到Y集,后手只能从Y集移动到X集。一次游戏过程对应一条路径 。若最后停留在X集且无法移动则先手负,停留在Y集则后手负。
考虑该二分图的某个最大匹配。(注意可能存在多个匹配相同的最大匹配)
若起点s∈X不属于该最大匹配。则先手所转移到的点y∈Y一定属于最大匹配(否则s-y是一个匹配,与最大匹配矛盾)。后手沿着最大匹配的边走即可,终点t(指无法从t再走一步)一定不可能在Y集中(否则,若t在Y集中,s-...-t为一增广路,与最大匹配矛盾)。因此先手必败,后手必胜。
若起点s∈X属于该最大匹配。则将s从图中删除,再求图的最大匹配。若最大匹配数不变,则s还是不属于某最大匹配,先手必败。否则该图的任意最大匹配都包含s,则先手沿着最大匹配的边走即可,根据上面的分析,先手必胜。

 

现在来考察特例Problem Sample1。假设先手从某个虚拟起点s移动到角落。若n为偶数,显然最大匹配数为n^2/2,且可以找到一最大匹配使得s不属于最大匹配,则先手必败;若n为奇数,则最大匹配数为(n^2+1)/2(包含s的图可以用1x2的黑白方块密铺),且s一定属于最大匹配,则先手必胜。

Q.E.D.


你可能感兴趣的:(游戏)