繁体   English   中英

图算法建议:找到两个节点之间所有受影响的路径

[英]Graph algorithm advise: find all affected paths between two nodes

我正在寻找我想到的任务是否有已知的解决方案

给定:V > 100k 节点的无向图。 大多数顶点的度数为 1-2,但其中一些可能具有多达 10-20k 条边。 我对两个顶点之间的所有简单路径或以maxLength限制的起始顶点结束的所有路径感兴趣。 路径不能包含访问过的节点,但可能在起始节点处结束。

目标:偶尔会批量更新一些图的边。 我想找出感兴趣的顶点之间的哪些路线已更新。 理想情况下是Iterator的形式,但List也很好。

实际上,我正在寻找一种被动的方式来了解受影响的路线。

实现可以是任何语言,但更喜欢 Java/Kotlin 特定的语言:)


任何参考/相关信息将不胜感激。

我不确定这是否是 CS StackExchange 的问题,但它看起来与 SO 更相关。

寻找两个节点之间的路径,除了起点和终点之外不共享任何节点。

  • 运行 Dijskta 以找到开始、结束之间的最短简单路径
  • 将大成本(例如 = 最大 integer )添加到最短路径上所有节点的入边,除了开始,结束
  • 重复直到找不到成本小于最大 integer 的新路径

找出感兴趣的顶点之间的哪些路线已更新。 这是微不足道的

 - Multimap of edges, keyed by route index
 - Vector of updated edges
 - Loop over updated edges
      - IF edge in multimap
           - print index of affected route

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM