I'm interested in the following variant of classical matching: A multi-matching is a subgraph of a given graph G that consists of disjoint cliques of size 2 or greater. The goal is to find a multi-matching that is maximum, i.e., covers as many vertices as possible.
It clearly suffices to consider only cliques of size 2 or 3, as larger ones could simply be split up. I'm wondering if this is known under some other name, and if any good algorithms or characterizations similar to Berge's Lemma are known for this?
Edit: Example of graph with maximum (multi-)matching:
Best Answer
We can derive a characterization similar to Berge's Lemma in a similar way.
Let $G$ be a graph, and $M$ be a multi-matching (a set of disjoint edges and triangles). Let $M'$ be another multi-matching spanning more vertices. We take the symmetric difference $(M - M′) \cup (M′ - M)$ and look at the connected components.
A key point of Berge's Lemma is that any edge connected to a connected component $C$ of $S$ belongs to none of the matchings, and thus, we can swap all the edges from $C$ independently from the remaining of the graph.
In our case, an edge $e$ connected to C either belongs to none of the matchings or belongs to both of the matchings.
We have the following result :
Lemma 1:
Let $e\in M\cap M'$ be an edge neighbor of $C$. Then $e$ has both extremities in $C$. Moreover, $e$ belongs to a triangle in either $M$ or $M'$.
Proof:
Let $e\in M\cap M'$ be an edge neighbor of $C$. Let $e'\in C$ be an edge neighbor to $e$. We can suppose without loss of generality that $e'\in M$. By necessity, $e'$ and $e$ belongs to a triangle in $M$. Let $e''$ be the third edge of this triangle. $e''\in C$, otherwise, we would have $e''\in M\cap M'$, and as both $e$ and $e''$ would belong to $M'$, we would have $e'\in M'$, which would contradict with $e'\in C$. So $e$ have both extremities in $C$.
Now, let's take a connected component $C$ where $M'$ span more vertices than $M$(there must exist at least one).
We sequentially build a chain-like subgraph as follow :
Start by taking a vertex $v$ of $C$ only spanned by $M'$ (there must exist at least one). Go to STEP 1.
STEP 1 :
STEP 2 :
Finally, we get at the end of the procedure a subgraph composed of an alternating chain, with one extremity not spanned by $M$, and the other extremity is either :
In both of these cases, we can do a swap. Let $t$ be the chain obtained after the procedure. Let $e$ be an edge neighbor of $t$.
This gives us (by contraposition) the following result:
Lemma 2 (Berge's Lemma for multi-matching)
$M$ is a maximal multi-matching if and only if it has no swap structure. (Where a swap structure is one of the 4 structures aforementioned)
We can now adapt the blossom algorithm to get a polynomial-time algorithm. We search an alternating path similarly, but at each vertex, we first check that we have a loop. If so, we first check if it is closed by a (complemented) triangle, and in that case, we can swap. Otherwise, we apply the contraction of the blossom.
Then we check if we have an ending structure (free vertex, triangle, or switch). If so, we can swap. If we find a switch, as we have checked two further vertices, we must check beforehand that we didn't form a loop. If so, we have an odd cycle and we can contract it in a blossom (finding a triangle can't result in a loop).
We need some extra care. A contracted vertex can't be involved in an ending triangle. If a contracted vertex is involved in a switch or at the bifurcation of an ending loop, we need to first unwrap the contracted vertex. Then either we can do the swap, or we can contract the ending structure in a contracted vertex. (both the switch and the ending loop contain an odd cycle). If we find a blossom, but the linking vertex is a contracted one, we need to first unwrap it to see if the loop created is an ending loop. These further checks maintain the polynomial claim, as they always result in either a swap or a new blossom.