如果我遇到难题,一种标准方法是将其表示为SAT实例,然后尝试在其上运行SAT解算器。另一种标准方法是将其表示为约束满足问题,然后尝试使用CSP求解器。两者在某种程度上可以用输入格式自然地表达出什么样的问题,感觉有点相似。
是否有任何准则或经验法则针对特定问题如何识别哪种方法更可能产生良好的结果?对于SAT求解器比CSP求解器能更好地处理哪些类型的问题,是否有人能提供任何指导?反之亦然?
(显然,这两种方法都可以解决一些简单的问题。还有一些困难的问题都无法通过两种方法解决。让我们将它们放在一边。指导最有用的情况是其中任何一个SAT都存在问题求解器的性能优于CSP求解器,或者CSP求解器的性能优于SAT求解器如何识别SAT求解器比CSP求解器更合适,或者CSP求解器比SAT求解器更适合SAT求解器-即首先尝试哪种方法?)
1
请注意,如果您想简化为SAT ,那么问题不会太难。
—
拉斐尔
还是为什么只关注SAT / CSP,SMT呢?
—
Juho
使用约束求解器工具的优势在于,您可以在不太难的实例上轻松尝试一些优化(例如,打破模拟的技巧)(并检查此类优化的有效性)。此外,它们中的许多可以输出标准CNF文件作为中间输出。
—
涡
好点,@ Juho!SMT也值得考虑-如果您对此有任何想法,请随时比较这三个(SAT,CSP,SMT)。
—
DW
我也有同样的问题,谢谢提问。
—
xxx ---