当前位置: 首页 > news >正文

博弈论小记(1)——基础博弈论概念

在算法竞赛中,我们一般关注对于一个初始局面,是否存在先手必胜/必败,以及其策略.
我们称当前局面先手必胜为 N 态,必败则为 P 态.

几个不同的游戏术语

合作/非合作博弈

合作博弈:参与者能进行合作,或不合作会受到规则惩罚.
非合作博弈:参与者不能合作,或者合作会受到规则惩罚.

对称博弈

参与者无论身份,在做出相同操作(如果可以)的时候,获得的收益一定相同.

完美信息博弈

玩家在自己回合操作时,完全知道当前局面的一切信息.
比如象棋、围棋就是完美信息博弈;扑克牌就是不完美信息博弈,因为不知道对手手牌.

完全信息博弈

玩家完全知道一切规则和所有玩家的可执行操作.
比如下棋、打牌就是完全信息博弈;最近网络上比较热门的不要做挑战等就是不完全信息博弈.

公平组合博弈

所有人在同一状态下能执行的操作是一样的,无关身份.
比如 Nim 游戏;象棋就不是公平组合博弈,因为玩家只能动自己颜色的棋子.

正常/反常博弈

正常博弈:最后一个行动的玩家为胜者.
反常博弈:最后一个行动的玩家为败者.


下面我们一般考虑正常博弈.


博弈图

考虑把一个 局面 看成是一个点,把当前局面和它的后继局面连一条有向边,最终会形成一张图,称之为 博弈图.
我们只考虑不存在环的 公平博弈游戏.
显然,没有后继节点的一定是 P 态.
\(\newline\)
直观上不难理解,因为当前操作时,该玩家一定希望自己必胜,即希望对手操作时面临 P 态,所以有以下结论:
当前局面必胜(N 态)的充分必要条件是存在一个后继节点是必败的(P 态).
当前局面必败(P 态)的充分必要条件是其所有后继节点都是必胜的(N态).
\(\newline\)
因此,理论上我们存在 \(O(|V|+|E|)\) 时间复杂度的算法来计算出当前局面是否必胜,但是时间复杂度显然过高.


下面我们来看一个简单的博弈论模型及其内涵.

Nim 游戏

\(N\) 堆石子,每堆石子各有 \(a_1,a_2,\dots,a_n\) 个,玩家每次可以选择一堆,拿走其中的若干个石子,当一名玩家拿走了场上所有剩余石子时,该玩家获胜.

其先手必胜,当且仅当 \(\oplus a_i =0\). 我们把全体元素的异或和 \(\oplus a_i\) 称为 Nim 和,这是博弈论中很重要的一个概念.


游戏的和与等价

游戏 \(G\)\(H\) 的和,记作 \(G+H\),指的是两个互不干扰的游戏,玩家每次只能选择其中的一个游戏进行一次操作. 两个子游戏都无法移动时,游戏结束.

这个定义可以简单地扩展到多个游戏的和,比如 Nim 游戏就是 \(N\) 个单堆 Nim 游戏的和.

如果对于所有游戏 \(H\),游戏 \(G_1+H,G_2+H\) 都同处于必败或必胜状态,则称 \(G_1,G_2\) 等价,记作 \(G1\approx G_2\).

我们可以引出两个引理:

对于游戏 \(G\) 和任一必败游戏 \(A\),都有 \(G\approx G+A\).

两游戏等价当且仅当他们的和是必败游戏.

从而我们可以得到 SG 定理与 SG 函数.


SG 定理与 SG 函数

SG 定理:所有公平组合游戏都等价于单堆 Nim 游戏. 即对于任一公平组合游戏 \(G\),都存在一个自然数 \(n\),使得 \(G\approx *n\),其中 \(*n\) 表示有 \(n\) 个石子的单堆 Nim 游戏.

从而我们可以把所有的公平游戏都映射到一个自然数上,这个映射称为 SG 函数. 对应的自然数 \(n\) 称为该游戏的 SG 函数值.

根据博弈图中的推论,可以递归地定义 SG 函数值:

\(\operatorname{SG}(x) = \operatorname{mex}\{\operatorname{SG}(x'): x'\in x\}\)

其中,\(\operatorname{mex}(A):=\min\{n\in\mathbf N:n\notin A\}\) 是没有出现在集合 A 中的最小自然数。

即 SG 函数值是其所有后继节点的 SG 函数值的 mex.

如此,我们能简单地考虑一个局面是否先手必胜:

状态 \(x\) 必胜,当且仅当 \(SG(x)\neq 0\)

最后,考虑和游戏的 SG 函数值,其为所有子游戏 SG 函数的 Nim 和,即:

\(\operatorname{SG}(G_1+G_2+\dots+G_n)=\operatorname{SG}(G_1)\oplus\operatorname{SG}(G_2)\oplus\dots\oplus\operatorname{SG}(G_n)\)


小结

有了以上的所有结论,我们可以在竞赛中通过暴力打表的方式,初步研究一下局面的必胜/必败情况.

http://www.jsqmd.com/news/135381/

相关文章:

  • 2025继续教育必备9个降AI率工具测评榜单
  • Ubuntu 下配置 SFTP 服务并实现安全数据共享
  • 屹晶微 EG2106D 600V耐压、半桥MOS/IGBT驱动芯片技术解析
  • 【工具】OpenScreen 完整使用教程
  • 2025最新!专科生毕业论文必备9大AI论文平台测评
  • 别再手动熬文献综述!7款AI工具一键生成+真实文献交叉引用
  • 懒加载示例
  • AI辅助论文写作平台排名:9款工具实测,开题到降重全覆盖
  • 2025银川最新家电维修家政服务公司 TOP5 评测!兴庆、金凤、西夏、贺兰县等地区家庭生活服务团队权威榜单发布,专业高效解决家务难题 - 全局中转站
  • 2025银川最新家政保洁中心top5推荐!兴庆区、金凤区、西夏区、贺兰县等地区一站式家庭服务企业权威榜单发布,专业高效赋能品质生活 - 全局中转站
  • PySpark和PyFlink如何写Hive表?
  • 2025 MBA必看!9个AI论文软件测评:开题报告与文献综述全攻略
  • AI论文写作工具测评:9款实测推荐,开题报告与降重功能全面解析
  • P9482 [NOI2023] 字符串
  • 2025年气动单轨吊供应商市场占有率排名发布,20吨气动葫芦/手拉式气动葫芦/矿山气动葫芦/气动葫芦气动单轨吊供货厂家怎么选择 - 品牌推荐师
  • 大模型与传统AI的代际差异及大小协同的未来
  • Prodigy-HF 工具发布:NER训练与数据上传功能
  • 实用指南:【保姆级教程】apache-tomcat的安装配置教程
  • 《沉思》-摘
  • 从识别到深耕:鲸鸿动能在鸿蒙生态下的游戏用户价值增长实践
  • PySpark和PyFlink如何读取Hive中的表?
  • 项目复审
  • 【计算机毕业设计案例】基于Java springboot滑雪场售票系统基于springboot的滑雪售票系统设计与实现(程序+文档+讲解+定制)
  • 英语_阅读_curiosity is the key to discovery_待读
  • RS232 串口透传 IP 组网配置
  • 事后分析
  • [CSP-S 2025] 员工招聘
  • Azure DevOps Server 正式版本发布
  • Java 类加载
  • 11574_springboot学生宿舍信息的系统(11574)