痔疮出血吃什么药| 吲哚美辛是什么药| 菠菜什么时候传入中国| 血氧低会有什么危害| 什么是植物神经功能紊乱| 中指戴戒指什么意思| 气炎念什么| 电子商务有限公司是做什么的| 三月是什么星座| 狐臭手术挂什么科室| 吃马齿菜有什么好处| 什么的草坪| dmdm乙内酰脲是什么| 客家人为什么叫客家人| bni是什么意思| 吃什么增加白细胞最快| 意中人是什么意思| 腱鞘炎去医院挂什么科| 惆怅是什么意思| 重阳节是什么生肖| dep是什么意思| 智齿吃什么消炎药| 步履维艰是什么意思| 茔和坟有什么区别| 喝藿香正气水不能吃什么| 肠胃炎发烧吃什么药| 尿酸高吃什么水果好| 东方不败练的什么武功| 六爻是什么意思| 仲夏夜是什么时候| 湿疹是什么病的前兆| bell什么意思| 眩晕症挂什么科| 仙人掌有什么作用| 司空见惯是什么意思| 早起嘴苦是什么原因| 胚胎停育有什么症状| 得了艾滋病有什么症状| 腔梗是什么| 贝字旁的字和什么有关| 艾斯挫仑是什么药| 热毛巾敷眼睛有什么好处| 四爱是什么意思| ella是什么意思| 水灵灵是什么意思| 梦到门坏了是什么意思| 发烧挂什么科| 咳嗽肺疼是什么原因| 粉的像什么| 定力是什么意思| 热的什么| 结核杆菌是什么| 花生碎能做什么食物吃| 柠檬和什么一起泡减肥| 仲夏夜是什么时候| 结婚一年是什么婚| 国士无双是什么意思| 梦到屎是什么意思| 非洲人一日三餐吃什么| 心灵鸡汤是什么意思| 多吃火龙果有什么好处和坏处| pettm和pe有什么区别| 诺如病毒是什么症状| 海凉粉是什么做的| 通便吃什么药最快| 背靠背是什么牌子| 什么察秋毫| 医院建档是什么意思| 传染源是什么| 苏州机场叫什么名字| 突然停经是什么原因| 公安厅长是什么级别| 梦见死人的场面是什么兆头| 灵魂伴侣什么意思| 循证是什么意思| 梦见去扫墓是什么预兆| 藿香正气水有什么功效| 越南三宝是什么| 尿路感染用什么药好| 钰字五行属什么| 81是什么意思| 嘴苦口臭是什么原因造成的| 什么药和酒一起吃必死| ccr是什么意思| 耳声发射检查是什么| 呕什么意思| 网盘是什么| 指甲变厚是什么原因| 身份证号码代表什么| 感恩节什么时候| 飞蚊症用什么药物治疗最好| 酸菜鱼可以放什么配菜| sry什么意思| 925银和s925银有什么区别| 冰箱eco是什么意思| 蒸馏水是什么水| 甲状腺是由什么引起的| 尿道口流白色液体是什么病| 补铁吃什么| 男人地盘是什么生肖| 骨骼闭合了还有什么办法可以长高| 专注力是什么意思| 矜贵是什么意思| 2013年五行属什么| 骨龄什么时候闭合| 霉菌性阴炎用什么药好得快| 含字五行属什么| 胃上面是什么器官| 为什么喜欢春天| 低血压和低血糖有什么区别| 舌头辣辣的是什么原因| 游戏黑洞是什么意思| 什么情况下需要割包皮| 买单是什么意思| hpv病毒是什么意思| 梦见吃红薯是什么意思| 边字是什么结构| 猫和狗为什么是天敌| 死马当活马医是什么意思| 屁股疼挂什么科室| 黑科技是什么| 拍身份证穿什么颜色衣服| 石英表不走了是什么原因| 早起眼皮肿是什么原因引起的| 皮角是什么病| 前列腺炎该吃什么药| 肾功能不全是指什么| 甲鱼喜欢吃什么| 吃洋葱对身体有什么好处| 猫需要打什么疫苗| 单身为什么中指戴戒指| 阳光照耀是什么意思| 凌驾是什么意思| 送人礼物送什么好| 怀孕的肚子是什么样的| 美女什么都没有穿| 倒打一耙的前一句是什么| 凌五行属性是什么| 结扎是什么意思| 窦房结内游走性心律是什么意思| 养囊是什么意思| 虾腹部的黑线是什么| 气溶胶传播是什么意思| 怀孕会有什么症状| 脖子粗挂什么科| 在五行中属什么| 耳朵疼痛吃什么药| 拉黑粑粑是什么原因啊| 什么叫湿疹| 喝茶有什么好处| 眼皮突然肿了是什么原因| 夜宵是什么意思| 工作效率等于什么| 瘴气是什么意思| 口粮是什么意思| 胃火旺吃什么中成药| 老本行是什么意思| 男人为什么喜欢女人| 浇去掉三点水读什么| 脚底板出汗是什么原因| 生菜不能和什么一起吃| 正太是什么| 吃什么对肝有好处| 鸽子拉水便是什么原因| 8月15日是什么星座| 孕妇早上吃什么早餐好| 什么是五常大米| 暗示是什么意思| 两面派是什么意思| 肝硬化适合吃什么食物| 血糖高有什么反应| alt是什么意思| 什么是代词| 磨人的小妖精是什么意思| 甲状旁腺激素高吃什么药| 耐是什么意思| 平均红细胞体积偏低是什么意思| 窦性心律有什么危害| 肌酐为什么会升高| 烤瓷牙和全瓷牙有什么区别| 什么样的轮子只转不走| 前庭神经炎吃什么药| 心不在焉是什么意思| 柠檬和什么不能一起吃| dha是什么东西| 前列腺钙化是什么病| 肿瘤是什么病严重吗| 甲状腺什么症状| 什么是沙棘| 无语凝噎是什么意思| 案底是什么意思| 摩根石是什么| 吃什么可以祛痘排毒| 凭什么我买单| 焦虑症什么症状| 1943年属羊的是什么命| 6.20什么星座| 凉虾是什么做的| 什么是阿尔兹海默症| 25度穿什么衣服合适| 正太什么意思| 70年的狗是什么命| 卧底大结局是什么| 肺部真菌感染用什么药最好| 什么什么有味| 什么地方看到的月亮最大| 猫咪为什么害怕黄瓜| 丰胸吃什么食物有效果| IOM是什么意思| 又什么又什么造句| 住房公积金缴存基数是什么意思| 圈层是什么意思| 勤劳的小蜜蜂什么意思| 心窦过缓是什么原因| 潜血阳性是什么意思| 偏头疼是什么原因| 口腔溃疡用什么药最好| 十二年是什么婚| 为什么越累越胖| 线束厂是做什么的| 12月18日什么星座| 为什么子宫会隐隐作痛| 细菌计数高是什么原因| 什么药能降肌酐| 牙龈长泡是什么原因| 补钙吃什么最好| 蚕豆病是什么病有什么症状| 辛字五行属什么| 卢沟桥事变又称什么| 贵人命是什么意思| 立秋是什么时候| 三伏天吃什么| 牙周炎用什么药| 农历正月是什么星座| 男人秒射是什么原因| emba是什么意思| 太阳是什么颜色的| 蛆长什么样子| 脚上起水泡用什么药膏| 女人银屑病一般都长什么地方| 拉肚子吃什么食物好得快| 手臂粗是什么原因| 优雅是什么意思| g6pd是什么| 什么是孝顺| 防晒衣什么颜色最好| 抑扬顿挫什么意思| ed2k用什么下载| 为宜是什么意思| 8月6日什么星座| 声音嘶哑吃什么药好| 癸酉五行属什么| 健身吃什么| 张牙舞爪是什么意思| 橙子什么季节成熟| 吃红萝卜有什么好处| lz什么意思| 鸡血藤长什么样子图片| 好五行属什么| 玫瑰花茶和什么搭配好| 吃什么水果可以通便| 澄粉是什么粉| 宫颈液基细胞学检查是什么| 什么首阔步| 百度

