【问题标题】:Vertex cover vs dominating set顶点覆盖 vs 支配集
【发布时间】:2013-01-10 10:36:35
【问题描述】:

我试图理解顶点覆盖和支配集之间的区别。

据了解,在支配集合中,集合 D 包含与不在 D 中的其他顶点相邻的顶点(对于 V 中的每个 v,v 要么在 D 中,要么与 D 中的一个相邻)。

在顶点覆盖中,D 中的所有顶点都覆盖了所有边,但是通过这样做,它们与不在 D 中的其他顶点相邻 - 那么为什么它不是支配集呢?

【问题讨论】:

    标签: computer-science graph-theory


    【解决方案1】:

    我在 Wikipedia 的 Domination Set 文章中发现了一些图表来说明这种差异。

    这些示例显示了不是顶点覆盖的主导集(红色),这与您稍后在问题中提出的相反。 (V-D) 中的边防止它们成为顶点覆盖。

    【讨论】:

      【解决方案2】:

      以前的答案很好,但是最简单的例子还没有写在这里,所以:

      【讨论】:

        【解决方案3】:

        我无法从给定的答案中快速理解顶点覆盖和支配集之间的区别,所以我查了一下。

        定义顶点覆盖:

        According to Wikipedia:

        "图的顶点覆盖是一组顶点,至少包括 图的每条边的一个端点。”

        所以简单来说,对于每一行,2 个点/节点中的 1 个(连接到行的末端)必须在点/节点的集合中。

        定义支配集:

        According to Wikipedia:

        图 G = (V, E) 的支配集是 V 的子集 D 使得 不在 D 中的每个顶点都与 D 的至少一个成员相邻。

        简单来说:所有点/节点必须在(点/节点的)集合中,或者通过单条线/边连接到集合。

        给定例子的解释

        这就是为什么在@Daniel 给出的示例中:

        每2个节点是一个顶点覆盖,单个节点不能是一个顶点覆盖,因为与所选节点相对的线没有“顶点覆盖集中至少1个节点”。

        差异的可视化

        区别如下图所示:

        然而 1 个节点是支配集,因为在这种情况下,所有节点要么:在集中,要么通过 1 条线连接到集。 (这里的 1 条线是距离明智的,如果有 2 条线并联连接到主导集,也可以很好,只要它不仅仅是 2 条串联/彼此后面的线,连接到主导集) .

        下面添加了一个示例来可视化为什么单个节点是 3 个节点中的支配集:

        【讨论】:

          【解决方案4】:
          1. 如果您在顶点覆盖之外有零度顶点,则顶点覆盖可能不是支配集。顶点覆盖“覆盖”所有边,但零度顶点不与顶点覆盖相邻。

          2. 如果存在边,例如 e = (u,v),则支配集可能不是顶点覆盖,其中 u 和 v 都在支配集之外。这是可能的,如果 u 和 v 都与其他边的支配集中的顶点相邻。

          【讨论】:

            【解决方案5】:

            您只需要考虑四个顶点上的路径即可区分这两个概念。令 a,b,c,d 为此类路径的连续顶点。那么 {a,d} 是一个支配集,但不是一个顶点覆盖(因为它不能覆盖边 bc)。

            【讨论】:

              【解决方案6】:

              每个顶点覆盖都是一个支配集,但反之则不成立。 例如,如果您有一个图 G=(V,E) G={a,b,c,d,e} 和 E={(a,b),(b,c),(c,d),( e,a),(e,b)},则支配集 DS={b,e} 不是 G 的顶点覆盖。边 (c,d) 没有被覆盖。

              【讨论】:

              • 也许不是。如果图包含孤立顶点(零度顶点),则支配集必须包含这些孤立顶点,而顶点覆盖不必包含它们。
              【解决方案7】:

              对于连通图,顶点覆盖必须是支配集。对于孤立节点,您需要将其包含在支配集中,但不需要将其包含在顶点覆盖中。但是,支配集是更大的类,它们不需要像this reply 中的示例那样是顶点覆盖。

              【讨论】:

                【解决方案8】:

                我认为主要区别在于 Vertex Cover,一条边必须在 Vertex Cover 集中至少有一个端点。然而,对于支配集,它满足当一个节点要么在集中,要么它的直接邻居在集中,因此有可能边的两个端点都不在集中(只有当它们都在集中时才会发生)连接到集合中的节点)。希望这能澄清一点。

                【讨论】:

                  【解决方案9】:
                  • 顶点覆盖:您可以将它们视为监视任何通道(边缘)的警察。这样,他们可以关注除孤立节点之外的任何节点,因为节点不是他们关心的问题。它们必须涵盖所有段落。

                  • 支配集:这些是关注任何节点的策略。通道并不重要,因此如果其中一个通过边监视节点,则连接到该节点的其他边可能不会被覆盖,因为通道不是这些策略的关注点。

                  查看此答案的图片https://stackoverflow.com/a/14594930/2651073

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-06-02
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-06-03
                    • 1970-01-01
                    相关资源
                    最近更新 更多