图最短路径实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图的最短路径实验探究
朱阿杰/陈俊洪
2013年11月20日实验探究一
Dijkstrua最短路径算法的实验检测:
边的权值非负情况下为什么在有向无环图(DAG)能实现?(详细阐述见分析)
分析:
对于起点v(出度不为0),将从它指出的所有点存有队列,判断最小的权值(>=0)依次与v连接。由于不存在环,最终必然生成一颗树,同时产生一条最小路径从v到达点w。
测试数据(tinyEWDAG.txt)
执行命令:% java DijkstraSP tinyEWDAG.txt 5 测试结果:
2.存在负权边的无环图
实验数据修改:
实验结果:
分析:
根据Dijkstra算法,同理可得对于无环的负权图,也将生产一颗树;同时包含v-->w的最短路径。
3.边的权值非负的普通(可以有环)有向图
测试数据:
执行指令:% java DijkstraSP tinyEWD.txt 0
测试结果:
分析:
从以上结果说明,在非负权的有向图中,不管是否存在环,都存在一至多条最短路径从v-->w。
4.边存在负权值的普通(可以有环)有向图
测试数据修改:
实验结果:
5存在负权重环的有向图实验数据:
实验结果:
分析:
由于在生产的有向图中,存在权重为负的环,根据Dijkstra算法的特性,将出现无限次遍历环的每一个节点... ...(权值的总和趋于-00).
实验探究二
“基于拓扑排序”的最短路径的实验测试:
1)有环有负权值
分析:
同样的测试数据,当利用AcyclicSP类测试时,由于该算法基于拓扑排序的最小路径生成过程当中应用深搜进行图的遍历,当存在环而且又有负权值时,亦有可能出现无限遍历,无法找出最小路径。因此,AcyclicSP算法在有环且有负权重边的情况下可能失效。
3)权非负无环图(DAG)
分析:
测试结果同上。AcyclicSP算法的有效性。边v-->w只可能被放松一次,当且仅当distTo(w)变小时。当所有数据非负时,通过AcyclicSP 遍历一定可以找出任意两点的一条最短路径。
附加实验(略):
l 有向无环图最长路径实验
l 有向有环图最长路径实验
实验总结:
对于一般的有向图,只要不存在负权值,用Dijkstra算法比较合适;而对于存在负权值的的有向图,只要不存在环,AcyclicSP算法都可以解决。