提问人:HHQ 提问时间:11/15/2023 最后编辑:HHQ 更新时间:11/15/2023 访问量:11
求贪婪算法的递归关系,求图的最大独立集的基数
Finding the recurrence relation for greedy algorithm to find cardinality of maximum independent set of a graph
问:
我在伪代码中使用了以下递归算法来查找图G的最大独立集的基数:
定义错误(G): max_node = G 中具有最大度数的节点 degree01 = list(G 中度数为 0 或 1 的节点)
if G.number_of_nodes == 0:
return 0
if len(degree01) != 0:
node = degree01[0]
return 1 + MIS(G.remove_nodes(node & node.neighbors))
if len(degree01)==0 and max_node.degree > 2:
v_inc = 1 + MIS(G.remove_nodes(max_node & max_node.neighbors)
v_exc = MIS(G.remove_nodes(max_node))
return max(v_inc, v_exc)
if len(degree01) == 0 and max_node.degree == 2:
connected_components = list(all connected components of G)
sum = 0
for components in connected_components:
sum = sum + floor(components.number_of_nodes / 2)
return sum
基本情况是当图形为空或图形仅包含 2 度节点时。我正在尝试找到该算法的时间复杂度,但正在努力确定我应该写什么作为递归关系 T(n)。
设 n_i 为图 G 中度数为 i 的节点数。我试图为输入图 G 最多具有 4 度节点的情况编写适当的递归关系。所以在这种情况下,n = n_0 + n_1 + n_2 + n_3 + n_4。但我不确定这种递归关系是否正确,或者如何从中找到时间复杂性。
答: 暂无答案
评论