所以我使用 UCT 在蒙特卡洛树搜索算法中实现了一个转置表。这允许保持游戏状态的累积奖励值,无论在整个树中遇到的位置和次数。这提高了针对特定游戏状态收集的信息的质量。
唉,我注意到这给 UCT 的开发与探索选择阶段带来了一定的问题。简而言之,分配给状态的 UCT 分数考虑了访问父状态的次数与访问子状态(我们正在为其计算 UCT 分数)的次数之间的比率。从这张图中可以看出,当从转置表中拉入一个状态到树的一个新创建的分支时,这个比例完全不正常,子状态已经被访问了很多次(来自其他地方)树)和父状态被访问的次数要少得多,这在技术上应该是不可能的。
因此,使用转置表并保持状态的累积奖励值有助于算法的利用部分做出更好的选择,但同时它以潜在有害的方式扭曲了算法的利用部分。你知道有什么方法可以解决这个意想不到的问题吗?