📜  证明路径选择决策问题是NP完全的

📅  最后修改于: 2021-08-24 05:07:47             🧑  作者: Mango

先决条件– NP完成
路径选择问题的决策问题询问是否有可能从图的给定路径中选择至少k条路径,以使没有两个选定的路径共享任何顶点。

为了证明问题是NP完全的,我们需要证明它既是NP又是NP-Hard。我们使用PSP来表示我们的路径选择决策问题。

PSP属于NP:
我们通过构造该问题的多项式时间验证器来证明这一点。如果NP中有任何问题,那么给定问题的“证明”(解决方案)和问题的实例(在这种情况下,图形G和正整数k),我们将可以验证(检查给出的解是否正确)在多项式时间内的证书。

PSP的证书是一组路径P’。这些是没有共同边缘的独立路径。我们可以通过以下方式检查是否有k条路径独立于给定的图G(V,E))和路径P:

Check if P' is a subset of P
If not, the given solution is wrong
The number of paths in P' is at least k
If not, the given solution is wrong

Initialize a list of boolean with length |V|
for each path p in P'
    for each vertex in p
        check if it is marked True in our list
        If so, the given solution is wrong
        Else, marks the vertex as True

Since no vertex was marked twice,
given solution is correct.

上面的验证程序是polytime,因为:

  1. 可以在O(| P |)中检查P’是P的子集。
  2. 可以在O(| P’|)中检查P’中的路径数
  3. 检查所有路径是否不相交可以在O(| V |)中完成

因此,总时间复杂度:
 O(|P|) + O(|P'|) + O(|V|) = O(|V|) (\text{as}\space |P'|\leq|P|\leq|V|)
因此,PSP具有多项式时间可验证性,因此属于NP类。

集团决策问题属于NP-Hard:
为了证明PSP是NP Hard,我们采取一些已经被证明是NP Hard(在我们的情况下为Independent Set)的问题,并证明可以在多项式时间内将此问题简化为PSP。由于我们知道独立集是NP完整的,因此它也是NP难的。

给定一个IS实例–

G=(V, E) and k 

我们以以下方式构造PSP实例:

我们创建一个新图G’。对于G中的每个顶点v i:

  1. 我们用P i表示v i的路径。
  2. 让E 1,E 2,…,E r参数的边缘连接到V I。我们为G’中每个这样的边引入一个顶点。此外,我们在G’– s i ,t i中引入一对顶点。

因此,
P_i = (s_i, e_1, e_2, · · · e_r, t_i)

我们可以清楚地看到,上述减少是多项时间(复杂度= O(| V | + | E |)),因为我们实际上是在初始图形的所有顶点和边缘上进行迭代。

证明 :
证明独立集问题归结为路径选择问题。为了证明我们的减法是正确的,我们证明以下两个论点。

(i)是,IS的实例=>是PSP的实例
我们有IS的YES实例。

  1. 对于图G =(V,E),存在一个独立的大小集合,至少为k。
  2. 至少存在不共享任何边的k个顶点。
  3. 在PSP实例中,至少存在不共享任何节点的k条路径。由于我们将G的顶点定义为与PSP实例中的路径相似,而将G的边缘定义为与这些路径中的顶点相似。这些路径共享节点中的任何一个都意味着独立集合中的某些两个顶点共享一个共同的边,这是不可能的。
  4. 是的,PSP实例。

(ii)是,PSP实例=>是IS实例
ETP:没有IS实例=>没有PSP实例。 (通过相反的证明。)。

我们知道,只要存在一个独立的大小至少为k的集合,就会存在一个独立的大小恰好为k的集合(这可以通过从较大的集合中获取大小为k的子集来完成)。因此,对立面也是正确的。 (即,无论何时不能存在恰好为k的独立大小集,都不可能存在至少为k的独立大小集)。

我们没有IS的实例。

  1. 对于图G =(V,E),不能存在大小为k的独立集合。
  2. 不可能找到不共享任何边的G的k个顶点。
  3. 大小为k的顶点的每个集合S将包含共享一条边的vi和vj。
  4. 由于我们在PSP实例中将G的顶点定义为类似于路径,而在这些路径中将G的边缘定义为类似于顶点,因此在PSP实例中,每k个大小为Path的路径集将共享一个节点。
  5. 在PSP实例中,不能存在不共享任何节点的k条路径。
  6. 没有用于PSP的实例。

因此,在特定情况下,IS问题可归结为PSP。因此,PSP是NP-Hard。

因此,路径选择决策问题是NP和NP-Hard。因此,路径选择决策问题是NP-Complete。