问题是coNP困难的(因此是coNP完全的)。k=3
为了证明这一点,我将从3-SAT简化为该问题的补充(对于给定的电路,该电路是否发挥非双射功能)。NC03
首先是一个有益的初步定义:
我们将标记图定义为有向图,其中一些边用文字标记,其属性是每个顶点具有一个未标记的输入边,一个标记的输入边或两个未标记的输入边。
减少
假设我们有一个包含子句的3-SAT公式,每个子句包含三个文字。第一步是建立一个标记的曲线图从。此带标签的图为每个子句包含以下小工具的一个副本(对不起的图很抱歉)。相反,标记为L1,L2和L3的三个边在子句中用文字标记。米ģ φ φϕmGϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
这些小工具(每个子句一个)都以一个大周期排列,一个小工具的底部链接到另一个小工具的顶部。
请注意,小工具的这种排列实际上确实形成了一个带标签的图形(每个顶点的度数为1或2,仅边缘导致度数为1的顶点被标记)。
从公式和带标签的图形(由构造),我们接下来构造一个电路(这将得出简化结果)。的输入和输出的该电路的数目是其中是变量的个数和是在顶点的数量。一个输入和一个输出分配给每个变量和每个顶点。如果是某个变量,则我们将与关联的输入和输出位称为ϕφ Ñ Ç 0 3 Ñ + v Ñ φ v ģ φ ģ X φ X X 我Ñ X Ò ù 吨升升= X 升我Ñ = X 我Ñ升升= ¬ X 升我Ñ = ¬ X 我Ñ v G v v i n v o u tGϕNC03n+vnϕvGϕGxϕxxin和。此外,如果是的文字,那么我们定义,如果是的文字,那么我们定义。最后,如果是某个顶点,那么我们将与关联的输入和输出位称为和。xoutll=xlin=xinll=¬xlin=¬xinvGvvinvout
有四种类型的输出位:
1)对于每一个变量在,。注意,该输出仅取决于一个输入位。ϕ x o u t = x i nxϕxout=xin
2)对于标记图中的每个顶点,恰好有一个传入边缘使得该边缘未被标记,。注意,该输出仅取决于两个输入位。(Û ,v )v Ô Ü 吨 = v 我Ñ ⊕ ù 我Ñv(u,v)vout=vin⊕uin
3)对于标记图中的每个顶点,恰好有一个传入边缘,使得边缘标记为,。请注意,此输出仅依赖于三个输入位,因为仅取决于,而字面量使用的变量依赖于此。(Û ,v )升v Ô Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 升我Ñ)升我ñ X 我Ñ X 升v(u,v)lvout=vin⊕(uin∧lin)linxinxl
4)对于标记图中的每个顶点,正好有两个传入边和,。注意,该输出仅取决于三个输入位。(Û ,v )(瓦特,v )v Ô Ü 吨 = v 我Ñ ⊕ (û 我Ñ ∨ 瓦特我Ñ)v(u,v)(w,v)vout=vin⊕(uin∨win)
由于在所有情况下,输出仅取决于三个输入,因此,根据需要,我们构建的电路位于中。NC03
正确性证明案例1:是令人满意的ϕ
假设存在对的满意分配。然后为输入构造以下两组值。ϕ
1)与变量关联的输入被赋予令人满意的赋值。与顶点相关联的所有输入的值均为0。GϕG
2)与变量关联的输入将获得令人满意的赋值。考虑中的一个子句小工具中的顶点。如果标签的值为0(在令人满意的分配下),则与用该标签标记的边的目标端点处的顶点关联的输入的值为0。如果L1和L2都为0,则第二个为小工具的顶部顶点(如上所示)的值也为0。其他所有顶点的值也为1。GϕG
我们希望证明这两组输入产生相同的输出,因此电路未编码置换。NC03
考虑四种类型的输出位:
1)对于每一个变量在,。由于两组输入的相同,因此在两组输入之间此形式的输出将始终相同。φ X ö Ù 吨 = X 我Ñ X 我Ñxϕxout=xinxin
2)对于标记图中的每个顶点,恰好有一个传入边缘使得该边缘未被标记,。检查其副本组成的小工具,我们看到所有这样的边仅由一对顶点组成,这些顶点的输入值在第二组输入下始终为1s。因此,在第一组输入下,,并且在第二组输入下。因此,在两组输入之间,这种形式的输出将始终相同(实际上为零)。(Û ,v )v Ô Ü 吨 = v 我Ñ ⊕ ü 我Ñ ģ v ö Ù 吨 = v 我Ñ ⊕ Ù 我Ñ = 0 ⊕ 0 = 0 v Õ Ù 吨 = v 我Ñ ⊕ Ù 我Ñ = 1 ⊕ 1 = 0v(u,v)vout=vin⊕uinGvout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3)对于标记图中的每个顶点,恰好有一个传入边缘,使得边缘标记为,。如果在赋值下为假,则在两组输入下为0;否则为0。然后在两组输入下,。如果在赋值下为true,则在第一个输入集下为0,在第二个输入集下为1;还要注意的是,在小工具,唯一的标记边缘具有顶点总是有(Û ,v )升v Ô Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 升)升v 我Ñ v ö Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 升)= v 我Ñ ⊕ (Û 我ñ ∧ 0 )= v 我ñ = 0v(u,v)lvout=vin⊕(uin∧l)lvinvout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0v 我Ñ(Û ,v )û û 我Ñ = 1 Ù 我Ñ = v 我Ñ升v ö Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 升)= v 我Ñ ⊕ (û 我Ñ ∧ 1 )= v 我ñ ⊕ Ù 我ñ = vlvin(u,v)uuin=1在第二组输入下,。结果,我们看到在两组输入下,只要为真,;然后。因此,在两组输入之间,这种形式的输出将始终相同(实际上为零)。uin=vinlvout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
4)对于标记图中的每个顶点,正好有两个传入边和,。每个小工具中都有两个这样的顶点。顶部顶点和第二个从顶部顶点开始。我们分别考虑这两种情况。(Û ,v )(瓦特,v )v Ô Ü 吨 = v 我Ñ ⊕ (û 我Ñ ∨ 瓦特我Ñ)v(u,v)(w,v)vout=vin⊕(uin∨win)
4a)当是小工具中的第二高顶点时,和是标记为L1和L2的边的两个目标端点。在第一组输入下,。在第二组输入下,为0 ,是L1在满足指定条件下又为0(又名);类似地,如果在满意的分配下L2的值为0(又名),则为0 ;最后,如果L1和L2都具有值0(又称为),定义为0 。因此,在第二组输入下,ü 瓦特v ö Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∨ 瓦特我Ñ)= 0 ⊕ (0 ∨ 0 )= 0 ü 我Ñ Ù 我Ñ = 大号1 瓦特我Ñ瓦特我Ñ = 大号2 v 我ñ v 我ñ = 大号1 ∨ 大号2vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uinuin=L1winwin=L2vinvin=L1∨L2vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0。因此,在两组输入之间,这种形式的输出将始终相同(实际上为零)。
4b)当是小工具中的顶部顶点时,是第二顶部顶点,而是标记为L3的边的目标端点。在第一组输入下,。在第二组输入下,如果L1和L2的值均为0 ,则为0(又名);为0,如果L3的值为0(又名);最后。因此,在第二组输入下,等于ü 瓦特v ö Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∨ 瓦特我Ñ)= 0 ⊕ (0 ∨ 0 )= 0 ü 我Ñ Ù 我Ñ = 大号1 ∨ 大号2 瓦特我Ñ瓦特我Ñ = 大号3 v 我ñ = 1 v Ò ù 吨vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uinuin=L1∨L2winwin=L3vin=1(大号1 ∨ 大号2 ∨ 大号3 )= 1vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1根据定义,满足每个子句。因此,在两组输入之间,这种形式的输出将始终相同(实际上为零)。
显然,我们看到两组不同输入的输出是相同的,因此电路实现了非双射功能。NC03
正确性证明案例2:不满足ϕ
现在假设没有令人满意的赋值。然后为了矛盾起见,假设两组不同的输入导致具有相同输出的电路。N C 0 3ϕNC03
显然,两个输入端必须具有相同的值,为每个变量在。因此,我们现在可以明确地引用的值。 X φ Xxinxϕx
将定义为的顶点的集合,以使在两组输入值中不同。v ģ v 我ÑSvGvin
我们将在下面证明以下引理:
引理1:如果在某个小工具中,标记边缘目标端点的所有三个顶点均不在则在小工具中这三个顶点之上的顶点均不在。小号SS
引理2:如果某个小工具中的顶部顶点不在中,则在下一个小工具中,顶点不在。小号SS
由于小工具形成一个循环,因此这意味着,如果在任何小工具中,标记边缘目标端点的所有三个顶点都不在则中的顶点都不在(换句话说,为空)。ģ 小号小号SGSS
但是,请考虑与不满足子句关联的小工具。在此小工具中,所有三个标签的值均为0。我们知道标记为边必须满足,但,所以。因此,由于两个输入的输出都相同,因此在两组输入之间的值也必须相同。换句话说,我们表明不在(Û ,v )大号v Ô Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 大号)大号= 0 v Õ Ù 吨 = v 我Ñ ⊕ (û 我Ñ ∧ 大号)= v 我ñ ⊕ (û 我ñ ∧(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0 v 我Ñ v 小号小号vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvS。因此,我们看到在该特定小工具中,标记边缘目标端点处的三个顶点不在。S
结果,我们得出结论为空。但是,这意味着两组输入之间没有差异,这与这些输入组不同的假设相矛盾。结果,我们看到由电路实现的函数是单射的,因此是双射的。N C 0 3SNC03
剩下的就是证明引理。
为此,我们注意到,对于每种类型的顶点(带标签的度数1,不带标签的度数1,以及度数2),如果所有传入边均来自不在的顶点,则所讨论的顶点也不在。这是因为在所有三种情况下,其中是与变量和/或具有边的顶点相关联的输入的某些函数。由于假设所有这些顶点都不在,因此在两组输入下的值必须相同。因此,在两组输入下,也相同。换句话说小号小号v ö Ù 吨 = v 我Ñ ⊕ X X v 小号X v 我Ñ = v ö Ü 吨 ⊕ X v 小号GSSvout=vin⊕XXvSXvin=vout⊕Xv不在。S
现在,我们有规则,一个顶点不是,只要其所有前任的不是,引理通过反复运用规则上面的小工具图简单地跟随。小号SS