了解MCTS节点选择

时间:2014-01-24 00:11:14

标签: algorithm montecarlo

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

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

1 个答案:

答案 0 :(得分:7)

每次您在某个节点时,都会根据以下规则展开节点:

  • 如果以前从未展开过子节点,则随机展开其中一个未探测的子节点(并且可以立即从该子节点展开)
  • 否则,每个子节点至少访问过一次。计算所有这些“探索/利用”值并扩展具有最高值的子节点

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