统一与SAT解算器


10

我在Wikipedia上读到,统一是解决可满足性问题的过程。

同时,我知道这类求解器称为“ SAT求解器”或“ SMT求解器”。那么,对于同一件事,它们是否具有不同的名称?

如果您说他们不同,请指出我的治疗有缺陷。


计算机科学通常指的是“可满足性问题”,但这实际上是一般性问题的特例[在Wikipedia文章中有关统一的问题中提到],该问题可能包含更复杂的条款,例如“存在”和“为所有人”,只是布尔变量。在CS中,提及“可满足性问题”可能真的是命题或布尔可满足性问题(简称SAT)的简写。SAT中的统一过程称为解析
— vzn 2012年

Answers:


12

SAT求解器解决布尔可满足性问题。这是“确定给定布尔公式的变量是否可以以使公式计算为TRUE的方式分配的问题”。

一个例子是发现真值的赋值给变量使得 (一个∨ b ∨ Ç )∧ (¬ 一个∨ ¬ b ∨ Ç )∧ (一个∨ ¬ b ∨ ¬ Ç )∧ (¬ 一个∨ b ∨ ¬ ç )是真实的。SAT求解器可以返回诸如a = t r u e的解,一个,b,C(一个∨b∨C)∧(¬一个∨¬b∨C)∧(一个∨¬b∨¬C)∧(¬一个∨b∨¬C)一个=Ť[RüË, c = t r u e。b=Ť[RüËC=Ť[RüË

SMT求解器解决了一个更普遍的问题,即可满足性模理论。这是“逻辑公式的决策问题,涉及经典一阶逻辑中表示的背景理论与等式的组合”。这些理论可能包括“实数理论,整数理论以及各种数据结构的理论,例如列表,数组,位向量等”。

一个例子,给定类型的变量和ÿ :我Ñ 吨和˚F :我Ñ 吨→ 我Ñ 吨,询问以下是否是 ˚F (X + 2 )≠ ˚F (Ý - 1 )∧ X = (y - 4 )可满足。SMT求解器将回答yes,解 x = − 2,yX:一世ñŤÿ:一世ñŤF:一世ñŤ→一世ñŤF(X+2)≠F(ÿ-1个)∧X=(ÿ-4)X=-2, f (0 )= 1 和 f (1 )= 3。ÿ=2F(0)=1个F(1个)=3

统一是一种特殊的技术,它采用两个术语并找到使这些术语相等的替代项。例如,给定方面和b ö ö ķ (D.〜史密斯,ÿ ,2010 ),统一将产生替代{ X ↦ D·史密斯,ÿ ↦ “钓鱼” }。SMT求解器内部可能使用统一。bØØķ(X,“钓鱼”,2010)bØØķ(史密斯,ÿ,2010){X↦史密斯,ÿ↦“钓鱼”}


所有句子中的所有单词都是熟悉的,“统一可能在SMT求解器的某个地方使用了(也许在SAT求解器中使用了”),但我不明白。您还会发现SMT的这种定义,很难理解SAT是否是它的特例。
— 2012年

SAT处理命题逻辑。SMT所基于的一阶逻辑更为通用。
— 戴夫·克拉克2012年
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.