完美的蛇AI

时间:2015-10-07 17:50:45

标签: algorithm

在阅读这个问题之前,请注意我使用术语AI来描述一种算法,该算法不会从错误中学习,只是一种以高效智能的方式玩游戏的算法。

不久前看过this视频后,我决定制作自己的蛇AI。你可以找到它here(这是几个文件,这就是为什么我不在这里包含它们)。这个AI远非完美,现在我想知道完美的AI算法对于Snake游戏是什么。与我的版本不同,Snake的原始版本不包含墙,但如果您的AI算法可以处理它,那将会很好。您的算法必须支持多种尺寸的电路板,食物随机放置。有了完美的人工智能,我的意思是一个可以收集所有樱桃/食物而不会死亡的人工智能,而不是一个可以长时间保持活力的人工智能。

1 个答案:

答案 0 :(得分:7)

找到玩任何游戏的完美算法很难!

考虑游戏Connect 4. 1988年,Victor Allis证明了在完美的比赛条件下,白方将永远胜利(如果平局没有结果)。 His thesis长度为91页。

当我玩它时,游戏蛇涉及多条蛇以及苹果和其他在有限时间内出现的物品。

感谢Giovanni Viglietta (2013),我们知道只能一次遍历的收藏品和路径(你不能在蛇中越过自己)是问题的标志NP-hard 。 Viglietta使用他的技术来表明Boulder Dash,Deflektor,Lemmings,Lode Runner,Mindbender,Pac-Man,Pipe Mania,波斯王子,Puzzle Bobble 3,Skweek,Starcraft和Tron都很难(在某种意义上)。 / p>

我不知道Snakes是否属于同一类别,但其结构中的相似性(收藏品,暂时的一次性路径)表明它可能。如果是这样的话,那么就没有有效的(在某种意义上)算法来指导蛇的行为而不是蛮力的方法,这对于实时游戏来说太慢了。

因此,如果一个完美的算法是可能的,你应该期望这个证明是漫长而复杂的。如果你搞清楚,你应该获得硕士学位,这可能需要两年左右。

如果问题是NP难的,那么你不太可能喜欢一个完美的算法,你不得不放弃你的任务,转而采用启发式或近似算法。