逻辑最小剪切NP是否完整?


24

逻辑最小割(LMC)问题定义

假设是一个无权有向图,和是两个顶点,并且可以从到达。LMC问题研究如何遵循以下约束,通过去除的某些边,使无法从到达:s t V t s t s GG=(V,E)stVtstsG

  1. 删除的边的数量必须最少。
  2. 我们无法删除的任何顶点的每个出口边缘(即,没有带有外沿的顶点可以删除其所有外沿)。G

第二个约束称为逻辑删除。因此,我们寻求对的某些边进行逻辑上最小的去除,以使从不可到达。小号Gts

解决方案尝试

如果我们忽略LMC问题的逻辑去除约束,它将是未加权有向图的最小割问题,因此它将是多项式可解的(最大流最小割定理)。G

如果我们忽略LMC问题的最小去除约束,这将是一个DAG再次解多项式:找一个顶点这样从可达和不是从可达。然后考虑路径,它是从到的任意路径。现在将路径视为的子图:答案将是子图每个出口边缘。显然,可以在多项式时间内通过DFS在中找到顶点。不幸的是,该算法通常无法正常工作ķ 小号ķ p 小号ķ p ģ p ķ ģkkstkpskpGpkG 对于任意有向图。

我试图通过动态编程技术解决LMC问题,但是解决问题所需的状态数却成指数增长。此外,我尝试减少一些NP-Complete问题,例如3-SAT,max2Sat,max-cut和LMC问题的派系,而这些LMC问题我没有设法找到。

我个人认为,即使是二进制DAG(即,没有节点的出度大于2的DAG),LMC问题也是NP-Complete 。G

问题

  1. LMC问题是否在任意有向图中为NP完全?(主要问题)G
  2. LMC问题是否在任意DAG中为NP完全?G
  3. LMC问题是否在任意二进制DAG中为NP完全?G

如果您的图形是无向的,我很确定问题出在。这足以回答您的问题吗?P
亚历克斯(Alex)10 Brink 2012年

@SaeedAmiri:找到和最小限度。如果断开顶点连接,则该顶点必须为或。如果两者兼而有之,那么就没有这样的最小限度。假设是不连续的顶点,边。移除此边缘,并递归地对和执行最小切割。t s t t t v s vststt(t,v)sv
亚历克斯十布林克

通过简单的观察,可以得出结论,如果以下问题是NP-Complete,那么LMC问题也将是NP-Complete(我不能确保反之亦然)。假设是一个有向图。我们如何可以对一个最小割(分区到和第一边缘从该数到是最小的),并有不存在的顶点属于 ST的每一个出口边缘的头部属于到(出口边从到)。G V S T S T v V v T S TG=(V,E)GVSTSTvVvTST
阿米尔


2
阿米尔(Amirv),对于仅具有约束(2)的问题,据我所知,您建议的算法不太正确。即使对于所有节点v,都有从s到v的路径以及从v到t的路径的解决方案。考虑图其中V = { s t a }E = { s t s a a s }G=(V,E)V={s,t,a}E={(s,t),(s,a),(a,s)}
Neal Young

Answers:


1

令G =(V,E)为加权DAG,s和t为G的两个顶点,而LSTMC =(G,s,t)为逻辑最小切问题的一个实例。LSTMC问题很明显是NP。现在,我们应该证明LSTMC是NP-Hard。我们将命中集问题简化为LSTMC问题。令S = {s1,s2,...,sn}是给定的集合,{a1,a2,...,am}是所有集合的并集。给定数字k1,命中集问题的决策问题说明是否存在具有k1个元素的集合A,使得S的每个元素(每个集合si st i = 1..n)都包含至少一个A元素。表示命中集问题为HS(S)。我们通过算法HS2LSTMC从集合S构造了加权DAG G'。该算法将s作为DAG G'的源顶点。对于HS st i = 1..n的每个集合si,算法将考虑相应的顶点,si,并从s向每个si添加无限权重的边。然后,对于输入集st j = 1..m的并集的每个元素aj,该算法考虑相应的顶点aj,并将每个si权重为零的边添加到HS中的任何aj st aj∈si。最后,该算法考虑两个称为t和k的最终顶点,并将每个aj st j = 1..m的两条边添加到这两个最终顶点。显然,G'可以在多项式时间内得出。

