【问题标题】:How can I get maximum flow of minimum index?如何获得最小索引的最大流量?
【发布时间】:2014-11-14 07:43:14
【问题描述】:

用 E[i] 表示索引为 i 的边。

令 S 是一个解决方案的数组。 如果最大流包含 E[i],则 S[i] = 1。否则,S[i] = 0。

我想获得一个最大流量,其解决方案按字母顺序最小。 我可以通过 Ford-Fulkerson 获得最大流量,但我不知道如何获得按字母顺序最小的解决方案。

【问题讨论】:

  • 按字母顺序排列的最小值是什么意思?
  • @keyser 我不知道合适的词。我想表达“字典的顺序”。
  • 问题是,我不明白字母表是如何参与其中的。什么字典?你想排序,但是什么?
  • 这个订单:0000 0001 0010 0011 0100 0101 0110 ...
  • 这是常规排序,按升序排列

标签: algorithm graph flow


【解决方案1】:

算法

一种方法是计算最大流量,然后依次尝试每条边:

  1. 从图中删除边
  2. 计算最大流量(效率从您之前的解决方案开始)
  3. 如果最大流量减少,则更换边缘

在此过程结束时,使用的边将按字母顺序排列。

示例

对于 0010001、1000000、0001100 的示例,假设我们从解决方案 1000000 开始。

我们将首先尝试删除边 1,新的最大流量将具有相同的值(现在使用边 00100001),因此我们永久删除边 1。

Edge 2 不包括在内,因此我们可以将其永久移除。

Edge 3 已包含在内,因此我们尝试将其移除并计算新的最大流量。新流具有相同的值并使用边 0001100,因此我们永久删除边 3。

我们现在尝试删除边 4。但是,在这种情况下,最大流量的值会减小,因此我们必须保留边 4。

同样我们会发现我们需要保留边 5,但可以删除边 6 和 7。

【讨论】:

    【解决方案2】:

    您可以通过将较小的成本分配给具有较小索引的边来将其表述为最小成本最大流量问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-10
      • 2020-03-11
      • 2021-07-04
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多