博弈经典例子

来源:互联网 发布:java开发项目经历 编辑:程序博客网 时间:2024/05/16 10:19

巴什博奕(Bash Game):

 有两个游戏者:A和B。  有21颗石子。 两人轮流取走石子,每次可取1、2或3颗。 A先取。取走最后一颗石子的人获胜,即没有石子可取的人算输。如果剩下1、2或3颗石子,那么接下来取的人就能获胜;如果剩下4颗,那么无论接下来的人怎么取,都会出现前面这种情况,所以接下来取的人一定会输;如果剩下5、6或7颗石子,那么接下来取的人只要使得剩下4颗石子,他就能获胜。0,4,8,12,……都是下一个取石子者的必败状态。

现在有21颗石子,21除以4的余数是1,所以先走者有必胜的策略,他第一次只要取走1颗石子,以后每一次都保证剩下的石子是4的倍数就行了。什么是“平等组合游戏”?  

  两人游戏。   有一个状态集,而且通常是有限的。    规定哪些状态转移是允许的。   所有规定对于两人来说是一样的。    两人轮流走步。   有一个终止状态,到达终止状态后游戏即告终止。   游戏可以在有限步内终止。P状态和N状态就像第一个游戏一样,状态0,4,8,……是刚才走步的人的必胜状态,我们称之为P状态;而1,2,3,5,6,7,……都是下一个走步的人的必胜状态,我们称之为N状态。我们可以从终止状态出发,推出每一个状态,指出它是P状态还是N状态。

就拿第一个游戏举例:步骤一 将所有终止状态设为P状态。

    步骤二 将所有一步之内可以到达一个P状态的状态设为N状态。

    步骤三 如果一个状态,不管怎么走都只能走到N状态,那么就将这个状态设为P状态。

    步骤四 返回步骤二。如果能够走到P状态,就能获胜。因为安照上面的定义,对手不管如何选择,只可能走到N状态。接下来总存在一个P状态你可以走到。

这样一直走到终止状态,你获胜。当然这里所说得都是指对于最后走步的人获胜的游戏。我们严格的来定义P状态和N状态  所有的终止状态都是P状态;  对于任何的N状态,肯定存在一种方式可以一步转到一个P状态;  对于任何的P状态,不管怎么走步,都只能转到N状态。而对于最后走步的人失败的游戏,只要将所有终止状态改成N状态,然后开始倒推就可以了。当然,必胜状态是N状态。也就是说,如果想胜利,就希望面对N状态,转移到P状态。


现在对游戏1略微扩展一下。有一个决策集S,S中的元素是正整数。游戏的规则大致与游戏1一样,只是现在每次可以取的石子数必须是S中的元素。如果S={1,2,3},那么就是游戏1。大家分析一下,当S={1,3,4}的时候,哪些状态是P状态,哪些是N状态。我们发现P状态是{0,2,7,9,14,16,……},N状态是{1,3,4,5,6,8,10,……}。规律是如果n除以7的余数是0或2,那么状态n就是P状态,否则就是N状态。如果游戏开始时,石子总数是100,那么这是一个P状态,也就是说后走的人有必胜策略。


0 0