强化学习路径优化:基于Q-learning算法的机器人路径优化(MATLAB)

news/2024/5/14 16:34:17/文章来源:https://blog.csdn.net/weixin_46204734/article/details/131525174

一、强化学习之Q-learning算法

Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的结果,因此在Q-learning算法中更新Q表就是机器人与环境的交互过程。机器人在当前状态s(t)下,选择动作a,通过环境的作用,形成新的状态s(t+1),并产生回报或惩罚r(t+1),通过式(1)更新Q表后,若Q(s,a)值变小,则表明机器人处于当前位置时选择该动作不是最优的,当下次机器人再次处于该位置或状态时,机器人能够避免再次选择该动作action. 重复相同的步骤,机器人与环境之间不停地交互,就会获得到大量的数据,直至Q表收敛。QL算法使用得到的数据去修正自己的动作策略,然后继续同环境进行交互,进而获得新的数据并且使用该数据再次改良它的策略,在多次迭代后,Agent最终会获得最优动作。在一个时间步结束后,根据上个时间步的信息和产生的新信息更新Q表格,Q(s,a)更新方式如式(1):

式中:st为当前状态;r(t+1)为状态st的及时回报;a为状态st的动作空间;α为学习速率,α∈[0,1];γ为折扣速率,γ∈[0,1]。当α=0时,表明机器人只向过去状态学习,当α=1时,表明机器人只能学习接收到的信息。当γ=1时,机器人可以学习未来所有的奖励,当γ=0时,机器人只能接受当前的及时回报。

每个状态的最优动作通过式(2)产生:

Q-learning算法的搜索方向为上下左右四个方向,如下图所示:

Q-learning算法基本原理参考文献:

[1]王付宇,张康,谢昊轩等.基于改进Q-learning算法的移动机器人路径优化[J].系统工程,2022,40(04):100-109.

二、Q-learning算法求解机器人路径优化

部分代码:提供参考地图,地图数值可以修改(地图中0代表障碍物,50代表通道 ,70代表起点 ,100代表终点),最大训练次数等参数可根据自己需要修改。

close all
clear
clc
global maze2D;
global tempMaze2D;
NUM_ITERATIONS =700; % 最大训练次数(可以修改)
DISPLAY_FLAG = 0; % 是否显示(1 显示; 0 不显示)注意:设置为0运行速度更快
CurrentDirection = 4; % 当前机器人的朝向(1-4具体指向如下)
% 1 - means robot facing up
% 2 - means robot facing left
% 3 - means robot facing right
% 4 - means robot facing down
maze2D=xlsread('10x10.xlsx');%%导入地图(提供5个地图,可以修改) maze2D中 0代表障碍物 50代表通道 70代表起点 100代表终点
[startX,startY]=find(maze2D==70);%获取起点
[goalX,goalY] = find(maze2D==100);%获取终点
orgMaze2D = maze2D;
tempMaze2D = orgMaze2D;
CorlorStr='jet';

地图中绿色为通道,蓝色为障碍物,红线为得到的路径,起始点均标注。

(1)第一次结果

机器人最终路径:

  49   1

  48   1

  47   1

  47   2

  47   3

  48   3

  48   4

  48   5

  48   6

  48   7

  48   8

  47   8

  47   9

  47  10

  46  10

  45  10

  45  11

  45  12

  44  12

  43  12

  42  12

  42  13

  42  14

  42  15

  42  16

  42  17

  42  18

  42  19

  41  19

  41  20

  41  21

  41  22

  40  22

  40  23

  40  24

  40  25

  39  25

  38  25

  37  25

  36  25

  35  25

  34  25

  34  24

  33  24

  32  24

  31  24

  30  24

  30  25

  29  25

  28  25

  28  24

  27  24

  26  24

  25  24

  24  24

  24  25

  24  26

  24  27

  23  27

  22  27

  21  27

  21  28

  21  29

  21  30

  22  30

  22  31

  22  32

  22  33

  22  34

  21  34

  21  35

  21  36

  20  36

  19  36

  18  36

  17  36

  16  36

  15  36

  15  37

  15  38

  14  38

  14  39

  14  40

  14  41

  13  41

  12  41

  11  41

  10  41

   9  41

   8  41

   8  40

   7  40

   6  40

   5  40

   4  40

   4  41

   4  42

   4  43

   3  43

   2  43

   1  43

   1  44

   1  45

   1  46

   1  47

   2  47

   2  48

   1  48

机器人最终路径长度为 107

机器人在最终路径下的转向及移动次数为 189

(2)第二次结果