张朝阳罕见表态“起诉前员工”:不顾规则也要有

百度 据中国证券业协会统计,131家证券公司2017年实现营业收入亿元,与2016年的亿元相比下降了%,净利润1130亿元,同比下降%。

In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) asks whether there exists an interpretation that satisfies a given Boolean formula. In other words, it asks whether the formula's variables can be consistently replaced by the values TRUE or FALSE to make the formula evaluate to TRUE. If this is the case, the formula is called satisfiable, else unsatisfiable. For example, the formula "a AND NOT b" is satisfiable because one can find the values a = TRUE and b = FALSE, which make (a AND NOT b) = TRUE. In contrast, "a AND NOT a" is unsatisfiable.

SAT is the first problem that was proven to be NP-complete—this is the Cook–Levin theorem. This means that all problems in the complexity class NP, which includes a wide range of natural decision and optimization problems, are at most as difficult to solve as SAT. There is no known algorithm that efficiently solves each SAT problem (where "efficiently" means "deterministically in polynomial time"). Although such an algorithm is generally believed not to exist, this belief has not been proven or disproven mathematically. Resolving the question of whether SAT has a polynomial-time algorithm would settle the P versus NP problem - one of the most important open problems in the theory of computing.[1][2]

Nevertheless, as of 2007, heuristic SAT-algorithms are able to solve problem instances involving tens of thousands of variables and formulas consisting of millions of symbols,[3] which is sufficient for many practical SAT problems from, e.g., artificial intelligence, circuit design,[4] and automatic theorem proving.

Definitions

edit

