野生阿努厨 发表于 2024-12-7 23:38:03

试图利用强化学习寻找《锯下七行》活动的村民优胜解

看到《锯下七行》活动的规则那一刻,我就觉得它是一个比较适合用强化学习求优解的游戏,毕竟它有明确的选项(选哪个庇护所,是否募捐)、明确的目标(每日存活+10金币),以及明确的惩罚(被暴徒攻击掉血挂掉),所以在gpt同志的鼎力协助下完成了此游戏流程的编码,然后用一个神经网络作为村民的决策智能体,以(当前日数、当前血量、当前金钱)作为输入,以8维向量输出,前7维决定避难所的选择,最后一维决定是否捐赠,再尝试用强化学习(基础的Q-Learning)求其最优解。
当然,我并没有做完全的复现,因为:
1.水晶日报社实质上被当成了公爵之墓二号,因为其效果实在难以量化,但实际上其揭露的设定又很会吸引人
2.电锯人的攻击逻辑是随机选两个,但实际情况似乎是有一定的自主性的


所以结果很不保真,实际上也是如此,在不多的训练轮次里,存活人数并未收敛(设置初始100人)。理论上智能体的决策会先上升到较高位置,再高度趋同导致被刺客一锅端才对(笑)

训练轮次: 0 ,存活人数: 28
训练轮次: 1 ,存活人数: 36
训练轮次: 2 ,存活人数: 38
训练轮次: 3 ,存活人数: 23
训练轮次: 4 ,存活人数: 35
训练轮次: 5 ,存活人数: 48
训练轮次: 6 ,存活人数: 50
训练轮次: 7 ,存活人数: 36
训练轮次: 8 ,存活人数: 45
训练轮次: 9 ,存活人数: 36
训练轮次: 10 ,存活人数: 38
训练轮次: 11 ,存活人数: 27
训练轮次: 12 ,存活人数: 43
训练轮次: 13 ,存活人数: 30
训练轮次: 14 ,存活人数: 44
训练轮次: 15 ,存活人数: 31
训练轮次: 16 ,存活人数: 36
训练轮次: 17 ,存活人数: 39
训练轮次: 18 ,存活人数: 32
训练轮次: 19 ,存活人数: 28




也许是学习超参数设的不好,不过个人不太想继续做了,有bug也不想修了,毕竟休息日也写代码是很累的事情,除非有朋友能献上肌肉兽人本子,触手TK题材或以阿努比斯为主角的就更好了,嗯。


然后是训练完成后的所有存活村民的决策,虽然并未收敛,但也许其中的某一条说不定就是你的求生参考路径呢(笑)。
由于python的数组起始于0,所以为0的实际上为1,例如shelter_choice: 4, donate_choice: 1 表示选了第5个庇护所(【5】幸存者营地),已捐赠。




