通過3SAT證明支配集是NPC問題

2021-09-18 06:55:42 字數 2615 閱讀 5089

往期文章:

npc簡介

np-hard問題證明

npc 證明(一)

npc 證明(二)

本文介紹如何通過3sat歸約,進而證明支配集是npc問題。

\rightarrow

→ 3-satisfiability (3sat)

給定乙個有窮的布林變數集合x

=x=\lbrace x_1,x_2,\ldots,x_n \rbrace

x=,變數x

ix_i

xi​取值為1或者0,另有一組子句c

=c=\lbrace c_1,c_2,\ldots,c_m \rbrace

c=,c =c

1∧c2

∧…∧c

m\mathbb=c_1\wedge c_2 \wedge \ldots \wedge c_m

c=c1​∧

c2​∧

…∧cm

​,ci=x

j∨xk

∨x

lc_i = x_j \vee x_k \vee x_l

ci​=xj

​∨xk

​∨xl

​。求是否存在一組取值使得c

\mathbf

c為真,即任意c

ic_i

ci​為真。

\rightarrow

→ dominating set

給定圖g

gg,正整數k

kk,是否存在dominating set的大小最多為kkk。

dominating set d

dd是點集v

vv的乙個子集,並且對於不在d

dd中的點v

vv,至少存在一條邊(u,

v)∈e

(u,v)\in e

(u,v)∈

e,u∈

du\in d

u∈d。

我們知道將支配集歸約到3sat進而證明3sat是npc是很容易的。csci5320的習題裡,要進行相反方向的歸約,將3sat的問題轉化成支配集的問題進行求解,相對來說比較難。

對於每個變數x

ix_i

xi​,我們都構造兩個點,x

ix_i

xi​和xi‾

\overline

xi​​

,以及一條邊(xi

,xi‾

)(x_i,\overline)

(xi​,x

i​​)

對於c

ic_i

ci​當中的三個變數xj∨

xk∨x

lx_j \vee x_k \vee x_l

xj​∨xk

​∨xl

​,我們構造乙個點c

ic_i

ci​,三條邊(xj

,ci)

(x_j,c_i)

(xj​,c

i​),(xk

,ci)

(x_k,c_i)

(xk​,c

i​)和(xl

,ci)

(x_l,c_i)

(xl​,c

i​)。如果布林表示式取反,那麼我們可以對應的連線(xj

‾,ci

)(\overline,c_i)

(xj​​,

ci​)

。最關鍵的一步,我們如何確保x

ix_i

xi​,xi‾

\overline

xi​​

恰好有且僅有乙個點落在支配集裡。我們增加乙個點y

iy_i

yi​,並且新增兩條邊(xi

,yi)

(x_i,y_i)

(xi​,y

i​)與(xi

‾,yi

)(\overline,y_i)

(xi​​,

yi​)

。 那麼我們可以知道c

\mathbb

c可滿足當且僅當上述構造的圖中有乙個大小m

mm的支配集。

當c

\mathbb

c可滿足時,顯而易見,對應取真的變數構成乙個支配集。

當上述構造的圖中有乙個大小為m

mm的支配集時,因為(xi

,xi‾

,yi)

(x_i,\overline,y_i)

(xi​,x

i​​,

yi​)

三個點當中最少有乙個點在支配集當中,所以支配集的大小最小為m

mm。那麼我們可以得到結論(xi

,xi‾

,yi)

(x_i,\overline,y_i)

(xi​,x

i​​,

yi​)

三個點恰好有且僅有乙個點在支配集當中。當y

iy_i

yi​在支配集當中時,我們總可以由(xi

,xi‾

)(x_i,\overline)

(xi​,x

i​​)

當中的乙個點來替換。那麼由此便可得到乙個令c

\mathbb

c可滿足的取值。

NP完全問題 3 SAT

1 什麼是3sat問題?sat是satisfiability 可滿足性 的縮寫。sat問題就是問某乙個布林表示式是不是 可滿足 的問題。這裡的術語 可滿足 的意思是存在一組 真值賦值 truth assignment 使得布林表示式為真。舉例來說,a b a與非b 就是乙個 可滿足 的布林表示式,因...

烹飪實驗問題歸約3SAT問題 NP 完全問題歸約

該題目是選自 演算法概論 中第8章課後練習題第16題。題目如下 該題目可以把烹飪實驗問題中構造乙個特例,使得它能夠滿足3sat的形式即可。我們首先假設有n個材料,分別為x1,x2,x3 xn,他們之間有乙個關係,對於xi與xj之間有不和諧度dij。在這裡,我們構造乙個特例,令p 0。對於每個i與j之...

證明精確的4SAT是NP 完全問題

題目描述 在精確的4sat exact 4sat 問題中,輸入為一組子句,每個子句都是恰好 4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值 如果該賦值存在。證明精確的 4sat 是np 完全問題。顯然,4sat問題是 np問題,所有可能的賦值總數的指數級的。現從 3sat ...