博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博弈论-SG函数笔记
阅读量:7218 次
发布时间:2019-06-29

本文共 1334 字,大约阅读时间需要 4 分钟。

例一:给定n堆物品,第 i 堆物品有 Ai 个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采用最优策略,问先手能否获胜。

1.概念

1.1 局面:游戏过程中面临的状态称为局面。

1.2 先手与后手:整局游戏第一个行动的称为先手,第二个行动称为后手

1.3 最优策略:若在某一局面下存在某种行动,使得行动后对手面临必败局面,则优先采取该行动。同时,这样的局面称为必胜

2.NIM博弈

2.1 结论:NIM博弈不存在平局,只有先手必胜先手必败两种情况。

2.2 定理:NIM博弈先手必胜,当且仅当 A1 xor A2 xor A3 xor ... xor An != 0。

2.3 证明:待补充

3.公平组合游戏ICG

3.1 定义:若一个游戏满足:

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

3.2 解法:公平组合游戏(ICG)可以用构造函数的方法来求解局面。难点在于如何对每种ICG都构造一个合适的函数,有没有一个普适的函数?SG函数解决了这个问题。

4.有向图游戏

4.1 定义:给定一个有向无环图,图中有一个唯一的起点,在起点上放有一枚棋子。两名玩家交替地把这枚棋子沿有向边进行移动,每次可以移动一步,无法移动者判负。该游戏被称为有向图游戏

4.2 推广:任何一个公平组合游戏都可以转化为有向图游戏。具体方法是,把每个局面看成图中的一个节点,并且从每个局面沿着合法行动能够到达的下一个局面连有向边。

5.Mex运算

5.1 定义:设 S 表示一个非负整数合计。定义mex(S) 为求出不属于集合 S 的最小非负整数的运算,即

                                 mex( S )  = min{x|x 属于 N,x不属于S}

6.SG函数

6.1 定义:在有向图游戏中,对于每个节点x,设从x出发共有k条有向边,分别到达节点y1,y2 , ... yk ,定义SG(x) 为 x 的后继节点y1,y2,...yk的SG函数值构成的集合再执行mex运算的结果,即:

                                      SG(x) = mex( { SG(y1) , SG(y2) , ... , SG(yk) } )

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

6.2 有向图游戏的和:设G1 , G2 , ... , Gm是 m 个有向图游戏。定义有向图游戏 G ,它的行动规则是人选某个有向图游戏 Gi,并在 Gi 上行动一步。G 被称为有向图游戏 G1 , G2 , ... ,Gm 的和。

有向图游戏的和的SG函数值等于它包含的各个子游戏SG函数值的异或和,即:SG( G ) = SG(G1) xor SG(G2) xor ... xor SG(Gm)。

6.3 定理:

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

6.4 证明:

转载于:https://www.cnblogs.com/long98/p/10352159.html

你可能感兴趣的文章
博客作业四
查看>>
Scanner 输入---从键盘输入两个数进行相加
查看>>
test
查看>>
说无可说
查看>>
mysql 语句优化
查看>>
SCP 命令参数使用详解(最详细使用指南)
查看>>
windows cmd color setup
查看>>
一些问题
查看>>
ubuntu配置cudnn
查看>>
P1242 新汉诺塔 && UVA10795 A Different Task
查看>>
从零开始学习PYTHON3讲义(十一)计算器升级啦
查看>>
从零开始学习PYTHON3讲义(三)写第一个程序
查看>>
WebGis设计模式
查看>>
cocos2dx ScrollView 测试一 触摸事件优先级和自动调整
查看>>
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>
292. Nim Game(easy)
查看>>