The Divide and Distribute Fixed Weights algorithm (ddfw) is a dynamic local search SAT-solving algorithm that transfers weight from satisfied to falsified clauses in local minima. ddfw is remarkably effective on several hard combinatorial instances. Yet, despite its success, it has received little study since its debut in 2005. In this paper, we propose three modifications to the base algorithm: a linear weight transfer method that moves a dynamic amount of weight between clauses in local minima, an adjustment to how satisfied clauses are chosen in local minima to give weight, and a weighted-random method of selecting variables to flip. We implemented our modifications to ddfw on top of the solver yalsat. Our experiments show that our modifications boost the performance compared to the original ddfw algorithm on multiple benchmarks, including those from the past three years of SAT competitions. Moreover, our improved solver exclusively solves hard combinatorial instances that refute a conjecture on the lower bound of two Van der Waerden numbers set forth by Ahmed et al. (2014), and it performs well on a hard graph-coloring instance that has been open for over three decades.
翻译:Divide and Distribute Fixed Weights算法(ddfw)是一种动态局部搜索SAT求解算法,可以在局部最小值点将权重从满足的子句转移至虚假的子句中。ddfw在多个难度较高的组合优化实例中表现出了非凡的效果。然而,尽管这一算法成功,但自2005年以来就鲜有研究。在本文中,我们提出了三种对基本算法的修改:线性权重转移方法,可以在局部最小值点动态地在子句之间转移权重;调整满足子句在局部最小值点中的选择方式,以赋予权重;采用加权随机方法选择要翻转的变量。我们在yalsat求解器上实现了这些修改后的ddfw。我们的实验表明,相较于原始ddfw算法,在多个基准测试中,包括过去三年的SAT竞赛中的测试,我们的修改提高了求解性能。此外,我们改进的求解器仅解决了一项Ahmed等人(2014)提出的关于两个Van der Waerden数字下限的猜想所涉及的难度较大的组合优化实例,并在一个迄今为止已经存在三十多年的难度较大的图着色实例中表现出了良好的性能。