博弈论SG函数

【博弈论】势博弈(potential game)、EPG以及最佳响应、Nash均衡和帕累托(pareto)最优的理解 文章目录前言一、Potential game二、Nash均衡和Pareto-optimal(帕累托最优)1.Nash 均衡2.Pareto最优三、Best response(最佳响应)四、Exact potential game(EPG)1.合作-傀儡博弈2.合作博弈3.傀儡博弈4.自激博弈5.双边对称交互博弈使用理解 前言 本文主要详细讲解potential game的概念以及Exact potential game 的定义和分类,以及这么博弈方法是如何在论文中引入并使用的,本文仅是对自己在该模块 阅读详情

参考:
http://www.cnblogs.com/ECJTUACM-873284962/p/6398385.html
http://www.cnblogs.com/ECJTUACM-873284962/p/6921829.html

巴什博奕

只有一堆石子,每个人可以从里面取1~m个石子,先取光者胜。

当 n = m + 1 n = m+1 n=m+1先手必败,因为先手无论选什么,都会使其个数小于m。

因此可以推出更一般的情况:
n = k ∗ ( m + 1 ) n = k*(m+1) n=k∗(m+1)先手必败,因为后手总能构造出 n = t ∗ ( m + 1 )   t &lt; k n = t*(m+1) \ t &lt; k n=t∗(m+1) t<k的情况。

总结: 只要能构造出两个可以相互转换的状态便可得出答案。(必胜态,必败态)。

尼姆博弈

有n推石子,每堆有$m_i$个石子,每次可以取在一堆中取任意个石子。

学着巴什博奕做,构造两个可以相互转换的状态。

把每堆石子的总个数用二进制的形式相加。每位都不进位。
例如:
1 2 3
001
010
011

= 022

因为每次都只能在一堆石子上操作,所以对于每一位,每次只能减1或者不变。可以观察出,当所有位都为偶数的时候(偶状态),先手必败,当有一位为奇数(奇状态)的时候先手必胜。

因为总能从一个奇状态转变为一个偶状态。反之,也能从一个偶状态转变为奇状态。 但无法保持当前状态不变。

考虑异或,当一位出现偶数个时,其贡献为0,否则为1。
所以可以将每一堆的个数都异或起来,如果异或和!=0,则先手胜,否则先手败。

有n推石子,每堆石子的个数分别为1,2,3,4,....,n,每次可以取在一堆中取任意个石子。n特别大。

因为n特别的大,所以没法直接对其异或。 但是连续正整数的异或是有规律的。
f[l,r]: [ l , r ] [l,r] [l,r]的异或和
推论1: f [ 0 , 2 k − 1 ] = 0 , 2 ≤ k f[0,2^k-1]=0, 2 \leq k f[0,2k−1]=0,2≤k
XJB证明: 二进制的每一位上都有 2 k − 1 2^{k-1} 2k−1个1。