A propositional logic formula, also called Boolean expression, is built from variables, operators AND (conjunction, also denoted by ∧), OR (disjunction, ∨), NOT (negation, ?), and parentheses. A formula is said to be satisfiable if it can be made TRUE by assigning appropriate logical values (i.e. TRUE, FALSE) to its variables. The Boolean satisfiability problem (SAT) is, given a formula, to check whether it is satisfiable. This decision problem is of central importance in many areas of computer science, including theoretical computer science, complexity theory,[5][6] algorithmics, cryptography[7][8] and artificial intelligence.[9][additional citation(s) needed]

Conjunctive normal form

edit

A literal is either a variable (in which case it is called a positive literal) or the negation of a variable (called a negative literal). A clause is a disjunction of literals (or a single literal). A clause is called a Horn clause if it contains at most one positive literal. A formula is in conjunctive normal form (CNF) if it is a conjunction of clauses (or a single clause).

For example, x1 is a positive literal, ?x2 is a negative literal, and x1 ∨ ?x2 is a clause. The formula (x1 ∨ ?x2) ∧ (?x1x2x3) ∧ ?x1 is in conjunctive normal form; its first and third clauses are Horn clauses, but its second clause is not. The formula is satisfiable, by choosing x1 = FALSE, x2 = FALSE, and x3 arbitrarily, since (FALSE ∨ ?FALSE) ∧ (?FALSE ∨ FALSE ∨ x3) ∧ ?FALSE evaluates to (FALSE ∨ TRUE) ∧ (TRUE ∨ FALSE ∨ x3) ∧ TRUE, and in turn to TRUE ∧ TRUE ∧ TRUE (i.e. to TRUE). In contrast, the CNF formula a ∧ ?a, consisting of two clauses of one literal, is unsatisfiable, since for a=TRUE or a=FALSE it evaluates to TRUE ∧ ?TRUE (i.e., FALSE) or FALSE ∧ ?FALSE (i.e., again FALSE), respectively.

For some versions of the SAT problem, it is useful to define the notion of a generalized conjunctive normal form formula, viz. as a conjunction of arbitrarily many generalized clauses, the latter being of the form R(l1,...,ln) for some Boolean function R and (ordinary) literals li. Different sets of allowed Boolean functions lead to different problem versions. As an example, R(?x,a,b) is a generalized clause, and R(?x,a,b) ∧ R(b,y,c) ∧ R(c,d,?z) is a generalized conjunctive normal form. This formula is used below, with R being the ternary operator that is TRUE just when exactly one of its arguments is.

Using the laws of Boolean algebra, every propositional logic formula can be transformed into an equivalent conjunctive normal form, which may, however, be exponentially longer. For example, transforming the formula (x1y1) ∨ (x2y2) ∨ ... ∨ (xnyn) into conjunctive normal form yields

(x1 ∨ x2 ∨ … ∨ xn) ∧
(y1 ∨ x2 ∨ … ∨ xn) ∧
(x1 ∨ y2 ∨ … ∨ xn) ∧
(y1 ∨ y2 ∨ … ∨ xn) ∧ ... ∧
(x1 ∨ x2 ∨ … ∨ yn) ∧
(y1 ∨ x2 ∨ … ∨ yn) ∧
(x1 ∨ y2 ∨ … ∨ yn) ∧
(y1 ∨ y2 ∨ … ∨ yn);

while the former is a disjunction of n conjunctions of 2 variables, the latter consists of 2n clauses of n variables.

However, with use of the Tseytin transformation, we may find an equisatisfiable conjunctive normal form formula with length linear in the size of the original propositional logic formula.

Complexity

edit

SAT was the first problem known to be NP-complete, as proved by Stephen Cook at the University of Toronto in 1971[10] and independently by Leonid Levin at the Russian Academy of Sciences in 1973.[11] Until that time, the concept of an NP-complete problem did not even exist. The proof shows how every decision problem in the complexity class NP can be reduced to the SAT problem for CNF[a] formulas, sometimes called CNFSAT. A useful property of Cook's reduction is that it preserves the number of accepting answers. For example, deciding whether a given graph has a 3-coloring is another problem in NP; if a graph has 17 valid 3-colorings, then the SAT formula produced by the Cook–Levin reduction will have 17 satisfying assignments.

NP-completeness only refers to the run-time of the worst case instances. Many of the instances that occur in practical applications can be solved much more quickly. See §Algorithms for solving SAT below.

3-satisfiability

edit
 
The 3-SAT instance (xxy) ∧ (?x ∨ ?y ∨ ?y) ∧ (?xyy) reduced to a clique problem. The green vertices form a 3-clique and correspond to the satisfying assignment x=FALSE, y=TRUE.

Like the satisfiability problem for arbitrary formulas, determining the satisfiability of a formula in conjunctive normal form where each clause is limited to at most three literals is NP-complete also; this problem is called 3-SAT, 3CNFSAT, or 3-satisfiability. To reduce the unrestricted SAT problem to 3-SAT, transform each clause l1 ∨ ? ∨ ln to a conjunction of n - 2 clauses

