【问题标题】:algorithm to find max independent set in a tree在树中找到最大独立集的算法
【发布时间】:2012-11-24 18:29:53
【问题描述】:

我需要一种算法来在树中找到最大独立集。我想从所有叶子节点开始,然后删除这些叶子节点的直接父节点,然后选择我们删除的父节点的父节点,递归地重复这个过程,直到我们到达根节点。这是在 O(n) 时间内完成的吗?任何答复表示赞赏。谢谢。

谁能指点我一个算法来找到树中的最大支配集。

【问题讨论】:

  • 我没听懂你的问题,最大独立集是什么意思?你想要节点具有最大值还是什么?因为您描述的方法将在二叉树中有 2^n 个叶节点。那么,从哪里开始,简单介绍一下tree的实现是不是二叉树?
  • 因此,在给定 n 个节点的一般树的情况下,找到最大独立集 (en.wikipedia.org/wiki/Maximal_independent_set)。
  • 为了简单起见,只考虑一个完整的二叉树。
  • 你想要一个 最大 独立集(最大可能大小之一)还是 最大 独立集(一个没有更多顶点可以被添加)?最大独立集显然是最大的,但更容易找到不一定是最大的最大独立集(所有树都是二分的,所以只取二分的一侧)。

标签: algorithm tree independent-set


【解决方案1】:

最大独立集

您可以通过深度优先搜索树来计算最大独立集。

搜索将为图中的每个子树计算两个值:

  1. A(i) = 以 i 为根的子树中最大独立集的大小,约束条件是节点 i 必须包含在集合中。
  2. B(i) = 以 i 为根的子树中最大独立集合的大小,限制为节点 i 不得包含在集合中。

这些可以通过考虑两种情况递归计算:

  1. 不包括子树的根。

    B(i) = sum(max(A(j),B(j)) for j in children(i))

  2. 包含子树的根。

    A(i) = 1 + sum(B(j) for j in children(i))

整棵树中最大独立集的大小为max(A(root),B(root))。

最大支配集

根据definition of dominating set in wikipedia,最大支配集总是微不足道地等于包括图中的每个节点 - 但这可能不是您的意思?

【讨论】:

  • 我不认为最小支配集等于最大/最大独立集。星星就是树,它们显然是不相等的,还是我错过了什么?最小支配集不应该是最大独立集的补集吗?
  • 如果每个节点都有负权重怎么办?上面的解决方案仍然正确吗?
【解决方案2】:

简单快速的方法:

只要图不为空,就迭代地将一个叶子 v(度数为 1)添加到独立集 V 中,并删除 v 及其邻居。

这应该可行,因为

  • 一棵树总是有一个度为 1 的顶点,

  • 向 V 添加一个度数为 1 的顶点可保持最优性,并且

  • 这样一步的结果再次给出了一棵树或一个森林,它是树木的联合体。

【讨论】:

    【解决方案3】:
      1234563一样的颜色。
    • 执行 DFS 遍历并开始用黑色和白色为顶点着色。

    • 选择数量较多的一组顶点(黑色或白色)。这将为您提供树的最大独立顶点集。

    为什么这个算法有效背后的一些直觉:

    • 让我们首先回顾一下最大独立顶点集的定义。我们必须只选择一条边的一个端点,并且我们必须覆盖满足这个属性的树的每一条边。我们不允许选择边的两个端点。

    • 现在图的双色有什么作用?它只是将一组顶点分成两个子集(WHITE 和 BLACK),而 WHITE 彩色顶点直接连接到 BLACK 顶点。因此,如果我们选择全白或全黑,我们本质上是在选择一组独立的顶点。因此选择最大独立 设置,选择大小更大的子集。

    【讨论】:

    • 这是不正确的。它找到一个最大独立集(一个不能添加顶点的集),但不是一个最大独立集(最大可能的基数之一)。考虑通过取一条边 xy 并添加与 x 相邻的两个叶子和与 y 相邻的两个叶子形成的树。最大独立集是所有叶子:四个顶点。但是图的每一边只包含三个顶点。
    • 你不能计算最大 2 种方式然后:1) BLACK 或 WHITE 列表的最大值 2) 执行 BLACK 和 WHITE 着色但每次到达叶节点时将其添加到叶节点的最大独立set (1) 或 (2) 返回的最大列表为最终答案。
    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 2013-01-23
    • 1970-01-01
    • 2013-05-22
    • 2017-06-04
    相关资源
    最近更新 更多