浅出狼人杀


0x00 前言

在姐妹篇《深入博弈论》中,通过一些简单的案例带大家认识博弈的过程和方法。

这个篇章正式聊一下怎么用博弈论玩狼人杀。

0x10 狼人博弈

首先我们要知道,狼人杀的规则是什么,他是一个什么样的博弈。

以狼人杀最简单的桌游规则为例,我们除去法官之外,一共有 2 个阵营 3 种身份牌 10 个玩家:

  • 坏人阵营:狼 4 个
  • 好人阵营:神职 2 个(女巫和预言家)
  • 好人阵营:村民 4 个(无身份无技能)

狼彼此知道身份,所有玩家需要彼此猜测身份。

每轮对局为 1 天,行动顺序为:

  • 狼晚上杀 1 人
  • 神晚上验 / 救 / 杀 1 人,被杀无遗言
  • 全员白天按顺序发言
  • 全员白天必须投票并投死 1 人,投死有遗言

胜利条件:任一阵营团灭,另一阵营获胜。

从游戏规则上可知,因为不同身份掌握的信息量不一致,而且每个人的行动具有顺序,因此狼人杀属于不完全信息的动态博弈

既然是博弈游戏,那么最终答案必然是纳什均衡解,但由于狼人杀规则复杂,导致每一个对局都是极其复杂的混合决策,这个解并不是简单推演就能计算出来的。

0x20 推演身份概率

为了方便说明推演的方法,不妨用一些符号简化这个游戏。

10 个玩家,每个玩家的身份他自己是知道的,而在外人看来则是一个 p<W, G, V> 向量(即概率函数),其中:

  • W 表示 wolf 狼
  • G 表示 God 神
  • V 表示 Village 村民

那么狼人杀就是在已知自己身份的前提下,通过猜测其他人的身份概率,使得己方阵营胜率最大化的游戏。

刚开局,因为所有人身份不明,每个玩家都有一份自己视角的概率向量:

第 N 行表示第 N 号玩家看其他玩家时,每个玩家的身份概率向量
第 M 列表示第 M 号玩家在其他玩家看他时,别人认为他是什么身份的概率向量

例如:

  • 1 号玩家,是狼,他清楚狼队友是谁,只是不清楚神职是谁,因此在他眼中其他玩家身份的概率向量就是第 1 行
  • 10 号玩家,是村民,他除了自己,不清楚其他任何人的身份,因此他眼中其他玩家身份的概率向量是第 10 行

这张分布网络就是各个玩家初始的身份概率分布。

随着游戏对局的进行,根据不同玩家的行为和发言,这些概率向量会不断地发生变化。

游戏中途也会因为某些玩家自爆的原因,有些向量会提前固定,有些则一直还是概率值,但是最终游戏结束后,所有人的身份都必然是确认的。

游戏的难点在于,玩家的视角不仅仅要关注自己的概率向量,还要猜测其他玩家心中的概率向量。

随着参与人数的增多,这张概率分布图会形成成 2 阶、3 阶、4 阶 ,甚至无穷阶的狄利克雷分布。

虽然理论上是存在这么一个算法,在已知各个玩家身份的概率向量和关系的情况下,根据每一轮对局的信息分布标识出每个玩家最合理的身份结果,但很明显计算量极其庞大,在短时间甚至在对局中即时演算基本上是不可能的,因此求狼人杀的纳什均衡解是不现实的。

那么我们在游戏对局中应该怎样维护利用这张表呢?

0x30 策略语言

其实狼人杀在对局过程中的发言和行为都会构成很多小的逻辑链,这些逻辑链都会影响局部的概率向量。

因此我们可以通过有效的策略语言,尽早地锁定某些概率向量,在算法上也叫剪枝。

通俗来讲就是尽快猜测别人的身份、塑造自己的身份,使得对局往己方阵营有利的方向加速收敛。

那么什么样的语言才算是有效的策略语言呢?

在发言的时候:

  • 首先报出我的视角的概率向量
  • 然后报出我接着会执行的动作