(l1l2x2) ∧
(?x2l3x3) ∧
(?x3l4x4) ∧ ? ∧
(?xn?3ln?2xn?2) ∧
(?xn?2ln?1ln)

where x2,???,?xn?2 are fresh variables not occurring elsewhere. Although the two formulas are not logically equivalent, they are equisatisfiable. The formula resulting from transforming all clauses is at most 3 times as long as its original; that is, the length growth is polynomial.[12]

3-SAT is one of Karp's 21 NP-complete problems, and it is used as a starting point for proving that other problems are also NP-hard.[b] This is done by polynomial-time reduction from 3-SAT to the other problem. An example of a problem where this method has been used is the clique problem: given a CNF formula consisting of c clauses, the corresponding graph consists of a vertex for each literal, and an edge between each two non-contradicting[c] literals from different clauses; see the picture. The graph has a c-clique if and only if the formula is satisfiable.[13]

There is a simple randomized algorithm due to Sch?ning (1999) that runs in time (4/3)n where n is the number of variables in the 3-SAT proposition, and succeeds with high probability to correctly decide 3-SAT.[14]

The exponential time hypothesis asserts that no algorithm can solve 3-SAT (or indeed k-SAT for any k > 2) in exp(o(n)) time (that is, fundamentally faster than exponential in n).

Selman, Mitchell, and Levesque (1996) give empirical data on the difficulty of randomly generated 3-SAT formulas, depending on their size parameters. Difficulty is measured in number recursive calls made by a DPLL algorithm. They identified a phase transition region from almost-certainly-satisfiable to almost-certainly-unsatisfiable formulas at the clauses-to-variables ratio at about 4.26.[15]

3-satisfiability can be generalized to k-satisfiability (k-SAT, also k-CNF-SAT), when formulas in CNF are considered with each clause containing up to k literals.[citation needed] However, since for any k ≥ 3, this problem can neither be easier than 3-SAT nor harder than SAT, and the latter two are NP-complete, so must be k-SAT.

Some authors restrict k-SAT to CNF formulas with exactly k literals.[citation needed] This does not lead to a different complexity class either, as each clause l1 ∨ ? ∨ lj with j < k literals can be padded with fixed dummy variables to l1 ∨ ? ∨ ljdj+1 ∨ ? ∨ dk. After padding all clauses, 2k–1 extra clauses[d] must be appended to ensure that only d1 = ? = dk = FALSE can lead to a satisfying assignment. Since k does not depend on the formula length, the extra clauses lead to a constant increase in length. For the same reason, it does not matter whether duplicate literals are allowed in clauses, as in ?x ∨ ?y ∨ ?y.

Special instances of 3SAT

edit

Conjunctive normal form

edit

Conjunctive normal form (in particular with 3 literals per clause) is often considered the canonical representation for SAT formulas. As shown above, the general SAT problem reduces to 3-SAT, the problem of determining satisfiability for formulas in this form.

Linear SAT

edit

A 3-SAT formula is Linear SAT (LSAT) if each clause (viewed as a set of literals) intersects at most one other clause, and, moreover, if two clauses intersect, then they have exactly one literal in common. An LSAT formula can be depicted as a set of disjoint semi-closed intervals on a line. Deciding whether an LSAT formula is satisfiable is NP-complete.[16]

2-satisfiability

edit

SAT is easier if the number of literals in a clause is limited to at most 2, in which case the problem is called 2-SAT. This problem can be solved in polynomial time, and in fact is complete for the complexity class NL. If additionally all OR operations in literals are changed to XOR operations, then the result is called exclusive-or 2-satisfiability, which is a problem complete for the complexity class SL = L.

Horn-satisfiability

edit

The problem of deciding the satisfiability of a given conjunction of Horn clauses is called Horn-satisfiability, or HORN-SAT. It can be solved in polynomial time by a single step of the unit propagation algorithm, which produces the single minimal model of the set of Horn clauses (w.r.t. the set of literals assigned to TRUE). Horn-satisfiability is P-complete. It can be seen as P's version of the Boolean satisfiability problem. Also, deciding the truth of quantified Horn formulas can be done in polynomial time.[17]

Horn clauses are of interest because they are able to express implication of one variable from a set of other variables. Indeed, one such clause ?x1 ∨ ... ∨ ?xny can be rewritten as x1 ∧ ... ∧ xny; that is, if x1,...,xn are all TRUE, then y must be TRUE as well.

A generalization of the class of Horn formulas is that of renameable-Horn formulae, which is the set of formulas that can be placed in Horn form by replacing some variables with their respective negation. For example, (x1 ∨ ?x2) ∧ (?x1x2x3) ∧ ?x1 is not a Horn formula, but can be renamed to the Horn formula (x1 ∨ ?x2) ∧ (?x1x2 ∨ ?y3) ∧ ?x1 by introducing y3 as negation of x3. In contrast, no renaming of (x1 ∨ ?x2 ∨ ?x3) ∧ (?x1x2x3) ∧ ?x1 leads to a Horn formula. Checking the existence of such a replacement can be done in linear time; therefore, the satisfiability of such formulae is in P as it can be solved by first performing this replacement and then checking the satisfiability of the resulting Horn formula.

