我使用贪心算法和回溯算法实现了回溯算法。回溯算法如下:
MIS(G= (V,E): a graph): largest set of independent vertices
1:if|V|= 0
then return .
3:end if
if | V|= 1
then return V
end if
pick u ∈ V
Gout←G−{u}{remove u from V and E }
Gn ← G−{ u}−N(u){N(u) are the neighbors of u}
Sout ←MIS(Gout)
Sin←MIS(Gin)∪{u}
return maxsize(Sout,Sin){return Sin if there’s a tie — there’s a reason for this.
}
贪心算法是迭代地选择度数最小的节点,将其放入MIS中,然后将其及其邻居从G中删除。
在边存在的概率为 0.5 的不同图形大小上运行算法后,我凭经验发现与贪心算法相比,反向跟踪算法总是找到更小的最大独立集。这是预期的吗?