optimization - minisat 如何有效地找到所有 SAT 解决方案

标签 optimization satisfiability constraint-satisfaction

我找到了一种使用此 link 中描述的方式找到所有解决方案的方法.

这工作正常,但速度很慢。因为它从一开始就重新计算约束,即没有利用之前的计算。

现在,我看到了这个link , 有一种更有效的方法可以找到所有使用 MiniSat 作为库的解决方案。但是那里没有描述方法。

你能指出正确的文档以有效地找到所有 SAT 解决方案吗?

谢谢。

最佳答案

Yu、Subramanyan、Tsiskaridze 和 Malik 的论文 ("All-SAT using Minimal Blocking Clauses") 描述了一种更有效的寻找所有 SAT 解决方案的方法。

迭代寻找解决方案和添加阻塞子句的基本策略是相同的,但是阻塞子句是使用一种新颖的想法生成的,从而减小了它们的大小。产生的阻塞子句比通常的朴素部分赋值更小,因此每次迭代包含更令人满意的赋值,从而加快枚举过程。

据我所知,您可以下载和运行本文中包含的想法,但没有公开实现。

关于optimization - minisat 如何有效地找到所有 SAT 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361917/

相关文章:

c++ - C/C++编译器可以以任何方式内联C回调函数吗?

mysql - 优化 MySQL 数据存储

graph-theory - 3-sat 和 Tutte 多项式

haskell - 如何使用 picosat haskell 绑定(bind)并行运行 SAT 调用?

artificial-intelligence - 模拟退火和遗传算法之间有什么区别?

algorithm - 为什么Arc-Consistency Algorithm的复杂度是O(cd^3)?

c - 用 C 语言优化国际象棋游戏

mysql - 使用 Using temporary 解释 mysql performance 中的计划;使用文件排序;使用索引条件

algorithm - bool 可满足性 - 算法

algorithm - AC-1、AC-2 和 AC-3 算法(弧相容性)