news 2026/6/23 23:04:19

蒙特卡洛树搜索(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/6/23 18:12:27

Claude Code界面个性化:从新手到高手的定制之路

你是否曾经希望你的AI编码助手能够真正"懂你"?Claude Code作为终端中的智能编程伙伴,不仅理解你的代码库,还能根据你的偏好进行深度定制。今天,我们将一起探索如何将标准界面打造成专属于你的工作空间。 【免费下载链接…

作者头像 李华
网站建设 2026/6/23 18:12:26

打造灵活的视觉检测框架:适配各类产品检测场景的秘诀

视觉检测框架,已经写好了框架,适用于各种产品检测场景,只需更换图像处理算法即可。嘿,大家好!今天想跟各位分享一下我最近捣鼓出来的视觉检测框架。这个框架可不得了,它就像一个超级灵活的工具盒&#xff0…

作者头像 李华
网站建设 2026/6/23 17:56:52

IB、RocE、RDMA、TCP/IP:Scale-Out的基础

一、背景:分布式系统与 Scale-Out 架构在讲解 Scale-Out(横向扩展)之前,先介绍一下分布式系统的概念。当计算机系统发展成熟后,单一系统往往面临单点故障和性能瓶颈的问题。为解决这些问题,出现了两个主要发…

作者头像 李华
网站建设 2026/6/23 17:54:51

Gemini 3学生身份验证,免费使用一年!详细教程

今天,弄一篇详细的白嫖Gemini 3 Pro 学生优惠教程。成功解锁后,一个全新的创作与探索世界Gemini 3 Pro 模型(谷歌当前旗舰大模型)Deep Research 深度研究模式(长文档分析 & 高级推理)Nano Banana Pro 图…

作者头像 李华
网站建设 2026/6/23 17:54:51

Blynk物联网开发完整指南:零基础快速构建智能硬件项目

还在为物联网项目开发而头疼吗?Blynk物联网平台让你告别复杂的代码编写,轻松实现硬件与云端的无缝连接!想象一下,只需简单拖拽就能创建专业的控制界面,无需编写任何Android或iOS应用代码,这就是Blynk带给你…

作者头像 李华
网站建设 2026/6/23 15:24:33

基于“Smishing Triad”事件的短信钓鱼攻击机制与防御体系研究

摘要2025年11月,Google在美国纽约南区联邦法院对一个以中国为据点、被称为“Smishing Triad”(短信钓鱼三人组)的犯罪团伙提起民事诉讼,指控其运营名为Lighthouse的钓鱼即服务(Phishing-as-a-Service, PhaaS&#xff0…

作者头像 李华