《博弈论全家桶》(ACM / OI)(超全的博弈论 / 组合游戏大合集)

Posted 繁凡さん

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《博弈论全家桶》(ACM / OI)(超全的博弈论 / 组合游戏大合集)相关的知识,希望对你有一定的参考价值。

整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


目录

0x00 公平组合游戏ICG

若一个游戏满足:

  • 由两名玩家交替行动

  • 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关

  • 游戏中的同一个状态不可能多次抵达,游戏以玩家无法行动为结束,且游戏一定会在有限步后以非平局结束

则称该游戏为一个公平组合游戏

例如 Nim 博弈属于公平组合游戏,而普通的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足条件2和条件3。

0x01 有向图游戏(博弈图)

给定一个有向无环图,图中有一个唯一的起点,在起点上放有一枚棋子。两名玩家交替地把这枚棋子沿有向边进行移动,每次可以移动一步,无法移动者判负。该游戏被称为有向图游戏。

任何一个公平组合游戏都可以转化为有向图游戏。具体方法是,把每个局面看成图中的一个节点,并且从每个局面向沿着合法行动能够到达的下一个局面连有向边。 转化为有向图游戏,也称绘制了它的博弈状态图(简称博弈图或游戏图)。

这样,对于组合游戏中的每一次对弈(每一局游戏),我们都可以将其抽象成游戏图中的一条从某一顶点到出度为 0 0 0 的点的路径。

组合游戏向图的转化,并不单单只是为了寻找一种对应关系,它可以帮助我们淡化游戏的实际背景,强化游戏的数学模型,更加突出游戏 的数学本质。

0x02 先手必胜和先手必败

  • 先手必胜状态 : 先手行动以后,可以让剩余的状态变成必败状态 留给对手(下一步是对手(后手)的局面)。

  • 先手必败状态 : 不管怎么操作,都达不到必败状态,换句话说,如果无论怎么行动都只能达到一个先手必胜状态留给对手,那么对手(后手)必胜,先手必败。

简化一下就是:

  • 先手必胜状态:可以走到某一个必败状态

  • 先手必败状态:走不到任何一个必败状态

因为我们当前走到的状态是送给对手的状态hhh

通常先手是 A l i c e \\tt Alice Alice ,后手是 B o b \\tt Bob Bob

定理:

定理 2.1: 没有后继状态的状态是必败状态。

定理 2.2: 一个状态是必胜状态当且仅当存在至少一个必败状态为它的后继状态。

定理 2.3: 一个状态是必败状态当且仅当它的所有后继状态均为必胜状态。

如果博弈图是一个有向无环图,则通过这三个定理,我们可以在绘出博弈图的情况下用 O ( N + M ) O(N+M) O(N+M) 的时间(其中 N N N 为状态种数, M M M 为边数)得出每个状态是必胜状态还是必败状态。

0x03 必胜点和必败点

必败点(P点) 前一个(previous player)选手将取胜的点称为必败点

必胜点(N点) 下一个(next player)选手将取胜的点称为必胜点

(1) 所有终结点是必败点(P点)

(2) 从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点)

(3)无论如何操作, 从必败点(P点)都只能进入必胜点(N点)

0x04 有向图的核

给定一张DAG图 < V , E > <V,E> <V,E>,如果 V V V 的一个点集 S S S 满足:

  • S S S 是独立集(集合内的点互不相通)

  • 集合 V − S V-S VS 中的点都可以通过一步到达集合 S S S 中的点( V − S V-S VS S S S V V V 中的补集)

则称 S S S 是图 V V V 的一个

结论: 核内节点对应 SG 组合游戏的必败态

因为 Alice 当前的棋子在 S S S 中,由于 S S S 是独立集,也就意味着 Alice 只能将棋子从 S S S 移动到 V − S V-S VS

而 Bob又可以通过一步移动将棋子从 V − S V-S VS 移动到了 S S S,这样 Alice 就好像是被支配了一样,被迫把棋子移动到了没有出度的必败节点,Alice 必败,Bob必胜!