求 f [ 0 , n ] f[0,n] f[0,n]。

  1. n为奇数
    f [ 0 , n ] = f [ 0 , 2 t − 1 ] ⊕ f [ 2 t , n ] = f [ 2 t , n ] f[0,n] = f[0,2^{t}-1] \oplus f[2^t,n] =f[2^t,n] f[0,n]=f[0,2t−1]⊕f[2t,n]=f[2t,n]。
    这个区间有 m = n − 2 t + 1 m = n-2^t+1 m=n−2t+1个数,m为偶数,所以对于二进制第t位1的个数和一定为偶数,可以不用考虑。转变为:
    f [ 2 t , n ] = f [ 0 , n − 2 t ] f[2^t,n] = f[0,n-2^t] f[2t,n]=f[0,n−2t]
    因为n为奇数, 2 t 2^t 2t一定为偶数。所以 n − 2 t n-2^t n−2t是一个奇数,所以可以不断缩小n。
    f [ 0 , n ] = f [ 0 , n − 2 t ] = f [ 0 , n − 2 t − k 1 ∗ 2 t − 1 − k 2 ∗ 2 t − 2 ⋯ − k i ∗ 2 ] ( 2 ≤ t ) 。 = f [ 0 , p ] ( p ≤ 3 ) f[0,n] = f[0,n-2^t] = f[0,n-2^t-k_1*2^{t-1}-k_2*2^{t-2} \dots -k_i*2](2 \leq t)。= f[0,p](p\leq3) f[0,n]=f[0,n−2t]=f[0,n−2t−k1​∗2t−1−k2​∗2t−2⋯−ki​∗2](2≤t)。=f[0,p](p≤3), k i k_i ki​代表这一位是否有值。
    因为t要大于等于2,所以只要单独考虑最后两位的情况。
    n&3 = 1 (01) 时, f [ 0 , n ] = f [ 0 , 1 ] = 1 f[0,n]=f[0,1] = 1 f[0,n]=f[0,1]=1 先手胜
    n&3 = 3 (11) 时, f [ 0 , n ] = f [ 0 , 3 ] = 0 f[0,n]=f[0,3] = 0 f[0,n]=f[0,3]=0 先手败

  2. n为偶数
    f [ 0 , n ] = f [ 0 , 2 t − 1 ] ⊕ f [ 2 t , n ] = f [ 2 t , n ] f[0,n] = f[0,2^t-1] \oplus f[2^t,n]=f[2^t,n] f[0,n]=f[0,2t−1]⊕f[2t,n]=f[2t,n]
    m = n − 2 t + 1 m=n-2^t+1 m=n−2t+1为奇数, f [ 2 t , n ] = f [ 0 , n − 2 t ] ⊕ 2 t f[2^t,n]=f[0,n-2^t]\oplus2^t f[2t,n]=f[0,n−2t]⊕2t。
    n − 2 t n-2^t n−2t还是偶数,依旧可以缩小n
    f [ 0 , n ] = f [ 0 , n − 2 t − k 1 ∗ 2 t − 1 − ⋯ − k i ∗ 2 ] ⊕ 2 t ⊕ k 1 ∗ 2 t − 1 ⋯ ⊕ k i ∗ 2 f[0,n] = f[0,n-2^t-k_1*2^{t-1}-\dots-k_i*2]\oplus2^t\oplus k_1*2^{t-1}\dots \oplus k_i*2 f[0,n]=f[0,n−2t−k1​∗2t−1−⋯−ki​∗2]⊕2t⊕k1​∗2t−1⋯⊕ki​∗2
    后面的常数项异或和就是n,
    n&3 只有2或者0
    n&3 = 2(10)时, f [ 0 , n ] = n + f [ 0 , 2 ] = n + 1 f[0,n]=n+f[0,2] = n+1 f[0,n]=n+f[0,2]=n+1
    n&3 = 0(00)时, f [ 0 , n ] n + f [ 0 , 0 ] = n f[0,n]n+f[0,0] = n f[0,n]n+f[0,0]=n

SG函数

定义mex{S}运算: 不在集合S中最小的非负整数。
例如: mex{0,2,3,4}=1,mex{1,2,3,4}=0。

对于任意状态x, S G ( x ) = m e x { S } SG(x) = mex\{S\} SG(x)=mex{S},S是x后继状态SG函数值的集合。
若x的后继三个SG函数值为 S G ( a ) , S G ( b ) , S G ( c ) SG(a),SG(b),SG(c) SG(a),SG(b),SG(c),那么 S G ( x ) = m e x { S G ( a ) , S G ( b ) , S G ( c ) } SG(x) = mex\{ SG(a), SG(b), SG(c) \} SG(x)=mex{SG(a),SG(b),SG(c)}。

当x时终态时,后继状态为空, S G ( x ) = 0 SG(x) = 0 SG(x)=0,即为必败态。

有1堆n个的石子,每次只能取{ 1, 3, 4 }个石子,先取完石子者胜利,
那么各个数的SG值为多少?

SG(0) = 0, f[ ] = {1,3,4}

