• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 两点间小于指定长度的所有路径组成的子图

两点间小于指定长度的所有路径组成的子图

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了休闲椅子图,ps如何让子图模糊,天王送子图,天王送子图是何人所作,子图等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:两点间小于指定长度的所有路径组成的子图
描述:

最近在做网络分析,问题是这样的,给定一个有环有向图G,指定路径的起点S和终点E,限制路径的长度最多为t,求得所有从S出发终止于t的长度最多为t的所有路径组成的子图Gsub。如下图所示

贵港市建设路的长度,团结路的实际长度,南南有长度,丝绸之路长度,重庆滨江路的长度,有长度的愁,地暖每路长度,长沙开元路长度,路缘石长度,长度单位有,长度单位有哪些,求生之路手臂长度,地暖每路管子长度,直线有长度吗,常用的长度单位

S到E的长度最多为3的路径组成的子图是由红色、蓝色和绿色顶点及其之间连接的边组成的图。那么如何在原图中找出这一子图?


解决方案1:

有时技巧就出自一瞬之间的想法。

  1. 先从原点S出发,求一次单源最短路径。
  2. 再把所有的边全都翻过来,从汇点E出发,求一次单源最短路径。
  3. 则对每个点I,都得到了S->I的最短路径长度L(S, I),和I->E的最短路径长度L(I, E)。则经由I点的S->I->E的最短路径长度为:L(S, I) + L(I, E)。
  4. 如果L(S, I) + L(I, E) <= tmax,则必然存在一条经由I点的S->I->E的路径,符合长度要求。(肯定条件按题设,只需证明存在性)此时I必然是所求子图的一部分。
  5. 反过来看,如果L(S, I) + L(I, E) > tmax,则所有经由I点的S->I->E的路径,全都不符合长度要求。(否定存在性,必须证明必然性)则I必然不是所求子图的一部分。
  6. 正反两方面得到证明,判断依据就有了。子图包含哪些点也就有了。

这个算法可以用在任意没有负权回路的有向加权图上。

点好确定,但比较罗嗦的是边怎么办。因为最短路径解决这个问题,终究是一个存在性的答案。如果只把涉及的点的最短路径包含进来,必然丢边,因为非最短路径也会可行。例如下图,如果t>=11,则10符合条件,但按最短路径算就肯定被仍掉:

贵港市建设路的长度,团结路的实际长度,南南有长度,丝绸之路长度,重庆滨江路的长度,有长度的愁,地暖每路长度,长沙开元路长度,路缘石长度,长度单位有,长度单位有哪些,求生之路手臂长度,地暖每路管子长度,直线有长度吗,常用的长度单位

但又不能把这些点之间的所有边全都算进来。同样是这个图,如果t<11,则把10包含进来就算错,因为经由10的路径此时就不可能在t的限制内达到终点E。

不过用和前边算法相同的思路,略微再改一改,就能确定每条边是否在所求子图内:

  1. 可以先剪枝,子图这些点之外的边全部不考虑。
  2. 审查连接子图内两点的每一条边U->V,权值记为W(U, V)。
  3. 则经由U->V边,即S->U->V->E的最短路径长度为:L(S, U) + W(U, V) + L(V, E)。
  4. 同样的道理,如果L(S, U) + W(U, V) + L(V, E) <= tmax,则U->V边肯定包含在子图内。(存在性)
  5. 如果L(S, U) + W(U, V) + L(V, E) > tmax,则U->V边一定不包含在子图内。(必然性)
  6. 得出那些边可以包含在子图内。

边和点都有了,子图就出来了。算法复杂度为:

  • 求点:(优化算法)Johnson's Algorithm,O(V^2logV + VE);(朴素算法)Floyd-Warshall Algorithm,O(V^3);(对无负权边的图)Dijkstra's Algorithm,朴素O(V^2),二项堆优化O(E+VlogV)。
  • 求边:扫描,O(E)

最后总体的最优复杂度为:O(V^2logV + VE),对稠密图接近O(V^3)。
对无负权边的图最优为:O(E+VlogV),对稀疏图接近O(VlogV)。
所以具体效率,还看具体问题中图的形态而定。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 两点间小于指定长度的所有路径组成的子图

相关文章

  • 2017-06-07 学习python使用rabbitmq,遇到麻烦
  • 2017-06-07 什么时候用面向对象编程,什么时候用函数式编程
  • 2017-06-07 同一文件分别用PHP/Python/Javascript读取并计算MD5,结果均不同,请教原因及解决方法
  • 2017-06-07 关于持久化处理的问题。。。
  • 2017-06-07 Jboss60M4下报错“文件名、目录名或卷标语法不正确。”
  • 2017-06-07 水晶报表中如何获取某一列的上一行或下一行的值?
  • 2017-06-07 (python)为什么BeautifulSoupfind_all返回的list都不是按照网页显示顺序排序的?
  • 2017-06-07 (shell)如何快速修改多个文件夹中的同名子文件?
  • 2017-06-07 求一个工具,或是一个手册一样的东西,可以把字节码转成汇编语言
  • 2017-06-07 请问七牛空间的视频可以直接提供一段嵌入代码以便调用吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • mkfile请求返回"error":"找不到视频","error_code":26904
    • 七牛覆盖速度有些慢
    • wordpress使用七牛插件404错误
    • 七牛支持视频上传吗?我在网站上直接调用视频播放
    • 请大虾帮帮忙,提交视频处理后在哪里能看到处理的进程或者是结果呢?
    • 判断语句的输出结果是None型,怎样把它转换成字符串后保存定义的A、B、C
    • 如何查看Python内建函数的实现代码?
    • golang中同一个package中函数互相调用的问题
    • js中如何通俗易懂的理解多态?
    • (python)关于用requests模拟登陆Acfun的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有