首页 > 其他分享 >博弈论

博弈论

时间:2024-12-20 11:22:19浏览次数:4  
标签:石子 游戏 博弈论 Game position oplus sg

感觉这东西像我的人生一样莫名其妙。

在 oi 生涯结束前再留一些遗产吧。

upd:完了,突然感觉还挺有意思的。


0.1. 公平组合游戏

公平组合游戏(ICG),是满足以下特征的一类问题:

  • 双人,回合制;
  • 游戏规则对于两个玩家是公平的;
  • 游戏的状态有限,能走的步数也有限;
  • 两人轮流行动,当一个玩家不能行动时,游戏结束,故无平局;
  • 游戏的局势不能区分玩家身份,即双方可采取的行动以及胜利目标都相同。
  • 无随机因素

该问题有一个特征:给定初始局势,在指定先手玩家的情况下,如果双方都采取最优策略行动,那么获胜者就已经确定了。也即,ICG 问题存在必胜策略。

0.1.1. Bash Game

\(n\) 个石子,每次取走 \([1,m]\) 个,无法操作者输。

结论:\(n\) 是 \(m+1\) 的倍数时,先手必败,否则先手必胜。

0.1.2. Nim Game

\(n\) 堆石子,数量分别为 \(\{a_1,\cdots,a_n\}\),每次选一个石子堆 \(i\),取走 \([1,a_i]\) 个石子,不能不取,无法操作者输。

结论:若 \(\bigoplus\limits_{i=1}^n a_i=0\),先手必败,否则先手必胜。

0.1.3. N-position、P-position 与图游戏

图游戏定义为有向无环图 \(G(X,F)\),\(X\) 是点的非空集合,\(F\) 是 \(X\) 上的函数,对于 \(\forall x\in X,F(x)\subset X\);对于给定的 \(x\in X\),\(F(x)\) 表示玩家从 \(x\) 出发能移动到的位置集合,若 \(F(x)\) 为空,则说明无法进行移动,此时 \(x\) 为终点位置。

定义 P-position 表示马上走下一步的先手必败的位置,N-position 则表示必胜位置。

更严谨的定义为,对于 \(x\in X\):

  • 若 \(x\) 为无法移动的点(terminal-position),此时它是 P-position;
  • 若 \(\exists y\in F(x)\) 满足 \(y\) 为 P-position,此时 \(x\) 为 N-position;
  • 若 \(\forall y \in F(x)\) 均有 \(y\) 为 N-position,此时 \(x\) 为 P-position。

容易发现所有的 ICG 问题都可以看作一种图游戏,其中点表示当前的局面状态,函数的对应关系则为连边指向后继节点,比如 Bash Game 中每个点为一个数字,表示还剩下几个石子,\(5 \rightarrow 3\) 则表示可以通过一次行动使得石子数从 \(5\) 变为 \(3\)。

于是可以简单用 N-position、P-position 这套理论证明一下上述游戏,具体来说,如果一组对于 N/P-position 的构造说明可以满足如上三条定义,那就可以证明其正确性。

用 Nim Game 举例,证明对于任意一个状态 \(\{a_1,\cdots,a_n\}\),若 \(\bigoplus\limits_{i=1}^n a_i=0\),则在该点先手必败,为 P-position,否则先手必胜,为 N-position,则只需要证明:

  • 没有石子时的终态点是 P-position;
    Proof. 显然当 \(\forall a_i=0\),有 \(\bigoplus\limits_{i=1}^n a_i=0\)。
  • 一定能从 N-position 到达一个 P-position;
    给出构造:记 \(s=\bigoplus\limits_{i=1}^n a_i\),有 \(s\not = 0\),则对于 \(s\) 最高位 \(1\),一定至少有一个 \(a_k\) 中含有这一位,则将任意一个满足条件的 \(a_k\gets s\oplus a_k\),得到的状态必然为可达的 P-position。
    Proof. \(s\oplus a_k\) 一定不含有最高位 \(1\),故 \(s\oplus a_k<a_k\),所得状态为可达后继;根据异或的性质,容易得到 \(s\oplus a_k\oplus (s\oplus a_k)=0\),所以是 P-position。
  • P-position 只能到达 N-position。
    Proof. 任何一堆石子的数量严格减少都会使得 \(\bigoplus\limits_{i=1}^n a_i\) 不再为 \(0\)。

