【发布时间】:2020-04-09 21:06:42
【问题描述】:
我希望你做得很好。我目前正在开展一个项目,我们需要通过使用 Mcts(蒙特卡洛树搜索)来实现 connect4-agent。据我了解,mcts基本上分为四个阶段:
1) 树构造
2) 通过 Ucb1 值进行选择,直到到达叶节点
3) 如果叶节点已被访问,则展开
4) Rollout = 随机模拟,直到达到最终状态并为该最终状态评分(例如,我们赢了--> 分数 =1,我们输了--> 分数 = -1,平局--> 分数 = 0)
5) 对分值进行反向传播,对访问过的节点添加一次访问。
6) 根据1级的分值决定移动。
我们的代码运行良好。不过,我不确定如何执行扩展阶段。如果我们到达一个已经被访问过的叶子节点,我们知道我们需要从这个节点展开树。考虑一下你有 3 个可能的动作。我们如何决定是否要使用 move=1、move =2 或 move = 3 扩展树?
目前算法会随机选择这些动作之一进行扩展,但我认为这远非最优。
最好的问候, 阿尔贝托
【问题讨论】:
标签: tree artificial-intelligence monte-carlo-tree-search