杭州电子科技大学刘春英教授讲解组合博弈入门与取子游戏算法

需积分: 9 3 下载量 85 浏览量 更新于2024-07-19 收藏 386KB PPT 举报
本资源是杭州电子科技大学刘春英教授关于ACM课程的第十一讲,主题是“组合博弈入门”,主要涵盖简单取子游戏和Nim游戏的概念与策略。首先,通过“导引游戏”引入,这是一种两人对战,用23张扑克牌进行的游戏,玩家轮流取1-3张牌,直到牌被取完,最后取牌者为胜。这种游戏属于组合博弈,特点是操作在一个有限集合(如规定大小的棋盘)中进行,且遵循特定规则。 组合游戏的核心概念包括必败点(P点)和必胜点(N点)。必败点是当前玩家无法取胜的状态,而必胜点则是后续玩家可以确保胜利的位置。游戏的算法实现涉及标记这些点,从终结点开始,逐步确定哪些是必败点,哪些是一步操作后能到达必败点的必胜点。 举例来说,“SubtractionGames”的练习让学员理解如何在特定的数字集合(如S={1,3,4})中确定游戏的胜负情况,如Pos序列中的PNPNNNNPN...模式。实战练习包括“kiki'sgame”,这可能是一个更复杂的真实案例,用于训练学员的实际操作技巧。 第二部分则深入探讨了Nim游戏,这是经典的组合博弈之一,通常涉及三个堆的棋子,玩家轮流移走任意数量的棋子,目标是使对手无法进行合法操作。Nim游戏的关键在于 Sprague-Grundy 函数或 Grundy 数,它可以帮助分析游戏的胜负策略。 通过这些内容,学生可以学习如何分析和设计策略,解决这类博弈问题,这对于提高ACM竞赛中的编程技能尤其有帮助。这节课不仅锻炼了逻辑思维和问题解决能力,还为理解更高级的博弈论理论打下基础。