# 3-dimensional matching

Jump to navigation Jump to search

In the mathematical discipline of graph theory, a 3-dimensional matching is a generalization of bipartite matching (also known as 2-dimensional matching) to 3-partite hypergraphs. Finding a largest 3-dimensional matching is a well-known NP-hard problem in computational complexity theory.

## Definition

Let X, Y, and Z be finite sets, and let T be a subset of X × Y × Z. That is, T consists of triples (xyz) such that x ∈ X, y ∈ Y, and z ∈ Z. Now M ⊆ T is a 3-dimensional matching if the following holds: for any two distinct triples (x1y1z1) ∈ M and (x2y2z2) ∈ M, we have x1 ≠ x2, y1 ≠ y2, and z1 ≠ z2.

### Example

The figure on the right illustrates 3-dimensional matchings. The set X is marked with red dots, Y is marked with blue dots, and Z is marked with green dots. Figure (a) shows the set T (gray areas). Figure (b) shows a 3-dimensional matching M with |M| = 2, and Figure (c) shows a 3-dimensional matching M with |M| = 3.

The matching M illustrated in Figure (c) is a maximum 3-dimensional matching, i.e., it maximises |M|. The matching illustrated in Figures (b)–(c) are maximal 3-dimensional matchings, i.e., they cannot be extended by adding more elements from T.

Here is example interactive visualisation in javascript

### Comparison with bipartite matching

A 2-dimensional matching can be defined in a completely analogous manner. Let X and Y be finite sets, and let T be a subset of X × Y. Now M ⊆ T is a 2-dimensional matching if the following holds: for any two distinct pairs (x1y1) ∈ M and (x2y2) ∈ M, we have x1 ≠ x2 and y1 ≠ y2.

In the case of 2-dimensional matching, the set T can be interpreted as the set of edges in a bipartite graph G = (XYT); each edge in T connects a vertex in X to a vertex in Y. A 2-dimensional matching is then a matching in the graph G, that is, a set of pairwise non-adjacent edges.

Hence 3-dimensional matchings can be interpreted as a generalization of matchings to hypergraphs: the sets X, Y, and Z contain the vertices, each element of T is a hyperedge, and the set M consists of pairwise non-adjacent edges (edges that do not have a common vertex). In case of 2-dimensional matching, we have Y = Z.

### Comparison with set packing

A 3-dimensional matching is a special case of a set packing: we can interpret each element (xyz) of T as a subset {xyz} of X ∪ Y ∪ Z; then a 3-dimensional matching M consists of pairwise disjoint subsets.

## Decision problem

In computational complexity theory, 3-dimensional matching is also the name of the following decision problem: given a set T and an integer k, decide whether there exists a 3-dimensional matching M ⊆ T with |M| ≥ k.

This decision problem is known to be NP-complete; it is one of Karp's 21 NP-complete problems. There exist though polynomial time algorithms for that problem for dense hypergraphs.

The problem is NP-complete even in the special case that k = |X| = |Y| = |Z|. In this case, a 3-dimensional (dominating) matching is not only a set packing but also an exact cover: the set M covers each element of X, Y, and Z exactly once. The proof is by reduction from 3SAT. Given a 3SAT instance, we construct a 3DM instance as follows:

• For each variable xi, there is a "variable gadget" shaped like a wheel. It is made of overlapping triplets. The number of triplets is twice the number of occurrences of xi in the formula. There are exactly two ways to cover all the vertices in the gadget: one is to choose all even-indexed triplets, and one is to choose all odd-indexed triplets. These two ways correspond to setting xi to "true" or "false". The "true" selection leaves uncovered exactly one vertex in every odd-indexed triplet, and the "false" selection leaves uncovered exactly one vertex in every even-indexed triplet.
• For each clause xi u xj u xk, there is a "clause gadget" shaped like a rose. It is made of three overlapping triplets, one for each variable in the clause. It can be covered iff at least one of the nodes is left uncovered by the selection of the variable gadgets.
• Since it is possible that two or more nodes are left uncovered, we also need a "garbage collection gadget". It is shaped like a larger rose. It is made of several overlapping triplets, one for each vertex that can be left uncovered in the variable gadget. The number of such gadgets is determined so that they can be covered exactly if and only if there is a satisfying assignment.

## Optimization problem

A maximum 3-dimensional matching is a largest 3-dimensional matching. In computational complexity theory, this is also the name of the following optimization problem: given a set T, find a 3-dimensional matching M ⊆ T that maximizes |M|.

Since the decision problem described above is NP-complete, this optimization problem is NP-hard, and hence it seems that there is no polynomial-time algorithm for finding a maximum 3-dimensional matching. However, there are efficient polynomial-time algorithms for finding a maximum bipartite matching (maximum 2-dimensional matching), for example, the Hopcroft–Karp algorithm.

### Approximation algorithms

There is a very simple polynomial-time 3-approximation algorithm for 3-dimensional matching: find any maximal 3-dimensional matching. Just like a maximal matching is within factor 2 of a maximum matching, a maximal 3-dimensional matching is within factor 3 of a maximum 3-dimensional matching.

For any constant ε > 0 there is a polynomial-time (4/3 + ε)-approximation algorithm for 3-dimensional matching.

However, attaining better approximation factors is probably hard: the problem is APX-complete, that is, it is hard to approximate within some constant.

It is NP-hard to achieve an approximation factor of 95/94 for maximum 3-d matching, and an approximation factor of 48/47 for maximum 4-d matching. The hardness remains even when restricted to instances with exactly two occurrences of each element.

### Parallel algorithms

There are various algorithms for 3-d matching in the Massively parallel computation model.