一种基于LBD和Berkmin策略删除学习子句的方法技术

技术编号:39254053 阅读:18 留言:0更新日期:2023-10-30 12:05
本发明专利技术公开了一种基于LBD和Berkmin策略删除学习子句的方法,采用混合删除策略,首先,在满足LBD删除策略的删除条件时,按照LBD值执行删除操作;然后,在满足Berkmin删除策略的删除条件时,按照活性值执行Berkmin删除操作。改变了传统LBD删除策略中固定冲突次数删除的方式,同时根据LBD阈值调节删除学习子句的数量,改善了传统LBD删除策略中每次删除一半数量学习子句的激进方式。由于LBD删除策略中执行删除操作时删除的学习子句的数量较少,可能导致学习子句数量爆炸,在后续的Berkmin删除策略中,按照学习子句活性进行重新排序,并对活性值较小的一半,按照学习子句的相关性(年龄、长度、活性值等)执行删除操作。本发明专利技术的方法简单,有效地提高了求解器的求解速度。有效地提高了求解器的求解速度。有效地提高了求解器的求解速度。

【技术实现步骤摘要】
一种基于LBD和Berkmin策略删除学习子句的方法


[0001]本专利技术涉及布尔可满足性问题SAT、布尔可满足性模理论SMT研究领域,具体涉及一种基于LBD和Berkmin策略删除学习子句的方法。

技术介绍

[0002]对于布尔可满足性问题的求解技术被广泛应用于电子设计自动化、集成电路形式验证以及模型验证等领域,一些工业领域的现实问题常常转化为可满足性问题进行求解。目前主流的布尔可满足性问题的求解流程如图1所示。首先将问题的描述性文件(CNF)作为输入,然后经过一系列预处理对公式进行化简,再采用冲突学习驱动搜索CDCL算法进行搜索解空间。CDCL的学习能力在于,通过分析冲突发生的原因,即哪些变量的赋值导致了最终的冲突,将这个原因作为一个新的约束(例如,形式上是对冲突子句取反)添加到原公式中,防止下一次搜索过程出现相同的冲突。现代CDCL搜索算法主要包括分支启发赋值、BCP传播、冲突分析、子句学习、非时序回溯等几个部分,当冲突积累到一定次数时,也会进行学习子句删除或者重启操作。随着可满足性问题在众多领域的广泛涉及,近些年涌现出一大批高效的求解器,miniSAT和Glucose就是其中最具代表性的。
[0003]由于布尔可满足性问题在求解时,它对于问题的转化描述形式存在局限性。通常来说,布尔可满足性问题在形式上是个合取范式,即CNF公式,它所包含的操作符号只能是在合取

、析取

、取非
¬
、单蕴含

以及双蕴含

操作范围内。对于更复杂的问题它是无法解决的,因此催生出了可满足性模理论的研究。可满足性模理论,是可以求解比逻辑命题更复杂的一阶逻辑问题、甚至高阶逻辑问题。可满足性模理论问题的求解基本流程如图2所示。由于其是在布尔可满足性问题求解的基础上发展而来,所以他们的求解流程很相似,因为主要的几个部分没有改变,尤其是两者都是基于CDCL算法。目前主流的可满足性模理论求解器主要有Yices2、Z3、CVC4、CVC5、Mathsat等等。
[0004]从图1、图2来看,无论是布尔可满足性问题还是可满足性模理论,当冲突积累到一定数量时,就意味着学习子句数量也会很庞大,其中大部分学习子句在后期都没有用到,这反而会影响布尔传播的速度,从而影响最终的求解速度。此时,就需要考虑采取一定的手段筛减学习子句,通常来说会保留较高质量的、删除质量较低的学习子句。
[0005]已公开专利文件CN112800681A 一种布尔可满足性求解器中学习子句的删除方法及布尔可满足性求解器中,公开了一种学习子句的删除方法,对每个学习子句的使用次数和LBD值进行记录,当触发学习子句的删除条件时,根据学习子句的使用次数和LBD值对学习子句进行删减。
[0006]学习子句的LBD值是文字块距离(Literals Blocks Distance)的简称,指学习子句所含的赋值层数。如果学习子句的LBD值越小意味着这个子句所包含的赋值层数少,变量之间的约束更加紧凑。但单纯采用基于LBD删除策略过于激进,很容易过早的删除那些后期可能用到的学习子句,从而影响整体的求解效果。

技术实现思路