生存者 - 生命值: 2, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 1
第 2 天:shelter_choice: 4, donate_choice: 0
第 3 天:shelter_choice: 1, donate_choice: 1
第 4 天:shelter_choice: 0, donate_choice: 0
第 5 天:shelter_choice: 4, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 0
第 7 天:shelter_choice: 2, donate_choice: 1
生存者 - 生命值: 1, 金钱: 2, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 1
第 2 天:shelter_choice: 3, donate_choice: 0
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 2, donate_choice: 1
第 6 天:shelter_choice: 6, donate_choice: 1
第 7 天:shelter_choice: 4, donate_choice: 1
生存者 - 生命值: 3, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 0, donate_choice: 0
第 2 天:shelter_choice: 0, donate_choice: 1
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 5, donate_choice: 1
第 5 天:shelter_choice: 3, donate_choice: 1
第 6 天:shelter_choice: 2, donate_choice: 0
第 7 天:shelter_choice: 2, donate_choice: 0
生存者 - 生命值: 1, 金钱: 2, 存活天数: 7
第 1 天:shelter_choice: 2, donate_choice: 0
第 2 天:shelter_choice: 5, donate_choice: 0
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 0
第 5 天:shelter_choice: 2, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 0
第 7 天:shelter_choice: 1, donate_choice: 0
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 6, donate_choice: 0
第 2 天:shelter_choice: 3, donate_choice: 1
第 3 天:shelter_choice: 3, donate_choice: 1
第 4 天:shelter_choice: 1, donate_choice: 1
第 5 天:shelter_choice: 2, donate_choice: 1
第 6 天:shelter_choice: 0, donate_choice: 1
第 7 天:shelter_choice: 0, donate_choice: 1
生存者 - 生命值: 2, 金钱: 2, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 0
第 2 天:shelter_choice: 1, donate_choice: 1
第 3 天:shelter_choice: 2, donate_choice: 0
第 4 天:shelter_choice: 5, donate_choice: 0
第 5 天:shelter_choice: 4, donate_choice: 0
第 6 天:shelter_choice: 0, donate_choice: 0
第 7 天:shelter_choice: 6, donate_choice: 0
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 1
第 2 天:shelter_choice: 4, donate_choice: 0
第 3 天:shelter_choice: 1, donate_choice: 1
第 4 天:shelter_choice: 4, donate_choice: 0
第 5 天:shelter_choice: 6, donate_choice: 1
第 6 天:shelter_choice: 5, donate_choice: 0
第 7 天:shelter_choice: 1, donate_choice: 1
生存者 - 生命值: 1, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 0
第 2 天:shelter_choice: 2, donate_choice: 0
第 3 天:shelter_choice: 6, donate_choice: 0
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 6, donate_choice: 0
第 6 天:shelter_choice: 3, donate_choice: 0
第 7 天:shelter_choice: 3, donate_choice: 0
生存者 - 生命值: 4, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 0
第 2 天:shelter_choice: 5, donate_choice: 1
第 3 天:shelter_choice: 3, donate_choice: 1
第 4 天:shelter_choice: 0, donate_choice: 1
第 5 天:shelter_choice: 1, donate_choice: 1
第 6 天:shelter_choice: 1, donate_choice: 1
第 7 天:shelter_choice: 2, donate_choice: 0
生存者 - 生命值: 2, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 0
第 2 天:shelter_choice: 6, donate_choice: 1
第 3 天:shelter_choice: 2, donate_choice: 0
第 4 天:shelter_choice: 6, donate_choice: 1
第 5 天:shelter_choice: 2, donate_choice: 0
第 6 天:shelter_choice: 3, donate_choice: 1
第 7 天:shelter_choice: 5, donate_choice: 1
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 4, donate_choice: 1
第 2 天:shelter_choice: 5, donate_choice: 0
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 1
第 5 天:shelter_choice: 2, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 0
第 7 天:shelter_choice: 6, donate_choice: 0
生存者 - 生命值: 4, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 1
第 2 天:shelter_choice: 5, donate_choice: 1
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 4, donate_choice: 0
第 5 天:shelter_choice: 4, donate_choice: 0
第 6 天:shelter_choice: 5, donate_choice: 1
第 7 天:shelter_choice: 5, donate_choice: 1
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 6, donate_choice: 0
第 2 天:shelter_choice: 0, donate_choice: 1
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 1
第 5 天:shelter_choice: 5, donate_choice: 0
第 6 天:shelter_choice: 3, donate_choice: 0
第 7 天:shelter_choice: 0, donate_choice: 0
生存者 - 生命值: 3, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 0
第 2 天:shelter_choice: 6, donate_choice: 0
第 3 天:shelter_choice: 4, donate_choice: 1
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 0, donate_choice: 1
第 6 天:shelter_choice: 4, donate_choice: 0
第 7 天:shelter_choice: 4, donate_choice: 1
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 0
第 2 天:shelter_choice: 5, donate_choice: 0
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 0, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 0
第 7 天:shelter_choice: 4, donate_choice: 1
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 0, donate_choice: 0
第 2 天:shelter_choice: 5, donate_choice: 1
第 3 天:shelter_choice: 6, donate_choice: 0
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 3, donate_choice: 0
第 6 天:shelter_choice: 3, donate_choice: 1
第 7 天:shelter_choice: 1, donate_choice: 0
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 1
第 2 天:shelter_choice: 0, donate_choice: 1
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 4, donate_choice: 0
第 5 天:shelter_choice: 4, donate_choice: 1
第 6 天:shelter_choice: 0, donate_choice: 1
第 7 天:shelter_choice: 2, donate_choice: 1
生存者 - 生命值: 2, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 2, donate_choice: 0
第 2 天:shelter_choice: 3, donate_choice: 1
第 3 天:shelter_choice: 2, donate_choice: 0
第 4 天:shelter_choice: 1, donate_choice: 1
第 5 天:shelter_choice: 6, donate_choice: 0
第 6 天:shelter_choice: 2, donate_choice: 0
第 7 天:shelter_choice: 1, donate_choice: 1
生存者 - 生命值: 1, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 5, donate_choice: 0
第 2 天:shelter_choice: 3, donate_choice: 1
第 3 天:shelter_choice: 3, donate_choice: 1
第 4 天:shelter_choice: 4, donate_choice: 0
第 5 天:shelter_choice: 1, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 1
第 7 天:shelter_choice: 3, donate_choice: 0
生存者 - 生命值: 2, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 2, donate_choice: 0
第 2 天:shelter_choice: 2, donate_choice: 1
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 0, donate_choice: 1
第 5 天:shelter_choice: 3, donate_choice: 0
第 6 天:shelter_choice: 5, donate_choice: 1
第 7 天:shelter_choice: 2, donate_choice: 1
生存者 - 生命值: 2, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 1
第 2 天:shelter_choice: 3, donate_choice: 0
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 4, donate_choice: 0
第 5 天:shelter_choice: 2, donate_choice: 1
第 6 天:shelter_choice: 2, donate_choice: 1
第 7 天:shelter_choice: 1, donate_choice: 0
生存者 - 生命值: 3, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 1, donate_choice: 1
第 2 天:shelter_choice: 4, donate_choice: 1
第 3 天:shelter_choice: 2, donate_choice: 1
第 4 天:shelter_choice: 6, donate_choice: 0
第 5 天:shelter_choice: 2, donate_choice: 1
第 6 天:shelter_choice: 2, donate_choice: 1
第 7 天:shelter_choice: 5, donate_choice: 0
生存者 - 生命值: 3, 金钱: 0, 存活天数: 7
第 1 天:shelter_choice: 2, donate_choice: 1
第 2 天:shelter_choice: 1, donate_choice: 1
第 3 天:shelter_choice: 2, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 0
第 5 天:shelter_choice: 1, donate_choice: 1
第 6 天:shelter_choice: 5, donate_choice: 0
第 7 天:shelter_choice: 1, donate_choice: 1
生存者 - 生命值: 1, 金钱: 2, 存活天数: 7
第 1 天:shelter_choice: 4, donate_choice: 0
第 2 天:shelter_choice: 6, donate_choice: 0
第 3 天:shelter_choice: 4, donate_choice: 0
第 4 天:shelter_choice: 0, donate_choice: 0
第 5 天:shelter_choice: 2, donate_choice: 1
第 6 天:shelter_choice: 0, donate_choice: 1
第 7 天:shelter_choice: 1, donate_choice: 1
生存者 - 生命值: 2, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 5, donate_choice: 0
第 2 天:shelter_choice: 2, donate_choice: 0
第 3 天:shelter_choice: 5, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 1
第 5 天:shelter_choice: 5, donate_choice: 1
第 6 天:shelter_choice: 1, donate_choice: 1
第 7 天:shelter_choice: 3, donate_choice: 0
生存者 - 生命值: 1, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 4, donate_choice: 0
第 2 天:shelter_choice: 3, donate_choice: 1
第 3 天:shelter_choice: 3, donate_choice: 0
第 4 天:shelter_choice: 1, donate_choice: 0
第 5 天:shelter_choice: 1, donate_choice: 1
第 6 天:shelter_choice: 1, donate_choice: 0
第 7 天:shelter_choice: 3, donate_choice: 1
生存者 - 生命值: 2, 金钱: 1, 存活天数: 7
第 1 天:shelter_choice: 3, donate_choice: 1
第 2 天:shelter_choice: 5, donate_choice: 0
第 3 天:shelter_choice: 0, donate_choice: 0
第 4 天:shelter_choice: 3, donate_choice: 1
第 5 天:shelter_choice: 3, donate_choice: 0
第 6 天:shelter_choice: 4, donate_choice: 1
第 7 天:shelter_choice: 1, donate_choice: 1
生存者 - 生命值: 2, 金钱: 2, 存活天数: 7
第 1 天:shelter_choice: 6, donate_choice: 1
第 2 天:shelter_choice: 5, donate_choice: 0
第 3 天:shelter_choice: 4, donate_choice: 0
第 4 天:shelter_choice: 5, donate_choice: 0
第 5 天:shelter_choice: 4, donate_choice: 0
第 6 天:shelter_choice: 1, donate_choice: 0
第 7 天:shelter_choice: 0, donate_choice: 1




