CN101295328A - 一种解决可满足性问题的正交化算法 - Google Patents
一种解决可满足性问题的正交化算法 Download PDFInfo
- Publication number
- CN101295328A CN101295328A CNA2008100392093A CN200810039209A CN101295328A CN 101295328 A CN101295328 A CN 101295328A CN A2008100392093 A CNA2008100392093 A CN A2008100392093A CN 200810039209 A CN200810039209 A CN 200810039209A CN 101295328 A CN101295328 A CN 101295328A
- Authority
- CN
- China
- Prior art keywords
- clause
- group
- clauses
- quadrature
- literal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明属于超大规模集成电路的形式验证技术领域,具体为一种解决SAT问题的正交化算法。该算法首先定义了子句之间的正交关系,然后,从消除子句之间的交叠信息出发,利用正交子句的特性,结合有效的简化技术,逐渐将问题简化为一组与原问题完全等价的正交子句组;最后,根据正交子句组对整个赋值空间的覆盖情况来判断SAT是否满足。本发明方法高效实用,能够加速问题的简化过程,提高解题的运算速度,可适用于超大规模集成电路设计中自动测试向量生成、时序分析、逻辑验证、等价验证等。
Description
技术领域
本发明属于超大规模集成电路的形式验证技术领域,具体涉及一种求解可满足性问题的新方法。
技术背景
给定一个命题公式,布尔可满足性问题(satisfiability,SAT)判定是否存在一组变量赋值使得公式为真。如果这样的赋值存在,则公式是可满足的,否则公式不满足。通常可满足性问题用合取范式(conjunctive normal form,CNF)表示。合取范式由若干个子句“相与”(∧)组成,每个子句由若干个文字“相或”(∨)构成。一个子句所包含的文字个数称为该子句的长度。每个文字是变量的正相位(简称正文字)或反相位(简称反文字)。例如:(1)式是一合取范式。
F=(x1∨x3)∧(x1∨x2∨x4)∧(x1∨x2).(1)
SAT问题是一类著名的NP-完全问题。很多实际问题如蛋白质折叠,调度计划都可以转化为SAT问题。在集成电路的电子设计自动化领域,SAT问题可用于解决自动测试向量生成、时序分析、逻辑验证、等价性验证等,并且已经取得了非常好的成果。然而,随着问题规模和难度的增加,高效实用的SAT算法仍然是目前研究的热点。
目前解决SAT问题的主要方法有DP算法[1,2],DPLL算法[3-10]及不完全算法[11]。由于不完全算法是在状态空间内进行局部搜索,因此不能够证明问题无解。而在很多的应用领域,实际上需要证明问题的不可满足性。DP算法对每个变量作归结消除操作,直到证明不可满足或者满足。由于归结消除变量是一个子句个数由“加”关系变为“乘”关系的过程。因此,子句的增加呈指数关系,导致该算法受空间存储的限制而没有多大的发展。但该算法为后来的简化技术提供了有效的思路。例如,SAT2004竞赛中著名的耐伐(Niver)预处理器[2]就是完全利用了该算法的框架,2006年的SAT竞赛冠军MiniSat2.0中也利用了该技术作为重要的预处理技术。DPLL算法是在DP算法的基础上,克服了空间指数复杂性的限制,得到了快速的发展。该算法在最坏情况下运行时间跟变量的个数呈指数关系。因此,DPLL算法在初期阶段仅能解决10多个变量的SAT问题,并且这种现状一直持续到上世纪90年代。直到1996年,格拉斯普(GRASP)解决器[4]的提出,DPLL算法才有了突飞猛进的发展。随后许多启发式技巧,如变量状态独立下降和(VSIDS,variable State Independent Decaying Sum)策略,搜索重启动策略,第一蕴含点和非同步回溯的提出大大加速了搜索过程。现代的SAT解决器如Chaff[5],Berkmin[6]和Minisat[7]等都是基于DPLL的算法框架进行改进的,它们大都能解决上万个变量的SAT问题。然而,DPLL算法仍然存在学习子句规模增加过快的问题,该问题是DPLL算法本身固有的,因此仍需要研究新的算法。
发明内容
本发明的目的在于提出一种能够加速问题简化过程,提高解题运算速度的可满足问题的求解方法。
本发明提出的可满足性问题的求解方法,是采用正交化方法消除子句之间的交叠关系,并且最大限度的简化问题,最后通过判断最终的正交子句组是否覆盖整个卡诺图来判断SAT问题是否满足。
对于一个可满足性问题用合取范式表示,该合取范式由若干子句“相与”组成,每个子句由若干个文字“相或”构成,本发明方法的具体步骤如下:
首先,在所有子句中寻找最短的子句项作为正交项。由于子句越短,覆盖的区域就越大,所构造的正交子句组中的子句个数就会越少,从而,所需要的正交化过程步骤就越少。同时,由于所选择的正交项的每个文字要与每个子句进行析取。因此,选择最短子句作为正交项还可以减小子句的增加速度。对于选择的正交子句项,进行正交操作。
在进行正交操作后,会产生很多的冗余子句。因此需要进行简化操作,这样可以及时的简化问题。
重复以上过程,直到除正交项外,仅剩一个子句时,说明所有的子句是正交的,正交化过程终止。此时由正交化过程,可以知道所有的正交项和最后一个子句一起构成了一组正交子句组,并且该正交子句组和原问题是等价的。
最后,在判断问题是否满足时,可以通过计算正交子句组的覆盖和是否为1来判断。所谓覆盖和是指所有子句对卡诺图的覆盖比值之和,而一个长度为k的子句的对卡诺图的覆盖比值是2-k。因为正交前的合取范式跟正交后的正交子句组是完全等价的,因此在卡诺图上的覆盖情况相同。正交化的过程仅仅是去掉子句之间重复覆盖的部分。因此一个SAT问题的覆盖和(sum of cover,SC)就是正交子句组的覆盖和(重复覆盖仅算一次覆盖)。覆盖和可以通过下式计算,
其中,n是正交子句组中所包含的子句个数,ki是第i个子句的长度。如果SC=1,则SAT问题是不满足的,反应在卡诺图上,即是该正交组在卡诺图上的覆盖“填满”了整个卡诺图,即卡诺图上的每个赋值均使该正交子句组的至少一个子句不满足,因此问题不满足;否则,SAT问题满足。
上述方法中,涉及到的几个基本概念分别介绍如下:
正交,如果两个子句分别包含一个变量的正、反文字,则称这两个子句正交。如x1∨x2∨x3和x3∨x4。
卡诺图是逻辑函数的一种图形表示,因此一个SAT问题对应着一个卡诺图,卡诺图上的一个小方格对应SAT问题的一个赋值。如果卡诺图上的一些小方格均使一个子句C不满足(如果子句中的所有文字均为0,则称该子句不满足),则称这些小方格为子句C的覆盖区域。显然,正交子句的覆盖区域是不相交的。
如果一个子句与一组子句中的任何一个子句都正交,则称该子句与该子句组正交。
正交子句组,如果在一组子句中,任意两个子句正交,则称该子句组为正交子句组。如{x1∨x3,x3∨x4,x1∨x3,x1∨x3∨x4}是一个正交子句组。它们的卡诺图覆盖情况如附图1所示。
由上述定义可知,正交子句组的覆盖区域是互不相交的。
任意给定的一组子句,可以通过不断地运用如下算式(2)将其转化为一组等价的正交子句组:
其中,F是包含m个子句的原始合取范式,Ci表示第i个子句,是去掉子句Ci后的合取范式。
在正交化过程中,首先选择其中的一个子句Ci作为正交项,然后对Ci取反,将它与中所有的子句进行析取,得到合取范式该合取范式中所有子句所构成的子句组与子句Ci是正交的。该过程被称为一次正交化过程。从得到的合取范式中继续选择一个子句作为正交项进行上述过程,直到中仅包含一个子句,这样,就得到一组与原始问题等价的正交子句组。
由于在正交过程中会出现大量可以简化的子句项,因此需要进行及时的化简以控制问题规模的增加,这样将会大大加速问题的求解。作者在实验中发现,简化技术所需要的主要功能是对子句的冗余进行删除。因此主要用到以下技术:
(1)冗余子句删除
在正交化过程中,会出现很多相同的子句,这些相同子句只需要保留一个即可,其它子句被称为冗余子句。应予删除。及时地删除冗余子句有助于降低问题规模的增加。
(2)相邻子句化简
如果两个子句的文字个数相同且仅有一个文字相反,其余文字相同,则称两个子句为相邻子句,相邻子句可以合并为一个短子句,如x1∨x2∨x3和x1∨x2∨x3为相邻子句,可合并一个子句x1∨x2。
(3)包含子句的删除
子句C1包含子句C2是指子句C1中所有的文字都包含在子句C2中。在这种情况下,C2是冗余子句,可以从子句数据库中删除。如C1=x1∨x2包含C2=x1∨x2∨x3。
(4)自包含子句的化简,
自包含是指子句C2几乎包含子句C1,即子句C2中除一个文字与C1相反外,其余文字都包含在C1中。在这种情况下,C1和C2归结后可以产成归结子句C1′,此时,C1′包含C1,因此可以用子句C1′来代替含C1,从而删除一个文字。如:
以上4种简化技术可以与上节介绍的正交操作有效地结合,达到逐步简化问题的目的。
本发明的优点
本发明提出的解决SAT问题的新算法,从消除子句之间的交叠信息出发,逐渐将问题简化,从而得到SAT是否满足的结论。在算法的求解过程中,与现有的简化规则有效结合,大大加速了问题的简化过程。该算法与原有的DPLL算法及DP算法相比,思路新,效率高,速度快。可用于超大规模集成电路设计中,自动测试向量的生成、时序分析、逻辑验证、等价性验证等。
附图说明
图1为正交子句组的卡诺图。
图2为本发明所提出的正交算法流程图。
图3为本发明中所列举实例的正交化简前的卡诺图。
图4为本发明中所列举实例的正交化简后的卡诺图。
具体实施方式
结合子句正交化过程和4种简化技术,本发明给出了一个利用正交方法解SAT问题的新算法,其流程图如附图2所示。
为了说明本发明算法的实现过程,下面给出一个实例。
F=(x 1 ∨x 3 )∧(x 1 ∨x 2 ∨x 3 )∧(x 1 ∨x 3 ∨x 4 )∧
(x 1 ∨x 3 ∨x 4 )∧(x 1 ∨x 2 ∨x 3 ∨x 4 )∧(x 3 ∨x 4 )∧(x 3 ∨x 4 )
该SAT问题由4个变量,7个子句构成,每个子句在卡诺图上的覆盖情况如附图3所示。可以看出,它们有很多的相叠部分。
下面,利用算式(2)对其正交化。首先选择其中最短的一个子句作为正交项进行正交操作。这里选择了第一个子句x1∨x3。所选择的正交项用方框表示。
下面,利用算式(2)对其正交化。首先选择其中最短的一个子句作为正交项进行正交操作。这里选择了第一个子句x1∨x3。所选择的正交项用方框表示。在正交操作后,可以看出,有些项因为被包含可以直接去掉,例如子句x3∨x4包含了x1∨x3∨x4,因此后者可以去掉(用斜线表示)。另外,相邻项可以直接合并,如x1∨x3∨x4和x1∨x3∨x4可以合并为一个子句x1∨x3。最后还有一些语句之间存在自包含关系,如x1∨x3∨x4和x3∨x4,它们可以简化为x1∨x3和x3∨x4,这增加短子句出现的可能性。算式(4)及下面的算式(5)中分别用数字和箭头标识出了1.2节中所提到的简化方法,箭头方向为化简的原因。可以看出,4种简化方法大大控制了问题规模的增加。
化简后的合取范式除正交项外,包含3个二元子句,因此可任意选择其中一个作为下一个正交项,本发明选择了最前面的一个子句x1∨x3。
继续选择(5)式中除正交子句外的一个最短子句x2∨x3作为正交项。
继续选择(6)式中除正交子句外的一个最短子句x2∨x1∨x3作为正交项。
上式中除正交项外,仅有一个子句,因此可以判断我们已经将该问题转化为一组等价的正交子句组{C1′,C2′,C3′,C4′,C5′}。在以上的正交过程中,由于利用了1.2节中提到的化简技术,使得整个过程中子句数并没有增加(原问题子句个数为7,而每步正交简化后的子句个数为5)。而如果不采用简化技术的话,子句个数将呈指数增加,因此是不可行的。
正交化后的卡诺图如附图4所示。从化简后的卡诺图上可以看出,该例是不可满足的。另外,通过(3)式可得 因此,该实例是不可满足的。
参考文献
[1]Davis M,Putnam H.A computing procedure for quantification theory[J].Journal of ACM,1960,7(3):201-214.
[2]Subbarayan S,Pradhan D.NiVER:Non Increasing Variable Elimination Resolution forPreprocessing SAT instances[C].In International Conference on Theory and Applications ofSatisfiability Testing(SAT2004),May 2004.
[3]Davis M,Logemann G.,Loveland D.A Machine Program for Theorem-Proving[C].Comm.ACM,1962,5(7):394-397.
[4]Marques-Silva J P,Sakallah K A.GRASP:A search algorithm for propositional satisfiability[J].IEEE Transactions on Computers,1999,48(5):506-521.
[5]Moskewicz M W,Madigan C F,Zhao Y,et al.Chaff:Engineering an efficient SAT solver[C].In Proceedings of the 38th Design Automation Conference(DAC),2001:530-535.
[6]Goldberg E,Novikov Y.BerkMin:A fast and robust SAT-solver[C].In Proceedings of DesignAutomation and Test in Europe(DATE),2002,142-149.
[7]Eén N,N.An extensible SAT-solver[J].Theory and Applications of SatisfiabilityTesting,2004,Volume 2919/2004,502-518.
[8]Jin H S,Somenzi F.Strong conflict analysis for propositional satisfiability[C].In Proceedingsof Design,Automation and Test in Europe(DATE),2006,06-10 March 2006(1):1-6.
[9]Jing Ming-e,Zhou Dian,Tang Pu-shan.Solving SAT Problem by Heuristic PolarityDecision-Making Algorithm[J].Sci China Ser F-Inf.2007,50(6):915-925.
[10]荆明娥,周电,唐璞山,利用近似解加速SAT完全算法[J]。计算机辅助设计与图形学学报,2007年,19(9):1184-1189.
[11]Shang Y,Wah B W.A discrete lagrangian-based global-search method for solving satisfiabilityproblems[J].Journal of Global Optimization,1998,12(1):61-99。
Claims (3)
1、一种解决可满足性问题的正交化算法,对于一个可满足式问题,用合取范式来表示,该合聚范式由若干子句“相与”组成,每个子句由若干个文字“相或”组成,其特征在于用正交化方法消除子句之间的交垒关系,并且最大限度地简化问题,最后通过判断最终的正交子句组是否覆盖整个卡诺图来判断可满足性问题是否满足,具体步骤为:
首先,在所有子句中寻找最短的子句作为正交项;对选择的正交项进行正交操作,同时结合进行简化操作,反复上述过程,直到除正交项外,仅剩一个子句时,终止正交化过程,得到与原子句组等价的正交子句组;
然后,计算正交子句组的覆盖和:
其中,n为正交子句组中所包含的子句个数,ki是第i个子句的长度,如果SC=1,则可满足性问题不满足;否则,可满足性问题满足。
3、根据权利要求1所述的解决可满足性问题的正交化算法,其特征在于所述的简化操作,具体方法如下:
(1)冗余子句删除
对正交化过程中出现的相同的子句,只保留其中的一个,其它子句被称为冗余子句,予以删除;
(2)相邻子句化简
如果两个子句的文字个数相同且仅有一个文字相反,其余文字相同,则称两个子句为相邻子句,将相邻子句合并为一个短子句;
(3)包含子句的删除
子句C1包含子句C2是指子句C1中所有的文字都包含在子句C2中,在这种情况下,C2是冗余子句,从子句数据库中予以删除;
(4)自包含子句的化简
自包含是指子句C2几乎包含子句C1,即子句C2中除一个文字与C1相反外,其余文字都包含在C1中,在这种情况下,将C1和C2归结后产成归结子句C1′,此时,C1′包含C1,因此用子句C1′来代替含C1,从而删除一个文字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100392093A CN101295328A (zh) | 2008-06-19 | 2008-06-19 | 一种解决可满足性问题的正交化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100392093A CN101295328A (zh) | 2008-06-19 | 2008-06-19 | 一种解决可满足性问题的正交化算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101295328A true CN101295328A (zh) | 2008-10-29 |
Family
ID=40065611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100392093A Pending CN101295328A (zh) | 2008-06-19 | 2008-06-19 | 一种解决可满足性问题的正交化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101295328A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391864A (zh) * | 2017-07-28 | 2017-11-24 | 湖南大学 | 一种基于可满足性求解的工程产品智能设计方法和装置 |
CN110914840A (zh) * | 2017-07-19 | 2020-03-24 | 国立大学法人横浜国立大学 | 解探索设备及程序 |
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN112364582A (zh) * | 2020-11-30 | 2021-02-12 | 国微集团(深圳)有限公司 | 一种用于三态门电路验证的改进方法、系统及装置 |
-
2008
- 2008-06-19 CN CNA2008100392093A patent/CN101295328A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110914840A (zh) * | 2017-07-19 | 2020-03-24 | 国立大学法人横浜国立大学 | 解探索设备及程序 |
CN107391864A (zh) * | 2017-07-28 | 2017-11-24 | 湖南大学 | 一种基于可满足性求解的工程产品智能设计方法和装置 |
CN107391864B (zh) * | 2017-07-28 | 2021-06-25 | 湖南大学 | 一种基于可满足性求解的工程产品智能设计方法和装置 |
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN112257366B (zh) * | 2020-10-13 | 2024-05-07 | 深圳国微芯科技有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN112364582A (zh) * | 2020-11-30 | 2021-02-12 | 国微集团(深圳)有限公司 | 一种用于三态门电路验证的改进方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104756100B (zh) | 意图估计装置以及意图估计方法 | |
JP5005510B2 (ja) | ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム | |
CN101295328A (zh) | 一种解决可满足性问题的正交化算法 | |
WO2022077645A1 (zh) | 一种用于等价性验证的cnf生成方法及系统 | |
TW200837591A (en) | Circuit-design-modifying method executable in computer system | |
Hadi et al. | ACPRISM: Associative classification based on PRISM algorithm | |
Eggersgluss et al. | Efficient data structures and methodologies for SAT-based ATPG providing high fault coverage in industrial application | |
CN105574270B (zh) | 一种抗单粒子加固电路单元布局布线方法 | |
CN107480213A (zh) | 基于时序文本网络的社区检测与用户关系预测方法 | |
Ubar et al. | Structural fault collapsing by superposition of BDDs for test generation in digital circuits | |
Du et al. | A new data-driven design method for thin-walled vehicular structures under crash loading | |
US8266573B2 (en) | Method and system for test point insertion | |
Disch et al. | Combinational equivalence checking using incremental SAT solving, output ordering, and resets | |
CN104967114A (zh) | 电网负荷实时数字建模方法及系统 | |
Perez et al. | Soft and cost MDD propagators | |
Yu et al. | Towards compositional hardware model checking certification | |
CN102184194B (zh) | 基于本体的知识地图绘制系统 | |
Chung et al. | Functional timing analysis made fast and general | |
Tille et al. | Improving CNF representations in SAT-based ATPG for industrial circuits using BDDs | |
Miraj et al. | Systematic review of value engineering research studies in Indonesia | |
CN103678355A (zh) | 文本挖掘方法和文本挖掘装置 | |
CN102902623B (zh) | 一种复杂系统测试优选的实现方法 | |
Xu et al. | Importance analysis of system related fault based on improved decision-making trial and evaluation laboratory | |
CN105912646A (zh) | 一种基于多样性和比例特性的关键词检索方法 | |
Goultiaeva et al. | Exploiting circuit representations in QBF solving |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081029 |