[0007]有鉴于此,有必要提供一种改善传统LBD删除策略的激进方式的基于LBD和Berkmin策略删除学习子句的方法。
[0008]一种基于LBD和Berkmin策略删除学习子句的方法,所述方法包括以下步骤:步骤一,每次冲突分析后,计算学习子句的LBD值,以及学习子句集合的平均LBD值;步骤二,判断平均LBD值是否超过阈值K,若超过,则将学习子句集合按照LBD值排序,删除LBD值最大的学习子句;若未超过,则不执行删除操作;步骤三,判断冲突次数是否超过预设值,若超过预设值则转向步骤四,若未超过预设值则转向步骤一;步骤四,判断执行删除次数是否超过预设值,若超过则转向步骤五,若未超过则转向步骤一;步骤五,对学习子句集合中活性值小的部分学习子句执行Berkmin删除策略。
[0009]优选地,步骤一中的每次冲突分析后,计算学习子句的LBD值,以及学习子句集合的平均LBD值的步骤具体包括:步骤1.1,设置冲突次数i,检测到冲突后,i++;步骤1.2,进行冲突分析,生成新的学习子句;步骤1.3,对学习子句进行化简,并计算学习子句的LBD值。
[0010]优选地,步骤二中的平均LBD值的阈值K优选为6。
[0011]优选地,步骤三中的冲突次数的预设值为2000+2000*m,其中,m为执行Berkmin删除策略的次数,m的取值范围为0~n。
[0012]优选地,步骤二中的将学习子句集合按照LBD值排序,删除LBD值最大的学习子句的删除操作的步骤具体包括:设置删除次数计数器j,j的取值范围为1~n,每执行一次删除操作,计数器j增加1。
[0013]优选地,步骤四中的执行删除操作次数的预设值为学习子句的数量的预定比例值。
[0014]优选地,步骤五中的对学习子句集合中活性值小的部分学习子句执行Berkmin删除策略的步骤具体包括:步骤5.1,m为执行Berkmin删除策略的计数器,m的取值范围为0~n;若冲突次数超过预设值,则m++;步骤5.2,计算学习子句集合中各个学习子句的活性值,并排序;步骤5.3,筛选活性值小的一半学习子句,并将这一半学习子句按照其生成时间分割成新集合和旧集合;步骤5.4,在新集合中,删除子句长度大于第一子句长度预设值且活性值小于第一活性值预设值的学习子句;步骤5.5,在旧集合中,删除子句长度大于第二子句长度预设值且活性值小于第二活性值预设值的学习子句。
[0015]优选地,新集合与旧集合中的学习子句的数量的比值为1:15。
[0016]优选地,第一子句长度预设值优选为43,第一活性值预设值优选为7;第二子句长
度预设值优选为9,第二活性值预设值的阈值初始值为60。
[0017]优选地,所述方法的运行环境采用SMT求解器Yices2版本。
[0018]上述基于LBD和Berkmin策略删除学习子句的方法中,采用混合删除策略,首先,在满足LBD删除策略的删除条件时,按照LBD值执行删除操作;然后,在满足Berkmin删除策略的删除条件时,按照活性值执行Berkmin删除操作。改变了传统LBD删除策略中固定冲突次数(2000+300k)删除的方式,同时根据LBD阈值调节删除学习子句的数量,改善了传统LBD删除策略中每次删除一半数量学习子句的激进方式。由于LBD删除策略中执行删除操作时删除的学习子句的数量较少,可能导致学习子句数量爆炸,在后续的Berkmin删除策略中,按照学习子句活性进行重新排序,并对活性值较小的一半,按照学习子句的相关性(年龄、长度、活性值等)执行删除操作。本专利技术的方法简单,有效地提高了求解器的求解速度。
附图说明
[0019]图1是布尔可满足性问题求解的基本流程图。
[0020]图2是布尔可满足性模理论求解的基本流程图。
[0021本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于LBD和Berkmin策略删除学习子句的方法,其特征在于,所述方法包括以下步骤:步骤一,每次冲突分析后,计算学习子句的LBD值,以及学习子句集合的平均LBD值;步骤二,判断平均LBD值是否超过阈值K,若超过,则将学习子句集合按照LBD值排序,删除LBD值最大的学习子句;若未超过,则不执行删除操作;步骤三,判断冲突次数是否超过预设值,若超过预设值则转向步骤四,若未超过预设值则转向步骤一;步骤四,判断执行删除次数是否超过预设值,若超过则转向步骤五,若未超过则转向步骤一;步骤五,对学习子句集合中活性值小的部分学习子句执行Berkmin删除策略。2.如权利要求1所述的基于LBD和Berkmin策略删除学习子句的方法,其特征在于,步骤一中的每次冲突分析后,计算学习子句的LBD值,以及学习子句集合的平均LBD值的步骤具体包括:步骤1.1,设置冲突次数i,检测到冲突后,i++;步骤1.2,进行冲突分析,生成新的学习子句;步骤1.3,对学习子句进行化简,并计算学习子句的LBD值。3.如权利要求1所述的基于LBD和Berkmin策略删除学习子句的方法,其特征在于,步骤二中的平均LBD值的阈值K优选为6。4.如权利要求1所述的基于LBD和Berkmin策略删除学习子句的方法,其特征在于,步骤三中的冲突次数的预设值为2000+2000*m,其中,m为执行Berkmin删除策略的次数,m的取值范围为0~n。5.如权利要求1所述的基于LBD和Berkmin策略删除学习子句的方法,其特征在于,步骤二中的将学习子句集合按照LBD值排序,删除LBD值最大的学习子句的...

【专利技术属性】
技术研发人员:汪杰游海龙王子成刘美华白耿苏宇
申请(专利权)人:深圳国微芯科技有限公司
类型:发明
国别省市:

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

1