关于sg函数的一些证明

复习csp2019的时候稍微看了看博弈论,发现自己对于sg函数的理解完全不到位

有些定义甚至想都没想过

于是就口胡了一篇blog来安慰虚弱的自己

Question 1

对于一个满足拓扑性质的公平组合游戏

若定义一个函数\(f\),\(f(P状态)=0\)

假设当前状态为\(a\),它对局面的定义合法

那么\(f=sg\)

可以发现,它就是\(Muti-sg\)问题的核心,接下来我们希望证明这个问题的正确性

首先,先弄清几个定义

对于后继

  1. 指的是一步转移到的状态
  2. 后继一定不会等于当前状态

对于局面

它满足以下的性质(当然,性质的名字是我自己取的)

  1. 状态性:它本身也可以是一个状态
  2. 后继性:局面本身是状态的后继,或是后继的后继,等等
  3. 异或可行性:即\(f(a)\)是\(a\)所包含的所有局面\(f\)值的异或和
  4. 唯一改变性:后继与状态本身仅改变了一个局面,当然事实并不是如此,如果你会k异或的话,但我们不做探究
  5. 单向变化性:局面只会改变成为它的后继(如果它是一个状态)

证明

\(f=sg\) 等价于任意\(a\)满足,\(f(a)\)是\(的后继mex\{f(a的后继)\}\)

因为状态之间的关系本质上是一个\(DAG\)(即满足拓扑性),所以可以通过归纳法来证明

假设一个状态\(a\),它的所有后继(包括后继的后继)的\(f\)值都等于\(sg\)值

假设\(a\)可以分为局面\(b_1\)~\(b_n\),对应\(f_1\)~\(f_n\),它们等于\(sg_1\)~\(sg_n\)

所以\(f(a)=f_1\oplus f_2\oplus . ..\oplus f_n=sg_1\oplus sg_2\oplus . ..\oplus sg_n\)

如果\(a\)有一个后继\(c\),考虑\(f(c)=f(a)\oplus sg_i \oplus sg_x\),也就是把\(b_i\)这个局面改成了\(x\)局面

考虑\(f(c)\)可以取哪些值?

首先,因为\(sg_i \ne sg_x\),所以\(f(c) \ne f(a)\)

接下来证明\(f(c)\)可以取到\(0\)~\(f(a)-1\)的所有数

对于一个值\(val\in[0,f(a)-1]\)

设\(k\),满足\(val=f(a) \oplus k\)

因为\(val<f(a)\),考虑\(val\)的最高的和\(k\)不同的一位,这一位必然存在并且在这一位上\(k\)是\(1\),\(val\)是\(0\)

这一位同时也是\(k\)的最高位

那么必然存在一个\(sg_i\)满足它的这位是\(1\),而对应的\(sg_x\)必然会小于\(sg_i\),因为它的这位是\(0\)

所以存在满足条件的\(x\)且它是\(b_i\)的后继

所以这样的\(k\)可以通过\(sg_i \oplus sg_x\)构造得到

Question 2

翻硬币游戏

定义,有一些硬币排成一排,两人采用最优策略,每次可以翻动其中一些硬币(正变反,反变正),保证翻的硬币中最右边的硬币只能是从正翻到反,不能翻动者输

结论

每个状态的\(sg\)值等于当前所有为正面的硬币在序列中单独存在的状态的\(sg\)值的异或和

证明

设正面为\(1\),反面为\(0\)

‘...‘表示状态,...表示局面

把一个状态的\(01\)串倒过来,即‘00101‘变成\(10100\),把它看成一个二进制数,那么在游戏过程中这个数字递减

所以这个游戏是满足拓扑性质的

接下来我们设一个定义域为\(01\)串的函数\(f\)

  • \(f(00...0)=0\)
  • \(f(00...01)=sg(00...01)\)
  • \(一个串每一个f(一个01串)=\bigoplus_{每一个1} f(000..01)\) ,其中对于第\(i\)个\(1\),前面有\(i-1\)个\(0\)

假设当前状态为‘011001‘

\(f(011001)=f(01)\oplus f(001)\oplus f(000001)\)

‘011001‘有这样一个后继‘010100‘

可以说\(f(010100)=f(01)\oplus f(0001)=f(011001)\oplus f(0011)\oplus f(000001)\)

我们把\(01\),\(001\),\(000001\)看成是‘011001‘的三个特殊的局面

