首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当蒙特卡洛树搜索达到内存限制时该怎么办

当蒙特卡洛树搜索达到内存限制时该怎么办
EN

Stack Overflow用户
提问于 2013-04-19 16:16:51
回答 3查看 1.5K关注 0票数 7

我最近对蒙特卡洛树搜索在游戏中的应用产生了兴趣。

我读过几篇论文,但我还是使用了Chaslot的博士论文“蒙特卡洛树搜索”,因为我发现更容易理解蒙特卡洛树搜索的基础知识

我试着对它进行编码,并纠结于某些问题。该算法尝试为每个模拟将一个节点扩展到博弈树中。这很快就会升级为内存问题。我已经快速阅读了这篇论文,但它似乎没有解释如果达到一定的内存限制,该技术将会做什么。

如果达到了一定的内存限制,你能建议这项技术应该怎么做吗?

你可以在这里看到论文:http://www.unimaas.nl/games/files/phd/Chaslot_thesis.pdf

EN

回答 3

Stack Overflow用户

发布于 2016-02-27 13:49:27

一种非常有效的方法是让树生长得更慢。也就是说,不是在每次到达叶节点时都扩展树,而是在它至少有k次访问时扩展它。这将显著减慢树的生长速度,并且通常不会降低性能。Fuego Go程序的一位作者告诉我,他尝试了这种方法,在实践中效果很好。

这一想法最初是在本文中描述的:

雷米·库伦。蒙特卡洛树搜索中的高效选择性和备份运算符。计算机和游戏,第72-83页。施普林格,2007。

它还用于:

Max Roschke和Nathan Sturtevant使用Endgame数据库在中国跳棋中的UCT增强,IJCAI计算机游戏研讨会,2013。

票数 4
EN

Stack Overflow用户

发布于 2013-04-20 01:15:00

您可以丢弃访问次数小于某个阈值的所有节点,这些阈值最近没有被访问过(之前有多少次播放)。这是一个快速但效率不高的解决方案。最好也实现渐进式加宽。

票数 1
EN

Stack Overflow用户

发布于 2019-04-22 18:09:21

论文Memory Bounded Monte Carlo Tree Search评估了这个问题的各种解决方案:

  • Stopping:当达到内存限制时停止算法limit
  • Stunting:当达到内存限制时停止生长树(但继续更新it)
  • Ensemble:当达到内存限制时保留结果并从空树中重新开始搜索(在end)
  • Flattening处融合结果:当达到内存限制时,删除除根及其直接子节点之外的所有节点,并从这个新的basisH217<重新开始搜索/code>
  • Garbage收集:当您达到内存限制时,删除未访问过给定数量的节点的所有节点:添加节点时,删除未访问时间最长的节点
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16100226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档