一、博弈问题特点
- 博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。
- 博弈次数是有限的。即无论两人怎样决策,都会在有限步后决出胜负。
- 公平博弈。即两人进行决策所遵循的规则相同。
二、必胜态和必败态
- 必胜态:对方的下一步的操作一定是必败态。(即我可以走这一步操作,把必败态给了对方)
- 必败态:毫无疑问就是当前状态无论怎么操作都是必输。(也就是当前步无论怎么走到达的全是必败态,即把必胜态扔给对方)
三、博弈类型
1.巴什博奕
- 问题模型:n个物品,两个人轮流从这堆物品中取物品,规定每次至少取一个,最多取m个,最后取光者得胜。
- 结论:
- n % (m + 1) == 0 ?先手必败 :先手必胜;
- 变形:条件不变,改为最后取光的人输。
- 结论:(n - 1)% (m + 1) == 0 ?先手必败:先手必胜;
- 示例:
- (腾讯IEG一面)有100个硬币,每次可以取1~5枚硬币,两个人轮流取,要求:你先拿,最后的1个硬币也得是你拿的。问:怎么拿可以完成要求?
- 解:100 % (5 + 1) = 4,即你需要先拿4个硬币,之后不管对方拿 x 个硬币,你只需要拿(6 - x)个硬币,即可保证最后一个硬币也是你的。
2.威佐夫博奕
- 问题模型:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
- 结论:
- k = (b - a), a > b;
- s = (double )( k * ( sqrt(5.0) + 1 ) / 2 );
- s == a ?先手必败:否则必胜;
3.尼姆博弈
- 问题模型:有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
- 结论: 当石子堆数为 n 堆时,则推广为当对每堆的数目进行亦或之后值为零是必败态。
4.sg函数
- 问题模型:对于ICG游戏,我们可以将游戏中每一个可能发生的局面表示为一个点。并且若存在局面 i 和局面 j,且 j 是 i 的后继局面(即局面 i 可以转化为局面 j ),我们用一条有向边,从 i 出发到 j ,连接表示局面 i 和局面 j 的点。则整个游戏可以表示成为一个有向无环图: