0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

求解布爾SAT的方法

玻色量子 ? 來源:玻色量子 ? 2023-06-27 09:56 ? 次閱讀

摘要:布爾可滿足性問題(Boolean Satisfiability Problem,簡(jiǎn)稱SAT問題)是邏輯學(xué)和計(jì)算機(jī)科學(xué)中的一個(gè)問題,它的目的是確定是否存在一種解釋,使給定的布爾公式成立。換句話說,它詢問給定布爾公式的變量是否可以被一致地替換為真值或假值,使公式求值為真。如果是這樣,那么這個(gè)公式就是可滿足的。另一方面,如果不存在這樣的賦值,那么該公式所表示的函數(shù)對(duì)于所有可能的變量賦值都為假,該公式不可滿足1。

追根溯源,SAT是第一個(gè)已知的NP-Complete問題,多倫多大學(xué)的Stephen Cook在1971年,國(guó)家科學(xué)院的Leonid Levin在1973年均獨(dú)立證明了這一問題。在此之前,NP-Complete問題的概念甚至不存在。另外,證明顯示復(fù)雜性類NP中的每個(gè)決策問題都可以簡(jiǎn)化為CNF公式的SAT問題,有時(shí)也稱為“CNFSAT”。

值得注意的是,SAT問題是計(jì)算機(jī)科學(xué)領(lǐng)域最基本的問題之一,有著重要的理論意義和實(shí)際應(yīng)用。在理論研究中,SAT問題是一個(gè)經(jīng)典的判定問題,同樣是第一個(gè)被證明為NP-Complete的問題。這個(gè)決策問題在包括理論計(jì)算機(jī)科學(xué)、復(fù)雜性理論、算法、密碼學(xué)和人工智能等計(jì)算機(jī)科學(xué)的各個(gè)領(lǐng)域都至關(guān)重要。

在現(xiàn)實(shí)場(chǎng)景應(yīng)用中,SAT是很多工業(yè)場(chǎng)景里面的核心工具。尤其在一些包括芯片測(cè)試、電路等價(jià)性驗(yàn)證、電路模型檢測(cè)、智慧園區(qū)及無線設(shè)備的布局、操作系統(tǒng)、航空等對(duì)精確度要求很高的核心領(lǐng)域,都需要SAT求解器的重磅參與。例如,芯片SAT分析是一種系統(tǒng)級(jí)應(yīng)用測(cè)試分析方法,通過對(duì)芯片的性能和可靠性進(jìn)行全面的測(cè)試和分析,以評(píng)估芯片在實(shí)際應(yīng)用中的表現(xiàn)。 另外,在騰訊地圖中的語(yǔ)音序列調(diào)度中,采用SAT算法中的約束加權(quán)方法,播報(bào)失敗率從6.20%可降至2.85%,降幅54%,同時(shí)把地圖路網(wǎng)更新的內(nèi)存消耗量降低一半,更新周期縮短一半。

5月,北京玻色量子科技有限公司(以下簡(jiǎn)稱“玻色量子”)在新品發(fā)布會(huì)上推出的100量子比特相干光量子計(jì)算機(jī)真機(jī)——“天工量子大腦”,旨在快速、且高效地求解NP難的組合優(yōu)化問題,尤其是Ising問題。而布爾可滿足性(SAT)和最大可滿足性(Max-SAT)是NP-Complete問題和NP難問題的一類,兩者同等重要且更切合實(shí)際的組合優(yōu)化問題。

目前,求解布爾SAT的方法有很多,比如量子退火和經(jīng)典的隨機(jī)局部搜索(SLS)求解器。然而,它們都需要巨量步驟來解決困難的SAT問題,這將耗費(fèi)大量的時(shí)間和精力。隨著量子計(jì)算技術(shù)的發(fā)展,一個(gè)SAT問題可以轉(zhuǎn)化為一個(gè)Ising/QUBO問題,從而可由玻色量子的“天工量子大腦”快速高效地求出全局最優(yōu)解。

那么,為了更清楚的理解SAT問題,下面首先介紹一些基本術(shù)語(yǔ)。

基本定義和術(shù)語(yǔ)

SAT問題,簡(jiǎn)單地說就是確定是否存在滿足給定布爾公式解釋的問題,它需要判斷給定布爾公式的變量是否可以一致地替換為值TRUE或FALSE,以使公式的計(jì)算結(jié)果為TRUE。如果是這種情況,則公式稱為“滿足”。否則,若不存在這樣的賦值,則公式表示的函數(shù)對(duì)于所有可能的變量賦值都是FALSE,并且公式是不滿足的。例如,公式“a AND NOT b”是可以滿足的,因?yàn)榭梢哉业街礱 = TRUE和b = FALSE,這使得(aANDNOT b)= TRUE。相反,“a AND NOT a”是無法被滿足的,因?yàn)檎也坏竭@樣的a的值。

命題邏輯公式,也稱為布爾表達(dá)式,由變量,運(yùn)算符AND(連接,也用∧表示)、OR(分離,∨)、NOT(否定,?)和括號(hào)構(gòu)成。如果通過為其變量分配適當(dāng)?shù)倪壿嬛担碩RUE,F(xiàn)ALSE)可以使公式為TRUE,則稱該公式是可滿足的。給定公式,布爾可滿足性問題(SAT)是檢查它是否可滿足。

布爾可滿足性問題有幾種特殊情況,其中公式需要具有特定結(jié)構(gòu)。文字是一個(gè)變量,稱為正文字,或變量的否定,稱為負(fù)文字。子句是文字(或單個(gè)文字)的分離。如果一個(gè)子句最多包含一個(gè)正文字,則該子句稱為Horn子句。如果公式是條款(或單個(gè)子句)的連接,則公式為合取范式(CNF)。

例如,x1是正文字,?x2是負(fù)文字,x1∨?x2是子句,(x1∨?x2)∧(?x1∨x2∨x3)∧x1是聯(lián)合范式的公式;它的第一和第三個(gè)條款是Horn條款,但它的第二個(gè)條款不是。

最大可滿足性問題(Max-SAT)是確定給定布爾公式(以合取范式表示)中最多有多少個(gè)子句可以通過對(duì)公式變量賦真值來使其成立。它是布爾可滿足性問題的推廣,后者詢問是否存在一種真值賦值使所有子句都成立。

問題描述

2-SAT和3-SAT問題是SAT問題的兩種形式,它們的區(qū)別在于每個(gè)子句中包含的變量數(shù)量不同。

具體來說,2-SAT問題中每個(gè)子句最多包含兩個(gè)變量,形如(a∨b)、(?a∨c)等,其中∨表示邏輯或,?表示邏輯非。而3-SAT問題中每個(gè)子句最多包含三個(gè)變量,形如(a∨?b∨c)、(?a∨b∨?c)等。

因?yàn)?-SAT問題中每個(gè)子句最多包含兩個(gè)變量,所以可以使用一些特殊的算法(如Kosaraju算法和Tarjan算法)在多項(xiàng)式時(shí)間內(nèi)求解。而3-SAT問題則是NP-Complete問題,目前還沒有已知的多項(xiàng)式時(shí)間算法可以解決。由于二元變量存在(0/1或者-1/+1)表達(dá)形式的區(qū)別,常見模型有兩種建模思路,在這里分別進(jìn)行說明。

建模思路一

我們以Max 2-SAT問題進(jìn)行討論,將文字表示為0/1的變量,建立QUBO模型。每個(gè)子句由兩個(gè)文字組成,如果其中一個(gè)或兩個(gè)文字都為真,則滿足一個(gè)子句。對(duì)于這個(gè)問題有三種可能的子句類型,每一種都有一個(gè)傳統(tǒng)的約束,如果子句是真的,則必須滿足。

下面是三種常見的轉(zhuǎn)換情況:

① 無負(fù)文字

例如:(xi∨xj)

傳統(tǒng)約束:(xi+xj)≥1

QUBO懲罰項(xiàng):(1-xi-xj+xixj)

② 一個(gè)負(fù)文字

例如:(xi∨?xj)

傳統(tǒng)約束:xi+?xj≥1

QUBO懲罰項(xiàng):(xj-xixj)

③兩個(gè)負(fù)文字

例如:(?xi∨?xj)

傳統(tǒng)約束:?xi+?xj≥1

QUBO懲罰項(xiàng):(xixj)

注:由于變量xj為1/0,所以?xj=1-xj

