利用计算机语言编程实现D算法.docxVIP

  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文档。上传文档
查看更多
HarbinInstituteofTechnology通信网理论与技术报告 题目:利用计算机语言编程实现D算法 院(系)电子与信息工程学院班级通信1班学生学号哈尔滨工业大学 利用计算机语言编程实现D算法 1D算法简介 Dijkstra(狄克斯特拉)算法用于计算通信网中指定节点到其他各节点的最短路径,简称D算法。本实验课程主要目的利用计算机语言编程实现D算法。 D算法是通过对路径的长度进行迭代,从而计算出到达目的节点的最短路径。其基本思想为:按照路径长度增加的顺序来寻找最短路径。 步骤:假定节点begin为源节点,则 初始化:置N={begin},对不属于N的结点v,置D(v)=w(begin,v)。 迭代: 寻找下一个与节点begin最近的节点u,加入到N中。如果N中包括了所有的节点,则算法结束。 对所有不属于N的结点v按下式更新D(v):D(v)=min[D(v),D(u)+weight(u,v)] 2编程环境及输入输出参数 本实验使用Matlab软件,Matlab具有强大的数据处理能力和完备的图形处理功能。 学生利用Matlab编写了D算法的函数,函数名为dijkstra.m。本函数包含3个输入参数:结点个数n,节点间路径长度矩阵weight,给定节点begin;两个输出参数:给定节点到其它各节点的最短路径矩阵path_matrix、径长min。 3例题的运算结果 本实验中的例题为: 无向图共有7个节点,如下图所示。 图17节点无向图 若v1为指定节点,计算机编程实现v1到其它各节点的最短路径及径长。 文件dijkstra_test1.m即为利用D算法实现上述要求的源程序,程序调用D算法函数dijkstra.m。输入的权值矩阵如图2。 节点1到各节点的最短路径矩阵形式输出如图3,该矩阵中第i行即表示节点1到节点i的路径,矩阵中的0没有意义,可略去不看。节点1到各节点的最短路径径长如图4所示,其中第j列表示节点1到节点j的最短路径径长。 需要注意的是,图3中给出的节点1到节点5路径(1,3,5)与老师给的文档中路径(1,4,5)不相同,这是因为他们的路径径长均为7,都是最短路径,按照学生的编程顺序,程序选择了(1,3,5),节点1到节点7路径也是类似的情况。 图3节点1到各节点的最短路径 III distance=1x7double^- 1 2 34 5 7 1 0 1 2i 7 6 14 2 图4节点1到各节点的最短路径径长 图5,图6和图7给出了程序运行之后在命令窗的输出(分三次截图)。 ComifinaridWindow 从节点L科节点]的最题路径为:parlh— 最担路径径长为。 *+****V**4*学#学**学*******4岸***?卓**fr+*+*4fr*从节点L到节点2的最晅路径为! path.=12最担涪?径径长为L工专章*蕈*女霓全没***章株女冗*工*覃**旗甘冗*事*覃普在推全直事**鼐片章*蕈*女没全没***章*女冗杵章:判.节当3习好珪将七工I: path~^5i±i±r.^2其土事鼻X4fCXt.XJt.XJtK4审耳t.XJt.XJt事事审耳单耳帛其季审耳掌耳帛其季KJ*fixt-KJtX4t.XJt.XJtM4审耳t.x图5命令窗口输出 ■律*李**肘率**申*孝李****掌率*#**宇宇峰孝**掌率李#*#*整字**孝*率**李**肘率**申*孝李****掌*瓯节点:到节汀4的最短路径为: path.=最旭路径任七为3*摩*#*学■中”率境*M审y审*M率学■*****幕*《■寮*■**■中****第**■中*审埠率M**摩*#*学■中”率境*M审*摩*M*学■中. 从节E:到节点!5的最厦路径为:path=135最晅路径径长为7屯审****审审漆来M***审*肖克***g寮g来*■束穿M*洋**g*g寮*■**率源*#*屯审****审审漆来M*■审*肖**字呻亡:到节点W的最疳路宿为: path=136最窘■径径长为6图6命令窗口输出 **宰审率■申**宰审率■申**宰率■中y*率审率■申**宰审率■申**宰率■申**宰*率■申**宰审率■申**宰审寸**宰审率■申**宰审率从节点1到节点7的最痘路径为: path=1367最短路径径长为14?中*■申审■中*■中■中*■申审率率■中*■中■中*■申审率率■中*-中■中*■申审率■中*■中图7命令窗口输出 4例题的计算过程 本题的计算过程可用表1来表示。 表1例题计算过程 迭代次数 V1V2 V3V4V5 V6V7 置定节点 D(v1) N 0 012 3 333 V1 0 V1 1 12 3 333 V2 1 v* 2 2 3 373 V3 2 VNE 3 3 763 V4 3 v^v”,匕 4 7614 V6 6 VNXM,

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档