Not 3SAT problems

edit

Disjunctive normal form

edit

SAT is trivial if the formulas are restricted to those in disjunctive normal form, that is, they are a disjunction of conjunctions of literals. Such a formula is indeed satisfiable if and only if at least one of its conjunctions is satisfiable, and a conjunction is satisfiable if and only if it does not contain both x and NOT x for some variable x. This can be checked in linear time. Furthermore, if they are restricted to being in full disjunctive normal form, in which every variable appears exactly once in every conjunction, they can be checked in constant time (each conjunction represents one satisfying assignment). But it can take exponential time and space to convert a general SAT problem to disjunctive normal form; to obtain an example, exchange "∧" and "∨" in the above exponential blow-up example for conjunctive normal forms.

Exactly-1 3-satisfiability

edit

Another NP-complete variant of the 3-satisfiability problem is the one-in-three 3-SAT (also known variously as 1-in-3-SAT and exactly-1 3-SAT). Given a conjunctive normal form with three literals per clause, the problem is to determine whether there exists a truth assignment to the variables so that each clause has exactly one TRUE literal (and thus exactly two FALSE literals).

Not-all-equal 3-satisfiability

edit

Another variant is the not-all-equal 3-satisfiability problem (also called NAE3SAT). Given a conjunctive normal form with three literals per clause, the problem is to determine if an assignment to the variables exists such that in no clause all three literals have the same truth value. This problem is NP-complete, too, even if no negation symbols are admitted, by Schaefer's dichotomy theorem.[18]

XOR-satisfiability

edit

Another special case is the class of problems where each clause contains XOR (i.e. exclusive or) rather than (plain) OR operators. This is in P, since an XOR-SAT formula can also be viewed as a system of linear equations mod 2, and can be solved in cubic time by Gaussian elimination;[19]

Schaefer's dichotomy theorem

edit

The restrictions above (CNF, 2CNF, 3CNF, Horn, XOR-SAT) bound the considered formulae to be conjunctions of subformulas; each restriction states a specific form for all subformulas: for example, only binary clauses can be subformulas in 2CNF.

Schaefer's dichotomy theorem states that, for any restriction to Boolean functions that can be used to form these subformulas, the corresponding satisfiability problem is in P or NP-complete. The membership in P of the satisfiability of 2CNF, Horn, and XOR-SAT formulae are special cases of this theorem.[18]

The following table summarizes some common variants of SAT.

Name Code 3SAT problem? Restrictions Requirements Class
3-satisfiability 3SAT Yes Each clause contains 3 literals. At least one literal must be true. NP-c
2-satisfiability 2SAT Yes Each clause contains 2 literals. At least one literal must be true. NL-c
Exactly-1 3-SAT 1-in-3-SAT No Each clause contains 3 literals. Exactly one literal must be true. NP-c
Exactly-1 Positive 3-SAT 1-in-3-SAT+ No Each clause contains 3 positive literals. Exactly one literal must be true. NP-c
Not-all-equal 3-satisfiability NAE3SAT No Each clause contains 3 literals. Either one or two literals must be true. NP-c
Not-all-equal positive 3-SAT NAE3SAT+ No Each clause contains 3 positive literals. Either one or two literals must be true. NP-c
Planar SAT PL-SAT Yes The incidence graph (clause-variable graph) is planar. At least one literal must be true. NP-c
Linear SAT LSAT Yes Each clause contains 3 literals, intersects at most one other clause, and the intersection is exactly one literal. At least one literal must be true. NP-c
Horn satisfiability HORN-SAT Yes Horn clauses (at most one positive literal). At least one literal must be true. P-c
Xor satisfiability XOR-SAT No Each clause contains XOR operations rather than OR. The XOR of all literals must be true. P

Extensions of SAT

edit

An extension that has gained significant popularity since 2003 is satisfiability modulo theories (SMT) that can enrich CNF formulas with linear constraints, arrays, all-different constraints, uninterpreted functions,[20] etc. Such extensions typically remain NP-complete, but very efficient solvers are now available that can handle many such kinds of constraints.

The satisfiability problem becomes more difficult if both "for all" (?) and "there exists" (?) quantifiers are allowed to bind the Boolean variables. An example of such an expression would be ?x ?y ?z (xyz) ∧ (?x ∨ ?y ∨ ?z); it is valid, since for all values of x and y, an appropriate value of z can be found, viz. z=TRUE if both x and y are FALSE, and z=FALSE else. SAT itself (tacitly) uses only ? quantifiers. If only ? quantifiers are allowed instead, the so-called tautology problem is obtained, which is co-NP-complete. If any number of both quantifiers are allowed, the problem is called the quantified Boolean formula problem (QBF), which can be shown to be PSPACE-complete. It is widely believed that PSPACE-complete problems are strictly harder than any problem in NP, although this has not yet been proved.

