2014-01-24 4 views
1

В настоящее время я пытаюсь реализовать MCTS для моего проекта, но я не уверен, правильно ли понимаю идею выбора узла. В начале игры, после того, как я произвольно выбираю один ход, разматывайте все дерево до точки конца игры, а затем выполняйте обратное распространение, этот узел, очевидно, воспринимается лучше всех остальных, так как он равен 1/1 (если мы получили победу) против их 0/0. Как MCTS бежит из этой ловушки и не застревает с одним, случайно выбранным узлом?Понимание выбора узла MCTS

Я имею в виду, что если мы используем, скажем, UCB для поиска лучшего узла для расширения, он всегда будет выбирать узел, который мы выбрали первым (учитывая, что он привел к победе), полностью игнорируя все остальные, поскольку он будет быть единственным, отличным от нуля. Что мне здесь не хватает, так как это, очевидно, не так?

ответ

5

Каждый раз, когда вы находитесь в узле, то разверните узел в соответствии с этими правилами:

  • , если дочерний узел никогда не был расширен до, а затем расширить одну из неисследованных ребенка случайным образом (и вы можете немедленно откройте этот дочерний узел)
  • В противном случае каждый дочерний узел посетил хотя бы один раз. Вычислить для всех из них значение «разведка/эксплуатация» и расширить дочерний узел с наибольшим значением

Идея MCTS заключается в максимизации разведки/эксплуатации. Если дочерний узел никогда не изучался раньше, связанное с ним значение «исследования» бесконечно, вам придется его исследовать. Однако, как только вы расширите все дочерние узлы, вы будете чаще распространять дочерние узлы с более высокой стоимостью (это часть «эксплуатации»)

+0

Получил это. Спасибо :) – Straightfw

+0

Рад помочь! Это обычная вежливость, чтобы подтвердить ответ, если это вам помогло, поэтому было бы здорово, если бы оно действительно помогло вам! знак равно – Fezvez