✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。

🍎 往期回顾关注个人主页:Matlab科研工作室

🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。

🔥 内容介绍

在当今科技飞速发展的时代,移动机器人已广泛应用于工业制造、物流仓储、医疗服务、家庭助老等诸多领域 ,为人们的生产生活带来了极大便利。而路径规划作为移动机器人实现自主导航的核心技术,其重要性不言而喻。它就像是机器人的 “大脑”,负责规划出一条从起始点到目标点的最优或可行路径,使机器人能够在复杂多变的环境中安全、高效地完成任务。

传统的路径规划方法,如 Dijkstra 算法、A算法等,在已知环境地图且环境较为简单、静态的情况下,能够发挥出良好的性能 。Dijkstra 算法通过广度优先搜索,从起始点开始,逐步扩展到所有可达节点,最终找到从起始点到目标点的最短路径,就如同在一张清晰标注的城市地图上,规划出从家到工作地点的最短驾车路线。A算法则在 Dijkstra 算法的基础上引入了启发式函数,它能够根据当前节点到目标节点的预估距离,优先搜索更有可能接近目标的节点,大大提高了搜索效率,类似于在导航时,优先选择距离目的地更近的道路。

然而,现实世界中的环境往往是复杂且动态变化的。在物流仓库中,货物的摆放位置可能随时改变,新的货物可能被搬运进来,原有的货物可能被取走;在医院中,人员的流动频繁,医疗设备可能临时放置在通道上。面对这些动态未知环境,传统路径规划方法的局限性就暴露无遗。它们难以实时感知环境的变化,无法快速调整路径规划策略,导致机器人在遇到突发情况时,可能会出现碰撞障碍物、陷入死胡同或无法找到目标路径等问题,严重影响了机器人的工作效率和安全性。

为了克服传统路径规划方法的不足,研究者们开始将目光转向智能算法和学习算法,基于 CNN-GRU 的深度 Q 网络(DQN)这一创新解决方案应运而生。它融合了卷积神经网络(CNN)强大的图像特征提取能力、门控循环单元(GRU)对序列数据的处理优势以及深度 Q 网络在强化学习中的决策能力,为移动机器人路径规划带来了新的思路和方法,有望使机器人在复杂动态环境中实现更加智能、高效的路径规划。

深度 Q 网络(DQN)探秘

DQN 的起源与核心思想

深度 Q 网络(DQN)的诞生,为强化学习领域带来了革命性的突破。2015 年,DeepMind 公司的研究团队在《Nature》杂志上发表了题为 “Human - level control through deep reinforcement learning” 的论文 ,首次提出了 DQN 算法,成功将深度学习与强化学习相结合,让智能体在 Atari 游戏中通过学习达到了人类水平的控制能力,这一成果震惊了学术界和工业界,开启了深度强化学习的新纪元。

在传统的强化学习中,Q 学习是一种经典的基于值的算法,它通过学习状态 - 动作对的 Q 值来指导智能体的决策,Q 值表示在某个状态下采取某个动作所能获得的未来累积奖励的期望值 。然而,当面对高维状态空间和复杂的环境时,传统 Q 学习使用的 Q 表存储方式面临着维度灾难的问题,即随着状态和动作空间的增大,Q 表的规模会呈指数级增长,导致存储和计算成本变得难以承受 。

DQN 的核心思想就是引入深度神经网络来近似表示 Q 值函数,从而解决传统 Q 学习在高维状态空间中的困境 。神经网络具有强大的函数逼近能力,它可以将状态作为输入,直接输出每个动作对应的 Q 值,而无需像 Q 表那样存储所有可能的状态 - 动作对 。这样,DQN 能够自动学习状态的特征表示,对相似状态进行泛化,使得智能体可以在复杂的环境中进行高效的决策 。例如,在机器人路径规划任务中,机器人所处的环境状态可以用传感器采集到的图像、距离信息等高维数据来表示,DQN 可以通过神经网络对这些数据进行处理,快速估计出在当前状态下采取不同动作(如前进、左转、右转等)的 Q 值,进而选择最优动作,规划出合理的路径。

