我想开发一个具有不完全信息的两人游戏--“战略”。
这个游戏“有点”像国际象棋,但最初我们对对手棋子的等级一无所知。当一个棋子攻击或被某个对手的棋子攻击时,他们的等级会显露出来,较高等级的棋子会杀死/捕获等级较低的棋子。更多关于游戏的细节可以在here上找到。
我做了一点调查。我读过J.A. Stankiewicz的“战略中的对手建模”。但是我找不到关于如何开发这个游戏的完整教程。我之前已经成功开发了一款双人游戏--“奥赛罗”。Reversi,我熟悉MINIMAX算法和alpha-beta剪枝。
我发现蒙特卡洛树搜索也被用于开发零和双人游戏。它能用在像《战略号》这样的游戏中吗?我能得到一个同样的完整教程吗?
任何其他不涉及蒙特卡洛树搜索的教程也会很有用:)
发布于 2012-10-14 05:58:22
我认为MCTS在战略游戏中会有一段困难的时间,因为初始传播函数太大了,而最好的游戏非常依赖于游戏的实际情况。也就是说,在最好的情况下,MCTS会给你一个在所有可能的对手棋子变种中统计良好的游戏,但最好的下一步走法高度取决于他们选择的特定变种。
我还在发展对MCTS的坚实理解,但在我看来,MCTS在涉及隐藏信息的多轮欺骗游戏中表现不佳(规范地说,扑克,但我想说,也是战略)。在这样的游戏中,你真的需要开发一个其他玩家情况/策略的模型,MCTS本质上会给你一个统计上与所有树相关的答案,而不仅仅是地面实况树。
MCTS适用于涉及大量机会的游戏(双陆棋和其他涉及骰子和许多纸牌游戏的棋盘游戏),在我看来是一个很好的通用解决方案,可以迅速采用到大量现代的“欧式”棋盘游戏中。(有趣的是,尽管它们涉及“欺骗性策略”,但它们通常涉及的隐藏信息相对较少。)
发布于 2012-10-14 01:20:03
我不知道我的had顶部有没有针对不完整信息的MCTS,而且似乎需要对算法进行实质性的修改才能使其工作。
即使在一种非常有限的策略类型中,每边只有十个棋子,只有两种类型的棋子,并且只有一个“较强”的棋子,你仍然在玩十种可能的实际游戏之一。在一场完整的战略游戏中,由于首发位置的大量组合,这些组合看起来都很相似,因此存在更多的不确定性。
似乎你还必须增强算法来捕获“揭示的知识”,因为它发生了,例如,在我们的玩具示例中,每一次在碎片之间的相遇都会揭示一些关于敌人位置的信息。
这似乎是一个有趣的尝试,但只针对一个非常有限的类似策略的问题,并理解现成的MCTS是不够的,您必须仔细和深入地考虑算法的正确扩展。
https://stackoverflow.com/questions/12873879
复制相似问题