2

给定一个无向图 G = (V, E) 和两个顶点 s, t ∈ V。我们考虑 s 和 t 之间的简单路径。如果每个顶点最多访问一次,则路径很简单。

以下是 P 或 NP 完全的吗?

以下是否存在有效的算法多项式时间?

“n”表示图“V”中的顶点数

  1. 是否有一条从 s 到 t 长度最多为 n/100 的简单路径?
  2. 是否有一条从 s 到 t 长度至少为 n/100 的简单路径?
  3. 是否有一条从 s 到 t 长度正好为 n/100 的简单路径?
  4. 从 s 到 t 是否有两条边不相交的路径?(如果两条路径不共享边,则称它们是边不相交的。)

我的想法(如果我错了,请纠正我)感谢您的意见。

  1. 我想我可以运行 Dijkstra 算法以在多项式时间内找到 S 和 T 之间的最短路径。所以问题 1 在 P 中。
  2. 我认为有必要列举从 s 到 t 的所有简单路径。我不知道它的运行时间是多少,但我认为它会比多项式更糟糕。
  3. 类似于上面的2。没有多项式算法。
  4. 我不知道。我不知道有什么有效的(多时间算法)可以在两个节点之间找到多条路径,但这并不意味着它们不存在。
4

2 回答 2

1

你在正确的轨道上。我写了另一篇关于 NP-complete的文章,我将向您介绍一些细节,但请记住,基本上您需要做两件事来证明 NP-complete:

  1. 显示问题出在 NP 中
  2. 显示一个已知为 NP 完全问题的多项式时间缩减。

做 1 很容易(如果走图的东西“知道”下一条要采取的所有正确决定,它会在多项式时间内找到答案吗?);我会认真考虑我在另一篇笔记中描述的“决策 TSP”问题。

于 2008-12-12T07:36:03.260 回答
0

我想出了什么:

  1. 和你说的一样,使用任何适用的 SPP 算法。
  2. 这是最长的路径决策问题,即使对于未加权的图也是 NP-Hard。
  3. 对于未加权图,线性数量的应用程序足以解决 2,因此它也是 NP-Hard。
  4. 您可以使用具有单位容量的最大流算法来查找边缘不相交路径的最大数量。
于 2013-01-08T13:56:38.400 回答