只要这两个信息可以形成逻辑关系链,那么这个发言就存在置信度,它就可以影响别人视角的概率向量,从而引导其他人根据你的发言做出调整。

所有不符合策略语言的发言都是没有意义的,我们可以举一些例子:

【1 号这次发言没有用人格担保,我怀疑他是狼】

像这种发言因为没有理论依据,一般来讲是无效的,尤其是在第 1 天。

因为它要有意义其实是需要一个大前提的,例如经常一起玩彼此比较熟悉对方的发言风格。

不过在某些特定的场景它也可以发挥一定的作用,这个后面会详细说明。

这里特别提一下【我是有身份的人】其实是很尴尬的发言。

因为这个发言对塑造你的身份意义不大,有身份的人,可以是神,可以是狼,

视乎对局的进度,其实是很危险的:

  • 对坏人阵营而言,因为你既然有身份,那只能是神职,对狼威胁最大,当天必死。
  • 对好人阵营而言,你也可能很危险,尤其在对局中途有没有其他明显可针对的身份的时候,根据黑暗森林法则,有可能其他人试着捅你一刀,那就被投死了。

因此除非是要挡刀,类似这种发言一定要看时机去使用。

0x40 隐含数据

另外还有一些隐含通识,不论好人还是坏人阵营都是必须要清楚的,还是以 10 人局为例:

【最大对局数 <= 5】

1 天为 1 轮对局,晚上和白天各死 1 人,换而言之每天死 2 人。

因此一次游戏的对局数最多只有 10 / 2 = 5 轮。

另外因为神职只有预言家和女巫,这时会有一个隐含胜利条件:如果 坏人阵营 人数多于 好人阵营 人数,好人必败。

至于为什么,后面会分析

【发言次数 ≈ 3】

回想一下我们之前玩的时候,实际对局数很少能到 5 轮,一般第 3 ~ 4 轮游戏就结束了。

换言之每人发言的次数平均不过 3 次左右。

我们玩一局看似要花半小时很久,其实只是发言时间比较长导致的错觉。

清楚对局轮数,会对发言的决策时机有很大影响。

有很多人玩到第 3 轮还在隐藏身份担心暴露,表现的行为和身份格格不入,其实别人早就猜出你的身份了,只有你自己还在自欺欺人。

为了掩饰身份错过许多极佳的决策点,甚至把有用的信息带到棺材里,那就得不偿失了。

0x50 好人阵营策略

接下来我们分析一下好人阵营应该怎么玩。

好人阵营相对于坏人阵营而言,其实是处于不利的位置的:

  • 首先好人掌握的信息最少而且不准确
  • 其次好人没有先手优势
  • 其三好人的有效活动时间只有白天

好人唯一的优势就是人数优势,他们只能通过白天的发言和投票去保持这个人数优势,维系对局进展。

这个时候如何发言就很重要了。

一个是前面提到的策略发言,要懂得如何隐藏或者获取更多信息。

还需关注的,就是发言的顺序,尤其是上下位关系,经常会被忽略掉。

因为先发言的人掌握信息是最少的,而且他不能反驳后发言的人的观点,因此排位越靠前的人会越沉默,而排位越靠后的人则会相对活跃。

那么在信息缺乏的情况下,尤其是第 1 天,排位靠前的人如果想要提高自己的存活率,他应该怎么做呢?

  • 不要过早站队:在狼人杀里面第一印象很重要,因为身份概率分布过于复杂,许多玩家并不会深入推演你后面的行为是怎样的(可以联想一下前面的旅行者困境),那么在普通玩家的眼中,你的第一印象很可能就形成了你是好人还是坏人的身份,过早站队就会失去你后面塑造身份的主动权,可以再联想一下前面三国的例子,你在别人视角的信息越模糊,越有利于提高你的存活率。
  • 不要塑造神职的身份:还是可以联想前面三国的例子,狼神民好比曹孙刘,神对狼威胁最大,不是被投死就是被杀死,反正活不长。
  • 不要怼你的下家:在有一定信息的前提下,可以适当怼你的上家,拉拢你的下家

