代码之家  ›  专栏  ›  技术社区  ›  Jack

如何为这种人工智能建模?

  •  7
  • Jack  · 技术社区  · 14 年前

    在玩的时候 this

    对于懒惰的人来说,游戏的目的很简单:

    • 棋盘游戏是一个无向图,有4种边(对于相同的对或顶点也可以重叠),每一种都是一种交通工具,需要一种特定的票
    • 侦探们有一堆票在这个图上移动,每转一次(也就是说从一个节点到另一个节点)。罪犯可以做同样的动作(加上3个独家路径),但没有票证限制
    • 罪犯通常被侦探隐藏起来,但他必须在5个特定的回合中出现(然后再次隐藏)
    • 如果侦探能在24步之前抓住他(其中一个必须占据罪犯的同一个牢房),那么他们就赢了,否则罪犯就赢了
    • 罪犯必须出示他每一次使用哪张罚单,但他也有一张黑票给每一个侦探(假设5张),可以用来证明这件事
    • 罪犯还有两张2倍的罚单,允许他在同一回合中使用两张罚单(以及两个动作)

    这只是为了好玩,但你现在有什么很酷的想法来做一些相当聪明的事情吗?

    4 回复  |  直到 14 年前
        1
  •  1
  •   ziggystar    14 年前

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

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

        2
  •  1
  •   Chris Pitman    14 年前

    我喜欢这个游戏,我想对于侦探们来说,你应该模拟罪犯在每个地点的概率。每隔一段时间你就知道罪犯的确切位置,然后你就可以考虑他所做的以下动作来确定他可能在哪些地点。

    一旦你有了这个,我不太确定如何优化侦探的行动。你可以移动侦探,以减少一套可能性,有效地腐蚀罪犯。但我相信,围绕门票还有一些更高层次的策略需要,而不是耗尽门票。

        3
  •  0
  •   tsiki    14 年前

    我认为某种蒙特卡罗实现是一个很好的选择,比如说,模拟成千上万的组合,然后选择一个在大多数情况下都以最佳结果结束的组合。由于罪犯必须在5个回合内可见,分支因子应该保持在良好的控制之下,尽管MC在高分支因子的游戏中也被证明是一种非常好的技术,即Go。

        4
  •  0
  •   Daniel    14 年前

    为了让侦探之间的团队合作,你需要把他们塑造成一个团队而不是个人。Minimax仍然是一个很好的方法,但是(遗憾的)你的分支因子将会飙升。

    你不用一步一步地检查所有的侦探,让他们做出似乎对每一个都是最好的,而不是对你的侦探团队,你要找出他们可能做出的每一个动作排列。如果团队合作在这个游戏中有帮助的话,那么极大极小值将有利于侦探们一起工作的排列。

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