x = 1时,可取1个,剩余0个,SG(1) = mex{ SG(0) } = 1。
x = 2时,可取1个,剩余1个,SG(2) = mex{ SG(1) } = 0。
x = 3时,可取1个或3个,剩余2个或0个,SG(3) = mex{ SG(2), SG(0) } = 1。
x = 4时,可取1,3,4,剩余3,1,0,SG(4) = mex{ SG(3), SG(1), SG(0) } = 2。

可以发现,SG函数可以从小到大递推而来。

由上述实例我们就可以得到SG函数值求解步骤,那么计算1~n的SG函数值步骤如下:

  1. 使用 数组f 将 可改变当前状态 的方式记录下来。

  2. 然后我们使用 另一个数组 将当前状态x 的后继状态标记。

  3. 最后模拟mex运算,也就是我们在标记值中 搜索 未被标记值 的最小值,将其赋值给SG(x)。

  4. 我们不断的重复 2 - 3 的步骤,就完成了 计算1~n 的函数值。

一个游戏可以分解成两个子游戏a,b,那么即后继的状态为SG[a]^SG[b]的值

博弈论 sg函数 对于一个给定的组合游戏,其sg函数G(n)是一个非负整数,用于表示游戏位置n的"输赢状态";两个游戏位置的sg函数值相同,意味着从这两个位置开始,对于任何一个玩家来说,都存在相同的赢或输的策略。 阅读详情

相关推荐

博弈论 随记(SG函数)

博弈论 随记 博弈论 1. 简单博弈     正推/反推。纸上画画直观图(ven图,条形图等),找必胜区间和必败区间。一般此类问题都有同余的必胜点。 HDU4764 /**/ 2. Nim游戏     有若干堆石子,每堆石子的数量ai都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此

Strangedbly 5877

【博弈论】博弈论入门笔记(四类基础博弈+SG函数)

『博弈论定义』 博弈论又被称为对策论(Game Theory):是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。 --------------------- 资料参考来自:http://...

Miserable_ccf的博客 4213

HDU 1848 浅谈组合游戏博弈论及SG函数MEX推导SG定理

世界真的很大 今天考试考了博弈论,发现对于博弈论除了原版的nim游戏之外就什么都不会了 对于作为其基础的SG函数及定理也是完全不了解,这样是不得行的 要通过不断地刷题,总结,得出一套博弈论的题的做题思路才好 看题先:description:任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n

BerryKanry的博客 2169

博弈-sg函数的原理和优化(hdu-1536)

