【发布时间】:2013-01-10 10:36:35
【问题描述】:
我试图理解顶点覆盖和支配集之间的区别。
据了解,在支配集合中,集合 D 包含与不在 D 中的其他顶点相邻的顶点(对于 V 中的每个 v,v 要么在 D 中,要么与 D 中的一个相邻)。
在顶点覆盖中,D 中的所有顶点都覆盖了所有边,但是通过这样做,它们与不在 D 中的其他顶点相邻 - 那么为什么它不是支配集呢?
【问题讨论】:
标签: computer-science graph-theory
我试图理解顶点覆盖和支配集之间的区别。
据了解,在支配集合中,集合 D 包含与不在 D 中的其他顶点相邻的顶点(对于 V 中的每个 v,v 要么在 D 中,要么与 D 中的一个相邻)。
在顶点覆盖中,D 中的所有顶点都覆盖了所有边,但是通过这样做,它们与不在 D 中的其他顶点相邻 - 那么为什么它不是支配集呢?
【问题讨论】:
标签: computer-science graph-theory
我在 Wikipedia 的 Domination Set 文章中发现了一些图表来说明这种差异。
这些示例显示了不是顶点覆盖的主导集(红色),这与您稍后在问题中提出的相反。 (V-D) 中的边防止它们成为顶点覆盖。
【讨论】:
我无法从给定的答案中快速理解顶点覆盖和支配集之间的区别,所以我查了一下。
"图的顶点覆盖是一组顶点,至少包括 图的每条边的一个端点。”
所以简单来说,对于每一行,2 个点/节点中的 1 个(连接到行的末端)必须在点/节点的集合中。
图 G = (V, E) 的支配集是 V 的子集 D 使得 不在 D 中的每个顶点都与 D 的至少一个成员相邻。
简单来说:所有点/节点必须在(点/节点的)集合中,或者通过单条线/边连接到集合。
每2个节点是一个顶点覆盖,单个节点不能是一个顶点覆盖,因为与所选节点相对的线没有“顶点覆盖集中至少1个节点”。
然而 1 个节点是支配集,因为在这种情况下,所有节点要么:在集中,要么通过 1 条线连接到集。 (这里的 1 条线是距离明智的,如果有 2 条线并联连接到主导集,也可以很好,只要它不仅仅是 2 条串联/彼此后面的线,连接到主导集) .
下面添加了一个示例来可视化为什么单个节点是 3 个节点中的支配集:
【讨论】:
如果您在顶点覆盖之外有零度顶点,则顶点覆盖可能不是支配集。顶点覆盖“覆盖”所有边,但零度顶点不与顶点覆盖相邻。
如果存在边,例如 e = (u,v),则支配集可能不是顶点覆盖,其中 u 和 v 都在支配集之外。这是可能的,如果 u 和 v 都与其他边的支配集中的顶点相邻。
【讨论】:
您只需要考虑四个顶点上的路径即可区分这两个概念。令 a,b,c,d 为此类路径的连续顶点。那么 {a,d} 是一个支配集,但不是一个顶点覆盖(因为它不能覆盖边 bc)。
【讨论】:
每个顶点覆盖都是一个支配集,但反之则不成立。 例如,如果您有一个图 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) 没有被覆盖。
【讨论】:
对于连通图,顶点覆盖必须是支配集。对于孤立节点,您需要将其包含在支配集中,但不需要将其包含在顶点覆盖中。但是,支配集是更大的类,它们不需要像this reply 中的示例那样是顶点覆盖。
【讨论】:
我认为主要区别在于 Vertex Cover,一条边必须在 Vertex Cover 集中至少有一个端点。然而,对于支配集,它满足当一个节点要么在集中,要么它的直接邻居在集中,因此有可能边的两个端点都不在集中(只有当它们都在集中时才会发生)连接到集合中的节点)。希望这能澄清一点。
【讨论】:
顶点覆盖:您可以将它们视为监视任何通道(边缘)的警察。这样,他们可以关注除孤立节点之外的任何节点,因为节点不是他们关心的问题。它们必须涵盖所有段落。
支配集:这些是关注任何节点的策略。通道并不重要,因此如果其中一个通过边监视节点,则连接到该节点的其他边可能不会被覆盖,因为通道不是这些策略的关注点。
【讨论】: