国产真实乱全部视频,黄色片视频在线免费观看,密臀av一区二区三区,av黄色一级,中文字幕.com,日本a级网站,在线视频观看91

一種面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)SAT求解方法及系統(tǒng)

文檔序號(hào):42326617發(fā)布日期:2025-07-01 19:45閱讀:7來源:國知局

本發(fā)明屬于芯片設(shè)計(jì)與驗(yàn)證,具體涉及一種面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法及系統(tǒng)。


背景技術(shù):

1、布爾可滿足性問題(boolean?satisfiability?problem,?sat)求解器在芯片驗(yàn)證中扮演著重要的角色,特別是在形式驗(yàn)證領(lǐng)域。sat求解器是用于確定給定的布爾表達(dá)式是否存在一個(gè)賦值使得該表達(dá)式為真的工具。在芯片設(shè)計(jì)和驗(yàn)證過程中,sat求解器可以用來解決一系列與電路驗(yàn)證相關(guān)的問題,如等價(jià)性檢查、屬性檢查、故障仿真、形式化驗(yàn)證、優(yōu)化設(shè)計(jì)等。等價(jià)性檢查用于確保兩個(gè)邏輯描述(例如rtl級(jí)設(shè)計(jì)和門級(jí)網(wǎng)表)功能上是等價(jià)的,這對(duì)于驗(yàn)證綜合過程是否正確至關(guān)重要。屬性檢查通過將斷言或安全屬性轉(zhuǎn)換為布爾公式,sat求解器可以用來驗(yàn)證這些屬性在整個(gè)狀態(tài)空間內(nèi)是否始終成立。為了評(píng)估潛在的制造缺陷對(duì)系統(tǒng)的影響,可以通過sat求解器模擬各種類型的故障模式(如短路、開路等),以生成測試向量并預(yù)測其影響。在模型檢測中,sat求解器可以幫助證明給定的電路是否符合某些形式化的規(guī)格說明,如ltl(線性時(shí)態(tài)邏輯)或ctl(計(jì)算樹邏輯)公式所描述的行為。在某些情況下,sat求解器還可以輔助進(jìn)行邏輯優(yōu)化,例如尋找更有效的實(shí)現(xiàn)方式來減少資源使用或提升性能。

2、盡管sat求解器在芯片驗(yàn)證中展示了強(qiáng)大的功能和廣泛的應(yīng)用,但它們也面臨一些固有的挑戰(zhàn)和問題。首先,對(duì)于大型和復(fù)雜的電路,sat問題往往是np完全的,意味著隨著輸入規(guī)模的增長,解決問題所需的時(shí)間可能呈指數(shù)增長。對(duì)于特別大的電路設(shè)計(jì),即使是最先進(jìn)的sat求解器也可能難以在合理時(shí)間內(nèi)完成驗(yàn)證。隨著芯片設(shè)計(jì)復(fù)雜性和規(guī)模的增長,形式驗(yàn)證工具在處理大型設(shè)計(jì)時(shí)遇到了性能瓶頸。雖然技術(shù)不斷進(jìn)步,但與soc系統(tǒng)的復(fù)雜性增長速度相比仍有差距。其次,在處理大規(guī)模電路時(shí),sat求解器可能會(huì)消耗大量的內(nèi)存資源。這種高內(nèi)存需求不僅限制了可以在單個(gè)機(jī)器上處理的最大電路尺寸,還增加了硬件成本。另外,商業(yè)級(jí)別的sat求解器通常擁有更高級(jí)的功能和更好的性能優(yōu)化,但價(jià)格昂貴;而開源工具雖然可及性更高,但在性能和特性上可能有所欠缺。這使得中小企業(yè)或?qū)W術(shù)研究機(jī)構(gòu)在選擇合適工具時(shí)面臨困境。

3、在過去的二十年中,基于沖突驅(qū)動(dòng)子句學(xué)習(xí)(conflict?driven?clauselearning,?cdcl)算法的現(xiàn)代sat求解器在處理復(fù)雜公式時(shí)表現(xiàn)出顯著的效率,甚至能夠應(yīng)對(duì)包含數(shù)百萬變量和子句的情況。cdcl算法的關(guān)鍵步驟是決策步驟,其中啟發(fā)式地選擇一個(gè)未賦值的變量并確定其相位(0或1)。相位保存(phase?saving)技術(shù)記錄了變量在傳播或回溯過程中的賦值,這些記錄在后續(xù)操作中被用來設(shè)置變量的相位,幫助sat求解器更快地回到類似的搜索空間。保存的相位值可以根據(jù)需要進(jìn)行調(diào)整,而這不會(huì)影響cdcl算法的正確性。在文字傳播的過程中,kissat會(huì)保存當(dāng)前已賦值變量的相位,并將更改這些保存相位的操作標(biāo)記為重相位啟發(fā)式。這些啟發(fā)式方法不僅拓寬了搜索空間的探索范圍,還增加了學(xué)習(xí)到的子句的多樣性。

4、優(yōu)秀的sat求解器kissat設(shè)計(jì)了六種重相位啟發(fā)式,并將其組合成一個(gè)重相位策略。kissat的默認(rèn)重相位策略為{oi(bwobwibw#bwf)ω}。在此基礎(chǔ)上,kissat-mab-rephasing求解器引入了一種基于多臂博弈(multi-armed?bandits,?mab)的動(dòng)態(tài)重相位策略。該求解器通過mab算法在每次重相位步驟中選擇最合適的啟發(fā)式,從而加速實(shí)例的求解過程。對(duì)于簡單實(shí)例,kissat-mab-rephasing求解器的速度優(yōu)于其他頂級(jí)求解器。然而,在處理復(fù)雜實(shí)例時(shí),該求解器容易陷入局部最優(yōu),導(dǎo)致求解失敗。這一局限性使得kissat-mab-rephasing能夠解決的復(fù)雜實(shí)例數(shù)量少于其他先進(jìn)求解器。

5、基于kissat_mab,kissat_mab_conflict+引入了一種新穎的重相位啟發(fā)式,旨在幫助求解器檢測更多的不可滿足核心并學(xué)習(xí)更多子句。該求解器將這一新啟發(fā)式與kissat原有的啟發(fā)式相結(jié)合,形成了一種新的重相位策略。由于引入了新啟發(fā)式,kissat_mab_conflict+能夠更快、更高效地產(chǎn)生沖突,因此其解決的難實(shí)例數(shù)量超過了其他優(yōu)秀求解器。然而,在處理簡單實(shí)例時(shí),kissat_mab_conflict+的速度卻相對(duì)較慢。

6、沒有一種重相位啟發(fā)式可以適用于所有不同領(lǐng)域的實(shí)例,因此在解決不同的實(shí)例時(shí),需要組合多種重相位啟發(fā)式。然而,固定的離線組合策略同樣無法適應(yīng)所有實(shí)例。基于這一考慮,強(qiáng)化學(xué)習(xí),特別是多臂博弈算法,可能成為提高sat求解器效率的有效方法。多臂博弈算法(multi-armed?bandit,?mab)是一個(gè)經(jīng)典的決策優(yōu)化問題,源自概率論和決策論。它描述了一個(gè)場景:一個(gè)玩家面對(duì)多個(gè)博弈機(jī)(即“多臂博弈機(jī)”),每臺(tái)博弈機(jī)的回報(bào)率(獎(jiǎng)勵(lì)分布)是未知的。玩家需要決定如何分配有限的資源(如投幣次數(shù))在這些博弈機(jī)之間,以最大化總回報(bào)。目前,使用多臂博弈算法的sat求解器在臂的選擇和獎(jiǎng)勵(lì)函數(shù)的設(shè)置上尚未充分考慮sat求解的特點(diǎn),因此未能充分發(fā)揮多臂博弈算法在sat求解過程中的潛力。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明要解決的技術(shù)問題:針對(duì)現(xiàn)有技術(shù)的上述問題,提供一種面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法及系統(tǒng),本發(fā)明旨在利用多臂博弈算法在sat求解器求解實(shí)例的過程中動(dòng)態(tài)的選擇重相位啟發(fā)式加快sat求解過程,增加求解出的實(shí)例個(gè)數(shù)及減少實(shí)例求解時(shí)間。

2、為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:

3、一種面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法,包括下述步驟:將待求解的芯片驗(yàn)證問題轉(zhuǎn)換為布爾表達(dá)式、再轉(zhuǎn)換為cnf公式,所述cnf公式中第一行為變量個(gè)數(shù)以及子句個(gè)數(shù)、之后每行表示一個(gè)子句,每個(gè)子句是一組變量的析取、而整個(gè)子句集合是這些子句的合??;將cnf公式使用基于沖突驅(qū)動(dòng)子句學(xué)習(xí)算法的sat求解器進(jìn)行求解,且在求解過程中基于沖突驅(qū)動(dòng)子句學(xué)習(xí)算法的sat求解器針對(duì)cnf公式中的子句集合啟發(fā)式地選擇一個(gè)未賦值的變量并基于保存的相位值確定其相位時(shí),所述保存的相位值為基于多臂博弈算法的重相位策略對(duì)變量進(jìn)行賦值得到,且基于多臂博弈算法的重相位策略對(duì)變量進(jìn)行賦值得到保存的相位值包括:

4、s101,選擇包括最佳啟發(fā)式和游走啟發(fā)式的重相位啟發(fā)式,將選擇的重相位啟發(fā)式劃分為兩類:第一類重相位啟發(fā)式為防止算法陷入局部最優(yōu)的啟發(fā)式,第二類重相位啟發(fā)式為專注于優(yōu)化和精煉搜索空間的啟發(fā)式;

5、s102,將最佳啟發(fā)式和游走啟發(fā)式和第一類重相位啟發(fā)式結(jié)合生成多個(gè)重相位策略并作為多臂博弈算法中的多個(gè)臂;

6、s103,在sat求解器的求解過程中統(tǒng)計(jì)沖突次數(shù)和決策次數(shù)以計(jì)算每個(gè)臂的獎(jiǎng)勵(lì)函數(shù)值,利用上置信界算法結(jié)合每個(gè)臂的獎(jiǎng)勵(lì)函數(shù)值從多個(gè)臂中選擇侯選的重相位策略,并利用cnf公式的實(shí)例中包含的變量個(gè)數(shù)設(shè)置重相位啟發(fā)式切換的基本沖突次數(shù)間隔以及使用多臂博弈算法選擇侯選重相位策略的基本沖突次數(shù)間隔。

7、可選地,步驟s101中選擇的包括最佳啟發(fā)式和游走啟發(fā)式的重相位啟發(fā)式分別包括:

8、原始啟發(fā)式:將所有保存的相位設(shè)置為1;

9、反轉(zhuǎn)啟發(fā)式:將所有保存的相位設(shè)置為0;

10、最佳啟發(fā)式:將所有保存的相位設(shè)置為更改為最佳賦值,此最佳賦值是從當(dāng)前賦值中得到的,若當(dāng)前賦值沒有遇到?jīng)_突,并且當(dāng)前賦值的軌跡長度大于最佳賦值的軌跡長度,則保存當(dāng)前賦值為最佳賦值,且在應(yīng)用最佳相位啟發(fā)式后立即重置最佳賦值;

11、游走啟發(fā)式:根據(jù)局部搜索的結(jié)果修改保存的相位;

12、翻轉(zhuǎn)啟發(fā)式:翻轉(zhuǎn)保存的相位;

13、沖突啟發(fā)式:在發(fā)生沖突時(shí),將沖突子句中涉及的變量保存的相位更新為變量的當(dāng)前相位;

14、將選擇的重相位啟發(fā)式劃分為兩類時(shí),第一類重相位啟發(fā)式包括原始啟發(fā)式、反轉(zhuǎn)啟發(fā)式、翻轉(zhuǎn)啟發(fā)式和沖突啟發(fā)式,第二類重相位啟發(fā)式包括最佳啟發(fā)式和游走啟發(fā)式。

15、可選地,步驟s102中將最佳啟發(fā)式和游走啟發(fā)式和第一類重相位啟發(fā)式結(jié)合生成多個(gè)重相位策略并作為多臂博弈算法中的臂時(shí),將最佳啟發(fā)式和游走啟發(fā)式和第一類重相位啟發(fā)式結(jié)合生成多個(gè)重相位策略的函數(shù)表達(dá)式為:

16、,

17、其中,為多個(gè)重相位策略的集合,分別為組合成的四種重相位策略,其中為最佳啟發(fā)式、為游走啟發(fā)式、為原始啟發(fā)式、為反轉(zhuǎn)啟發(fā)式、為沖突啟發(fā)式、為翻轉(zhuǎn)啟發(fā)式。

18、可選地,步驟s103中計(jì)算每個(gè)臂的獎(jiǎng)勵(lì)函數(shù)值所采用的函數(shù)表達(dá)式為:

19、,

20、其中,為臂的第t次求解的獎(jiǎng)勵(lì)函數(shù)值,為在最近一次利用多臂博弈算法選擇重相位策略后所做的決策次數(shù),為自最近一次利用多臂博弈算法選擇重相位策略以來發(fā)生的沖突次數(shù)。

21、可選地,步驟s103中利用上置信界算法結(jié)合每個(gè)臂的獎(jiǎng)勵(lì)函數(shù)值從多個(gè)臂中選擇侯選的重相位策略的函數(shù)表達(dá)式為:

22、,

23、其中,為臂的優(yōu)先級(jí),為前次運(yùn)行中從臂獲取的獎(jiǎng)勵(lì)函數(shù)值的平均值,為前次運(yùn)行中選擇臂的次數(shù),最終選擇值最高的臂作為當(dāng)次運(yùn)行求解器使用的重相位策略。

24、可選地,步驟s103中利用cnf公式的實(shí)例中包含的變量個(gè)數(shù)設(shè)置重相位啟發(fā)式切換的基本沖突次數(shù)間隔以及使用多臂博弈算法選擇侯選重相位策略的基本沖突次數(shù)間隔時(shí),重相位啟發(fā)式切換的基本沖突次數(shù)間隔設(shè)置為,使用多臂博弈算法選擇重相位策略的基本沖突次數(shù)間隔設(shè)置為,其中為cnf公式中變量的個(gè)數(shù)。

25、可選地,所述將cnf公式使用基于沖突驅(qū)動(dòng)子句學(xué)習(xí)算法的sat求解器進(jìn)行求解包括:

26、s201,針對(duì)cnf公式中的子句集合使用變量狀態(tài)無關(guān)衰減和啟發(fā)式選出未賦值的變量,如果選出成功則跳轉(zhuǎn)步驟s202;否則,判定步驟s206;

27、s202,根據(jù)基于多臂博弈算法的重相位策略為每個(gè)變量保存的相位值對(duì)選出的未賦值的變量進(jìn)行賦值;

28、s203,進(jìn)行單元傳播,若某個(gè)子句中只有一個(gè)未賦值的變量,則該變量必須被賦值以使子句為真;在每次單元傳播之后,檢查是否所有子句都已經(jīng)滿足,如果是,則找到了一個(gè)解決方案;如果不是,則繼續(xù)搜索;

29、s204,進(jìn)行沖突檢測,若某個(gè)子句在當(dāng)前賦值下子句的布爾值為假,則判定發(fā)現(xiàn)沖突,跳轉(zhuǎn)步驟s205;否則,跳轉(zhuǎn)步驟s201;

30、s205,進(jìn)行沖突分析與子句學(xué)習(xí),包括:通過對(duì)沖突路徑的分析,推導(dǎo)出一個(gè)總結(jié)了導(dǎo)致當(dāng)前沖突的原因的新的子句,然后將這個(gè)新的子句添加到原子句集合中以便將來避免類似的情況,之后進(jìn)行回溯撤銷最近的決策回到一個(gè)較早的狀態(tài)以嘗試不同的賦值組合;跳轉(zhuǎn)步驟s203;

31、s206,如果在子句集合的搜索過程中所有子句都被滿足,則輸出“可滿足”的求解結(jié)果,并提供一組使得所有子句都為真的變量賦值;如果窮盡所有可能性后仍未找到滿足所有子句的賦值,則輸出“不可滿足”的求解結(jié)果,表明不存在這樣的賦值組合。

32、此外,本發(fā)明還提供一種面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解系統(tǒng),包括相互連接的微處理器和存儲(chǔ)器,所述微處理器被編程或配置以執(zhí)行所述面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法。

33、此外,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被編程或配置以通過處理器執(zhí)行所述面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法。

34、此外,本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被編程或配置以通過處理器執(zhí)行所述面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法。

35、和現(xiàn)有技術(shù)相比,本發(fā)明主要具有下述優(yōu)點(diǎn):本發(fā)明面向芯片設(shè)計(jì)驗(yàn)證的強(qiáng)化學(xué)習(xí)sat求解方法包括選擇重相位啟發(fā)式,將選擇的重相位啟發(fā)式組合成多種重相位策略,作為多臂博弈算法中的多種臂,在求解過程中統(tǒng)計(jì)沖突次數(shù)和決策次數(shù)以計(jì)算每個(gè)臂的獎(jiǎng)勵(lì)函數(shù)值,利用上置信界算法從多個(gè)臂中選擇侯選的重相位策略,利用實(shí)例中包含的變量個(gè)數(shù)設(shè)置重相位啟發(fā)式切換的基本沖突次數(shù)間隔以及使用多臂博弈算法選擇侯選重相位策略的基本沖突次數(shù)間隔,本發(fā)明通過利用多臂博弈算法在sat求解器求解實(shí)例的過程中動(dòng)態(tài)的選擇重相位啟發(fā)式,加快sat求解過程,增加求解出的實(shí)例個(gè)數(shù)以及減少實(shí)例求解時(shí)間。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1