首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Q-Learning在路径规划中的应用(MATLAB版)

人工智能 4.34KB 24 需要积分: 1
立即下载

资源介绍:

针对于已知环境中的路径规划问题,本文提出Q-Learning解决智能体在复杂环境中找到最优路径。最终阶段包括查询 Q 表以选择最佳行动路径。训练完成后,呈现了历时、最小步数、最大奖励值等结果,以及 Q 表的可视化、最短路径和整个训练过程。Q-learning 是强化学习中的一种基于值函数的学习方法,用于解决无模型的马尔可夫决策过程(MDP)问题。在 Q-learning 中,代理尝试学习一个价值函数 Q(s, a),它估计在状态 s 采取动作 a 后所能获得的长期回报的价值。状态 s、动作a、奖励信号r、Q 值函数 (Q-table)、折扣因子 γ、学习率 α、探索-利用策略。图1 Q-Learning结构图状态s:在 Q-learning 中,代理与环境进行交互,环境处于不同的状态。状态是描述环境的特定情况或配置的抽象表示。
clc clear close all %% 地图建模 %rng(1) % 此指令为测试时固定地图不变 % 设置超参数、规划起点、终点和障碍物数量 myMap = struct('Size',[30,30],'MAP',[],'startState',[2 2],'finalState',[29,29], ... 'obstaclesNum',50,'Obstacles',[],'Reward',[],'H',10,'W',10); trainOpts = struct('MaxSteps',200,'MaxEpisodes',1000,'LearnRate',0.9,... 'Epsilon',0.5,'gamma',0.8); myMap.H = myMap.Size(1); myMap.W = myMap.Size(2); myMap.MAP = zeros(myMap.Size); %myMap.obstaclesNum = randi([20,40],1,1); % 例如,添加5个障碍物 while sum(myMap.finalState == myMap.startState) > 1 % 保证起点与终点位置不同 myMap.finalState = 1+[randi(myMap.Size(1)-2) randi(myMap.Size(2)-2)]; end %myMap.MAP(25,25) = 0.5; myMap.MAP(myMap.finalState(1),myMap.finalState(2)) = 150; % 设置终点的奖励值 % 生成围墙,将四周用障碍物代替 myMap.MAP(1, :) = -100; myMap.MAP(end, :) = -100; myMap.MAP(:, 1) = -100; myMap.MAP(:, end) = -100; % 设置障碍物 myMap.Obstacles = find(myMap.MAP == 0); myMap.Obstacles = myMap.Obstacles(randperm(length(myMap.Obstacles),myMap.obstaclesNum)); myMap.MAP(myMap.Obstacles) = -100; %设置障碍物位置为-1 % 设置起点位置 myMap.MAP(myMap.startState(1),myMap.startState(2)) = 0; myMap.Reward = myMap.MAP; %% 开始训练 Qtable = getTrainResult(myMap, trainOpts); %% 绘制训练结果 figure('Name','Path','Position',[700,50,600,600]) screen = axes; set(screen, 'YDir', 'reverse'); grid on hold on [rows,cols] = find(Qtable == 0); for i = 1:size(rows) rectangle('Position', [cols(i)-1 rows(i)-1 1 1], 'FaceColor', [0,0, 0], 'EdgeColor', 'none') end % 获取到最后训练的路径 route = getLearningRoute(Qtable,myMap.startState,myMap.finalState); % 绘制路径 scatter(route(1,2)-.5,route(1,1)-.5, 'x', 'b', 'Linewidth', 5); scatter(route(end,2)-.5,route(end,1)-.5, 'x', 'g', 'Linewidth', 5); line(route(:,2)-.5,route(:,1)-.5,'Color','red','LineWidth',3) figure('Name','Qtable','Position',[100,50,800,800]) screen1 = axes; set(screen1, 'YDir', 'reverse'); grid on hold on for x = 0:myMap.W-1 for y = 0:myMap.H-1 rectangle('Position', [x y 1 1], 'FaceColor', [.5 .5 .5], 'EdgeColor', [.192, .192, .192]) if myMap.MAP(y+1, x+1) == 0 rectangle('Position', [x y 1 1], 'FaceColor', [1 1 1], 'EdgeColor', [.192, .192, .192]) t = text(x, y + .5, num2str(round(Qtable(y+1, x+1)))); t.FontSize = 7; t.FontWeight = 'bold'; end end end

资源文件列表:

Demo_QLearning20240724.zip 大约有6个文件
  1. Demo_QLearning20240724/demo20240725.m 2.51KB
  2. Demo_QLearning20240724/dist.m 139B
  3. Demo_QLearning20240724/getLearningRoute.m 854B
  4. Demo_QLearning20240724/getMaxAction.m 1.62KB
  5. Demo_QLearning20240724/getNextAction.m 431B
  6. Demo_QLearning20240724/getTrainResult.m 1.88KB
0评论
提交 加载更多评论
其他资源 Android开发实战经典-030802-文件存储-B-资源文件视频教程.zip
Android开发实战经典_030802_文件存储_B_资源文件视频教程.zip
Android开发实战经典-041301-配置Google.API.SDK视频教程.zip
Android开发实战经典_041301_配置Google.API.SDK视频教程.zip
基于pytorch的线性回归模型,python
基于pytorch的线性回归模型的训练和测试,含csv文件数据的读取与数据集构建,训练后特征值系数的输出(以3个特征值为例),训练迭代的loss曲线显示,测试集预测结果与实际值对比可视化
SR-MPLS TE 无RR的带配置topo
SR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带配置topoSR-MPLS TE 无RR的带
河南师范大学软件学院C语言题面_筛选后.zip
河南师范大学软件学院C语言题面_筛选后.zip
永磁同步电机的EKF观测器滤波控制
针对《现代永磁同步电机控制》一书中,扩展卡尔曼滤波算法仿真模型的搭建
基于CLIP模型的视频文本检索设计与实现
针对现有基于CLIP预训练模型方法存在的训练时间长、模型规模大等问题,本文在CLIP4Clip模型的基础上,采用关键帧保存方案和Adapter Tuning低参数量微调,提高了计算资源有限情况下的训练效率和模型性能。 训练速度方面,本文首先采用帧保存方案,将视频库中的关键帧提取并保存为图片,从而加快数据加载速度,将训练速度提高了14.6倍;然后采用AIM模型的Adapter设计方案,在CLIP4Clip模型中插入可训练的Adapter层,只训练少量参数实现快速收敛,最终实现训练速度提高34倍。 模型性能方面,论文证明了平均选取视频关键帧,比按照最大帧间差选取视频关键帧的效果更优;然后证明了AIM在视频检索领域的有效性;并可以使用AIM来提高模型性能,将模型在MSR-VTT数据集上的R@1从42.2%提升至43.4%,R@5从70.2%提升为71.1%。 本文设计并实现了一个视频文本检索系统,为了保障系统的检索速度,搭建了向量数据库,并测试了不同数据保存方式的数据存取速度。系统使用Django搭建了Web端应用,实现了多种功能需求,展示了本文方法在视频文本检索系统中的应用效果和潜力。
基于CLIP模型的视频文本检索设计与实现 基于CLIP模型的视频文本检索设计与实现 基于CLIP模型的视频文本检索设计与实现
c语言队列实现(不强制数据类型,包含三种实现)
c语言队列实现(不强制数据类型,包含三种实现)