博弈论基础

具有胜败游戏的基础
通过分析各个状态的胜败条件,判断必胜态和必败态,是具有胜败游戏的基础。

首先判断最终状态的胜败(比如两人轮流取硬币,没有硬币可取的一方失败,则硬币数\(x==0\)为必败态)
如果某个状态的后继状态中存在必败态,则这个状态为必胜态
如果某个状态的后继状态全部为必胜态,则这个状态为必败态

通常使用搜索或者动态规划遍历所有状态,判断每一个状态是必胜态还是必败态
对称策略
对称策略是一种常见的博弈策略,是指在游戏中做出对称状态后再完全模仿对手的策略
如果轮到自己时可以将状态分成对称的两部分,那么不管对手怎么选取,自己只要采取同样的方法在对称的部分中选取,就可以重新回到两个相同部分的状态。这样可以使得自己取走最后一件物品,对手在下一回合因为没有物品可以选择而失败
相关题目
hdu1525 Euclid's Game
给出两个自然数\(a,b\),两人轮流进行游戏,每次将大的数减去小的数的倍数,不能减到小于零,首先得到0的人获胜,判断谁会赢得游戏。

\(b>a\),如果\(a|b\),则为必胜态,否则分成两种情况:
\(b-a<a\)
\(b-a>a\)
对于第一种情况,由于此时进行游戏的人只能选择\(b-a\)的操作,也就是后继状态只有一种,所以如果\((b-a,a)\)是必败态,则\((a,b)\)是必胜态,如果\((b-a,a)\)是必胜态,则\((a,b)\)是必败态。
对于第二种情况,由于\(b-a>a\),此时进行游戏的人可以选择的操作有\(b-a,b-2a,b-3a,\cdots,b-ka(k\leq b/a)\)。设\(b-xa<a(x\geq 2)\),则如果\((b-xa,a)\)为必败态,则\((a,b)\)为必胜态。但是如果\((b-xa,a)\)为必胜态,这时的最优策略是转移到\((b-(x-1)a,a)\)的状态,因为\((b-(x-1)a,a)\)的后继状态只有\((b-xa,a)\),此时\((b-(x-1)a,a)\)为必败态,所以\((a,b)\)为必胜态。
所以第二种情况一定是必胜态。
所以从初始状态开始模拟,最先达到情况\(a|b\)或者情况\(b-a>a\)的一方赢得游戏。
hdu3951 Coin Game
\(n\)枚硬币围成一个环,两人轮流取硬币,每一次可以取\([1,k]\)范围内的连续的硬币,没有硬币可取的一方失败,两人都采取最优策略,判断谁会赢得游戏。

先手第一次取过硬币之后,如果没有全部取完,则所有硬币会变成一条链,后手可以在链的中间根据奇偶性的情况取1枚或者2枚硬币,使得整条链分成完全相同的两部分,然后后手可以采取对称策略赢得比赛。
所以当\(n\leq k\)时,先手第一次可以取完所有硬币,先手赢得游戏,其他情况除了\(k==1\)之外,全部是后手采取对称策略赢得比赛,\(k==1\)的情况直接根据\(n\)的奇偶性判断。

posted @ 2020-07-29 16:45  fxq1304  阅读(343)  评论(0编辑  收藏  举报