组合博弈入门:取子游戏策略与必胜必败点分析

需积分: 12 5.6k 下载量 69 浏览量 更新于2024-08-23 收藏 316KB PPT 举报
"这篇资料是关于杭电ACM竞赛课程中的‘组合博弈入门’部分,由杭州电子科技大学的刘春英教授讲解。课程主要介绍了基本的组合博弈理论,特别是简单的取子游戏,以及如何判断游戏的必败点和必胜点。" 在组合博弈入门中,我们首先了解到游戏的基本构成要素,包括两个玩家、有限的操作状态和轮流操作的规则。例如,文中举了一个使用23张扑克牌的游戏示例,玩家每次可以取1张、2张或3张牌,目标是当牌取完时成为最后取牌的一方。这种游戏类型属于组合游戏,因为它满足特定的条件,如游戏有确定的结束状态且无论怎样操作,都能在有限步后结束。 组合游戏中,关键的概念是必败点(P点)和必胜点(N点)。必败点指的是当前玩家无论怎么操作都无法赢得游戏的位置,而必胜点则是下一个玩家总能找到获胜策略的位置。必败点的特性是它只能导致必胜点,而必胜点的特点是从这些点出发至少有一种方法可以达到必败点。 为了求解一个游戏是否可赢,可以使用一种称为“深度优先搜索”或者“动态规划”的算法。该算法分为四个步骤: 1. 将所有终结状态标记为必败点,因为没有更多操作可以进行。 2. 找出所有一步操作就能到达必败点的位置,这些位置被标记为必胜点。 3. 如果从某个位置出发的所有一步操作都只能到达必胜点,那么这个位置也是必败点。 4. 如果在第三步找不到新的必败点,算法结束;否则,回到第二步继续搜索。 课内练习中提到了一个名为“Subtraction Games”的例子,其中的subtraction set为{1, 3, 4},给出了游戏状态的P点和N点序列。此外,还提到了另一个实战练习“kiki's game”,可能是一个更复杂的组合博弈问题,供学生实际操作和分析。 通过这样的学习,学生不仅可以理解组合博弈的理论,还能掌握解决这类问题的算法和技巧,对于参加ACM程序设计竞赛有着重要的实践意义。这门课程为解决这类逻辑与策略并重的问题提供了扎实的基础。