2013-09-13 3 views
1

У меня есть фундаментальный вопрос относительно MCTS. Мой вопрос касается обработки начальных состояний. Насколько я понимаю, дерево поиска построено путем ветвления для действительных действий, и это приводит к тому, что одно и то же дерево поиска перемещается при каждом запуске в одном и том же состоянии. Но что, если начальное состояние игры различно при каждом запуске игры? (например, разыгрываются разные карты) Это приводит к нескольким корневым узлам, по существу приводящим к N различным деревьям поиска для игры с N возможными комбинациями раздаваемых карт? Разве это не означает, что дерево поиска, которое я создаю в предыдущих играх, бесполезно, если состояние начала отличается? Как различные стартовые состояния обрабатываются в MCTS?MCTS Искать деревья для разных состояний начала в игре

Заранее спасибо.

ответ

2

Насколько мне известно, MCTS используется для быстрого приближения дерева min-max. Здесь нет такой вещи, как «разные начальные узлы» - вы запускаете свой алгоритм с учетом конкретного текущего состояния, чтобы найти лучший ответ/переместить. В карточных играх вы запускаете его, как только вы увидите свои карты и т. Д. «Проблема» возникает в целом в недетерминированных играх, где вы не уверены в результате конкретного перемещения (из-за случайности правил игры и т. Д.), , Такие ситуации называются «недетерминированные игры» (игра в кости) или «игры с частичной информацией» (например, карточные игры). Для каждого из них были разработаны методы для MCTS.

Предлагаю взглянуть на http://mcts.ai/, где вы найдете отличную библиотеку документов, связанных с MCTS.

+0

Ну, я понимаю, что вы запускаете свой алгоритм после того, как увидите свои карты. Но это только теоретически, не так ли? В реализации вы хотите сохранить дерево и использовать его в будущих прогонах, чтобы улучшить его. Это не похоже на то, что дерево будет сброшено каждый раз, когда вы начнете новую игру. Для оптимизации алгоритма, вероятно, потребуется больше одной игры. – user1090755

+0

Я думаю, вы смешиваете две вещи. Если вы пытаетесь построить ** оптимальную стратегию игры **, то да, вам нужно будет сохранить дерево. Но это не имеет значения - вы можете просто моделировать его как первое, начальное состояние, у которого есть случайные преемники - на основе карт. Но в «реальных приложениях», таких как UCT-алгоритм GO, вы строите дерево онлайн, MCTS основаны на сильных симуляциях, которые выполняются на основе ** текущего состояния **. Вы фактически не «играете» ходы, которые считаются в дереве, вы имитируете их (вот что такое Монте-Карло) – lejlot

+0

Теперь я действительно смущен. Разве MCTS не пытается имитировать откаты и оптимизировать minmax как дерево на лету? MCTS строит дерево с симуляциями, если это разрешено. В «приложениях реальной жизни» это дерево будет сохранено, и когда нужно действие, вы найдете его в дереве, верно? – user1090755

Смежные вопросы