【问题标题】:MCTS Search Trees for different start States in a Game游戏中不同开始状态的 MCTS 搜索树
【发布时间】:2013-09-14 13:14:23
【问题描述】:

我有一个关于 MCTS 的基本问题。我的问题是关于开始状态的处理。 据我了解,搜索树是通过对有效操作进行分支构建的,并且每次以相同状态开始时都会遍历相同的搜索树。但是如果每次游戏开始时游戏的开始状态都不一样怎么办? (例如发不同的牌) 这是否会导致多个根节点本质上导致 N 种不同的搜索树用于具有 N 种可能的发牌组合的游戏?这是否意味着如果开始状态不同,我在以前的游戏中构建的搜索树是无用的? MCTS 中如何处理不同的启动状态?

提前谢谢你。

【问题讨论】:

    标签: machine-learning artificial-intelligence


    【解决方案1】:

    据我所知,MCTS 用于快速逼近 min-max 树。这里没有“不同的起始节点”之类的东西 - 您运行您的算法给定特定的当前状态以找到最佳答案/移动。在纸牌游戏中 - 一旦你看到你的牌 等,你就运行它。“问题”通常出现在你不确定特定移动结果的非确定性游戏中(由于游戏规则等)。这种情况被称为“非确定性游戏”(骰子游戏)或“具有部分信息的游戏”(如纸牌游戏)。对于每一个都已经开发了 MCTS 方法。

    我建议看看http://mcts.ai/,在那里你可以找到很棒的 MCTS 相关论文库。

    【讨论】:

    • 嗯,我知道你在看到你的卡片后运行你的算法。但这只是理论上的,不是吗?在实现中,您希望存储树并在以后的运行中使用它来进一步改进它。并不是每次您开始新游戏时都会重置树,因为该算法可能需要不止一个游戏来优化树。
    • 我认为你混淆了两件事。如果您正在尝试构建最佳游戏策略,那么是的,您必须存储树。但这没关系——你可以简单地将它建模为第一个初始状态,它有随机的后继——基于卡片。但是在“现实生活中的应用程序”中,例如您在线构建树的 GO 的 UCT 算法,MCTS 是基于大量模拟,这些模拟是在 当前状态 的基础上执行的。您实际上并没有“玩”树中考虑的动作,而是模拟它们(这就是蒙特卡洛的意义所在)
    • 现在我真的很困惑。 MCTS 不是在尝试模拟推出并动态优化最小最大树吗?只要允许,MCTS 就会使用模拟构建树。在“现实生活应用程序”中,这棵树将被存储,当需要一个操作时,您在树中查找一个,对吗?
    • 一旦采取行动,您切断树的不可到达部分并再次运行它(更新当前树),因为您*通常)获得新资源(轮班时间)。因此,您始终知道您的卡片处于初始状态。正如我在答案中所说 - 游戏可能是不确定的,但“开始”状态始终是已知
    • 那么你能告诉我你将如何确保你在每场比赛(每场新比赛)中获得更好的结果。之前存储大树构建并与多次播放产生的树合并不是有意义吗?在一个模拟阶段评​​估所有可能的比赛并不总是可能的,是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    相关资源
    最近更新 更多