




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆邮电大学.图论及其算法课程报告图论中最短路算法及其应用摘要:随着旅行人数的增加以及节约时间的需要,图论中的最短路算法显得越来越重要,在实际的旅行中,对几个地点的遍历中,人们总是希望能找到一个最短最有效的路径可以遍历所有的景点,在一个大的景点内部同样如此。本文运用了图论中的最短路径算法,邻接矩阵,赋权图等知识,针对我校暨重庆邮电大学内的几处标志性建筑的遍历为基础,建模了赋权图,模拟了在任意两点之间的最短路径的实现以及编程显示。关键词:图论;最短路径;迪克斯屈拉算法;计算路径和一:需求分析本论文主要实现查询我校任意两点之间的最短路径,以我校方位布局为根据,首先要对我校的布局有所了解,然后估计出
2、主要建筑物的距离。数学建模,运用图论知识进行解决。此方法可用于多数别的地方,如景点的查询,旅行路线的查询等。实际应用非常广泛。二:运用图论基本知识在最短路问题中,给出的是一有向加权图G=(V,E),在其上定义的加权函数W:ER为从边到实型权值的映射。路径P=(v0, v1, vk)的权是指其组成边的所有权值之和:定义u到v间最短路径的权为从结点u到结点v的最短路径定义为权的任何路径。1边的权常被解释为一种度量方法,而不仅仅是距离。它们常常被用来表示时间、金钱、罚款、损失或任何其他沿路径线性积累的数量形式。单目标最短路径问题: 找出从每一结点v到某指定结点u的一条最短路径。把图中的每条边反向,我
3、们就可以把这一问题转化为单源最短路径问题。单对结点间的最短路径问题:对于某给定结点u和v,找出从u到v的一条最短路径。如果我们解决了源结点为u的单源问题,则这一问题也就获得了解决。对于该问题的最坏情况,从渐进意义上看,目前还未发现比最好的单源算法更快的方法。每对结点间的最短路径问题:对于每对结点u和v,找出从u到v的最短路径。我们可以用单源算法对每个结点作为源点运行一次就可以解决问题。在某些单源最短路问题中,可能存在权为负的边。如果图G(V,E)不包含由源s可达的负权回路,则对所有,最短路径的权的定义依然正确1。即使它是一个负值也是如此。但如果存在一从s可达的负权回路,最短路径的定义就不能成立
4、了。从s到该回路上的结点不存在最短路径因为我们总可以顺着找出的“最短”路径再穿过负权回路从而获得一权值更小的路径,因此如果从s到v的某路径中存在一负权回路,我们定义。图1 含有负权和负权回路的图图1说明负的权值对最短路径的权的影响。每个结点内的数字是从源点s到该结点的最短路径的权。因为从s到a只存在一条路径(路径),所以:。类似地,从s到b也只有一条通路,所以:。1从s到c则存在无数条路径:,等等。因为回路的权为6+(-3)=30,所以从s到c的最短路径为,其权为:。类似地,从s到d的最短路径为,其权为:。2同样,从s到e存在无数条路径:,等等.由于回路的权为3+(-6)=-30,所以从s到e
5、没有最短路径。只要穿越负权回路任意次,我们就可以发现从s到e的路径可以有任意小的负权值,所以:类似地,2因为g是从f可达的结点,我们从s到g的路径可以有任意小的负权值,则:。结点h,j,i也形成一权值为负的回路,但因为它们从s不可达,因此。2一些最短路径的算法,例如Dijkstra算法,都假定输入图中所有边的权取非负数,如公路地图实例。另外一些最短路算法,如Bellman-Ford算法,允许输入图中存在权为负的边,只要不存在从源点可达的权为负的回路,这些算法都能给出正确的解答3。特定地说,如果存在这样一个权为负的回路,这些算法可以检测出这种回路的存在。三:数学建模本论文着手解决实例为我校情况,
6、主要抽象出了以下八个典型的地点:老校大门,信科大厦,三十三幢学生公寓,数字图书馆,二教学楼,中心食堂,三教学楼,移通学院。以下为我校平面图:老校门数图2教中心食堂3教移通信科33#60100120705060208040605030图2 我校主要建筑分布图运用图论知识对上图进行邻接矩阵的表示,为了表示方便我对上图的地点:老校大门,信科大厦,三十三幢学生公寓,数字图书馆,二教学楼,中心食堂,三教学楼,移通学院。分别由数字1,2,3,4,5,6,7,8代表。12345678150607025012040312060460208057040205060660501007806010030830表1:
7、我校建筑抽象图的加权邻接表示表四:算法分析及实现本文运用了迪克斯屈拉算法,其抽象算法为:Procedure Dijkstra(G:所有权都为证书的加权连通图)G带有顶点a=v,v1,.,vn=z和权w(vi,vj),若vi,vj不是G中的边,则w(vi,vj)= For i:=1 to nL(vi):= L(a):=0S:=初始化标记,a的标记为0,其余结点标记为,S是空集While z不属于SBeginU:=不属于S的L(u)最小的一个顶点S:=SuFor所有不属于S的顶点vIf L(u)+w(u,v)L(v)Then L(v):=L(u)+w(u,v)这样就给S中添加带最小标记的顶点并且更
8、新不再S中的顶点的标记EndL(z)=从a到z的最短路的长度4以上为运用迪克斯屈拉算法描述,此算法给出了一个大致的步骤的步骤。也可称其为伪码表述,运用此算法可以实现求取两结点之间的最短路径,运用c语言实现迪克斯屈拉算法为:Void ShortestPath_Floyd(AdjMatrix g,WeightType distMAX_VERTEX_NUMMAX_VERTEX_NUM,VertexSet pathMAX_VERTEX_NUMMAX_VERTEX_NUM)int i,j,k;for(i=0;ig.vexnum;i+)for(j=0;jg.vexnum;j+)distij=g.arcsi
9、j;InitList(&pathij);if(distijINF)AddTail(&pathij,);AddTail(&pathij,);for(k=0;kg.vexnum;k+)for(i=0;ig.vexnum;i+)for(j=0;jg.vexnum;j+)if(distik+distkjdistij)distij=distik+distkj;pathij=JoinList(pathik,pathkj);5 6五:运行结果以及分析基于以上核心算法加上运用对二维数组以及链表的操作完成了此功能,本程序是运行于dos显示没有运用mfc界面
10、编程,掌握了一些基础知识以后,基本可以完成本实验。本设计中只是完成了要求的内容,并没有考虑算法的时间复杂度,然而这些也是图论所介绍过的,在大程序中就显得的非常重要了,但是本例考虑程序小为了实现方便没有予以考虑,特别是在显示任意两节点的所有可行的方法上,对于五个结点的计算复杂度达到了o(n*n*n*n*n)的程度,这在以后的编程中需要注意的。部分运行结果如下:图3 两点间最短路径显示图4 结点间最短路径及路径方式显示图5:任意两节点间所有可行路径显示六:总结经过此次的图论的课程报告,使我对于图论,特别是图论中的最短路径算法有了深刻的了解,也使我对于编程的能力有所提高。图论是生活技巧的一门学问,里面很多经典算法。把理论运用于实践能得到意想不到的乐趣,感觉这也是做学问的真是内涵所在。同时我也认识到了自己的不足,对于理论知识学习的不扎实,还需要借助工具书课本,对于编程也需要参考才能最后自己实现,可见,学海无涯,需要学习的东西还有很多。感谢蒲兴成老师的指导教学,在一会的日子里我会更加努力的学习,不仅学习理论,还有把理论运用于实践之中。参考文献:12006年全国信息学冬令营讲座最短路算法及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新高考理综试题及答案
- 幼儿园数学考试创造性思维试题及答案
- 材料科学背景下的大学物理考试试题及答案
- 建筑施工安全考试练习题目分析
- 教师教育实施反思与改进试题及答案
- 食品与饮料行业食品安全监管信息化建设报告
- 智能网联与新能源的协同发展路径研究试题及答案
- 茂名邮政笔试试题及答案
- 电大形考试试题及答案
- 江西幼师笔试题目及答案
- 《装备质量问题归零实施指南》
- 人卫版肺部疾病教学课件
- 面肌痉挛的健康宣教
- 超滤反渗透调试方案
- 外籍人员个人所得税讲义课件
- LED制程与工艺介绍
- 《马克思主义中国化思想通史》导读-南京林业大学中国大学mooc课后章节答案期末考试题库2023年
- 北京中考语文词语表
- 水资源利用智慧树知到答案章节测试2023年西安理工大学
- 水质对干豆腐品质的影响机制及调控技术
- LY/T 2676-2016半干旱地区灌木林平茬与复壮技术规范
评论
0/150
提交评论