蒙特卡洛树搜索

news2024/11/15 8:01:08

目录

      • 1. 选择(Selection)
      • 2. 扩展(Expansion)
      • 3. 模拟(Simulation)
      • 4. 反向传播(Backpropagation)
      • 为什么蒙特卡洛树搜索很厉害?
      • 应用实例
    • 蒙特卡洛树搜索介绍


蒙特卡洛树搜索是一种聪明的算法,用来帮助电脑做出好的决策,尤其是在玩游戏或者解决复杂问题时。它的工作原理可以分成四个步骤:选择、扩展、模拟和反向传播。

1. 选择(Selection)

首先,想象你在一个迷宫里。选择阶段就像是从迷宫的入口开始,沿着某些路径走,直到你不能再走为止。在这一步,我们使用一些策略来决定走哪条路径,通常是选择那些看起来更有希望的路径。

在选择阶段,算法从根节点开始,根据某种策略选择一个子节点,一直到达一个叶节点。我们通常使用上置信限上界(Upper Confidence Bound, UCB)公式:

UCB = w i n i + c ln ⁡ N n i \text{UCB} = \frac{w_i}{n_i} + c \sqrt{\frac{\ln N}{n_i}} UCB=niwi+cnilnN

其中:

  • w i w_i wi 是节点 i i i 的赢的次数。
  • n i n_i ni 是节点 i i i 的访问次数。
  • N N N 是父节点的访问次数。
  • c c c 是探索参数,通常取 2 \sqrt{2} 2

2. 扩展(Expansion)

当你走到一个不能再走的地方时,你会尝试从这里开辟一条新的路径。这一步就是扩展阶段。它让我们从当前的位置开始,探索新的可能性。

3. 模拟(Simulation)

在模拟阶段,假设你继续沿着新开的路径走,直到走出迷宫或者走到尽头。在这里,我们进行很多次随机的尝试,看看每条新路径能走多远。

4. 反向传播(Backpropagation)

最后,反向传播阶段就像是回顾你刚才走过的所有路径,并记下每条路径的好坏。这样,你可以更新你走过的每个位置的信息,知道哪些路径更可能成功。

为什么蒙特卡洛树搜索很厉害?

  • 探索和利用:MCTS在选择路径时,不仅会考虑那些已经看起来很好的路径(利用),还会探索那些还不太清楚的路径(探索),确保不会错过潜在的好路径。
  • 渐进优化:随着尝试次数的增加,MCTS的决策会越来越好,最终接近最佳解。
  • 灵活应用:MCTS不需要特别的知识,适用于各种不同的问题和游戏。

应用实例

蒙特卡洛树搜索被广泛应用于像围棋、国际象棋这样复杂的游戏中,因为它能够帮助电脑快速找到接近最佳的下棋策略。此外,它也被用在机器人控制和其他需要决策的地方。

蒙特卡洛树搜索介绍

在人工智能中,人们用博弈树来表示一个游戏,博弈树的每个节点都代表一个状态,其下一个节点的集合构成了状态的子节点。
在这里插入图片描述

比如,任意一个棋盘局面就是一个状态。
在这里插入图片描述
比如,任意一个棋盘局面就是一个状态,该局面下,所有可能落子的情况形成的新局面集合,构成了该状态的子节点。
在这里插入图片描述
如果是比较简单的游戏,完全可以穷举所有的状态,然后通过穷举的结果得到最优解。事实上却无法这么做,拿围棋来说,状态树比可观测宇宙中的原子数还要多,没有计算机可以做这样的穷举。

根据大数定理,当采样数量足够大,采样样本可以无限近似地表示原分布。蒙特卡洛树搜索就是这样一种,用随机采样来作为近似估计的方法。

它通过大量自博弈来寻找“最有可能走”的节点,自博弈是指让计算机模拟两个选手,从当前棋盘局面,开始用随机或简单策略开始博弈的方法。

蒙特卡洛树搜索需要定义一个策略,来选择当前局面下“最有可能走的”子节点。展开这个子节点,然后基于这个子节点完成一次自博弈。最后记录自博弈结果并更新相关数据,重复这个过程,知道满足停止条件。

