我正在寻找一种快速算法来计算动态图中的最大流量(向图中添加/删除包含边缘的节点)。即,我们现在在G中拥有最大流量,现在添加/删除与之相关的节点和边缘,我不想为新图重新计算最大流量,实际上,我希望利用先前可用的结果来处理这个图形。
适当的预处理不会消耗太多时间/内存。
最简单的想法是重新计算流量。
另一个简单的想法是,保存所有在以前的最大流量计算中使用的增广路径,现在对于添加顶点 v
,我们可以找到简单的路径(在通过前一步更新的容量图中)从源开始,经过v
然后到达目标,但问题是该路径应该是简单的, 对于这种情况我无法找到比 O(n*E) 更好的方法(如果只有一条路径或路径不相交,则可以在O(n+E)内完成,但实际情况并非如此)。
此外,对于删除节点,上述想法也行不通。
同时我的问题与另一个问题没有关联,该问题涉及动态添加/删除边缘。
n
条边,所以顶点的情况比边的情况更复杂,例如,我对边有一些直觉,但对于顶点,我最好的解决方案并不好。 - Saeed Amirin
条边,而不是运行链接的增量边缘算法n
次? - Keith Randall