围住神经猫:最小步数与最优解的探讨

作者: 魏郎尔

来源: 果壳

发布日期: 2014-07-24

本文探讨了“围住神经猫”游戏的最小步数和最优解策略,分析了游戏的起源、策略以及在足够大棋盘上的必胜策略猜想。

首先,可能很多人都发现了,“围住神经猫”只是个老游戏换了画面。已知最早原作是日本游戏设计师 Taro Ito 2007年制作的“黑猫”( Chat Noir)。(但是他也不是这个点子的原创者,见下)

然后,可能很多人也发现了,这游戏没有理论最小步数,因为初始点亮的格子是随机的……我个人见过3步围上去的,那是开局的超好运气,没有意义。

其实这游戏好玩的地方不是比拼最小步数,而是面对各种不同的开局都能找到解法啊……

Anyway,说策略。一言以蔽之,就是“退一步海阔天空”。

以前@金色葡萄 写过一个回复,但是目测很多人都没看懂……我试着复述一下。

定理1:如果你在猫边上2格之内布子,除非有很好的地形,不然猫必定从你身边跑掉。所以在开阔场地,你的棋子至少和猫中间隔2个空格。

以此图为例:设猫的目标是向右上开阔地逃跑。如果你走1,猫向右上走2,你再走5,猫走10……显然完全拦不住,猫直接往右上方跑走了。

如果你在4布点,猫还是向2移动,你走5的话和刚才一样了,走10的话猫走5,等等,还是不行。

但是如果在7布点,就不一样了。猫1,你8,猫5,你11,就拦在了猫前面,逼迫它转向。如果猫2,你可以13,等等,同样可以拦住。

定理2:当你在开阔场地布下第一子时,封锁线会形成于你的这个子和猫中线的靠你那一侧。你应当让盘上已有子力和你的新子位于这条线上。

图来自伟大的 @金色葡萄 君,做了简化,假设猫只能往右上逃而不能往左下跑。

红色方块代表猫的起始点,绿色六边形代表你的开局第一子。红色数字代表猫需要那么多步才能跑过去,绿色数字代表你的子需要那么多步才能连过去。

显然,如果某个格子上红字小于等于绿字,表明猫会比你先到,那么朝那里布防就是没有意义的,会被突破。想象一下你的棋子是在追猫的狗。

而蓝线标记的,就是刚好红字大于绿字的那条线。

所以你在布子的时候不要太激进,和猫靠的太近会被绕过去。要尽可能在封锁线的我方一侧布子,远远地形成包围之势。

定理3:猫是“贪心”的,所以你的布子方位要挡在猫的前方。

好吧虽然大部分人已经这么做了,但可能还是要说一下……

有些人想耍小聪明,不堵前方而堵后面,寄希望于猫犯蠢。根据我们的观察,这是没有必要的,猫的走法是“贪心法”——当前局势下,哪一步最有助于它逃脱,它就走哪一步。注意是当前局势,它不会玩佯攻,不会有长远考虑,所以其实是可以预判的。

猜想1:在足够大的棋盘上玩家有必胜策略。

之所以会有这个猜想,是因为博弈论里有一个问题,叫做“天使问题”(Angel problem)或者“天使与魔鬼”游戏。这是约翰·康威提出来的,就是那个生命游戏的康威。

在天使问题里,棋盘不是六边,而是标准的围棋盘;猫(天使)分级,一阶天使可以向3*3范围(周围8格内)没有魔鬼存在的任何一格移动,二阶天使可以向5*5范围内任何一格移动,等等。魔鬼可以向任何一个没有天使的格子里布子,有限步困住天使则魔鬼胜,天使无限存活下去则天使胜。

现在我们已经证明了:二阶以上天使是有必胜策略的;一阶天使在32*33或者更小的棋盘上会输,否则也有必胜策略;如果天使的纵坐标永远不减少,或者距离原点的距离永远增加,那么会输。

但是我还没有看到六边棋盘上的情况。考虑到猫的自由度比一阶天使还要小(只能走6格),我打赌就算盘上一个初始子没有,玩家也有必胜策略,但是我不知道这需要多大的棋盘。

关于这个游戏,果壳网友还进行了许多讨论,一起来看吧~请戳“阅读原文”。

UUID: 69460d7f-a6e7-4d0f-9abe-4f819d5a6bc7

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2014/2014-07-24_“围住神经猫”有最小步数和最优解么?.txt

是否为广告: 否

处理费用: 0.0038 元