2010-07-17 63 views
7

this游戏我想知道如何控制侦探或罪犯可以工作的人工智能。如何建模这种人工智能?

对于懒惰的人游戏的目的是简单的:

  • 棋盘游戏是有4种边缘(即也可以为相同的一对或顶点重叠)的无向图中,每个类是需要特定种类票证的运输方式
  • 侦探拥有一堆车票来绕过此图,每转一圈(这意味着从一个节点到另一个节点)。罪犯可以做同样的动作(加上3条专属路径),但没有限制票号
  • 罪犯通常隐藏在侦探中,但它必须在5个特定轮次中出现(然后再隐藏)
  • 如果侦探能够在24次移动之前抓住他(他们中的一个必须占据同一犯人的单元格),那么他们将获胜,否则犯罪分子必须显示他每回合使用哪张票,但他也有每个侦探1张黑色票(让我们假设5张)可用于消除这件事
  • 犯罪分子还有两张2x票,允许他在同一回合中使用两张票(以及两个动作)

我可以有效地思考一个AI的犯罪,它只是一个minmax树,试图选择最大化侦测到达他所需动作数量的动作(这似乎是一个很好的指标),但对于那些应该合作的侦探来说,我想不出任何足够酷的东西,并且通过查看它使用的门票来猜测犯罪分子的位置。

这只是为了好玩,但你现在有没有什么很酷的想法来找出一些相当聪明的东西?

+0

http://sourceforge.net/projects/scotland-yard/ – 2010-07-17 04:16:13

+0

谢谢你的链接,我已经看了一下这个实现:正如评论所述,逃逸AI的问题在于它选择了_best_ move那不是_smarter_之一。根据距离度量标准,这只是最好的,它并没有考虑到类似回溯移动的技巧(也许潜入侦探之间,而不是离他们很远)。 – Jack 2010-07-17 04:32:25

回答

1

你问如何建模,而不是如何这有效地解决:

它可以很容易地建模为部分可观马尔可夫决策过程(wiki link)。这对侦探和罪犯都有效。 POMDP是一个非常通用的模型。

1

我喜欢这个游戏,我认为你想为侦探建模犯罪分子在每个地点的概率。每隔一段时间你就会知道罪犯的确切位置,然后你可以考虑他做出的以下动作,以确定他可能在哪个位置。

一旦你有了这个,我不太清楚如何优化侦探动作。你可以调动侦探减少一系列可能性,有效地控制罪犯。但是我相信还有一些更高层次的战略需要围绕票据而不是用完。

+0

我也很喜欢它,它确实是战略性的虽然简单..这就是为什么我最终嘟about在如何有效开发ai ..也许遗传编程可以模拟不同的偏见的相似之处,侦探可以遵循不同的方法,如密切的小空间,而不是尝试做其他事情等 – Jack 2010-07-17 04:19:59

0

我想像某种蒙特卡洛实现将是一个很好的候选人,即。模拟成千上万种组合,并选择以大多数时间以最佳结果结束的组合。由于罪犯必须能够看到5次回合,所以分支因子应该保持在很好的控制之下,尽管MC也被证明是高分支因子游戏中的一种非常好的技术。走。

0

为了让侦探之间的团队协作,你需要将他们建模为团队而不是个人。 Minimax仍然是一条好路,但(可惜)你的分支因素将会飙升。

而不是通过所有的侦探,让每个侦探成为最好的,而不是你的侦探团队,你可以制定出他们可能做出的每一个移动排列。如果团队合作在这场比赛中有所帮助,那么超级巨人会支持侦探在一起工作的排列组合。

我不确定它是否实用,24层的5名侦探可能工作太多,但尝试这很有趣,这就对了吗?