[AI] 优先级LRTA*搜索算法 Prioritized-LRTA*

news2024/11/25 2:59:34

Prioritized-LRTA*

  • 一、算法原理
  • 二、举个栗子!
  • 参考

一、算法原理

原文点这儿!

优先级扫描(Prioritized Sweeping)是一种用于强化学习问题的算法,它根据优先级排序的状态更新执行异步动态规划(Moore & Atkeson 1993) 1。如果一个状态的值函数有很大的潜在变化,则它具有很高的优先级。为了保持算法的实时保证,每个计划阶段都可以进行最多的β更新,并且只有潜在更新大于的状态才会被添加到队列中。优先级扫描被证明比q-学习和Dyna-PI更有经验效率(Moore & Atkeson 1993)。

上边是原文翻译过来的,主要就是说这个算法是按优先级给节点进行更新的,这个节点的值潜在变化越大优先级就越高,“潜在变化: Δ \Delta Δ” 在下文程序二中给出了具体的计算方式。

下边才到了算法重点哈,下文的结构是先笼统讲一下P-LRTA*算法的流程,流程中用到的具体的三个函数伪代码将在流程下边进行详细介绍:

P-LRTA*(Prioritized简称P-)分为两个阶段,一个是规划阶段(planning phase),一个是动作阶段(action phase),我把具体操作步骤加粗了,未加粗的是各种算法特性之类的。

  • 规划阶段

    • P-LRTA*仅通过考虑邻近节点来更新当前节点(函数2:StateUpdate(s)),然后把已更新状态的节点的近邻节点加入队列,优先级是根据 Δ \Delta Δ 的大小。
    • 如果队列满了,就把队列中优先级低的移走(函数3:AddToQueue(s, Δ \Delta Δ))。
    • P-LRTA* 和 LRTA* 一样不需要对地图的初始信息,并且对不可见区域采用自由空间假设。
    • 当队列大小为0时,P-LRTA等同于LRTA
    • 队列有明确的大小,这也严格保证了有限内存的使用。
    • 当更新完当前节点的 h 值后,开始优先级更新
    • 从队列顶部取最多 PS_MAX_UPDATE 个节点并使用函数1:Prioritized-LRTA(s) 进行更新
    • 那些队列中没取完的节点下个规划阶段再用,这也产生了一个不连续的搜索空间,但这是有益的,因为
  • 动作阶段

    • Agent 从 s 节点移动到拥有最小 f ( s , s ′ ) f(s, s') f(s,s) 的 s’ 节点, 其中 f ( s , s ′ ) = c ( s , s ′ ) + h ( s ′ ) f(s, s')=c(s, s')+h(s') f(s,s)=c(s,s)+h(s) c ( s , s ′ ) c(s, s') c(s,s)是节点s和s‘ 直接的距离,h(s’)是节点s’的启发式值。

下面介绍下用到的三个函数:

  • 函数 1
    在这里插入图片描述

函数1应该是主体函数了,输入就是 节点s,先判断s是不是目标节点,如果不是,就进入循环,先调用函数2更新当前节点的 h 值,然后它有个最大更新数,前面提到了,主要没超过这个更新次数并且队列里还有节点,就依次取出队列顶部的节点,只要不是目标节点,就更新h值最后向 f 值最小的节点移动。 加粗部分对应上边加粗的步骤

  • 函数 2
    在这里插入图片描述
    函数2用于更新节点h值,先判断s是不是目标节点,然后计算最低 f(s, s’),然后计算 Δ \Delta Δ Δ \Delta Δ就是用来衡量优先级的, Δ \Delta Δ越大优先级越高。如果 Δ \Delta Δ大于0,就把节点s的所有临近节点加入队列,然后更新当前节点 s的启发式值 h

  • 函数 3
    在这里插入图片描述
    函数3 用于把节点加入队列,队列要是没满并且节点s不在里面,就加进入,否则,把优先级低的移走,再把s加入

二、举个栗子!

在这里插入图片描述
如上图a所示,有A, B, C, D和Goal五个节点,从最远的D开始,目标是Goal,其启发式值总是为0,每个相邻节点见的移动代价 c = 1,每条路径都是双向的,圈内的值是当前该节点的启发式值 h,上边的方格表示队列。

以下是对该算法的具体应用例子步骤:

  • 首先执行 函数1 Prioritized-LRTA*(D), 更新D,进入StateUpdate(D),计算最小f,f(D, C)=f(D, B)=1+1=2, Δ = 2 − 1 > 0 \Delta=2-1>0 Δ=21>0 , 把 D 的所有临近节点即B, C加入队列,其优先级都是1写在了下标处,更新 h(D)=2,如图b所示

  • 继续运行函数1,此时队列非空,依次置行取出队列顶部节点,先取B,调用StateUpdate(B),f(B, A)=1+1=2, Δ = 2 − 1 = 1 > 0 \Delta=2-1=1>0 Δ=21=1>0,把B相邻节点A,D加入队列,其优先级也都是1,更新h(B)=2, 对C同理,由于A,D已在队列中了,最终结果如图c所示

  • 从队列取出A,最小 f ( A , G o a l ) = 1 + 0 = 1 , f(A,Goal)=1+0=1, f(A,Goal)=1+0=1, Δ = 1 − 1 = 0 \Delta=1-1=0 Δ=11=0,所以h(A)不更新,也不将临近节点加入队列。

  • 从队列取出D,最小 f ( D , B ) = f ( D , C ) = 1 + 2 = 3 , Δ = 3 − 2 = 1 > 0 f(D, B)=f(D,C)=1+2=3, \Delta=3-2=1>0 f(D,B)=f(D,C)=1+2=3,Δ=32=1>0,将B, C加入队列,优先级都是1,更新 h ( D ) = f ( D , B ) = f ( D , C ) = 3 h(D)=f(D, B)=f(D,C)=3 h(D)=f(D,B)=f(D,C)=3, 如图d所示

  • 从队列中取出B,最小 f ( B , A ) = 2 , Δ = 0 f(B, A)=2, \Delta=0 f(B,A)=2,Δ=0,无事发生,C同理

  • 队列空了,跳出循环,找到最小 f ( D , B ) = f ( D , C ) = 1 + 3 = 4 f(D, B)=f(D, C)=1+3=4 f(D,B)=f(D,C)=1+3=4,节点从D移动到B或者C。

参考

  • [1] Moore, A., and Atkeson, C. 1993. Prioritized sweeping: Reinforcement learning with less data and less time. Machine Learning 13:103–130.

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

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

相关文章

30_待机唤醒实验

目录 待机唤醒 STM32的3种低功耗模式: 相关寄存器讲解 相关库函数介绍 待机唤醒配置步骤: 实验源码: 待机唤醒 很多单片机有低功耗模式,STM32也不例外。在系统或者电源复位后,微控制器出于运行状态之下, HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用…

Google,微软等世界级大厂的面试套路,原来如此

最近在读吴军老师的《硅谷来信谷歌方法论》,其实,吴军老师谈到了很多谷歌,微软,高盛等世界级公司面试的问题,我从中启发很多,也理解了开放性问题对于一个人的重要性。开放性问题并不具有标准答案&#xff0…

(附源码)ssm医疗管理系统 毕业设计 260952

SSM医疗管理系统 摘 要 随着社会的发展与科技的进步,医疗的管理越来越复杂,过去的信息记录已经无法满足医院的需要。近些年随着电脑普及和数字信息技术发展,可以讲信息技术运用于医院的信息管理。促进医院各部门之间协调工作,提高…

[附源码]计算机毕业设计JAVA疫情状态下病房管理平台

[附源码]计算机毕业设计JAVA疫情状态下病房管理平台 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM …

React跨域请求,http-proxy-middleware代理服务,Axios实现前端请求

React Axios跨域请求 React跨域React Axios跨域请求一、跨域概念二、前后端中跨域现象三、跨域解决方案(2种)0、产生原因1、前端解决(React框架)解决原理:配置过程2、后端解决(Spring-boot配置&#xff0…

可观测性神器之 Micrometer

简介 对于大部分开发人员来说可能用过普罗米修斯 Grafana 这样的监控系统,从未听说过 Micrometer 工具,这里就详细的来介绍下可观测性神器 Micrometer,让你在开发时使用它就和使用 SLFJ 日志系统一样简单易用,有效的提升系统的健…

使用DevExpress WPF主题设计器轻松创建Office 2019绿色主题(一)

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的The…

使用JavaRestClient查询文档排序、分页、高亮

可以参考着“利用JavaRestClient实现文档的CRUD(从mysql数据库转移到es)”来看 http://t.csdn.cn/SP5nx 1、解析响应的方法 private void handleResponse(SearchResponse response) {// 4.解析响应SearchHits searchHits response.getHits();// 4.1.获取…

NPM相关

npm包管理工具,安装完node.js,就有npm相关 winR node -v 查看node版本 npm -v 查看npm版本 node.js与npm的关系,只能说node.js里内嵌了npm 功能相关 npm的一些命令 npm conf ls 和 npm config list 都是查看npm配置信息 没有区别 注意:如果你是在当前目录下,比如我这…

头部咨询管理企业的数字化转型之路

咨询管理行业前景与现状! 5000字讲解3家头部咨询企业案例,希望能给大家在数字化方面带来一些启发。(找客服,可获取咨询行业解决方案详细版) 1、数字化转型同样是咨询行业的大命题 新冠疫情发生以来,各行…

Linux重定向原理与系统调用dup2

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸 文章目录一、重定向原理①输出重定向②输入重定向二、重定向的系统调用dup2dup2输出重定向三、如何理解一切皆文件四.缓冲区①常见的缓冲区刷新策略②…

【数据结构与算法】B树与B+树

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:数据结构与算法 🌠 首发时间:2022年12月6日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾…

电脑e盘不见了怎么恢复?6个步骤找回e盘

电脑e盘不见虽然不是一件常见的事,但是也会有发生的情况。虽然我们还有其他磁盘,平时也会经常忽略e盘。但是e盘也是一个存储磁盘,当电脑e盘不见了,我们也会想要找回来。那么电脑里的e盘丢失了怎么找回呢?下面我们就一起…

QListWidget::itemEntered无效

利用QListWidget进行数据列表的展示; (1)初始化一个QListWidget: QListWidget* newListWidget new QListWidget(parent); newListWidget->setResizeMode(QListView::Adjust); newListWidget->setViewMode(QListView::Icon…

论文浅尝 | AdaLoGN: 基于推理的机器阅读理解的自适应逻辑图网络

笔记整理:何仕玉珑,天津大学硕士链接:https://arxiv.org/pdf/2203.08992.pdf动机最近的机器阅读理解数据集(如ReClor和LogiQA)需要对文本执行逻辑推理。传统的神经模型不足以进行逻辑推理,而符号推理机不能直接应用于文本推理。为…

【Cross-Direction and Progressive Network:交叉的挖掘信息】

A Cross-Direction and Progressive Network for Pan-Sharpening (一种交叉递进的泛锐化网络) 本文提出了一种交叉方向渐进(cross-direction and progressive)网络CPNet来解决全色锐化问题。对信息的充分处理是我们模型的主要特…

实战三十一:基于LightGCN推荐算法的推荐系统详细教程(代码+数据)

推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)构造出用户-项目交互图,协同过滤利用过去的用户-项目交互来实现预测;对相似的用户进行推荐相同喜好的item,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的…

01-go基础-05-数组(声明数组、数组赋值、遍历数组、数组值修改)

文章目录1. 声明数组- 语法- 完整示例2. 数组赋值- 语法- 完整示例- 未赋值的元素仍为默认值3. 数组元素赋值- 语法- 示例4. 数组访问4.1 访问数组中元素4.2 遍历数组5. 数组的修改5.1 修改全部数组元素值5.2 修改单个元素值5.3 数组长度不可以更改1. 声明数组 - 语法 语法 …

刷爆力扣之1 比特与 2 比特字符

刷爆力扣之1 比特与 2 比特字符 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&am…

[附源码]Python计算机毕业设计Django四川景区管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…