统一与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的解一个bC一个bC¬一个¬bC一个¬b¬C¬一个b¬C一个=Ť[RüË c = t r u eb=Ť[RüËC=Ť[RüË

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

一个例子,给定类型的变量ÿ Ñ ˚F Ñ Ñ ,询问以下是否是 ˚F X + 2 ˚F Ý - 1 X = y - 4 可满足。SMT求解器将回答yes,解 x = 2yX一世ñŤÿ一世ñŤF一世ñŤ一世ñŤFX+2Fÿ-1个X=ÿ-4X=-2 f 0 = 1 f 1 = 3ÿ=2F0=1个F1个=3

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