如何在 java 中使用 sat4j 将整数值分配给布尔公式的变量?

How to assign integer values to boolean formula's variables using sat4j in java?

我对 sat4j 求解器和研究布尔可满足问题完全陌生;我 stuck.I 想编写一个程序来求解布尔公式中的整数变量,例如;

x1 < x2 + x3 用户输入该公式,我的程序满足此公式(return true),如 x1 = 5,x2 = 3,x3 = 4。所以公式 return s true 并且用户获得满足 formula.Is 的整数值 可以在 sat4j 中实现它,因为我在 eclipse 中使用 java.

不确定 SAT4J 是否进行 SMT 求解...您应该寻找支持线性算术的 SMT 求解器(您的情况似乎只有差异逻辑也可以)。您可以检查:Z3(Microsoft 的 SMT 求解器)、CVC4 和 Yices。更广泛的列表在这里:https://en.wikipedia.org/wiki/Satisfiability_modulo_theories

希望这对您有所帮助...