對(duì)于每個(gè)子句類型,如果滿足傳統(tǒng)約束,則對(duì)應(yīng)的懲罰等于0;如果不滿足傳統(tǒng)約束,則二次懲罰等于1。給定這種一一對(duì)應(yīng)的關(guān)系,我們可以通過等價(jià)地最小化不滿足的子句數(shù)量來逼近子句數(shù)量最大化問題。通過這種形式我們可以構(gòu)建一個(gè)QUBO模型。

所以,對(duì)于給定的Max 2-SAT算例,我們可以添加與問題子句相關(guān)的二次懲罰項(xiàng),得到一個(gè)我們想要最小化的復(fù)合懲罰函數(shù)。由于懲罰項(xiàng)均為二次型,因此該懲罰函數(shù)采用QUBO模型形式,min y=xTQx。如果在最小化QUBO模型時(shí)等于零,這意味著我們有一個(gè)滿足所有子句的解;如果等于5,這意味著我們有一個(gè)滿足除5以外的所有子句的解。

我們用以下4個(gè)變量和12個(gè)子句的例子來說明這個(gè)算例的建模和求解過程。

f29efa98-1486-11ee-962d-dac502259ad0.png

f2b1c196-1486-11ee-962d-dac502259ad0.png

將懲罰項(xiàng)加在一起給出了我們的QUBO模型表達(dá)式:

min y=3+x1-2x4-x2x3+x2x4+2x3x4 (1)

或QUBO模型的矩陣形式:

miny=3+xTQx (2)

則Q矩陣表達(dá)為

f2f6e0c8-1486-11ee-962d-dac502259ad0.png

求解這個(gè)QUBO模型可以得到y(tǒng)=3-2=1,其中x1=x2=x3=0,x4=1。意思是除一個(gè)子句外的所有子句都滿足。

注:上述QUBO方法已在Kochenberger等人的研究中得到成功應(yīng)用[2],研究解決了含有數(shù)百個(gè)變量和數(shù)千個(gè)子句的Max 2-SAT問題。這種方法求解Max 2-SAT問題的一個(gè)有趣的特點(diǎn)是,得到的待求解QUBO模型的大小與問題中的子句數(shù)無關(guān),僅由變量的個(gè)數(shù)決定。因此,一個(gè)含有200個(gè)變量和30000個(gè)子句的Max2-SAT問題可以建模為一個(gè)只含有200個(gè)變量的QUBO模型并求解。

建模思路二

為了更好地理解這個(gè)問題,我們將文字表示為-1/1的變量,繼續(xù)討論一個(gè)3-Sat問題。

f3064b8a-1486-11ee-962d-dac502259ad0.png

我們討論一個(gè)3-Sat子句:

x1∨x2∨x3

該子句通過引入-1/1輔助變量可以映射成二次函數(shù):

f314fa7c-1486-11ee-962d-dac502259ad0.png

在x0,x1,x2的任意取值中,都有一個(gè)使得K最小的值a。如果我們假設(shè)a總是被設(shè)置為這個(gè)最優(yōu)值,那么除了x0=x1=x2=-1時(shí)能量為+1外,其他取值的最低能量都是-7。下表總結(jié)了有關(guān)變量的取值,其中加粗的數(shù)字是給定x0,x1,x2變量的最低可能能量。

f3229b00-1486-11ee-962d-dac502259ad0.png

使用這種方法,如果xi在子句中被否定,我們可以通過將xi替換為-xi來編碼任意3-Sat子句?,F(xiàn)在,如果我們對(duì)求和這些每個(gè)子句對(duì)應(yīng)的二次函數(shù),我們可以得到一個(gè)關(guān)于Nxi自旋變量和Maj輔助自旋的二次函數(shù),從而得到一個(gè)大小為N+M的Ising/QUBO問題。如果該問題是可滿足的,那么最小的Ising能量將是-7M,如果該問題是不可滿足的問題,那么最小的Ising能量為-7Msat,其中Msat是可滿足子句的個(gè)數(shù)。

問題拓展

MAX-SAT是最大可滿足性問題,是SAT問題的推廣。它要求最大數(shù)量的條款,任何轉(zhuǎn)讓都可以滿足。它具有有效的近似算法,但是NP時(shí)間難以精確解決。

在量子計(jì)算領(lǐng)域,2023年6月,NTT最新的研究提出了一種相干SAT求解器(CSS)的新技術(shù)。使用圖形處理器(GPU)實(shí)現(xiàn)的Cyber-CSS與現(xiàn)有的SLS求解器(如probSAT)相比有一定的競(jìng)爭(zhēng)力。未來通過量子計(jì)算實(shí)現(xiàn)SAT問題的快速求解將成為一種新的有效方法。

