求贪婪算法的递归关系,求图的最大独立集的基数

Finding the recurrence relation for greedy algorithm to find cardinality of maximum independent set of a graph

提问人:HHQ 提问时间:11/15/2023 最后编辑:HHQ 更新时间:11/15/2023 访问量:11

问:

我在伪代码中使用了以下递归算法来查找图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。但我不确定这种递归关系是否正确,或者如何从中找到时间复杂性。

这是我试图写的递归关系

算法

评论


答: 暂无答案