但是狼人杀并不是一个防守游戏,因为狼每晚是固定杀 1 人的,通过谨慎发言所获得的存活率收益,会随着对局进行急速下滑,如果好人都追求存活率,最终结果是必败的。

这个时候 神 和 民 就要思考自己的在阵营的作用是什么,最迟从第 2 轮对局开始就要调整策略了:

  • 神:收集身份信息(俗称带节奏) => 扩大阵营
  • 民:优先确保神存活(俗称挡刀)、其次确保自己存活 => 保持人数优势

只要清楚自己的作用,后面的行动策略就应该围绕它进行。

举个例子:

假如你是 4 号预言家,你在在第 1 天晚上验到 1 号是狼,而且好人阵营都是聪明 和 理性 的,那你在想隐藏身份的情况下,应该怎么带节奏呢弄死 1 号呢?


你可以说 【1 号这次发言没有用人格担保,我怀疑他是狼】。

这是一种没有理论依据的发言,在信息不明确的第 1 天说这种话,其实是不明智的。

但如果好人阵营都是聪明和理性的,其他村民就有理由推测 4 号玩家有可能掌握了信息才会这样发言,进一步推测他有可能是预言家。

既然好人能想到,那么坏人也能想到,如果这个预言家想要活下来,其他好人应该怎么办?

可能有人想到女巫,没错,但是随着对局的进行,预言家会越来越危险,女巫的解药是保底用的。

在对局最开始,村民应该尽可能避免解药被使用,这个时候村民就可以适当站出来挡刀:

例如你是 6 号村民,这个时候就可以站出来说【我没有更多信息,但我是有身份的人】。

这样说就可以转移狼对 4 号的注意力,因为在狼的视角,好人阵营只有 神和民 的区别。你既然有身份,那肯定是神,相对于 4 号模棱两可的身份,神对狼的威胁更大,因此你更容易成为狼的目标。

不过这些发言并不是每次都有用的,是不是经常一起玩狼人杀、当前对局已有信息的多寡,都会让这些发言有不同的效果,不能照搬使用,这里这是提供了一个思路。

0x60 坏人阵营策略

在狼人杀中好人是相对难玩的,因为信息少,而且缺乏主动权。

而坏人阵营则相对会简单一些,开局信息多,而且有先手优势。

严格来说,在这种 10 人局(4 狼 2 神 4 民)的配置下,两个神还都是没什么用的,如果不考虑什么听声辩位、微表情管理,狼的胜率是极高的。

因为其实狼人的优势是很多的:

  • 信息多而精准
  • 有先手优势:好人阵营只能根据狼人的决策行动
  • 每轮对局可额外活动 1 次(晚上杀人)
  • 默认处于共谋状态

我们如果以正常的方式去玩这个游戏,狼人完全可以在第 1 轮对局结束的时候就锁定胜局的。

什么是正常的方式呢? 就是大家都不应该在开局没有任何信息的情况下,给某些玩家套身份牌、或者做针对性的行动。

例如有好几次,当某人是好人的时候,他第一天晚上就死了,这就是不正常的开局。
因为狼人们认为某人很会玩,威胁性很大,甚至大过神职,优先把某人先杀死,其实这样决策是不对的。
如果按这种逻辑推论,如果某人第 1 天早上还活着,是不是说明他就是狼呢?
况且从以往对局来看,有自刀行为的只有我而已,某人没有自刀的爱好。

那么基于当前游戏角色配置的情况下,狼人如何在第 1 轮对局结束的时候就赢得游戏呢?

要知道好人阵营唯一的优势就是人数,这是他们掌握白天投票主动权的关键,因为只要某人被投超过半数(不含半数),那么这个人就会死。

那狼只要尽快消除人数差距,追平人数,使得好人阵营没有办法掌握白天投票的主动权,那么好人必败。

因此狼人还有一条隐含的胜利方式: 只要某一天投票环节结束后,坏人阵营人数 >= 好人阵营人数, 坏人必胜。

既然要在第 1 天就锁定胜局,说明狼要想办法杀掉好人阵营里的 2 个人,而杀人时机只有 2 个:

  • 晚上点杀
  • 白天投票

