项目介绍 MATLAB实现基于LSTM-ACO-Q-learning 长短期记忆网络(LSTM)结合蚁群算法(ACO)与Q学习算法(Q-learning)进行无人机三维路径规划(含模型描述及部分示例代
MATLAB实现基于LSTM-ACO-Q-learning 长短期记忆网络LSTM结合蚁群算法ACO与Q学习算法Q-learning进行无人机三维路径规划的详细项目实例请注意此篇内容只是一个项目介绍 更多详细内容可直接联系博主本人或者访问对应标题的完整博客或者文档下载页面含完整的程序GUI设计和代码详解无人机三维路径规划是智能感知、实时决策与自主控制深度融合的典型任务在复杂地形、动态障碍、通信约束与能源约束并存的场景中路径不仅要满足起点到终点的连通性还要兼顾飞行安全、航程效率、避障能力、能耗代价以及任务完成质量。传统的几何规划方法在静态、规则环境中具有较强可解释性但面对三维空间中的非线性约束、局部最优陷阱、障碍物时变分布以及航迹平滑需求时往往表现出鲁棒性不足、搜索效率偏低和适应性较弱等问题。尤其在城市低空物流、山区巡检、灾害搜救、海面监测、边境巡逻等任务中无人机需要在复杂环境中快速生成可执行轨迹同时还要根据环境变化对原有路径进行动态修正这使得单一优化算法很难长期稳定地满足工程要求。长短期记忆网络能够从历史环境状态、局部地图序列、传感器观测序列中提取时序特征对未来障碍分布趋势、风险区域演化和局部代价变化进行预测因此特别适合处理动态环境中的路径规划前馈建模问题。蚁群算法具有并行搜索、正反馈强化和全局遍历能力能够通过信息素积累逐步收敛到较优路径尤其适合将离散三维栅格空间中的节点连接问题转化为组合优化问题。Q学习属于典型的无模型强化学习方法能够在交互式试探中学习状态到动作的价值映射适合在线调整局部决策策略使无人机在不同风险状态下动态选择更优动作。将LSTM、ACO与Q-learning进行耦合可以形成一种兼具“预测”“搜索”“学习”三种能力的混合智能框架LSTM负责预判环境变化与局部代价趋势ACO负责在候选空间中进行全局寻优Q-learning负责在执行层面持续修正动作策略从而显著提升路径规划的实时性、稳定性与泛化能力。该类项目的研究价值不仅体现在算法性能提升上还体现在工程落地的可扩展性。三维路径规划通常是无人机任务链中的前端核心模块其输出结果直接影响飞控稳定、任务时长、电池消耗、通信连通率以及任务成功率。通过构建可仿真的三维环境、障碍物模型、奖励函数和评价指标可以将复杂问题拆解为可重复实验的系统流程为后续加入风场扰动、动态目标跟踪、多机协同、边缘计算和数字孪生平台奠定基础。MATLAB环境对于该类研究具有较强优势既可以快速完成矩阵化建模、路径可视化与性能统计又能够结合神经网络、优化工具箱和控制系统模块实现从算法验证到原型演示的完整闭环。基于MATLAB R2025b的实现还需要兼顾新版语法、神经网络层接口变化以及绘图对象限制等问题因此在设计时应优先采用兼容性更高的函数接口、简洁稳定的训练流程与清晰的模块化结构保证项目既具有理论深度也具有工程可执行性。项目目标与意义构建高鲁棒性的三维路径决策框架该项目的首要目标是建立一套适用于复杂三维环境的无人机路径决策框架使路径规划不再依赖单一启发式搜索而是融合时序预测、群体智能和强化学习三类机制形成稳定的联合优化流程。LSTM用于识别环境状态随时间变化的规律能够从历史障碍位置、局部高度变化或风险评分中提取潜在趋势为后续搜索提供前馈信息。ACO在此基础上对全局路径进行候选探索避免传统贪婪搜索过早收敛。Q-learning则进一步在局部动作层面修正策略使规划结果更适合实际执行。该框架的意义在于提高三维路径在复杂环境中的鲁棒性使系统面对障碍变化、噪声扰动和局部最优时仍能输出可行路线。降低路径能耗并提升任务效率第二个目标是兼顾飞行效率与能源消耗通过综合路径长度、爬升下降代价、转向平滑度、障碍安全距离与风险惩罚建立面向能耗优化的评价体系。无人机在三维空间中进行大角度转弯、频繁升降或绕障过度时都会导致动力系统负载增加从而缩短续航时间。将能耗因素显式纳入路径代价函数后优化过程不仅追求最短距离还会追求更平滑、更连续、更省电的轨迹。该目标的重要意义在于使路径规划从“能到达”进一步升级为“高质量到达”特别适用于电池容量有限、任务窗口紧张和补给困难的场景从而显著提高单次任务完成率与系统整体运行效率。提升动态环境中的自适应能力第三个目标是实现对动态环境的快速自适应。现实任务中障碍物可能移动禁飞区域可能扩展通信链路可能波动风场和气流也会改变飞行代价。LSTM能够对环境变化做短期预测Q-learning能够在交互中不断更新动作价值ACO则可以周期性重新评估候选路径并重新分配搜索资源这种协同机制使系统具备连续适应能力。其意义在于路径规划不再是一次性静态求解而是可以随着环境变化持续迭代优化减少因环境突变导致的路径失效风险增强系统在真实任务中的持续可用性。支撑工程验证与后续扩展研究第四个目标是形成可验证、可复现、可扩展的MATLAB工程实例为后续研究提供标准化基础。通过建立统一的三维网格、障碍生成、奖励设计、算法接口和评价指标可以方便比较不同参数配置下的性能差异支持对路径长度、平滑度、成功率、搜索时间和能耗等指标进行量化分析。该目标的意义在于为论文实验、课程设计、项目展示和后续科研扩展提供统一平台还可进一步扩展到多无人机协同、目标跟踪、地图重建与在线重规划等更复杂方向为系统级研究提供稳定支撑。项目挑战及解决方案三维空间搜索维度高、状态爆炸明显三维路径规划比二维规划更复杂状态空间不仅包含平面位置还包含高度维度、爬升代价和空间遮挡关系节点数量会随分辨率提升快速增长。若直接在高密度网格中全局搜索计算复杂度会迅速上升导致实时性下降甚至出现搜索中断。针对这一问题解决方案是将环境进行分层建模先对三维空间进行离散化再通过LSTM对局部风险和环境趋势进行预测为ACO筛选高概率可行区域减少无效搜索范围同时利用Q-learning在局部范围内做动作修正从而将高维问题拆解为预测、筛选和决策三个层级显著缓解状态爆炸。动态障碍与随机扰动导致路径易失效动态障碍、风扰、感知误差和地图更新延迟会使原本可行的路径在执行过程中失效尤其在狭窄通道或障碍密集区微小偏差都可能造成碰撞风险。解决方案是将环境状态设计为时序输入利用LSTM对未来若干步的障碍风险进行估计并将预测值注入ACO的信息素更新与Q-learning奖励函数中使路径选择不是仅依据当前观测而是基于未来风险趋势。与此同时在执行过程中设置重规划触发条件当局部代价超过阈值或可行通道中断时立即启动局部重新搜索确保路径具备自恢复能力。多算法耦合后参数调节复杂LSTM、ACO和Q-learning分别拥有不同的超参数体系包括网络层数、隐藏单元数、信息素挥发系数、启发式权重、学习率、折扣因子和探索概率等耦合后参数联动关系复杂若调节不当可能出现收敛慢、震荡大或局部最优过强的问题。解决方案是采用分阶段调参策略先训练LSTM使预测误差稳定再固定预测模块后调节ACO搜索参数最后在稳定候选路径上微调Q-learning策略参数。与此同时奖励函数采用分项加权方式把距离、平滑、风险和高度变化分开设计便于定位问题来源。通过这种模块化调参思路可提高整个系统的稳定性与可解释性也更方便在MATLAB中逐步验证。项目模型架构环境建模层环境建模层负责将无人机飞行场景转化为可计算的三维离散空间。通常采用三维栅格或稀疏节点图表示空间每个节点代表一个可通行位置节点之间通过六邻域、十八邻域或二十六邻域连接。障碍物可以表示为静态禁飞体、动态移动体或概率风险体高度约束、通信盲区和能耗约束也可被编码到节点代价中。在该层中路径搜索不直接面对连续空间而是面对结构化图空间便于ACO进行组合优化也便于Q-learning进行离散动作定义。环境建模层的核心作用是把现实世界中的复杂物理约束转化为矩阵、网格和权重从而为后续智能算法提供统一输入。LSTM预测层LSTM预测层用于提取环境演化中的时序规律。长短期记忆网络通过输入门、遗忘门和输出门控制信息流在处理长序列时比普通循环网络更不容易出现梯度消失问题。在本项目中LSTM可以输入历史障碍位置、局部风险值、飞行速度变化、节点拥挤度或传感器测量序列输出未来若干时刻的风险评分、可行性概率或局部代价值。其基本原理是让网络学习“过去状态如何影响未来路径可行性”从而为ACO提供更具前瞻性的启发式信息。若某些区域在未来将出现较高风险LSTM可以提前抬高这些节点代价使全局搜索更少进入高危区域提升规划可靠性。ACO全局搜索层ACO全局搜索层负责在三维图空间中寻找候选路径。蚁群算法模拟蚂蚁通过信息素寻找食物的行为多个搜索个体并行扩展路径每次迭代后根据路径质量更新信息素较优路径累积更多信息素较差路径逐步被挥发。该机制适合解决离散组合优化问题尤其适合路径规划中节点连接顺序的优化。在本项目中信息素不仅与距离有关还与LSTM预测的风险代价、节点高度变化和碰撞风险相关使搜索过程兼顾全局探索与环境趋势。ACO层的作用是生成多个候选方案并快速收敛到一条代价较低、连通性较强的主路径为后续局部学习提供稳定初始策略。Q-learning局部决策层Q-learning局部决策层用于在执行阶段对动作进行在线修正。其核心思想是维护状态到动作的价值表当前状态下选择价值较高的动作执行后根据即时奖励更新Q值。对于无人机路径规划状态可以是当前位置、目标相对方向、局部障碍分布和剩余能量动作可以是六方向或二十六方向中的一个移动选择。奖励函数综合考虑距离缩短、风险规避、平滑飞行和高度变化代价。Q-learning的基本原理是通过试错不断逼近最优策略因此非常适合处理局部不确定性和在线动态修正问题。该层能在ACO提供的大方向基础上继续优化每一步移动选择使轨迹更贴近执行需求。三层协同优化层三层协同优化层负责把LSTM、ACO和Q-learning串联成闭环。LSTM先输出未来风险预测作为ACO的信息素初始化和启发式函数权重ACO在预测约束下完成全局候选路径搜索Q-learning则对候选路径中的局部动作进行修正和再评估。该层还负责统一代价函数、触发重规划机制和管理收敛判断。其基本原理是把“预测”“搜索”“学习”分工明确化预测负责减少不确定性搜索负责发现较优全局结构学习负责增强局部适应性。三者协同时系统不仅能给出一次性最优路径还能在环境变化后维持较强的再规划能力从而形成工程上更稳定的三维路径规划框架。项目模型描述及代码示例1. 三维环境与障碍物建模 clc; clear; close all; % 清空命令行、变量和图窗保证实验从干净环境开始 rng(42); % 固定随机种子保证障碍分布与结果可复现 gridSize [20, 20, 8]; % 定义三维栅格尺寸分别表示x、y、z方向离散规模 startNode [2, 2, 2]; % 设置起点坐标作为无人机初始位置 goalNode [18, 18, 7]; % 设置终点坐标作为无人机目标位置 occGrid false(gridSize); % 创建三维逻辑栅格false表示可通行true表示障碍 for k 1:28 % 生成若干静态障碍体提高场景复杂度 cx randi([4, 17]); % 随机障碍中心x坐标避开边界方便形成可绕行空间 cy randi([4, 17]); % 随机障碍中心y坐标形成不规则障碍布局 cz randi([2, 7]); % 随机障碍中心z坐标模拟不同高度层的障碍 sx randi([1, 2]); % 障碍在x方向半宽度控制障碍尺度 sy randi([1, 2]); % 障碍在y方向半宽度控制障碍尺度 sz randi([1, 1]); % 障碍在z方向半宽度避免完全封死空间 x1 max(1, cx-sx); % 计算障碍最小x边界并限制在网格内 x2 min(gridSize(1), cxsx); % 计算障碍最大x边界并限制在网格内 y1 max(1, cy-sy); % 计算障碍最小y边界并限制在网格内 y2 min(gridSize(2), cysy); % 计算障碍最大y边界并限制在网格内 z1 max(1, cz-sz); % 计算障碍最小z边界并限制在网格内 z2 min(gridSize(3), czsz); % 计算障碍最大z边界并限制在网格内 occGrid(x1:x2, y1:y2, z1:z2) true; % 将障碍区域置为true表示不可飞行 end occGrid(startNode(1), startNode(2), startNode(3)) false; % 确保起点不被障碍占用 occGrid(goalNode(1), goalNode(2), goalNode(3)) false; % 确保终点不被障碍占用 riskMap zeros(gridSize); % 创建风险场用于描述局部环境不安全程度 for x 1:gridSize(1) % 遍历x维度生成风险值 for y 1:gridSize(2) % 遍历y维度生成风险值 for z 1:gridSize(3) % 遍历z维度生成风险值 if ~occGrid(x,y,z) % 仅对可通行节点计算风险 distGoal norm([x,y,z] - goalNode); % 计算到目标点距离用于构造趋势性风险 distObs inf; % 初始化到障碍的最近距离 [ox, oy, oz] ind2sub(size(occGrid), find(occGrid)); % 提取所有障碍点坐标 if ~isempty(ox) % 仅当存在障碍点时计算最近距离 d sqrt((ox-x).^2 (oy-y).^2 (oz-z).^2); % 计算当前点到所有障碍的欧氏距离 distObs min(d); % 取最近障碍距离作为风险依据 end riskMap(x,y,z) 1/(1distObs) 0.02*distGoal; % 综合构造风险值越靠近障碍或目标远端风险越高 else riskMap(x,y,z) 10; % 障碍点赋予极高风险避免被搜索选中 end end end end 2. LSTM时序风险预测模型 numSeq 400; % 构造用于训练LSTM的序列样本数 seqLen 12; % 每条序列的时间步长度描述历史风险演化窗口 XTrain cell(numSeq,1); % 输入序列集合使用cell存储可变长度序列 YTrain cell(numSeq,1); % 输出目标序列集合保存下一时刻风险目标 for i 1:numSeq % 逐条构造训练样本 base rand(1,seqLen) * 0.4 0.2; % 生成平稳基础风险序列模拟局部环境背景 trend linspace(0, 0.6, seqLen); % 构造逐步上升趋势模拟环境恶化 noise 0.05*randn(1,seqLen); % 添加高斯扰动模拟传感器噪声 XTrain{i} [base noise; trend]; % 输入包含两维特征历史风险与趋势 YTrain{i} [base trend 0.1*randn(1,seqLen)]; % 目标为下一时刻风险序列 end layers [ ... sequenceInputLayer(2) % 输入层接收两维时序特征 lstmLayer(48, OutputMode,sequence) % LSTM层提取时序依赖关系并输出完整序列 fullyConnectedLayer(24) % 全连接层对隐藏特征进行映射 reluLayer % ReLU增加非线性表达能力 fullyConnectedLayer(1) % 输出单个风险预测值 regressionLayer]; % 回归损失层用于训练风险预测 options trainingOptions(adam, ... % 使用Adam优化器进行网络训练 MaxEpochs, 30, ... % 设置最大训练轮数 MiniBatchSize, 32, ... % 设置每批训练样本数量 InitialLearnRate, 0.01, ... % 设置初始学习率 Shuffle,every-epoch, ... % 每轮打乱样本顺序提高泛化能力 Verbose, false); % 关闭训练过程冗余输出 riskNet trainNetwork(XTrain, YTrain, layers, options); % 训练LSTM风险预测网络 testSeq [linspace(0.3,0.8,seqLen); linspace(0.1,0.7,seqLen)]; % 构造测试序列观察网络预测结果 predRisk predict(riskNet, testSeq); % 预测未来风险值为ACO提供先验信息 3. ACO全局候选路径搜索 numAnts 18; % 设置蚂蚁数量控制并行搜索规模 maxIter 35; % 设置最大迭代轮数控制全局搜索深度 alpha 1.2; % 信息素重要程度系数影响历史经验利用强度 beta 3.0; % 启发式因子权重影响距离和风险对选择概率的作用 rho 0.35; % 信息素挥发系数控制旧路径遗忘速度 Q 100; % 信息素增量系数控制优质路径强化程度 pheromone ones(gridSize); % 初始化三维信息素矩阵所有节点初始吸引力相同 bestPath []; % 保存当前最优路径 bestCost inf; % 保存当前最优代价 neighbors [1 0 0;-1 0 0;0 1 0;0 -1 0;0 0 1;0 0 -1]; % 定义六邻域动作保证移动离散且清晰 for iter 1:maxIter % 进行多轮蚁群迭代 antPaths cell(numAnts,1); % 存储每只蚂蚁构造的路径 antCosts inf(numAnts,1); % 存储每只蚂蚁的路径代价 for a 1:numAnts % 每只蚂蚁独立搜索 cur startNode; % 设置当前蚂蚁起点 path cur; % 初始化路径序列 visited false(gridSize); % 记录访问状态避免循环 visited(cur(1),cur(2),cur(3)) true; % 标记起点已访问 stepLimit prod(gridSize); % 设置最大步数上限防止死循环 for step 1:stepLimit % 逐步扩展路径 if isequal(cur, goalNode) % 若已到达目标点则停止 break; % 结束本蚂蚁的路径构造 end cand []; % 初始化候选节点集合 candScore []; % 初始化候选评分集合 for ni 1:size(neighbors,1) % 遍历邻居动作 nxt cur neighbors(ni,:); % 计算邻居节点坐标 if all(nxt 1) all(nxt gridSize) % 检查是否越界 if ~occGrid(nxt(1),nxt(2),nxt(3)) ~visited(nxt(1),nxt(2),nxt(3)) % 排除障碍与重复访问 h 1/(norm(nxt-goalNode)1); % 构造目标启发式值 r 1/(riskMap(nxt(1),nxt(2),nxt(3))1); % 构造风险启发式值 eta h * r; % 综合启发式因子 tau pheromone(nxt(1),nxt(2),nxt(3))^alpha; % 节点信息素权重 cand [cand; nxt]; %#okAGROW % 追加候选节点 candScore [candScore; tau * eta^beta]; %#okAGROW % 追加选择权重 end end end if isempty(cand) % 若无可选节点则终止表明当前路径受阻 break; % 跳出当前蚂蚁搜索过程 end prob candScore / sum(candScore); % 归一化为转移概率 cdf cumsum(prob); % 构造累积分布函数 rr rand; % 生成随机数实现概率选取 idx find(rr cdf, 1, first); % 选择对应候选节点 cur cand(idx,:); % 更新当前位置 path [path; cur]; %#okAGROW % 追加到路径序列 visited(cur(1),cur(2),cur(3)) true; % 标记已访问 end if isequal(cur, goalNode) % 若路径成功到达目标点 cost 0; % 初始化路径代价 for p 2:size(path,1) % 计算相邻步段代价 seg norm(path(p,:) - path(p-1,:)); % 计算步长 risk riskMap(path(p,1),path(p,2),path(p,3)); % 读取节点风险 cost cost seg 0.6*risk; % 综合距离与风险代价 end antPaths{a} path; % 保存该蚂蚁路径 antCosts(a) cost; % 保存该蚂蚁路径代价 if cost bestCost % 若当前路径更优 bestCost cost; % 更新最优代价 bestPath path; % 更新最优路径 end end end pheromone (1-rho) * pheromone; % 执行信息素挥发降低旧路径影响 for a 1:numAnts % 对所有成功路径进行信息素更新 if ~isempty(antPaths{a}) % 仅处理有效路径 path antPaths{a}; % 取出路径 deposit Q / antCosts(a); % 代价越低则增量越大 for p 1:size(path,1) % 沿路径逐点沉积信息素 pheromone(path(p,1),path(p,2),path(p,3)) pheromone(path(p,1),path(p,2),path(p,3)) deposit; % 增强优质节点吸引力 end end end end 4. Q-learning局部动作优化 state2idx (s) sub2ind(gridSize, s(1), s(2), s(3)); % 将三维状态映射为线性索引便于Q表存储 numStates prod(gridSize); % 总状态数等于网格节点总量 numActions size(neighbors,1); % 动作数等于邻域方向数 QTable zeros(numStates, numActions); % 初始化Q表所有状态动作价值为零 episodes 120; % 设置训练回合数 gamma 0.92; % 折扣因子衡量未来奖励的重要性 lr 0.15; % 学习率控制Q值更新幅度 epsGreedy 0.25; % 探索概率控制随机试探比例 for ep 1:episodes % 逐回合训练策略 s startNode; % 每回合从起点开始 for t 1:400 % 限制单回合最大步数 sIdx state2idx(s); % 获取当前状态索引 if rand epsGreedy % 按探索概率进行随机动作 aIdx randi(numActions); % 随机选择一个动作 else [~, aIdx] max(QTable(sIdx,:)); % 利用当前Q表选择价值最大动作 end ns s neighbors(aIdx,:); % 计算下一状态 if any(ns 1) || any(ns gridSize) || occGrid(ns(1),ns(2),ns(3)) % 判断非法动作 reward -8; % 非法动作给予强惩罚 ns s; % 非法动作时保持原地不变 else dGoal1 norm(s - goalNode); % 当前到目标距离 dGoal2 norm(ns - goalNode); % 下一步到目标距离 reward (dGoal1 - dGoal2) - 0.2*riskMap(ns(1),ns(2),ns(3)); % 距离缩短奖励减去风险惩罚 if isequal(ns, goalNode) % 若到达目标点 reward reward 60; % 给予到达奖励 end end nsIdx state2idx(ns); % 获取下一状态索引 QTable(sIdx, aIdx) QTable(sIdx, aIdx) lr * (reward gamma * max(QTable(nsIdx,:)) - QTable(sIdx, aIdx)); % 按Q-learning公式更新Q值 s ns; % 状态转移到下一步 if isequal(s, goalNode) % 若已到达终点则结束回合 break; % 终止当前回合训练 end end end 5. LSTM与ACO结果融合重规划 if isempty(bestPath) % 若ACO未找到可行路径 error(ACO未生成可行路径); % 输出错误提示需要调整障碍或参数 end refinedPath bestPath; % 先将ACO结果作为初始路径 for i 2:size(refinedPath,1)-1 % 仅对中间节点进行局部修正 cur refinedPath(i,:); % 当前路径点 curIdx state2idx(cur); % 获取状态索引 [~, bestA] max(QTable(curIdx,:)); % 依据Q表选择当前状态下的最优动作 cand cur neighbors(bestA,:); % 生成局部修正候选点 if all(cand 1) all(cand gridSize) ~occGrid(cand(1),cand(2),cand(3)) % 检查候选点可行性 if riskMap(cand(1),cand(2),cand(3)) riskMap(cur(1),cur(2),cur(3)) % 仅当风险更低时进行替换 refinedPath(i,:) cand; % 用更优局部点替换原路径点 end end end smoothPath refinedPath; % 此处保留修正结果作为平滑候选路径 6. 路径可视化与性能评估 fig figure(Color,w); % 创建白色背景图窗便于展示三维环境 ax axes(fig); % 创建坐标轴对象用于三维绘图 hold(ax,on); % 保持图层叠加便于同时绘制障碍与路径 [xo, yo, zo] ind2sub(size(occGrid), find(occGrid)); % 提取障碍点坐标 scatter3(ax, xo, yo, zo, 70, [0.2 0.2 0.2], filled); % 绘制障碍点使用深灰色突出不可通行区域 plot3(ax, smoothPath(:,1), smoothPath(:,2), smoothPath(:,3), -o, LineWidth, 2.5, MarkerSize, 5, Color, [0 0.45 0.74]); % 绘制最终路径 scatter3(ax, startNode(1), startNode(2), startNode(3), 160, g, filled); % 绘制起点使用绿色标识 scatter3(ax, goalNode(1), goalNode(2), goalNode(3), 160, r, filled); % 绘制终点使用红色标识 grid(ax,on); % 显示网格辅助观察空间关系 xlabel(ax,X); % 设置x轴标签 ylabel(ax,Y); % 设置y轴标签 zlabel(ax,Z); % 设置z轴标签 title(ax,LSTM-ACO-Q-learning 三维路径规划结果); % 设置图题便于说明图像含义 axis(ax,[1 gridSize(1) 1 gridSize(2) 1 gridSize(3)]); % 固定坐标范围保证空间比例统一 view(ax, 3); % 采用三维视角观察路径与障碍布局 pathLen 0; % 初始化路径长度 pathRisk 0; % 初始化风险累计值 for i 2:size(smoothPath,1) % 遍历路径节点计算指标 pathLen pathLen norm(smoothPath(i,:) - smoothPath(i-1,:)); % 累加路径长度 pathRisk pathRisk riskMap(smoothPath(i,1), smoothPath(i,2), smoothPath(i,3)); % 累加路径风险 end disp([最终路径长度 , num2str(pathLen)]); % 输出路径长度结果 disp([最终路径风险 , num2str(pathRisk)]); % 输出路径风险结果 disp([ACO最优代价 , num2str(bestCost)]); % 输出ACO阶段最优代价更多详细内容请访问http://【无人机路径规划】MATLAB实现基于LSTM-ACO-Q-learning长短期记忆网络LSTM结合蚁群算法ACO与Q学习算法Q-learning进行无人机三维路径规划的详细项目实例资源-CSDN下载 https://download.csdn.net/download/xiaoxingkongyuxi/92858665https://download.csdn.net/download/xiaoxingkongyuxi/92858665http:// https://download.csdn.net/download/xiaoxingkongyuxi/92858665