博弈论进阶之Anti-SG游戏与SJ定理
时间:2022-05-08
本文章向大家介绍博弈论进阶之Anti-SG游戏与SJ定理,主要内容包括前言、博弈分析、推广、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
前言
在之前,我们初步了解了一下SG函数与SG定理。
今天我们来分析一下SG游戏的变式——Anti-SG游戏以及它所对应的SG定理
首先从最基本的Anti-Nim游戏开始
Anti-Nim游戏是这样的
有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有n堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),
拿走最后一个石子的人失败
。问谁会胜利
博弈分析
Anti-Nim游戏与Nim游戏唯一的不同就是两人的胜利条件发生了改变,不过这并不影响我们对结论的推导
对于这个游戏,先手必胜有两种情况
- 当
每
堆石子都只有一个,且游戏的SG值为
0 -
至少
一堆石子多于一个,且游戏的SG值不为
0
粗略的证明一下
游戏大概可以被分为3种情况
- 每堆只有一个石子
- 当异或值为0时,先手必胜
- 当异或值不为0时,先手必败
- 只有一堆石子数大于1,先手必胜
经过分析不难发现,先手可以对数量大于1的那堆石子下手脚,从而构造出后手必败的状态
- 存在至少两堆石子数大于1
- 当异或和为0时,先手必败
- 当异或和不为0时,先手必败
这一步的结论与Nim游戏非常相似,同时它们的证明也非常相似,大概就是从异或和为(0)的状态无论怎样都会变为异或和不为0的状态,反过来从异或和不为0的状态总有一步能到达异或和为(0)的状态
推广
按照我们学习SG函数的思路,我们是否可以把Anti-Nim游戏推广开来呢?
答案是肯定的
定义Anti-SG游戏
- Anti-SG游戏规定:决策集合为空的游戏者赢
- 其余规则与SG游戏相同
同时我们定义SJ定理
对于Anti-SG游戏,如果我们规定当局面中所有单一游戏的SG值为0时,游戏结束,则先手必胜当且仅当
- 游戏的SG函数不为0且游戏中某个单一游戏的SG函数值大于1
- 游戏的SG函数为0且没有某个单一游戏的SG函数大于1
证明与SG函数类似,
不追求完美的可以从DAG上归纳
追求完美的可以用模仿棋证明出该游戏的等价性然后推出该游戏是可数集合然后通过计算推出在模2意义下线性空间的基可以为nim(0),nim(1)最后归纳证明一个后继是若干Anti-nim游戏的游戏等价于mex(S)
- Matplotlib新手上路(中)
- 工具| sqlmap payload修改之路
- 利用java8对设计模式的重构
- 漏洞|74cms 3.6 前台SQL注入+Python脚本小练习
- Matplotlib新手上路(上)
- CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式
- CentOS 7 安装Maven
- CentOS 7 安装Java 1.8
- Ocelot 集成Butterfly 实现分布式跟踪
- 如何从零开始学一门程序语言?
- 玩得一手好注入之order by排序篇
- [Cake] 1. CI中的Cake
- Docker镜像导致centos-root根分区容量爆满
- 分布式文件系统FastDFS动态扩容
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Qt音视频开发8-ffmpeg保存裸流
- PyTorch6:nn.Linear&常用激活函数
- Python制作图片验证码?也就三行代码罢了
- 小技巧整理(一)
- 20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
- 4.深入k8s:持久卷PV、PVC及其源码分析
- 5.深入k8s:StatefulSet控制器及源码分析
- 简介机器学习中的特征工程
- 在机器学习回归问题中,你应该使用哪种评估指标?
- 6.深入k8s:守护进程DaemonSet及源码分析
- 无所不能的Embedding 1 - Word2vec模型详解&代码实现
- 【JS】676- 1.1w字 | 初中级前端 JavaScript 自测清单 - 2
- matplotlib基础绘图命令之imshow
- 聊聊dubbo-go的broadcastCluster
- 爬取博客园文章