最短路,最大流算法.docVIP

  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文档。上传文档
查看更多
最短路,最大流算法.doc

最短路,最大流算法以及随机网络生成的C++实现 水天运,李剑锋( (电子科技大学通信与信息工程学院 成都 610054) 【摘要】运用C++编程实现了随机网络的生成,并在生成的网络上实现了最短路径的查找以及最大流的查找算法。运用两种算法编写最大流程序,并将其综合进行优化。最后实验测试并分析了两种算法及其综合优化后的运行效率。 关 键 词 图算法;最短路;最大流;随机网络;C++ C++ Implementation of the Algorithm of Shortest Path, Maximal Flow and Random Network SHUI Tianyun , LI Jianfeng (School of Communication and Information Engineering, University of Electronic Science and Technology of China Chengdu 610054) Abstract A C++ program was proposed to produce random network where seek the shortest path and maximal flow. The program of the maximal flow is implemented by two different algorithms that are compositely optimized. These two algorithms were tested and analyzed in an experiment. At the end of the paper, the running efficiency of these two algorithms after composite optimization are also evaluated. Key words graph algorithm; shortest path; maximal flow; random network; C++ 1 背景介绍 1.1 最短路概述 在实际生活中,经常遇到这样的问题,从一个车站到另一个车站,有若干条通路可以选择,在有通路可以到达的情况下,哪条路更快?哪条路更短?哪条路更经济?现在,我们将这一类问题进行抽象,在一幅有众多节点的边的有向图中,找到我们想要的任意一个源点和宿点之间的最短路径。 关于这个问题,Dijkstra提出了一个路径长度递增的顺序产生最短路径的算法,是目前最优的基本最短路算法之一,在互联网络OSPF(Open the Shortest Path First,开放最短路)的路由算法中有广泛的应用。 1.2 最大流概述 在一个给定网络中,如何充分地利用网络资源,更加有效地传输网络中的流,是一个十分重要的课题十多年网络最大流问题Ford)和富尔森(Fulkerson)创立了最大流理论,设计了用标号法求最大流的方法,后来有人加以改进,使得求解最大流的方法更加丰富的完善。最大流问题的研究密切了图论和运筹学,特别是与线性规划的联系,开辟了图论应用的新途径。 2 算法介绍及实现 2.1 图的生成算法 在讨论最短路或是最大流问题时,我们总是需要将其实现到一张图里进行讨论,在实际情况下,首要解决的问题是如何得到一幅满足需要的图。 如何生成一幅图?手工输入对于节点数比较小的图还是可以实现的,但是当需要多节点和复杂路径的图进行试验测试时,这种方法就无法满足要求。本文引进Watts-Strogatz模型,该模型指出,图的建立可以通过在规则网格(Lattice)的基础上以小概率删边,然后增加随机连接实现[2]。通过这一规则,设计图的生成算法。 此算法实现了二维随机网格图的生成。可人为指定随机删边、加边概率;同时指定边权重、容量的范围,以平均分布的方式产生权重、容量值。下文中所有图算法的实现均使用的此方法生成的随机图进行测试。 图1 图的自动生成算法流程图 如图1所示,当程序开始后,将输入一个数n,虚拟生成一个n行n列的网格,从节点0开始,进行边的生成,直到最后一个节点为止。 生成算法的核心在于如何生成一个网格并对其进行随机删边和加边处理,算法流程图如图2所示。 图2 边的随机生成核心算法流程图 每次都使用两个预设的常数X,Y。随机数测试满足X%的随机加边概率时,随机的产生一条边。这条边的头和尾及其权重、容量都将在预设范围内以均匀分布随机产生。若不满足,则跳过此步骤,不产生随机边。由于程序开始时,虚拟生成了一个n行n列的网格,而这个网格其实并没有让前后左右的节点相连,故设计一个随机删边概率。当再次进行随机数测试,满

文档评论(0)

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

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

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档