Questions tagged «satisfiability»

可满足性(SAT)是确定是否存在满足给定布尔公式的变量分配的问题。

3
测量SAT实例的难度
给定一个SAT实例,我希望能够估计解决该实例的难度。 一种方法是运行现有的求解器,但这种方法无法达到估算难度的目的。第二种方法可能是查看子句与变量的比率,就像在random-SAT中进行相变一样,但是我确信存在更好的方法。 给定一个SAT实例,是否有一些快速的试探法来衡量难度?唯一的条件是,这些启发式方法要比在实例上实际运行现有的SAT求解器快。 相关问题 哪些SAT问题很容易?在cstheory.SE 该问题询问有关易于处理的实例集。这是一个类似的问题,但并不完全相同。我对一种启发式方法非常感兴趣,该启发式方法对单个实例做出了某种半智能的猜测,以确定该实例是否很难解决。

2
SAT求解器的n分之一编码
我正在使用SAT解算器对问题进行编码,作为SAT实例的一部分,我具有布尔变量,其中这些变量中的一个应该为true,其余的应该为false 。(我有时将其描述为“一次性”编码。)X1个,X2,… ,xñx1,x2,…,xnx_1,x_2,\dots,x_n 我想在SAT中编码约束“一个必须为true”。编码此约束以使SAT求解器尽可能高效运行的最佳方法是什么?X1个,… ,xñx1,…,xnx_1,\dots,x_n 我可以看到许多方法来编码此约束: 成对约束。我可以为所有添加成对约束以确保至多一个为true,然后添加以确保至少一个为true 。我,Ĵ X 我X 1 ∨ X 2 ∨ ⋯ ∨ X Ѭ X一世∨ ¬ XĴ¬xi∨¬xj\neg x_i \lor \neg x_j我,Ĵi,ji,jX一世xix_iX1个∨ X2∨ ⋯ ∨ Xñx1∨x2∨⋯∨xnx_1 \lor x_2 \lor \cdots \lor x_n 这将添加子句,并且没有额外的布尔变量。Θ (n2)Θ(n2)\Theta(n^2) 二进制编码。 我可以引入新的布尔变量来表示(以二进制形式)一个整数,使得(添加一些布尔约束以确保在所需范围内)。然后,我可以添加一些约束来强制是tree,而所有其他都是false。换句话说,对于每个,我们添加强制执行子句。我1,我2,... ,我LG的Ñ我1 ≤ 我≤ Ñ 我X 我X Ĵ Ĵ 我= Ĵ …

2
是否有一种有时有效的算法来解决#SAT问题?
令为一个布尔公式,由通常的AND,OR和NOT运算符以及一些变量组成。我想计算的令人满意的作业数量。也就是说,我想找到真值的不同分配到的变量数目为其假定真值。例如,公式具有三个令人满意的赋值;有四个。这是#SAT问题。乙乙B乙乙B乙乙B乙乙B一个∨ b一种∨ba\lor b(一个∨ b )∧ (ç ∨ ¬ b)(一种∨b)∧(C∨¬b)(a\lor b)\land(c\lor\lnot b) 显然,对此问题的有效解决方案将是对SAT的有效解决方案,这不太可能,而且实际上此问题是#P完全的,因此可能比SAT严格得多。因此,我不期望有一个保证有效的解决方案。 但是众所周知,SAT本身真正困难的实例相对很少。(例如,Cheeseman 1991,“ 真正困难的问题在哪里”。)普通的修剪搜索,尽管在最坏的情况下是指数式的,但可以有效地解决许多实例。解决方法虽然在最坏的情况下是指数级的,但在实践中甚至更为有效。 我的问题是: 是否有已知算法可以快速计算一个典型布尔公式的满意赋值数量,即使这种算法在一般情况下需要指数时间也是如此?有什么比列举每个可能的任务明显更好的了吗?

3
将(数学)问题转换为SAT实例
我想要做的是将我遇到的一个数学问题转换为布尔可满足性问题(SAT),然后使用SAT解算器进行求解。我想知道是否有人知道手册,指南或任何可以帮助我将问题转换为SAT实例的内容。 另外,我想在比指数时间内更好的解决这个问题。我希望SAT解算器能对我有所帮助。

1
难解决/难解决的满意度变量的分类
最近,我在论文[1]中发现了SAT的一种特殊对称形式,称为2/2 / 4-SAT。但是那里有许多变体,例如:MONOTONE NAE-3SAT,MONOTONE 1-IN-3-SAT,...NPNP\text{NP} 其他一些变体是容易处理: -,平面NAE-,...SAT SAT222SAT考试SAT\text{SAT}SAT考试SAT\text{SAT} 是否有调查文件(或网页)对所有已证明是 -complete(或在)的(奇怪的)变体进行分类?NP PSAT考试SAT\text{SAT}NPNP\text{NP}PP\text{P} NñNNNNND. Ratner和M. Warmuth(1986)很难找到15-Puzzle 的 x扩展的最短解决方案。

