正在加载图片...
.532. 智能系统学报 第9卷 顶点覆盖问题旨在确定图中是否存在指定规模的顶 可以在顶点覆盖问题上求解,根据NP-complete定 点覆盖: 义可知,顶,点覆盖问题属于NP-complete。 VERTEX-COVER={(G,k〉IG是具有k个 2.4指数时间复杂性(exponential time,EXPTIME) 结点的顶点覆盖的无向图}山,顶点覆盖问题属于 该复杂性类是一些确定型问题的集合,这些问 NP-complete类问题2。 题可以使用确定型图灵机在O(2()的时间内解 对于证明某个问题A属于NP-complete,需要依 决,这里的p(n)代表的是n的某个多项式。属于该 据NP-complete的定义,具体步骤如下: 复杂性的问题,它的难度不小于P、NP、NP-complete 1)证明A属于NP; 以及空间复杂性类(PSPACE和PSPACE-com- 2)需要找到一个已被证明是NP-complete的问 plete)rl。 题B; EXPTIME例子G,[)]游戏,该游戏中的每个 3)证明B可归约到A: 局面(position)是一个四元组(r,W-LOSE(X,Y), 4)证明该归约可在多项式时间内完成。 B-L0SE(X,Y),a'),其中r∈{W,B},它表示当前 这里步骤3)是难点,需要一些别出心裁的巧妙 走棋方,W-LOSE=C:VC2VCsV.VCp和 思维去构造一个合理的归约函数,文献[1]中,使用 B-L0SE=C1VC2VC3V…VC,是属于 已经被证明属于NP-complete的问题3SAT(3SAT, 12DNF的布尔公式,其中每个C:(1≤i≤P)和 是一个合取范式,该公式中每一个子句都有3个文 C2(1≤j≤q)是最多12个文字之间的与运算,每个 字,它是Karp]的21个NP-complete问题的其中之 文字是集合X(Y)中的一个变量,如:z或:(变量z 一),设该3SAT公式为(x Vx V y)A(元VyVy) 的非运算);a'是对公式XUY的一个赋值,如:X= ∧(xVyV),并且构造了一个归约,如图2。 {x1,x2,x3},Y={y1y2,y3},则XUY={xl,x2,x3, 变量构件一 y1,y2,y3},对XUY赋值,就是对该集合中的各个 元素赋值为0或1。 比赛双方交替进行,W方或B方通过改变集合 X和Y中的一个变量的值进行走棋。更精确地,W 方能够从局面(W,W-L0SE(X,Y),B-LOSE(X, Y),a')下棋到局面(B,W-LOSE(X,Y),B-LOSE 子句构件一 (X,Y),a),当且仅当a'与a’不同,并且在'的 图2归约的完整结构图 赋值下,W-L0SE(X,Y)的布尔值为false。如果在 Fig.2 The complete structure of reducibility W(B)走了若干步后,公式W-LOSE(B-LOSE)为 图中包括变量构件和子句构件,变量构件关系 rue,那么W(B)失败。 对变量的赋值:子句构件对应公式中的3个子句。 在文献[17]中,给出了四元组中的公式F(即 图中共有2m+3l(m表示公式中变量的数量,l表 W-LOSE(X,Y)或B-LOSE(X,Y))的所有可能的表 示公式中子句的数量)个顶点,令指定的顶点覆盖 示形式共有:card(V(F))≤e×FI /log(IFI), 规模k=m+l,根据此3SAT公式,k的值为8,因此 其中,e为常量,IFI表示公式F被编码后的长度,V 要从图中找到满足该3SAT公式的规模为8的顶点 (F)表示公式F所有可能的表示形式所构成的集 覆盖。 合,card(V(F))表示集合中的元素总数。而对于表 规则山首先为2个变量选取满足公式的赋 示G,游戏局面的四元组,对于player I(playerⅡ), 值,即x为假、y为真,选择变量构件中相应的结点 通过对集合X(Y)中的一个变量的赋值来完成下 作为顶点覆盖中的结点,然后在各个子句构件中选 棋,而该变量的值有2个,即0或1。所以,某个走 择值不为真的2个结点作为顶点覆盖中的结点,其 棋方在下棋时,可走的局面有2个,即对于一个F的 中第3个子句的3个变量的值都为真,则将不影响 表示形式,由于四元组有2种可能,所以,从第一步 顶点覆盖的结点无去除,选择该子句中的另外2个 开始一直到分出胜负,共有e×|F1/log(1F1)个2 结点,如图中有阴影的结点,这些结点的集合构成该 相乘,即2eIA)。又用r来识别走棋方,即第 图的一个顶点覆盖。因此说明该图中的顶点覆盖, 一步谁先走有2种可能,并且该四元组中有2个公 可以满足该3SAT公式(即该公式的值为真),进而 式F(即W-LOSE(X,Y)和B-LOSE(X,Y)),因此 说明3SAT可归约到顶点覆盖,也就是说3SAT问题 对一个输入w,其中n表示w的长度,则G:从开始顶点覆盖问题旨在确定图中是否存在指定规模的顶 点覆盖: VERTEX⁃COVER = {〈G , k〉 | G 是具有 k 个 结点的顶点覆盖的无向图} [1] ,顶点覆盖问题属于 NP⁃complete 类问题[12] 。 对于证明某个问题 A 属于 NP⁃complete,需要依 据 NP⁃complete 的定义,具体步骤如下: 1)证明 A 属于 NP; 2)需要找到一个已被证明是 NP⁃complete 的问 题 B; 3)证明 B 可归约到 A; 4)证明该归约可在多项式时间内完成。 这里步骤 3)是难点,需要一些别出心裁的巧妙 思维去构造一个合理的归约函数,文献[1]中,使用 已经被证明属于 NP⁃complete 的问题 3SAT(3SAT, 是一个合取范式,该公式中每一个子句都有 3 个文 字,它是 Karp [12]的 21 个 NP⁃complete 问题的其中之 一),设该 3SAT 公式为 (x ∨ x ∨ y) ∧ (x - ∨ y - ∨ y - ) ∧ (x - ∨ y ∨ y - ) ,并且构造了一个归约,如图 2。 图 2 归约的完整结构图 Fig.2 The complete structure of reducibility 图中包括变量构件和子句构件,变量构件关系 对变量的赋值;子句构件对应公式中的 3 个子句。 图中共有 2m + 3l (m 表示公式中变量的数量,l 表 示公式中子句的数量) 个顶点,令指定的顶点覆盖 规模 k = m + l ,根据此 3SAT 公式,k 的值为 8,因此 要从图中找到满足该 3SAT 公式的规模为 8 的顶点 覆盖。 规则[1] 首先为 2 个变量选取满足公式的赋 值,即 x 为假、y 为真,选择变量构件中相应的结点 作为顶点覆盖中的结点,然后在各个子句构件中选 择值不为真的 2 个结点作为顶点覆盖中的结点,其 中第 3 个子句的 3 个变量的值都为真,则将不影响 顶点覆盖的结点 x - 去除,选择该子句中的另外 2 个 结点,如图中有阴影的结点,这些结点的集合构成该 图的一个顶点覆盖。 因此说明该图中的顶点覆盖, 可以满足该 3SAT 公式(即该公式的值为真),进而 说明 3SAT 可归约到顶点覆盖,也就是说 3SAT 问题 可以在顶点覆盖问题上求解,根据 NP⁃complete 定 义可知,顶点覆盖问题属于 NP⁃complete。 2.4 指数时间复杂性(exponential time, EXPTIME) 该复杂性类是一些确定型问题的集合,这些问 题可以使用确定型图灵机在 O(2 p(n) ) 的时间内解 决,这里的 p(n)代表的是 n 的某个多项式。 属于该 复杂性的问题,它的难度不小于 P、NP、NP⁃complete 以及 空 间 复 杂 性 类 ( PSPACE 和 PSPACE⁃com⁃ plete) [3] 。 EXPTIME 例子 G3 [17] 游戏,该游戏中的每个 局面(position)是一个四元组( τ , W-LOSE(X,Y), B-LOSE(X,Y),α′),其中 τ ∈ {W,B} ,它表示当前 走棋方, W - LOSE = C11 ∨ C12 ∨ C13 ∨ … ∨ C1p 和 B⁃LOSE = C21 ∨ C22 ∨ C23 ∨ … ∨ C2q 是属于 12DNF [18]的布尔公式,其中每个 C1 i(1≤i≤p) 和 C2 j(1≤j≤q)是最多 12 个文字之间的与运算,每个 文字是集合 X(Y)中的一个变量,如: z 或 z - (变量 z 的非运算);α′是对公式 X ∪ Y 的一个赋值,如: X = {x1 ,x2 ,x3 } , Y = {y1 ,y2 ,y3 } ,则 X ∪Y = {x1,x2 ,x3 , y1 ,y2 ,y3 } ,对 X ∪ Y 赋值,就是对该集合中的各个 元素赋值为 0 或 1。 比赛双方交替进行,W 方或 B 方通过改变集合 X 和 Y 中的一个变量的值进行走棋。 更精确地,W 方能够从局面( W, W - LOSE(X,Y),B - LOSE ( X, Y), α′) 下棋到局面(B, W-LOSE(X,Y), B-LOSE (X,Y), α′),当且仅当 α′ 与 α′’不同,并且在 α′的 赋值下,W-LOSE(X,Y) 的布尔值为 false。 如果在 W(B)走了若干步后,公式 W-LOSE(B -LOSE) 为 true,那么 W(B)失败。 在文献[17] 中,给出了四元组中的公式 F(即 W-LOSE(X,Y)或 B-LOSE(X,Y))的所有可能的表 示形式共有: card(V(F)) ≤ e ×| F | / log(| F | ) , 其中,e 为常量, | F | 表示公式 F 被编码后的长度,V (F)表示公式 F 所有可能的表示形式所构成的集 合,card(V(F))表示集合中的元素总数。 而对于表 示 G3游戏局面的四元组,对于 player I( player II), 通过对集合 X( Y) 中的一个变量的赋值来完成下 棋,而该变量的值有 2 个,即 0 或 1。 所以,某个走 棋方在下棋时,可走的局面有 2 个,即对于一个 F 的 表示形式,由于四元组有 2 种可能,所以,从第一步 开始一直到分出胜负,共有 e ×| F | / log(| F | ) 个 2 相乘,即 2 e×| F| / log(| F| ) 。 又用 τ 来识别走棋方,即第 一步谁先走有 2 种可能,并且该四元组中有 2 个公 式 F(即 W-LOSE(X,Y)和 B-LOSE(X,Y)),因此, 对一个输入 w,其中 n 表示 w 的长度,则 G 3从开始 ·532· 智 能 系 统 学 报 第 9 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有