一种解决可满足性问题的正交化算法的制作方法

文档序号:6459412阅读:162来源:国知局
专利名称:一种解决可满足性问题的正交化算法的制作方法
技术领域
本发明属于超大规模集成电路的形式验证技术领域,具体涉及一种求解可满足性问题的 新方法。 技术背景给定一个命题公式,布尔可满足性问题(satisfiability, SAT)判定是否存在一组变量赋值使 得公式为真。如果这样的赋值存在,则公式是可满足的,否则公式不满足。通常可满足性问 题用合取范式(conjunctive normal form, CNF)表示。合取范式由若干个子句"相与"(A)组成, 每个子句由若干个文字"相或"(v)构成。 一个子句所包含的文字个数称为该子句的长度。每个文字是变量的正相位(简称正文字)或反相位(简称反文字)。例如(l)式是一合取范式。F = (X, V F3) A (S V72 V X4) A (X, Vi2) . (1)SAT问题是一类著名的NP-完全问题。很多实际问题如蛋白质折叠,调度计划都可以转 化为SAT问题。在集成电路的电子设计自动化领域,SAT问题可用于解决自动测试向量生成、 时序分析、逻辑验证、等价性验证等,并且已经取得了非常好的成果。然而,随着问题规模 和难度的增加,高效实用的SAT算法仍然是目前研究的热点。目前解决SAT问题的主要方法有DP算法"'21, DPLL算法口,及不完全算法"1。由于不完 全算法是在状态空间内迸行局部搜索,因此不能够证明问题无解。而在很多的应用领域,实 际上需要证明问题的不可满足性。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解决器如Chaff15、 Berkmin^和Minisat"嗜都是基于DPLL的算法框架进行改进的,它们大都能解决上万个变量 的SAT问题。然而,DPLL算法仍然存在学习子句规模增加过快的问题,该问题是DPLL算 法本身固有的,因此仍需要研究新的算法。 发明内容本发明的目的在于提出一种能够加速问题简化过程,提高解题运算速度的可满足问题的 求解方法。本发明提出的可满足性问题的求解方法,是采用正交化方法消除子句之间的交叠关系,并 且最大限度的简化问题,最后通过判断最终的正交子句组是否覆盖整个卡诺图来判断SAT问 题是否满足。对于一个可满足性问题用合取范式表示,该合取范式由若干子句"相与"组成,每个子句由若干个文字"相或"构成,本发明方法的具体步骤如下首先,在所有子句中寻找最短的子句项作为正交项。由于子句越短,覆盖的区域就越大, 所构造的正交子句组中的子句个数就会越少,从而,所需要的正交化过程步骤就越少。同时, 由于所选择的正交项的每个文字要与每个子句进行析取。因此,选择最短子句作为正交项还 可以减小子句的增加速度。对于选择的正交子句项,进行正交操作。在进行正交操作后,会产生很多的冗余子句。因此需要进行简化操作,这样可以及时的简 化问题。重复以上过程,直到除正交项外,仅剩一个子句时,说明所有的子句是正交的,正交化过 程终止。此时由正交化过程,可以知道所有的正交项和最后一个子句一起构成了一组正交子 句组,并且该正交子句组和原问题是等价的。最后,在判断问题是否满足时,可以通过计算正交子句组的覆盖和是否为1来判断。所谓 覆盖和是指所有子句对卡诺图的覆盖比值之和,而一个长度为A的子句的对卡诺图的覆盖比值是2—、因为正交前的合取范式跟正交后的正交子句组是完全等价的,因此在卡诺图上的覆 盖情况相同。正交化的过程仅仅是去掉子句之间重复覆盖的部分。因此一个SAT问题的覆盖 和(sum of cover, SC)就是正交子句组的覆盖和(重复覆盖仅算一次覆盖)。覆盖和可以通 过下式计算,<formula>formula see original document page 6</formula>其中,"是正交子句组中所包含的子句个数,A是第/个子句的长度。如果SOl,则SAT 问题是不满足的,反应在卡诺图上,即是该正交组在卡诺图上的覆盖"填满"了整个卡诺图, 即卡诺图上的每个赋值均使该正交子句组的至少一个子句不满足,因此问题不满足;否则, SAT问题满足。上述方法中,涉及到的几个基本概念分别介绍如下正交,如果两个子句分别包含一个变量的正、反文字,则称这两个子句正交。如^ vx2v;c3 禾口 i3 v 74 。卡诺图是逻辑函数的一种图形表示,因此一个SAT问题对应着一个卡诺图,卡诺图上的 一个小方格对应SAT问题的一个赋值。如果卡诺图上的一些小方格均使一个子句C不满足(如 果子句中的所有文字均为0,则称该子句不满足),则称这些小方格为子句C的覆盖区域。显 然,正交子句的覆盖区域是不相交的。如果一个子句与一组子句中的任何一个子句都正交,则称该子句与该子句组正交。 正交子句组,如果在一组子句中,任意两个子句正交,则称该子句组为正交子句组。如 (x, v^,x3 vx4,g v^3,x, VAV7J是一个正交子句组。它们的卡诺图覆盖情况如附图1所示。由上述定义可知,正交子句组的覆盖区域是互不相交的。任意给定的一组子句,可以通过不断地运用如下算式(2)将其转化为一组等价的正交子 句组<formula>formula see original document page 6</formula>其中,F是包含m个子句的原始合取范式,G表示第f个子句,《.,'是去掉子句C,后的合取 范式。在正交化过程中,首先选择其中的一个子句C,作为正交项,然后对C,取反,将它与&,'中 所有的子句进行析取,得到合取范式&,该合取范式中所有子句所构成的子句组与子句C, 是正交的。该过程被称为一次正交化过程。从得到的合取范式Fe,中继续选择一个子句作为正 交项进行上述过程,直到&,中仅包含一个子句,这样,就得到一组与原始问题等价的正交子 句组。由于在正交过程中会出现大量可以简化的子句项,因此需要进行及时的化简以控制问题规 模的增加,这样将会大大加速问题的求解。作者在实验中发现,简化技术所需要的主要功能 是对子句的冗余进行删除。因此主要用到以下技术 (1)冗余子句删除在正交化过程中,会出现很多相同的子句,这些相同子句只需要保留一个即可,其它子 句被称为冗余子句。应予删除。及时地删除冗余子句有助于降低问题规模的增加。 (2)相邻子句化简如果两个子句的文字个数相同且仅有一个文字相反,其余文字相同,则称两个子句为相邻 子句,相邻子句可以合并为一个短子句,如x,vavx3和x,v;^vS为相邻子句,可合并一个子句A v x2 。(3)包含子句的删除子句C,包含子句C2是指子句d中所有的文字都包含在子句C2中。在这种情况下,C2是 冗余子句,可以从子句数据库中删除。如Ci二x,vx2包含q-AV^vx3。(4)自包含子句的化简,自包含是指子句G几乎包含子句d,即子句C2中除一个文字与d相反外,其余文字都包含在C,中。在这种情况下,d和C2归结后可以产成归结子句C,',此时,C,'包含d,因此可以用子句C,'来代替含C,,从而删除一个文字。如C, = g v jc2 v x3 C\' = C, x C2 = x2 v x3 〖C,' = x2 v x3 C2 = v x2 i ^> lC2 = & v x2以上4种简化技术可以与上节介绍的正交操作有效地结合,达到逐步简化问题的目的。 本发明的优点本发明提出的解决SAT问题的新算法,从消除子句之间的交叠信息出发,逐渐将问题简 化,从而得到SAT是否满足的结论。在算法的求解过程中,与现有的简化规则有效结合,大 大加速了问题的简化过程。该算法与原有的DPLL算法及DP算法相比,思路新,效率高,速 度快。可用于超大规模集成电路设计中,自动测试向量的生成、时序分析、逻辑验证、等价 性验证等。


图1为正交子句组的卡诺图。 图2为本发明所提出的正交算法流程图。 图3为本发明中所列举实例的正交化简前的卡诺图。 图4为本发明中所列举实例的正交化简后的卡诺图。
具体实施方式
结合子句正交化过程和4种简化技术,本发明给出了一个利用正交方法解SAT问题的新 算法,其流程图如附图2所示。为了说明本发明算法的实现过程,下面给出一个实例。F = (、 Vf3) A(S VJC2 VX3)A(A VJt3 V f4)AV53 VxjAg VX2 VX3 Vij A(X3 V X4) A(Y3 V 54).该SAT问题由4个变量,7个子句构成,每个子句在卡诺图上的覆盖情况如附图3所示。 可以看出,它们有很多的相叠部分。下面,利用算式(2)对其正交化。首先选择其中最短的一个子句作为正交项进行正交操作。 这里选择了第一个子句;c,v3^。所选择的正交项用方框表示。8F = (A vi3) aaa:3)v[(:c, vx2 vx3) a(:^ vx3 vf4) a丫3*)A(5 vx2 vx3 vi4) a(x3 vx4) a(53 vi4)]}a(、 v:v2 vx3) a" v ) a丄^^jJ^V^T a(^^:4)](X, V i3) A [(^<^:2 V A V A V A (J^JC^V^y A (J^VJ^) A (X3 V X4)]_ -................... ......................~vi3) a[(x2 v x3 v 5) av 73) a(;cv :c3) a (x3 vx4)].(4)(A v 73) a v 73) a {(x) v ;c3) v [(x2 v ;c3 v ]f4) a (JC, v x3) a (jc3 v义4 )〗}《................,--.'3-..2:」m.................................;-.: :................................................................................-v、,^ 、, 7人A ,v《V 、 A w v人l ...........J...........A(JC2 VJC3 /\ (X,'g) /\〖X3 V(5)(x; v 73) a v 73) a[(x2 v x3^yS^) a (x, v x3) a (、v x4)](、v 73) av 73) a[(x2 v x3) a (x, v x3) a (jc3 v x4)].下面,利用算式(2)对其正交化。首先选择其中最短的一个子句作为正交项进行正交操作。 这里选择了第一个子句x,v3^。所选择的正交项用方框表示。在正交操作后,可以看出,有些项因为被包含可以直接去掉,例如子句av^包含了svj^vx4,因此后者可以去掉(用斜线表示)。另外,相邻项可以直接合并,如3^v3^v&和SvSv&可以合并为一个子句SvS。 最后还有一些语句之间存在自包含关系,如jc,v^v^和;^v ,它们可以简化为 jclVJc^fe3vx4,这增加短子句出现的可能性。算式(4)及下面的算式(5)中分别用数字和箭头标 识出了 1.2节中所提到的简化方法,箭头方向为化简的原因。可以看出,4种简化方法大大控 制了问题规模的增加。化简后的合取范式除正交项外,包含3个二元子句,因此可任意选择其中一个作为下一个 正交项,本发明选择了最前面的一个子句^v3^。继续选择(5)式中除正交子句外的一个最短子句ava作为正交项。F = (x, v 3f,) a ( , v g) a (x, v x,) a {(72 ai3) v[(a v a(x3 v ;c4)]}(6)AA(jc2 vx3)继续选择(6)式中除正交子句外的一个最短子句3^v;c,vx3作为正交项cAA02vx3)A(I2 vjx:, vx3)( 3)Av73)A(x2 vx3)A(72 v;^ vx3)上式中除正交项外,仅有一个子句,因此可以判断我们已经将该问题转化为一组等价的正 交子句组W,q',q',CV,q7。在以上的正交过程中,由于利用了 1.2节中提到的化简技术,使得整个过程中子句数并没有增加(原问题子句个数为7,而每步正交简化后的子句个数为5)。 而如果不采用简化技术的话,子句个数将呈指数增加,因此是不可行的。正交化后的卡诺图如附图4所示。从化简后的卡诺图上可以看出,该例是不可满足的。另外,通过(3)式可得SC二丄+丄+丄+丄+丄二2〈1。因此,该实例是不可满足的。4 4 4 8 16 16参考文献[I] 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],正EE 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] E6n N, S6rensson 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):卜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.[II] ShangY, WahB W. A discrete lagrangian-based global-search method for solving satisfiability problems [J]. Journal of Global Optimization, 1998,12(l):61-99。
权利要求
1、一种解决可满足性问题的正交化算法,对于一个可满足式问题,用合取范式来表示,该合聚范式由若干子句“相与”组成,每个子句由若干个文字“相或”组成,其特征在于用正交化方法消除子句之间的交垒关系,并且最大限度地简化问题,最后通过判断最终的正交子句组是否覆盖整个卡诺图来判断可满足性问题是否满足,具体步骤为首先,在所有子句中寻找最短的子句作为正交项;对选择的正交项进行正交操作,同时结合进行简化操作,反复上述过程,直到除正交项外,仅剩一个子句时,终止正交化过程,得到与原子句组等价的正交子句组;然后,计算正交子句组的覆盖和<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>SC</mi><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><msup> <mn>2</mn> <mrow><mo>-</mo><msub> <mi>k</mi> <mi>i</mi></msub> </mrow></msup><mo>,</mo> </mrow>]]></math></maths>其中,n为正交子句组中所包含的子句个数,ki是第i个子句的长度,如果SC=1,则可满足性问题不满足;否则,可满足性问题满足。
2、 根据权利要求1所述的解决可满足性问题的正交化算法,其特征在于所述的正交化操作, 是对任意给定的一组子句,通过不断地运用如下算式(2)将其转化为一组等价的正交子句组<formula>formula see original document page 2</formula>其中,F是包含m个子句的原始合取范式,C,表示第/个子句,《.,'是去掉子句C,后的合取 范式;在正交化过程中,首先选择其中的一个子句C,作为正交项,然后对G取反,将它与i^'中 所有的子句进行析取,得到合取范式&,该合取范式中所有子句所构成的子句组与子句C, 是正交的;从得到的合取范式^,中继续选择一个子句作为正交项进行上述过程,直到巧、,中仅包含一个子句,这样,就得到一组与原始问题等价的正交子句组。
3、 根据权利要求l所述的解决可满足性问题的正交化算法,其特征在于所述的简化操作, 具体方法如下(1)冗余子句删除对正交化过程中出现的相同的子句,只保留其中的一个,其它子句被称为冗余子句,予以删除;(2)相邻子句化简如果两个子句的文字个数相同且仅有一个文字相反,其余文字相同,则称两个子句为相邻 子句,将相邻子句合并为一个短子句;(3) 包含子句的删除子句Q包含子句C2是指子句C,中所有的文字都包含在子句Q中,在这种情况下,C2 是冗余子句,从子句数据库中予以删除;(4) 自包含子句的化简自包含是指子句C2几乎包含子句d,即子句C2中除一个文字与d相反外,其余文字都 包含在d中,在这种情况下,将d和C2归结后产成归结子句q',此时,CV包含d,因此用子句cv来代替含d,从而删除一个文字。
全文摘要
本发明属于超大规模集成电路的形式验证技术领域,具体为一种解决SAT问题的正交化算法。该算法首先定义了子句之间的正交关系,然后,从消除子句之间的交叠信息出发,利用正交子句的特性,结合有效的简化技术,逐渐将问题简化为一组与原问题完全等价的正交子句组;最后,根据正交子句组对整个赋值空间的覆盖情况来判断SAT是否满足。本发明方法高效实用,能够加速问题的简化过程,提高解题的运算速度,可适用于超大规模集成电路设计中自动测试向量生成、时序分析、逻辑验证、等价验证等。
文档编号G06F17/50GK101295328SQ200810039209
公开日2008年10月29日 申请日期2008年6月19日 优先权日2008年6月19日
发明者电 周, 唐璞山, 荆明娥, 赵长虹 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1