具有两个不同边权重的图形

时间:2015-05-11 03:55:32

标签: algorithm graph

我正试图找到两点之间的路径。我图中的每条边都有两个不同的权重。我已经知道最短的路径,如果你只考虑第一个重量,在两点之间。我需要做的是最大化第二重量,同时确保第一重量不超过约束。约束条件是第一个重量的总和不应超过它在最短路径上的总数超过X%。我该怎么做呢?最终解决方案不一定是一个精确的解决方案,因为它旨在成为一种启发式方法。

在某些情况下(但不是全部),图表的边缘从节点1到2,从节点2到1(但不是全部)。

请注意

BFS只需要花费太多时间。我的问题是我需要沿着一条不超过沿着它的第一个重量总和的限制的路径,但沿着它的第二个重量的总和需要最大化。图表非常庞大,有数十万个边缘。

1 个答案:

答案 0 :(得分:0)

我只是进行广度优先搜索:

从您的起始节点开始收集所有可能的下一个节点并跟踪第一个和第二个重量,只要第一个重量符合约束条件。

从这些节点构建所有可能路径的列表并进行迭代。

如果一个节点没有产生更多的路径候选,因为所有边都有一个高的第一个权重,将它与当前最佳路径进行比较并将其替换为新路径,如果新的路径更好