We consider the problem of finding maximum flows in planar graphs with capacities on both vertices and edges and with multiple sources and sinks. We present three algorithms when the capacities are integers. The first algorithm runs in $O(n \log^3 n + kn)$ time when all capacities are bounded, where $n$ is the number of vertices in the graph and $k$ is the number of terminals. This algorithm is the first to solve the vertex-disjoint paths problem in near-linear time when $k$ is bounded but larger than 2. The second algorithm runs in $O(k^2(k^3 + \Delta) n \text{ polylog} (nU))$ time, where $U$ is the largest finite capacity of a single vertex and $\Delta$ is the maximum degree of a vertex. Finally, when $k=3$, we present an algorithm that runs in $O(n \log n)$ time; this algorithm works even when the capacities are arbitrary reals. Our algorithms improve on the fastest previously known algorithms when $k$ and $\Delta$ are small and $U$ is bounded by a polynomial in $n$. Prior to this result, the fastest algorithms ran in $O(n^2 / \log n)$ time for real capacities and $O(n^{3/2} \log n \log U)$ for integer capacities.
翻译:我们考虑的是,在具有顶端和边缘以及多个源和汇的能力的平面图中找到最大流量的问题。 当能力为整数时, 我们提出三种算法。 第一个算法以美元( n\log3 n + kn) 时间运行。 当所有能力被约束时, 第一个算法以美元运行, 美元是图形中的顶点数, 美元是终端数。 最后, 当 美元=3 美元时, 我们提出一个在近线时间的顶点分解路径问题, 当美元被捆绑但大于2. 时, 我们提出三种算法。 第二个算法以美元运行 $( k_ 2 k3 +\ delta) n\ text{ polog} (nU) 时间运行。 当能力是任意的美元时, 美元( 美元) 之前的顶点能力是单个顶点数, 美元是顶点的顶点数。 最后, 当 美元=3美元时, 我们提出一个以美元运行的顶点算算算算, 当能力为美元时, 美元为最小的 美元 。