【问题标题】:Proving NP-Completeness证明 NP 完备性
【发布时间】:2016-05-05 06:57:07
【问题描述】:

给定图的任意两个顶点之间的 m 条最短路径。确定我们是否可以选择 k 条最短路径,使得它们的并集覆盖所有边。

我确信减少必须来自固定掩护,但我没有办法将其减少到这个问题。请帮帮我

【问题讨论】:

  • 所以你有 2 个选择的顶点,它们之间有 k 个不同的路径,长度都一样?每条边的长度为 1,还是每条边的长度不同?更好地定义问题。
  • 这是完整的问题:s15.postimg.org/cgm5vqgrf/…
  • 关于这个问题我不明白的一点:图的两个顶点是否为我们正在调查的一组路径固定,或者这些路径的开始和结束顶点对是否不同?
  • 这是问题陈述; s15.postimg.org/cgm5vqgrf/… 就我个人而言,我不能说太多。但我相信这组路径不是固定的,它们位于不同的顶点对之间,因为问题指出“一对顶点之间的最短路径”而不是“一对顶点之间”。

标签: algorithm reduction np np-complete np-hard


【解决方案1】:

提示:看下图。从 A 到 B 有很多不同的最短路径。你能用这样的图和一组路径对集合覆盖进行编码吗? (好吧,您可能需要稍微修改一下图表,但这是一般的想法)。

   o     o     o     o     o     o     o     o     o     o     o     o     o
  / \   / \   / \   / \   / \   / \   / \   / \   / \   / \   / \   / \   / \
A     o     o     o     o     o     o     o     o     o     o     o     o     B
  \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /   \ /
   o     o     o     o     o     o     o     o     o     o     o     o     o

【讨论】:

  • 套装封面中A和B对应什么。我无法完全理解你的暗示。请详细说明。
  • 在输入时,您有图表和一组路径,每个路径从 A 到 B。每条路径将在集合封面中编码一个集合。
  • 你能举个例子吗?
  • 编辑后的更简单的图表怎么样?我不会为你做作业。
  • 不。在集合封面中,您有一个集合 S 和一些称为 G 的 S 的集合子集。 S 的每个元素将映射到上图中顶行的一个节点。 G 的每个元素将映射到从 A 到 B 的最短路径,仅包含顶行中的匹配元素。此外,您需要对底行做一些事情,whixh 留给读者作为练习:)
【解决方案2】:

更新并不知道套装封面也是 NP-complete。不需要做任何事情来将原件放入确切的封面,所以我所做的 wlog 假设是不必要的。但我也意识到我的证明的基本思想是错误的:它表明当前问题是另一个问题的特例,这使它更容易,而不是更难。完整且正确的答案由 mjqxxxx 在https://math.stackexchange.com/q/2047262 给出。

让我们一起走吧。假设没有单个顶点属于超过 1 个路径(即路径对应于不同的顶点集)。

那么这个问题是一个exact覆盖问题(它是NP-complete)扩展到找到所有精确覆盖而不是只找到任何一个(并且然后检查其中一个是否有确切的k 元素——在一般情况下,这个检查有点棘手)。 https://en.wikipedia.org/wiki/Exact_cover https://en.wikipedia.org/wiki/Set_cover_problem

集合X包含图的所有顶点,集合S包含对应于给定路径集合的顶点集合。

【讨论】:

  • 我不确定,但我认为您在 cmets 中提出的疑问实际上对这个问题非常关键。从问题陈述来看,似乎所有路径都在两个顶点之间,因为您不能假设所有路径都不相交的假设 w.l.o.g.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 2011-07-15
相关资源
最近更新 更多