ACM博弈论小结

来源:互联网 发布:深圳有名的公司 知乎 编辑:程序博客网 时间:2024/06/07 22:55

博弈论是门非常有意思又博大精深的学科,非常实用。感兴趣的同学可以去看看什么是囚徒困境智猪博弈,也可以去看看耶鲁大学的博弈论公开课,想必会受益匪浅。不过我想讲的还是和ACM相关的博弈。

有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏

,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。

(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现

了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m,即s=n%(m+1))。当s>0时肯定是先手胜。因为先手只要事先取s,之后若后手取x,则

先手取m+1-x即可,最终一定是后手胜利。这个问题反映出解决博弈论问题的一个很好的思路,那就是逆推归纳法。从一个必胜或必败的局势出发进行逆

推,最终得到一个普遍适用的结论。

(二)威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,

后取光者得胜。

我们再用逆推归纳法分析。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输

了,这种局势我们称为奇异局势

前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。

可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk= ak + k。

那么任给一个局势(a,b),怎样判断它是不是奇异局势呢?我们有如下公式:

ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,…,n 方括号表示取整函数)

(三)尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

尼姆博弈则有一个非常神奇的规律,也很好的体现了数论的魅力吧。直接说结论好了。

(Bouton's Theorem):对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,

其中^表示异或(xor)运算。P-position相当于奇异局势。

定义P-position和N-position,其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position

也就是“后手可保证必胜”或者“先手必败”,现在轮到move的人有必胜策略的局面是N-position,也就是“先手可保证必胜”。

更严谨的定义是:1.无法进行任何移动的局面(也就是terminal position)是P-position;2.可以移动到P-position的局面是N-position;

3.所有移动都导致N-position的局面是P-position。

对于某个局面(a1,a2,...,an),若a1^a2^...^an!=0,一定存在某个合法的移动,将ai改变成ai'后满足a1^a2^...^ai'^...^an=0。

不妨设a1^a2^...^an=k,则一定存在某个ai,它的二进制表示在k的最高位上是1(否则k的最高位那个1是怎么得到的)。这时ai^k<ai一定成立。

则我们可以将ai改变成ai'=ai^k,此时a1^a2^...^ai'^...^an=a1^a2^...^an^k=0。简而言之,就是你面对一个N-Position时,你一定可以将它转换为

P-Position



1 0
原创粉丝点击