1
SAT本地搜索的支持数据结构
WalkSAT和GSAT是解决布尔可满足性问题的众所周知的简单本地搜索算法。从实现GSAT算法-如何选择要翻转的文字的问题中复制了GSAT算法的伪代码。并在下面介绍。 procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to Max_Tries do S <- instantiation of variables for j:=1 to Max_Iter do if A satisfiable by S then return S endif V <- the variable whose flip yield the most important raise in the number of satisfied clauses; S …

1
实现GSAT算法-如何选择要翻转的文字?
GSAT算法在大多数情况下是直截了当的:您获得了合取范式的公式,然后翻转子句的文字,直到找到满足该公式的解,或者达到了max_tries / max_flips限制,而没有找到解。 我正在实现以下算法: procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to Max_Tries do S <- instantiation of variables for j:=1 to Max_Iter do if A satisfiable by S then return S endif V <- the variable whose flip yield the most important raise in the number of …


1
为什么最近所有的SAT求解器都在CNF而不是电路SAT上工作?
我认为,在2006年某个时候发布AIGER库以处理和反转图形之后(我认为),一些电路SAT解算器在2006-2008年发布,并且在一些SAT Races /竞赛中有AIG赛道。但是自那时以来,似乎重点一直完全放在SMT或改进子句SAT解算器上。 在我看来,专注于电路SAT似乎很有意义:许多(如果不是大多数的话)问题比CNF更自然地表达为电路SAT。电路提供了无法从CNF反向工程的结构信息,但是电路始终可以转换为CNF。而且至少在逻辑上具有重要工业意义的领域似乎特别适合AIG。 所以发生了什么事?事实证明,额外的结构信息对求解器没有帮助吗?基于AIG的SAT解决了失败的实验吗?

3
为什么没有针对SAT和其他决策问题的近似算法?
我有一个NP完全决策问题。给定问题的一个实例,我想设计一种算法,如果问题可行,则输出YES,否则输出NO。(当然,如果算法不是最佳算法,则会出错。) 对于此类问题,我找不到任何近似算法。我一直在寻找SAT,并且在Wikipedia页面上有关近似算法的内容如下:该方法的另一个局限性是它仅适用于优化问题,而不适用于“纯粹”的决策问题,例如可满足性,尽管通常可以.. 。 例如,为什么我们不将近似率定义为与算法犯错的数量成正比呢?我们如何实际以贪婪和次优方式解决决策问题?

3
SAT编码的食谱书?
SAT求解器在解决大型实例方面越来越有效,并在各种情况下用作后端。每当有人想要使用它们来解决特定领域中的问题时,他/她都必须提出一种即席编码,该编码不仅具有正确的解决方案集,而且可以将约束(甚至是冗余的)形式化这有助于求解器的启发式算法更快地找到解决方案。 在我看来,许多这样的编码将是非常常见的,例如:断言将一组有限的节点链接为树或DAG,或者对列表进行排序... 是否有针对优化解决方案中常见问题的通用编码的存储库/食谱书?

2
密集的NP完整语言表示P = NP
我们说,如果存在多项式使得,则语言是密集的所有换句话说,对于任何给定的长度,仅存在多项式中长度为多个单词,它们不在中 p | Ĵ ç ∩ Σ ñ | ≤ p (Ñ )ñ ∈ Ñ。n nJ⊆Σ∗J⊆Σ∗J \subseteq \Sigma^{*}ppp|Jc∩Σn|≤p(n)|Jc∩Σn|≤p(n) |J^c \cap \Sigma^n| \leq p(n)n∈N.n∈N.n \in \mathbb{N}.nnnññnĴ。Ĵ。J. 我目前正在研究的问题要求显示以下内容 如果存在密集的ñPñPNP语言,则P=NPP=NPP = NP 本文所建议的是考虑将多项式简化为 -,然后构造一种算法,该算法试图满足给定的公式,同时生成元素S A T C N F J c。333SATSATSATCNFCNFCNFJc.Jc.J^c. 我想知道的是 还有更直接的证据吗?在更一般的情况下知道这个概念吗?


1
为什么谢弗和马哈尼定理不暗示P = NP?
我敢肯定有人曾经考虑过这个问题,或者马上就将其取消了,但是为什么Schaefer的二分法理论和Mahaney关于稀疏集的定理并不意味着P = NP? 这是我的理由:创建一种语言,该语言等于由无限可确定稀疏集相交的SAT。那么也必须是稀疏的。由于不是琐碎的,仿射的,2饱和的或Horn-sat的,因此根据谢弗定理,它必须是NP完全的。但是,根据马哈尼定理,P = NP,我们有一个稀疏的NP-完全集。大号大号L大号大号L大号大号L 我在哪里错了?我怀疑我误解了/错误地应用了谢弗定理,但我不明白为什么。

6
在一个间隔中找到两个数字的最大异或:我们能做得比二次更好吗?
lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 天真的算法只检查所有可能的对。例如在红宝石中,我们有: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 我感觉到,我们可以做得比二次。是否有针对此问题的更好算法?

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.