那这个选择策略该如何定义?可以只看胜率吗?
不行,因为很可能节点尽管不好,但随机走子的时候赢了一盘,博弈的次数小的时候胜率并不置信,为了解决这个问题,人们定义了一个叫UCT的公式。
在这里插入图片描述

在这里插入图片描述

  • Q i Q_i Qi是i节点赢的次数
  • N i N_i Ni是i节点的访问次数
  • C 是常数,用来调节博弈的次数所占的权重
  • T,总访问次数
    公式中加号前的部分是胜率( Q i N i \frac{Q_i}{N_i} NiQi),后面部分的曲线如下图所示

在这里插入图片描述
随着访问次数的增加,值越来越小。因此,UCT更倾向于选择那些还没怎么被统计过的节点,避免了胜率高而置信度低的问题。不停的重复这个自博弈的过程,每次都选择UCT值最高的那个节点,进行自博弈,重复多次之后,访问次数最高的那个节点就是最佳节点。

这就是蒙特卡洛树搜索的全部过程。我们可以根据需要,设置蒙特卡洛树搜索的停止条件,比如10秒之后,再比如,100万次自博弈之后,自博弈次数越多,算法的表现就会越发优秀。当然,如果自博弈次数能接近于无穷大,那么我们也能得到最优解。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【从0到1进阶Redis】哨兵模式

笔记内容来自B站博主《遇见狂神说》:Redis视频链接 小伙伴们可以看一下上一篇我的Redis笔记 —— 【从0到1进阶Redis】主从复制 这样可以更好的理解原理。 一、概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服…

Parallels Desktop 19 for Mac(PD19虚拟机)详细图文安装教程分享

Parallels Desktop 19是一款功能丰富、性能强大且易于使用的虚拟机软件,它可以让您在Mac上同时运行多个操作系统,为您提供更大的灵活性和兼容性。 Parallels Desktop 19 for Mac(PD19虚拟机)下载安装包 Parallels Desktop 19 for Mac(PD19虚拟机)详细图…

在VS2017下FFmpeg+SDL编写最简单的视频播放器

1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录,用于调试) 6…

虚拟机的状态更新

文章目录 虚拟机的更新一、检查虚拟机的配置1.已连接状态2. 保证镜像源挂载 二、进行更新三、其余事项 虚拟机的更新 虚拟机的更新是确保系统软件包和库的更新,以获得最新的修复和改进;如果长期没有打开单机或者集群,可以考虑先进行一次更新…

CentOS 停服后,服务器 OS 路在何方?

2024 年 6 月 30 日,CentOS Linux 7 终止其生命周期(EOL),至此 CentOS 全系列版本也已停止维护,属于 CentOS 的时代彻底终结。CentOS 停止维护后,用户将无法获得包括问题修复和功能更新在内的任何软件维护和…

深度学习与神经网络介绍

目录 一:深度学习的概念 二:机器学习和深度学习的区别 1.特征提取: 三:深度学习的应用场景 1.图像识别 2.自然语言处理技术 3.语音技术 四:神经网络的介绍 1.人工神经网络的概念 2.神经元的概念 3.单层神经网…

【论文阅读】《Visual Prompt Tuning》

Abstract. 目前调整预训练模型的工作方式包括更新所有骨干参数,即全面微调。本文介绍了视觉提示调整(VPT),作为大规模视觉变换器模型全面微调的高效替代方案。VPT 从高效调整大型语言模型的最新进展中汲取灵感,只在输…

uniapp 实现上传文件的功能