Ordinary SAT asks if there is at least one variable assignment that makes the formula true. A variety of variants deal with the number of such assignments:

  • MAJ-SAT asks if at least half of all assignments make the formula TRUE. It is known to be complete for PP, a probabilistic class. Surprisingly, MAJ-kSAT is demonstrated to be in P for every finite integer k.[21]
  • #SAT, the problem of counting how many variable assignments satisfy a formula, is a counting problem, not a decision problem, and is #P-complete.
  • UNIQUE SAT[22] is the problem of determining whether a formula has exactly one assignment. It is complete for US,[23] the complexity class describing problems solvable by a non-deterministic polynomial time Turing machine that accepts when there is exactly one nondeterministic accepting path and rejects otherwise.
  • UNAMBIGUOUS-SAT is the name given to the satisfiability problem when the input formula is promised to have at most one satisfying assignment. The problem is also called USAT.[24] A solving algorithm for UNAMBIGUOUS-SAT is allowed to exhibit any behavior, including endless looping, on a formula having several satisfying assignments. Although this problem seems easier, Valiant and Vazirani have shown[25] that if there is a practical (i.e. randomized polynomial-time) algorithm to solve it, then all problems in NP can be solved just as easily.
  • MAX-SAT, the maximum satisfiability problem, is an FNP generalization of SAT. It asks for the maximum number of clauses which can be satisfied by any assignment. It has efficient approximation algorithms, but is NP-hard to solve exactly. Worse still, it is APX-complete, meaning there is no polynomial-time approximation scheme (PTAS) for this problem unless P=NP.
  • WMSAT is the problem of finding an assignment of minimum weight that satisfy a monotone Boolean formula (i.e. a formula without any negation). Weights of propositional variables are given in the input of the problem. The weight of an assignment is the sum of weights of true variables. That problem is NP-complete (see Th. 1 of [26]).

Other generalizations include satisfiability for first- and second-order logic, constraint satisfaction problems, 0-1 integer programming.

Finding a satisfying assignment

edit

While SAT is a decision problem, the search problem of finding a satisfying assignment reduces to SAT. That is, each algorithm which correctly answers whether an instance of SAT is solvable can be used to find a satisfying assignment. First, the question is asked on the given formula Φ. If the answer is "no", the formula is unsatisfiable. Otherwise, the question is asked on the partly instantiated formula Φ{x1=TRUE}, that is, Φ with the first variable x1 replaced by TRUE, and simplified accordingly. If the answer is "yes", then x1=TRUE, otherwise x1=FALSE. Values of other variables can be found subsequently in the same way. In total, n+1 runs of the algorithm are required, where n is the number of distinct variables in Φ.

This property is used in several theorems in complexity theory:

Algorithms for solving SAT

edit

Since the SAT problem is NP-complete, only algorithms with exponential worst-case complexity are known for it. In spite of this, efficient and scalable algorithms for SAT were developed during the 2000s and have contributed to dramatic advances in the ability to automatically solve problem instances involving tens of thousands of variables and millions of constraints (i.e. clauses).[3] Examples of such problems in electronic design automation (EDA) include formal equivalence checking, model checking, formal verification of pipelined microprocessors,[20] automatic test pattern generation, routing of FPGAs,[27] planning, and scheduling problems, and so on. A SAT-solving engine is also considered to be an essential component in the electronic design automation toolbox.

Major techniques used by modern SAT solvers include the Davis–Putnam–Logemann–Loveland algorithm (or DPLL), conflict-driven clause learning (CDCL), and stochastic local search algorithms such as WalkSAT. Almost all SAT solvers include time-outs, so they will terminate in reasonable time even if they cannot find a solution. Different SAT solvers will find different instances easy or hard, and some excel at proving unsatisfiability, and others at finding solutions. Recent[when?] attempts have been made to learn an instance's satisfiability using deep learning techniques.[28]

SAT solvers are developed and compared in SAT-solving contests.[29] Modern SAT solvers are also having significant impact on the fields of software verification, constraint solving in artificial intelligence, and operations research, among others.

See also

edit

Notes

edit
  1. ^ The SAT problem for arbitrary formulas is NP-complete, too, since it is easily shown to be in NP, and it cannot be easier than SAT for CNF formulas.
  2. ^ i.e. at least as hard as every other problem in NP. A decision problem is NP-complete if and only if it is in NP and is NP-hard.
  3. ^ i.e. such that one literal is not the negation of the other
  4. ^ viz. all maxterms that can be built with d1,?,dk, except d1∨?∨dk
edit

References