于是我们就证明了 Nim Game 的结论。

上述证明的每一步都浑然天成,在感受算法精妙的同时我不禁在想,是否还会有不同的构造方式也符合这个定义,以及为什么只需要证明一个构造满足了三条定义就能说明它一定是没错的,我总在心里暗暗觉得限制还不够紧。

对于第一个问题,我可以给出肯定的答案,确实有可能存在不同的构造方式,然而由于 N/P-position 是固定的,所以不同的构造方式虽然给出的描述不同,但得到的点一定是相同的,于是可以称构造方式只是为了贴合 N/P-position 的定义,故它们从结果上来看相同,因此广义上是没有任何区别的。

而对于第二个问题,则可以归纳证明,若 \(x\) 的后继节点均已确定状态,切均符合构造的描述,这样推出的 \(x\) 状态也一定符合构造的描述,而对于采取最优策略的人来说,也一定会按照该策略行动。

0.2. Sprague-Grundy 函数

在一个有向无环图 \(G(X,F)\) 中,定义节点 \(x\) 的 Sprague-Grundy 函数 \(sg(x)\) 为 \(\operatorname{mex}_{y\in F(x)}\{ sg(y) \}\),其中 \(\operatorname{mex} S=\min\limits_{i\ge 0\wedge i\notin S} \{i \}\),游戏的 \(sg\) 值即为起始节点 \(s\) 的 SG 函数 \(sg(s)\)。

根据该函数的定义,可以推出三个性质:

  • \(x\) 无后继节点时,\(sg(x)=0\),此时 \(x\) 为 P-position;
  • \(\exists y\in F(x),sg(y)=0\) 时,\(sg(x)>0\),此时 \(x\) 为 N-position;
  • \(\forall y \in F(x),sg(y)>0\) 时,\(sg(x)=0\),此时 \(x\) 为 P-position。

这和 N/P-position 的定义是一致的。

0.3. Sprague-Grundy 定理

莫名其妙的定理啊,很想证明一下。

回到公平组合游戏,发现除了公平,还没有详细谈到组合

事实上,可以将 Nim Game 看作多个子游戏的组合,每个子游戏只有一堆石子,即 \(m=n\) 的 Bash Game。

故有若干个有向无环图,每次每个人选择一张图移动一下棋子,当所有图都不能移动就输了。

这与 0.1.3. 中”只建出一个图,每个点上是 \(n\) 维状态“并不相同,但有意思的是,究其本质,可以得出相同的结论。

0.3.1. 内容及证明

对于任意一个公平组合游戏,有:

  • 该游戏可拆分成若干个公平的子游戏,其 \(sg\) 值等于每个子游戏的 \(sg\) 值的按位异或和,换个说法是,设 \(x_1,x_2,\cdots x_n\) 为 ICG 的子游戏状态,则有 \(sg(x_1+x_2+\cdots + x_n)=sg(x_1)\oplus sg(x_2) \oplus \cdots \oplus sg(x_n)\);
  • \(sg(x)=0\) 时,该状态先手必败,否则 \(sg(x)>0\),则先手必胜。

第二条在前文定义处已有直接的证明,接下来证明一下第一条。

Proof. 只需要证明若 \(a,b\) 为两个子游戏,则对于组合起来的游戏 \(a+b\),有 \(sg(a+b)=sg(a)\oplus sg(b)\),通过两维扩展至 \(n\) 维。


参考资料

一只绝帆 若干 SG 函数笔记

王赟 Sprague-Grundy 定理是怎么想出来的

