SAT和线性编程有什么区别

时间:2018-11-30 22:21:37

标签: optimization linear-programming sat

我有一个受到线性约束的优化问题。 如何知道哪种方法更适合建模和解决问题。 我通常问的是将问题解决为可满足性问题(SAT或SMT)与解决线性规划问题(ILP或MILP)。

我对这两者都不了解。因此,请简化您的答案。

1 个答案:

答案 0 :(得分:3)

通常来说,区别在于SAT仅尝试可行的解决方案,而ILP则尝试优化受约束的事物。我相信某些ILP求解器实际上使用SAT求解器来获得初始可行的解决方案。您在评论中描述的传感器阵列问题被表述为ILP:“将其最小化”。 SAT版本会选择最大可接受数量的传感器并将其用作约束。现在,这是一个可满足性的问题,但不是一个容易用合取范式表示的问题。我建议使用具有整数理论的求解器。我最喜欢的是Z3。

但是,在放弃优化之前,您应该尝试GMPL / GLPK。您的问题多么棘手,您可能会感到惊讶。如果您不太幸运,请将其变成可满足性问题,然后提出Z3。

相关问题