Abstract
Let G=(V,E) be an undirected graph, S be a subset of its vertices, ${\frak C}_S$ be the set of minimum edge-cuts partitioning S, and $\lambda_S$ be the cardinality of such a cut. We suggest a graph structure, called the connectivity carcass of S, that represents both cuts in $\frak C_S$ and the partition of V by all these cuts; its size is $O(\min\{|E|,\lambda_S|V|\})$. In this paper we present general constructions and study in detail the case $\lambda_S$ odd; the specifics of the case $\lambda_S$ even are considered elsewhere. For an adequate description of the connectivity carcass we introduce a new type of graph: locally orientable graphs, which generalize digraphs. The connectivity carcass consists of a locally orientable quotient graph of G, a cactus tree (in case $\lambda_S$ odd, just a tree) representing all distinct partitions of S by cuts in ${\frak C}_S$, and a mapping connecting them. One can build it in O(|S|) max-flow computations in G. For an arbitrary sequence of u edge insertions not changing $\lambda_S$, the connectivity carcass can be maintained in time $O(|V|\min\{|E|,\lambda_S|V|\}+u)$. For two vertices of G, queries asking whether they are separated by a cut in $\frak C_S$ are answered in O(1) worst-case time per query. Another possibility is to maintain the carcass in $O(|S|\min\{|E|,\lambda_S|V|\}+u)$ time, but to answer the queries in O(1) time only if at least one of the vertices belongs to S.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.