- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对最路径问题的一些研究
对最短路径问题的一些研究
赵明阳
【摘要】 图论是信息学奥赛选手必须掌握的知识,而最短路径问题是图论是比较基础的内容,本文对各种不同情况的图中的最短路径作了一些总结。
【关键字】信息学 、最短路径、 Dijkstra、Ford、Bellman-ford、SPFA
图是较线性表和树更为复杂的一种数据结构。 在这种数据结构中,数据节点间的联系是任意的,因此他可以更广泛的表示数据元素之间的关系。图结构在人工智能、数学、物理、化学、计算机科学等许多领域被广泛应用。信息学奥赛的许多试题,也需要用图来描述数据元素之间的联系。最短路径问题就是图论里一个比较重要的算法,下面我就几种不同种类的图,给出不同的求解算法。
一、不带负权回路的图
在带权图G=(V,E)中,若顶点 Vp,Vq是图G的两个顶点,从顶点Vp到Vq的路径长度定义为路径上各条边的权值之和。从顶点Vp到Vq可能有多条路径,其中路径长度最短的一条路径称为顶点Vp到Vq的最短路径。有两类最短路径问题:一是求从某个顶点(源结点)到其它顶点(目的结点)的最短路径问题。这类问题我们称之为单源最短路径问题。二是求图中每一对顶点间的最短路径。
如下例,右图是六个城市之间道路联系的示意图,连线表示两城市间有道路相通,连线旁的数字表示路程。请编写一程序,由计算机找出从C1到C6之间路长最短的一条路径,输出路径序列及总长度。
像这个题目,我们既可以用单源最短路径算法来解决,也可以先求出每对顶点的最短路径,然后输出C1到C6之间的最短路径。
单源最短路径算法当然首推Dijkstra算法。Dijkstra算法的
基本思想是:设置一个顶点的集合s,并不断地扩充这个集合,一个顶点属于集合s当且仅当从源点到该点的路径已求出。开始时s中仅有源点,并且调整非s中点的最短路径长度,找当前最短路径点,将其加入到集合s,直到终点在s中。 主要程序部分如下:
?read(first,tail);? for i:=1 to n do dist[i]:=max; ?dist[first]:=0; ?s:=[first]; u:=first; ?while utail do ?? begin?? for? j:= 1 to n do??? if not(j in s) and (dist[u]+cost[u,j]dist[j]) then???? begin dist[j]:=dist[u]+cost[u,j]; path[j]:=u end;?? min:=max;?? for j:=1 to n do??? if not(j in s) and (dist[j]min) then begin u:=j; min:=dist[j];end;?? if min=max then begin writeln(No answer); halt end;?? s:=s+[u]; ? end;
writeln(dist[first,tail]) 这个算法的时间复杂度O(n*n)。
若要求每对点之间的最短路,可以用Ford算法。算法思想为:不停地调整图中的顶点值(源点到该点的最短路径值),直到没有点的值调整了为止。 主要程序段如下:
For k:=1 to n do
For i:=1 to n do
For j:=1 to n do
if dis[i,j]dis[i,k]+dis[k,j]
then dis[i,j]=dis[i,k]+dis[k,j]
writeln(dist[first,tail])
这个算法的时间复杂度O(n*n*n),编程复杂度较低。
二、带有负权回路的图
在一个图里每条边都有一个权值(有正有负) ,如果存在一个环(从某个点出发又回到自己的路径),而且这个环上所有权值之和是负数,那这就是一个负权环,也叫负权回路
存在负权回路的图是不能求两点间最短路的,因为只要在负权回路上不断兜圈子,所得的最短路长度可以任意小。对于带有负权回路的图,上面两种算法就不适合用了,那么我们可以采用Bellman-ford算法,算法思想:
1.对每条边进行|V|-1次Relax操作; 2.如果存在(u,v)∈E使得dis[u]+wdis[v],则存在负权回路;否则dis[v]即为s到v的最短距离,pre[v]为前驱。
主要程序段如下:
?For i:=1 to n-1 do
?For j:=1 to e do
? with edges[j] do
?? Relax(a,b,w
您可能关注的文档
- 基于粒子群算法的机器人足球中进攻队员的路径优化.doc
- 基于蚁群算法的TSP问题.doc
- 基于力控的锅炉供暖系统.doc
- 基本OSPF配置实验.doc
- 基础知识课时38胚胎工程.doc
- 基站建设与维护样题-WCDMA基站调试与维护理论考试样题.doc
- 基于51单片机WiFi智能小车制作.docx
- 基于可持续发展的城市设计理论.docx
- 基于PT2262PT2272无线遥控彩灯与液晶屏的设计与实现.docx
- 基础教学资源库的构造实现与典型案例研究.doc
- 2022-2023学年江苏省常州市溧阳市四年级下学期期中数学真题及答案.pdf
- 2022-2023学年江苏盐城建湖县五年级上册语文期末试卷及答案.pdf
- 2021-2022学年河南省卫辉市人教版三年级上册期末考试数学试卷及答案.pdf
- 2022-2023学年浙江杭州萧山区五年级下册语文期中试卷及答案.pdf
- 2022-2023学年江苏省淮安市二年级下学期数学月考试题及答案.pdf
- 2021年山西公务员申论考试真题及答案-乡镇.pdf
- 2021年普通话考试内容题库必威体育精装版版.pdf
- 2021-2022年江苏苏州太仓市六年级上册期中语文试卷及答案(部编版).pdf
- 2022-2023学年山东省滨州市博兴县四年级下学期期末数学真题及答案.pdf
- 2021年四川内江小升初语文真题及答案.pdf
最近下载
- 北京市首都师范大学附属中学初一新生分班(摸底)语文考试模拟试卷(10套试卷带答案解析).doc
- 国开大学电大本科《人文英语3》期末试题及答案.docx VIP
- 20以内综合计算专项训练题(每日一练),25套(共25页).doc VIP
- 文物藏品档案模板.doc VIP
- 北京市首都师范大学附属中学初一新生分班(摸底)数学模拟考试(含答案)【6套试卷】.doc
- 远教网《煤矿电工学》(本)-采矿工程试题及答案.docx
- 《新能源汽车驱动电机及控制系统检修》电子教案.docx
- 浙江省杭州市余杭区(2024年)七年级下学期历史与社会期末独立作业试卷.docx VIP
- 幼小衔接数学每日一练24页(1).pdf VIP
- 规范进行术前皮肤准备2025 .pdf VIP
文档评论(0)