只能说多去公爵之墓是真的有用。
对了,当你看到上面这句话时,暴徒们多半也看到了,所以上面这句话作废(笑)。


最后附上全部代码放在了附件之中,约400行,也不算少了hh

娱乐法师火布偶 发表于 2024-12-7 23:42:00

代码没有办法模拟人性,人会突发奇想,也可能会随缘摆烂,不过这也是这样的游戏好玩的地方

归北溟 发表于 2024-12-7 23:44:29

算法大佬出手了,我们有救了哈哈()
我也以为水银日报社是公爵墓地二号,结果第一天就被刀了两血

2297988 发表于 2024-12-7 23:46:11

就跟薛定谔的猫一样,发布出来【被观测到】后就得再写新的了……

仿生人2778号 发表于 2024-12-7 23:46:50

主要是报社隐藏了一部分信息,但是开眼真的很伤

notunicorna 发表于 2024-12-7 23:51:20

其实大鬼的刀人目标是自选的

油漆王 发表于 2024-12-7 23:54:05

泥潭的编程大佬真多啊!
但我觉得有了锯下七进七出以后,会有很明显的羊群效应。
而且玩家不是完全理性的,可能会像我这样随缘~

凯诺斯 发表于 2024-12-8 00:02:24

决策挺难的惹,个人感觉随缘一点会轻松很多:lol

