artificial-intelligence - 蒙特卡洛树搜索:从部署中获取价值
问题描述
我目前正在为策略游戏 AI 编写 Monte Carlo Tree Search 的实现,并且对 Rollout(模拟阶段)有疑问。
该算法的描述建议您应该运行模拟,直到达到最终状态,但是当您有很大的搜索空间和有限的时间时,这是不切实际的。就我而言,我将模拟步骤的数量限制为某个值(如果终止,则提前完成)。
在模拟的每个步骤中,我都会评估状态,但由于模拟由一系列随机动作组成,因此评估值可以在模拟期间增加或减少。问题是:对于非终端状态模拟,我应该返回最后的状态评估,还是在运行期间观察到的最佳状态评估?
解决方案
通常,您会在模拟结束时使用该值。但是,MCTS 会定期针对许多不同的领域进行调整,因此您可以自由地以一种能够为您提供最佳性能的方式进行调整。
据我所知,这个想法最初是为亚马逊提出的。在应用评估函数之前,他们只使用了“大约 6 步”的随机游走。
推荐阅读
- vue.js - Vue WSL Ubuntu - 在新应用程序中删除 HelloWorld.vue 组件时找不到“HelloWorld.vue”依赖项
- r - 使用 if/else 语句将虚拟变量分配给时间序列?
- c++ - 是否可以在派生类的联合中使用基类成员?
- javascript - 使用 Puppeteer 单击选择器
- python - 更新导入的对象
- mongodb - 使用 express-rate-limit 存储 cookie 信息
- scala - 将 Future[A] 转换为 Future[Try[A]] 或 EitherT[Future, Throwable, A]
- flutter - Flutter - Bloc - 比较两个文本字段密码和密码确认的问题
- c++ - 如何在C++中创建一个没有动态内存分配的链表作为模板
- api - 如何使用我的用户名和密码访问 Blackboard API?