【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )
文章目錄
- 一、團問題是 NP 完全問題 證明思路
- 二、證明團問題是 NP 完全問題
一、團問題是 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 問題 的 布爾邏輯公式 ,
?=(x1∨x1∨x2)∧(x1 ̄∨x2 ̄∨x2 ̄)∧(x1 ̄∨x2∨x2)\rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 )?=(x1?∨x1?∨x2?)∧(x1??∨x2??∨x2??)∧(x1??∨x2?∨x2?)
構造一個 無向圖 ,
使得 布爾邏輯公式 是可滿足的 , 當且僅當 , 無向圖中有一個 k\rm kk 團 ;
k\rm kk 團就是無向圖中 k\rm kk 個節點子集 , 每兩個節點之間都有邊相連 ;
證明過程 : 從 給定的 3-SAT 布爾邏輯公式 ?=(x1∨x1∨x2)∧(x1 ̄∨x2 ̄∨x2 ̄)∧(x1 ̄∨x2∨x2)\rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 )?=(x1?∨x1?∨x2?)∧(x1??∨x2??∨x2??)∧(x1??∨x2?∨x2?) 中 , 構造出一個無向圖 出來 , 使得該無向圖可以滿足 " 布爾邏輯公式 是可滿足的 , 當且僅當 , 無向圖中有一個 k\rm kk 團 "
二、證明團問題是 NP 完全問題
參考上篇博客 【計算理論】計算復雜性 ( 3-SAT 是 NP 完全問題 | 團問題是 NP 完全問題 | 團問題是 NP 完全問題證明思路 ) 三、團問題是 NP 完全問題 證明思路
從 給定的 3-SAT 布爾邏輯公式 ?=(x1∨x1∨x2)∧(x1 ̄∨x2 ̄∨x2 ̄)∧(x1 ̄∨x2∨x2)\rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 )?=(x1?∨x1?∨x2?)∧(x1??∨x2??∨x2??)∧(x1??∨x2?∨x2?) 中 , 構造出一個無向圖 出來 , 使得該無向圖可以滿足 " 布爾邏輯公式 是可滿足的 , 當且僅當 , 無向圖中有一個 k\rm kk 團 "
構造點集三元組 : 給定 3-SAT 合取范式 , 布爾邏輯公式中 , 每個子項都有一個三元組 ,
上圖中的 無向圖 左側的 點集三元組 對應 布爾邏輯公式 合取范式 中的 (x1∨x1∨x2)\rm ( x_1 \lor x_1 \lor x_2 )(x1?∨x1?∨x2?) 子項 ,
上圖中的 無向圖 頂部的 點集三元組 對應 布爾邏輯公式 合取范式 中的 (x1 ̄∨x2 ̄∨x2 ̄)\rm ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} )(x1??∨x2??∨x2??) 子項 ,
上圖中的 無向圖 右側的 點集三元組 對應 布爾邏輯公式 合取范式 中的 (x1 ̄∨x2∨x2)\rm ( \overline{x_1} \lor x_2 \lor x_2 )(x1??∨x2?∨x2?) 子項 ,
構造無向邊 : 對于布爾邏輯公式 , 3-SAT 公式 ,
?=(x1∨x1∨x2)∧(x1 ̄∨x2 ̄∨x2 ̄)∧(x1 ̄∨x2∨x2)\rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 )?=(x1?∨x1?∨x2?)∧(x1??∨x2??∨x2??)∧(x1??∨x2?∨x2?)
如果要取值為真 , 需要每個子項取值都為真 ,
如果每個子項為真 , 每個子項都是析取式 , 只要保證每個子項中至少有一個為真即可 ,
在每個子項中取一個 詞 為真的值 , 詞的取值互相之間不發生矛盾 , 不能出現有一個詞 是另外一個詞的否定 , 詞就是 原子命題變元 或其否定 ;
x1\rm x_1x1? 與 x1 ̄\rm \overline{x_1}x1?? 互為否定 , 這兩個節點之間不能有邊相連 ,
x2\rm x_2x2? 與 x2 ̄\rm \overline{x_2}x2?? 互為否定 , 這兩個節點之間不能有邊相連 ,
無向邊構造原則 : 不同的 333 組點集之間 , 如果不是互為否定的 , 就連接一條邊 , 本組之間沒有邊 ;
下圖是構造好的無向圖 :
證明 布爾邏輯公式 ?=(x1∨x1∨x2)∧(x1 ̄∨x2 ̄∨x2 ̄)∧(x1 ̄∨x2∨x2)\rm \phi = ( x_1 \lor x_1 \lor x_2 ) \land ( \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} ) \land ( \overline{x_1} \lor x_2 \lor x_2 )?=(x1?∨x1?∨x2?)∧(x1??∨x2??∨x2??)∧(x1??∨x2?∨x2?) 是可滿足的 , 當且僅當 , 無向圖中有一個 3\rm 33 團 ;
取值 :
x1=false,x1 ̄=true\rm x_1 = false , \ \overline{x_1} = truex1?=false,?x1??=true
x2=true,x2 ̄=false\rm x_2 = true, \ \overline{x_2} = falsex2?=true,?x2??=false
x1∨x1∨x2=false∨false∨true=true\rm x_1 \lor x_1 \lor x_2 = false \lor false \lor true= truex1?∨x1?∨x2?=false∨false∨true=true
x1 ̄∨x2 ̄∨x2 ̄=true∨true∨false=true\rm \overline{x_1} \lor \overline{x_2} \lor \overline{x_2} = true \lor true \lor false = truex1??∨x2??∨x2??=true∨true∨false=true
x1 ̄∨x2∨x2=true∨true∨true=true\rm \overline{x_1} \lor x_2 \lor x_2 = true \lor true \lor true= truex1??∨x2?∨x2?=true∨true∨true=true
上述取值時 , 合取范式中每個子項都為真 , 布爾邏輯公式取值為真 ;
找 333 團 : 在無向圖中 , 找到一個 333 團 , 下圖中紅色的點組成的集合就是一個 333 團 , 可以發現取值為真的點都可以組成一個 333 團 ;
上圖中 333 團 的規律就是找到 333 個取值為真的賦值 , 就可以自動找到一個 333 團 ;
總結
以上是生活随笔為你收集整理的【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算理论】计算复杂性 ( 3-SAT
- 下一篇: 【计算理论】计算复杂性 ( 无向图独立集