edit
  1. ^ Fortnow, L. (2009). "The status of the P versus NP problem" (PDF). Communications of the ACM. 52 (9): 78–86. doi:10.1145/1562164.1562186. S2CID 5969255.
  2. ^ Fortnow, L. (2021). "Fifty Years of P Versus NP and the Possibility of the Impossible" (PDF). Proceedings of ACM Conference (Conference'17).
  3. ^ a b Ohrimenko, Olga; Stuckey, Peter J.; Codish, Michael (2007), "Propagation = Lazy Clause Generation", Principles and Practice of Constraint Programming – CP 2007, Lecture Notes in Computer Science, vol. 4741, pp. 544–558, CiteSeerX 10.1.1.70.5471, doi:10.1007/978-3-540-74970-7_39, ISBN 978-3-540-74969-1, modern SAT solvers can often handle problems with millions of constraints and hundreds of thousands of variables.
  4. ^ Hong, Ted; Li, Yanjing; Park, Sung-Boem; Mui, Diana; Lin, David; Kaleq, Ziyad Abdel; Hakim, Nagib; Naeimi, Helia; Gardner, Donald S.; Mitra, Subhasish (November 2010). "QED: Quick Error Detection tests for effective post-silicon validation". 2010 IEEE International Test Conference. pp. 1–10. doi:10.1109/TEST.2010.5699215. ISBN 978-1-4244-7206-2. S2CID 7909084.
  5. ^ Karp, Richard M. (1972). "Reducibility Among Combinatorial Problems" (PDF). In Raymond E. Miller; James W. Thatcher (eds.). Complexity of Computer Computations. New York: Plenum. pp. 85–103. ISBN 0-306-30707-3. Archived from the original (PDF) on 2025-08-07. Retrieved 2025-08-07. Here: p.86
  6. ^ Aho, Alfred V.; Hopcroft, John E.; Ullman, Jeffrey D. (1974). The Design and Analysis of Computer Algorithms. Addison-Wesley. p. 403. ISBN 0-201-00029-6.
  7. ^ Massacci, Fabio; Marraro, Laura (2025-08-07). "Logical Cryptanalysis as a SAT Problem". Journal of Automated Reasoning. 24 (1): 165–203. doi:10.1023/A:1006326723002. S2CID 3114247.
  8. ^ Mironov, Ilya; Zhang, Lintao (2006). "Applications of SAT Solvers to Cryptanalysis of Hash Functions". In Biere, Armin; Gomes, Carla P. (eds.). Theory and Applications of Satisfiability Testing - SAT 2006. Lecture Notes in Computer Science. Vol. 4121. Springer. pp. 102–115. doi:10.1007/11814948_13. ISBN 978-3-540-37207-3.
  9. ^ Vizel, Y.; Weissenbacher, G.; Malik, S. (2015). "Boolean Satisfiability Solvers and Their Applications in Model Checking". Proceedings of the IEEE. 103 (11): 2021–2035. doi:10.1109/JPROC.2015.2455034. S2CID 10190144.
  10. ^ Cook, Stephen A. (1971). "The complexity of theorem-proving procedures" (PDF). Proceedings of the third annual ACM symposium on Theory of computing - STOC '71. pp. 151–158. CiteSeerX 10.1.1.406.395. doi:10.1145/800157.805047. S2CID 7573663. Archived (PDF) from the original on 2025-08-07.
  11. ^ Levin, Leonid (1973). "Universal search problems (Russian: Универсальные задачи перебора, Universal'nye perebornye zadachi)". Problems of Information Transmission (Russian: Проблемы передачи информа?ции, Problemy Peredachi Informatsii). 9 (3): 115–116. (pdf) (in Russian), translated into English by Trakhtenbrot, B. A. (1984). "A survey of Russian approaches to perebor (brute-force searches) algorithms". Annals of the History of Computing. 6 (4): 384–400. doi:10.1109/MAHC.1984.10036. S2CID 950581.
  12. ^ Aho, Hopcroft & Ullman (1974), Theorem 10.4.
  13. ^ Aho, Hopcroft & Ullman (1974), Theorem 10.5.
  14. ^ Sch?ning, Uwe (Oct 1999). "A probabilistic algorithm for k-SAT and constraint satisfaction problems" (PDF). 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039). pp. 410–414. doi:10.1109/SFFCS.1999.814612. ISBN 0-7695-0409-4. S2CID 123177576. Archived (PDF) from the original on 2025-08-07.
  15. ^ Selman, Bart; Mitchell, David; Levesque, Hector (1996). "Generating Hard Satisfiability Problems". Artificial Intelligence. 81 (1–2): 17–29. CiteSeerX 10.1.1.37.7362. doi:10.1016/0004-3702(95)00045-3.
  16. ^ Arkin, Esther M.; Banik, Aritra; Carmi, Paz; Citovsky, Gui; Katz, Matthew J.; Mitchell, Joseph S. B.; Simakov, Marina (2025-08-07). "Selecting and covering colored points". Discrete Applied Mathematics. 250: 75–86. doi:10.1016/j.dam.2018.05.011. ISSN 0166-218X.
  17. ^ Buning, H.K.; Karpinski, Marek; Flogel, A. (1995). "Resolution for Quantified Boolean Formulas". Information and Computation. 117 (1). Elsevier: 12–18. doi:10.1006/inco.1995.1025.
  18. ^ a b Schaefer, Thomas J. (1978). "The complexity of satisfiability problems" (PDF). Proceedings of the 10th Annual ACM Symposium on Theory of Computing. San Diego, California. pp. 216–226. CiteSeerX 10.1.1.393.8951. doi:10.1145/800133.804350.
  19. ^ Moore, Cristopher; Mertens, Stephan (2011), The Nature of Computation, Oxford University Press, p. 366, ISBN 9780199233212.
  20. ^ a b R. E. Bryant, S. M. German, and M. N. Velev, Microprocessor Verification Using Efficient Decision Procedures for a Logic of Equality with Uninterpreted Functions, in Analytic Tableaux and Related Methods, pp. 1–13, 1999.
  21. ^ Akmal, Shyan; Williams, Ryan (2022). MAJORITY-3SAT (and Related Problems) in Polynomial Time. pp. 1033–1043. arXiv:2107.02748. doi:10.1109/FOCS52979.2021.00103. ISBN 978-1-6654-2055-6. Archived from the original on 2025-08-07. Retrieved 2025-08-07.
  22. ^ Blass, Andreas; Gurevich, Yuri (2025-08-07). "On the unique satisfiability problem". Information and Control. 55 (1): 80–88. doi:10.1016/S0019-9958(82)90439-9. hdl:2027.42/23842. ISSN 0019-9958.
  23. ^ "Complexity Zoo:U - Complexity Zoo". complexityzoo.uwaterloo.ca. Archived from the original on 2025-08-07. Retrieved 2025-08-07.
  24. ^ Kozen, Dexter C. (2006). "Supplementary Lecture F: Unique Satisfiability". Theory of Computation. Texts in Computer Science. Springer. p. 180. ISBN 9781846282973.
  25. ^ Valiant, L.; Vazirani, V. (1986). "NP is as easy as detecting unique solutions" (PDF). Theoretical Computer Science. 47: 85–93. doi:10.1016/0304-3975(86)90135-0.
  26. ^ Buldas, Ahto; Lenin, Aleksandr; Willemson, Jan; Charnamord, Anton (2017). "Simple Infeasibility Certificates for Attack Trees". In Obana, Satoshi; Chida, Koji (eds.). Advances in Information and Computer Security. Lecture Notes in Computer Science. Vol. 10418. Springer International Publishing. pp. 39–55. doi:10.1007/978-3-319-64200-0_3. ISBN 9783319642000.
  27. ^ Gi-Joon Nam; Sakallah, K. A.; Rutenbar, R. A. (2002). "A new FPGA detailed routing approach via search-based Boolean satisfiability" (PDF). IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 21 (6): 674. doi:10.1109/TCAD.2002.1004311. Archived from the original (PDF) on 2025-08-07. Retrieved 2025-08-07.
  28. ^ Selsam, Daniel; Lamm, Matthew; Bünz, Benedikt; Liang, Percy; de Moura, Leonardo; Dill, David L. (11 March 2019). "Learning a SAT Solver from Single-Bit Supervision". arXiv:1802.03685 [cs.AI].
  29. ^ "The international SAT Competitions web page". Retrieved 2025-08-07.

