[Math] Maximum bipartite graph (1,n) “matching”

algorithmsco.combinatoricsgraph theoryhypergraphmatching-theory

Last month I discovered a nice question on stackoverflow and thought the 1,n matching problem could be solved via introducing a 1,k tree matching. Look here for my question, but as Moron pointed out this is not known to be solvable in polynomial time.

Now I discovered mathoverflow and would like to know if one could reduce some possibilities or if one could introduce some restrictions so that the 1,n matching could be solved in polytime. Do you have an idea?

Background: I would like to implement a heuristic for that problem. At the moment I am using an algorithm based on the GPA heuristic for weighted maximum matchings in general graphs as described here (broken link).

Here is my formulation of the problem:

Instead of the 'normal' "one-to-one" matching in a bipartite graph I want to calculate the maximum "one-to-many" matching for a bipartite graph G. (Should I define it or is this clear?) For the initial problem 1:n the n was arbitrary. Then I fixed the n to k 'static' choices via trees instead of edges, but this was hard, too.

Now I would like to find a similar graph or different formulation which is solvable in polytime (or at least there should be a high accurate and 'fast' algorithm). E.g. couldn't I apply the polytime matching algorithm from general graphs and apply it to a slightly changed graph G'? I think about the following graph G':

     (source)

Clearly there are matchings (red) in the general graph G' which could result in strange/wrong matchings for the corresponding bipartite matching in the bipartite graph G. But maybe one could further tweak the graph G' or the edge weights of G'?

Or how is this related to hypergraphs (e.g. if edge would have 3 nodes)

Best Answer

This problem seems pretty hard. Let $G$ be a bipartite graph with bipartition $(A,B)$. One easy case to consider is if each vertex in $A$ has degree $k$ and we seek a maximum $(1, k)$ matching. For each $a \in A$, if we let $N(a)$ be the set of neighbours of $a$, then we seek a maximum size subfamily $\mathcal{S}$ of

{ $N(a) : a \in A$ },

such that any two members of $\mathcal{S}$ are disjoint. I believe this problem is polynomially equivalent to maximum-clique, so even in this easy case your problem is still hard. However, maximum-clique is polynomially solvable for perfect graphs, so perhaps this is a partial answer to your question.

Another way to go is to look for good approximation algorithms, say by adapting approximation algorithms for maximum-clique.

Edit. A general comment is that if we restrict to a class of graphs with bounded tree-width, then your problem is indeed polynomial. This works for many NP-hard problems.

Related Question