今天是第三天了,要把学习内容向题目靠拢!
俞勇的《acm国际大学生程序设计竞赛——知识与入门》对博弈论介绍了三部分:“博弈树”、“SG函数”和“Nim游戏Nim和”。
1、博弈树
博弈树是一个节点表示一个游戏状态的有向树(图),每条边代表游戏中的某一步。一个完整的博弈树包含了从初始游戏状态到所有可达状态的走法。叶子节点所对应的状态是某一终止状态(游戏结局)。
若给每一节点都打分,则每个状态都对应一个游戏值,该值代表游戏者(一人或所有人)从该局面出发以最优侧策略博弈后能获得的分数。(分数可以是一直相对于先手者来看。)
当两人博弈时,轮到己方走,己方一定选择游戏值最大的后继状态。这样的状态为Max状态。当轮到对方走时,对方会从后继状态选择最小的(让己方得分最少。分数可以为负)来走。这样的状态称为Min状态。其实根节点为Max时,所有奇数层的节点都是Max节点,偶数层的节点都是Min节点。(Max状态的子状态必为Min状态,反之亦然。)
对一盘棋来说,我们可以把一盘棋想象成具有一个入口(起始位置)和