Freeze123 发表于 2024-12-8 00:05:33

除非有朋友能献上肌肉兽人本子,触手TK题材或以阿努比斯为主角的就更好了,嗯。
有点像素诡计多端的srk

饥渴难耐的G 发表于 2024-12-8 00:12:09

除非有朋友能献上肌肉兽人本子,触手TK题材或以阿努比斯为主角的就更好了,嗯。
楼主,你就是想要是吧

Pshall4Cle 发表于 2024-12-8 00:26:48

还有不定因素 就是忘了回帖直接暴毙啊啊啊!

Okabe 发表于 2024-12-8 00:27:17

有一点参考价值,但我选择开摆{:4_114:}

娱乐伙伴琴键猴 发表于 2024-12-8 00:29:27

这样的活动基本上打不出最优解的

Misfit2024 发表于 2024-12-8 00:55:31

是算法大佬!但得出的结论同时作为公共信息了在这个基础上有没有可能产生新的决策?无限嵌套了属于是。。。

毛茸茸兽兽 发表于 2024-12-8 02:12:44

你猜猜我有没有猜到你猜到我猜到你猜到了这一点.jpg(´×ω×`)

黑达克 发表于 2024-12-8 04:49:47

根本没有什么策略的我,感觉这次要完蛋QAQ

you9632587 发表于 2024-12-8 07:44:27

有两个暴徒是人控制的,而且有一部分村民纯摆烂人,都会影响结果,算法很难模拟人性

王牌K 发表于 2024-12-8 08:48:39

我在想第二天医院会不会人满为患

phillipé 发表于 2024-12-8 09:43:38

完全不知道怎么玩惹,感觉村民反制的措施太少了,暴徒有点以屠杀村民为乐的感觉,希望能改进这种游戏,让大家都有点参与感惹…

咸鱼鱼 发表于 2024-12-8 10:01:27

害怕,是深度学习大佬
页: [1] 2 3
查看完整版本: 试图利用强化学习寻找《锯下七行》活动的村民优胜解