使用以下启发式算法:
M = NULL
while E != NULL do {
if ((∃u vertex) and (gr(u) == 1)) then
e ← the incident edge with u
else
e ← an incident edge with a vertex with the most incident edges
M ← M ∪ {e}
E ← E - (all the incident edges with e)
}
return M //return the matching
翻译内容:
在哪里:M,E - 边缘; gr(u)- u的等级(与u相连的边数);
我们被要求:
a) Prove that this algorithm returns the maximum matching for a tree.
b) Prove that if there is a perfect matching M0 then the algorithm returns it, for any bipartite graph.
c) Prove that |M| ≥ (v(G)/2), for any bipartite graph.
//G is the graph, v(G) is the matching number, size of the maximum matching.
我几乎确定这个算法与某些经典算法相似,但我找不到答案,或者解决方案完全基于二分图的定理和性质。
请问您能给我一个起点吗?我错过了什么吗?
我认为a)很简单。我仍在努力寻找正确的证明,我认为它可能完全基于树和二分图的性质。
对于b)和c)... 我还没有任何想法。