我们对算法有如下输入:该算法用于在图中找到最大独立集正确吗?
没有周期(又名生成树)的图G
其中每个节点都有相关的权重。
我想找到一组独立的S
使得:
- 在
S
形式G
- 的边缘有满足上述条件,其中不存在其它可能的子集的两个元素比
S[0] + S[1] + ... + S[n-1]
(其中len(S)==n
)重量更大。
这是高层次的伪我到目前为止有:
MaxWeightNodes(SpanningTree S):
output = {0}
While(length(S)):
o = max(node in S)
output = output (union) o
S = S \ (o + adjacentNodes(o))
End While
Return output
有人能告诉我,蝙蝠是否我做了任何错误,或者如果该算法给我,结果我想?
为什么不尝试实施它来证明算法的正确性? – TravellingGeek 2013-03-25 04:05:33
@GeraldSv随着问题的增加,通常最好的解决方案是在任何实现之前证明算法是有效的。花几个星期/几个月的时间去实施一些事情,找出一个简单的角落案例可能已经被识别出来,会让人很难过 - 不会花费我太多时间,但我已经遇到过这样的问题*(: – Rubens 2013-03-25 04:14:54
@GeraldSv You不要执行算法来证明它们的正确性,你可以正式做到这一点。否则,建议对我不好。 – 2013-03-25 05:33:52