演算法設計8 3

2021-08-03 14:46:46 字數 417 閱讀 6844

題目:

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

解答:首先我們要證明吝嗇sat問題是np-完全問題,我們首先要證明吝嗇sat問題是np問題,然後如果能把sat問題規約到吝嗇sat問題,那麼我們就能證明這個問題。

證明吝嗇sat問題為np問題。 

若已知某個與吝嗇sat問題變數對應的真值集合,可在多項式時間內將該集合帶入吝嗇sat問題驗證是否為解。故吝嗇sat問題為np問題。

證明吝嗇sat為np-完全問題。 

sat -> 吝嗇sat 

令sat問題中變數個數為k即得到吝嗇sat問題,此歸約過程需要多項式時間。又因為sat問題為已知的np-完全問題,則吝嗇sat問題亦為np-完全問題。

演算法概論 8 3

吝嗇sat問題是這樣的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k各變數為true的滿足賦值 如果該賦值存在。證明吝嗇sat是np完全問題。可以將sat問題歸約到此問題。首先,若得到了吝嗇sat問題的乙個解,按照此解對吝嗇sat的每個子句賦值,即可驗證這個解是否成立,這個過程...

C 實驗8 3 設計函式

問題描述 void findmin int m max int x,int n,int m 將二維陣列m中每列的最小元素,依次放入一維陣列x中,二維陣列m的行數為n,列數為m。輸入與輸出要求 輸入兩個整數n m,代表二維陣列m的行數與列數,n m的範圍均是1 100。然後是n m個整數,即二維陣列m...

演算法概論 8 3習題證明

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