【ACM博弈论】SG函数入门(1):从巴什博奕到尼姆游戏

这篇具有很好参考价值的文章主要介绍了【ACM博弈论】SG函数入门(1):从巴什博奕到尼姆游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在我小时候以前做题的时候,遇到博弈题往往都是漫无目的地打表找规律,或者找一些特殊情况但是没有很好的分析方法。

其实博弈题是有比较套路的解题方法的,那就是利用SG函数,第一节不会讲到SG函数的具体用法,我们先来博弈入个门,学习一下最基本的博弈类型:Nim游戏

🎈 作者:Eriktse
🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀
🎈 阅读原文获得更好阅读体验:https://www.eriktse.com/algorithm/1110.html

巴什博奕

在进入Nim游戏之前,我们先看一个简单的博弈:巴什博奕

看这道例题:http://acm.hdu.edu.cn/showproblem.php?pid=1846

由于HDUOJ经常打不开,我这里复制一下题意:

1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。

假设此时的n = 10, m = 3,我们来分析一下这个局面。

我们设一个布尔函数f(x),表示当n = x时的输赢。

  • f(0) = 0,因为无法继续操作了,显然是0,也就是说这是一个必败态。
  • f(1) = 1,可以取走一个石子,使对手陷入必败态,所以这是一个必胜态。
  • f(2) = 1,可以取走两个。
  • f(3) = 1,可以取走三个。
  • f(4) = 0,无论取走一个、两个或三个都必然使得对手进入必胜态,所以这是一个必败态。
  • f(5) = 1
  • f(6) = 1
  • f(7) = 1
  • f(8) = 0,无论取走一个、两个或三个都必然使得对手进入必胜态,所以这是一个必败态。
  • f(9) = 1
  • f(10) = 1

至此,我们得到了答案,f(n) = f(10) = 1所以先手必胜,不难发现上面这个函数f(x)的规律,仅当x % 4 == 0时为0,其余情况都为1

于是我们只需要判断n % (m + 1)是否为0就能判断先手是否获胜。

这就是巴什博奕模型,是不是很简单,我们简单打个表就找到了规律。

Nim游戏

依然看这道例题:https://www.luogu.com.cn/problem/P2197

我们这么分析:

败局一定是全为0的情况,此时所有数字的异或和为0(不知道怎么写异或和的latex,大家凑合着看):

\[\oplus_{i=1}^{n}a_i = 0 \]

那么想一下那些状态可以到这个败局呢?我们反向的思考,往任意一个位置加上一个数字,就可以作为前一个状态,也就是一个必胜态(因为那个状态必然可以到达败局的状态)。

往任意一个位置加上一个数字之后就必然有:

\[\oplus_{i=1}^{n}a_i \ne 0 \]

再想一下,从一个异或和不为0的状态,是否一定有办法转移到一个异或和为0的状态。

不难发现是一定可以的。

举个栗子:

我们有4堆石子,数量分别为:1 7 2 6。这是我随便写的一个数据。

它们的异或和为:1 ^ 7 ^ 2 ^ 6 = (0 1 0),那么我可以通过调整2 -> 0使得异或和为0,现在有1 ^ 7 ^ 0 ^ 6 = 0,当然我还可以通过6 -> 4,异或和结果也是0。

不难发现,只需要从数组中找一个最高非零位大于等于异或的结果的最高非零位的数字,然后减少一部分就可以,这样的数是一定存在的。

那么也就是说任意一个异或和非零的状态都可以通过一步转移到异或和为0的状态,任意一个异或和为0的状态不管怎么走一步,都必然转移到异或和非0的状态

而石子的个数是一直减小的,最终一定会走到全0,异或和为0的状态且一定是败局。

也就是说:

必胜态W(win):异或和非0;
必败态L(lose):异或和为0;

以上就是Nim游戏模型,当然你也可以叫他Nim博弈

这一节先了解这些,下一节将会讲解SG函数的转移和子游戏的合并。

🎈 本文由eriktse原创,创作不易,如果对您有帮助,欢迎小伙伴们点赞👍、收藏⭐、留言💬文章来源地址https://www.toymoban.com/news/detail-409521.html

