Algorithm 理解几何约束求解的伪代码最大流算法有困难

Algorithm 理解几何约束求解的伪代码最大流算法有困难,algorithm,graph,Algorithm,Graph,因此,我正在努力解决这个问题,主要是寻找加权图的最小稠密子图(在几何约束求解的上下文中) 稠密子图是边权重和顶点权重之和相等的子图 作者解释说,这在某种程度上等同于最大流算法,因此他在标准最大流算法的基础上提出了一个变体,他说该算法对于这个问题更有效。然而,我不太熟悉的概念,我发现实际的描述非常迟钝。也许有人能帮我 算法说明如下: 我非常困惑第17步应该是什么,流实际上在哪里初始化,以及扩充过程是如何工作的 本文提供了一个例子: 所以我试着通过这个例子,但我不能让它做它应该做的。似乎当它第一

因此,我正在努力解决这个问题,主要是寻找加权图的最小稠密子图(在几何约束求解的上下文中)

稠密子图是边权重和顶点权重之和相等的子图

作者解释说,这在某种程度上等同于最大流算法,因此他在标准最大流算法的基础上提出了一个变体,他说该算法对于这个问题更有效。然而,我不太熟悉的概念,我发现实际的描述非常迟钝。也许有人能帮我

算法说明如下:

我非常困惑第17步应该是什么,流实际上在哪里初始化,以及扩充过程是如何工作的

本文提供了一个例子:

所以我试着通过这个例子,但我不能让它做它应该做的。似乎当它第一次循环时,它访问e1、v0和v2,并标记e0和e2。然后访问e0并标记v2。然后它访问e2,但是它的所有顶点都已经访问过了,所以该算法从来没有做过任何事情。它如何扩展路径

提前感谢。

如果流实际上已经初始化,那么它们就没有初始化——这是作者的疏忽。假设所有e和v的fev最初为零

增强过程的工作原理第17步明显高于常规的其余部分。扩充路径是最大流的一个标准子主题,许多本科算法文本都涵盖了这个主题

让我们考虑一个流问题,其中所有的事物都有权重1。< /P>

a-->b
   ^
  /
 /
c-->d
我没有画
s
t
。假设我们把一个单位从
c
推到
b

a-->b
   /
  /
 v
c-->d
出现从
b
c
的反向弧是因为,虽然我们不能从绝对意义上将流从
b
发送到
c
,但我们可以取消从
c
b
的一个单位,这在数学上具有相同的效果。最大流的值为2,我们通过增加路径
a->b->c->d
来实现。这只意味着将一个单元从
a
推到
b
,将一个单元从
c
取消到
b
,将一个单元从
c
推到
d

下面是步骤17的一些伪代码

Augment(vert, pred, amount)
  v = vert
  while true
    e = pred(v)
    f_e^v += amount
    if pred(e) is null
      break
    v = pred(e)
    f_e^v -= amount

amount
应该是最大的值,它不会导致任何边产生超过其重量的结果,也不会导致任何顶点消耗超过其重量的结果。

谢谢,我明天会尝试。