首晚 6 个好人身份不明,那是不是可以随机点杀呢?

其实不是的。 6 个好人是有区别的,他们有发言顺序。

顺位越靠后的人,在白天掌握的信息越多,他的发言越有分量,对狼人的威胁也就更大。

因此首晚点杀最优决策是末位的好人,而不是在前面对局中看起来玩得最厉害的人。


有人会问,那女巫救人怎么办?

确实女巫救人就没办法第 1 天获胜了,正常继续玩就好。

但是在身份不明的情况下,如果女巫不知道狼人的企图,他救人的概率是低于 50% 的。

因为女巫会更倾向把解药留给自己或预言家,使得阵营利益最大化,毕竟把狼人自刀也考虑进来的话,首晚预言家被杀的几率只有 1/10,女巫是不会冒这个风险的。

顺便一提女巫首晚杀人的几率也是趋近于 0 的:看似有 4/9 的几率杀掉 1 匹狼,但是误杀好人的几率会更高(5/9),再算上狼杀掉 1 人,首晚一旦误杀好人阵营人数直接被坏人阵营追平,好人失去白天投票的人数优势,直接落败,女巫是不敢冒这个风险的。


回到正题,假设女巫首晚放弃救人,现在来到第 1 天的白天发言环节,两个阵营的人数是 4:5 ,换言之,狼要做的就是拉拢好人阵营的 1 个人去投死 1 个好人。

前面分析好人阵营的时候说过,在第 1 轮的时候,神职为了在后面获取更多信息,不会倾向自曝身份。

所以狼最有拉拢效果的方式就是跳预言家,因为预言家可以查验身份,他说的话在村民的心中的置信度会更高。

但是狼跳预言家之后,最担心就是真的预言家也跳出来,这样就会因此村民质疑。

所以最适合跳预言家的是发言顺序排在末位的狼,因为末位狼身后的人会比他前面的人要少,真预言家跳出来的几率会更低。

而且首晚点杀,之所以要杀掉末位好人,也是为了削减末位狼身后的人数。

狼跳预言家之后,也不是随便指死一个好人的。

优先考虑指死的是在前面发言过程中,起了争执的 2 个好人中的 1 个,因为另 1 个支持你的概率是很大的,只要拉拢到 1 个好人就成功。

如果没有好人起争执,那么就选择排在首位的好人,因为这个人掌握的信息最少,他的身份在其他人的视角看来最模糊,所有人对他并不存在【第一印象】,一旦有关于他不好的言论,都会试着捅他一刀。

而且因为他排在首位已经发过言了,并不能反驳末位狼的发言。

在这个情况下,只要末位狼跳出来说【我是预言家,我昨晚验了 4 号的身份是狼,大家待会可以先把他投死,麻烦女巫晚上救我一下】,这句话在村民没有掌握任何信息的情况下,置信度是很高的。

只要在投票时有 1 个村民被成功拉拢,加上 4 匹狼同时指认,他就必死无疑。

于是在第 1 天投票结束后,双方阵营形成了 4:4 的人数分布,好人阵营已经失去投票主动权了。

因为狼每天晚上会固定杀 1 人,女巫晚上只能二选一(救 1 人或毒 1 人),只要狼在白天都共谋投 1 人,好人阵营就没有任何手段杀掉狼,必败无疑。

0x70 后记

以上就是全部内容,算是抛砖引玉,给不怎么会玩狼人杀的同学一点思路。

上下两篇都集成到这个 PPT 内《深入浅出狼人杀——博弈篇》,有兴趣的同学可以下载分享。


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
OpenPose 编译指引(含 python 接口) OpenPose 编译指引(含 python 接口)
OpenPose 人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以 Caffe 为框架开发的开源库,可以实现人体动作、面部表情、手指运动等姿态估计。
2022-01-08
下一篇 
深入博弈论 深入博弈论
《深入浅出狼人杀》的姐妹篇(前篇):主要讲解几种静态博弈和动态博弈的场景,作为后篇的知识铺垫
2021-10-25
  目录