一种布尔可满足性问题求解方法及系统技术方案

技术编号:27657164 阅读:13 留言:0更新日期:2021-03-12 14:20
本发明专利技术公开了一种布尔可满足性问题求解方法及系统,所述方法包括:采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。采用本发明专利技术的技术方案,可提高布尔可满足性问题的求解速度。

【技术实现步骤摘要】
一种布尔可满足性问题求解方法及系统
本专利技术涉及电子设计自动化(ElectronicDesignAutomation,EDA)领域,尤其涉及一种布尔可满足性问题求解方法及系统。
技术介绍
可满足性问题(SAT问题)是指给出一个以合取范式格式表达的命题逻辑公式,推理判断是否存在一组或多组赋值使得这个合取范式表示的公式可满足。在可满足的情况下,算法会给出一组使得问题满足的解。自2002年至2020年,大批高效的SAT求解器和先进的算法被不断提出,其中算法主要分为两种,即CDCL(conflictdrivenclauselearning,冲突驱动子句学习)算法和SLS(stochasticlocalsearch,随机局部搜索)算法。CDCL算法是基于DPLL算法的改进,对产生的冲突进行分析,引入冲突分析、子句学习策略和非时序性回溯策略,提高了算法求解效率。基于CDCL算法框架进行改进的SAT求解器如Chaff、MiniSat、Glucose等已经在SAT问题上取得了很大的效果,当前SAT的研究主要集中在分支启发策略、单子句传播、子句学习、重启、预处理、非时序性回溯和数据结构的设计上。Chaff的作者表明,在求解过程中BCP传播占用了大量的时间,因此提出一种分支启发策略给予持续出现在冲突中的变元较高的活性分数,这样,在下一次决策时可以快速选择变元,现有的变元分支启发策略都是基于这种思路。但是,在求解的初始阶段仍然存在问题。一方面,在搜索的初始阶段,由于冲突次数太少,分支启发策略的选择是不准确的,因此选择分支变元具有一定的时间局限性。简单的说,在初始阶段,不能确定所选择赋值的自由变元在命题逻辑结构中扮演者怎样的逻辑角色,只有随着时间的推移,才能通过分支启发策略选择具有一定质量水平的变元。另一方面,初始变元的选择,直接影响整个搜索过程,选择不好的初始变元,在求解过程中虽然会产生大量冲突,但所习得的学习子句通常质量较低,会在子句库删减操作中删除。对于大多数求解器,都是采用随机赋值的方式选择初始变元,这就会使求解过程的开始阶段具备一定的空间局限性。在电子设计自动化领域,SAT求解器在搜索初始阶段的时间局限性和空间局限性尤为明显,原因在于:电子设计自动化领域往往通过先设计一些小的功能模块,再用这些小的功能模块来构筑复杂的电路,电路模块内联系紧密但各个电路模块之间的联系较少,联接各个电路模块之间的桥接变元具有划分模块的作用,即:通过分割桥接变元可以或多或少的独立解决考虑电路模块的内部关系。但此类问题转化为SAT问题之后,可能会导致一些结构信息的缺失。而且,由于随机选择初始值,不能有效选择在电路模块中扮演桥接作用的变元。造成了时间和空间的浪费。在其他领域,如软件开发等,也存在这种情况。
技术实现思路
本专利技术的目的是针对现有技术的SAT解算器随机选取第一个分支变元导致解算初始阶段存在时间局限性和空间局限性的技术问题,本专利技术提出一种布尔可满足性问题求解方法及系统。本专利技术实施例中,提供了一种布尔可满足性问题求解方法,其包括:采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。本专利技术实施例中,所述设定的阈值条件包括求解过程中冲突的次数、求解器重启的次数及求解器运行的时间。本专利技术实施例中,所述多个并行求解器通过克隆所述主求解器得到。本专利技术实施例中,所述主求解器采用以CDCL为算法框架且具有分支启发测策略、子句学习、非时序性回溯、冲突分析、重启策略的SAT求解器。本专利技术实施例中,在采用多个并行求解器对CNF实例进行多线程并行求解之前,还包括:对所述CNF实例进行预处理,解析所述CNF实例的初始化全局变量和文字及子句的关系,并进行优化。本专利技术实施例中,还提供了一种布尔可满足性问题求解系统,其包括:多个并行求解器,用于采用不同的初始变元在设定的阈值条件内对CNF实例进行多线程并行求解,并在触发阈值条件后停止求解,记录求解过程中各个变元的活性分数;主求解器,用于采用所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。本专利技术实施例中,所述设定的阈值条件包括求解过程中冲突的次数、求解器重启的次数及求解器运行的时间。本专利技术实施例中,所述多个并行求解器通过克隆所述主求解器得到。本专利技术实施例中,所述主求解器采用以CDCL为算法框架且具有分支启发测策略、子句学习、非时序性回溯、冲突分析、重启策略的SAT求解器。本专利技术实施例中,所述的布尔可满足性问题求解系统,还包括:随机赋值模块,用于为每个并行求解器产生一个随机的初始变元;选择模块,用于选择出所述多个并行求解器中的活性分数最高的变元;赋予初值模块,用于采用所述随机赋值模块产生的随机的初始变元赋予所述多个并行求解器,还用于将所述活性分数最高的变元作为初始变元赋予所述主求解器;预处理模块,用于解析所述CNF实例的初始化全局变量和文字与子句的关系,并进行优化。与现有技术相比较,采用本专利技术的布尔可满足性问题求解方法及系统,采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解,将更符合桥接变量作用的变元作为SAT求解器的初始赋值,减少因错选噪声变元为初值而造成时间、空间浪费的可能性,另外,由于选择的变元本身就具有很高活性分数,由于参与冲突越高,活性分数越大,SAT求解器一开始就会发生大量的冲突,并且将隐含冲突的其他变元优先选择出来,产生质量较高的学习子句。附图说明图1是本专利技术实施例的布尔可满足性问题求解方法的流程图。图2示出了依据本专利技术提出的布尔可满足性问题求解方法对Glucose3.0的求解策略进行改进的求解时间与原版Glucose3.0的求解时间的对比。图3是本专利技术实施例的布尔可满足性问题求解系统的结构示意图。具体实施方式本专利技术中,提供了一种布尔可满足性问题求解方法,其包括:采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。具体的,如图1所示,所述布尔可满足性问题求解方法包括步骤S1-S6。下面分别进行说明。S1:初始化主求解器。本专利技术实本文档来自技高网
...

