SAT算法组合与分层硬度模型的性能研究
在计算机科学领域,命题可满足性问题(SAT)是一个基础且关键的问题。由于不同的SAT求解器在不同的实例上表现各异,没有一个“主导”的求解器,因此如何选择合适的求解器成为了一个重要的算法选择问题。本文将深入探讨基于经验硬度模型构建算法组合的方法,以及分层硬度模型在SAT问题中的性能表现。
1. SAT问题与算法选择挑战
SAT问题不仅自身具有研究价值,还能将其他NP完全问题编码为SAT问题并通过SAT求解器解决,如规划、调度、图着色和软件/硬件验证等问题。目前已经有许多高性能的SAT求解器,但不同求解器在不同实例上的表现差异很大,没有一个求解器能在所有无限制的SAT实例上占据主导地位。
传统的算法选择方法是“胜者全得”,即测量每个候选求解器在一组代表性问题实例上的运行时间,然后只使用表现最佳(如平均或中位数性能)的算法。然而,这种方法忽略了许多在特定实例上表现出色但平均性能不佳的算法。理想的算法选择解决方案是咨询一个能告知每个算法解决给定问题实例所需时间的神谕,然后选择性能最佳的算法,但在实际中,这种计算成本低的完美神谕是不存在的。
2. 基于经验硬度模型构建算法组合
为了解决算法选择问题,我们采用基于经验硬度模型构建算法组合的方法。该方法的离线构建步骤如下:
1. 确定目标问题实例分布 :明确要解决的问题实例的分布情况。
2. 选择候选求解器 :挑选在目标分布上运行时间相对不相关的一组候选求解器。
3. 识别问题实例特征 :利用领域知识确定能够表征问题实例
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



