Satisfiability Modulo the Theory of Nonlinear Real Arithmetic, SMT(NRA) for short, concerns the satisfiability of polynomial formulas, which are quantifier-free Boolean combinations of polynomial equations and inequalities with integer coefficients and real variables. In this paper, we propose a local search algorithm for a special subclass of SMT(NRA), where all constraints are strict inequalities. An important fact is that, given a polynomial formula with $n$ variables, the zero level set of the polynomials in the formula decomposes the $n$-dimensional real space into finitely many components (cells) and every polynomial has constant sign in each cell. The key point of our algorithm is a new operation based on real root isolation, called cell-jump, which updates the current assignment along a given direction such that the assignment can `jump' from one cell to another. One cell-jump may adjust the values of several variables while traditional local search operations, such as flip for SAT and critical move for SMT(LIA), only change that of one variable. We also design a two-level operation selection to balance the success rate and efficiency. Furthermore, our algorithm can be easily generalized to a wider subclass of SMT(NRA) where polynomial equations linear with respect to some variable are allowed. Experiments show the algorithm is competitive with state-of-the-art SMT solvers, and performs particularly well on those formulas with high-degree polynomials.
翻译:本文研究非线性实数算术理论的可满足性判定(SMT(NRA)),即涉及整数系数、实变量的多项式方程与不等式构成的无量词布尔组合——多项式公式的可满足性问题。针对一类仅含严格不等式的特殊SMT(NRA)子类,我们提出一种局部搜索算法。关键事实在于:对于含n个变量的多项式公式,其中多项式的零水平集将n维实空间分解为有限个组件(胞腔),每个多项式在各胞腔内保持恒定符号。算法核心创新是基于实根分离的新操作——"胞腔跳跃",该操作沿给定方向更新当前赋值,使赋值能从一个胞腔"跳跃"至另一胞腔。单次胞腔跳跃可调整多个变量的取值,而传统局部搜索操作(如SAT中的翻转、SMT(LIA)中的关键移动)仅改变单个变量值。我们同时设计了两级操作选择机制以平衡成功率与效率。此外,本算法可便捷推广至允许存在关于某个变量线性多项式方程的更广泛SMT(NRA)子类。实验表明,该算法与现有最先进SMT求解器性能相当,对高次多项式公式表现尤为优异。