0x10 几个经典组合游戏

0x11 尼姆游戏 N i m   G a m e \\tt Nim\\ Game Nim Game

Problem

给定 N N N 堆物品,第 i i i 堆物品有 A i A_i Ai 个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采取最优策略,问先手是否必胜。


我们把这种游戏称为 Nim 博弈。把游戏过程中面临的状态称为局面。整局游戏第一个行动的称为先手,第二个行动的称为后手。若在某一局面下无论采取何种行动,都会输掉游戏,则称该局面必败

所谓采取最优策略是指,若在某一局面下存在某种行动,使得行动后对手面临必败局面,则优先采取该行动。同时,这样的局面被称为必胜。我们讨论的博弈问题一般都只考虑理想情况,即两人均无失误,都采取最优策略行动时游戏的结果。

Nim 博弈不存在平局,只有先手必胜和先手必败两种情况。

Solution

通过绘制博弈图,可以在 O ( Π i = 1 n   a i ) \\mathcal O(\\Pi _i=1^n\\ a_i) O(Πi=1n ai) 的时间内求出该局是否先手必赢 but,这个时间复杂度太高了

结论:定义 Nim 和为 a 1 ⊕ a 2 ⊕ . . . ⊕ a n a_1\\oplus a_2\\oplus...\\oplus a_n a1a2...an

当且仅当 N i m Nim Nim 和为 0 0 0 时,该状态为先手必败状态 否则该状态为先手必胜状态

⊕ \\oplus 表示异或,相同为0不同为1

考虑证明:


我们只需要证明 a 1 ⊕ a 2 ⊕ . . . ⊕ a n ≠ 0 a_1\\oplus a_2\\oplus...\\oplus a_n\\not=0 a1a2...an=0 是先手必胜状态, a 1 ⊕ a 2 ⊕ . . . ⊕ a n = 0 a_1\\oplus a_2\\oplus...\\oplus a_n=0 a1a2...an=0 是先手必败状态即可。

我们可以从先手必败和先手必胜状态的定义出发,也就是说我们只需要证明下面的三个定理即可(博弈论结论证明都是朝着这个方向证明的):


定理1: 没有后继状态的状态为必败状态

定理2: 对于 a 1 ⊕ a 2 ⊕ . . . ⊕ a n ≠ 0 a_1\\oplus a_2\\oplus...\\oplus a_n\\not=0 a1a2...an=0 的局面,一定存在某种移动使得 a 1 ⊕ a 2 ⊕ . . . ⊕ a n = 0 a_1\\oplus a_2\\oplus...\\oplus a_n=0 a1a2...an=0 (必胜状态一定能到达一个必败状态)

定理3: 对于 a 1 ⊕ a 2 ⊕ . . . ⊕ a n = 0 a_1\\oplus a_2\\oplus...\\oplus a_n=0 a1a2...an=0 的局面,一定不存在某种移动使得 a 1 ⊕ a 2 ⊕ . . . ⊕ a n = 0 a_1\\oplus a_2\\oplus...\\oplus a_n =0 a1a2...an=0 (必败状态一定不能到达任何必败状态)


定理1证明: 没有后继状态的状态(必败点)只有一个,即全 0 0 0 局面 此时 a 1 ⊕ a 2 ⊕ . . . ⊕ a n = 0 a_1\\oplus a_2\\oplus...\\oplus a_n=0 a1a2...an=0以上是关于《博弈论全家桶》(ACM / OI)(超全的博弈论 / 组合游戏大合集)的主要内容,如果未能解决你的问题,请参考以下文章

ACM博弈论SG函数入门:博弈树SG函数的转移与子游戏的合并

博弈论——acm

ACM取石子 - 博弈论

解题报告(十七)概率与期望(概率论)(ACM / OI)

解题报告多项式求值与插值(拉格朗日插值)(ACM / OI)

ACM模板——简单博弈