亚马逊棋游戏中MC/UCT混合算法的应用与优化
1. UCT算法概述
UCT(Upper Confidence Bounds Extended for Trees)算法是解决某些问题的流行方案。其核心思想是维护一个搜索树(UCT树),树的每个节点记录特定位置的获胜记录。从UCT树的根节点开始,通过选择具有最高扩展值的节点向下搜索,找到一条通向叶节点的路径。节点的扩展值等于所有经过该节点的模拟的获胜百分比加上一个偏差值,偏差值的计算公式为:$\sqrt{\frac{k \cdot \log(parent_count)}{node_count}}$,其中$parent_count$是经过该节点父节点的模拟次数,$node_count$是经过该节点的模拟次数,$k$是根据具体应用调整的常数。较小的$k$值意味着表现良好的走法更有可能继续扩展(利用),而较大的$k$值意味着在每一层会尝试更多走法(探索)。
例如,在特定局面下,对应走法G6 - C6(G6)的节点会有对应黑方后续走法的子节点。如果对应走法H3 - I4(I6)的子节点在大多数模拟中获胜,那么这条路径会被频繁选择,导致顶层节点G6 - C6(G6)开始输掉更多游戏,显示该走法不可取。同时,由于偏差值的存在,像J5 - I5(J5)这样的走法最终会被频繁探索,以获得更高的获胜百分比。
2. 混合MC/UCT方法
以基于极小极大算法的亚马逊棋程序INVADER为基础,创建了基于MC/UCT的程序INVADERMC。以下是具体的改进过程:
- 添加MC到INVADER
- 最初尝试了纯MC版本的INVADER,该版本通过反复迭代所有合法走法,从每个位
超级会员免费看
订阅专栏 解锁全文
9996

被折叠的 条评论
为什么被折叠?



