如何获得最大流量的最小指数?

时间:2014-11-14 07:43:15

标签: algorithm graph flow

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

让S成为解决方案的数组。 如果最大流量包含E [i],则S [i] = 1.否则,S [i] = 0。

我希望获得最大流量,其解决方案按字母顺序排列最小。 我可以通过Ford-Fulkerson获得最大的流量,但我不知道如何才能获得按字母顺序最小的解决方案。

2 个答案:

答案 0 :(得分:0)

算法

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

  1. 从图表中删除边缘
  2. 计算最大流量(从以前的解决方案开始提高效率)
  3. 如果最大流量减少,则更换边缘
  4. 在此过程结束时,使用的边缘将按字母顺序排列最低。

    实施例

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

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

    边缘2未包含在内,因此我们可以永久删除它。

    包含Edge 3,因此我们尝试删除它并计算新的最大流量。新流程具有相同的值并使用边缘0001100,因此我们永久删除边缘3。

    我们现在尝试删除边缘4.但是,在这种情况下,最大流量的值会减小,所以我们必须保持边缘4.

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

答案 1 :(得分:0)

您可以通过为较小指数的边分配较小的成本,将其表示为最小成本最大流量问题。