假设我们有一个加权网格图,我们的问题是找到最大的独立集。有一种贪婪的算法,每次选择最重的节点并将其移除并与其相邻,直到选择或移除G的所有节点。我们想要证明W(s)> = 1/4 W(T)其中S是我们的贪心结果而T是OPT解决方案。
让S
成为我们贪婪算法的结果,T
是一个任意独立的集合,可以是OPT。我们知道对于属于T
的任何节点v
的任何T-S
,v'
中存在S
的节点v
。w(v) <= w(v')
的邻居和{{1}}。
有什么想法可以证明这一点吗?
答案 0 :(得分:1)
通过以下证明可以获得所需的结果。
让S
成为贪婪算法生成的集合,让T
成为一组独立的最大权重。我们将逐步将T
转换为S
并限制每个转换步骤的损失。
在v
中选择最大权重的T\S
。根据上述问题中的陈述,v'
中存在S
,w(v') >= w(v)
;选择这样的v'
。让N
成为v'
中T
的邻域; N
包含v
,最多包含4个顶点(因为我们有一个网格图)。选择v
时,最大权重和w(v')>=w(v)
,我们获得w(v')>=w(N)/4
。我们设置T':=(T\N)
并向其添加v'
。通过构建,T'
仍然是一个独立的集合,我们有w(T') >= w(T) - (3/4)w(N)
。
总的来说,对于每个交换步骤,来自T\S
的顶点被消除,但是添加来自S
的节点,使得添加的总权重至少是总丢失重量的四分之一。
此外,每个步骤中构造的集合N
是不相交的,这意味着在每个步骤中,至少保留了w(N)
的四分之一。总的来说,正如我们构建的S
,S
的权重至少为(1/4)w(T)
。
请注意,输入图不需要是网格图,但最大4度就足够了;此外,证据可以通过允许一个abitrary图来概括,用最大度数Δ代替4,得到1 /Δ的近似值。
答案 1 :(得分:1)
只需使用您的上一个语句,并将T
视为最大独立集,并且您有两个结果:
T-S
中的每个节点,例如v
,u
中S
之类的节点都是W(v) <= W(u)
。 u
中的S
等每个节点最多是T
中4个节点的邻居。现在使用它们:)