• 博弈论之入门小结


    经过几天的学习和刷题,总算对博弈论的基础懂了一些,学习过程中参考了以下两位的总结:

                   博弈总结        博弈论题目列表      博弈题目小结    


    下面列出一些基础博弈的结论定理(证明过程略):

    (一)巴什博弈(Bash):

               一个堆中有n个物体,两人轮流取,每次至少取1个,至多取m个,最后取完者胜

        取胜法则:令n=(m+1)*r+s  (s<=m,r为任意自然数),先取者要想取胜,则要求第一次取时必须取s个。


    (二)威佐夫博弈(Wythoff):

               两个堆中各有若干个物品,两人轮流从某一堆或从两堆中同时取同样多个物品(每次至少1个,可任意多个),最后取完者胜。

     

         定义:当甲面对局势(ak,bk)时,甲必定,则称(ak,bk)为奇异局势。(奇异局势有bk=ak+k)

         性质:

                 1.任何自然数都包含在一个且仅有一个奇异局势中;

                 2.奇异局势可通过任意操作变为非奇异局势;

                 3.非奇异局势可通过适当的方法变为奇异局势。

     

          Q:如何判断局势(a,b)是否为奇异局势?

          A:若为奇异局势,则有

                   (1) ak=floor(k*(sqrt(5.0)+1)/2); (2) bk=ak+k

                可将k=b-a代入(1)式中,得到ak,比较ak是否等于a,若等于,则为奇异局势,否则为非奇异局势。


    (三)尼姆博弈(Nimm):

               三个堆中各有若干个物品,两人轮流从某堆中取任意多个物品(每次至少1个,可任意多个),最后取完者胜。

           用(a,b,c)表示某种局势,将a,b,c 以二进制形式进行异或(^)运算,若异或结果为0,则是奇异局势,否则是非奇异局势(非奇异局势可通过适当的方法变为奇异局势)。


    (四)取火柴游戏的两种问题:

               有若干堆火柴,两人依次从中取出,每次只能从一堆中取若干根(>=1),

               问:(Ⅰ) 最后取完者胜,求必胜方法?         (Ⅱ) 最后取完者负,求必胜方法?

     

          定义1:若所有堆的火柴数异或为0,则该状态为利他态(T态)否则为利己态(S);

    对于问题(Ⅰ):

         定理1:任意S态,总能从一堆火柴中取出若干个,从而变为T态;

          定理2:任意T态,只需取任何一堆中的若干个,就能变为S态;

         取胜法则:S态必胜,T态必败。

     

         定义2:若某堆仅有1根火柴,则称之为孤单堆,否则为充裕堆;

         定义3:T态中,充裕堆的堆数为0,则称之为部分利他态(T0);

                                若充裕堆的堆数>=2,则称之为完全利他态(T2);

        定义4:S态中,充裕堆的堆数为0,且有奇数堆孤单堆,则称之为S0

                                若充裕堆仅有1堆,则称之为S1;若充裕堆的堆数>=2,则称之为S2

    对于问题(Ⅱ):

          定理3:S2态不可一次变为T0态,但S2态可一次变为T2态;

          定理4:T2态只能转为S2态/S1态。

        取胜法则:[ 必胜态:T0,S1,S2 ]  [ 必败态:T2,S0 ]

  • 相关阅读:
    关于C++名字空间
    选择组合OR继承?
    编译器为C++ 空类自动生成的成员函数
    函数返回值为引用类型
    关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
    ADO.NET 安全编码指南 来自MSDN
    ADO.NET中调用存储过程
    视图
    高效使用连接的模式
    GROUP BY, HAVING, COMPUTE, ORDER BY 语句
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5233263.html
Copyright © 2020-2023  润新知