博弈论
博弈论是二人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜的目的。
1928年,冯·诺依曼证明了博弈论的基本原理,从而宣告了博弈论的正式诞生。
前置
有限的:无论两人怎样决策,都会在有限步后决出胜负。
公平性:即两人进行决策所遵循的规则相同。
P/N状态
P-position:P代表Previous,上一次行动的人有必胜策略的局面是P-position,也就是“先手必败”
N-position:N代表Next,当前行动的人有必胜策略的局面是N-position,也就是“先手可保证必胜”
- 无法进行任何移动的局面(即terminal position)是P-position
- 可以移动到P-position的局面是N-position
- 所有移动都导致N-position的局面是P-position
P点:即必败点,在双方都在最优策略下,玩家位于此点必败
N点:即必胜点,在双方都在最优策略下,玩家位于此点必胜
胜态与必败态
- 若面临末状态者为获胜则末状态为胜态,否则末状态为必败态
- 一个局面是胜态的充要条件是该局面进行某种决策后成为必胜态
- 一个局面是必败态的充要条件是该局面无论进行哪种决策均会成为胜态
Nim游戏
最普遍的定义:有若干堆石子,每堆石子的数量都是有限的,每次每人进行一次移动。合法的移动要求:“选择一堆石子并拿走若干颗,且不能不拿”。当轮到某个人时所有的石子堆都已经被拿空了,则判为此人负,因为他此刻无法进行任何合法的移动。
为了方便阐述,以三堆物品为例
用(a, b, c)表示这三堆物品各自的数目。
(1) 显然(0, 0, 0)是P局势,即为必败态,此时先手无可取的物品,必败。
(2) 而对于(n, n, 0)的局势,只要后手拿走和先手一样多的物品,最后必会形成局势(1):(0, 0, 0)。即先手必败的P局势。故此也为P局势。
(3) 对于(n, m, 0)的局势,先手可以先拿走一些物品,使剩下的两堆物品相同即构成局势(2):(n, n, 0)。
最终该模型的规律为:(a, b, c)为必败态当且仅当\(a \ xor\ b\ xor\ c =0\)
证明
设p(a, b, c) = a xor b xor c
1)任何以p(a,b,c)=0出发的局面(a, b, c)一定有p(a,b,c′)≠0,否则可以得到c = c'
2)任何p(a,b,c)≠0的局面都可以走向p(a,b,c)=0的局面
对所有p(a,b,c)=0的局面,不管先手如何走,一定会到达p(a,b,c′)≠0的局面。而后手一定可以通过选择一些物品走向p(a′,b′,c′′)=0的局面,最终一定会走向a=b=c局势,因此对于p(a,b,c)=0的局势,一定是P局势。
例如:p(4, 10, 14)=0
4=(0100)2=0+4+0+04=(0100)2=0+4+0+0
10=(1010)2=8+0+2+010=(1010)2=8+0+2+0
14=(1110)2=8+4+2+014=(1110)2=8+4+2+0
分解成二进制后,非零项成对出现。
所以有以下情况:
- 先手拿掉14里的8和2,后手可以拿10里的8和2。最终剩下4和4,显然先手必输。
- 先手拿掉14里的4,后手可以拿4里的4。则剩下10和10,显然先手必输。
- 先手拿掉14里的5个,剩下9,即为8+1,则可以通过构造其他物品取走的数目,以满足成对出现。当前为(4,10,9)(4,10,9):
4=(0100)2=0+4+0+04=(0100)2=0+4+0+0
10=(1010)2=8+0+2+010=(1010)2=8+0+2+0
9=(1001)2=8+0+0+19=(1001)2=8+0+0+1
则,4中取走1个,为(3,10,9):
3=(0011)2=0+0+2+13=(0011)2=0+0+2+1
10=(1010)2=8+0+2+010=(1010)2=8+0+2+0
9=(1001)2=8+0+0+19=(1001)2=8+0+0+1