不基于DPLL的SAT算法


Answers:


21

分辨率搜索(仅使用具有良好启发性的分辨率规则)是SAT求解器的另一种可能策略。从理论上讲,它比DPLL强大(即,存在证明其指数缩短的问题),DPLL只是做树分辨率,尽管您可以通过学习技巧来增强它的能力-是否使它像一般分辨率一样强大据我所知是开放的),但我不知道实际执行情况会更好。

如果您不限制自己完成搜索,那么WalkSat是本地搜索求解器,可用于查找可满足的解决方案,并在许多情况下优于基于DPLL的搜索。但是,除非有人缓存了所有失败的分配(这将意味着指数内存需求),否则不能用它来证明不满意。

编辑:忘记添加- 也可以使用切割平面(通过将SAT简化为整数程序)。尤其是Gomory足以解决任何整数程序的问题。同样在最坏的情况下,可能需要一个指数数。我认为Arora&Barak的Computational Complexity一书中有更多的证明系统示例,这些系统理论上可以用于诸如SAT求解之类的事情。再说一次,除了基于DPLL的方法或基于本地搜索的方法之外,我还没有真正实现任何快速实现。


9
具有子句学习(或称其为“不好的学习”)和重新启动的DPLL已显示等效于一般解决方案。
Jan Johannsen

1
@JanJohannsen,这是您提到的论文吗?arxiv.org/abs/1107.0044
Radu GRIGore

5
是的,以下论文也有所改进:Knot Pipatsrisawat和Adnan Darwiche。关于子句学习SAT求解器作为解析引擎的功能。人工智能175(2),2011,第512-525页。dx.doi.org/10.1016/j.artint.2010.10.002
Jan Johannsen

3
而Beame等人的论文。由Radu Grigore链接的结果表明,一般分辨率是通过DPLL算法与特定的人工学习策略进行p模拟的,上面的论文将其用于实际使用的自然学习策略。
Jan Johannsen

12

调查传播是已成功用于某些SAT问题(尤其是随机SAT实例)的另一种算法。像WalkSAT一样,它不能用来证明不满足要求,但是它基于WalkSAT截然不同的想法(消息传递算法)。



7

您也可以说,所有CSP求解器也是SAT求解器。据我所知,CSP中使用了两种方法:

  • 详尽的DFS,包括修剪搜索空间和检查弧的一致性,可能使用剃毛来确保尽快保持一致性。
  • 局部方法(禁忌搜索,模拟退火)

4

蒙特卡洛树搜索(MCTS)最近在诸如Go之类的游戏上取得了令人印象深刻的结果。粗略的基本思想是将随机模拟与树搜索交织在一起。它轻巧且易于实现,我链接的研究中心页面包含许多示例,论文和一些代码。

Previti等。[1]对适用于SAT的MCTS进行了一些初步调查。他们将基于MCTS的搜索算法称为UCTSAT(如果愿意,则为“应用于树SAT的上置信界”)。他们比较了SATLIB存储库中实例上DPLL和UCTSAT的性能,目的是查看UCTSAT是否会产生比DPLL小得多的搜索树。

对于不同大小的统一随机3-SAT和平面图着色实例,没有显着差异。但是,UCTSAT在现实世界中的实例表现更好。对于DPLL,四个不同的SSA电路故障分析实例的平均树大小(以节点数为单位)为数千,而对于UCTSAT,平均树大小始终小于200。


[1] Previti,Alessandro,Raghuram Ramanujan,Marco Schaerf和Bart Selman。“蒙特卡洛风格的UCT寻找布尔可满足性。” 在AI * IA 2011中:《围绕人与人的人工智能》,第177-188页。施普林格·柏林·海德堡,2011年。


-4

DPLL并没有严格规定变量访问顺序,并且有很多有趣的研究都在探讨最佳的变量顺序攻击策略。其中一些被并入SAT算法的变量选择逻辑中。从某种意义上说,这项研究是初步的,它表明不同的攻击顺序导致了不同的顺序约束(与实例硬度高度相关),并且设计最有效的启发法或策略来利用这一显然是关键的见解。在研究的早期阶段。


4
您了解我是否要求不基于DPLL的算法吗?
2013年

2
您了解“基于”的含义吗?告诉您:不要用我的问题来评论您想发表的任何评论!
2013年

7
您自己就是在说它们基于DPLL。在我看来,这就像是说针对单纯形的不同枢轴规则为您提供的算法不是单纯形算法
Sasho Nikolov

7
我同意Sasho。而且,关于变序启发式算法的研究绝对不是早期阶段。重要性已经很久以前就已经意识到了(想象一个完美的先知的后果),并且花费了很多时间来分析它们。在CSP求解器中,值序启发式方法变得越来越有趣,并且由于某些原因,我认为对它们的研究没有像变量序式那样蓬勃发展。
Juho 2013年

4
更具体地说,关于变量有序启发法的最初研究可以追溯到70年代。如果您有兴趣,我可以为您提供相关参考资料。
Juho 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.