• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    可滿足性問題的精確算法和計(jì)算復(fù)雜性

    2023-04-22 13:41:20陳建二

    陳建二,楊 偉

    (廣州大學(xué)計(jì)算機(jī)科學(xué)與網(wǎng)絡(luò)工程學(xué)院,廣東 廣州 510006)

    可滿足性問題是計(jì)算機(jī)科學(xué)中最重要且十分著名的問題之一。在理論計(jì)算機(jī)科學(xué)的研究中,可滿足性問題是第一個(gè)NP(Non-deterministic Polynomial,NP)完全問題[1],在計(jì)算困難問題的研究中起著重要作用[2]。實(shí)踐中可滿足性問題是解決很多應(yīng)用領(lǐng)域問題的基礎(chǔ),包括人工智能[3]、模型檢查[4]、自動(dòng)推理[5]、計(jì)算機(jī)輔助設(shè)計(jì)[6]、數(shù)據(jù)庫(kù)[7]、機(jī)器人學(xué)[8]、調(diào)度[9]、電路設(shè)計(jì)[10]、計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)[11]和計(jì)算機(jī)網(wǎng)絡(luò)[12]等。

    布爾變量是只能采用布爾值1(TRUE)或0(FALSE)的變量。布爾函數(shù)是布爾變量上輸出布爾值的函數(shù),僅使用邏輯運(yùn)算∧(AND)、∨(OR)和?(NOT)。對(duì)布爾函數(shù)F賦值是給F中的每個(gè)變量賦一個(gè)確定的0或1的布爾值,如果F在賦值集合π下輸出1,則π滿足F,稱布爾函數(shù)F是可滿足的;否則F是不可滿足的。

    文字是布爾變量x或x的否定ˉx,子句C是文字的析取,C=x1∨x2∨…∨xk,其中,xk表示文字。當(dāng)增加新的文字x到子句C上時(shí),可以得到一個(gè)新的子句C′=x∨x1∨…∨xk,也可以直接寫成C′=x∨C。CNF公式F是一個(gè)合取范式的布爾函數(shù),F(xiàn)=C1∧C2∧…∧Cm,其中,Cm表示子句,同樣也可以在CNF公式中添加或刪除一個(gè)子句來得到新的CNF公式。每個(gè)布爾函數(shù)都可以寫成合取范式[2]??蓾M足性問題定義如下:

    可滿足性(SAT):給定CNF公式F,確定F是否可滿足。

    SAT是NP完全問題,除非有P=NP,否則SAT問題在多項(xiàng)式時(shí)間內(nèi)不能有效求解,P=NP在計(jì)算機(jī)科學(xué)和數(shù)學(xué)領(lǐng)域共識(shí)中是不成立的。

    本文從標(biāo)準(zhǔn)計(jì)算復(fù)雜性理論的角度論述了SAT問題的精確算法和計(jì)算復(fù)雜性。精確算法指的是對(duì)每個(gè)輸入實(shí)例輸出正確解的算法,并且根據(jù)輸入實(shí)例的參數(shù)對(duì)其(最壞情況)運(yùn)行時(shí)間有一個(gè)已證明的上界。這與啟發(fā)式算法是一致的,啟發(fā)式算法的正確性可能不會(huì)被正式驗(yàn)證而且其運(yùn)行時(shí)間上限也可能不會(huì)被指定。文章重點(diǎn)論述了SAT問題的算法發(fā)展,算法(最壞情況)復(fù)雜性分析和復(fù)雜度上界;對(duì)一些著名的有意義的算法結(jié)果進(jìn)行解釋和分析,并討論它們的意義;介紹了最近幾年相關(guān)領(lǐng)域的研究進(jìn)展;最后簡(jiǎn)要分析了已經(jīng)在許多領(lǐng)域取得成功應(yīng)用的啟發(fā)式算法在SAT問題中的應(yīng)用情況。

    1 基礎(chǔ)概念和相關(guān)技術(shù)

    設(shè)CNF公式F=C1∧C2∧…∧Cm為SAT問題的一個(gè)實(shí)例,Cm表示子句。以下情況可以進(jìn)行預(yù)處理:

    (1)如果一個(gè)子句Ci包含空文字,那么Ci不可能被滿足。對(duì)于這樣的實(shí)例F,直接輸出NO;

    (2)如果一個(gè)子句Ci只包含一個(gè)文字x(單位子句),為了滿足F,必須令x=1來滿足Ci;

    (3)如果公式F包含文字x且不包含ˉx,那么可以令x=1來滿足F中包含x的子句,而且不影響F中其他子句的滿足性;

    (4)如果一個(gè)子句Ci同時(shí)包含一個(gè)變量x和它的否定,那么Ci總是可滿足的。可以忽略子句Ci(不需要確定x的值)。

    編寫一個(gè)簡(jiǎn)單的算法可以處理上述情況。預(yù)處理完成之后,CNF公式就是明確的。下面的研究放在明確的SAT問題實(shí)例上。

    SAT算法的發(fā)展有兩種基本技術(shù):消解和分支搜索。這兩種技術(shù)已經(jīng)被證明在SAT算法分析、計(jì)算復(fù)雜性以及在SAT問題的算法開發(fā)中有著重要作用。

    1.1 消解

    消解技術(shù)是由Davis等[13]提出的,設(shè)C1=x∨C′1、C2=ˉ∨C′2為兩個(gè)子句,分別包含一個(gè)變量x和它的否定ˉx,其中,C′1和C′2是子句。變量x上C1和C2的消解子句為C′1∨C′2。其中,子句C′1和C′2可能有共同的文字,那么就需要?jiǎng)h除C′1∨C′2中的重復(fù)文字。F為CNF公式,F(xiàn)在變量x上的消解也是CNF公式,該公式通過刪除F中包含x和的所有子句,并將F中所有子句的消解子句添加到變量x上獲得。具體如下:

    其中,F(xiàn)0是子句既不包含x也不包含的CNF公式。那么F在變量x上的消解式為

    下面給出定理,并對(duì)完整性進(jìn)行證明。

    定理1(消解原理) 設(shè)x是一個(gè)確定的CNF公式F中的任意變量,F(xiàn)是可滿足的當(dāng)且僅當(dāng)DPx(F)是可滿足的。

    證明設(shè)F是變量集X={x,x2,…,xn}上的CNF公式,如(1)所示,在變量x上的消解DPx(F)如(2)所示。

    假設(shè)F是可滿足的。π是F的一個(gè)可滿足賦值集合,π(x)=x*,π(xk)=(2≤k≤n),其中,x*和是布爾常數(shù)。設(shè)π′為CNF公式DPx(F)中變量{x2,…,xn}的賦值集合,π′(xk)=(2≤k≤n)。如果π(x)=x*=0,那么由于π(F)=1,必須有π(x∨Ci)=1,因此π′(Ci)=1(1≤i≤s)(F是明確的,Ci既不包含x也不包含ˉx);如果π(x)=x*=1,那么π(ˉx)=0,必須有π′(C′j)=1(1≤j≤t)。在這兩種情況下,總有π′(Ci∨C′j)=1(1≤i≤s和1≤j≤t)。此外,由于F0既不包含x也不包含,有π′(F0)=π(F0)=1。因此,π′(DPx(F))=1。DPx(F)是可滿足的。

    另一方面,假設(shè)DPx(F)是可滿足的,π′是可滿足DPx(F)的變量{x2,…,xn}上的賦值集合。如果π′(Ci)=1(1≤i≤s),那么除了π′之外,指定x=0,則ˉx=1,賦值滿足F中的所有子句;如果對(duì)于某些i0,有π′(Ci0)=0,由于π′(DPx(F))=1,可得π′(Ci0∨C′j)=1(1≤j≤t),即π′(C′j)=1(1≤j≤t)。這種情況下,在π′之外指定x=1,滿足公式F。因此,只要DPx(F)是可滿足的,公式F就是可滿足的。證明完成。

    根據(jù)消解原理,要判定SAT的一個(gè)實(shí)例F是否可滿足,只需判定F中任意變量x上F的消解DPx(F)是否可滿足。消解原理消去了SAT實(shí)例F中變量本身和它的否定都出現(xiàn)的變量。不好之處在于DPx(F)是通過從F中刪除s+t個(gè)子句,然后向F中添加s×t(最大)個(gè)子句來獲得。當(dāng)s和t較大時(shí),這會(huì)明顯增加實(shí)例的大小,因此,消解原理不能保證總是有效地解決SAT問題,但是在子句數(shù)量較少的情況下,消解原理是非常有用的,它減少了CNF公式中的變量數(shù)量,不會(huì)顯著增加實(shí)例大小。目前,消解原理仍然是大多數(shù)啟發(fā)式算法的基礎(chǔ),這些算法可以有效地解決一組非常大的SAT實(shí)例。

    1.2 分支搜索

    算法1是基于分支和搜索技術(shù)的SAT算法,F(xiàn)[x=0](或F[x=1])為變量x賦值0(或1)。F[x=1]是通過刪除包含x的所有子句(由于x=1而滿足),并刪除文字(因?yàn)橥ㄟ^賦值x=1=0),獲得的CNF公式。

    ?

    SAT-Alg(F)顯然能夠求解SAT問題:如果F是可滿足的,那么對(duì)F的一個(gè)滿意賦值必須給變量x賦值,這個(gè)值可以是0或1。因此,F(xiàn)0=F[x=0]和F1=F[x=1]中的至少一個(gè)是可滿足的,SAT-Alg(F)步驟4輸出YES。反之,如果F不可滿足,那么F[x=0]和F[x=1]都不可滿足,則SAT-Alg(F)第4步輸出NO。

    將n個(gè)變量上輸入實(shí)例F的SAT-Alg(F)時(shí)間復(fù)雜度記為T(n)。F0和F1最多都有n-1個(gè)變量,有以下遞推關(guān)系,其中,L(F)是輸入實(shí)例F的長(zhǎng)度:

    容易得到T(n)=O(2nL(F)),有如下定理:

    定理2SAT-Alg在O(2nL)時(shí)間內(nèi)解決有n個(gè)變量、長(zhǎng)度為L(zhǎng)的SAT實(shí)例F。

    許多參數(shù)可以用來衡量CNF公式的“大小”,也可以衡量SAT算法的時(shí)間復(fù)雜度。子句Ci的大?。麮i|是Ci中的文字?jǐn)?shù)。CNF公式F=C1∧C2∧…∧Cm,用n(F)表示F中變量的個(gè)數(shù),m(F)表示F中子句個(gè)數(shù),表示F的長(zhǎng)度。一般情況下用n、m和L來表示這些參數(shù)。在一個(gè)明確的CNF實(shí)例中,有如下關(guān)系:n,m≤L,L≤nm,m≤2n。SAT是NP完全的,不期望SAT算法在這些參數(shù)多項(xiàng)式時(shí)間內(nèi)運(yùn)行。無論使用哪種參數(shù)來分析時(shí)間復(fù)雜性,SAT算法在最壞情況下的運(yùn)行時(shí)間都是該參數(shù)的時(shí)間上界。

    一種典型的基于分支搜索技術(shù)的SAT算法A的工作原理如下:在CNF公式F上,如果F足夠簡(jiǎn)單,則算法A直接求解F。否則算法A生成CNF公式的集合{F1,…,F(xiàn)c},其中,c>1,使得F是可滿足的當(dāng)且僅當(dāng){F1,…,F(xiàn)c}中至少一個(gè)公式是可滿足的。然后算法A遞歸地處理公式F1,…,F(xiàn)c。F上的分支和搜索算法A可以描述為一個(gè)搜索樹TA,其中,根用實(shí)例F標(biāo)記,搜索樹TA中用CNF公式F′標(biāo)記的節(jié)點(diǎn)vF′,如果用算法A直接求解F′,則節(jié)點(diǎn)vF′是TA的葉子,對(duì)于公式F′,算法A生成一組CNF公式集合{F′1,…,F(xiàn)′c},并遞歸地處理這些公式,節(jié)點(diǎn)vF′在搜索樹TA中有c個(gè)孩子,分別標(biāo)記為F′1,…,F(xiàn)′c。算法A的執(zhí)行對(duì)應(yīng)從根開始的搜索樹TA的深度搜索遍歷。

    使用一個(gè)參數(shù)q(n、m或L)來度量算法A的時(shí)間復(fù)雜度。將參數(shù)值q的實(shí)例F分支到c個(gè)實(shí)例F1,…,F(xiàn)c,實(shí)例F1,…,F(xiàn)c的參數(shù)值q-d1,…,q-dc分別減小di,di>0。將#(q)記為參數(shù)值q實(shí)例上算法A的搜索樹TA中的葉子數(shù),那么可以得出如下遞推關(guān)系(算法A在q≤1時(shí)不分支):

    為了求解遞推關(guān)系(4),用pA(x)=xq -定義了(4)的分支多項(xiàng)式。設(shè)x0為多項(xiàng)式pA(x)的最大根,可以證明x0≥1(文獻(xiàn)[14])。從關(guān)系式(4)中通過對(duì)q的歸納,容易驗(yàn)證#(q)≤x0q。因此,基于參數(shù)值q的CNF公式的算法A的搜索樹TA中節(jié)點(diǎn)數(shù)邊界為。當(dāng)q≤1時(shí),如果能在多項(xiàng)式時(shí)間內(nèi)求解SAT實(shí)例,而且在多項(xiàng)式時(shí)間內(nèi)由實(shí)例F生成實(shí)例F1,…,F(xiàn)c,則算法A在參數(shù)q實(shí)例上的運(yùn)行時(shí)間為

    討論SAT算法時(shí)間復(fù)雜度的多項(xiàng)式上界因子,對(duì)所選參數(shù)q使用符號(hào)O*(f(q))來表示O(LO(1)f(q)),即O*(f(q))具有隱藏在O*-符號(hào)中L的多項(xiàng)式因子。如前所述,測(cè)量分支的時(shí)間復(fù)雜度并通過參數(shù)q進(jìn)行搜索,得到算法分支多項(xiàng)式的最大根等于x0,則算法運(yùn)行時(shí)間為O*)。

    根據(jù)給定的實(shí)例結(jié)構(gòu),上述討論可以很容易地推廣到使用多個(gè)分支規(guī)則的SAT算法,定理如下:

    定理3讓A是基于參數(shù)q分支和搜索技術(shù)的SAT算法。如果算法A有多個(gè)分支規(guī)則,每個(gè)分支規(guī)則都有一個(gè)相應(yīng)的分支多項(xiàng)式,那么算法A的運(yùn)行時(shí)間是O*(),其中,xmax是所有這些分支多項(xiàng)式的最大根。

    2 基于參數(shù)n的算法

    如定理2所示,SAT-Alg算法在時(shí)間O*(2n)內(nèi)解決SAT問題。通過檢查給定CNF公式的所有2n賦值,SAT問題可以在時(shí)間O*(2n)內(nèi)得到解決。那么是否能比這個(gè)基本的算法做得更好?這是理論計(jì)算機(jī)科學(xué)中長(zhǎng)期存在的開放性問題。文獻(xiàn)[15]中提出了強(qiáng)指數(shù)時(shí)間猜想(Strong Exponential Time Hypothesis,SETH)。

    SAT問題不能在O*(cn)(c<2,c為任意常數(shù))時(shí)間內(nèi)求解。

    在最近的研究中,SETH被廣泛用于著名的計(jì)算優(yōu)化問題開發(fā)計(jì)算下限(如文獻(xiàn)[16]的14.5節(jié))。在SAT算法和復(fù)雜性研究中,任何一種算法如優(yōu)于基本SAT算法都是一個(gè)重大的進(jìn)步,也將是許多其他優(yōu)化問題算法研究的一個(gè)重要進(jìn)展。

    如果使用參數(shù)n來度量算法的復(fù)雜度,那么SETH為更優(yōu)的算法開發(fā)留下了很少的空間。SAT算法的研究熱點(diǎn)已經(jīng)發(fā)展到具有各種限制條件的算法研究上。

    k-可滿足性(k-SAT):給定CNF公式F,其中,子句大小以k為界,確定F是否可滿足。

    當(dāng)k=2,3時(shí),k-SAT問題特別有趣。2-SAT問題在多項(xiàng)式時(shí)間內(nèi)是可解的,屬于P類[17]。3-SAT問題是一個(gè)非常著名的NP完全問題,它在NP完全性理論、SAT算法和計(jì)算復(fù)雜性的研究中起著關(guān)鍵的作用。接下來重點(diǎn)討論3-SAT問題的算法,討論如何將這些算法推廣到一般k-SAT問題。

    為了研究運(yùn)行速度快于O*(2n)的3-SAT算法,筆者根據(jù)Monien等[18]的文章從簡(jiǎn)單分支和搜索算法(算法2)開始,在不喪失一般性的情況下,輸入實(shí)例F是明確的—可以通過多項(xiàng)式時(shí)間的預(yù)處理使F明確。

    ?

    首先,如果F沒有大小為3的子句,如步驟1,那么F是一個(gè)2-SAT實(shí)例,其可滿足性可以在多項(xiàng)式時(shí)間內(nèi)確定[17]。

    3SATms算法中為了滿足公式F,必須滿足子句(l1∨l2∨l3),滿足F的賦值必須將值1賦值給3個(gè)文字l1、l2和l3中的至少一個(gè)。總共有7組對(duì)文字l1、l2和l3的賦值可以滿足子句(l1∨l2∨l3)(僅排除賦值l1=l2=l3=0),F(xiàn)1中的賦值l1=1涵蓋了這7組賦值中的4個(gè)(l1=1,l2和l3是0或1),函數(shù)F01中的賦值l1=0,l2=1涵蓋了7組賦值中的兩個(gè)(l3是0或1),該算法步驟3中的3個(gè)賦值覆蓋了對(duì)文字l1、l2、l3的所有可能賦值,它們可以對(duì)輸入實(shí)例F進(jìn)行可滿足賦值。這證明了該算法的正確性,即當(dāng)且僅當(dāng)F1、F01、F001中至少有一個(gè)可滿足,輸入實(shí)例F才是可滿足的。

    為了分析算法3SATms的復(fù)雜度,設(shè)輸入實(shí)例F是明確的,3個(gè)文字l1、l2和l3來自3個(gè)不同的變量。如果F有n個(gè)變量,那么函數(shù)F1、F01和F001分別最多有n-1、n-2和n-3個(gè)變量。因此,如果將#(n)設(shè)為3SATms在輸入n個(gè)變量情況下搜索樹中的葉數(shù),那么就有如下遞推關(guān)系(F是明確的,如果n≤2,那么F就不能有大小為3的子句):

    遞推關(guān)系(5)的分支多項(xiàng)式為p(x)=xn-xn-1-xn-2-xn-3,其最大根為1.83…,通過上述討論,得到如下定理:

    定理4算法3SATms在時(shí)間O*(1.84n)內(nèi)求解3-SAT問題。

    算法3SATms可以進(jìn)一步改進(jìn),并且推廣到求解一般k的k-SAT問題。對(duì)于整數(shù)k(k≥3),基于此方法的算法在時(shí)間O*()內(nèi)求解k-SAT問題,其中,ck是方程ck=2-1的最大根(ck<2),當(dāng)k增加時(shí),ck接近2。例如,c3=1.619,c4=1.839,c5=1.928,c6=1.966[18]。

    ?

    對(duì)SAT-Alg和3SATms算法的討論表明,基于分支和搜索的SAT算法的效率取決于如何為給定SAT實(shí)例F生成集合C={F1,…,F(xiàn)c},使得F是可滿足的當(dāng)且僅當(dāng)C中至少有一個(gè)實(shí)例是可滿足的。一般來說,集合C中的實(shí)例越少,其參數(shù)值n的減少越多,算法的效率就越高。這一結(jié)論導(dǎo)致了一系列改進(jìn)運(yùn)行時(shí)間的3-SAT算法,O*(1.579n)、O*(1.505n)、O*(1.497n)和O*(1.476n)(文獻(xiàn)[19])。這種方法產(chǎn)生的算法需要檢查SAT實(shí)例詳細(xì)的結(jié)構(gòu),并且需要繁瑣復(fù)雜的逐步分析。

    相比之下,Sch?ning[19]提出了一種隨機(jī)3-SAT算法,該算法從隨機(jī)選擇的初始賦值開始,對(duì)所選賦值應(yīng)用局部搜索。Sch?ning的算法如算法3所示,其中,b是一個(gè)數(shù)字可以用來控制算法正確的概率,“翻轉(zhuǎn)文字li的值”是將文字li的變量值從0改為1,反之亦然。

    Sch?ning算法只有在第1.2.1步得到可滿足賦值時(shí)才輸出YES。如果輸入實(shí)例F是不可滿足的,它將永遠(yuǎn)不會(huì)輸出YES。設(shè)F是有n個(gè)變量的可滿足CNF公式,π*是滿足F的賦值集合。由于步驟1.1隨機(jī)選取了一個(gè)賦值集合π給F,可以期望π與π*在n/2個(gè)變量上一致。因此,對(duì)大約n/2個(gè)變量的賦值π進(jìn)行“修正”,以獲得滿意的賦值集合π*。為了找出π中“不正確”的變量,步驟1.2.2選取π不滿足的子句C=(l1∨l2∨l3)。如果F是可滿足的而π不滿足C,那么C中至少有一個(gè)文字在賦值π下得到一個(gè)錯(cuò)誤的值,因此應(yīng)該“翻轉(zhuǎn)”。為了決定要翻轉(zhuǎn)C中的哪個(gè)文字,步驟1.2.3隨機(jī)選取C中的一個(gè)文字。該算法的步驟1.2.2~1.2.3對(duì)賦值進(jìn)行(隨機(jī))局部搜索,可視為從隨機(jī)選擇的賦值π開始的隨機(jī)進(jìn)行以達(dá)到滿意的賦值集合π*。與以前的算法相比,Sch?ning算法的一個(gè)不同之處是算法最多運(yùn)行3n步(參見步驟1.2)。在3n步中,隨機(jī)進(jìn)行沒有達(dá)到目標(biāo)π*,那么通過步驟1.1用一個(gè)新的隨機(jī)選擇的分配重新開始局部搜索。

    Sch?ning證明了在輸入F是可滿足的情況下,步驟1.1~1.2將在步驟1.2.1得到一個(gè)滿意的賦值,并輸出YES,概率至少為(3/4)n。步驟1.1~1.2在算法中重復(fù)b·(4/3)n次,實(shí)例F在步驟2中輸出NO(即在步驟1.2.1中不輸出YES)的概率有界于

    式中,e=2.718…是自然對(duì)數(shù)的常數(shù),不等式(1-1/p)p≤1/e。由于Sch?ning算法在不可滿足的輸入上從不輸出YES,因此得出結(jié)論,Sch?ning算法在每個(gè)輸入上輸出正確答案的概率至少為1-1/eb,當(dāng)b足夠大時(shí),其值可以無限接近1。就時(shí)間復(fù)雜性而言,步驟1.1~1.2顯然需要時(shí)間O(L)。只要b以n的多項(xiàng)式為界,Sch?ning算法的運(yùn)行時(shí)間為O*(b·(4/3)n)=O*(1.334n)。

    定理53-SAT問題在時(shí)間O*(1.334n)內(nèi)可用隨機(jī)算法求解。

    Sch?ning算法可推廣到一般的k-SAT問題,k-SAT(k≥3)問題給出了運(yùn)行時(shí)間為O*((2-2/k)n)的隨機(jī)算法。

    Dantsin等[20]為k-SAT問題開發(fā)了確定性算法,可以看作是Sch?ning算法的去隨機(jī)化。本文使用覆蓋碼代替隨機(jī)初始賦值。3-SAT確定性算法運(yùn)行時(shí)間在O*(1.481n)之內(nèi),當(dāng)k≥4時(shí),確定性算法運(yùn)行時(shí)間在O*((2-2/(k+1))n)之內(nèi)。

    3-SAT和k-SAT隨機(jī)算法是近年來非常熱門和活躍的研究課題??梢詤⒖嘉墨I(xiàn)[21-24]及相關(guān)文獻(xiàn)了解最新的研究狀況以及內(nèi)容更新。3-SAT算法的運(yùn)行時(shí)間上界O*(cn)已經(jīng)取得了新的研究進(jìn)展,從Sch?ning算法的c=1.334,逐步改進(jìn)為c=1.324,1.323,1.322,1.321,…,1.308,1.307。目前,最佳上界c=1.307是由Hansen等[24]取得的。k>3的k-SAT也有進(jìn)展,研究了這些隨機(jī)算法的去隨機(jī)化。

    3-SAT算法運(yùn)行時(shí)間的指數(shù)上界O*(cn)在不斷減小。不能期望c=1,因?yàn)檫@意味著NP完全問題3-SAT在多項(xiàng)式時(shí)間內(nèi)可解。那么3-SAT指數(shù)時(shí)間算法的c是否可以無限接近1?這與P≠NP并不矛盾。事實(shí)上有一些NP完全問題可以在時(shí)間O*(cn)內(nèi)求解,其中,常數(shù)c>1無限接近1[16]。從實(shí)際計(jì)算的角度來看這個(gè)問題也有意義。例如如果3-SAT問題能在時(shí)間O*(1.000 1n)內(nèi)得到解決,該算法可用于多達(dá)100 000個(gè)變量的3-SAT實(shí)例,這可能滿足許多工程應(yīng)用的需要。在精確算法的研究以及整個(gè)理論計(jì)算機(jī)科學(xué)中,指數(shù)時(shí)間猜想(Exponential Time Hypothesis,ETH)排除了這種可能性[25]。

    3-SAT不能在時(shí)間O*(cn0)內(nèi)求解,其中,常數(shù)c0>1。

    不確定猜想ETH中常數(shù)c0的值接近目前最好的上限1.307,還是可以更?。咳?.000 1?這方面的研究具有意義。

    如果問題在時(shí)間O*(2n/ɑ(n))內(nèi)求解,則可以在次指數(shù)時(shí)間內(nèi)求解,其中,ɑ(n)是n的一個(gè)遞增無界函數(shù)。能夠證明一個(gè)問題在次指數(shù)時(shí)間內(nèi)求解[26],當(dāng)且僅當(dāng)它可以在時(shí)間O*(cn)(c>1)內(nèi)求解。在指數(shù)時(shí)間算法的文獻(xiàn)中,ETH通常被描述為“3-SAT不能在次指數(shù)時(shí)間內(nèi)求解”。

    根據(jù)SETH猜想,對(duì)于任意常數(shù)c<2,SAT問題不能在時(shí)間O*(cn)內(nèi)求解。可以看出,SETH 包含ETH[16]。SETH的猜想比ETH的猜想強(qiáng)(ETH被認(rèn)為更可信)。ETH是近年來證明計(jì)算復(fù)雜性下限的一個(gè)非常流行的猜想,同時(shí),SETH在某種程度上被許多研究者視為一個(gè)可疑的猜想。

    3 基于參數(shù)m的算法

    在本節(jié)中用輸入CNF公式F中子句數(shù)量m來衡量SAT算法時(shí)間復(fù)雜度。m可以大到2n,也可以比n小得多,那么對(duì)有n個(gè)變量的3-SAT實(shí)例的CNF公式F,F(xiàn)中子句數(shù)量m的邊界為由于3-SAT是NP完全的,除非有P=NP,否則不期望3-SAT算法(一般SAT問題的算法)的運(yùn)行時(shí)間是m的多項(xiàng)式。

    對(duì)于常數(shù)c<2的一般SAT問題,用實(shí)例中的變量個(gè)數(shù)n來度量SAT算法的復(fù)雜度,與SETH猜想相比得到一個(gè)O*(cm)時(shí)間算法并不困難。

    設(shè)F是一個(gè)CNF公式,l是F中的一個(gè)文字。如果文字l在F中正好出現(xiàn)ɑ次且其否定ˉl在F中正好出現(xiàn)b次,則稱l為(ɑ,b)-文字;如果文字l在F中至少出現(xiàn)ɑ+次且其否定ˉl在F中正好出現(xiàn)b次,則稱l為(ɑ+,b)-文字。同樣可以定義(ɑ,b+)-文字和(ɑ+,b+)-文字。由于通過多項(xiàng)式時(shí)間的預(yù)處理,總可以使公式F明確,在下面的討論中,公式F中的每個(gè)文字都是(1+,1+)-文字。對(duì)于(ɑ,b)-文字l,CNF公式F可以寫為

    其中,F(xiàn)0是CNF公式,Ci和C′j是既不包含l也不包含的子句。F在文字l上的消解為

    如果公式F有m個(gè)子句,那么消解式DPl(F)最多可以有m+ɑb-(ɑ+b)個(gè)子句,(DPl(F)中的一個(gè)子句Ci∨C′j可能包含變量x和ˉx,那么可以刪除這種子句)。當(dāng)ɑb≤ɑ+b時(shí),對(duì)(ɑ,b)-文字l的消解操作不會(huì)增加子句的數(shù)目。因此,可以直接對(duì)公式F應(yīng)用消解,為了確保運(yùn)算是安全的,還需要CNF公式的長(zhǎng)度是可控的。由n個(gè)變量和m個(gè)子句組成的CNF公式,由于F中每個(gè)子句的長(zhǎng)度不能大于n,公式的長(zhǎng)度L以nm為界。由于消解運(yùn)算減少了變量的數(shù)量,如果它不增加子句的數(shù)量,那么所得公式長(zhǎng)度邊界為(n-1)m≤nm。如果對(duì)有n個(gè)變量、m個(gè)子句、長(zhǎng)度為L(zhǎng)的CNF公式F中ɑb≤ɑ+b的(ɑ,b)-文字應(yīng)用消解運(yùn)算,那么在這個(gè)過程中得到所有公式的長(zhǎng)度邊界為nm≤L2。這確保了消解運(yùn)算可以在公式F長(zhǎng)度內(nèi)多項(xiàng)式時(shí)間完成。

    上述分析表明,當(dāng)公式中存在ɑb≤ɑ+b的(ɑ,b)-文字時(shí),對(duì)文字l進(jìn)行消解運(yùn)算減少了變量的個(gè)數(shù),最多可以進(jìn)行n次。經(jīng)過多項(xiàng)式時(shí)間的預(yù)處理,得到了一個(gè)CNF公式F,其中,每個(gè)文字都是ɑb>ɑ+b的(ɑ,b)-文字,這意味著ɑ,b≥2且ɑ+b≥5。對(duì)于任何這樣的(ɑ,b)-文字l,用F[l=1]和F[l=0]進(jìn)行分支。ɑ,b≥2,ɑ+b≥5,F(xiàn)[l=1]和F[l=0]都必須將子句的數(shù)目m至少減少2,并且其中至少有一個(gè)將子句的數(shù)目m至少減少3。如果將#(m)設(shè)為該算法在m個(gè)子句的CNF公式上的搜索樹中的葉數(shù),有如下遞推關(guān)系(由于ɑ+b≥5,有m≥5):

    求解這個(gè)遞推關(guān)系#(m)≤1.325m,得到下面的定理:

    定理6SAT問題在時(shí)間O*(1.325m)內(nèi)能求解,其中,m是輸入公式中的子句個(gè)數(shù)。

    定理6給出的SAT算法時(shí)間復(fù)雜度的上界O*(1.325m)是通過(2,3)-文字的分支和搜索過程。如果想降低上界,需要更有效地處理(2,3)-文字。對(duì)一個(gè)SAT算法,它的時(shí)間復(fù)雜度不比遞推關(guān)系#(m)≤2#(m-3)給出的算法差,#(m)≤1.260m。因此,在(3+,3+)-文字上進(jìn)行分支。對(duì)ɑb≤ɑ+b的(ɑ,b)-文字,可以在多項(xiàng)式時(shí)間內(nèi)使用無分支的消解進(jìn)行處理。為了達(dá)到定理6中的上界并實(shí)現(xiàn)一個(gè)O*(1.260m)時(shí)間的SAT算法,只需要更有效地處理(2,3)-文字和(2,4)-文字,不是簡(jiǎn)單地在這些文字上進(jìn)行分支。有一種通用技術(shù)可以更有效地處理所有b≥3的(2,b)-文字。將此技術(shù)介紹如下:

    按照給定的順序,考慮重復(fù)應(yīng)用以下步驟的過程:

    過程-M

    M1.使F明確;

    M2.如果F有兩個(gè)子句C′和C″,滿足C′?C″,則從F中刪除C″;

    M3.如果F有一個(gè)ɑb≤ɑ+b的(ɑ,b)-文字l,則對(duì)l應(yīng)用消解原理;

    M4.如果F有一個(gè)(3+,3+)-文字,那么在該文字上進(jìn)行分支。

    過程-M的步驟M2顯然是準(zhǔn)確的:如果賦值滿足子句C′,那么它肯定滿足C″。如上所述過程-M的步驟至少與(3,3)-文字上的分支同樣有用。通常如果過程-M的任何一個(gè)步驟都不能應(yīng)用于F,那么CNF公式F是可簡(jiǎn)化的。

    因此,只需要查看簡(jiǎn)化實(shí)例,它包含(2,3+)-文字和(3+,2)-文字。考慮下面兩種情形:

    情形1F中包含(2,3+)-文字的每個(gè)子句也包含(3+,2)-文字。

    這種情況很容易通過以下推導(dǎo)證明:(A1)簡(jiǎn)化實(shí)例F中的每個(gè)文字都是(2,3+)-文字或(3+,2)-文字;(A2)對(duì)于文字l,l和ˉl不可能同時(shí)都是(2,3+)-文字。因此,可以直接將1賦給所有(3+,2)-文字,然后(S1)如果一個(gè)子句只包含(3+,2)-文字,則該子句可滿足;(S2)如果一個(gè)子句包含一個(gè)(2,3+)-文字,根據(jù)情形的條件該子句還包含(3+,2)-文字,因此該子句也滿足。在第一種情形下,公式F是可滿足的。

    情形2F中有一個(gè)子句只包含(2,3+)-文字。

    可簡(jiǎn)化公式F必須包含(2,3+)-文字。如果情形1的條件不成立,那么F中必須有一個(gè)只包含(2,3+)-文字的子句C。由于F是明確的(過程-M 的步驟M1),|C|≥2。不是C中所有文字都可以包含在F中的另一個(gè)子句中(因?yàn)檫^程-M的步驟M2)。因此,C中必須有兩個(gè)(2,3+)-文字l1和l2,F(xiàn)中必須有另外兩個(gè)子句C1和C2使得l1∈C1,l2∈C2,C,C1和C2兩兩不同。在分支F[l1=0]中,至少F中的3個(gè)子句是可滿足的(因?yàn)閘1是(2,3+)-文字)。另外,在分支F[l1=1]中,子句C和C1是可滿足的,從公式中刪除?,F(xiàn)在l2只出現(xiàn)在C2子句中,變成F[l1=1]中的一個(gè)(1,0+)-文字,可以在l2上進(jìn)行消解運(yùn)算,將F[l1=1]中的子句數(shù)至少減少1。通過分支F[l1=1],然后在l2上進(jìn)行消解,子句的數(shù)量至少減少了3個(gè)。這表明,在F[l1=1]中文字l1上的分支與l2上的消解相結(jié)合,至少與(3,3)-文字上的分支一樣好。算法4對(duì)上述討論進(jìn)行了總結(jié)。

    ?

    上述討論證明了SATm算法的正確性。特別通過對(duì)情形1的討論,在步驟3的條件下公式F必須是可滿足的。對(duì)情形2的討論確保了如果步驟3中的條件不成立,那么算法的步驟4總能找到所需的文字和子句。情形2所討論的步驟5中的實(shí)例F[l1=0]和F1中的每一個(gè)都將子句的數(shù)目m至少減少3。因此,步驟5中的分支至少與(3,3)-文字上的分支一樣好。如果在m個(gè)子句的公式上,讓#(m)為算法SATm的搜索樹中的葉子數(shù),則所有分支規(guī)則至少與#(m)≤2#(m-3)一樣好,得出算法SATm的運(yùn)行時(shí)間為O*(1.260m)。

    定理7SAT問題能在時(shí)間O*(1.260m)內(nèi)求解,其中,m是輸入公式中的子句數(shù)。

    對(duì)SATm算法的討論提出了一個(gè)合理的方法來分析SAT問題的分支和搜索算法:復(fù)雜的分支步驟是算法效率的“瓶頸”(SATm算法是(2,3)-文字分支),總會(huì)導(dǎo)致一些特殊結(jié)構(gòu),能夠在這些結(jié)構(gòu)上應(yīng)用更有效的運(yùn)算(SATm上是公式F[l1=1]的消解)。通過將復(fù)雜的分支步驟與更高效的操作相結(jié)合,從而得到了更簡(jiǎn)易的分支,這將突破“瓶頸”,得出更高效的算法。

    SATm算法的瓶頸是(3,3)-文字的分支。在對(duì)瓶頸分支操作后公式結(jié)構(gòu)更細(xì)致分析的基礎(chǔ)上,得到了一些改進(jìn)的算法。Hirsch[27]開發(fā)了一種運(yùn)行時(shí)間為O*(1.239m)的SAT算法,后來Yamamoto[28]用一種在時(shí)間O*(1.234m)中運(yùn)行的算法對(duì)其進(jìn)行了改進(jìn)。Chu等[29]也報(bào)告了運(yùn)行時(shí)間為O*(1.223m)的SAT算法。

    從目前的研究現(xiàn)狀來看,用m來衡量SAT算法可以比用(3,3)-文字分支算法做得更好。下一個(gè)目標(biāo)是(3,4)-文字。在(3,4)-文字上實(shí)現(xiàn)分支的效率將得到時(shí)間為O*(1.221m)的SAT算法。目前還未有符合這個(gè)上限的SAT算法。

    4 基于參數(shù)L的算法

    下面考慮用輸入實(shí)例長(zhǎng)度L來衡量SAT算法時(shí)間復(fù)雜度。由于SAT問題是NP完全問題,不期望SAT算法的運(yùn)行時(shí)間是L的多項(xiàng)式,要得到由參數(shù)L度量的SAT算法,可以觀察得到L≥m。任何運(yùn)行時(shí)間為O*(cm)的SAT算法也是運(yùn)行時(shí)間為O*(cL)的SAT算法。根據(jù)第3節(jié)討論的結(jié)果,易知SAT問題可以在時(shí)間O*(1.223L)內(nèi)求解。

    分支和搜索SAT算法通常使用參數(shù)L比使用參數(shù)m做得更好。對(duì)于子句C中的文字l,賦值l=1使子句C滿足,從而將參數(shù)m減少1,將參數(shù)L減少|C|。當(dāng)處理參數(shù)L時(shí),用于參數(shù)m的一些方法變得無效。設(shè)公式F是明確的,沒有子句是F中另一個(gè)子句的子集(參見第3節(jié)過程-M的步驟M1和M2),過程-M的步驟M3不再滿足:即使在ɑb<ɑ+b的條件下,在(ɑ,b)-文字上的消解也可能增加公式的長(zhǎng)度,(1,1)-文字上的消解不會(huì)增加公式長(zhǎng)度??紤](1,2)-文字l,公式F可以寫成

    如果|C1|≤3,則不難驗(yàn)證消解不會(huì)增加公式長(zhǎng)度。

    當(dāng)使用L作參數(shù)時(shí),有以下過程:

    過程-L

    L1.F是明確的;

    L2.如果F有兩個(gè)子句C′和C″,滿足C′?C″,則從F中刪除C″;

    L3.如果F有一個(gè)(1,1)-文字l,或者有一個(gè)(1,2)-文字l,其中,l在一個(gè)大小不大于4的子句中,那么對(duì)l進(jìn)行消解;

    L4.選擇文字l和l上的分支。

    步驟L1-L3是多項(xiàng)式時(shí)間的,沒有增加公式長(zhǎng)度。只需要考慮步驟L4,假設(shè)步驟L1-L3都不適用于公式F,讓l是L4中F的文字。

    如果l是(1,2)-文字,那么由于步驟L3中|C1|≥4,并且由L1易知|C′1|,|C′2|≥1。賦值l=1將公式長(zhǎng)度至少減少5+1+1=7(也可以通過此賦值從公式中刪除ˉl),賦值l=0會(huì)將公式長(zhǎng)度至少減少1+2+2=5。這樣分支至少和(5,7)-分支一樣好。

    如果l是(1,3+)-文字,那么F=F0∧(l∨C1)∧(CNF公式F0可能仍然包含文字)。步驟L3不適用于l,|C1|可以小到1。賦值l=1將公式長(zhǎng)度至少減少2+1+1+1=5,賦值l=0將公式長(zhǎng)度至少減少1+2+2+2=7。同樣,至少和(5,7)-分支一樣好。

    如果l是(2+,2+)-文字,那么使用與上述類似的分析可以得出分支至少與(6,6)-分支一樣好。

    (5,7)-分支的分支多項(xiàng)式為xL-xL-5-xL-7,其最大根為x=1.123…,(6,6)-分支的分支多項(xiàng)式為xL-2xL-6,其最大根為x=1.122…。通過定理3,得出定理8。

    定理8SAT問題能在時(shí)間O*(1.124L)內(nèi)求解,其中,L是輸入公式的長(zhǎng)度。

    同樣地,通過更仔細(xì)地檢查復(fù)雜分支操作的公式結(jié)構(gòu),識(shí)別更多不需要分支就可以處理的情況,定理8中給出的上界可以得到改進(jìn)。進(jìn)展包括Gelder[30]提出的運(yùn)行時(shí)間為O*(1.093L)的SAT算法,Hirsch[27]提出的進(jìn)一步改進(jìn)的時(shí)間上界O*(1.074L),以及Wahlstr?m[31]提出的運(yùn)行時(shí)間為O*(1.067L)的新的SAT算法。

    Chen等[32]提出了一種基于度量與控制方法的新算法,這是一種用于分析一般NP難問題的分支與搜索算法新技術(shù)[33]。將CNF公式F中變量x的度數(shù)deg(x)定義為文字x和xˉ在F中出現(xiàn)的次數(shù)。在更大程度的變量上進(jìn)行分支,會(huì)使公式長(zhǎng)度減少得更明顯,處理效率更高。對(duì)一個(gè)變量進(jìn)行分支會(huì)改變其他變量的度數(shù),這可能會(huì)影響實(shí)例的后續(xù)處理。

    可以根據(jù)變量度數(shù)來分配不同權(quán)重的變量。分支搜索算法不僅考慮了公式長(zhǎng)度的減少,而且還考慮了公式中變量度數(shù)的變化。

    形式上wi是分配給度數(shù)為i的變量的權(quán)重(i≥0)。將CNF公式F的加權(quán)長(zhǎng)度L′(F)定義為L(zhǎng)′(F)=其中,ni是F中度數(shù)為i的變量的個(gè)數(shù)。Chen等[32]選擇了以下可變權(quán)重:

    w1=0.32,w2=0.45,w3=0.997,w4=1.897,當(dāng)i≥5時(shí),wi=i/2,0.32·L(F)≤L′(F)≤L(F)。分支和搜索過程嘗試對(duì)導(dǎo)致權(quán)值長(zhǎng)度L′最大減少的變量進(jìn)行分支。

    從正則公式長(zhǎng)度L到加權(quán)公式長(zhǎng)度L′的轉(zhuǎn)換并非沒有意義。多項(xiàng)式時(shí)間預(yù)處理中使用的許多技巧不再有效,它們可能會(huì)增加加權(quán)公式長(zhǎng)度。在運(yùn)算之后檢查結(jié)果公式的加權(quán)長(zhǎng)度也更加復(fù)雜,因?yàn)檫€需要考慮運(yùn)算中涉及的變量度數(shù)。Chen等[32]提出了一種基于加權(quán)公式長(zhǎng)度的分支搜索SAT算法,并且能夠證明該算法運(yùn)行時(shí)間為O*(1.134 5L′)。由于L′≤L/2,因此,給出了一個(gè)運(yùn)行時(shí)間為O*(1.065L)的算法,該算法是目前基于參數(shù)L最快的SAT算法。

    5 結(jié) 論

    本文介紹SAT問題最前沿的精確算法,SAT問題是計(jì)算機(jī)科學(xué)研究的核心,在自然科學(xué)、社會(huì)科學(xué)、醫(yī)學(xué)、工程和商業(yè)等許多領(lǐng)域都有應(yīng)用。本文的方法遵循了算法發(fā)展和計(jì)算復(fù)雜性理論中的主流,基于最壞情況對(duì)算法的性能進(jìn)行了定量分析。在這一研究領(lǐng)域,仍有許多有趣而重要的未解問題。

    第一個(gè)基本的方向是用參數(shù)n、m和L開發(fā)更快的SAT算法。文獻(xiàn)中大多數(shù)已知算法都在很大程度上基于兩種基本技術(shù):消解和分支搜索。消解是一種有效的操作,可以減少變量的數(shù)量,缺點(diǎn)是它可能會(huì)增加公式的長(zhǎng)度。這可能是困難的,而且需要繁瑣的個(gè)案分析以了解公式通過特定變量消解而實(shí)際影響的長(zhǎng)度。事實(shí)上大多數(shù)算法在很多情況下都不應(yīng)用消解,這僅僅是因?yàn)闄z查所有可能的情況來驗(yàn)證解析操作的效率變得過于繁瑣。另一方面分支和搜索是一個(gè)復(fù)雜的操作,這是使算法指數(shù)時(shí)間運(yùn)行的來源,基于最壞情況分析考慮了應(yīng)用分支和搜索最壞可能的公式結(jié)構(gòu),并且在很大程度上忽略了復(fù)雜的分支和搜索操作次數(shù)以及應(yīng)用這些操作后的結(jié)果。開發(fā)SAT算法的經(jīng)驗(yàn)表明分支和搜索操作可能會(huì)產(chǎn)生一些非常受歡迎的公式結(jié)構(gòu),在這些結(jié)構(gòu)上可以應(yīng)用更有效的操作,然而同樣不好的是這些公式結(jié)構(gòu)研究困難,而且這種方法很難避免繁瑣的逐個(gè)檢查。許多逐步改進(jìn)的SAT算法在很大程度上是基于識(shí)別更多公式結(jié)構(gòu)的技術(shù),在這些公式結(jié)構(gòu)上可以應(yīng)用有效的運(yùn)算。研究復(fù)雜的分支和搜索產(chǎn)生的可以更有效處理的公式結(jié)構(gòu)能夠“平衡”分支和搜索操作所導(dǎo)致的高計(jì)算復(fù)雜性。進(jìn)一步的研究?jī)H能取得小的改進(jìn),想要獲得突破還需要新的技術(shù)、算法和分析。

    在第2節(jié)中所討論的Sch?ning的3-SAT問題隨機(jī)算法是為SAT問題開發(fā)的新算法技術(shù),不使用消解也不使用分支和搜索。它從一個(gè)精心選擇的初始賦值開始(在隨機(jī)版本中,它是一個(gè)隨機(jī)選擇的賦值,而在其去隨機(jī)化版本[20]中,賦值是由精心設(shè)計(jì)的“覆蓋碼”構(gòu)成的,覆蓋了一些Hamming半徑的球的所有可能賦值)。在初始分配之后,該算法使用局部搜索來“糾正”初始分配中的錯(cuò)誤位。這種方法還是很自然的,不便之處在于分析該算法的有效性。

    第4節(jié)中描述的度量和控制方法是SAT算法的新分析技術(shù)。該方法對(duì)變量賦予不同的權(quán)值,使得不同變量的分支和搜索操作的計(jì)算開銷得到評(píng)估。通過計(jì)算分支和搜索操作的權(quán)重,用高效的操作“平衡”分支和搜索的高計(jì)算復(fù)雜性,從而使算法總的復(fù)雜度變得更好。

    這些新的算法和分析技術(shù)仍處于非常初級(jí)的階段,前景很好,對(duì)發(fā)現(xiàn)更快的SAT算法具有重要作用。

    對(duì)SAT問題的計(jì)算上限也需要更新、更深入的研究。人們希望有更有力的證據(jù)來支持ETH和SETH假說,假說失敗的可能性并沒有被完全排除。許多與ETH和SETH有關(guān)或類似問題的答案都是未知的。例如如果使用參數(shù)L來測(cè)量SAT算法,SAT算法是否可能在時(shí)間O*(2o(L))內(nèi)運(yùn)行,這是以L表示的次指數(shù)時(shí)間,這并非完全不可能,用L度量的當(dāng)前最佳SAT算法運(yùn)行時(shí)間為O*(1.065L),1.065已經(jīng)非常接近1(SAT問題可以在時(shí)間O*(2o(L))內(nèi)解決當(dāng)且僅當(dāng)它可以在時(shí)間O*(cL)(c>1)內(nèi)解決)。此外,SAT問題的O*(2o(L))時(shí)間算法與SAT問題的NP完備性并不矛盾。有許多已知的NP完全問題(如平面圖上的NP完全圖問題)可以在其輸入長(zhǎng)度上以次時(shí)間指數(shù)求解。

    除了基于最壞情況計(jì)算復(fù)雜性分析的SAT問題精確算法的研究外,SAT問題啟發(fā)式算法的發(fā)展歷史悠久,是計(jì)算機(jī)科學(xué)與工程領(lǐng)域一個(gè)非?;钴S和熱門的研究領(lǐng)域。啟發(fā)式算法以實(shí)例結(jié)構(gòu)中的直覺和實(shí)踐經(jīng)驗(yàn)為基礎(chǔ),試圖有效地解決SAT問題。在某些情況下啟發(fā)式算法可能無法正確地解決問題(如在YES實(shí)例中可能輸出NO),而且可能無法保證某些輸入實(shí)例的計(jì)算效率。一些SAT算法被稱為“啟發(fā)式”算法,即使它們能夠在所有輸入實(shí)例上正確有效地解決SAT問題,但是不能為這些性能提供正式的證明。許多文獻(xiàn)中發(fā)表的啟發(fā)式算法在大多數(shù)SAT實(shí)例上運(yùn)行良好,并在實(shí)際中得到了成功的應(yīng)用。關(guān)于SAT問題啟發(fā)式算法的更多細(xì)節(jié)可參閱文獻(xiàn)[34]。

    這些求解SAT問題的啟發(fā)式算法在文獻(xiàn)中被稱為SAT求解器。在本文中詳細(xì)討論的兩種基本技術(shù)消解和分支與搜索一直是SAT求解器開發(fā)中的主要工具。盡管在最壞的情況下,所有已知的SAT算法的運(yùn)行時(shí)間復(fù)雜度都具有很強(qiáng)的指數(shù)因子,但現(xiàn)代SAT求解器能夠求解涉及數(shù)萬個(gè)變量和數(shù)百萬個(gè)子句的SAT實(shí)例[35]。某種程度上快速SAT求解器的存在與基于最壞情況分析的SAT算法時(shí)間復(fù)雜度的最佳理論上界相矛盾,這表明該研究領(lǐng)域的理論研究與實(shí)際實(shí)現(xiàn)之間存在著巨大的差距。顯然為了更好地求解SAT問題和更準(zhǔn)確地分析SAT算法,還需要新的技術(shù)和更深入的研究。

    热99久久久久精品小说推荐| 国产 一区精品| 亚洲精品乱久久久久久| av国产精品久久久久影院| 亚洲国产色片| 亚洲国产成人一精品久久久| 热99久久久久精品小说推荐| 国产女主播在线喷水免费视频网站| 国产国语露脸激情在线看| 亚洲精品国产色婷婷电影| 国产精品嫩草影院av在线观看| 天天躁夜夜躁狠狠躁躁| 人人妻人人澡人人爽人人夜夜| 日本av免费视频播放| 国产亚洲午夜精品一区二区久久| 好男人视频免费观看在线| 亚洲精品日本国产第一区| 高清在线视频一区二区三区| 日韩熟女老妇一区二区性免费视频| 国产精品 国内视频| 啦啦啦中文免费视频观看日本| 91精品伊人久久大香线蕉| 婷婷色av中文字幕| 久久精品国产亚洲av涩爱| 熟女电影av网| av又黄又爽大尺度在线免费看| 免费黄网站久久成人精品| 亚洲,欧美,日韩| 一级片免费观看大全| 亚洲av成人精品一二三区| 大香蕉97超碰在线| videossex国产| 9色porny在线观看| 免费观看无遮挡的男女| 国产成人精品婷婷| 日韩精品有码人妻一区| www.色视频.com| 午夜激情久久久久久久| 男女国产视频网站| 亚洲av国产av综合av卡| 边亲边吃奶的免费视频| 1024视频免费在线观看| 黄片无遮挡物在线观看| 久久这里只有精品19| 一本—道久久a久久精品蜜桃钙片| 少妇被粗大猛烈的视频| av又黄又爽大尺度在线免费看| 男女国产视频网站| 日韩欧美精品免费久久| av.在线天堂| kizo精华| 国产熟女欧美一区二区| 欧美变态另类bdsm刘玥| 免费看不卡的av| 亚洲一区二区三区欧美精品| 1024视频免费在线观看| 91国产中文字幕| 日本猛色少妇xxxxx猛交久久| 欧美人与性动交α欧美精品济南到 | 狠狠婷婷综合久久久久久88av| 91aial.com中文字幕在线观看| 大片电影免费在线观看免费| 亚洲av免费高清在线观看| 中文字幕av电影在线播放| 美女内射精品一级片tv| 一个人免费看片子| 欧美精品高潮呻吟av久久| 欧美97在线视频| 亚洲熟女精品中文字幕| 大香蕉久久成人网| 久久精品国产自在天天线| 美国免费a级毛片| 丝袜美足系列| 黄片播放在线免费| 黑人欧美特级aaaaaa片| 亚洲成国产人片在线观看| 国产av国产精品国产| av线在线观看网站| 另类精品久久| 久久精品熟女亚洲av麻豆精品| 深夜精品福利| 丰满饥渴人妻一区二区三| 乱码一卡2卡4卡精品| 女的被弄到高潮叫床怎么办| 久久精品夜色国产| 国产乱人偷精品视频| 80岁老熟妇乱子伦牲交| 不卡视频在线观看欧美| 母亲3免费完整高清在线观看 | 亚洲中文av在线| 日韩人妻精品一区2区三区| 桃花免费在线播放| 美女内射精品一级片tv| 黄网站色视频无遮挡免费观看| 午夜免费男女啪啪视频观看| 成人毛片60女人毛片免费| 日日撸夜夜添| 性色avwww在线观看| 在线亚洲精品国产二区图片欧美| 日本黄色日本黄色录像| 免费高清在线观看视频在线观看| av一本久久久久| 这个男人来自地球电影免费观看 | 在线精品无人区一区二区三| 狠狠婷婷综合久久久久久88av| 亚洲情色 制服丝袜| 亚洲av国产av综合av卡| 一级片'在线观看视频| 26uuu在线亚洲综合色| 午夜av观看不卡| 春色校园在线视频观看| av免费在线看不卡| 亚洲av男天堂| 高清欧美精品videossex| 91在线精品国自产拍蜜月| 青青草视频在线视频观看| 国产69精品久久久久777片| 老司机亚洲免费影院| 最后的刺客免费高清国语| 丝瓜视频免费看黄片| 亚洲欧美一区二区三区国产| 国产片特级美女逼逼视频| 亚洲人成网站在线观看播放| 日本欧美视频一区| 亚洲国产毛片av蜜桃av| 亚洲欧美一区二区三区黑人 | 少妇高潮的动态图| 久热这里只有精品99| 女人被躁到高潮嗷嗷叫费观| 在线精品无人区一区二区三| 两个人免费观看高清视频| 国产成人午夜福利电影在线观看| 亚洲天堂av无毛| 美女国产视频在线观看| 国语对白做爰xxxⅹ性视频网站| 日日摸夜夜添夜夜爱| 最近的中文字幕免费完整| 亚洲欧美色中文字幕在线| 亚洲久久久国产精品| 如日韩欧美国产精品一区二区三区| 夫妻性生交免费视频一级片| 精品酒店卫生间| 永久免费av网站大全| 日韩av不卡免费在线播放| 91国产中文字幕| 天堂8中文在线网| 秋霞在线观看毛片| 黄色一级大片看看| 免费av中文字幕在线| 欧美亚洲日本最大视频资源| 亚洲色图综合在线观看| videos熟女内射| 天天躁夜夜躁狠狠久久av| 丰满迷人的少妇在线观看| 男女啪啪激烈高潮av片| 日韩成人av中文字幕在线观看| 九九爱精品视频在线观看| 国产高清国产精品国产三级| 丝瓜视频免费看黄片| 亚洲欧美日韩卡通动漫| 97在线人人人人妻| 精品久久久精品久久久| av在线app专区| 边亲边吃奶的免费视频| 欧美精品高潮呻吟av久久| 久久免费观看电影| av国产久精品久网站免费入址| 国产在视频线精品| 80岁老熟妇乱子伦牲交| 王馨瑶露胸无遮挡在线观看| 国产免费又黄又爽又色| www日本在线高清视频| 天天影视国产精品| 精品一区二区三区视频在线| 亚洲精华国产精华液的使用体验| 美女国产视频在线观看| 免费大片黄手机在线观看| 我的女老师完整版在线观看| 熟女电影av网| 欧美性感艳星| 国产极品天堂在线| 丰满少妇做爰视频| 最新中文字幕久久久久| 欧美日本中文国产一区发布| 美女主播在线视频| 性高湖久久久久久久久免费观看| 国产成人免费观看mmmm| 久久久精品区二区三区| 亚洲国产精品一区三区| 日韩人妻精品一区2区三区| 久久人人97超碰香蕉20202| 国产欧美日韩综合在线一区二区| 久久毛片免费看一区二区三区| 美女福利国产在线| 亚洲av.av天堂| 色5月婷婷丁香| 人人妻人人澡人人看| 老司机亚洲免费影院| 少妇人妻久久综合中文| www日本在线高清视频| 日韩三级伦理在线观看| 精品国产一区二区三区久久久樱花| 另类精品久久| 一区二区三区四区激情视频| 日韩在线高清观看一区二区三区| 午夜老司机福利剧场| 精品福利永久在线观看| 欧美精品av麻豆av| 两性夫妻黄色片 | 在现免费观看毛片| 九色成人免费人妻av| 视频中文字幕在线观看| 国产 一区精品| 精品少妇久久久久久888优播| 大香蕉久久成人网| 久久精品国产综合久久久 | 99热国产这里只有精品6| 男男h啪啪无遮挡| 69精品国产乱码久久久| 高清视频免费观看一区二区| 久热久热在线精品观看| 岛国毛片在线播放| 国产亚洲最大av| 另类精品久久| 天天躁夜夜躁狠狠久久av| 男女高潮啪啪啪动态图| 成年动漫av网址| 欧美另类一区| 热99久久久久精品小说推荐| 国产成人a∨麻豆精品| 久久久a久久爽久久v久久| 99久久精品国产国产毛片| 免费少妇av软件| 青春草亚洲视频在线观看| 插逼视频在线观看| 一级,二级,三级黄色视频| 捣出白浆h1v1| 国产xxxxx性猛交| 国产日韩一区二区三区精品不卡| 青春草视频在线免费观看| 成人黄色视频免费在线看| 成年av动漫网址| 欧美丝袜亚洲另类| 亚洲三级黄色毛片| 欧美激情极品国产一区二区三区 | 哪个播放器可以免费观看大片| 少妇的丰满在线观看| 午夜福利视频精品| 久久人人97超碰香蕉20202| 亚洲国产日韩一区二区| 亚洲国产av影院在线观看| 咕卡用的链子| 国产精品麻豆人妻色哟哟久久| 亚洲激情五月婷婷啪啪| 亚洲av.av天堂| 美女国产高潮福利片在线看| 草草在线视频免费看| 免费观看av网站的网址| 日韩av在线免费看完整版不卡| 老熟女久久久| 国产片内射在线| 黄色一级大片看看| 国产精品熟女久久久久浪| 最黄视频免费看| 一本大道久久a久久精品| 免费在线观看完整版高清| 少妇猛男粗大的猛烈进出视频| 久久综合国产亚洲精品| 婷婷色av中文字幕| 欧美精品人与动牲交sv欧美| 亚洲欧美成人综合另类久久久| 久久久精品94久久精品| 日韩欧美一区视频在线观看| 赤兔流量卡办理| 男女边摸边吃奶| av卡一久久| 少妇被粗大的猛进出69影院 | 最近2019中文字幕mv第一页| 午夜福利,免费看| 最近最新中文字幕免费大全7| 一级黄片播放器| 香蕉丝袜av| 丰满乱子伦码专区| 国产成人精品一,二区| 纵有疾风起免费观看全集完整版| 国产精品秋霞免费鲁丝片| 超碰97精品在线观看| 少妇被粗大猛烈的视频| 香蕉精品网在线| 男女无遮挡免费网站观看| 久久人人爽人人爽人人片va| 三上悠亚av全集在线观看| 亚洲欧洲日产国产| 午夜福利影视在线免费观看| 成年人免费黄色播放视频| 久久韩国三级中文字幕| 99视频精品全部免费 在线| 高清不卡的av网站| 精品人妻偷拍中文字幕| 少妇人妻 视频| 老熟女久久久| av.在线天堂| 热re99久久国产66热| 另类亚洲欧美激情| 国产精品一国产av| 精品久久久精品久久久| 人成视频在线观看免费观看| 国产亚洲欧美精品永久| 蜜桃国产av成人99| 久久精品久久久久久噜噜老黄| 久久久国产欧美日韩av| 寂寞人妻少妇视频99o| 色网站视频免费| 亚洲美女黄色视频免费看| 欧美xxxx性猛交bbbb| 中文天堂在线官网| 中文字幕最新亚洲高清| 精品一区二区三区视频在线| 免费黄频网站在线观看国产| 一级a做视频免费观看| 色婷婷久久久亚洲欧美| 最近的中文字幕免费完整| 曰老女人黄片| 亚洲av欧美aⅴ国产| 国产一区二区在线观看日韩| 国产日韩欧美视频二区| 亚洲av欧美aⅴ国产| 中文字幕精品免费在线观看视频 | 国产精品人妻久久久久久| 国产精品不卡视频一区二区| 男的添女的下面高潮视频| 91在线精品国自产拍蜜月| 国产精品久久久久久精品古装| 国产又色又爽无遮挡免| 婷婷色综合大香蕉| 一二三四中文在线观看免费高清| 男女午夜视频在线观看 | www.熟女人妻精品国产 | 成人黄色视频免费在线看| 我要看黄色一级片免费的| 少妇的逼水好多| 亚洲国产av新网站| 国产日韩欧美视频二区| 99精国产麻豆久久婷婷| 国产精品一区二区在线不卡| 天天躁夜夜躁狠狠躁躁| 午夜日本视频在线| 18禁在线无遮挡免费观看视频| 成人午夜精彩视频在线观看| 波多野结衣一区麻豆| 最后的刺客免费高清国语| 欧美激情国产日韩精品一区| 少妇人妻久久综合中文| 97精品久久久久久久久久精品| 欧美激情 高清一区二区三区| 桃花免费在线播放| 国产乱来视频区| 香蕉丝袜av| 国产精品国产三级专区第一集| 国产有黄有色有爽视频| 久久久精品94久久精品| 精品99又大又爽又粗少妇毛片| 日韩一本色道免费dvd| 久久国内精品自在自线图片| 中国美白少妇内射xxxbb| 国产一区二区在线观看日韩| 久久久久精品性色| 国产精品久久久久久久久免| 亚洲性久久影院| 超色免费av| 久久午夜福利片| 亚洲,欧美精品.| 亚洲av男天堂| 黄网站色视频无遮挡免费观看| 在线天堂中文资源库| av一本久久久久| 国产日韩欧美亚洲二区| 欧美亚洲 丝袜 人妻 在线| 亚洲精品国产av成人精品| 精品少妇黑人巨大在线播放| 777米奇影视久久| 亚洲精品中文字幕在线视频| 全区人妻精品视频| 色视频在线一区二区三区| 国产免费又黄又爽又色| 免费播放大片免费观看视频在线观看| 侵犯人妻中文字幕一二三四区| 国产探花极品一区二区| 一级a做视频免费观看| 高清在线视频一区二区三区| 超色免费av| 亚洲综合精品二区| 国产白丝娇喘喷水9色精品| 99久久综合免费| 九草在线视频观看| 日韩欧美精品免费久久| 国产福利在线免费观看视频| 欧美精品亚洲一区二区| 国产极品天堂在线| 亚洲成人一二三区av| 超色免费av| 秋霞在线观看毛片| 日韩av在线免费看完整版不卡| 久久人人爽人人片av| freevideosex欧美| 欧美 日韩 精品 国产| 亚洲欧美成人综合另类久久久| 精品亚洲乱码少妇综合久久| 在线观看三级黄色| 久久久精品免费免费高清| 欧美少妇被猛烈插入视频| 久久精品aⅴ一区二区三区四区 | 亚洲国产欧美在线一区| 久久毛片免费看一区二区三区| 欧美精品av麻豆av| 人妻一区二区av| 国产成人av激情在线播放| 捣出白浆h1v1| 精品久久久精品久久久| 欧美精品人与动牲交sv欧美| 欧美3d第一页| 日韩精品有码人妻一区| 国产亚洲精品第一综合不卡 | 欧美激情国产日韩精品一区| 99久久综合免费| 夫妻性生交免费视频一级片| 亚洲av免费高清在线观看| 高清黄色对白视频在线免费看| a级毛片黄视频| 日韩av不卡免费在线播放| 丰满饥渴人妻一区二区三| 欧美日韩视频精品一区| av在线app专区| 久久久国产一区二区| 久久精品aⅴ一区二区三区四区 | 春色校园在线视频观看| 边亲边吃奶的免费视频| 啦啦啦啦在线视频资源| 又大又黄又爽视频免费| 日日啪夜夜爽| 我的女老师完整版在线观看| 精品一品国产午夜福利视频| 欧美少妇被猛烈插入视频| 中国美白少妇内射xxxbb| 中文字幕av电影在线播放| 99视频精品全部免费 在线| 国产成人精品久久久久久| 人妻人人澡人人爽人人| 久久久亚洲精品成人影院| 另类精品久久| 精品一区二区三区四区五区乱码 | 成人国产麻豆网| 久久久a久久爽久久v久久| 又粗又硬又长又爽又黄的视频| 18+在线观看网站| 黄色怎么调成土黄色| 欧美人与性动交α欧美软件 | 婷婷色综合www| 欧美最新免费一区二区三区| 26uuu在线亚洲综合色| 最新中文字幕久久久久| 一本大道久久a久久精品| 久久久欧美国产精品| √禁漫天堂资源中文www| 日本欧美视频一区| 大码成人一级视频| 免费人成在线观看视频色| 国产一区亚洲一区在线观看| 国产乱人偷精品视频| 国产熟女午夜一区二区三区| 国产精品久久久久久精品古装| 这个男人来自地球电影免费观看 | 18禁国产床啪视频网站| 少妇被粗大猛烈的视频| 妹子高潮喷水视频| 汤姆久久久久久久影院中文字幕| 国产在视频线精品| 亚洲成色77777| 久久97久久精品| 九草在线视频观看| 亚洲色图综合在线观看| 国产毛片在线视频| 啦啦啦视频在线资源免费观看| 精品少妇黑人巨大在线播放| 综合色丁香网| 久久精品国产亚洲av涩爱| 亚洲欧洲日产国产| 免费人成在线观看视频色| 亚洲精品乱久久久久久| 精品亚洲成国产av| 中国三级夫妇交换| 亚洲人与动物交配视频| 国产免费一级a男人的天堂| a级毛片黄视频| 久久久久久久久久久久大奶| 亚洲国产色片| 久久久久久久久久久免费av| 91精品伊人久久大香线蕉| 成年人免费黄色播放视频| 免费观看无遮挡的男女| 精品人妻熟女毛片av久久网站| 十八禁网站网址无遮挡| 一级毛片 在线播放| 国产精品秋霞免费鲁丝片| 精品99又大又爽又粗少妇毛片| 尾随美女入室| 国产综合精华液| 精品亚洲成a人片在线观看| 亚洲激情五月婷婷啪啪| 性色av一级| 69精品国产乱码久久久| 纯流量卡能插随身wifi吗| 国产极品粉嫩免费观看在线| 九九爱精品视频在线观看| 日日撸夜夜添| a级毛片黄视频| 熟女电影av网| 高清欧美精品videossex| 国产精品一区二区在线观看99| 少妇猛男粗大的猛烈进出视频| 久久女婷五月综合色啪小说| 国产成人免费无遮挡视频| 美女脱内裤让男人舔精品视频| 中文乱码字字幕精品一区二区三区| 久久久久久久久久久久大奶| 春色校园在线视频观看| 免费女性裸体啪啪无遮挡网站| 咕卡用的链子| 免费女性裸体啪啪无遮挡网站| 美女内射精品一级片tv| 精品酒店卫生间| 国产av国产精品国产| 亚洲,欧美,日韩| av在线播放精品| 国产毛片在线视频| 丰满迷人的少妇在线观看| 国产成人一区二区在线| 天堂8中文在线网| 成年动漫av网址| 国产精品女同一区二区软件| 老女人水多毛片| 色吧在线观看| 91成人精品电影| 国产精品三级大全| 人妻一区二区av| 成人国语在线视频| 日韩精品免费视频一区二区三区 | 日韩欧美精品免费久久| 亚洲国产精品一区二区三区在线| a级毛片黄视频| 国产极品天堂在线| 女人被躁到高潮嗷嗷叫费观| 少妇人妻久久综合中文| 日本欧美视频一区| 伦理电影免费视频| 人妻一区二区av| 国产成人a∨麻豆精品| 大陆偷拍与自拍| 美女国产高潮福利片在线看| 欧美亚洲 丝袜 人妻 在线| 欧美成人精品欧美一级黄| www.色视频.com| 欧美97在线视频| 国产片内射在线| 亚洲国产日韩一区二区| 成人无遮挡网站| 肉色欧美久久久久久久蜜桃| 亚洲欧美一区二区三区国产| 在线观看免费日韩欧美大片| 晚上一个人看的免费电影| 少妇人妻久久综合中文| 男人添女人高潮全过程视频| 黑人猛操日本美女一级片| 精品少妇黑人巨大在线播放| 王馨瑶露胸无遮挡在线观看| 在线看a的网站| 欧美xxxx性猛交bbbb| 欧美日韩视频精品一区| 亚洲伊人色综图| 午夜激情久久久久久久| 考比视频在线观看| 综合色丁香网| 久久国产精品大桥未久av| 国产精品熟女久久久久浪| 22中文网久久字幕| 欧美成人精品欧美一级黄| 一本色道久久久久久精品综合| 一区二区日韩欧美中文字幕 | 韩国av在线不卡| 欧美人与性动交α欧美精品济南到 | 香蕉丝袜av| 少妇人妻精品综合一区二区| 日本av免费视频播放| 老熟女久久久| 欧美人与性动交α欧美精品济南到 | 久久久久精品久久久久真实原创| tube8黄色片| 多毛熟女@视频| 亚洲,欧美精品.| 一级毛片电影观看| 免费少妇av软件| 国产视频首页在线观看| 成年人免费黄色播放视频| 欧美国产精品va在线观看不卡| 丝袜人妻中文字幕| 丝袜在线中文字幕| www.色视频.com| 少妇被粗大的猛进出69影院 | 一个人免费看片子| 国产激情久久老熟女| 日本黄色日本黄色录像| 午夜福利影视在线免费观看| 欧美日韩成人在线一区二区| 内地一区二区视频在线| 国产激情久久老熟女|