现在,我们应该证明,当且仅当LSTMC =(G',s,t)具有在逻辑上被去除的边的答案,使得被去除的边的权重之和为,HS(S)才具有k1个元素的答案。 k1。

为简单起见,我们通过提供一个示例来执行这部分证明:

在下图中,假设S = {s1,s2,s3},使得s1 = {1,2,3},s2 = {1,4},而s3 = {2,5}。图2示出了与命中集问题HS(S)相对应的LSTMC问题的加权DAG G'。在此示例中,集合A(即S的所有元素的并集)为A = {1,2,3,4,5}。我们有| S | = 3和| A | =5。该示例显示如何借助加权DAG中的逻辑st最小割问题的特定实例来解决命中集问题的任意实例。如果我们计算LSTMC =(G',s,t)的答案,并考虑以(aj,t)形式称为E1(1≤j≤m)的那些答案的去除边,则末尾集为E1是HS(S)的答案。LSTMC问题的答案是边集E1 = {(s1,2),(s1,3),(s2,4),(s3,5),(1,t),(2,t)}。因此,子集E2的尾集= {(1,t),(2,

减少


0

这是对任意二进制DAG LMC的多项式时间算法(尝试)。G

这回答了问题3。(很抱歉提前进行凌乱的记录。:))

首先,“永远”丢弃无法到达的任何顶点。我们不关心这些,因为他们没有任何的一部分小号 - 牛逼路径。sst

接下来,定义子DAG B,最初为空。然后,对于所有顶点v g ^ - { 小号牛逼}ABvG{s,t}

测试是否存在从t的路径。如果是这样,加v一个。如果不加vvtvAvB

让的边缘是每一组内的那些由顶点诱导(现在,忽略来自任何边缘小号,从,以及从 ;还注意到没有从边缘由施工)。ABsAAtABBt

然后,计算的传递闭包。即,我们有兴趣找到一些顶点集{ a },这些顶点是sub-DAG A的“叶” 。A{a}A

修复任何这样。注意,必须有从向边一个*牛逼。这是因为,通过构造,(ⅰ)有一个小号 - 通过路径一个*,(ⅱ)不存在从路径一个*通过,和(iii)因为本身是DAG和一个*是叶的,没有来自路径一个*通过的另一顶点aatstaaBAaAaAt

现在,还必须有一个从每个顶点到B中的某个顶点的有向边,或者某些{ a }具有一个到t的边。在这两种情况下,我们被允许删除任何一个*牛逼边缘。{a}B{a}tat

如果= 1,则无论是必须从独特删除边缘一个*,或有在前面的一个顶点小号 - 含有路径一个*具有两个路径一个通- 一个*和一个直接。如果后者可能会保留,我们记录一个*牛逼并继续“向后贪婪”(关于这个详情见下文)。|{a}|atstataat

如果> 1,那么我们必须从{ a } t删除所有边,否则有一些边的传递闭包中的更早部分,它使所有路径从通过断开到。|{a}|{a}tA s { a } tk<|{a}|As{a}t

这就是我们使用图是二进制DAG 的事实。G

考虑的前身集合。由于这些顶点中的每个顶点最多具有两个度数,因此恰好有三种情况:{a}

情况1.前任在具有某个顶点的边缘,而在B中具有某些顶点的边缘。{a}B

在这种情况下,它不会不管我们是否删除的前身边缘在点或从顶点在边缘{ * }牛逼。因此,我们可以“跳过”该顶点(并检查后向路径是否与{ a }中的另一个顶点的路径合并)。{a}{a}t{a}

壳体2甲前身具有外边缘,以在顶点和另一前身{ 一个* }{a}{a}

在这种情况下,我们必须删除t的两条边,或者我们可以删除s到前一条断开两条路径的路径中的一条较早的边。{a}ts

情况3.前任的边在两个顶点。{a}

这是相同的情况下,2不要紧,我们是否删除该前任的边缘之一,并从相应的其他边缘牛逼,或两者从边缘{ * }牛逼。我们只是想知道我们是否可以断开路径小号通过这个前身为牛逼与先前在路径中的单刃从小号的前身。{a}t{a}tsts

总而言之,当我们在可传递闭合中回溯前任时,我们可以贪婪地跟踪“迄今为止最好的”选择。也就是说,在每一步中,我们都有一个显而易见的选择,即删除一些边缘,但是我们要等着看是否有更好的选择。找到更好的选项后,我们可以“忘记”上一个选项。因此,在每个前任层的贪婪选择就足够了(只要我们等到最后才做出任何选择)。A

O(|E|)O(|E|2)O(|E|)

O(|V|(|V|+|E|))O(|V|3)O(|E|2)O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

st


{a}B{a}t(a,t)a{a}

s{a}aA

2
我终于设法证明这个问题是NP-Complete。
阿米尔(Amirv)

1
@amirv哦,请股份证明的轮廓在应答的形式!
拉斐尔

1
即使基础图是未加权的二进制DAG,问题也是NP-Complete。
amirv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.