Computing Approximate b-Matchings in Large Graphs and an Application to k-Anonymity

We consider sequential and shared-memory parallel (on multicore computers) algorithms that implement a half-approximation algorithm for weighted b-matching on arbitrary graphs. Consider an undirected graph G(V,E,w) with vertex set V , edge set E, and weight function w(e) ≥ 0 for each e ∈ E, and a function f : V → Z+ assigning non-negative integers to the vertices. (We assume without loss of generality that f(v) is less than or equal to the degree of the vertex v. ) Then a b-matching on G is a subset of edges M ⊆ E such that every vertex v ∈ V has at most f(v) edges in M incident on it. The values f(v) for each vertex v could be be different or the same (in the latter case f(v) = b for some positive integer b, and hence the name b-matching). The usual notion of matching has f(v) = 1 for all v, and we will call it a 1-matching. If all vertices in M are required to have degree exactly f(v), we call it a perfect b-matching. A maximum cardinality b-matching M has the cardinality |M | as large as possible. A maximum weight b-matching M has the sum of weights ∑ e∈M w(e) as large as possible. In this abstract we focus on the maximum weight b-matching with f(v) >= 2 for all v. The applications of 1-matching problem include Google’s Ad words problem, image recognition in computer vision, network alignment, sparse matrix computations, etc. Jabera et al. [4] have shown that b-matching is useful in various machine learning problems such as classification, spectral clustering, semi-supervised learning and graph embedding. Let m denote the number of edges and n the number of vertices in G. The fastest exact algorithm for this problem, by Gabow and Tarjan [1], requires O(nm) time. Fremuth-Paeger et al. [6] and Jabera et al. [4] describe exact algorithms that use min-cost flow and belief propagation techniques, respectively. Both of these algorithms have running time O(nm), but the belief propagation technique is currently the fastest practical algorithm. However, these running times are prohibitive in case of even moderate-sized graphs, and hence we design linear-time approximation algorithms. The approximate edge weighted 1-matching problem has also been studied. Mestre [3] showed 1/2and (2/3 − )-approximation algorithms for b-matching by extending path-growing approximation algorithms for the 1-matching problem. Morales et al. [2] and Georgiadis et al. [5] developed 1/2−approximation algorithms for b-matching based on the concept of locally dominant edges. Although the latter describes a distributed algorithm and uses different notation, their algorithm is similar to ours. Here we propose a new 1/2−approximation maximum weight b-matching algorithm, called bSuitor, which we show to be practically faster than earlier algorithms. The bSuitor algorithm is an extension of the Suitor algorithm proposed by Manne and Halappanavar [7] for solving the maximum weight 1-matching problem. All of these are serial algorithms. We also study these algorithms in the parallel (shared memory) context. In the bSuitor algorithm each vertex v proposes to a set of f(v) vertices (v is a suitor of these vertices). Hence each vertex maintains two lists of vertices: S(v) is the list of current Suitors of v, i.e., vertices that propose to match to v, and T (v) is a list of vertices that v has proposed to. The process responsible for matching a vertex v includes in T (v) its heaviest available f(v) neighbors, where a neighbor w is unavailable if it has f(w) heavier Suitors than v. This is a speculative algorithm: If v finds that it is heavier than the f(w)-th Suitor of w, call it y, then it unmatches y and includes itself as a Suitor of w. This process now tries to find a neighbor not included in the list T (y) for y to propose to.