演算法課習題證明

2021-08-14 10:49:41 字數 616 閱讀 9459

吝嗇sat問題是這樣的:給定一組子句(每個子句都是其中文字的析取)和整數k,求乙個最多有k個變數為true的滿足賦值——如果該賦值存在。證明吝嗇sat是np-完全問題。

假設有子句: (a⋃b⋃c)⋂(a⋃b¯)⋂(b⋃c¯)(a¯⋂c)⋂(a¯⋃b¯⋃c¯)

求a,b,c的取值(true or false)使得該表示式的結果是true。不難發現,這個表示式不存在乙個合適的abc的取值使得子句為true,對於這個問題需要搜尋所有取值組合才能確定是否能確定是否存在乙個組合可以使得該式子為true,如果存在我們就返回這個組合,如果不存在就返回不存在,用窮舉搜尋的方法複雜度是o(2^n)。

吝嗇sat問題可以看做sat問題的變形,多乙個變數k,要求不能多於k個變數值為true。

已知np完全問題為sat問題,易知吝嗇sat問題的解是可在多項式時間內驗證的,因此屬於np。

歸約,證明sat問題 -> 吝嗇sat 問題:

假設sat問題有n個變數,則該sat問題等價於k=n的吝嗇sat問題,因此歸約過程的時間複雜度為多項式時間複雜度o(1)。

若吝嗇sat問題有多項式時間演算法,則sat問題也有多項式時間演算法。因為因為sat問題為已知的np-完全問題,則吝嗇sat問題亦為np-完全問題。

證畢。

《演算法概論》習題8 19證明

題目 所謂風箏圖是這樣的,其頂點數為偶數 比如2n 且其中的n個頂點構成了乙個團,剩餘的n個頂點則由一條稱為 尾巴 的路徑連線,尾巴的某個端點與團中乙個頂點相連。給定乙個圖和目標g,風箏圖問題要求該圖的乙個包含2g個頂點的風箏子圖。請證明該問題是np 完全的。證明 我們可以將團問題歸約到風箏圖問題。...

演算法概論 8 3習題證明

演算法概論 習題 8.3 題目描述 吝嗇sat問題是這樣的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k個變數為true的滿足賦值 如果該賦值存在。證明吝嗇sat是np 完全問題。什麼是sat問題?sat問題也稱為合取正規化的可滿足問題,乙個合取正規化形如 a1 a2 an,子...

2018演算法課習題(一)

目錄 數字統計問題 2011的倍數 最多約數問題 最大間隙問題 字典序問題 金幣列陣問題 更新中.時間限制 1 sec 記憶體限制 128 mb 提交 8 解決 6 提交 狀態 討論版 命題人 admin 題目描述 給定一本書,其中包含n頁,計算出書的全部頁碼中用到了多少個數字0 9?頁碼從1開始 ...