該題目是選自《演算法概論》中第8章課後練習題第16題。
題目如下:
該題目可以把烹飪實驗問題中構造乙個特例,使得它能夠滿足3sat的形式即可。
我們首先假設有n個材料,分別為x1,x2,x3……xn,他們之間有乙個關係,對於xi與xj之間有不和諧度dij。在這裡,我們構造乙個特例,令p=0。
對於每個i與j之間構造四個子句 (xi v xj v ~dij) 、(~xi v ~xj v dij)、(~xi v xj v ~dij) 與 (xi v ~xj v ~dij).
這樣就可以算出,當xi 與 xj 同時取true 的時候, dij 必須要取true,當xi 與 xj 其中乙個為false 的時候,dij 必須取false。
此時,只要找出乙個能夠滿足 所有賦值為true的 dij 之和小於等於p即可。
NP完全問題 3 SAT
1 什麼是3sat問題?sat是satisfiability 可滿足性 的縮寫。sat問題就是問某乙個布林表示式是不是 可滿足 的問題。這裡的術語 可滿足 的意思是存在一組 真值賦值 truth assignment 使得布林表示式為真。舉例來說,a b a與非b 就是乙個 可滿足 的布林表示式,因...
證明吝嗇SAT問題為NP完全問題。
吝嗇sat問題是這樣描述的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k個變數為true的滿足賦值 如果該賦值存在。而我們的目的就是證明吝嗇sat問題為np完全問題。這是書 演算法概論 的習題8.3。我證明的方法是用歸約的方法 由已知的np完全問題歸約到該問題,並證明歸約的過程...
8 3 證明吝嗇SAT問題是NP 完全問題
吝嗇sat問題是這樣的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k個變數為true的滿足賦值 如果該賦值存在。證明吝嗇問題是np 完全問題。這道題,我的思路是 首先證明吝嗇sat問題是是np問題,然後用歸約的方法 由已知的np完全問題 sat問題 歸約到該問題,並證明歸約的過...