全局路径规划算法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. 迪 ...
随机推荐
- Python学习——python的常用模块
模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...
- 使用CSS达到文字首尾对齐效果
在制作表单的时候经常会遇到需要不同个数的文字首尾对齐,比如: <span>姓名:</span> <span>联系方式:</span> 姓名: 联系方式: ...
- asp.net MVC jsonp跨域获取数据
public class JsonpResult : JsonResult { object _data = null; public JsonpResult() { } public JsonpRe ...
- centos7安装python3 以及tab补全功能
1.安装python3 1.1下载python源码包 网址:https://www.python.org/downloads/release/python-362/ 下载地址:https://www. ...
- laravel5.5 任务调度 (转载)
Ubuntu和Mac环境中,我们可以使用crontab来控制计划任务 1. 定义调度 我们需要在 App\Console\Kernel 类的 schedule 方法中定义所有任务调度.例如: 上图中定 ...
- 查看webdriver API
pydoc是Python自带的模块,主要用于从python模块中自动生成文档 生成web页面文档: cmd->python -m pydoc -p 8888 -p:在本机上启动服务 8888:端 ...
- 【C++ 实验六 继承与派生】
实验内容 1. 某计算机硬件系统,为了实现特定的功能,在某个子模块设计了 ABC 三款芯片用于 数字计算.各个芯片的计算功能如下: A 芯片:计算两位整数的加法(m+n).计算两位整数的减法(m-n) ...
- cpu读取指令时读取的长度
CPU读取指令时,如果单字节指令,一次访存即可完成读取操作:如果是多字节指令,会根据第一次读取指令的操作码与寻址标志位,判断指令的后续长度,进而完成整个指令的读取,同时指令指针IP会自动进行修改,指向 ...
- C# 复选框显示多项选择
private void Form1_Load(object sender, EventArgs e) { checkedListBox1.Items.Add("语文"); che ...
- jexus System.BadImageFormatException Details: Non-web exception. Exception origin (name of application or object): App_global.asax_ai3fjolq.
Application ExceptionSystem.BadImageFormatExceptionInvalid method header format 0Description: HTTP 5 ...