【技术保护点】
1.一种布尔可满足性问题求解方法,其特征在于,包括:/n采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;/n每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;/n选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。/n

【技术特征摘要】
1.一种布尔可满足性问题求解方法,其特征在于,包括:
采用多个并行求解器在设定的阈值条件内对CNF实例进行多线程并行求解,其中,每个并行求解器采用不同的初始变元;
每个并行求解器在触发阈值条件后停止求解,并记录求解过程中各个变元的活性分数;
选择所述多个并行求解器得到的活性分数之和最高的变元作为主求解器的初始变元,对所述CNF实例进行求解。


2.如权利要求1所述的布尔可满足性问题求解方法,其特征在于,所述设定的阈值条件包括求解过程中冲突的次数、求解器重启的次数及求解器运行的时间。


3.如权利要求1或2所述的布尔可满足性问题求解方法,其特征在于,所述多个并行求解器通过克隆所述主求解器得到。


4.如权利要求3所述的布尔可满足性问题求解方法,其特征在于,所述主求解器采用以CDCL为算法框架且具有分支启发测策略、子句学习、非时序性回溯、冲突分析、重启策略的SAT求解器。


5.如权利要求1所述的布尔可满足性问题求解方法,其特征在于,在采用多个并行求解器对CNF实例进行多线程并行求解之前,还包括:
对所述CNF实例进行预处理,解析所述CNF实例的初始化全局变量和文字及子句的关系,并进行优化。


6.一种布尔可满足性问题求解系统,其特征在于,包括:
多个并行求解器,用于采用不同...

【专利技术属性】
技术研发人员:屈璋刘美华张岩吕红亮黄国勇毕舜阳
申请(专利权)人:国微集团深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1