包含给定节点集的最小连通子图
我有一个未加权的连接图。我想找到一个连接的子图,它肯定包含一组特定的节点,并且尽可能少的附加内容。怎么可以实现呢?
为了以防万一,我将使用更精确的语言重述问题。设G(V,E)为未加权,无向连通图。设N是V的某个子集。找到G(V,E)的最小连通子G'(V',E')的最佳方法是什么,N是V'的子集?
近似没问题。
没有找到相关结果
已邀请:
4 个回复
捐焦
转换为加权图形
,其中
是要覆盖的顶点子集,
是原始图形中相应顶点之间的距离(路径长度)。这将“折叠”您不需要的所有顶点到边缘。 计算
的最小生成树。 通过以下步骤“展开”最小生成树:对于最小生成树中的每个边缘
,取图6中的相应路径并将路径上的所有顶点(包括端点)添加到结果集
和所有边缘中。结果集的路径
。 该算法很容易绊倒以提供次优解决方案。示例案例:等边三角形,其中在拐角处,在边的中点和三角形的中间存在顶点,并且沿着边的边缘以及从角的边缘到三角形的中间。为了覆盖角落,它足以选择三角形的单个中点,但是这个算法可能会选择边。尽管如此,如果图表密集,它应该可以正常工作。
薄扩络拜
孝箱捆讨
晤默报
。 将这些可能未连接的子图折叠成“大”节点。也就是说,对于每个子图,将其从图中删除,并将其替换为新节点。调用这组节点
。 在
中执行节点的最小顶点覆盖。 “解压缩”
中的节点。 不确定它是否在某个特定范围内给出了近似值。你甚至可以欺骗算法做出一些非常愚蠢的决定。