31、基于不一致子句集与抽象解释的约束编程研究

Max-SAT求解与约束编程的创新研究

基于不一致子句集与抽象解释的约束编程研究

1. 不一致子句集在Max - SAT求解中的应用

在Max - SAT问题求解中,不一致子句集的处理对求解效率有着重要影响。

1.1 子句集存储策略分析

在处理不一致子句集时,不同的存储策略会带来不同的效果。对于包含较多单位子句的不一致子集,由于单位子句在分支后可能用于检测更多不一致子集,所以不应存储包含超过两个单位子句的不一致子集。例如,开发的maxsatz9/14icss(yes)对单位子句数量无限制,在每个实例上的结果最差。而maxsatz14icss(5)和maxsatz14icss(yes)都基于maxsatz14,maxsatz14是目前已知的Max - 2 - SAT和Max - 3 - SAT最快的求解器。

在2 - SAT公式中,当子句与变量的比例(#clauses/#vars)较高时,如在图2(a)中,当decideStorage谓词选择存储子句数量较少的子集(maxsatz14icss(5)曲线)时,平均时间比无限制存储(maxsatz14icss(yes)曲线)快两倍多。并且,此时maxsatz14icss(yes)的搜索树大小几乎是maxsatz14icss(5)的三倍。需要注意的是,maxsatz14icss(yes)比不存储不一致子集的maxsatz14慢,而maxsatz14icss(5)比maxsatz14快。

对于3 - SAT公式,找到不一致子句集较难,且不一致子句集中的子句参与更小子集的可能性较低。从图2(b)可以看出,存储所有检测到的不一致子句集更好,maxsatz14icss(yes)是最佳选择,但maxsatz14icss(5)与maxsatz14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值