给定图的任意两个顶点之间的 m 条最短路径。确定我们是否可以选择 k 条最短路径,使得它们的并集覆盖所有边。
我确信减少必须来自固定的掩护,但我没有办法将其减少到这个问题。请帮帮我
给定图的任意两个顶点之间的 m 条最短路径。确定我们是否可以选择 k 条最短路径,使得它们的并集覆盖所有边。
我确信减少必须来自固定的掩护,但我没有办法将其减少到这个问题。请帮帮我
提示:看下图。从 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
更新并不知道套装封面也是 NP 完整的。不需要做任何事情来将原件放入确切的封面,所以我所做的 wlog 假设是不必要的。但我也意识到我证明的基本思想是错误的:它表明当前问题是另一个问题的特例,这使它更容易,而不是更难。mjqxxxx在https://math.stackexchange.com/q/2047262给出了完整且正确的答案。
让我们假设没有单个顶点属于超过 1 个路径(即路径对应于不同的顶点集)。
那么这个问题是一个精确覆盖问题(它是 NP 完全问题)扩展为找到所有精确覆盖而不是只找到任何一个(然后检查其中一个是否具有精确 https://en.wikipedia.org/wiki/Set_cover_problemk
元素 - 这种检查在一般情况下有点棘手)。https://en.wikipedia.org/wiki/Exact_cover
集合X
包含图的所有顶点,集合S
包含对应于给定路径集合的顶点集合。