【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )
文章目錄
- 一、獨立集問題
- 二、獨立集問題是 NP 完全問題證明思路
- 二、證明獨立集問題是 NP 完全問題
一、獨立集問題
無向圖的獨立集 , 指的是在無向圖中找到點集的子集 , 使得它們兩兩之間 , 沒有邊相連 ;
下圖中的無向圖中 , 黃色的點集是獨立集 ;
獨立集問題也是一個 NP\rm NPNP 完全問題 ;
二、獨立集問題是 NP 完全問題證明思路
證明一個命題是 NP\rm NPNP 完全問題 :
① 證明是 NP\rm NPNP 問題 : 首先證明該問題是 NP\rm NPNP 問題 ;
② 證明是最難的 NP\rm NPNP 問題 : 然后證明所有的 NP\rm NPNP 問題 , 可以在多項式時間內規約到 該命題中 ; 也可以使用一個已經證明的 NP\rm NPNP 完全問題 , 在多項式時間內規約到 需要被證明的命題 ;
證明 獨立集題 是 NP\rm NPNP 完全的 , 從已知的 NP\rm NPNP 完全問題出發 , 已知的 NP\rm NPNP 完全問題就是 3-SAT 問題 ,
如果 3-SAT 問題是 NP\rm NPNP 完全的話 ,
只要證明 3-SAT 問題 可以在 多項式時間內規約 到 獨立集問題 中 , 3-SAT ≤\leq≤ 獨立集問題 ,
就可以證明 獨立集問題 是 NP\rm NPNP 完全問題 ;
將 3-SAT 問題 可以在 多項式時間內規約 到 獨立集問題 中 ,
給定一個 3-SAT 問題 的 布爾邏輯公式 ,
?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)
構造一個 無向圖 ,
使得 布爾邏輯公式 是可滿足的 , 當且僅當 , 無向圖中有一個 k\rm kk 獨立集 ;
k\rm kk 獨立集就是無向圖中 k\rm kk 個節點子集 , 每兩個節點之間都沒有邊相連 ;
證明過程 : 從 給定的 3-SAT 布爾邏輯公式 ?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z) 中 , 構造出一個無向圖 出來 , 使得該無向圖可以滿足 " 布爾邏輯公式 是可滿足的 , 當且僅當 , 無向圖中有一個 k\rm kk 獨立集 "
二、證明獨立集問題是 NP 完全問題
任意給出一個 333 合取范式 ,
?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)
將上述公式轉為無向圖 : 合取范式每個子項 , 轉換為三元組 , 如下圖所示 ;
無向圖構造原則 : 互為否定的點集 , 連接在一起 ,
沒有邊相連 : 下圖中 x,?y,?z\rm x , \lnot y , \lnot zx,?y,?z 互相不為否定 , 三個點之間沒有邊相連 ;
沒有邊相連 : 下圖中 y,?x,?x\rm y , \lnot x , \lnot xy,?x,?x 互相不為否定 , 三個點之間沒有邊相連 ;
有邊相連 : 下圖中 ?z,z,?z\rm \lnot z , z , \lnot z?z,z,?z 有兩個互相為否定 , 三個點之間有 222 條邊相連 ;
有邊相連 : 下圖中 x,?x,?x\rm x , \lnot x , \lnot xx,?x,?x 有兩個互相為否定 , 三個點之間有 222 條邊相連 ,
構造好的無向圖 :
如果 ?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z)\rm \phi = ( x \lor y \lor \lnot z) \land ( \lnot x \lor \lnot y \lor z ) \land ( \lnot x \lor y \lor \lnot z)?=(x∨y∨?z)∧(?x∨?y∨z)∧(?x∨y∨?z) 布爾邏輯公式可滿足 ,
當且僅當 ,
上述最終形成的無向圖中 , 一定存在著一個 333 個節點組成的獨立集 ;
布爾邏輯公式中 , 給定一組真值 ,
x=true,y=true,z=true\rm x=true , y=true , z=truex=true,y=true,z=true
那么 x,y,z,?x,?y,?z\rm x , y, z , \lnot x , \lnot y , \lnot zx,y,z,?x,?y,?z 中取值為真的就是獨立子集 ,
因此 x,y,z\rm x , y, zx,y,z 是獨立子集 ;
布爾邏輯公式中 , 給定一組真值 ,
x=false,y=隨意,z=false\rm x=false , y=隨意 , z=falsex=false,y=隨意,z=false
那么 x,y,z,?x,?y,?z\rm x , y, z , \lnot x , \lnot y , \lnot zx,y,z,?x,?y,?z 中取值為真的就是獨立子集 ,
因此 一個 ?x\rm \lnot x?x 兩個?z\rm \lnot z?z 組成的點集 是獨立子集 ;
總結
以上是生活随笔為你收集整理的【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算理论】计算复杂性 ( 证明团问题是
- 下一篇: 【计算理论】计算复杂性 ( NP 完全问