机器人最终路径:

  49   1

  48   1

  47   1

  47   2

  46   2

  45   2

  44   2

  44   3

  44   4

  43   4

  42   4

  42   5

  42   6

  42   7

  42   8

  42   9

  42  10

  41  10

  41  11

  41  12

  42  12

  42  13

  42  14

  42  15

  42  16

  42  17

  42  18

  42  19

  41  19

  41  20

  41  21

  41  22

  40  22

  40  23

  40  24

  40  25

  39  25

  38  25

  37  25

  36  25

  35  25

  34  25

  34  24

  33  24

  32  24

  31  24

  30  24

  30  25

  29  25

  28  25

  28  24

  27  24

  26  24

  25  24

  24  24

  24  25

  24  26

  24  27

  23  27

  22  27

  21  27

  21  28

  21  29

  21  30

  22  30

  22  31

  22  32

  22  33

  22  34

  21  34

  21  35

  21  36

  20  36

  19  36

  19  37

  18  37

  18  38

  17  38

  16  38

  15  38

  14  38

  14  39

  14  40

  14  41

  13  41

  12  41

  11  41

  10  41

   9  41

   8  41

   8  40

   7  40

   6  40

   5  40

   4  40

   4  41

   4  42

   4  43

   3  43

   2  43

   1  43

   1  44

   1  45

   1  46

   1  47

   1  48

机器人最终路径长度为 105

机器人在最终路径下的转向及移动次数为 186

(3)第三次结果

机器人最终路径:

  49   1

  48   1

  47   1

  47   2

  47   3

  48   3

  48   4

  48   5

  48   6

  48   7

  48   8

  47   8

  47   9

  47  10

  46  10

  45  10

  45  11

  44  11

  44  12

  43  12

  42  12

  42  13

  42  14

  42  15

  42  16

  42  17

  42  18

  42  19

  41  19

  41  20

  41  21

  41  22

  40  22

  40  23

  40  24

  40  25

  39  25

  38  25

  37  25

  36  25

  35  25

  34  25

  34  24

  33  24

  32  24

  31  24

  30  24

  30  25

  29  25

  28  25

  28  24

  27  24

  26  24

  25  24

  24  24

  24  25

  24  26

  24  27

  23  27

  22  27

  21  27

  21  28

  21  29

  21  30

  22  30

  22  31

  22  32

  22  33

  22  34

  21  34

  21  35

  21  36

  20  36

  19  36

  19  37

  18  37

  18  38

  17  38

  16  38

  15  38

  14  38

  14  39

  14  40

  14  41

  13  41

  12  41

  11  41

  10  41

   9  41

   8  41

   8  40

   7  40

   6  40

   5  40

   4  40

   4  41

   4  42

   4  43

   3  43

   2  43

   1  43

   1  44

   1  45

   1  46

   2  46

   2  47

   1  47

   1  48

机器人最终路径长度为 107

机器人在最终路径下的转向及移动次数为 200

三、完整MATLAB代码

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像视频基础

