利用MATLAB实现Dijkstra算法.docx

利用MATLAB实现Dijkstra算法.docx

ID:57317149

大小:277.48 KB

页数:5页

时间:2020-08-11

利用MATLAB实现Dijkstra算法.docx_第1页
利用MATLAB实现Dijkstra算法.docx_第2页
利用MATLAB实现Dijkstra算法.docx_第3页
利用MATLAB实现Dijkstra算法.docx_第4页
利用MATLAB实现Dijkstra算法.docx_第5页
资源描述:

《利用MATLAB实现Dijkstra算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、利用计算机语言编程实现D算法一:实验目的本实验课程主要目的是让学生够熟练掌握图论中的D算法。二:实验方法选择MATLAB语言编程实现D算法。三:实验要求1.输入必要参数,包括:节点个数、节点间路径长度、给定节点;2.输出给定节点到其它各节点的最短路径、径长;3.节点间路径长度用矩阵形式表示。四:实验内容无向图共有7个节点,如下图所示。计算机输入的节点间路径长度为7×7矩阵:若为指定节点,则到其它各节点的最短路径及径长的计算机计算结果为:节点最短路径径长01237614提示:不相邻的两个节点间可以用相对较大的数代替(如输入

2、100表示)五:实验原理1.D算法原理已知图G=(V,E),将其节点集分为两组:置定节点集和未置定节点集。其中内的所有置定节点,是指定点到这些节点的路径为最短(即已完成最短路径的计算)的节点。而内的节点是未置定节点,即到未置定节点距离是暂时的,随着算法的下一步将进行不断调整,使其成为最短径。在调整各未置定节点的最短径时,是将中的节点作为转接点。具体地说,就是将中的节点作为转接点,计算(,)的径长(),若该次计算的径长小于上次的值,则更新径长,否则,径长不变。计算后取其中径长最短者,之后将划归到中。当()最终成为空集,同时

3、,即求得到所有其他节点的最短路径。表示与其他节点的距离。在中,表示上一次划分到中的节点到得最短路径。在中,表示到()仅经过中的节点作为转接点所求得的该次的最短路径的长度。如果与不直接相连,且无置定节点作为转接点,则令=。2.D算法实现流程D算法流程如下图所示。六:例题的计算过程表1D算法计算过程迭代次数置定节点Gp0=01=12=23=34=65=76=14表2到其他各节点的最短路径和径长节点最短路径径长01236714七:仿真过程1.输入参数:a.输入无向图的节点个数提示:‘Pleaseinputnumberofthe

4、notes:k=’输入:7;b.输入对应节点个数的k×k大小的矩阵,并且具有检测能力,如果矩阵大小不匹配,提示重新输入提示:‘Note:Ifthereisnodirectlinkbetweennotes,use100toreprsentinfinitePleaseinputthek*kmatrixofthelengthofpath:M=’输入:[0,1,2,3,100,100,100;1,0,100,100,100,6,100;2,100,0,100,5,4,100;3,100,100,0,4,100,100;100,1

5、00,5,4,0,100,7;100,6,4,100,100,0,8;100,100,100,100,7,8,0]若输入错误,提示:‘pleaseinputthecorrectsizeofthematrix,Pleaseinputthek*kmatrixofthelengthofpath:M=’c.输入起始节点提示:‘Pleaseidentifytheinitialnote:s’输入:1。2.输出结果a.输出最短路径矩阵(起始节点为)s=1111111023433300006560000007c.输出对应的路径长度(与s

6、顺序对应)d=012367141.运行结果截屏

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。