zoukankan      html  css  js  c++  java
  • 博弈论小结

    前言

    本人其实博弈论也学得不咋的,不少蜻蜓点水,并没有深入地研究,而且知识可以说是大部分抄的书上,但是也特作此文以便自己复习和方便各位神犇。

    异或

    概念

    符号:(wedge,xor)

    运算法则:对应二进制位下相异为1,相同为0.

    异或和:一堆数的异或起来的值,如({x_1,x_2,..,x_n})的异或和为(x_1wedge x_2wedge ...wedge x_n=wedge_{i=1}^n x_i)

    异或和图的性质

    1. 你可以凭空到达任意一个位置
    2. 环等同于异或空间
    3. 链可以由环更改路径

    性质

    1. 交换律 (awedge b=bwedge a)
    2. 结合律 (awedge bwedge c=awedge (bwedge c))
    3. (a=bLongleftrightarrow awedge c=bwedge c)
      1.推论: 不同的数异或同一个数得到结果不同
    4. 不进位的加法
    5. 异或可以与加法减法对应

    线性基

    性质:

    1. 线性基由原序列的一些数构成
    2. 异或和为0即线性基无法加入该数(应用:异或和为0的判断)
    3. 异或空间为2的线性基个数的次方,多次异或没有意义
    4. 有n个 不同的 数,设线性基个数k,每个数重复(2^{n-k})次。

    证明:

    对于k个基,剩下的n-k个数每个数与基所产生的数进行异或,必然值各不相同,所以必然每个值重复一次,于是总的来说重复(2^{n-k})次。


    Nim博弈

    基础概念

    局面

    游戏过程中面临的状态。

    先手

    游戏中第一个行动者。

    后手

    游戏中第二个行动者。

    必败

    在某一局面无论采取什么行动,都会输掉游戏,则称该局面必败。

    必胜

    在某一局面能采取某种行动,使对手面临必败局面,则称该局面必胜。

    Nim博弈

    有n堆棋子,第i堆棋子有(a_i)颗棋子,对战双方轮流从任意一堆棋子取出任意颗棋子,不能取棋子或不取棋子者失败,问先手是否必胜。

    • 注:Nim博弈不存在平局,双方都将采取最优策略,只有先手必胜和必败两种情况。

    Nim定理

    Nim博弈中,先手必胜当且仅当(a_1wedge a_2wedge...wedge a_n=wedge_{i=1}^na_i eq 0)


    证明:

    博弈论中经常使用数学归纳法证明结论。

    考虑边界,没有任何棋子,显然异或和为0。

    对于异或和不为0的局面,设(x=wedge_{i=1}^na_i),对于它的最高位考虑,设其为第k位,显然存在一个数(a_i)满足其第k位上有1,而令(a_iwedge=x),显然接下来的局面异或和为0,而必然(a_i)也变小了,因为它损失了较高的一位上的1,于是因为异或可以和减法对应,我们可以减与异或对应,因此,任何一个异或和不为0的局面都可以将其变为0的局面。

    对于异或和为0的局面,显然无论如何选取,必然下一个局面异或和不为0,因为减可以相当与异或一个数,0异或一个数就是该数。

    总上所诉,当先手在局面异或和不为0的情况下,不妨把异或和不为0的局面记做Q,异或和为0记做q,于是不难得知,接下来的局面发展先手可以做到是(QqQqQq...q),所以后手必然面临必败局面。

    同理,当先手异或和为0,接下来的局势发展,后手可以做到(qQqQ...Q),此时先手必然面临必败局面。

    于是得证。


    公平组合游戏(ICG)

    ICG定义

    若一个游戏满足

    1. 由两名玩家交替行动。
    2. 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关。
    3. 不能行动的玩家判负。

    则称该游戏为公平组合游戏。

    解决办法

    有向图游戏

    定义

    给定一个有向无环图(DAG)(具有可递推性),图中有唯一一个起点,在起点上放有一枚棋子,两名玩家交替地把这枚棋子沿有向边移动,每次可以移动一步,无法移动者判负,该游戏被称为有向图游戏

    性质

    任何一个公平组合游戏,都可以被看作有向图游戏。

    Mex运算

    定义

    设S为非负整数集合,定义Mex(S)为求出不属于集合S的最小非负整数的运算,即

    [Mex(S)=min_{xin N,x otin S}x ]

    性质

    1. 暴力求时间复杂度(O(n))
    2. 如果(Mex(S)=x),则集合中必然有(1-x-1)的数。

    SG函数

    定义

    在有向图游戏中,对于每个节点x,设从x出发有k条有向边,分别到达节点(y_1,y_2,...,y_k),定义(SG(x))为x的后继节点的SG函数值构成的集合进行Mex运算后的结果,即

    [SG(x)=Mex{SG(y_1),SG(y_2),...,SG(y_k)} ]

    特别地,整个有向图游戏G的SG函数值被定义为有向图游戏起点S的SG函数值,即(SG(G)=SG(S))

    另外对于失败局面的SG函数值定义为0.

    有向图游戏的和

    (G_1,G=2,...,G_m)是m个有向图游戏,定义有向图游戏G,它的行动规则是任选某个有向图(G_i),并在(G_i)上行动一步,则G被称为有向图游戏的和。

    有向图游戏和的SG函数值被定义为各个子游戏的SG函数值的异或和,即

    [SG(G)=wedge_{i=1}^nSG(G_i) ]

    SG定理

    定理1

    1. 有向图游戏的某个局面必胜,当且仅当该局面对应的节点的SG函数值大于0.
    2. 有向图游戏的某个局面必败,当且仅当该局面对应的节点的SG函数值等于0.

    证明:

    对于边界考虑,显然末局面即失败的局面,SG函数值为0。

    而对于SG函数值不为0的局面,显然它的后继节点存在SG函数值为0的局面,于是对于任意一个SG函数值不为0的局面,都可以到达一个SG函数值为0的局面。

    而对于SG函数值为0的局面,显然它的后继节点不可能存在SG函数值为0的局面。于是对于任意一个SG函数值为0的局面,只能到达SG函数值不为0的局面。

    总上有,当该局面SG函数值不为0,记不为0局面为(Q),为0局面(Q),接下来的局面先手一定可以这样发展(QqQqQq...q),使后手面临必败局面。

    当该局面的SG函数值为0,后手必然可以使局面按(qQqQ...q)发展,而先手必然面临必败局面。

    所以得证。


    定理2

    多个有向图游戏组成的游戏({G_i,n})必胜,当且仅当有向图游戏的和的SG函数值不为0.


    证明:

    对于末局面,显然有向图游戏的和SG函数值为0。

    对于有向图游戏和SG函数值不为0的局面,记(x=wedge_{i=1}^nSG(G_i)),记最高位为第k位,必然有一个(SG(G_i))满足其第k位不为0,而因为Mex操作的性质和异或与减法的对应,令(SG(G_i)wedge=x),我们必然可以将其变为小于(SG(G_i)),且接下来的局面有向图游戏的异或和为0.

    对于有向图游戏和SG函数值为0的局面,不论怎样操作,必然下一个局面不为0.

    于是,对于有向图游戏和SG函数值不为0的局面,记不为0(Q),为0(q),先手必然可以按照(QqQq...q)发展,使后手必败,同理,为0的局面,后手也可以按照(qQ...Q)发展,于是先手必败。

    故得证。


    理解

    Nim游戏

    其实Nim游戏就是特殊的公平组合游戏(ICG),自然也可以利用公平组合游戏证明,它是多个有向图游戏组成的游戏,末状态一定每个子游戏是全部面临必败局面。


    证明:

    在Nim游戏中,对于一个子图而言,即有多少枚棋子,不妨有i枚棋子记做(i),于是它的SG函数值记做(SG(i))

    对于初始状态,即必败局面,必然(SG(0)=0),设(SG(0)=0,SG(1)=1,...,SG(i-1)=i-1),设(SG(i))它所算出用的集合为({SG(0),SG(1),...,SG(i-1)}),即({0,1,2,...,i-1}),不难得知结果为i,于是根据数学归纳法(SG(i)=i)

    根据ICG定理2,公平组合游戏的和为(wedge_{i=1}^n SG(a_i)=wedge_{i=1}^n a_i)),故得证。


    套路小结

    异或

    定位:博弈论中结论常联系的地方

    思考方向:

    1. 最高位

    博弈论证明

    1. 数学归纳法
    2. 反证法

    问题转化办法

    1. 阶梯博弈,捆绑法

    习题

    新新Nim游戏

    有k组棋子,每组棋子有若干堆棋子,给出(a[i][j]),表示第i组棋子第j堆棋子的棋子个数,两名玩家轮流行动,每次操作可以可以选择一组中的一堆棋子拿走任意多颗棋子,不能行动的玩家失败,询问先手是否必胜,(sum_{i=1}^k|a[i]|leq 10^8)

    勇士

    给出一个(n imes m)的网格图,有些位置存在障碍物,显然坐标已经给出,有一个棋子放在位置((1,1)),两名玩家轮流操作,每次可以选择棋子向下移动或者向右移动,不能移动的玩家判负,询问先手是否必胜,(n imes mleq 10^8)

    尾声

    笔者本来以为自己能很轻松学会博弈论,结果到现在还是没有真正学会,可能会因此面临(AFO),但是所留下来的学习资源,希望能让读者走的更远。

  • 相关阅读:
    cef 依赖的文件 libcef
    ubuntu 添加新分区,并挂载/home
    x509 证书链验证
    chromium调试
    Chromium智能指针使用指南
    具有扩展主密钥时SSL/TLS的主密钥计算
    OpenSSL解惑2:如何强制选择协议的版本
    基于Gmssl的SM2加解密算法Demo
    漫谈TLS nonce
    VS2015动态库静态加载时指定动态库位置的方法
  • 原文地址:https://www.cnblogs.com/a1b3c7d9/p/10852304.html
Copyright © 2011-2022 走看看