【问题标题】:Monte Carlo Tree Search: Tree Policy for two player games蒙特卡洛树搜索:两人游戏的树策略
【发布时间】:2017-02-17 15:54:48
【问题描述】:

我对如何实施 MCTS“树策略”感到有些困惑。我读过的每篇论文或文章都谈到了从当前游戏状态下树(在 MCTS 术语中:玩家即将采取行动的根)。我的问题是,即使我处于 MIN 玩家级别(假设我是 MAX 玩家),我如何选择最好的孩子。即使我选择了 MIN 可能采取的某些特定操作,并且我的搜索树通过该节点变得更深,MIN 玩家在轮到它时也可能会选择一些不同的节点。(如果 min 玩家是业余人类,它可能就像选择一些不一定是最好的节点)。由于 MIN 选择了不同的节点,这使得 MAX 通过该节点进行传播的整个工作都是徒劳的。 对于我所指的步骤: https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/ 树策略在哪里:https://jeffbradberry.com/images/mcts_selection.png 有点让我相信他们是从单个玩家的角度来执行它的。

【问题讨论】:

  • 我在问题中没有看到任何 Python。
  • 剥削玩法需要对手建模。事实证明,对于大多数游戏来说,假设对手发挥最佳就足够了。扑克可能是个例外。
  • 对不起彼得的标签!我是 SE 新手,我主要使用 python 编写代码。现在我意识到这无关紧要。
  • Paul,那么当我实施“树策略”时,我应该从 MIN 的 P.O.V. 中选择最好的孩子吗?当我处于MIN玩家会采取行动的水平时?
  • @AvisekNaug 是的,您尝试为 MIN 玩家选择最佳着法。

标签: algorithm montecarlo alpha-beta-pruning


【解决方案1】:

要为两人游戏实现 MCTS,您可以简单地在反向传播的每一步中翻转符号,代码中的一行更改。

这意味着我们试图在每一层中最大化奖励,但是当我们将奖励传播到树上时,当你到达你的层时,对你对手的积极奖励对你来说是消极的。

【讨论】:

    【解决方案2】:

    对于 MCTS,您需要某种方法来生成对可能移动的概率分布的合理估计。对于 AlphaGo [1],这是快速推出概率,即论文中的 $p_\pi$,它采用一个状态并输出所有可能移动的粗略概率分布。 AlphaGo 团队将其实现为一个浅层神经网络,首先在专家游戏上进行训练,然后通过与自己对战来改进。

    [1]http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

    【讨论】:

    • 所以你的意思是它不会影响我的游戏玩法,因为当 MIN 玩不同的动作或朝着我喜欢的游戏方向移动时,我会再次做 MCTS?
    • 不完全。显然,在不完全了解你的对手的情况下,不可能完美地预测 MIN 的每一个动作,所以我们猜测一些最好的候选人,看看他们的领先优势。看看 expectimax 算法而不是简单的 minimax 可能会对这里的直觉有所帮助
    猜你喜欢
    • 2014-07-11
    • 2018-11-20
    • 2018-09-02
    • 2018-06-27
    • 2020-04-09
    • 1970-01-01
    • 2012-02-21
    • 2019-08-02
    • 2017-08-12
    相关资源
    最近更新 更多