algorithm - 加权图算法

标签 algorithm graph

我有一个加权的有向图,它有多个边,从相同节点的结尾开始。 前任。 从节点 A 到节点 B 的多条边。

要获取到某个节点的所有路径以及这些路径的相关成本,最好的搜索算法是什么?

最佳答案

由于您需要所有路径,我将使用简单的广度优先搜索。但是,我还建议您将所有平行边折叠成具有权重列表的单个边。

一旦你得到了所有不同的路径(即所有访问节点的路径都是不同的),你就可以为每条路径计算出所有可能的替代平行路径。

所以如果你有以下优势:

A -> C  (5)
A -> C  (3)
A -> B  (7)
B -> C  (1)
B -> C  (4)

第一步将其转化为:

A -> C (5,3)
A -> B (7)
B -> C (1,4)

在此图上的广度优先搜索将产生 A 和 B 之间的以下路径:

A -> B (7)
A -> C -> B (5,3) + (1,4)

因此对于第二条路径,您将获得以下费用:

5 + 1 
5 + 4
3 + 1
3 + 4

这本身不会比在原始图上执行 BFS 更快,但更简单的图更容易处理。

关于algorithm - 加权图算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950222/

相关文章:

algorithm - 平滑 Kinect Facetracking 数据

algorithm - 查找包含指定集合中每个字符的最短单词组合

javascript - 在 Colorbox 中执行 JS(或其他 jQuery 插件)?

algorithm - 有向图的数据结构,允许快速删除节点?

algorithm - 找出图中无用的边

algorithm - Skiena 算法设计

algorithm - 解析器解析搜索词并提取有值(value)的信息

algorithm - 细化合并排序以计算反转次数

sql - 如何找到最常见标签的记录,如StackOverflow中的相关问题

algorithm - 最大长度为 k 的路径