DQN 算法流程详解

  1. 初始化阶段:首先,需要初始化两个深度神经网络,分别是 Q 网络(也称为策略网络)和目标网络 。这两个网络的结构相同,但参数不同 。Q 网络用于估计当前状态下各个动作的 Q 值,以指导智能体的动作选择;目标网络则用于计算目标 Q 值,为 Q 网络的训练提供稳定的目标 。同时,还需要初始化经验回放缓冲区,它用于存储智能体与环境交互过程中产生的经验数据,包括状态、动作、奖励和下一状态等信息 。
  1. 与环境交互:智能体根据当前的策略从 Q 网络中获取当前状态下各个动作的 Q 值,并依据 ε - 贪婪策略选择一个动作执行 。ε - 贪婪策略是一种平衡探索与利用的策略,它以 ε 的概率随机选择一个动作,以 1 - ε 的概率选择 Q 值最大的动作 。这样,智能体既有机会探索新的动作,发现更好的策略,又能利用已有的经验选择当前认为最优的动作 。智能体执行动作后,环境会根据动作的执行结果返回奖励和下一状态 。例如,在移动机器人路径规划中,机器人执行前进动作后,环境会根据是否碰撞障碍物、是否接近目标点等情况给予相应的奖励,并告知机器人新的位置状态 。
  1. 经验存储:智能体将与环境交互得到的经验(状态、动作、奖励、下一状态)存储到经验回放缓冲区中 。经验回放缓冲区通常具有固定的容量,当缓冲区满时,新的经验会覆盖最早存储的经验 。这种存储方式为后续的训练提供了丰富的数据来源 。
  1. 采样与更新:从经验回放缓冲区中随机采样一批经验数据,这些数据被用来训练 Q 网络 。对于采样到的每个经验,首先计算目标 Q 值 。如果当前状态是终止状态,目标 Q 值就等于当前获得的奖励;如果不是终止状态,目标 Q 值等于当前奖励加上折扣因子 γ 乘以目标网络在下一状态下预测的最大 Q 值 。然后,根据目标 Q 值和 Q 网络当前预测的 Q 值,计算损失函数,常用的损失函数是均方误差(MSE) 。最后,通过反向传播算法计算损失函数对 Q 网络参数的梯度,并使用优化器(如 Adam)更新 Q 网络的参数,使得 Q 网络的预测值更接近目标值 。
  1. 目标网络同步:为了保证训练的稳定性,目标网络的参数并不会实时更新,而是每隔一定的步数(比如 C 步),将 Q 网络的参数复制给目标网络 。这样,在一段时间内,目标网络的参数保持不变,为 Q 网络的训练提供了稳定的目标,避免了由于目标值频繁变化而导致的训练不稳定问题 。通过不断地重复上述与环境交互、经验存储、采样更新和目标网络同步的过程,Q 网络逐渐学习到最优的策略,使得智能体在环境中能够获得最大的累积奖励 。

⛳️ 运行结果

📣 部分代码

function DrawPic(result,data,str)

figure

%%给值是1的坐标赋值黑色,给值是0的坐标赋值白色

MAP=data.map;

b =MAP; %把MAP赋值给b

b(end+1,end+1) = 0;

colormap([1 1 1;[122,52,146]./255]);  % 创建颜色:其中1是白色

pcolor(0.5:size(MAP,2)+0.5,0.5:size(MAP,1)+0.5,b); % 赋予栅格颜色

set(gca,'XTick',1:size(MAP,1),'YTick',1:size(MAP,2));  % 设置坐标

xpath = data.node(result.path2,1);

ypath = data.node(result.path2,2);

axis image xy;

hold on

plot(data.landmark(:,1),data.landmark(:,2),'b+');

hold on

plot(xpath,ypath,'-','LineWidth',2,'color',[180,0,0]./255)

hold on 

S1= xpath(1);

S2= ypath(2);

plot(S1,S2,'.','MarkerEdgeColor','r', 'MarkerFaceColor','r','MarkerSize',20);

hold on

E1=xpath(end);

E2=ypath(end);

plot(E1,E2,'h','MarkerEdgeColor','r', 'MarkerFaceColor','r','MarkerSize',8);

title([str,'最优结果:',num2str(result.fit)])

end

🔗 参考文献

[1]董瑶,葛莹莹,郭鸿湧,等.基于深度强化学习的移动机器人路径规划[J].计算机工程与应用, 2019, 55(13):6.DOI:10.3778/j.issn.1002-8331.1812-0321.

🎈 部分理论引用网络文献,若有侵权联系博主删除

 👇 关注我领取海量matlab电子书和数学建模资料 

🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:

🌟 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位、冷链、时间窗、多车场等、选址优化、港口岸桥调度优化、交通阻抗、重分配、停机位分配、机场航班调度、通信上传下载分配优化
🌟 机器学习和深度学习时序、回归、分类、聚类和降维

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归\预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌟图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌟 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻、公交车时间调度、水库调度优化、多式联运优化
🌟 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划、
🌟 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌟 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌟电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统(BMS)SOC/SOH估算(粒子滤波/卡尔曼滤波)、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进(扰动观察法/电导增量法)、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化
🌟 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌟 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌟 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP

👇

5 往期回顾扫扫下方二维码

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