Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

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.

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':

http://karussell.files.wordpress.com/2010/03/network2.png (don't have rep to include it here :-/)

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)

Missing tag: matching

share|improve this question
    
@Karussell, could you repeat the problem here? –  Scott Morrison Mar 17 '10 at 15:49
    
Thanks for suggestion, Scott. See the formulation now –  Karussell Mar 17 '10 at 22:16
    
Surely "not solvable in polynomial time" should be "not known to be solvable in polynomial time". –  Emil Apr 5 '10 at 12:08

1 Answer 1

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.

share|improve this answer
    
This is surely equivalent to maximum-clique, because you should just construct a graph, in which vertices correspond to $N(a)$ for each $a$ and connect two vertices with an edge iff the corresponding subsets intersect. Now you need to solve maximum-clique in the complement graph. –  Grigory Yaroslavtsev Mar 17 '10 at 19:22
    
I think the OP already indicated that the problem is NP-complete (via a comment on SO). The question being asked is whether there are restrictions to solve the problem in poly time. –  Suresh Venkat Mar 17 '10 at 20:50
    
Thanks Tony for the perfect graph suggestion. I will take a look + think about this! –  Karussell Mar 17 '10 at 22:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.