Algorithm 计算最大独立集算法的正确性
我试图找到一个无向图的最大集,下面是我使用的算法: 1) 选择边数最少的节点 2) 清除所有的邻居 3) 从其余节点中,选择边数最少的节点 4) 重复这些步骤,直到覆盖整个图形Algorithm 计算最大独立集算法的正确性,algorithm,graph,graph-theory,Algorithm,Graph,Graph Theory,我试图找到一个无向图的最大集,下面是我使用的算法: 1) 选择边数最少的节点 2) 清除所有的邻居 3) 从其余节点中,选择边数最少的节点 4) 重复这些步骤,直到覆盖整个图形 有人能告诉我这是否正确吗?如果不是,那么为什么这种方法计算图中的最大独立集是错误的?任何图中都没有一个确定的最大独立集;以3个节点上的循环为例,每个节点形成一个最大独立集。您的算法将为您提供一个图的最大独立集,而不保证它具有最大基数。另一方面,在图中查找最大独立集是NP完全的(因为该问题与查找最大团的问题是互补的),所以
有人能告诉我这是否正确吗?如果不是,那么为什么这种方法计算图中的最大独立集是错误的?任何图中都没有一个确定的最大独立集;以3个节点上的循环为例,每个节点形成一个最大独立集。您的算法将为您提供一个图的最大独立集,而不保证它具有最大基数。另一方面,在图中查找最大独立集是NP完全的(因为该问题与查找最大团的问题是互补的),所以可能没有一个有效的算法。您所描述的将选择一个最大独立集。我们可以这样看:
希望这有帮助 在评论中澄清情况后,您的解决方案是正确的。 根据本文的推论3,甚至更好 你得到了很好的子集顺序近似。
Greedy对度最大为d的图中的(未加权)MIS给出1/(d+1)-近似值
您想要一个最大独立集(一个在不删除节点的情况下无法增大大小的集)还是一个最大独立集(一个其大小在图中所有独立集中最大的集?)我想要最大集,不是最大设置。在第一步中,我选择节点数最少的节点,只是为了最大化输出,但我不需要最大值。我也可以选择任何随机节点。这可能更适合。感谢您的澄清-我只是想确保我正确地分析了您描述的算法。@WaleedKhan-cstheory更多用于CS中的研究级问题。这个问题非常适合SO或cs.stackexchange.com。我认为问题在于算法是否会找到最大独立集,而不是最大独立集。我意识到我刚才没有正确回答他的问题,编辑:)