705851
A linear-time algorithm for a special case of disjoint set union
This paper presents a linear-time algorithm for the special case of the disjoint set union problem in which the structure of the unions (defined by a “union tree”) is known in advance. The algorithm executes an intermixed sequence of <italic>m</italic> union and find operations on <italic>n</italic> elements in 0(<italic>m</italic>+<italic>n</italic>) time and 0(<italic>n</italic>) space. This is a slight but theoretically significant improvement over the fastest known algorithm for the general problem, which runs in 0(<italic>m</italic>α(<italic>m</italic>+<italic>n, n</italic>)+<italic>n</italic>) time and 0(<italic>n</italic>) space, where α is a functional inverse of Ackermann's function. Used as a subroutine, the algorithm gives similar improvements in the efficiency of algorithms for solving a number of other problems, including two-processor scheduling, the off-line min problem, matching on convex graphs, finding nearest common ancestors off-line, testing a flow graph for reducibility, and finding two disjoint directed spanning trees. The algorithm obtains its efficiency by combining a fast algorithm for the general problem with table look-up on small sets, and requires a random access machine for its implementation. The algorithm extends to the case in which single-node additions to the union tree are allowed. The extended algorithm is useful in finding maximum cardinality matchings on nonbipartite graphs.
18699794
Almost-optimum speed-ups of algorithms for bipartite matching and related problems
We present algorithms for matching and related problems that run on an EREW PRAM with <italic>p</italic> processors. Given is a bipartite graph <italic>G</italic> with <italic>n</italic> vertices, <italic>m</italic> edges, and integral edge costs at most <italic>N</italic> in magnitude. We give an algorithm for the assignment problem (minimum cost perfect bipartite matching) that runs in <italic>&Ogr;</italic>(√<italic>nm</italic> log (<italic>nN</italic>)(log(2<italic>p</italic>))/<italic>p</italic>) time and <italic>&Ogr;</italic>(<italic>m</italic>) space, for <italic>p</italic> ≤ <italic>m</italic>/(√<italic>n</italic>log<supscrpt>2</supscrpt><italic>n</italic>). For <italic>p</italic> = 1 this improves the best known sequential algorithm, and is within a factor of log (<italic>nN</italic>) of the best known bound for the problem without costs (maximum cardinality matching). For <italic>p</italic> > 1 the time is within a factor of log <italic>p</italic> of optimum speed-up. Extensions include an algorithm for maximum cardinality bipartite matching with slightly better processor bounds, and similar results for bipartite degree-constrained subgraph problems (with and without costs). Our ideas also extend to general graph matching problems.
7483054
A Linear-Time Algorithm for a Special Case of Disjoint Set Union
This paper presents a linear-time algorithm for the special case of the disjoint set union problem in which the structure of the unions (defined by a “union tree”) is known in advance. The algorithm executes an intermixed sequence of m union and find operations on n elements in O(m+n) time and O(n) space. This is a slight but theoretically significant improvement over the fastest known algorithm for the general problem, which runs in O(mα(m+n, n)+n) time and O(n) space, where a is a functional inverse of Ackermann's function. Used as a subroutine, the algorithm gives similar improvements in the efficiency of algorithms for solving several other problems, including two-processor scheduling, matching on convex graphs, finding nearest common ancestors off-line, testing a flow graph for reducibility, and finding two disjoint directed spanning trees. The algorithm obtains its efficiency by combining the fast algorithm for the general problem with table look-up on small sets, and requires a random access machine for its implementation. The algorithm extends to the case in which single-node additions to the union tree are allowed. The extended algorithm is useful in finding maximum cardinality matchings in nonbipartite graphs.
18350108
Faster scaling algorithms for general graph matching problems
An algorithm for minimum-cost matching on a general graph with integral edge costs is presented. The algorithm runs in time close to the fastest known bound for maximum-cardinality matching. Specifically, let n, m, and N denote the number of vertices, number of edges, and largest magnitude of a cost, respectively. The best known time bound for maximum-cardinal ity matching M 0( Am). The new algorithm for minimum-cost matching has time bound 0( in a ( m, n )Iog n m log ( nN)). A slight modification of the new algorithm finds a maximum-cardinality matching in 0( fire) time. Other applications of the new algorlthm are given, mchrding an efficient implementa- tion of Christofides' traveling salesman approximation algorithm and efficient solutions to update problems that require the linear programming duals for matching.
206562722
Dominating Sets in Planar Graphs
Motivated by an application to unstructured multigrid calculations, we consider the problem of asymptotically minimizing the size of dominating sets in triangulated planar graphs. Specifically, we wish to find the smallestesuch that, fornsufficiently large, everyn-vertex planar graph contains a dominating set of size at mosten.We prove that 1/4<e<1/3, and we conjecture thate=1/4.For triangulated discs we obtain a tight bound ofe=1/3.The upper bound proof yields a linear-time algorithm for finding an(n/3)-size dominating set.
31445898
Enumeration of the Elementary Circuits of a Directed Graph
An algorithm to enumerate all the elementary circuits of a directed graph is presented. The algorithm uses back-tracking with lookahead to avoid unnecessary work, and it has a time bound of $O ((V+E)(C+1))$ when applied to a graph with $V$ vertices, $E$ edges, and $C$ elementary circuits. Keywords: Algorithm, circuit, cycle, graph
37146522
Making Data Structures Persistent
12044793
Edge-disjoint spanning trees and depth-first search
SummaryThis paper presents an algorithm for finding two edge-disjoint spanning trees rooted at a fixed vertex of a directed graph. The algorithm uses depthfirst search and an efficient method for computing disjoint set unions. It requires O (eα(e, n)) time and O(e) space to analyze a graph with n vertices and e edges, where α (e, n) is a very slowly growing function related to a functional inverse of Ackermann's function.
18789602
Testing graph connectivity
An algorithm proposed by Dinic for finding maximum flows in networks and by Hopcroft and Karp for finding maximum bipartite matchings is applied to graph connectivity problems. It is shown that the algorithm requires 0(V<supscrpt>1/2</supscrpt>E) time to find a maximum set of node-disjoint paths in a graph, and 0(V<supscrpt>2/3</supscrpt>E) time to find a maximum set of edge disjoint paths. These bounds are tight. Thus the node connectivity of a graph may be tested in 0(V<supscrpt>5/2</supscrpt>E) time, and the edge connectivity of a graph may be tested in 0(V<supscrpt>5/3</supscrpt>E) time.