## Approximating Maximum Weight Matching in Near-linear Time

### Cached

### Download Links

Citations: | 11 - 2 self |

### BibTeX

@MISC{Duan_approximatingmaximum,

author = {Ran Duan and Seth Pettie},

title = {Approximating Maximum Weight Matching in Near-linear Time},

year = {}

}

### OpenURL

### Abstract

Given a weighted graph, the maximum weight matching problem (MWM) is to find a set of vertex-disjoint edges with maximum weight. In the 1960s Edmonds showed that MWMs can be found in polynomial time. At present the fastest MWM algorithm, due to Gabow and Tarjan, runs in Õ(m √ n) time, where m and n are the number of edges and vertices in the graph. Surprisingly, restricted versions of the problem, such as computing (1 − ɛ)-approximate MWMs or finding maximum cardinality matchings, are not known to be much easier (on sparse graphs). The best algorithms for these problems also run in Õ(m √ n) time. In this paper we present the first near-linear time algorithm for computing (1 − ɛ)-approximate MWMs. Specifically, given an arbitrary real-weighted graph and ɛ> 0, our algorithm computes such a matching in O(mɛ −2 log 3 n) time. The previous best approximate MWM algorithm with comparable running time could only guarantee a (2/3 − ɛ)-approximate solution. In addition, we present a faster algorithm, running in O(m log n log ɛ −1) time, that computes a (3/4−ɛ)-approximate MWM.

### Citations

1521 |
Network Flows: Theory, Algorithms and Applications,Prentice
- Ahuja, Magnati, et al.
- 1993
(Show Context)
Citation Context ...f polynomial time computation with feasibility [8]. After decades of research on the problem, the computational complexity of finding an optimal matching remains quite open. (We recommend [33], [48], =-=[1]-=- for a review of definitions and algorithms.) In bipartite graphs, finding a maximum cardinality matching in polynomial time is trivial, but the same is not true in general graphs. In 1965 Edmonds pre... |

854 | A fast and high quality multilevel scheme for partitioning irregular graphs
- Karypis, Kumar
- 1999
(Show Context)
Citation Context ...n) time. II. APPROXIMATE MWMS FOR SMALL WEIGHTS In this section we describe a simple algorithm for finding (1−ɛ)-MWMs in graphs with integer weights in {1, . . . , N} 2 The clustering libraries METIS =-=[27]-=-, PARTY [44], PT-SCOTCH [41] CHACO [23], and JOSTLE [51] all use some approximate matching routine. PARTY, for example, builds a hierarchical clustering by iteratively finding and contracting approxim... |

824 | The hungarian method for the assignment problem
- Kuhn
- 1955
(Show Context)
Citation Context ...aximum, possibly with the restriction that it simultaneously have maximum cardinality. All these variants are equivalent; see [16]. For bipartite graphs, the implementation of the Hungarian algorithm =-=[30]-=- using Fibonacci heaps [11] runs in O(mn + n 2 log n) time, a bound that is matched in general graphs by Gabow [13] using more complex data structures. Faster algorithms are known when the edge weight... |