那么‘010100‘可以分拆成\(01\),\(001\),\(0011\)三个局面,尽管它们显得不那么特殊

这样的局面划分是合法的,因为可以看成是\(000001\)变成了\(0011\)这个局面,它满足异或和的性质

而很显然的是‘0011‘‘001100‘)确实是‘000001‘的一个后继

因为\(f\)满足这样的性质:

  1. \(状态f(P状态)=0\)
  2. 对于局面的定义合法

在此之前,我们已经证明了,对于这样的\(f\),\(f=sg\)

完结撒花★,°:.☆( ̄▽ ̄)/$:.°★



Blog来自PaperCloud,未经允许,请勿转载,TKS!

原文地址:https://www.cnblogs.com/PaperCloud/p/11768278.html

时间: 2024-10-07 23:20:52

关于sg函数的一些证明的相关文章

Nim 游戏、SG 函数、游戏的和

Nim游戏 Nim游戏定义 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于"Impartial Combinatorial Games"(以下简称ICG).满足以下条件的游戏是ICG(可能不太严谨):1.有两名选手:2.两名选手交替对游戏进行移动(move),每次一步,选手可以在(一般而言)有限的合法移动集合中任选一种进行移动:3.对于游戏的任何一种可能的局面,合法的移动集合只取决于这个局面本身,不取决于轮到哪名选手操作.以前的任何操作.骰子的点数

sg函数与博弈论

这个标题是不是看起来很厉害呢... 我们首先来看一个最简单的游戏.比如我现在有一堆石子,有p个,每次可以取走若干个(不能不取),不能取的人就输了. 现在假设有两个人要玩这个游戏,一个人先手,一个人后手,假设两个人都是足够聪明的AI,那么谁会赢? 显然p≠0时先手赢,他只要全部取完就行了... 我们先不管这个游戏有多傻逼,我们看一看这个游戏所隐含的模型. 比如我们把当前游戏局面抽象成一个点,把这个点往每下一步可以到达的新状态连一个边,这样就形成了一个有向无环图.(如果有环这个游戏就不会结束了) 现

【转】博弈问题及SG函数(真的很经典)

博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候.) Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了. Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”

【POJ2960】S-Nim SG函数 博弈 裸题模板题

转载请注明出处:http://blog.csdn.net/vmurder/article/details/42653601 其实我就是觉得原创的访问量比未授权盗版多有点不爽233... 题意: 两人轮流从若干堆石子中某堆取k个石子, k∈集合S, 就是每次取的数量被限定成某几个数的意思! 然后跟正常Nim一样谁不能操作就输. 题解: SG函数裸题. SG函数: 首先需要是有向无环图(拓扑图) 首先确定边界状态,SG值为0,然后暴力拓扑得出其它点的SG值. SG值为所有子集的SG值中未出现的最小自

(转)博弈问题与SG函数

博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候.) Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了. Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”

博弈论-sg函数

今天A了张子苏大神的sg函数的题,感觉神清气爽. 一篇对于sg函数讲的很透彻的博文:http://acm.hdu.edu.cn/forum/read.php?fid=9&tid=10617 我来整理一下: 问题1:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 可将一堆全取走,但不可不取,最后取完者为胜,求必胜的方法.  定义:若所有火柴数异或为0,则该状态被称为利他态,用字母T表示:否则, 为利己态,用S表示. 注意:这篇博文是先定义s和t,再通过它们的性质推出结论. [定理

博弈问题及SG函数

转载自:http://blog.csdn.net/scut_pein/article/details/39272489 博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候.) Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了. Nim游戏是组合游戏(Co

SG 函数 S-Nim

http://poj.org/problem?id=2960 S-Nim Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3464   Accepted: 1829 Description Arthur and his sister Caroll have been playing a game called Nim for some time now. Nim is played as follows: The star

博弈算法 之 SG 函数的运用

SG函数简介: 如果我们把游戏中的某一个局面看作一个顶点,把局面之间的转换用边来表示,那么很多游戏都可以转 化成图游戏模型. 图游戏模型 给定有向无环图G=(V,E)和一个起始点,双方轮流行动.每个人每次可以从当前点出发沿着 一条有向边走到另外一个点.谁无法走了谁就输. 一些图游戏可以通过Sprague-Grundy函数来判定先手的胜负情况(简称SG函数). SG函数 一个图G=(V,E)的SG函数g,是定义在v上的一个非负整数函数: g(x)=min{n>=0 | n≠g(y) for <x