SAT求解器在解决大型实例方面越来越有效,并在各种情况下用作后端。每当有人想要使用它们来解决特定领域中的问题时,他/她都必须提出一种即席编码,该编码不仅具有正确的解决方案集,而且可以将约束(甚至是冗余的)形式化这有助于求解器的启发式算法更快地找到解决方案。
在我看来,许多这样的编码将是非常常见的,例如:断言将一组有限的节点链接为树或DAG,或者对列表进行排序...
是否有针对优化解决方案中常见问题的通用编码的存储库/食谱书?
SAT求解器在解决大型实例方面越来越有效,并在各种情况下用作后端。每当有人想要使用它们来解决特定领域中的问题时,他/她都必须提出一种即席编码,该编码不仅具有正确的解决方案集,而且可以将约束(甚至是冗余的)形式化这有助于求解器的启发式算法更快地找到解决方案。
在我看来,许多这样的编码将是非常常见的,例如:断言将一组有限的节点链接为树或DAG,或者对列表进行排序...
是否有针对优化解决方案中常见问题的通用编码的存储库/食谱书?
Answers:
几年前,我读了一份看起来很相关的调查论文,即MagnusBjörk的“ 成功的SAT编码技术 ”。
抽象:
本文通过分析与许多知名SAT专家的访谈,确定了SAT编码的良好做法。目的是通过分析专家之间是否达成共识来确定对不同编码策略的信心,以及为SAT用户带来隐藏的知识。
人们普遍认为,编码技术通常会对SAT求解器的效率产生巨大影响,找到好的编码通常需要大量工作,并且编码的大小与找到解决方案的难度非常松散相关。被访者不同意的话题包括在SAT问题中包括算术的可行性以及是否将问题表达为条款或回路。
本文介绍了许多在不同情况下都适用的策略,例如表示数字的不同方式以及如何使用增量性。
不完全是直接的答案,而是另一个越来越紧密相关的角度:其中一些被称为SMT的相对较新的研究领域所覆盖,即满意度模理论。基本思想是将问题编码(例如,整数算术,图形等)组合到SAT解算器中,而且还使用/利用这种耦合产生的额外知识来构建更高级的求解算法。这是一项调查。正如指出的那样,与将即席编码机制与标准SAT求解器组合在一起相比,它们可以更加高效。
满意度模理论:开胃菜 /莱昂纳多·德·莫拉和尼古拉·比约纳
满意度模理论(SMT)是关于检查一种或多种理论的逻辑公式的可满足性。这个问题来自计算机科学中一些最基本的领域的结合。它结合了布尔可满足性问题和领域,例如在凸优化和术语操纵符号系统中研究的领域。它还借鉴了过去一个世纪符号逻辑中最多产的问题:决策问题,逻辑理论的完备性和不完备性,最后是复杂性理论。将每个领域的专用算法模块化组合的问题与寻找在组合环境下特别有效的新算法一样深奥,并且令人着迷。SMT在软件工程中也扮演着非常有用的角色。现代软件 硬件分析和基于模型的工具正在变得越来越复杂和多方面的软件系统。但是,它们的核心始终是使用符号逻辑来描述它们之间的状态和转换的组件。经过精心调整的SMT求解器会考虑到最新的突破,通常会比定制的临时求解器扩展几个数量级。