【问题标题】:Path with least maximum edge weight具有最小最大边权重的路径
【发布时间】:2014-10-14 06:37:43
【问题描述】:

假设我们有一个有向非负加权图。

我们必须在 (u, v) 之间找到成本最低的路径。 路径的成本定义为路径包含的第二个最昂贵的的最大成本。

这是一个例子。

具有 4 个节点和 4 条边的图:

  • 从 1 到 2,成本为 3
  • 从 1 到 3,成本为 7
  • 从 2 到 3,成本为 5
  • 从 3 到 4,成本为 2

1 到 4 之间的最优路径应该是 1 - 3 - 4,总成本为 2(成本为 2 和 7,第二高的是 2)。

Dijkstra 标准 SSSP(重建路径并找到第二高边)显然不起作用。 我在 MST 考虑过(应该没问题),但不能保证覆盖最佳路径 (u,v)。

【问题讨论】:

  • 这里没有任何解决方案的尝试,因此您不太可能得到响应...尝试自己解决,然后如果您遇到问题,请回来寻求帮助。并不是说您需要代码,但至少对如何解决问题有一些了解会很好
  • 如果路径中的边权重为 5、5、4 会怎样?成本是 4 还是 5?另外,如果路径中只有一条边怎么办?
  • 很抱歉没有报告尝试。我添加了一些信息。 @genisage 成本分别为 5 和 0。

标签: algorithm graph-algorithm shortest-path


【解决方案1】:

对于足够密集的图,我们可以得到 O(E + V log V),即 o(E log E)。使用带有斐波那契堆的 Dijkstra,计算两个最大权重(与第二个最大权重相反)的最短路径树,一个从根 u 指向叶,一个指向根 v。对于每个边 s->t,考虑由从 u 到 s 的最大权重最短路径、边 s->t 和从 t 到 v 的最大权重最短路径组成的路径,其第二个最大权重以 u-> 的最大值为界s 和 t->v 段。

【讨论】:

  • Dijkstra 我猜你的意思是 Prim?
  • @tmyklebu 我想,但在有向图上运行 Prim 的想法似乎比具有不同松弛公式的 Dijkstra 更不和谐。
  • 我猜。不过,除此之外,我真的看不出两者之间有什么区别。
  • @DavidEisenstat 我认为您的回答是一种更合适的方法,因为它不涉及 bserach,但是我无法找出正确的放松公式来获得最大重量 SP(也是 最大权重 SP 树对我来说不是 100% 清楚)。
  • @lucach 在一句话中,Dijkstra 的算法通过将顶点存储在优先级队列中来工作,其中顶点的键是最便宜的已知路径的成本。在计算节点的新成本时,我们所要做的就是用 max(length(path), length(edge)) 替换 length(path) + length(edge),就像 Prim 的算法一样。 (说 Prim 让我很困扰,因为有更快的 MST 算法,但它们在有向图中不起作用。)
【解决方案2】:

考虑二进制搜索以获得最佳成本。对所有边的权值进行排序,寻找满足条件的最小值X

There is a u -> v path which has at most one edge with weight greater than X.

如何检查条件?对于给定的X

  1. u 运行DFS,并使用权重边缘最多X 找到从u 可到达的顶点集合U。如果vU 中,则满足条件。

  2. 否则根据集合V 与来自v 的DFS 查找。

  3. 当且仅当存在一条边,其中一个顶点在U 中,另一个在V 中,条件才成立。

时间复杂度:O(E log E).

【讨论】:

    【解决方案3】:

    您可以对答案进行二分搜索(按边的权重对边进行排序)。
    对于一个固定的答案 c,我们称权重 > c 的边重,其他边轻。
    因此,您只需要检查是否存在最多 1 个重边的路径。您可以通过将 0 成本分配给轻边缘并将 1 成本分配给重边缘并运行 0-1 bfs 来实现。如果距离

    【讨论】:

    • 它不适用于如下图表:1 -> 2 成本 8 2 -> 3 成本 1 3 -> 4 成本 2 4 -> 5 成本 7 3 - > 5 成本 9。您的想法会导致 2 作为答案,但正确的输出是 7。
    • @lucach 你是对的。我已经编辑了我的答案。现在看来是正确的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多