Sources

edit

Further reading

edit

(by date of publication)

你喜欢我什么我改 吃阿莫西林过敏有什么症状 扬字五行属什么 生目念什么 助产学出来是干什么的
为什么青霉素要做皮试 嘴唇发白是什么原因引起的 洺字五行属什么 男生生日礼物送什么 鼠疫是由什么引起的
8000年前是什么朝代 phr是什么词性 单纯性肥胖是什么意思 姑姑和我是什么关系 olay是什么牌子
985是什么学校 夏季适合种什么花 血型o型rh阳性是什么意思 灰指甲什么症状 大生化挂什么科
11.1是什么星座zhongyiyatai.com 嘘寒问暖是什么意思xianpinbao.com 外阴白斑用什么药最好jinxinzhichuang.com 循环利息是什么意思hcv7jop4ns8r.cn 天性是什么意思hcv9jop5ns2r.cn
什么情况需要割包皮hcv8jop8ns6r.cn 糖化血红蛋白高是什么意思hcv9jop5ns6r.cn 加盟什么品牌好hcv9jop2ns0r.cn 湿疹挂什么科hcv7jop5ns6r.cn 胸部疼挂什么科kuyehao.com
无名指为什么叫无名指hcv9jop5ns4r.cn 中国国菜是什么菜weuuu.com 割包皮什么意思hcv9jop3ns0r.cn 梦到镯子碎了什么预兆hcv8jop2ns3r.cn 什么叫肠化生hcv7jop5ns2r.cn
什么体质人容易长脚气hcv9jop5ns5r.cn ofd是什么意思hcv9jop5ns4r.cn 常吃大蒜有什么好处hcv9jop1ns3r.cn 耳朵发热是什么原因hcv9jop5ns0r.cn 好样的什么意思hcv9jop1ns0r.cn
百度