2014-01-24 55 views
1

我目前正在尝试为我的项目实施MCTS,但我不确定是否理解了正确选择节点的想法。在游戏开始时,在我随机选择一个动作之后,将整个树展开到游戏结束点,然后进行反向传播,这个节点显然比所有其他游戏更好,因为它是1/1(如果我们得到了胜利)与他们的0/0。 MCTS如何逃离该陷阱并且不会被随机选择的节点卡住?了解MCTS节点选择

我的意思是,如果我们用UCB找到最好的节点来扩展,它总是会选择我们首先选择的节点(因为它导致了胜利),因为它会完全忽略所有其他节点是唯一一个非零价值的。我在这里错过了什么,因为它显然不是这种情况?

回答

5

每次你在一个节点上,您可以根据这些规则,展开节点:

  • 如果一个子节点之前从未被扩大,然后展开随机的未开发孩子的一个(你可以立即从这个子节点展开)
  • 否则,每个子节点至少被访问过一次。为所有人计算“勘探/开采”值并扩大具有最高值的子节点

MCTS的想法是最大化勘探/开采。如果一个孩子节点以前从未被探索过,那么与它相关的“探索”价值是无限的,你将不得不去探索它。但是,一旦你扩展了所有的子节点,那么你将更频繁地扩展具有更高值的子节点(这是“开发”部分)。

+0

明白了。谢谢:) – Straightfw

+0

很高兴能有帮助!如果它能帮助你,那么验证一个答案是很常见的事情,所以,如果它确实帮助你,那将是很酷的! =) – Fezvez