algorithm - 寻找具有正负权重的 DAG 中最长路径的示例

标签 algorithm directed-acyclic-graphs

我读到关键路径方法使用具有正权重的最长路径方法,它用于调度一组项目事件(时间值必须为正)。

就我而言,我需要找到 DAG 中具有正权重和负权重的最长路径。我能用这个问题做什么?我需要一个例子。

最佳答案

在 DAG 中查找最长路径并不真正“关心”正权重,它是使用 Dynamic Programming (DP) 完成的遵循以下公式:

D(target) = 0
D(i) = max { D(j) + w(i,j) | for each edge (i,j) }

上面是求D(v),它是从v开始到目标结束的最大长度路径。

Topological Sort 的相反顺序遍历节点,它的完成时间为O(V+E)

请注意,上面并不真正关心边缘是负还是正,它基本上是一种强力方法,当作为 DP 实现时,通过不多次重新计算相同的事情来更有效地完成。

关于algorithm - 寻找具有正负权重的 DAG 中最长路径的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902091/

相关文章:

database - 利用局部性的图形数据库

在 DAG 中寻找哈密顿路径的算法

c - C中的快速排序实现

arrays - 给定字符数组,一次找到第k个非重复字符

java - 使 Sim Hash(局部敏感哈希)算法更准确?

graph - 有向无环图遍历…有帮助吗?

graph-algorithm - DAG 中的关键路径和最长路径之间有什么区别吗?

algorithm - 具有所有相同元素的最长子数组的长度

algorithm - 如何计算整数范围内的每个数字?

model-view-controller - DAG(有向无环图)- QAbstractItemModel