590 |
Fibonacci heaps and their uses in improved network optimization algorithms
- Fredman, Tarjan
- 1987
(Show Context)
Citation Context ...estriction that it simultaneously have maximum cardinality. All these variants are equivalent; see [16]. For bipartite graphs, the implementation of the Hungarian algorithm [30] using Fibonacci heaps =-=[11]-=- runs in O(mn + n 2 log n) time, a bound that is matched in general graphs by Gabow [13] using more complex data structures. Faster algorithms are known when the edge weights are bounded integers in [... |

586 |
Combinatorial optimization: Polyhedra and efficiency, volume
- Schrijver
- 2003
(Show Context)
Citation Context ...tion of polynomial time computation with feasibility [8]. After decades of research on the problem, the computational complexity of finding an optimal matching remains quite open. (We recommend [33], =-=[48]-=-, [1] for a review of definitions and algorithms.) In bipartite graphs, finding a maximum cardinality matching in polynomial time is trivial, but the same is not true in general graphs. In 1965 Edmond... |

567 |
An n5/2 algorithm for maximum matchings in bipartite graphs
- Hopcroft, Karp
- 1973
(Show Context)
Citation Context ...y implementations of Edmonds’s algorithm required O(n 3 ) time [26], [12], [31], [3] using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs =-=[25]-=-, Micali and Vazirani [38] presented an MCM algorithm for general graphs running in O(m √ n) time, where m and n are the number of edges and vertices. 1 Over the years others have proposed alternative... |

543 |
Matching theory
- Lovasz
- 1986
(Show Context)
Citation Context ...conflation of polynomial time computation with feasibility [8]. After decades of research on the problem, the computational complexity of finding an optimal matching remains quite open. (We recommend =-=[33]-=-, [48], [1] for a review of definitions and algorithms.) In bipartite graphs, finding a maximum cardinality matching in polynomial time is trivial, but the same is not true in general graphs. In 1965 ... |

483 |
Combinatorial Optimization: Networks and Matroids
- Lawler
- 1976
(Show Context)
Citation Context ...ng these problems, usually based on new structural characterizations and more sophisticated data structures. Algorithms: Early implementations of Edmonds’s algorithm required O(n 3 ) time [26], [12], =-=[31]-=-, [3] using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs [25], Micali and Vazirani [38] presented an MCM algorithm for general graphs ru... |

440 | Achieving 100% Throughput in an Input-Queued Switch
- McKeown, Anantharam, et al.
- 1996
(Show Context)
Citation Context ...nput to output ports. In each cycle one partial permutation can be realized. Existing algorithms for choosing these matchings, such as iSLIP [35] and PIM [2], guarantee 1 2-MCMs and it has been shown =-=[36]-=-, [17] that (approximate) maximum weight matchings, where edge weights are based on queue-length, have good throughput guarantees. (Of course, computing exact MWMs is unrealistic in this application.)... |

366 |
iSLIP: A Scheduling Algorithm for Input-Queued switches
- McKeown
- 1999
(Show Context)
Citation Context ...switches packets are routed across a “switch fabric” from input to output ports. In each cycle one partial permutation can be realized. Existing algorithms for choosing these matchings, such as iSLIP =-=[35]-=- and PIM [2], guarantee 1 2-MCMs and it has been shown [36], [17] that (approximate) maximum weight matchings, where edge weights are based on queue-length, have good throughput guarantees. (Of course... |

329 |
Maximum matching and a polyhedron with 0,1-vertices
- Edmonds
- 1965
(Show Context)
Citation Context ...he same is not true in general graphs. In 1965 Edmonds presented elegant polynomial time algorithms for finding matchings in general graphs with maximum cardinality (MCM) [8] and maximum weight (MWM) =-=[7]-=-. In the intervening years we have seen a succession of faster and more complex algorithms for solving these problems, usually based on new structural characterizations and more sophisticated data str... |

227 | High Speed Switch Scheduling for Local Area Networks
- Anderson, Owicki, et al.
- 1993
(Show Context)
Citation Context ...ets are routed across a “switch fabric” from input to output ports. In each cycle one partial permutation can be realized. Existing algorithms for choosing these matchings, such as iSLIP [35] and PIM =-=[2]-=-, guarantee 1 2-MCMs and it has been shown [36], [17] that (approximate) maximum weight matchings, where edge weights are based on queue-length, have good throughput guarantees. (Of course, computing ... |

157 |
A linear-time algorithm for a special case of disjoint set union. Journal of computer and system sciences
- Gabow, Tarjan
- 1985
(Show Context)
Citation Context ...p 3. Using a slightly modified depth-first search 4 and a standard union-find data structure one can execute Step 1 in O(mα(m, n)) time, or in O(m) time using the incremental-tree set-union structure =-=[14]-=-; see [16, §8]. 5 Steps 2 and 3 can be implemented in linear time using a modified depth first search. When the input graph is bipartite Step 1 is easy to implement in linear time (there being no need... |

151 |
An O( √ V E) algorithm for finding maximum matching in general graphs
- Micali, Vazirani
- 1980
(Show Context)
Citation Context ...ds’s algorithm required O(n 3 ) time [26], [12], [31], [3] using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs [25], Micali and Vazirani =-=[38]-=- presented an MCM algorithm for general graphs running in O(m √ n) time, where m and n are the number of edges and vertices. 1 Over the years others have proposed alternative O(m √ n)-time MCM algorit... |

79 | Auction Algorithms for Network Flow Problems: A Tutorial Introduction
- Bertsekas
- 1992
(Show Context)
Citation Context ...ent in our (1 − ɛ)-MWM algorithm for arbitrarily large weights, presented in Section III. We use the standard LP formulation of Edmonds [7], but maintain only “ɛoptimal” dual variables (see Bertsekas =-=[4]-=- and Gabow and Tarjan [15], [16]) with respect to the current matching. Roughly speaking, they satisfy the complementary slackness conditions up to an additive ɛ. Preliminaries: The algorithm maintain... |

77 | An efficient implementation of Edmond’s algorithm for maximum matching on graphs
- Gabow
- 1976
(Show Context)
Citation Context ... solving these problems, usually based on new structural characterizations and more sophisticated data structures. Algorithms: Early implementations of Edmonds’s algorithm required O(n 3 ) time [26], =-=[12]-=-, [31], [3] using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs [25], Micali and Vazirani [38] presented an MCM algorithm for general gra... |

60 |
Maximum matchings via gaussian elimination
- Mucha, Sankowski
(Show Context)
Citation Context ...rani’s [16], [18]. All of the algorithms cited above are based on incrementally improving a matching via augmenting paths. Using an algebraic characterization of the problem [45], Mucha and Sankowski =-=[39]-=- and Harvey [22] presented MCM algorithms whose running time is roughly O(n ω ), the complexity of square matrix multiplication. If the input graph is weighted one may naturally ask for a matching who... |

47 | A theory of alternating paths and blossoms for proving correctness of the O( √ V E) general graph maximum matching algorithm
- Vazirani
- 1994
(Show Context)
Citation Context ...ching without length 2k − 3 augmenting paths is a (1 − 1/k)-MCM, and that (i,ii) imply that O( √ n) phases 1 A complete description and proof of correctness of the MicaliVazirani algorithm appears in =-=[49]-=-. The Micali-Vazirani algorithm was preceded by one of Even and Kariv [10] who claimed a running time of O(min{n 5/2 , m √ n log n}) in an extended abstract. However, a complete description of the alg... |

38 | A new pivoting strategy for Gaussian elimination. Linear Algebra and its Applications 240
- Olschowka, Neumaier
- 1996
(Show Context)
Citation Context ... so as to minimize the communication cost in certain algorithms [28], [29], [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers =-=[40]-=-, [6], [47], [19]. The goal is to permute the rows/columns to maximize the weight on or near the main diagonal. Definitions and Conventions: The input is a graph G = (V, E, w) where |V | = n, |E| = m,... |

38 | Linear time 1/2-approximation algorithm for maximum weighted matching in general graphs,” ser - Preis - 2001 |

34 | A simple approximation algorithm for the weighted matching problem, Information Processing letters 85
- Drake, Hougardy
- 2003
(Show Context)
Citation Context ... algorithm—iteratively choose the maximum weight edge not incident to previously chosen edges—produces a 1 2-MWM. A straightforward implementation of this algorithm takes O(m log n) time. Preis [43], =-=[5]-=-, reviving the δ-MWM problem from its long slumber, gave a 1 2-MWM algorithm running in linear time. Vinkemeier and Hougardy [50] and Pettie and Sanders [42] proposed several ( 2 3 − ɛ)-MWM algorithms... |

32 | Finding graph matchings in data streams - McGregor - 2005 |

31 |
An O(nS/2) algorithm for maximum matching in general graphs
- Even, Kariv
- 1975
(Show Context)
Citation Context ...(i,ii) imply that O( √ n) phases 1 A complete description and proof of correctness of the MicaliVazirani algorithm appears in [49]. The Micali-Vazirani algorithm was preceded by one of Even and Kariv =-=[10]-=- who claimed a running time of O(min{n 5/2 , m √ n log n}) in an extended abstract. However, a complete description of the algorithm was never published.suffice to compute an MCM. Surprisingly, the b... |

23 |
Maximum matchings in general graphs through randomization
- Rabin, Vazirani
- 1989
(Show Context)
Citation Context ...generalize Micali and Vazirani’s [16], [18]. All of the algorithms cited above are based on incrementally improving a matching via augmenting paths. Using an algebraic characterization of the problem =-=[45]-=-, Mucha and Sankowski [39] and Harvey [22] presented MCM algorithms whose running time is roughly O(n ω ), the complexity of square matrix multiplication. If the input graph is weighted one may natura... |

19 | PARTY – A software library for graph partitioning
- Preis, Diekmann
- 1997
(Show Context)
Citation Context ... APPROXIMATE MWMS FOR SMALL WEIGHTS In this section we describe a simple algorithm for finding (1−ɛ)-MWMs in graphs with integer weights in {1, . . . , N} 2 The clustering libraries METIS [27], PARTY =-=[44]-=-, PT-SCOTCH [41] CHACO [23], and JOSTLE [51] all use some approximate matching routine. PARTY, for example, builds a hierarchical clustering by iteratively finding and contracting approximate MWMs. Pr... |

18 | Weighted matchings for the preconditioning of symmetric indefinite linear systems
- Hagemann, Schenk
(Show Context)
Citation Context ...e the communication cost in certain algorithms [28], [29], [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], [6], [47], =-=[19]-=-. The goal is to permute the rows/columns to maximize the weight on or near the main diagonal. Definitions and Conventions: The input is a graph G = (V, E, w) where |V | = n, |E| = m, and w : E → R. A... |

17 | Distributed approximate matching - Lotker, Patt-Shamir, et al. - 2007 |

17 |
Matching-based preprocessing algorithms to the solution of saddle-point problems in large-scale nonconvex interior-point optimization
- Schenk, Wächter, et al.
- 2007
(Show Context)
Citation Context ...inimize the communication cost in certain algorithms [28], [29], [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], [6], =-=[47]-=-, [19]. The goal is to permute the rows/columns to maximize the weight on or near the main diagonal. Definitions and Conventions: The input is a graph G = (V, E, w) where |V | = n, |E| = m, and w : E ... |

16 | Greedy in approximation algorithms
- Mestre
- 2006
(Show Context)
Citation Context ...the δ-MWM problem from its long slumber, gave a 1 2-MWM algorithm running in linear time. Vinkemeier and Hougardy [50] and Pettie and Sanders [42] proposed several ( 2 3 − ɛ)-MWM algorithms (see also =-=[37]-=-) running in O(m log ɛ−1 ) time; each is based on iteratively improving a matching by identifying sets of short weight-augmenting paths and cycles. No linear time algorithms with approximation ratio b... |

15 |
Maximum weight bipartite matching in matrix multiplication time
- Sankowski
(Show Context)
Citation Context ...ords. Gabow and Tarjan [15], [16] gave bit-scaling algorithms for MWM running in O(m √ n log(nN)) time in bipartite graphs and O(m √ n log n log(nN)) time in general graphs. Extending [39], Sankowski =-=[46]-=- gave an O(Nn ω )-time MWM algorithm for bipartite graphs. Approximation Algorithms: Let a δ-MWM be a matching whose weight is at least a δ fraction of the maximum weight matching, where 0 < δ ≤ 1, an... |

14 | JOSTLE: parallel multilevel graph-partitioning software–an overview. Mesh partitioning techniques and domain decomposition techniques
- Walshaw, Cross
- 2007
(Show Context)
Citation Context ...section we describe a simple algorithm for finding (1−ɛ)-MWMs in graphs with integer weights in {1, . . . , N} 2 The clustering libraries METIS [27], PARTY [44], PT-SCOTCH [41] CHACO [23], and JOSTLE =-=[51]-=- all use some approximate matching routine. PARTY, for example, builds a hierarchical clustering by iteratively finding and contracting approximate MWMs. Preis’s algorithm [43] was specifically motiva... |

13 | Improved distributed approximate matching - Lotker, Patt-Shamir, et al. - 2008 |

12 | Improved approximation guarantees for weighted matching in the semi-streaming model - Epstein, Levin, et al. |

11 | Algebraic algorithms for matching and matroid problems
- Harvey
(Show Context)
Citation Context ...]. All of the algorithms cited above are based on incrementally improving a matching via augmenting paths. Using an algebraic characterization of the problem [45], Mucha and Sankowski [39] and Harvey =-=[22]-=- presented MCM algorithms whose running time is roughly O(n ω ), the complexity of square matrix multiplication. If the input graph is weighted one may naturally ask for a matching whose weight is min... |

10 |
A simpler linear time 2/3 − ɛ approximation to maximum weight matching
- Pettie, Sanders
- 2004
(Show Context)
Citation Context ...lgorithm takes O(m log n) time. Preis [43], [5], reviving the δ-MWM problem from its long slumber, gave a 1 2-MWM algorithm running in linear time. Vinkemeier and Hougardy [50] and Pettie and Sanders =-=[42]-=- proposed several ( 2 3 − ɛ)-MWM algorithms (see also [37]) running in O(m log ɛ−1 ) time; each is based on iteratively improving a matching by identifying sets of short weight-augmenting paths and cy... |

8 |
Maximum-weighted matching and block pivoting for symmetric indenite systems
- DUFF, GILBERT
(Show Context)
Citation Context ... to minimize the communication cost in certain algorithms [28], [29], [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], =-=[6]-=-, [47], [19]. The goal is to permute the rows/columns to maximize the weight on or near the main diagonal. Definitions and Conventions: The input is a graph G = (V, E, w) where |V | = n, |E| = m, and ... |

8 | On the maximal throughput of networks with finite buffers and its application to buffered crossbar
- Giaccone, Leonardi, et al.
- 2005
(Show Context)
Citation Context ...o output ports. In each cycle one partial permutation can be realized. Existing algorithms for choosing these matchings, such as iSLIP [35] and PIM [2], guarantee 1 2-MCMs and it has been shown [36], =-=[17]-=- that (approximate) maximum weight matchings, where edge weights are based on queue-length, have good throughput guarantees. (Of course, computing exact MWMs is unrealistic in this application.) Appro... |

6 |
k-way partitioning scheme for irregular graphs
- Multilevel
- 1998
(Show Context)
Citation Context ... several clustering libraries. 2 These clustering algorithms are used, for example, to partition a graph across many parallel processors so as to minimize the communication cost in certain algorithms =-=[28]-=-, [29], [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], [6], [47], [19]. The goal is to permute the rows/columns to ma... |

4 |
flowers.” Canadian
- “Paths
(Show Context)
Citation Context ...the maximum matching problem is intertwined with the development of modern graph theory, combinatorial optimization, matroid theory, and the conflation of polynomial time computation with feasibility =-=[8]-=-. After decades of research on the problem, the computational complexity of finding an optimal matching remains quite open. (We recommend [33], [48], [1] for a review of definitions and algorithms.) I... |

4 |
The Chaco User's Guide: Version 2.0”. Sandia
- Hendrickson, Leland
- 1994
(Show Context)
Citation Context ... WEIGHTS In this section we describe a simple algorithm for finding (1−ɛ)-MWMs in graphs with integer weights in {1, . . . , N} 2 The clustering libraries METIS [27], PARTY [44], PT-SCOTCH [41] CHACO =-=[23]-=-, and JOSTLE [51] all use some approximate matching routine. PARTY, for example, builds a hierarchical clustering by iteratively finding and contracting approximate MWMs. Preis’s algorithm [43] was sp... |

3 |
Zwei approximative Algorithmen für das Matchingproblem
- Hanke
- 2004
(Show Context)
Citation Context ... ( 3 − ɛ)-MWMs in time 4 O(m log n log ɛ−1 ), which improves the accuracy of ( 2 3 −ɛ)- MWM algorithms [50], [42] though is a logarithmic factor slower. (In independent work, Hanke and Hougardy [21], =-=[20]-=- obtained a similar ( 3 4 − ɛ)-MWM algorithm, as well as a ( 4 5 − ɛ)-MWM algorithm running in O(m log2 n log ɛ−1 ) time.) Technical Challenges: After one surveys the state-ofthe-art in exact and appr... |

2 |
scaling algorithms for general graph-matching problems
- “Faster
- 1991
(Show Context)
Citation Context ...aphs running in O(m √ n) time, where m and n are the number of edges and vertices. 1 Over the years others have proposed alternative O(m √ n)-time MCM algorithms that generalize Micali and Vazirani’s =-=[16]-=-, [18]. All of the algorithms cited above are based on incrementally improving a matching via augmenting paths. Using an algebraic characterization of the problem [45], Mucha and Sankowski [39] and Ha... |

2 | A o(|v||e|) algorithm for maximum matching of graphs
- Kameda, Munro
- 1974
(Show Context)
Citation Context ...ms for solving these problems, usually based on new structural characterizations and more sophisticated data structures. Algorithms: Early implementations of Edmonds’s algorithm required O(n 3 ) time =-=[26]-=-, [12], [31], [3] using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs [25], Micali and Vazirani [38] presented an MCM algorithm for gener... |

1 |
Labelling to obtain a maximum matching,” in Combinatorial Mathematics and its Application, Eds
- Balinski
- 1969
(Show Context)
Citation Context ...se problems, usually based on new structural characterizations and more sophisticated data structures. Algorithms: Early implementations of Edmonds’s algorithm required O(n 3 ) time [26], [12], [31], =-=[3]-=- using elementary data structures. Following the approach of Hopcroft and Karp’s MCM algorithm for bipartite graphs [25], Micali and Vazirani [38] presented an MCM algorithm for general graphs running... |

1 |
structures for weighted matching and nearest common ancestors with linking
- “Data
- 1990
(Show Context)
Citation Context ...alent; see [16]. For bipartite graphs, the implementation of the Hungarian algorithm [30] using Fibonacci heaps [11] runs in O(mn + n 2 log n) time, a bound that is matched in general graphs by Gabow =-=[13]-=- using more complex data structures. Faster algorithms are known when the edge weights are bounded integers in [−N, . . . , N], where a word RAM model is assumed, with log(max{N, n})-bit words. Gabow ... |

1 |
scaling algorithms for network problems
- “Faster
- 1989
(Show Context)
Citation Context ... complex data structures. Faster algorithms are known when the edge weights are bounded integers in [−N, . . . , N], where a word RAM model is assumed, with log(max{N, n})-bit words. Gabow and Tarjan =-=[15]-=-, [16] gave bit-scaling algorithms for MWM running in O(m √ n log(nN)) time in bipartite graphs and O(m √ n log n log(nN)) time in general graphs. Extending [39], Sankowski [46] gave an O(Nn ω )-time ... |

1 |
multi-level algorithm for partitioning graphs
- “A
- 1995
(Show Context)
Citation Context ...stering libraries. 2 These clustering algorithms are used, for example, to partition a graph across many parallel processors so as to minimize the communication cost in certain algorithms [28], [29], =-=[24]-=-. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], [6], [47], [19]. The goal is to permute the rows/columns to maximize the w... |

1 |
parallel algorithm for multilevel graph partitioning and sparse matrix ordering
- “A
- 1998
(Show Context)
Citation Context ...al clustering libraries. 2 These clustering algorithms are used, for example, to partition a graph across many parallel processors so as to minimize the communication cost in certain algorithms [28], =-=[29]-=-, [24]. Maximum weight matching algorithms are used as a heuristic preprocessing step in several sparse linear system solvers [40], [6], [47], [19]. The goal is to permute the rows/columns to maximize... |

1 |
SCOTCH 5.1 user’s guide,” LaBRI
- Pellegrini
- 2008
(Show Context)
Citation Context ...S FOR SMALL WEIGHTS In this section we describe a simple algorithm for finding (1−ɛ)-MWMs in graphs with integer weights in {1, . . . , N} 2 The clustering libraries METIS [27], PARTY [44], PT-SCOTCH =-=[41]-=- CHACO [23], and JOSTLE [51] all use some approximate matching routine. PARTY, for example, builds a hierarchical clustering by iteratively finding and contracting approximate MWMs. Preis’s algorithm ... |