标签:石子,游戏,博弈论,Game,position,oplus,sg
From: https://www.cnblogs.com/syta/p/18618949

相关文章

  • 【算法】博弈论(C/C++)
    个人主页:摆烂小白敲代码创作领域:算法、C/C++持续更新算法领域的文章,让博主在您的算法之路上祝您一臂之力欢迎各位大佬莅临我的博客,您的关注、点赞、收藏、评论是我持续创作最大的动力目录博弈论:1.Grundy数与Nim博弈Nim博弈规则:Grundy数的计算:例题:2.极大极小算法......
  • 博弈论二次回顾
    主要是一些模型。ICG的定义双方轮流移动不能行动者判负所能进行的操作仅与当前局面有关,与操作者无关一般而言发现ICG就可以考虑SG了。SG分清楚后继状态和子游戏。子游戏的和是\(\oplus\),后继状态的和是\(mex\)。后继状态指进行一次操作所能够达到的状态。子......
  • 博弈论
    ICG博弈所讨论的博弈问题满足以下条件:  玩家只有两个人,轮流做出决策。  游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输。  对任何一种局面,胜负只决定于局面本身,而与轮到哪位选手无关。经典的三种玩法一、巴什博奕(BashGame)二、尼姆......
  • 博弈论 Nim游戏
        本文参考链接:https://www.geeksforgeeks.org/combinatorial-game-theory-set-2-game-nim/给定许多堆,其中每堆包含一些数量的石头。在每一回合中,玩家只能选择一堆并从该堆中移除任意数量的石子(至少一个)。无法移动的玩家被视为输掉游戏(即,拿走最后一颗石头的玩家获胜   ......
  • 博弈论简述 第二章 完全信息动态博弈 自用整理中
    持续更新中博弈论简述系列主要参考本校授课老师的PPT,相当于把老师的PPT简单过了一遍,加上自己的理解,但是个人觉得PPT内容系统结构不太行,后面有时间再慢慢调整。没有什么技术性的内容,主要是简述。后面准备开一个系列,认真研读一下一些技术性的内容。一、完美信息动态博弈1、......
  • 博弈论简述 第一章 完全信息静态博弈 自用整理中
    持续更新中博弈论简述系列主要参考本校授课老师的PPT,相当于把老师的PPT简单过了一遍,加上自己的理解,但是个人觉得PPT内容系统结构不太行,后面有时间再慢慢调整。没有什么技术性的内容,主要是简述。后面准备开一个系列,认真研读一下一些技术性的内容。一、博弈的标准式和纳什均......
  • 博弈论基础
    前置知识mex⁡\operatorname{mex}mex:没有出现过的最小自然数,如mex......
  • 博弈论基础
    前置知识\(\operatorname{mex}\):没有出现过的最小自然数,如\(\operatorname{mex}\{0,2,3\}=1\)。\(\oplus\):按位异或。前言博弈类问题大致分为,公平组合游戏、非公平组合游戏(绝大多数的棋类游戏)、反常游戏。只需要关注公平组合游戏\(\texttt{(ICG)}\),反常游戏是公平组合游......
  • 博弈论入门
    博弈论入门博弈论主要研究的是:在一个游戏中,进行游戏的多位玩家的策略。公平组合游戏定义:游戏有两个人参加,轮流参加决策,双方均知道游戏的完整信息;任意一名玩家在某一状态可以做出的决策集合只与当前状态有关,与游戏者无关;游戏中某一状态不可能多次抵达,游戏以玩家无法行动为......
  • Twenty Lectures on Algorithmic Game Theory 算法博弈论二十讲 Lecture 5 Revenue-Ma
    TwentyLecturesonAlgorithmicGameTheory算法博弈论二十讲Lecture5Revenue-MaximizingAuctions(上)Lecture5Revenue-MaximizingAuctions第2至第4讲聚焦于设计能够最大化社会福利的机制,无论是精确还是近似。这类机制的收益产生仅仅是副作用,是激励代理人如实......