sg函数:sg函数是博弈中的确定一个position性质的一个函数,全称是sprague-grundy。 性质1:对于所有的p-position,都有sg = 0;对于所有的n-position都有sg != 0; 性质2:某点a的sg函数的值由它的后继的sg函数的值来决定,设后继为b, c, d, e……则sg(a) = mex(sg(a), sg(b), sg(c), sg(d), sg(

shuimu12345678的专栏 2830

博弈论 | 详解搞定组合博弈问题的SG函数

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天这篇是算法与数据结构专题的第27篇文章,我们继续深入博弈论问题。今天我们要介绍博弈论当中非常重要的一个定理和函数,通过它我们可以解决许多看起来杂乱无章的博弈问题,使得我们可以轻松地解决一大类博弈问题。 有了SG函数和SG定理,我们不再是单纯地通过构思、分析和找规律去解决问题了。并且我们之前学过的巴什博奕、威佐夫博弈以及Nim博弈都可以使用SG函数来解决,相当于我们找到了这一大类问题的通解。下面,我们来看几个基本定理和基本概念。 基本定理

TechFlow的博客 847

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

博弈论学习笔记

巴氏博弈eg:hdu2149,2156描述:只有一堆n个石子,每次能取1到m个物品,A先手,问谁能先取完石子思路:这种问题的关键就在于能否取到关键点,比如,这里只能能取到倒数m+2个石子,留下m+1个石子,则后者就必败。结论:如果初始石子是(m+1)的倍数,则先手必败,否则先手必胜。威佐夫博弈eg:hdu2177,hdu5754描述:有两堆物品,每堆都有若干物品。每次可以从一堆中取任意物品,也可以从

lyc1635566ty的博客 508

一维光子晶体态密度计算与应用解析

态密度(DOS)是凝聚态物理和光子学中的核心概念,描述了量子态在能量空间的分布规律。基于麦克斯韦方程组的周期性介电结构分析表明,一维光子晶体通过布拉格散射形成光子带隙,其态密度曲线呈现典型的范霍夫奇点和禁带特征。这种特性使光子晶体在光学工程中具有重要价值,特别是在滤波器设计和传感器开发领域。通过转移矩阵法等数值计算手段,可以精确预测带隙位置和宽度,其中折射率对比度与周期数是关键设计参数。实际应用中,1550nm通信波段滤波器常采用Si/SiO2交替结构,而引入缺陷层则能产生高Q值缺陷模。计算优化时需注意数值

weixin_36487018的博客 193

博弈论术语

博弈论四种博弈类型 完全信息情况下的静态博弈, 完全信息情况下的动态博弈, 不完全信息静态博弈, 不完全信息动态博弈 那什均衡 一套策略,每个玩家一个,没有玩家可以通过单方面改变策略来提高收益 子博弈 混合策略 在完全信息博弈中,如果在每个给定信息下,只能选择一种特定策略,这个策略为纯策略(pure strategy)。如果在每个给定信息下只以某种概率选择不同策略,称为混合策略(mixed s...

qq_37941474的博客 4813

为什么你的SSE连接总断?深入对比EventSource与fetch-event-source的5大差异点

本文深入对比了原生EventSource与@microsoft/fetch-event-source库在SSE连接稳定性上的五大关键差异。重点剖析了后者在请求能力、连接控制、错误处理、数据解析及性能优化方面的优势,特别是其支持POST请求、自定义Header、精细化的重连策略与生命周期管理,为解决生产环境中SSE连接频繁断开的问题提供了专业方案。

weixin_28077113的博客 493

【FnOS飞牛云 | NAS存储】旧电脑不吃灰,手把手教你搭建完全属于自己的私人网盘

打造属于自己的NAS私人网盘,亲测有效,值得一试

木子Linux的博客世界 9413

2.18博弈论SG函数

总结来说,SG为0表示当前局面是一个必败态,而非0的SG值表示当前局面是一个必胜态。这是根据博弈论中SG函数的定义和理论推导得出的。自己走的是SG不为0的点,那么对手就必须从这个点开始往下继续走了,而不能重复了必败态的后继状态要么没有,即最底层,要么就是必胜态,因为不能连续走两步,必胜的后面必然是必败;同理,必胜的后面至少得有一个必败态,如果后面都是必胜态的话,那么此时为必败态就是底层叶子结点表示结尾,一定是必败态,往上紧邻的一定是必胜态。

m0_73553411的博客 2712

使用 ChatGPT/Copilot 提升前端开发效率的 N 种方式

typescript// 输入:根据这个 JavaScript 对象,生成完整的 TypeScript 类型定义id: '123',stock: 50,},// ChatGPT 生成:id: string;discount?: number;// 可选属性// 只读属性// 更进一步,生成 Zod schema 用于运行时验证:});}),});AI 代码助手真正的革命性不在于它能生成多少代码,而在于它改变了我们解决问题的方式。

fineday 1591

博弈论-SG函数和SG定理

1.SG函数和SG定理是一个十分神奇的东西,有了它,绝大部分的博弈都可以被统一到这个上面,都可以使用SG函数解决。是一种解决博弈问题的十分方便的手段。 2.首先给出一些基本的定义:mex运算,这个是作用在集合上的运算,具体的含义就是:找出不属于当前集合最小的非负整数,可能你有点晕,我们看几个例子。mex{1,2,3}=0;为什么?因为自然数从0开始,不属于这个集合最小的非负整数就是0了,再例如m...

YG爱木木 3568

Diffix3D+复现

上下载模型,将其放在一个目录中,并将目录名填在demo代码中from_pretrained的cache_dir参数里。目录结构应该是"<PATH>/nvidia/difix/…给的requirements文件中pytorch和xformers的版本没有指定,这里测试过以下版本,可以成功运行。将readme中的demo代码新建一个python脚本复制进去,然后将脚本放在src目录中运行。如果遇到网络问题无法加载huggingface上的预训练模型,可以手动从。如果出现,以下错误重新。

NeverMakeIt的博客 1085

CoppeliaSim(原V-REP)新手上路

CoppeliaSim(原V-REP)是一个机器人仿真平台,里面有很多来自别的公司的机器人模型以及完备的物理引擎,我们可以通过python,c++,matlab等语言控制里面的机器人。,您也可以在官网中Downloads里找您需要的版本,一般只需要下载EDU版本就可以了,我下载的是v4.1.0 windows EDU版本。在版本V4之前,CoppeliaSim叫V-REP,在官网可以下载到之前的V-REP版本。

qq_37051669的博客 4万+

博弈论之SG函数

下面的所有知识均属博弈论范畴。 SG⁡\operatorname{SG}SG 函数 Nim⁡\operatorname{Nim}Nim 博弈 在介绍 SG⁡\operatorname{SG}SG 函数前,我们先介绍一种经典的博弈——Nim⁡\operatorname{Nim}Nim 博弈,并从中获得一定的启发。 问题:有 nnn 堆石子,第 iii 堆石子里面有 AiA_iAi​ 枚石子,每人每次可从任意且至多一堆石子里取出任意多枚石子扔掉,可以取完,不能不取,最后无石子可取的人判负。假如甲是先手,且

Recalling_Clouds的博客 1207

有道龙虾LobsterAI vs. OpenClaw:对比与安装部署攻略

LobsterAI是"中国版OpenClaw",更注重易用性和中文场景适配;OpenClaw是技术极客的玩具,需要大量命令行操作。

lpfasd123的博客 2394

博弈论——SG函数

有向图游戏,SG函数,SG定理

m0_73693552的博客 503

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

博弈论详解 2(SG函数 和 SG定理)

博弈论详解后续,对通用的必胜策略和必胜条件进行分析,深入了解博弈论

2401_84512298的博客 2574

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

博弈论之sg函数

对于双堆的Nim游戏,设sg(n,m)表示剩余石子数分别为n和m的状态的sg值,则sg(0,0)=0,并且sg(n,0)=sg(0,n)=n。我们发现sg(1,1)=0,而sg(1,2)=sg(2,1)=1,sg(2,2)=0……继续探索可以猜测,当n=m时,sg(n,m)=0,否则sg(n,m)≠0。设sg(m)表示剩余石子数为m的状态的sg值,则显然sg(0)=0,那么sg(1)=1,sg(2)=2……归纳可证sg(n)=n。

imlsp12356的博客 1156

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

博弈论-SG函数

学习博弈论不得不提一哈SG函数 关于SG函数的一些概念就不多说了 说下我自己的理解 SG函数记录为0的是P状态 不为0记录的是N状态 也是相当于有个周期再循环 P N状态轮番出现 SG模板 #include<iostream> #include<cstring> #include<algorithm> #define maxn 1000 using nam...

Stydwn的博客 641

博弈论与SG函数

巴什博奕: 两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1−m个石子,不能拿的人为败者,问谁会胜利 结论: 设当前的石子数为\(n=k∗(m+1)\)即\(n%(m+1)==0\)时先手一定失败 HDU1846 #include<iostream> using namespace std; int main() { int C,N,M; scanf("...

agtvo48266的专栏 182

sg函数(博弈论)

sg函数

m0_50597984的博客 703
上一篇: 扩展欧几里得算法求解不定方程||中国剩余定理
下一篇: 【2019 南昌邀请赛 Match Stick Game】 火柴dp
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值