上期回顾:
Shigma:组合博弈(3) - 简单正则博弈zhuanlan.zhihu.com可能说了这么多, 大家对简单正则博弈仍然没有什么直观的认识, 那么这次我们就用一个实际的游戏来试一试手. 假设桌上摆有若干排棋子, 左右玩家轮流从中取走棋子, 其中左玩家只能取走黑子, 右玩家只能取走白子. 每当一枚棋子被取走, 其右侧的棋子也会随之消失. 先无法取子者输.
上图便是一种博弈的情形. 显而易见, 这是一个简单博弈. 不仅如此, 每个人的操作都会使得剩下的可操作棋子减少, 从而可以想见”每次操作都使得局面向着不利于自己的方向发展”. 我们将在后面严格地证明这是一个正则博弈. 先让我们看一些简单的情况, 其中我们用
显而易见这就是正整数的定义, 从而一排
考虑一般情况的下的多排棋子, 由游戏规则可知此时的状态相当于各排状态相加而成. 而考虑一般情况下的一排棋子 (比如
下面就让我们来简单分析一下这个运算的性质.
定理2.11 若
-
.
-
.
-
.
-
.
证明 (1) 对
(2) 由(1)得
(3) 对
从而结论得证.
(4) 对
从而结论得证. ∎
用这个定理, 我们就可以计算开头的局面了:
于是整个局面的值则为
从这个计算过程中我们可以获得更多有关半加运算的信息. 如果从
定理2.12 令
证明 对
- 若
, 结合可知也是正则数.
- 若
, 结合可知也是正则数. ∎
推论 上述取棋子游戏是一个简单正则博弈.
证明 我们已经证明了每排棋子都是正则的, 又因为正则数对加法封闭, 故任意状态都是正则的, 从而该博弈是简单正则博弈. ∎
这个定理深刻地刻画了取棋子游戏与简单正则博弈的关系. 由于
定理2.13 有关半加运算, 我们有下面的性质:
- 若
, 则.
- 若
, 则.
下面我们尝试建立此游戏一般状态的非递归求解方法. 先让我们看一个引理.
引理2.14 对取棋子游戏的任意有限状态
证明 对
(1) 若
(2) 若
(3) 若
综上, 结论得证. ∎
下面给出一般状态的一种快速算法.
定理2.15 对于取棋子游戏中的任意一排棋子, 下列方法给出它所对应的值:
- 如果这排棋子只有
个黑子, 则它的值为.
- 如果这排棋子以
个黑子打头, 之后是白子, 则将作为结果的整数部分, 将这枚白子之后的所有棋子, 黑子为, 白子为, 并在最后加上一个作为结果小数部分. 这便是要求的结果的二进制表示.
- 如果这排棋子以白子打头, 则将黑白互换后求出结果, 其相反数便是所求的值.
证明 对棋子的个数
(1) 如果这排棋子以至少
(2) 如果这排棋子以
其中
(3) 由定理2.11(3), 这个结论是显然的. ∎
由定理 2.15 不难发现, 不同的局面给出不同的二进制数, 得到不同的结果, 因此存在上述博弈的所有有限状态到全体有限正则数的一一对应. 当然这个定理并不是只能处理有限的情况. 让我们先承认无限小数的存在, 那么利用这个定理便可以得到一些令人意外的结果来, 比如:
这似乎暗示着我们正则博弈的体系, 可以进一步向着更大的范围内扩充. 至于如何理解这些”分数”, 就得看之后的章节了.
习题 2.2
- 证明定理2.13.
2. 计算下列状态的值:
3. 构造某个只含一排棋子的状态, 使得其值为
4. 本节的最后介绍了一些值为分数的状态. 除了直接使用定理 2.15 以外, 引理 2.14 同样提供了一种通过解方程来计算的思路. 考虑
尝试通过解方程的方法求出
5. 对于一个含有多排棋子的状态, 我们有时不仅需要计算出哪位玩家有必胜策略, 还需要知道这个必胜策略究竟是什么. 对于状态
(1) 无论是否有必胜策略, 左右玩家的最优策略是使得
(2)
(3) 如果一排共有
这次的习题是我编的最用心的一次. 很多结论也是在实际使用中取得的, 对于深入了解半加运算与二进制表示应该有不错的作用. 感兴趣的同学可以来尝试一下.
下一篇:
Shigma:组合博弈(5) - 正则数的乘除法zhuanlan.zhihu.com