大连海事大学现代优化技术作业 Dijkstra 最短路径算法.docxVIP

大连海事大学现代优化技术作业 Dijkstra 最短路径算法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大连海事大学,技术,作业,短路,算法大连海事大学,技术,作业,短路,算法

现代优化技术 作业1:Dijkstra 最短路径算法 1120131233 陈鑫 交通运输工程 迪杰斯特拉(Dijkstra)算法是经典路径诱导规划算法,Dijkstra 算法是一个按路径长度递增的次序产生最短路径的算法,算法比较简单,容易实现,但计算量较大。 1 算法分析: 首先引进辅助向量D,它的每个分量D[i]表示当前所找到的从始点v0到每个终点vi的最短路径的长度。为D[i]赋初值,若从v0到vi有弧,则D[i]为弧上的权值,否则置D[i]为∞。则长度为D[j]=Min{D[i]|vi∈v} 的路径就是从v0出发的长度最短的一条最短路径,此路径为v0-vj。设下一条长度次短的路径的终点是vk,则这条路径或者是v0-vk,或者是v0-vj-vk。它的长度是v0到vk弧上的权值或D[j]和vj到vk弧上权值之和。 2 算法描述: 设起始点为 v0,顶点集为v,初始态 vi∈v。 (1)用带权邻接矩阵arcs表示带权有向图,arcs[i][j]表示弧vi,vj 上的权值。若vi,vj不存在,则置 arcs[i][j]为∞。S为已找到从v0出发的最短路径的终点的集合,它的初始状态为空集。从v0出发到图上其余各顶点(终点)vi可能达到的最短路径长度的初值为:D[i]=arcs[0][i] vi∈v。 (2)选择vj,使得D[j]=Min{D[i]|vi∈v-s},vj就是当前求得的一条从v出发的最短路径的终点,并令s=s∪{j}。 (3)修改从v0出发到集合v-s上任一顶点vk可达的最短路径长度。如果 D[j]+arcs[j][k]D[k],则修改 D[k]为 D[k]=D[j]+arcs[j][k]。 (4)重复操作(2)、(3)共 n-1 次,由此求得从 v0 到图上其余各顶点的最短路径是一次路径长度递增的序列。 3 算法实现: (1) 定义n为有向图中的顶点个数,arcs[i][j].w为有向图中顶点i到顶点j的权值。首先利用如下语句为邻接矩阵赋初值,均为∞。 (2) 有向图中,若vx到vy有弧利用下面语句依次输入顶点号和弧上权值,并将权值赋给arcs[vx][vy].w。至此,交通网路模型即带全有向图建立完成。 (3) 输入出发顶点v0,置已找到从v0出发的最短路径的终点的集合s[n]初始状态为空集。通过以下语句找到从v0出发的最短路径的终点vj,使得 D[j]=Min{D[i]|vi∈v-s} 上述语句中的条件语句if(find(s,i)!=1)是确保顶点vi在v-s中,find(s,i)函数的作用是若顶点vi在s中返回1,否则返回0。其代码如下: (4) 接下来需要对已写入的最短路径长度做修改,利用下面的语句完成如果D[j]+arcs[j][k]D[k],则修改 D[k]为 D[k]=D[j]+arcs[j][k],并利用 before[j]记录vj顶点的前一个顶点,用以输出路径的顶点序列。语句最后的s[k++]=v是将已经求得终点放入集合s中。若有修改则v0到vj的路径中间有若干顶点,若无修改则v0到vj的最短路径就是v0-vj。 (5) 最后同过输出语句输出起始点 v0 到各个顶点的最短路径的权值和路径的顶点序列。若arcs[v0][i].w=INFINITY,则表示v0到vi无穷远,无法到达。 3.6 算法实现:结合实例展示成果。下图为一个带权有向图 V0 V0 V5 V3 V4 V1 V2 100 60 20 50 30 10 10 程序执行结果:

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档