news 2026/7/16 22:26:22

蒙特卡洛树搜索(MCTS)3-代码框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蒙特卡洛树搜索(MCTS)3-代码框架
class NodeMCTS: def __init__(self, *node_info): self.node_info = node_info self.parent = 'parent' # 视情况取舍 self.children = {} # key:动作 value:节点 self.can_expand = True # 否表示node无法拓展,是终止态或者满孩子 self.is_terminal = False # 终止态标记 # 与搜索过程相关的动态属性 self.win_count = 0 self.visit_count = 0 # 不需要可去掉 self.q = 0 self.u = 0 def action_to_max_uct_child(self): """ 获取指向最大uct孩子的动作 """ pass def check_flag(self): """ 检查节点布尔变量状态 """ pass def add_child(self, action=''): """ 可指定动作添加孩子,或随机 """ pass def uct_calculation(self): """ 按uct公式计算uct(注意分母为0的情况 """ pass class TreeMCTS: def __init__(self, *node_info): self.root = NodeMCTS(*node_info) self.update_nodes = [] # 表示需要更新的Node路径 def select(self): """ 个人认为此次有两种实现思想:深度优先,广度优先 深度优先是比较贴近mcts算法的描述的,即总是选择孩子进行拓展:如果node只有一个孩子,拓展该孩子;多个孩子则选择uct最大的 另一种是自己琢磨的,仅供讨论:综合考虑node与孩子的uct值,如果node自身uct大于每个孩子,选择node拓展(如果可拓展) """ pass def expand(self): """ 添加孩子到树里或不作为,同时把模拟起点的node传给simulate函数 """ pass def simulate(self, start_node)-> bool: """ rollout或仿真实验 """ pass def feedback(self, is_win): """ 更新本次模拟起点及其所有祖先的visit_count,win_count """ pass def train(self, deadline: int): """ 设置迭代次数 """ for _ in range(deadline): self.select() self.expand() is_win = self.simulate() self.feedback(is_win) def output(self): """ 输出算法结果,根据某个指标执行select函数即可,比如节点q值、访问次数、uct值等 """ pass

之前日记1和日记2,介绍了mcts的一些原理,现在经过我几个月对mcts的利用,是时候分享我关于其代码实现的想法了。总的来说,我认为mcts的灵活性是很高的,或许这也是相关论文里没有说明mcts的具体实现路径的原因。只要思路遵循4阶段迭代,价值公式的内核类似uct即可。这是关于mcts经典版本的框架,其中关于select方式提出自己的个人想法,欢迎各位指导欢迎交相互流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 8:29:03

WorkTool企业微信机器人:免Root零封号自动化终极指南

企业微信作为企业级通讯工具,在日常工作中扮演着重要角色,但手动管理大量群组和消息往往效率低下。WorkTool企业微信机器人通过官方无障碍服务,实现了免Root、零封号的安全自动化管理,为企业提供了完整的智能办公解决方案。 【免费…

作者头像 李华
网站建设 2026/7/15 15:06:59

景德镇陶瓷品牌导航网:陶瓷采购者的品牌查找利器

景德镇陶瓷品牌导航网:陶瓷采购者的品牌查找利器引言景德镇,作为中国陶瓷的故乡,拥有悠久的制瓷历史和深厚的文化底蕴。随着现代陶瓷产业的发展,市场上涌现出众多陶瓷品牌,如何高效地找到合适的品牌成为采购者的一大挑…

作者头像 李华
网站建设 2026/7/16 14:35:27

Move Mouse终极指南:让你的电脑永远保持在线状态

Move Mouse终极指南:让你的电脑永远保持在线状态 【免费下载链接】movemouse Move Mouse is a simple piece of software that is designed to simulate user activity. 项目地址: https://gitcode.com/gh_mirrors/mo/movemouse 在日常工作和学习中&#xff…

作者头像 李华
网站建设 2026/7/14 23:30:12

5个理由告诉你:为什么TV-Bro是智能电视浏览器的终极选择

周末的午后,你窝在舒适的沙发上,想要在智能电视上查个菜谱,却发现遥控器操作网页困难重重😫。按钮点不准、页面加载慢、操作体验差...这些问题TV-Bro智能电视浏览器都能完美解决!专为电视大屏优化的设计,让…

作者头像 李华
网站建设 2026/7/14 17:20:54

太阳能组件产线电池串测试仪:完善权限管理,筑牢产线数据安全防线

在太阳能组件规模化生产场景中,电池串测试作为核心质检环节,其检测数据的安全性、操作流程的规范性直接关联产品品质追溯与生产管理效率。武汉曜华太阳能组件产线电池串测试仪,以全方位、精细化的权限管理体系,为产线检测作业筑起…

作者头像 李华