$\exists a_k,k\in [1,i-1],(a_i,a_k)\in G$ ### Maximum Integer Flows in Directed Planar Graphs with Multiple Sources and Sinks and Vertex Capacities <!-- Put the link to this slide here so people can follow --> Yipu Wang University of Illinois at Urbana-Champaign --- ## Planar graph + Graph can be embedded in the plane without crossing edge + Not contain some subgraph homeomorphism with $K_5$ and $K_{3,3}$ ---- ## vertex capacity + Split the the verteces has vertex capacity $C(v)$ to two vertex $v_{in}$,$v_{out}$ + For edge $(u,v)$ replace the edge with $(u,v_{in})$ + For edge $(v,u)$ replace the edge with $(v_{out},u)$ + Build an edge $v_{in}$ to $v_{out}$ with capacity $C(v)$ + Transform can not keep planar graph ($K_4$) ![](https://imgur.com/ohclRel.jpg) ![](https://imgur.com/clwXlL8.jpg) ---- ## Multiple Sources and Sinks + build super source and super sink connect to all the source and sink + transform can not keep planar graph (a $K_4$ sources) + There is a $O(nlog^3n)$ algorithm with mutiple sources and sinks in planar graph(algorithm of Borradaile). --- ## problem description + $G$ is simple directed plane graph + $V(G)$ is vertex set + $E(G)$ is edge set + $F(G)$ is face set + $S$ is sources set + $T$ is sinks set + terminal vertex is a vertex belong $S$ or $T$ + Each edge $e$ has capacity $c(e)$ + Each non-terminal vertex has capacity $c(v)$ + Find a maximal flow between the $S$ and $T$ --- ## related work ###### algorithm of Borradaile ![](https://i.imgur.com/GFrga3Q.jpg) ---- ## Apex graph + $k$-apex graphs is a graph G can be planar after remove at most $k$ vertex + The multiple sources and sinks flow on planar can be reduce to single source and sink flow on $2$-apex graph. + There is a $O(k^3nlog^3n)$ algorithm with multiple sink and source in $k$-apex graph(algorithm of Borradaile). ---- ## vertex Capacity + Transform the vertex which has verxtex capacity $C(v)$ to a cycle with edge capactiy $\frac{C(v)}{2}$ and size $in(v)+out(v)$ in clock order, call this garph is $G^。$ ![](https://i.imgur.com/BsF8bde.jpg) to ![](https://i.imgur.com/hQRclSz.jpg) ---- Lemma 2.1. Every feasible flow $f$ in $G$ has an extension $f^◦$ that is feasible in $G^◦$. Lemma 3.1. If $f_{G^。}$ is a plane directed acyclic graph with $k_1$ sources and $k_2$ sinks, then the sum of the indices of the saddles in $f_{G^。}$ is at most $k_1$ + $k_2$ − 2 Lemma 3.2. Let $index(v)$ be defined for each vertex $v$ in $G^。$ using the flow graph $f_{G^。}$ of $f$. For each vertex $v$ in $f_{G^。}$, we have $ex(f, v) \le index(v)c(v)$. ---- ###### Lemma 2.1. Every feasible flow $f$ in $G$ has an extension $f^◦$ that is feasible in $G^◦$. + According to flow decomposition theorem, If there is a one unit flow into $v$, it can be spit to two $\frac12$ flow in clock and counter-clock dirction in $G^。$, the remain capacity for this vertex is $C(v)-1$ and the vertex cycle has $\frac{C(v)-1}2$ capaicty. ![](https://i.imgur.com/EBVQUfF.jpg) ---- For a vertex cycle, merge the adjancency same direction edge. ![](https://i.imgur.com/mbrP7X4.jpg) to ![](https://i.imgur.com/hgGtMtq.jpg) + $\alpha(v)$ is the number of edge in $G_f$ change the direction in clock order in vertex $v$ cycle, is alway even, for the terminal vertex $v'$, $\alpha(v') = 0$. + $index(v) = \frac{\alpha(v)}{2} - 1$ + a vertex $v$ is saddles if $index(v) \ge 1$ + a vertex is saddles may have excess flow in original graph $G$, its excess flow is $ex(f,v)$. ---- ###### Lemma 3.1. If $f_{G^。}$ is a plane directed acyclic graph with $k_1$ sources and $k_2$ sinks, then the sum of the indices of the saddles in $f_{G^。}$ is at most $k_1$ + $k_2$ − 2 + Each edge connect to two face and two vertex. + For a face $\phi$, $\alpha(\phi)$ is the number of adjancency edge change the direciton in clock order. ![](https://i.imgur.com/u8C3xWP.jpg) make $\alpha(v)$ increase by 1 ![](https://i.imgur.com/Tr4aWw6.jpg) make $\alpha(\phi)$ incrase by 1 $2E = \sum_{v\in V(f_G)}\alpha (v) + \sum_{\phi \in F(f_G)} \alpha(\phi)$ $\Rightarrow E = \sum_{v \in V(f_G)}(index(v)+1)+$ $\sum_{\phi \in F(f_G)}(index(\phi)+1)$ $\Rightarrow E=\sum_{v \in V(f_G)}index(v)+\sum_{\phi \in F(f_G)}index(\phi) +$ $V + F$ $\Rightarrow -2\ge\sum_{v \in V(f_G)}index(v)+\sum_{\phi \in F(f_G)}index(\phi)$ since $index(v)=-1$ for each terminal v, $k_1+k_2-2\ge \sum_{v:index(v)\ge1}index(v)$ ---- ###### Lemma 3.2. Let $index(v)$ be defined for each vertex $v$ in $G^。$ using the flow graph $f_{G^。}$ of $f$. For each vertex $v$ in $f_{G^。}$, we have $ex(f, v) \le index(v)c(v)$. + after we merge the adjancency same direction edge, in the worst case each in edge may carry $c(v)$ unit flow to this vertex, and give half to both adjancency out edge, so total unit of is $c(v)*\frac{\alpha(v)}2 = c(v)*(index(v)+1)$ ![](https://i.imgur.com/atKxe8i.jpg) ---- # Bounded integer capcity case + For all vertex and edge capacity are integer less than some constant $U$. + $f^。$is an integral maximun flow in $G^。$ + Combine Lemmas 3.1 and 3.2 the sum of the excesses of all vertices in $f^。$ for graph $G$ is at most $(k-2)U$ + For a infeasible vertex $x$, we remove one unit flow. + $f_G$ is the flow graph of $f$ + Find a path $P_s$ in $f_G$ from $s$ to $x$. + Find a path $P_t$ in $f_G$ from $x$ to $t$. + The Path $P_s\cup P_t$is a path from s to t, decrease it by 1. And the $ex(f,x)$ also decrease by 1. + the algorithm above will take $O(n)$, and we need to remove at most $(k-2)U$ units of flow, total runs in $O(knU)$. + And the remaining flow at most $(k-2)*U$, we use Ford-Fulkerson algorithm, it take $O(knU)$ + Total run time is $O(nlog^3n+knU)$ ---- # UnBounded integer capcity case ###### Lemma 3.1. If $f_{G^。}$ is a plane directed acyclic graph with $k_1$ sources and $k_2$ sinks, then the sum of the indices of the saddles in $f_{G^。}$ is at most $k_1$ + $k_2$ − 2 ###### There is a $O(k^3nlog^3n)$ algorithm with multiple sink and source in $k$-apex graph(algorithm of Borradaile). ![](https://i.imgur.com/xsivyph.jpg) + For each vectex $v$ has $index(v)\ge 1$, we transform it as above. + Use the algorithm of Borradaile. + There are at most $k_1+k_2-2$ that node + It is $k_1+k_2-2$-apex graph. + Total Time complexity is $O(\sum_{i=1}^{k}i^3nlog^3n)\Rightarrow O(k^4nlog^3n)$
{"metaMigratedAt":"2023-06-14T22:22:27.619Z","metaMigratedFrom":"YAML","title":"Talk slides template","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"68c8f105-83fb-48fb-9895-ac6e5229ba28\",\"add\":9336,\"del\":2892}]"}
Expand menu