给定图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
我想知道有人能给我看一个这个算法失败的图形的简单例子吗?
答案 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个节点,正如我们所见,它不是最大的