Dijkstra算法结合时间窗规划无冲突路径
欢迎来到 < Haoh-Smile > 的博客,觉得受用客官就点个赞评论一下呗!
Dijkstra算法结合时间窗规划无冲突路径
前面的几篇文章简单的介绍了Dijkstra算法的原理及MATLAB实现,在这篇文章开始系统的将规划无冲突路径(2条路径为例)的代码整体的呈现,功能整体考虑,需要对之前几篇文章中的功能代码需要修修补补,在之后的几篇文章中会更新,这篇文章先给大家呈现一个大体框架,详细的各功能代码文与讲解会后续更新。
后续也会有多AGV的无冲突路径规划,请查阅专栏多AGV无冲突路径规划
整个功能流程图如下:
执行文件代码如下:
%%%%%%%%%%%%%%%%%%%%%%建立环境矩阵map及参数初始化%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
map=[0 0 0 1 0 0 1 0 0 0;1 0 0 0 0 1 1 0 0 0;0 0 1 0 0 0 1 1 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 1 0 0 1 0;1 0 0 0 0 1 1 0 0 0;0 0 0 1 0 0 0 0 0 0;1 1 1 0 0 0 1 0 0 0;0 0 0 0 0 1 1 0 0 0;0 0 0 0 0 1 1 0 0 0;];SD1 = [1,65]; %AGV1起止点
SD2 = [10,41]; %AGV2起止点
L = 100; %AGV2路径备用条数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以上是参数可更改区域,以下所有功能函数已封装%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[W,Q,I,C] = MapInit(map); %环境初始化
[L1,sp1,spcost1]=dijkstraR(W,SD1(1),SD1(2),1); %设置始末栅格及路径条数(1)
[X1,Y1]=Get_xy(spcost1,sp1,map); %得到X,Y坐标
[T1,N1] = GetTrastion(X1,Y1,sp1); %得到所有路径的转弯次数矩阵
[R1] = rank(T1); %对转弯矩阵从小到大排序
[P1]=GetPath(L1,spcost1,R1); %得到约束条数的路径
[TW1] = Get_TimerWindow(spcost1,sp1,P1,N1,T1); %得到每条路径时间窗矩阵
[Q,I]=plotTW(map,TW1,sp1,1,P1,Q,C,I); %画出时间窗
plotMap_Path(map,spcost1,1,P1,X1,Y1,C,I); %得到环境地图
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AGV2路径 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[L2,sp2, spcost2]=dijkstraR(W,SD2(1),SD2(2),L);%设置始末栅格及路径条数
[X2,Y2]=Get_xy(spcost2,sp2,map); %得到X,Y坐标
[T2,N2] = GetTrastion(X2,Y2,sp2); %得到所有路径的转弯次数矩阵
[R2] = rank(T2); %对转弯矩阵从小到大排序
[P2]=GetPath(L2,spcost2,R2); %得到约束条数的路径
[TW2] = Get_TimerWindow(spcost2,sp2,P2,N2,T2); %得到每条路径时间窗矩阵
[TW2,OUT,sp,P,spcos2,X2,Y2] = Detection_TW(map,SD2,P1,P2,sp1,sp2,spcost2,X2,Y2,TW1,TW2);
[Q,I]=plotTW(map,TW2,sp2,OUT,P2,Q,C,I); %画出时间窗
plotMap_Path(map,spcost2,OUT,P2,X2,Y2,C,I);%得到环境地图
该工程的所有功能函数会后续更新,MATLAB执行效果如下图:
Dijkstra算法结合时间窗规划无冲突路径相关推荐
- 时间窗车辆路径问题matlab代码,【图片】蚁群算法求解有时间窗约束的车辆路径问题matlab程序_蚁群算法吧_百度贴吧...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 蚁群算法求解有时间窗约束的车辆路径问题matlab程序 1 简介 带时间窗的车辆路径问题(VRPTW)一般描述为从某一物流配送中心出发,用多台车辆向多个顾 ...
- 【TWVRP】基于matlab模拟退火算法求解带时间窗的多车型路径规划问题【含Matlab源码 913期】
⛄一.模拟退火算法简介 1 引言 模拟退火算法(Simulated Annealing,SA)的思想最早由Metropolis等人于1953年提出:Kirkpatrick于1983年第一次使用模拟退火 ...
- 【路径规划】基于遗传算法求解带时间窗多电动车充电路径规划问题附matlab代码
1 简介 电动车在物流领域中取代燃油车是一个广泛的发展趋势.但电动车的电池利用率低,充电时间长,相关充电配套设施建设不完善,存在"续驶里程焦虑"等现象成为了电动车推广和应用的重要制 ...
- 【数据结构笔记31】Dijkstra算法例题:旅游规划(双权重),以及其他推广
本次笔记内容: 图习题1 核心算法 图习题2 其他推广 文章目录 旅游规划问题 核心算法 Dijkstra算法推广问题 要求数最短路径有多少条 要求边数最少的最短路 旅游规划问题 如上图,优先看权重1 ...
- java dijkstra算法 指定源宿_一种路径计算的方法和装置与流程
本发明涉及网络通信技术,尤其涉及一种路径计算的方法和装置. 背景技术: 随着软件定义网络(Software Defined Network,SDN).网络功能虚拟化(Network Function ...
- 【TWVRP】模拟退火算法求解带时间窗的多车型路径规划问题【含Matlab源码 913期】
⛄一.模拟退火算法简介 1 引言 模拟退火算法(Simulated Annealing,SA)的思想最早由Metropolis等人于1953年提出:Kirkpatrick于1983年第一次使用模拟退火 ...
- 【VRPTW】基于蚁群算法实现时间窗车辆配送问题附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- Matlab车辆配送路径规划问题 各类vrp代码 带时间窗的路径规划问题
Matlab车辆配送路径规划问题 各类vrp代码 带时间窗的路径规划问题 遗传算法 蚁群算法 模拟退火算法 混合粒子群算法解决 tsp cvrp dvrp cdvrp vrptw问题 tsp:旅行商问 ...
- 标号法(label-setting algorithm)求解带时间窗的最短路问题(ESPPRC)
以下文章来源于数据魔术师 ,作者邓发珩.周航 前言 哈罗大家好~! 想必大家在刚开始学习运筹学模型时,会觉得有些茫然不知所措吧?比如一大堆神奇的名词,各种各样的约束...反正我一开始是很懵的状态. 那 ...
- 【TWVRP】基于matlab粒子群算法求解带时间窗的车辆路径规划问题(总成本最低)【含Matlab源码 2590期】
⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...
最新文章
- Eclipse下编译Android自带联系人应用
- oracle给换服务器,Oracle数据库更换服务器10分钟切换方案
- mysql increment by 2_关于mysql auto-increment
- Memcached通用类(基于enyim.com Memcached Client)
- python是谁维护的_Python 库从开发到维护
- hdu 6200 mustedge mustedge mustedge(dfs序+树状数组+并查集)
- Powershell进阶学习(6) 部署 Windows PowerShell Web 访问
- 读DL论文心得之RCNN
- prisma1.0实践
- 计算机网络(自我学习)
- HFC网、FTTx技术、PON
- 在BuildConfig中添加自定义字段
- Android Lost RAM的统计方法
- 网站cookie和曲奇饼干_谷歌扔饼干和营销人员感到恶心
- 如何从一个完全自动化的交易系统获利
- 存储管理——段式存储管理
- top 命令参数使用说明
- js实现搜索关键字高亮
- 现实世界的映射与超越:电子游戏的叙事研究
- DMA方式、中断方式的传输速率比较