图像视频基础 文章目录 图像视频基础图像颜色深度分辨率 视频帧率比特率帧类型 YUV模型色度子采样 图像 颜色深度 存储颜色的强度,需要占用一定大小的数据空间,这个大小被称为颜色深度。假如每个颜色的强度占用 8 bit(取值范围为 0 到 255&…

nginx+tomcat负载均衡和动静分离

目录 1.部署nginx 2.部署两台tomcat 3.配置nginx 1.部署nginx vim /vim/lib/systemd/system/nginx.service 2.部署两台tomcat 进入第一台装第一个tomcat vim /etc/profile vim /usr/local/tomcat/webapps/test/index.jsp 重启 进入第二台安装第二台tomcat vim /usr/local/tom…

(0021) H5-Vuejs配合 mint-ui 开发移动端web

mint-ui 初衷 element-ui主打pcweb,导致移动端上UI适配问题突出,趟了很多坑。这次更加理智些,选择了饿了么团队的主打移动端的mint-ui,目前来说体验很好。 认识Mint-ui 首先在手机上体验其demo,扫描链接:…

在 Jetpack Compose 中创建 Drawer

Jetpack Compose 是一个现代的构建 Android UI 的工具集,它使得构建 UI 变得更加简单快速。在本篇博客中,我们将讨论如何在 Jetpack Compose 中创建 Drawer,也就是我们常见的侧边抽屉。 什么是 Drawer? Drawer 是一个提供导航选项…

基于Transformer视觉分割综述

基于Transformer视觉分割综述 SAM (Segment Anything )作为一个视觉的分割基础模型,在短短的 3 个月时间吸引了很多研究者的关注和跟进。如果你想系统地了解 SAM 背后的技术,并跟上内卷的步伐,并能做出属于自己的 SAM…

GC回收器演进之路

目录 未来演进方向 历经之路 引用计数法 标记清除法 复制法 标记整理 分代式 三色标记法的诞生 三色标记法的基本概念 产生的问题 问题 1:浮动垃圾 问题 2:对象消失 遍历对象图不需要 STW 的解决方案 屏障机制 插入屏障(Dijks…

Autosar诊断系列介绍17 - 物理寻址及功能寻址详解

本文框架 前言1. 物理寻址及功能寻址基本概念1.1物理寻址及功能寻址-定义1.2两种寻址方式区别1.3不同诊断服务寻址方式配置 2.不同寻址方式的应用场景 前言 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所…

基于SQLI的SQL字符型报错注入

基于SQLI的SQL字符型报错注入 一. 实验目的 理解数字型报错SQL注入漏洞点的定位方法,掌握利用手工方式完成一次完整SQL注入的过程,熟悉常见SQL注入命令的操作。 二. 实验环境 渗透主机:KALI平台 用户名: college 密码: 360College 目标网…

JAVA麻将胡牌算法深度解析

目录 麻将的基本概念 麻将牌的构成 麻将的碰,杠,吃,听,胡 麻将胡牌条件 胡牌算法简介 选将拆分法 算法数据结构 构建数据结构 数据结构使用 牌花色的获取 获取某一花色的牌值 获取某一张牌相邻牌 算法代码实现 基础代…

Web3.0 应用开发:选择合适的框架和工具至关重要

随着 Web3.0 时代的到来,区块链技术的普及和应用让去中心化的应用开发变得更加可行。然而,要开发出高效、稳定和安全的 Web3.0 应用,选择合适的框架和工具至关重要。本文将介绍 Web3.0 应用开发的关键因素,帮助开发者做出明智的选…

Hive Metastore 表结构

Hive MetaStore 的ER 图如下。 部分表结构和说明。 CTLGS(CATALOGS) catalogs 可以隔离元数据。默认只有1行。一个 CATALOG 可以有多个数据库。 mysql> DESC CTLGS; -------------------------------------------------------- | Field | Type | Null |…

海康明眸设备SDK二次开发NET_DVR_SetupAlarmChan_V41老是报109错误

请仔细阅读图2中的文件,这里详细介绍了怎么样 放置DLL,务必按照图3中的说明步骤进行放置。HCNetSDKCom文件夹一定也要拷贝到debug目录,否则就会出现类似于109的错误提示。

NR 吞吐量测试

前言 参考文档: 5G NR TBS (Transport Block size) Calculator | 5G-Tools.com 5G NR Transport Block Size (TBS) Calculation - Techplayon 5G MCS _ 搜索结果_哔哩哔哩_Bilibili 4/5G无线资源和数据调度流程:CQI上报、基站AMC调度、调度信息DCI下发、CQI到MCS的对…

网联V2X视频事件检测相机使用说明书

1 产品概览 网联 V2X视频事件检测相机 视频事件检测相机 ,内置 1/1.8″逐行扫描 800万像素传感器;视 万像素传感器;视 频编码协议支持 H.265、H.264、MJPEG;具有 1个 10M/100M/1000M自适应以 太网 RJ45接口、 1路 RS485接口&#…

Windows基于WSL搭建Python数据分析环境

最近配置了一台较为不错的台式机,记录下自己配置环境的过程。 安装WSL,提供Linux环境 如果你发现后续的命令无法运行或者说软件商城中找不到,这可能意味着你的操作系统不符合要求。WSL安装要求 Windows 10 version 2004(Build 19…

Go程序结构- package和import

1、包和文件 在Go语言中包的作用和其他语言中的库或模块的作用类似,用于支持模块化、封装、编译隔离和重用。关键点如下: (1)包中保存一个或者多个.go结尾的文件,而包的目录就是包的导入路径 (2)中Go中通过一条简单的规则来管理标识符是否对外…

SpringBoot 3.1 新版HTTP调用

在SpringBoot3版本发布后 官方便声明了推荐使用了内置声明式的HTTP客户端。 一、声明式HTTP客户端使用(依赖引入) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></depende…

Gradio库中的HighlightedText组件

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

https 证书到期,手动更新

-1. 这里有第一次配置 https 证书步骤 https://blog.csdn.net/u013633921/article/details/129941674 0. 记录一下&#xff0c;因为 3 个月后还会用到的。。 1. 验证域名所有权&#xff08;在某个目录下放置指定文件验证&#xff09; http://172.245.xxx.xxx/.well-known/pki-…

【MATLAB笔记】基础函数及向量

一、基础函数绘制 版本&#xff1a;Matlab2021a 实例1&#xff1a;生成向量 >> x0:0.1:30; >> ysin(x).*cos(x); >> plot(x,y) 实例2&#xff1a;创建向量 >> xlinspace(0,2*pi); >> ysin(x) >> plot(x,y) 二、向量的点积 >> a…