到了这里,关于【ACM博弈论】SG函数入门(1):从巴什博奕到尼姆游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【博弈论】【第一章】博弈论导论

    课程概述: 两个参与人A和B,轮流选择[3,4,5,6,7,8,9]中的一个整数(可重复)。当累计总和达到100的时候,博弈结束。此时判所选数字恰好使累计总和达到或超过100的参与人为输家。试问最先行动的A能赢得这场博弈吗?最优策略又是什么? 【解】 整个游戏的过程: 如果前面选择的

    2024年02月03日
    浏览(34)
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(4)博弈论与人性

    第五章 弗洛伊德的梦——博弈和大脑 大脑和经济学 曾经有一段时间——就像在弗洛伊德的年代——心理学家们无法准确地回答人类行为背后的大脑机制。但随着现代神经科学的兴起,情形改变了。比如,人类的情绪不再像过去一样是个谜。科学家们可以观察当人们感到轻蔑

    2024年01月25日
    浏览(37)
  • 【学习笔记】博弈论 ---- 非偏博弈

    本篇按照 Qingyu 在省集讲的加入我这个萌新的萌新理解而成。 听了 Qingyu 的博弈论讲解,感觉我之前学过的博弈就是冰山一角。 由于有一些东西没听懂,就主要写写我听懂的部分,没懂得以后再说吧。 所以这篇只是一个入门,关于博弈的一些习题可能会咕咕咕。 几个基本定

    2024年02月07日
    浏览(43)
  • 博弈论 | 斐波那契博弈

    博弈论是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到

    2024年02月12日
    浏览(33)
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(7)博弈论与概率论

    第十一章 帕斯卡的赌注——博弈、概率、信息与无知 在与费马就这个问题的通信过程中,帕斯卡创造出了概率论。另外,帕斯卡在进行严谨的宗教反思中,得出了 概率 这个概念,它在此几百年后,成为一个关键的、对博弈论的提出有重要意义的数学概念。 帕斯卡观察到,

    2024年01月25日
    浏览(39)
  • 博弈论-策略式博弈矩阵、扩展式博弈树 习题 [HBU]

    目录 前言: 题目与求解 11.请将“田忌赛马”的博弈过程用策略式(博弈矩阵)和扩展式(博弈树)分别进行表示,并用文字分别详细表述。 34.两个朋友在一起划拳喝酒,每个人有4个纯策略:杠子、老虎、鸡和虫子。 输赢规则是:杠子降老虎,老虎降鸡,鸡降虫子,虫子降

    2024年02月03日
    浏览(37)
  • 【博弈论笔记】第二章 完全信息静态博弈

    此部分博弈论笔记参考自经济博弈论(第四版)/谢识予和老师的PPT,是在平时学习中以及期末备考中整理的,主要注重对本章节知识点的梳理以及重点知识的理解,细节和逻辑部分还不是很完善,可能不太适合初学者阅读(看书应该会理解的更明白O(∩_∩)O哈哈~)。现更新到

    2024年02月10日
    浏览(39)
  • Nim游戏博弈论

    https://www.luogu.com.cn/problem/P2197 甲,乙两个人玩 nim 取石子游戏。 nim 游戏的规则是这样的:地上有 n n n 堆石子(每堆石子数量小于 1 0 4 10^4 1 0 4 ),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取完,不能不取。每次只能从一堆里取。最后没石子可取的人就输了

    2024年02月15日
    浏览(33)
  • 博弈论算法常见模型整理

    本文主要介绍算法竞赛中常常出现的博弈论模型,包括: 4个经典组合游戏 SG函数 SG游戏及拓展 进一步学习需要了解一些前置概念 ICG 博弈图 P点、N点 mex函数 1.ICG ICG全称为“公平组合游戏”,我们下面讨论的博弈游戏均建立在ICG的基础上,那么什么是ICG呢,它需要满足以下条

    2023年04月26日
    浏览(33)
  • 博弈论小课堂:零和博弈(找到双方的平衡点)

    从概率论延伸出来的课题——博弈论,博弈论中最典型的两大类博弈,是“零和博弈”与“非零和博弈”。博弈论所研究的最优化问题有多方参与,因此最优化的策略要考虑对方的行为。 博弈论通常被认为是冯·诺依曼发明的,博弈论从本质上讲,是一套解决最优化问题的方

    2024年02月09日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包