为什么贪心算法没有找到最大的独立图集?

时间:2012-12-17 20:30:19

标签: algorithm graph-theory

给定图G,为什么跟随贪婪算法不能保证找到G的maximum independent set

Greedy(G):
S = {}
While G is not empty:
    Let v be a node with minimum degree in G
    S = union(S, {v})
    remove v and its neighbors from G
return S

我想知道有人能给我看一个这个算法失败的图形的简单例子吗?

1 个答案:

答案 0 :(得分:8)

我不确定这是最简单的例子,但是这是一个失败的例子:http://imgur.com/QK3DC

对于第一步,您可以选择B,C,D或F,因为它们都具有2级。假设我们删除B及其邻居。这使得F和D的度数为1,E为度数2.在接下来的两个步骤中,我们删除F和D,最后设置为3,这是最大值。

而是假设在第一步我们删除了C及其邻居。这给我们留下了F,A和E,每个都有一个度数为2.我们接下来其中一个,图表是空的,我们的解决方案只包含2个节点,正如我们所见,它不是最大的