全局路径规划算法Dijkstra(迪杰斯特拉算法)- matlab
参考博客链接:https://www.cnblogs.com/kex1n/p/4178782.html
Dijkstra是常用的全局路径规划算法,其本质上是一个最短路径寻优算法。算法的详细介绍参考上述链接。
本文与参考博文相比,主要有如下两个不同:
1、开发语言换成了matlab,代码部分稍作改动就可以实时运行在控制器上;
2、求取了从起点开始到达每一个顶点的最短路径所经历的顶点。
matlab代码:包含测试数据
%参考链接https://www.cnblogs.com/kex1n/p/4178782.html
DefultMaxValue=1e3;
NodesMap=[0 1 12 DefultMaxValue DefultMaxValue DefultMaxValue;
DefultMaxValue 0 9 3 DefultMaxValue DefultMaxValue;
DefultMaxValue DefultMaxValue 0 DefultMaxValue 5 DefultMaxValue;
DefultMaxValue DefultMaxValue 4 0 13 15;
DefultMaxValue DefultMaxValue DefultMaxValue DefultMaxValue 0 4;
DefultMaxValue DefultMaxValue DefultMaxValue DefultMaxValue DefultMaxValue 0]; % NodesMap=[0 6 3 DefultMaxValue DefultMaxValue DefultMaxValue;
% 6 0 2 5 DefultMaxValue DefultMaxValue;
% 3 2 0 3 4 DefultMaxValue;
% DefultMaxValue 5 3 0 2 3;
% DefultMaxValue DefultMaxValue 4 2 0 5;
% DefultMaxValue DefultMaxValue DefultMaxValue 3 5 0]; Distance=NodesMap(1,:); %book结果初始化
SearchedFlag=zeros(1,length(Distance));
SearchedFlag(1)=1; FootsResults=zeros(size(NodesMap));
FootsResults(:,1)=1; Preview=zeros(1,length(Distance));
Preview(1)=1; for i=2:length(SearchedFlag)
i
MinID=1;
MinValue=DefultMaxValue;
Distance
SearchedFlag
for j=1:length(SearchedFlag)
if SearchedFlag(j)==0 && Distance(j)<MinValue
MinID=j;
MinValue=Distance(j);
end
end
MinID
SearchedFlag(MinID)=1; Preview
if i>2
FootsResults(i,i-1)=Preview(MinID);
for j=1:(i-1)
Temp=FootsResults(j,:);
FindFlag=0;
for k=1:length(SearchedFlag)
if Temp(k)==0
if Temp(k-1)==Preview(MinID)
FindFlag=1;
break;
end
end
end
if FindFlag==1
break;
end
end
Temp
FootsResults(i,:)=Temp;
FootsResults(i,k)=MinID;
else
FootsResults(i,i)=MinID;
end FootsResults for j=1:length(SearchedFlag)
if NodesMap(MinID,j)<DefultMaxValue && SearchedFlag(j)==0
if Distance(j)>(Distance(MinID)+NodesMap(MinID,j))
Distance(j)=Distance(MinID)+NodesMap(MinID,j);
% FootsResults(i,j)=MinID;
Preview(j)=MinID;
end
end
end end
% Preview
Distance
测试算例1 2所用数据都在代码中,大家可自行运行程序,查看结果。
全局路径规划算法Dijkstra(迪杰斯特拉算法)- matlab的更多相关文章
- dijkstra算法(迪杰斯特拉算法)
dijkstra算法(迪杰斯特拉算法) 用途:有向图最短路径问题 定义:迪杰斯特拉算法是典型的算法,一般的表述通常有两种方式,这里均采用永久和临时标号的方式,该算法要求图中不存在负权边 用永久和临时标 ...
- 最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
Dijkstra算法 ———————————最后更新时间:2011.9.25———————————Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径. ...
- c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法
c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法 图的最短路径的概念: 一位旅客要从城市A到城市B,他希望选择一条途中中转次数最少的路线.假设途中每一站都需要换车,则这个问题反映到图上就是 ...
- 图解Dijkstra(迪杰斯特拉)算法+代码实现
简介 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代表性的 ...
- (Dijkstra)迪杰斯特拉算法-最短路径算法
迪杰斯特拉算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 算法思想:设G=(V,E)是一个带权有向图 ...
- Dijkstra(迪杰斯特拉)算法求解最短路径
过程 首先需要记录每个点到原点的距离,这个距离会在每一轮遍历的过程中刷新.每一个节点到原点的最短路径是其上一个节点(前驱节点)到原点的最短路径加上前驱节点到该节点的距离.以这个原则,经过N轮计算就能得 ...
- Dijkstra【迪杰斯特拉算法】
有关最短路径的最后一个算法——Dijkstra 迪杰斯特拉算法是由荷兰计算机科学家迪杰斯特拉于1959 年提出的,因此又叫迪杰斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路 ...
- C# 迪杰斯特拉算法 Dijkstra
什么也不想说,现在直接上封装的方法: using System; using System.Collections.Concurrent; using System.Collections.Gener ...
- 图->最短路径->单源最短路径(迪杰斯特拉算法Dijkstra)
文字描述 引言:如下图一个交通系统,从A城到B城,有些旅客可能关心途中中转次数最少的路线,有些旅客更关心的是节省交通费用,而对于司机,里程和速度则是更感兴趣的信息.上面这些问题,都可以转化为求图中,两 ...
- 图(最短路径算法————迪杰斯特拉算法和弗洛伊德算法).RP
文转:http://blog.csdn.net/zxq2574043697/article/details/9451887 一: 最短路径算法 1. 迪杰斯特拉算法 2. 弗洛伊德算法 二: 1. 迪 ...
随机推荐
- 阿里云服务器端配置TensorFlow & jupyter
在阿里云上搭建爬取某信的公众号文章的程序时,发现需要验证码验证,技穷之后考虑做一个验证码识别程序,所以开始在服务器上搭建机器学习平台,背景,服务器上已经有其他应用在跑着了,所以不想停服,初始环境:ce ...
- JS-排序详解-冒泡排序
说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b,a在b的前面,排序后可能会交换 ...
- Python数据分析基础PDF
Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...
- srand rand
#include <stdlib.h> srand( (time(0)); rand()%100;
- Ganglia 调试技巧
转自:http://blog.csdn.net/xxd851116/article/details/25109043 Gmond # 检查Gmond服务是否正在运行,发出如下命令:ps aux | g ...
- Zepto.js_开始
https://zeptojs.com 轻量级的 JavaScript 库,移动端优先框架 针对移动端,处理了一系列如 click 点击延迟 毫秒 响应执行快 目前 API 完善的框架中体积最小的一个 ...
- opencv 常用头文件介绍
1.OpenCV包含的模块 cv – 核心函数库 cvaux – 辅助函数库 cxcore – 数据结构与线性代数库 highgui – GUI函数库 ml – 机器学习函数库 2.常用头文件: #i ...
- jsp页面第一句话报这个错Syntax error, insert "}" to complete
前段时间做了个项目jsp页面出现了Syntax error, insert "}" to complete错误,是说少了个“}”花括号,错误是在第一行,删了第一行还是会有,错误也不 ...
- 剑指offer——python【第38题】二叉树的深度
题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路 想了很久..首先本渣渣就不太理解递归在python中的实现 ...
- html中的列表
无序列表(什么前面默认一个实心的黑原点) <ul> <li>什么</li> <li>什么</li> <li>什么</li& ...