【学习笔记】树和图上的博弈

树和图上的博弈

一、树上删边博弈

  • 问题引入:

    给定多棵 \(n\) 个节点的有根树(可以想象把这些树的根节点排成一排种在地平线上)。

    两个人轮流在任意一棵树上删去一条边,删边后,不与根节点相邻的部分也将被移除。

    谁无法继续删边谁输。

    问:先手必胜还是必败 ?

    由于在该博弈中,双方都可以删任意的边,因此,它被称为树上公平删边游戏(Green Hachenbush)

    这要与另一种不公平树上删边游戏做区分,感兴趣的读者可自行查阅。

  • 问题分析:

    如果我们直接分析问题,就会发现删边情况复杂,不好处理。

    这时不妨先考虑一种简单的情况,即所有的树都为链,我们也可把它们形象地称之为竹子
    【学习笔记】树和图上的博弈_第1张图片

    容易发现,每轮删边相当于在任意一棵竹子上移除若干条边,其本质就是一个 Nim 游戏,因此满足 SG (x) = x。

    计算每棵竹子边数的 Nim 和即可求出结果。

    Nim 和即异或和

    接着,为了处理树的情况,我们需要引入 Colon Principle (证明附后)。

    Colon Principle:对于树上某一个点,它的分支可以转换为以这个点为根的一根竹子,这个竹子的长度等于它各个分支的边的数量的异或和。

    拿树来解释,如图:

    【学习笔记】树和图上的博弈_第2张图片

    如第一棵树,它的根节点有 3 个子节点,长度分别为 1, 1, 2,所以异或起来的结果就为 2 ,我们就可把第一棵树转换为长度为2的竹子。

    后两棵树同理,他们分别可以转换为长度为 3 和长度为 1 的竹子。

    这三棵竹子与它们对应的三棵树是等价的。

    根据 SG 定理,把这三棵树转化成的竹子的 SG 函数值异或起来:SG(2) xor SG(3) xor SG(1) = 2 xor 3 xor 1 = 0 。

    所以结果就是先手必败

二、图上删边博弈

  • 问题引入:

    未完待续...

你可能感兴趣的:(【学习笔记】树和图上的博弈)