如今,玻色量子已基于自研的相干光量子計(jì)算機(jī)真機(jī)——“天工量子大腦”在SAT問題求解上具有顯著的算力優(yōu)勢(shì),代表了其在NP-Complete問題上的實(shí)用性,以進(jìn)一步拓展更多可實(shí)用化量子計(jì)算應(yīng)用場(chǎng)景。

玻色量子還將啟動(dòng)“燎原計(jì)劃”開發(fā)者平臺(tái),并持續(xù)對(duì)外開放“天工量子大腦”的真機(jī)測(cè)試,熱忱歡迎更多不同領(lǐng)域的研究伙伴前來了解相干量子計(jì)算的原理和能力,在此基礎(chǔ)上展開共同研發(fā),用量子計(jì)算去解決更多真實(shí)場(chǎng)景中的問題,讓量子計(jì)算的超強(qiáng)算力能真正服務(wù)于各行各業(yè),滿足未來時(shí)代對(duì)于計(jì)算的需求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417151
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7174

    瀏覽量

    87153
  • 建模
    +關(guān)注

    關(guān)注

    1

    文章

    296

    瀏覽量

    60640

原文標(biāo)題:玻色量子“揭秘”之可滿足性問題(SAT)與QUBO建模

文章出處:【微信號(hào):玻色量子,微信公眾號(hào):玻色量子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種用于隨機(jī)約束仿真的SAT增強(qiáng)的字級(jí)求解

    上取決于產(chǎn)生合法激勵(lì)的約束求解器的性能。 ? 本文我們首先討論了字級(jí)求解器在求解包含特定操作符(如IF-THEN-ELSE、IMPLIES和布爾OR)的約束時(shí)遇到的挑戰(zhàn)。為了克服這一挑
    發(fā)表于 06-06 10:28 ?548次閱讀
    一種用于隨機(jī)約束仿真的<b class='flag-5'>SAT</b>增強(qiáng)的字級(jí)<b class='flag-5'>求解</b>器

    GPS RTK轉(zhuǎn)換參數(shù)求解方法

    GPS RTK轉(zhuǎn)換參數(shù)求解方法摘要:GPS RTK 技術(shù)是目前測(cè)量中具有定位快速, 精度高的一種先進(jìn)的測(cè)量方法. 主要介紹了RTK 在應(yīng)用過程中求解轉(zhuǎn)換參數(shù)的
    發(fā)表于 04-26 11:33 ?71次下載

    采用布爾處理的鍵盤矩陣解讀方法分析

    采用布爾處理的鍵盤矩陣解讀方法分析 運(yùn)用布爾處理技術(shù)對(duì)鍵盤矩陣進(jìn)行掃描解讀: 運(yùn)用“位”操作方式將整個(gè)鍵盤矩陣的掃描解讀
    發(fā)表于 03-29 15:13 ?969次閱讀
    采用<b class='flag-5'>布爾</b>處理的鍵盤矩陣解讀<b class='flag-5'>方法</b>分析

    布爾代數(shù),布爾代數(shù)是什么意思

    布爾代數(shù),布爾代數(shù)是什么意思 布爾代數(shù)最初是作為對(duì)邏輯思維法則的研究出現(xiàn)的。英國(guó)哲學(xué)家George Boole于1847年的論文“邏輯之?dāng)?shù)學(xué)分析”及“思維法則之研究”中引
    發(fā)表于 03-08 11:04 ?8281次閱讀

    基于硬件模擬的SAT求解框架

    基于硬件模擬的SAT求解框架_何安平
    發(fā)表于 01-07 20:49 ?0次下載

    布爾矩陣乘的分布式異構(gòu)并行優(yōu)化

    布爾多項(xiàng)式求解是當(dāng)今密碼代數(shù)分析中的關(guān)鍵步驟,F(xiàn)4算法是布爾多項(xiàng)式求解的高效算法。分析了Lachartre為F4矩陣專門設(shè)計(jì)的高斯消去算法,針對(duì)其中
    發(fā)表于 11-21 15:32 ?3次下載

    基于硬件可編程邏輯的SAT求解算法研究與進(jìn)展

    布爾可滿足性SAT問題作為第一個(gè)被證明的NP完全問題,是計(jì)算機(jī)理論與應(yīng)用的核心問題,有著重要的應(yīng)用價(jià)值,因此近年來涌現(xiàn)了各種各樣SAT求解器。但是,
    發(fā)表于 12-01 17:05 ?0次下載
    基于硬件可編程邏輯的<b class='flag-5'>SAT</b><b class='flag-5'>求解</b>算法研究與進(jìn)展

    基于SMT求解器的程序路徑驗(yàn)證方法

    針對(duì)程序中因存在路徑條數(shù)過多或復(fù)雜循環(huán)路徑而導(dǎo)致路徑驗(yàn)證時(shí)的路徑搜索空間過大,直接影響驗(yàn)證的效率和準(zhǔn)確率的問題,提出一種基于可滿足性模理論(SMT)求解器的程序路徑驗(yàn)證方法。首先利用決策樹的方法
    發(fā)表于 12-11 13:49 ?1次下載
    基于SMT<b class='flag-5'>求解</b>器的程序路徑驗(yàn)證<b class='flag-5'>方法</b>

    聚類和劃分的SAT分治判定

    滿足性來判定原公式的可滿足性,相當(dāng)于用分治法將復(fù)雜問題分解為多個(gè)子問題來求解.這種分治判定方法一方面降低了原公式的可滿足性判定復(fù)雜度;另一方面,由于子句組的判定可以并行,因而判定速度能夠得到進(jìn)一步的提高.對(duì)于不能直接產(chǎn)生布爾子句
    發(fā)表于 01-24 17:41 ?0次下載

    瞬態(tài)擴(kuò)散方程求解方法研究

    中子時(shí)空動(dòng)力學(xué)模型是一個(gè)剛性模型。求解中子時(shí)空動(dòng)力學(xué)模型時(shí),常常將其簡(jiǎn)化為點(diǎn)堆模型?;邳c(diǎn)堆模型提出了如下求解方法:吉爾算法、剛性限制方法(SCM)、線性多步法、四階隱式龍格庫(kù)塔法等。
    發(fā)表于 03-12 14:54 ?0次下載

    布爾代數(shù)定律的描述

    布爾代數(shù)是我們用來分析數(shù)字門和電路的數(shù)學(xué)。我們可以使用這些“布爾定律”來減少和簡(jiǎn)化復(fù)雜的布爾表達(dá)式,以減少所需的邏輯門數(shù)。因此,布爾代數(shù)是一個(gè)基于邏輯的數(shù)學(xué)系統(tǒng),它具有自己的一套規(guī)則或
    的頭像 發(fā)表于 06-22 09:36 ?6969次閱讀
    <b class='flag-5'>布爾</b>代數(shù)定律的描述

    數(shù)列極限的求解方法及案例分析

    數(shù)列極限的求解方法及案例分析
    發(fā)表于 03-24 10:25 ?0次下載
    數(shù)列極限的<b class='flag-5'>求解</b><b class='flag-5'>方法</b>及案例分析

    基于獎(jiǎng)勵(lì)機(jī)制的SAT求解器分支策略綜述

    分支決策是CDCL( Conflict Driven Clause Learning)求解器一個(gè)十分關(guān)鍵的環(huán)節(jié),一個(gè)妤的分支策略可以減少分支決策次數(shù)進(jìn)而提高SAT求解器的效率。目前,先進(jìn)的分支策略
    發(fā)表于 05-18 11:53 ?1次下載

    基于布爾函數(shù)導(dǎo)數(shù)的布爾置換構(gòu)造

    布爾函數(shù)導(dǎo)數(shù)的性質(zhì)在密碼構(gòu)造中起著重要的作用。文中利用布爾函數(shù)導(dǎo)數(shù)的性質(zhì),構(gòu)造了一個(gè)新的平衡布爾函數(shù)然后基于平衡布爾函數(shù)與布爾置換的關(guān)系,構(gòu)
    發(fā)表于 06-17 10:58 ?15次下載

    節(jié)點(diǎn)電壓方程的列寫及求解方法

    電子發(fā)燒友網(wǎng)站提供《節(jié)點(diǎn)電壓方程的列寫及求解方法.ppt》資料免費(fèi)下載
    發(fā)表于 12-25 09:08 ?0次下載