上传单个文件 <script setup>const handleUploadClick () > {console.log("上传文件")uni.chooseImage({success: (chooseImageRes) > {const tempFilePaths chooseImageRes.tempFilePaths;console.log("用户选择的图片&#xff1a;", temp…

华为HCIP Datacom H12-821 卷40

1.单选题 下面是台路由器BGP错误输出信息&#xff0c;关于这段信息描述错误的是 <HUAWEI>display bgp error Error Type :Peer Error Date/Time :2010-03-22 12:40:39 Peer Address :10.1.1.5 Error Info : Incorrect remote AS A、可能是由于邻居…

二叉树 —— OJ题目详解

1.二叉树的前序遍历 二叉树的前序遍历比较简单&#xff0c;但是在力扣上写这个接口需要注意几个点&#xff1a; int* preorderTraversal(struct TreeNode* root, int* returnSize) {} preorderTraversal 的返回值是动态开辟的数组&#xff0c;里面存放的是前序遍历的顺序int*…

Python 获取今天(当天)、昨天(前一天)、前天(昨天的前一天)的开始时间、结束时间

描述&#xff1a;我这里是封装成DatetimeHelper工具类来调用 1.今天(当天)开始时间、结束时间 from datetime import datetime, timedeltaclass DatetimeHelper:# 获取今天(当天)的开始时间、结束时间(datetime类型)staticmethoddef getTodayStartEnd():# 获取当前的日期now …

JVM监控及诊断工具-命令行篇--jinfo命令介绍

JVM监控及诊断工具-命令行篇02-jinfo&#xff1a;实时查看和修改JVM配置参数 一 基本情况二 基本语法2.1查看jinfo -sysprops PIDjinfo -flags PIDjinfo -flag 具体参数 PID 2.2修改 三 拓展java -XX:PrintFlagsInitialjava -XX:PrintFlagsFinaljava -XX:PrintCommandLineFlags…

IP风险画像 金融行业的安全盾牌

在当今数字化时代&#xff0c;金融行业面临着前所未有的安全挑战。随着在线交易和数字银行业务的迅猛发展&#xff0c;欺诈和网络攻击的威胁也在不断增加。金融机构需要高效、可靠的安全解决方案来保护客户的资产和个人信息&#xff0c;防止各种形式的欺诈行为。 IP风险画像是…

el-date-picker手动输入日期,通过设置开始时间和阶段自动填写结束时间

需求&#xff1a;根据开始时间&#xff0c;通过填写阶段时长&#xff0c;自动填写结束时间&#xff0c;同时开始时间和节数时间可以手动输入 代码如下&#xff1a; <el-form ref"ruleForm2" :rules"rules2" :model"formData" inline label-po…

# Redis 入门到精通(四)-- linux 环境安装 redis

Redis 入门到精通&#xff08;四&#xff09;-- linux 环境安装 redis 一、linux 环境安装 redis – 基于 Linux 安装 redis 1、基于 Center 0S7 或者 unbunt-18.04 安装 Redis 1&#xff09;下载安装包wget http://download.redis.io/releases/redis-?.?.?.tar.gz 如&…

五、 计算机网络(考点篇)试题

A、B、C都没问题&#xff0c;选D。现在基本上所有的互联网网站都是https了&#xff0c;电子支付类的更不用说了。 简单邮件传输的协议是SMTP(发)和POP3(收)&#xff0c;分别是25和110。选B和B 网络分片技术&#xff0c;分割切片嘛。 选C&#xff0c;AES加密等级比较高了&#x…

关于SQLException: Illegal mix of collations (`utf8mb4_general_ci,IMPLICIT`)...错误

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、报错信息三、最后 开篇说明 记录一个查询错误 场景&#xff1a;数据库之间某表复…

Nginx的反向代理缓存

一 .Nginx的反向代理缓存 #代理缓存路径设置缓存保存的目录 #keys_zone设置共享内存占用的空间大小 #max_size缓存大小 #inactice 超过时间,则缓存自动清理 #use_temp_path 关闭临时目录proxy_cache_path /usr/local/nginx/upsteam_cache key_zone=mycache:5m max_size=…

51单片机STC89C52RC——19.1 SG90舵机(伺服电机)

目的/效果 独立按键K1&#xff0c;K2 实现加舵机减角度增减&#xff0c;LCD1602显示舵机转角度数&#xff08;上电默认90度&#xff09; 一&#xff0c;STC单片机模块 二&#xff0c;SG90舵机 2.1 简介 舵机只是我们通俗的叫法&#xff0c;它的本质是一个伺服电机&#xf…

活动预告|想更了解流式数据湖?亚马逊云科技数据开源软件-流式数据湖 Tech Talk来啦!

活动介绍 本次活动旨在探索在亚马逊云科技上构建和使用开源数据软件产品的一些最佳实践&#xff0c;特别关注流式数据湖的构建。活动将在线上举行&#xff0c;汇聚来自 AutoMQ Apache paimon和亚马逊云科技的顶尖专家&#xff0c;分享他们在这一领域的最新进展和实际经验。参与…