首页 > 其他分享 >博弈论小记

博弈论小记

时间:2024-04-20 17:45:07浏览次数:26  
标签:局面 博弈论 游戏 石子 当且 小记 SG 函数

以下我们都考虑这样一种游戏:

  1. 两个人,轮流进行;

  2. 游戏总是在有限步内结束;

  3. 同一个状态不可能多次抵达,且没有平局;

  4. 每个时刻的合法决策集合仅与当前局面有关,而与游戏者无关;

  5. 不能操作者输。

我们定义:

必败态:无论如何先手必败的状态(局面)。

必胜态:先手存在必胜策略的状态(局面)。

后继状态:从当前状态走一步能够到达的所有局面。

SG 函数

mex 函数:集合中最小的没有出现的自然数。

将每个局面映射到一个自然数。终态(必败态)的 SG 函数值为 \(0\),其他每个局面的 SG 函数值为其所有后继局面的 mex 值。

一个局面必胜当且仅当其 SG 函数不为 \(0\)。对应地,一个局面必败当且仅当其 SG 函数等于 \(0\)。

如果一个游戏由一堆游戏组成,每次选择一个游戏走一步,这样的游戏称为组合游戏。组合游戏中一个局面的 SG 函数值等于其所有子游戏的 SG 函数值的异或和。

同样地,此时一个局面必胜当且仅当其 SG 函数不为 \(0\),一个局面必败当且仅当其 SG 函数等于 \(0\)。

Nim 游戏

\(n\) 堆石子,每堆 \(a_i\) 个,每次可以在任一堆中取出任意多个石子,取到最后无法取的人输。

分析这个游戏,实际上是一个组合游戏。每个子游戏就是一堆石子,每次取出任意多个,不能取的输。我们来分析这个游戏的 SG 函数。终态是剩 \(0\) 个石子,此时先手必败,SG 函数为 \(0\)。对于一个石子的状态,其后继只有终态,而终态 SG 函数为 \(0\),所以只有一个石子的状态的后继状态的 SG 函数构成的集合为 \(\{ 0 \}\),所以其 SG 函数为 \(1\)。对于两个石子的状态,其后继状态为剩 \(0\) 个和剩 \(1\) 个石子,这两个状态的 SG 函数分别为 \(0, 1\),所以其 SG 函数为 \(2\)。观察发现一个状态的 SG 函数值即为其中石子个数。

所以对于这 \(n\) 个子游戏,其 SG 函数值分别为 \(a_i\),所以当前局面的 SG 函数值就是所有 \(a_i\) 的异或和。所以当且仅当所有 \(a_i\) 的异或和为 \(0\) 时先手必胜,否则先手必败。这个就是 Nim 游戏的经典结论。

若当前局面异或和不为 \(0\),可以证明一定可以通过某种方法来取出一些石子使得操作后所有数异或和为 \(0\)。若当前局面异或和为 \(0\),则也可以证明无论如何取,取之后的所有数异或和不为 \(0\)。

阶梯博弈

\(n\) 级台阶,从左往右依次变高,每级台阶上有 \(a_i\) 个石子,每次可以把一级台阶上的石子往比它低一层的台阶上扔(如果这级台阶还不是最低的台阶),每次可以扔任意多个。不能操作者输。

结论:等价于从左往右奇数位上的 Nim 游戏。

操作方法:假设我们必胜。如果对面动了偶数位的石子,则把对面移到奇数位的石子再往下移到偶数位。如果对面动了奇数位的石子,我们按照 Nim 游戏的走法从某个奇数位的阶梯上取若干个石子往下扔。这样能够保证我们是必胜的。

为什么是奇数位?因为如果是偶数位的话,当对面把奇数位的石子移到最低的阶梯上时,我们就无法再把这些石子往下扔了。

例题:P3480P8382

二分图博弈

一张二分图,一个棋子。棋子一开始在一个点上,每次一个人来选择一条边,把棋子沿这条边移到另一个点。走过的点不能再走,不能走的输。

结论:先手必胜当且仅当棋子一开始在最大匹配的必须点上。先手必败当且仅当棋子一开始不在最大匹配的必须点上。

标签:局面,博弈论,游戏,石子,当且,小记,SG,函数
From: https://www.cnblogs.com/forgotmyhandle/p/18147933

相关文章

  • hexo 折腾小记
    hexo是一套静态网页生成框架类似的还有JekyllGitHub默认推荐的框架/Hugo(......
  • windows平台vs2019编译Luabind小记
    前言写这篇文章的目的是Luabind这个库比较老旧,对于新编译器需要做一些代码上的兼容,参考资料又都有点过时,所以特写此篇,记录踩坑过程;参考资料用VS2010编译luabind如何编译luabind支持vs2010之后所有版本Lua官网LuabindRepo编译前准备准备相关前置组件基本编译依赖Des......
  • 1.0 多层感知机&BP传播 小记
    1.感知机与线性模型单层感知机的表达式和线性分类表达式等同,可以将一个单层感知机看作是一个线性分类器。单层感知机可以解决与、或、非的分类问题,但是不能解决异或分类(非线性)问题。howtosolvetheproblem:多个线性分类器解决线性不可分问题,即:多个单层感知机组合叠加解......
  • 13年 史密斯热水器全拆清洗 小记
    ~~~~~~~~~~~~~~~排水~~~~~~~~~~~~~~~拆机过程不复杂,提前断开电源,切断进水阀门.用过导水管从进水口排干净热水器中的水即可,注意排水过程需要打开热水器出水口,用来进气.排干净水之后就可以拆下来进出水管,这样热水器就从水路上分离开来了.把热水器从挂墙上拿下来,50L的......
  • PWN出题小记
    记录一下PWN出题的源码、环境部署。PWN题环境部署图方便的话可以使用pwn_deploy_chroot这个项目。如何安全快速地部署多道ctfpwn比赛题目也可以自己写dockerfile拉取镜像。将题目名命名为pwn,与Dockerfile、ctf.xinetd、start.sh三个文件放在同一目录下,下面提供相......
  • STM32外部中断小记
    一、EXTI配置步骤//1.配置RCC时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启AFIO时钟,AFIO:GPIO复用/重映射功能//2.配置EXTIGPIO端口及工作模式(输入模式)//3.配置EXTI中断线、模式(上升沿、下降沿......
  • 基于新版宝塔Docker部署在线客服系统过程小记
    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。客服系统开发过程中,最让我意外的是对TCP/IP协议的认识。过去一直认为TCP/IP是可靠的连接,加上过去开发的软件网络环境比较稳定,很少在这个问题上纠结......
  • 鞅与停时定理小记
    赌博问题设\(X_i\)为第\(i\)轮赌博后的收益。根据常识,显然有\(E(X_i)=X_0=0\)离散时间鞅定义一组离散时间鞅为时间离散的随机过程\(\{X_0,X_1,X_2,...\}\),满足对于任意\(n\),都有\(|E(X_n)|<+\infty\),即取值是有限的。\(E(X_{n+1}-X_n|X_0,X_1,...,X_n)=0\),意思......
  • 析合树小记-
    定义排列:由\(1\simn\)打乱组成的序列。连续段:\([l,r]\)被称为连续段,当且仅当排列\(a\)中\(a_{l...r}\)在排序后值域也连续。构想析合树是一种处理排列连续段问题的有力数据结构。但是一个排列的连续段数可能达到\(O(n^2)\),我们该如何存储?一些连续段可能会与......
  • Acwing 1318. 取石子游戏(博弈论)
    https://www.acwing.com/problem/content/1320/输入样例:233输出样例:1#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=100200,M=2020;intmain()......