62
中国科学院计算技术研究所学位论文专用纸 -i- 学位论文 分类号--------------------- 密级--------------------------- U D C --------------------- 编号---------------------------- 命题逻辑的可满足性问题:复杂性和算法 (题名) (作者姓名) 指导教师姓名 研 究 员 硕士学位 中国科学院计算技术研究所 申请学位级别 专业名称 计 算 机 科 学 理 论 论文提交日期 1997 年 6 月 论文答辩日期 1996 年 6 月 学位授予单位和日期 答辩委员会主席 评阅人

学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-i-

学位论文

分类号--------------------- 密级---------------------------

U D C --------------------- 编号----------------------------

学 位 论 文

命题逻辑的可满足性问题:复杂性和算法

(题名)

卜 东 波 (作者姓名)

指导教师姓名 白 硕 研 究 员

硕士学位 中国科学院计算技术研究所

申请学位级别 硕 士 学 位 专业名称 计 算 机 科 学 理 论

论文提交日期 1997 年 6 月 论文答辩日期 1996 年 6 月

学位授予单位和日期

答辩委员会主席

评阅人

Page 2: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

摘 要

可满足性问题( Satisfiablity 问题) 在数理逻辑、人工智能、机器学习、约束满足

问题、VLSI集成电路设计与检测以及计算机科学理论等等领域具有广阔的应用背景。可满

足性问题是第一个 NP-Complete 问题,并且是一大类 NP-Complete 问题的核心。大量的实

践表明,许多 NP-Complete 问题无论是对于计算机科学理论还是工程应用都有着至关重要

的意义。可满足性问题的重要性以及它的一些奇妙的性质促使我们从问题和算法两个角度

来研究它。

我们主要从问题本身的固有性质和快速求解算法两个角度来研究可满足性问题。值得

注意的是:这两方面的研究工作是相辅相成、互相促进、互相启发的。从问题的角度,我

们着重研究可满足性问题的相变现象以及问题实例的难度。这方面的工作更加清晰地刻划

出问题本身的固有属性,从而有助于对问题的完整认识和合理分类,并且针对于各个不同

的问题子类可以开发出更有效的算法。从算法的角度,我们分析了完备性算法和不完备性

算法的复杂性,比较了两者的优缺点和适用范围,进而提出了将以上两种算法更加完美的

结合的思想。我们提出的算法CCSAT和 USAT,即分别针对于利用不完备性算法为完备性算

法提供更强的启发式信息和利用完备性算法帮助不完备性算法处理局部极值点两个方向的

结合。通过重新认识2SA 这一结论证明的实质,也给算法的设计提供了新的思路。 T P∈

2.

问题的复杂性是问题的一个固有属性。我们试图用难度这个概念来描述和刻划它,并

且给出了难度的一个新的、形式化定义的猜想。自然界中的物质皆有其物态和相,以及随

系统序参数而发生的物质从一个相到另一个相的相变现象。作为一个复杂的计算系统,可

满足性问题也有一个奇妙的相变现象,即问题实例的可满足概率随着实例的特定序参量的

变化而发生的突变现象。我们提出了一种布尔筛模型,更加清晰地描述出相变现象。

我们主要做了以下8项工作,分为问题性质剖析类(标记为“P”)和求解算法类(标

记为“A”)。

1.(A) 完备性算法CCSAT:应用不完备性算法为完备性算法提供启发式信息,使得分

枝变量的选取更有全局性。改进了刘涛的分级重排搜索算法MSRA,提出了无级重排的思想,

使得算法的数据结构始终保持对当前子问题的精确描述,避免了无意义的检查操作以及

MSRA的时空开销。

(P) 应用布尔筛模型来解释可满足性问题的相变现象并运用回归分析的方法求得两

个重要参数,提出了拟合可满足概率的一个解析表达式,更加清晰地描述了相变现象。问题

-ii-

Page 3: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-iii-

3.

4.

5.

结和回溯操作的频率,p 越小则回溯操作越多。当 p 等于 0,USAT 退化为传统的完备性算

法;而当p等于1时,USAT变成了局部搜索算法。

6.(A) 第三类算法概率性算法:根据问题实例的规模和可满足性,我们可以将问题

分为四个子类,现有的两类算法,即完备性算法和局部搜索算法仅能处理其中的三个子类。

而对于第四个子类,即大规模的不可满足的实例,完备性算法耗时太多,局部搜索算法则

不会停机。我们提出的概率性算法则可以有效地处理它。对于可满足实例,概率性算法一

般可以快速地求出解来;对于不可满足实例,概率性算法可以很快地返回实例有解概率的

上界。这样,就彻底改变了完备性算法和局部搜索算法对于第四类问题皆无能为力的局面。

7.(A) 完备性算法 APTSAT:根据难度曲线和相变曲线可以将问题分为三个问题子

类,即易证可满足类、近相变点类和易证不可满足类。对于易证可满足类和易证不可满足

类,一般可以很快地求解或否定;而对于近相变点类却很难处理,一般需要很长时间的分

枝和回溯才能求解或否定。因而,选择分枝变量时,尽量避免子问题靠近相变区域将能够

有效地提高算法的速度。APTSAT利用 2-3-子句当量在相变意义下将2-3-SAT问题变成规整

的 3-SAT 问题,进而可以判定出子问题和相变点之间的距离及其类别,避免产生近相变点

类子问题。

8. (A) 子集剪枝规则Subset-Prune:我们首先给出了2-SAT问题是一个P问题的简化的证

,进而类似于证明中适用的技巧,提出了Subset-Prune剪枝规则,即当分枝形成的一个

子问题是原问题的子集时,可以剪掉另一个子问题而不影响对原问题是否可满足的判断。

实例的难度一直没有一个量化的严格定义,这里我们提出了难度的一个解析式定义的猜想。

(P) 针对 2-3-SAT 问题,同样应用第 2 项工作所用的方法,我们可以得到 2-子句

和 3子句约束能力的一个当量关系,证明了 2-3-SAT 问题相变点处 2-子句数目和 3-子句

数目的线性关系,并且理论分析的结果和试验数据符合得很好。这样,就可以在相变意义

下把2-3-SAT问题归结为规整的3-SAT问题。

(P) 可满足性问题也是一个约束满足问题。我们运用概率统计的方法研究了可满

足性问题的解的个数和约束数目的关系,得出了解数期望值的解析表达式;并从之推导出

相变点的上界。

(A) 完备性算法和不完备性算法的统一模型 USAT:应用完备性算法指导局部搜索

算法的逃出局部极值点操作。经过大量的实验,我们发现了局部搜索算法的一个显著的特

点,即虽然经过了很多次变量翻转操作,但是还有可观的一些变量却从未翻转过,我们称

之为基变量。换句话说,已完成的搜索操作仅仅是在一个赋值子空间,而不是在整个赋值

空间内进行的。这是,可以对基变量应用完备性算法的回溯来判定当前子空间内是否有解。

如果无解,可以翻转一些基变量来进行子空间的切换;如果可能有解,则可以将完备性算

法中推导出的新变量设置为基变量,然后从这个更好的初始点重新开始局部搜索操作。

USAT是完备性算法和不完备性算法的统一模型,它使用了一个参数p来调节单元归

Page 4: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-iv-

关键词:

题 可满足性问题 NP-Complete问题 局部搜索算法 分枝回溯算

约束满足问

难度 相变现象

Page 5: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-v-

Abstract

The satisfiablity (SAT) problem plays an important role in artificial

intelligence, machine learning, mathematical logic, VLSI design and detection and

other areas. It lies at the very heart of a family of NP-Complete problems, and

is important to both computer science and practical applications. Its importance

and interesting character attracts us to do research on it.

We procede from two aspects, one about the problem’s intrinsic features and

the other about efficient algorithms. It should be stressed that research on the

two aspects are connected tightly, and shed light on each other. From the aspect

of the intrinsic features, we studied the phase transition and the hardness of a

problem, which helps to deeply understand the problem and to divide the problems

into more precise categories. From the aspect of the efficient algorithms, we

analyzed the faults and advantages of complete and incomplete algorithms, and

proposed an idea that both categories should be combined to speed up the algorithms.

Our works are listed below. We use the flag “P” to represent works on problem’s

feature, and “A” to represent works on algorithms.

A

1. (P) A regression method is used to model the curve of the phase transition

of random 3-SAT problem. This follows the result of the paper "An Empirical Study

on the Location of 'Really' Hard 3-SAT Instances ", which was published in the

AAI-94 Workshop "Experimental Evaluation of Reasoning and Search Methods". Using

the approach, we got two parameters Alpha and Beta. Alpha represents the probability

that a randomly produced clause holds according to the truth assignment produced

randomly, while Beta represents how many values a variable can be assigned on

average. Under such a model, the phase transition point is not really in the point

that the probability of the CNF(Conjunction Normal Formula) holds equals 0.5, but

(1-1/e), about 0.63 instead.

2.(A) A local search algorithm is utilized to obtain the global information of

the CNF, which can guide how to select the branch variable. In more details, we

proposed a method to find the kernel of the CNF, which represents the most essential

constraints to the variables. Each literal in a kernel k increase in weight. The

Page 6: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

weight shows the ability of cutting the branches of the tree. This method can

somewhat speed up the complete algorithm. The kernel can also be used to design

a Back Jump algorithm.

3.(A) A new idea was implemented to apply the complete algorithm into a local

search. We introduced the concept of sub-space instead of plateau in the local

search. We used a logic deduction to justify whether the sub-space has a solution

or not. The idea avoids useless searching when there isn't any solution, and help

to construct a more accurate initializing point to start search.

In addition, we proposed a uniform algorithm USAT combining complete with

incomplete algorithm. USAT depends on only one real parameter p p, ( )0 1≤ ≤ . When

p equals 0, USAT becomes a complete algorithm, and when p equals 1, USAT is a classic local search algorithm, and when 0 1, USAT is a combining one. ≤ ≤p

4.(P) We investigated the phase transition of 2-3-SAT, and found an interesting

feature that the location of the phase transition point of 2-3-SAT is linear with

the number of 3-Clause( or 2-Clause), in other words, we found the ratio between

2-Clause and 3-Clause in the sense of constraint power. This feature will play

important role in efficient algorithms designing.

5.(A) Following the above results, we developed a complete algorithm that avoids

branching into a sub-problem that is just in the phase transition area. Using the

ratio, we can treat a 2-3-SAT as a corresponding 3-SAT problem in the sense of phase

transition, then we can determine whether an ordinary 2-3-SAT sub-problem is

probably in the phase transition area or not.

6.(A) A new method was proposed to count the number of possible solutions to a

3-SAT problem and give a superior limit of the phase transition point which is more

accurate than Dr. O. Dubois’s result in "Probalbilitics approach to the

satisfiability problem".

7.(A) With the two dimensions of scale and satisfiablity of a SAT instance, the

instances can be divided into four classes. For the ones that can be satisfied,

local search (Incomplete) is a powerful tool, while complete algorithms are good

at dealing with the ones that have small scale. But there is no suitable algorithm

for the large one without any solution. We propose a new kind of algorithm called

-vi-

Page 7: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-vii-

8.

Probability algorithms which can quickly give a superior limit of the probability

Pr(CNF=FALSE).

(A) Propose a new proof to the problem that 2-SAT is P problem. This proof suggests a new prune rule in complete algorithm for 3-SAT problems to cut off a

branch when the sub-problem is a subset of the original problem.

From the research on the intrinsic feature of the problem, we will understand

it more deeply and obtain hints to design algorithms to solve it.

Keywords:

Satisfiablity problem, NP-Complete problems, Phase transition, Hardness,

Backtrack Algorithm, Local Search

Page 8: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-viii-

目 录

第一章 引 言...................................................

1

§1.1 NP-Complete 问题和可满足性问题......................... 1

§1.2 算法的优劣:收敛性和复杂性.............................2

§1.3 论文概要 ........................ .....................3

第 二 章 可 满 足 性 问 题 综

述........................ .................5

§2.1可满足问题的表示...................... ................5

§2.2 求解 SAT问题的算法....................... ..............6

§2.2.1完备性算法....................... ................7

§2.2.2局部搜索算法(Local Search) ...................... 12

§2.3 相变现象........................ ....................16

§2.3.1物理学中的相变现象...................... ....... 16

§2.3.2可满足性问题中的相变现象........................19

第 三 章 相 变 现 象 和 难

度........................ .................21

§3.1 3-SAT问题可满足概率的布尔筛模型......................21

§3.2 2-3-SAT问题的可满足概率........................ ......26

§3.3 相变现象的统计描述........................ ...........28

§3.3.1 可能解的个数的期望值...........................28

§3.3.2 相变点上界的估计...............................33

§3.4. 总结........................ ........................34

§3.5 进一步的讨论........................ .................34

第四章 可满足性问题的求解算法........................ ..........37

§4.1完备性算法和不完备性算法的比较........................37

§4.2 求解 SAT问题的完备性算法─CCSAT(Conflicted Cycle SAT).38

§4.2.1 Crawford方案的剖析和CCSAT算法的提出............38

§4.2.2 mom策略的缺陷..................................41

Page 9: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文专用纸

-ix-

§4.2.3 无级重排........................ ...............42

§4.2.4. 实验数据........................ ..............43

§4.3求解 SAT问题算法的统一模型USAT(Uniform SAT) ..........44

2统一的算法模型USAT....

§4.3.1 GSAT算法的特点及子空间旋转策略的引入............44

§4.3. ..........................45

.....................47 §4.3.3 实验数据..................

§4.3.4 总 结.........................................48

§4.4 求解 SAT问题的第三类算法─概率性算法..................49

§4.5 完备性算法APTSAT ( Avoid Phase Transition SAT ) ........51

§4.5.1 子问题的又一种分类方法.........................52

§4.5.2完备性算法APTSAT................................52

et-Prune ...... §4.6新的剪枝规则:Subs 剪枝 .................53

................53 §4.6.1求解 2-SAT问题的P算法...........

§4.6.2 Subset-Prune 剪枝规则...........................55

第 五 章 结 束

语...........................................56

参 考 文 献............................... ...............57

硕士期间发表的论文.................................. ........60

作 者 简

...............................................61

Page 10: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-10-

第一章 引 言

§1.1 NP-Complet

在人类社会的各个领域,存在着大量的组合优化问题。而在计算机科学领域,组

的形式存在。约束满足问题一般由一组变量、变量的取值范围以及一组约束组成。约

束满

法,

e 问题和可满足性问题

合优化问题多以判定问题──约束满足问题(Constraint Satisfactory Problem)

足问题在逻辑推理、人工智能的专家系统、数据库维护和检索、VLSI 设计及检

测等领域有广泛的应用。约束满足问题可以从很多实际问题抽象出来,很多问题可以

表示成约束满足问题,它的广泛的应用背景促使人们对它进行深入细致的研究。

很长时间以来,人们试图寻找解决各种组合问题的有效算法。长期的努力在一

些问题上得到了回报,比如网络 大流问题、图的 短路问题、图的 小生成树问题

等等,都有高效的算法。然而,对于另一些可解的问题,人们迄今尚未找到有效的算

比如:布尔函数可满足性问题、调度问题、旅行商问题(Travel Salesman Problem)、

图着色问题等。根据 Edmonds 的建议,我们这里说的有效性是指算法消耗资源的规模

不超过 p n( ) ,其中, p x( )是一个多项式,n是输入实例的长度。

对于上述的第二类问题,由于既不能给出求解它的多项式时间的算法,又不能

证明这样的算法不存在,长期依赖从事算法研究的人们只得退而求其次,去试图证明

这些算法在计算上是相关的。在这个意义下, 问题分为P问题、NP将 问题、NP-Hard

问题和NP-Complete问题等子类。NP-Hard问题是指非确定图灵机在多项式时间内可

解的问题,直观上讲,NP-Complete问题是NP-Hard问题子类中 难的问题,假如有

朝一日对于某一个 NP-Complete 问题找到了一个多项式时间的算法,那么所有的

NP-Hard问题皆可以在多项式时间内可解。 Cook[1]在这一方面做出了卓越的贡

献,证明了可满足性问题是第一个NP-Complete问题,然后,Hopcroft和 Carp等人

应用多项式归结的方法陆续证明了3-SAT、三维匹配、顶点覆盖、 大团问题、Hamilton

回路和集合划分等6个基本的NP-Complete问题[2]。然而,P是否等于NP一直是一

个数学界和计算机理论界的悬而未决的难题。一个公认的猜想但尚未证明的猜想是

P NP≠ ,如果它成立的话,我们将永远不可能找到一个求解 NP-Complete 问题的

有效算法。

值得注意的是,问题的难度是问题的固有属性,虽然可以将一些 NP-Complete

成优化问题、规划问题等等,但是并不能改变问题的难度,并不能威胁到问题转化

Page 11: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

P NP≠ 猜想。

仅仅在理论上证明一个问题是 NP-Complete 问题有时是不够的,实践中的很多

要求解它,而并不是因为问题

是 -Complete的,就不去求解。大量的组合优化问题都是可计算的,即存在一个算

法,

源一般指时间资源和空间资源。有些算法虽然是收

敛的

不失为一种优秀的算法。比如线性规划中的单纯形算

法[

§1.2 算法的优劣:收敛性和复杂性

情形往往是虽然已知问题是NP-Complete的,但仍然需

NP

求解此问题的任一问题例。

衡量算法的优劣有两个层次:收敛性和复杂性[3]。收敛性是指算法是否成功,

收敛的是成功的,发散的则是失败的;复杂性是指算法的效率,指算法的资源消耗的

规模,在计算机科学里,上述的资

,但是复杂性过高,对于稍大一点规模的问题实例,算法就会变得异常慢以致无

法在可允许的时间内求解它们。

过去的复杂性理论通常是指 坏情况下的算法效率,然而大量的实际应用逐渐

改变了这种观点,平均复杂性逐渐得到重视。有些算法虽然在 坏情况下是指数级复

杂度,但是平均性能很好,仍然3][4][5],在 V. Klee和 G. Minty构造的一类线性规划问题中,单纯形算法几乎

要搜索可行域内所有的顶点才能找到 优可行解。尽管 V. Klee 和 G. Minty 构造的

规划问题在实践中从未遇到过,但是根据数学论证总是着眼于 坏情况的传统视角,

单纯形算法就不是理论上企求的好算法。一方面,在实际应用中单纯形算法总是表现

得很好;另一方面,就 坏情况而言它又是指数时间算法。所以从70年代到80年代

初期,单纯形算法一直承受着实际应用很好但是理论评价很差的巨大矛盾。从应用的

观点看, 坏情况一般很少发生,平均性能好的算法已经足够了。

求解可满足性问题的经典算法是基于分枝回溯(Backtrack)的完备性算法,近

年了又发展了回跳算法(Back Jump)、多级搜索重排(MSRA)[6]

( Local Search ),

将可

、启发式搜索等新

的思路。Gu[7]和 B.Selman[8]等提出了引人注目的局部搜索算法

满足性问题视为优化问题,从而使得 优化领域的许多成熟的结论和算法可以直

接应用,对于可解的实例表现出极为优异的性能。由于分枝回溯算法和局部搜索算法

各有千秋,为了取长补短,Crawford[9]、Bu 和 Bai[10]

行为在某一特定区域发生突变现

象,

等分别提出了将局部搜索算

法和分枝回溯算法结合的思路,并得到了良好的结果。

统计力学对于复杂系统的研究是一个有力的工具,它的应用使得仅用几个宏观

参数即可以足够精细地刻划一个复杂的微观系统。B.Huberman和 T.Hogg采用统计力

学的方法分析研究大规模的复杂计算系统,发现系统

突变点附近的小的涨落被放大,策略的微小变化就会对整个算法的性能产生极大

-11-

Page 12: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-12-

谈到的难度,不严格地说,是指由序参量确定的问题子类的平均

复杂

§1.3 论文概要

本文主要从问题的固有属性和高效的求解算法两个角度来讨论可满足性问题,本

文坚持以下宗旨:分析问题的固有属性和寻找高效的求解算法,二者必须紧密地结合,

二章首先介绍了可满足问题的定义、经典的求解算法以及相变现象、难度等

概念,综述了当前的研究成果和动态。

三章从问题剖析的角度着重讨论了可满足性问题的相变现象和难度,推导出

相变

解算法,详尽分析了完备性算法和不完备

性算

的影响。并且发现突变点附近包含了很难求解的问题实例,而其两侧较远区域一般说

来比较容易求解。

传统的复杂性理论将复杂性表示为输入长度的阶的形式,然而从实验中却发现即

使输入长度相同,问题的难易程度仍然有很大的差异,它和问题在相变曲线中位置是

相关的。我们在这里

性。

互相促进、互相启发。

随着计算机网络技术的发展,出现了大量的富有挑战性的问题,比如:大规模

数据的信息浓缩、大型信息数据库的维护以及Agent系统的规划问题等等,这也是本

文的选题背景。

本文主要由以下章节构成:

曲线的解析表达式,并据此对问题进行精细的子类划分。

第四章讨论了求解可满足性问题的求

法的优缺点,提出了4种新的求解思路和一种剪枝规则,列出大量的实验数据以

为佐证。

在第五章里,我们总结了全文,指出将来的工作方向和对整个领域发展的一点

浅见。

Page 13: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

第二章 可满足性问题综述

我们这里所说的可满足性问题特指命题逻辑中的可满足性问题,它的形式非常

简单,然而复杂性却是NP-Complete的,还有很多奇妙的性质值得研究探讨。

本章详细地介绍可满足性问题的定义,以及在这个方向上前人所做的工作,主要

包括求解可满足性问题的快速算法和相变现象研究状况。

§2.1可满足问题的表示

SAT问题是第一个NP完全问题。我们将描述这个问题时所用的术语说明如下:

-13-

u uN,... } 设U u 表示布尔变量集, = { ,1 2

定义 2.1.1: 真值赋值

关于 U的真值赋值是一个函数 t U T F, }: { t u→ 。如果 ,我们称u在赋

值 下取真值;如果 t u ,我们称u在赋值 下取假值。 t ( )

u

F= tT( ) =

定义 2.1.2: 文 字

如果 是U 的一个变量,那么u和¬u t是U 上的文字。文字u在赋值 下取真

值当且仅当变量 在赋值 下取真值;文字u t ¬u在赋值 下取真值当且仅当变量 在

赋值 下取假值。

t ut

l l

tt

如果 是U 上的文字,我们用记号 | |表示形成这个文字的原变量。

定义2.1.3 子 句

U 上的子句是U 上的一些文字的析取。子句在赋值 下取真值当且仅当子句

包含的文字中至少有一个在赋值 下取真值。

如果一个子句有 k个不同的文字构成,我们就称这个子句是一个 k -子句。

定义2.1.4合取范式 (Conjectured Normal Formula)

U 上的合取范式是U 上的一些子句的合取。合取范式赋值 下取真值(也称

为合取范式在赋值 下可满足),当且仅当合取范式包含的所有子句在赋值 下皆取

真值。

ttt

SAT(Satisfiability)问题规定如下:

实例:给定变量集U 以及U 上的合取范式C,

问:是否存在满足C的赋值 (也称为 的解)? t C SAT问题的实例有以下3种产生模型,其中前两种是随机模型,用来产生随机的

Page 14: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-14-

[7]CNF,是标准的测试用例生成方法 。

1). k 模型:在 k 模型中,CNF 中的每一个子句都是随机独立产

生的,每一个子句都恰好包含 k个文字,每个文字的生成都是等概率的,即:

SAT− SAT−

Pr( )u ui= = / N1

/uPr( ) Pr( )l u l= = = ¬ = 1 2

2). 平均 k 模型:在平均 k CNF的平均长度为

3). 实验模型:将实际生活中遇到的一些 问题,诸如调度问题、

SAT− SAT− 模型中,所有 k , 每个变量出现在每一个子句中的概率为 p,并且以非的形式出现的概率为 p / 2 。

NP-Complete

图着色问题、鸽巢问题证明过程 等,转化成SAT问题而得到的实例。

我们称一个问题实例是2-3-SAT的,如果这个实例仅仅包含2-子句和3-子句。

[11]

我们主要研究 k SAT− 模型和实验模型。

§2.2 求解SAT问题的算法:

SAT问题是一个经典的NP-Complete问题[11] [14] [40],在 坏情况下不

可能找到求解它的的多项式时间的算法,但是还是可以找到许多有实际价值的算法。

回溯

搜索

§2.2.1完备性算法

问题实例的所有的解,甚至能在问题实例无解的情况下给

出一

虽然

SAT 问题的求解算法分为完备性算法和不完备性算法两类,完备性算法以

算法为主导,而在不完备性算法中,局部搜索算法是主流。下面我们分别予以介

绍。

完备性算法能够求出

个完备的证明。尤其是后面一点很有实际意义,因为许多实际问题需要对无解性

作出判断,甚至需要作出构造性的证明,如逻辑系统的推理问题。进一步说,如果已

经对一个问题作出了无解的证明,那么以后就不用在花费大量的资源去试图找到问题

的解。基于归结策略的 Davis-Putnam 算法和 SAT#算法是经典的完备性算法。求解

SAT问题的完备性算法都是基于分枝回溯策略,是对由 N 个布尔变量形成的完全二叉

树的遍历过程。回溯搜索算法的基本过程是不断的扩展当前的部分解,如果当前部分

解已经造成矛盾而无法继续扩展,则立即回溯到更短的部分解继续扩展,直到找到问

题实例的一个解或是搜索完整棵树。 原始的分枝回溯算法是Davis、Putnam等提出

的DPL[43]算法。DPL算法的基本思路可以描述如下:

Page 15: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-15-

x2=F x3=T

ocedure Find_Model( theory )

解返回

if all variables are valued

); ( FALSE );

) ;

eory AND ¬x ));

DPL算法中,Unit_Propagate() 是单元归结过程,它使用单文字规则、纯

文字

集U x x x x= { , , , }1 2 3 4

) ( ) ( )x x x x x x x x3 4 1 4 3 2 3 4∨

Pr

INPUT:待求解的问题实例

OUTPUT:实例的一个解或者无

{ return ( TRUE ); Unit_Propagate( theory if conflict occurs, return x = select an unvalued variable; return ( Find_Model( theory AND x OR

Find_Model(th}

规则[12][13]等等进行逻辑推演,判定当前的部分赋值是否成立,若成立,则返

回TRUE;否则,返回FALSE, 并且回溯至父结点。

例如:

变量

CNF = {(x1 ∨¬ ∧ ¬ ∨ ∨¬ ∧ ¬ ∨¬ ∨¬ ∧

) } ( ) ( ) (¬ ∨ ¬ ∨ ∧ ¬ ∨ ∨ ∧ ∨ ¬ ∨ ¬x x3 4

图2.2.1.1 分枝回溯过程示例

从本质上讲,完备性算法是一种分枝限界算法[14],限界函数是布尔函数

Un

机的能力有了很大的提高,但是问题的规模的微小的增加就抵销了这种

努力

x x x x x x x1 2 3 1 2 3 2

则搜索过程可以有以下的搜索树来表示:

x1=T

x2=T

x1=F

x3=F

X XX √

it_Propagate(),当 Unit_Propagate()为假时,就进行剪枝操作。在完

备性算法中, 重要的目标就是减少分枝树的大小,从而减少分枝和回溯操作,降低

搜索时间。

尽管计算

。因而,提高速度的焦点集中在算法设计领域。对完备性算法的改进主要在以下

Page 16: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-16-

赋值较少的变量

进行分枝

(2)

(1)

(2)

两方面,一是有针对性地选择分枝扩展变量的顺序,尤其在分枝树的根部选择那些约

束强的变量进行分枝将有效地降低分枝树的大小。另一方面在于对问题进行比较明晰

的表示,通过化简约束条件或是加入新的约束条件的手段,把原来隐含的约束条件明

确地表示出来,同时保持新问题和原问题的等价性,也可以有效的减少不必要的分枝

和回溯[6]。改进剪枝能力的策略可以分为前探机制和后探机制。

前探机制一般用在选择分枝变量时,主要功能有以下两点:

(1) 选择分枝变量:一般说来,首先选择那些受约束较强、可能

,尤其在根部采取上述策略减少分枝的可能性可以有效地减少分枝树的大

小。在具体的程序设计中,一般采用优先选择在 短子句中出现 多的变量,这个策

略就是著名的 Mom( Maximum Occurences in clauses of Minimum size)策略[5][15][17]。

决定分枝变量的赋值顺序:在问题实例有解的情况下,恰当地选择适当的赋

值顺序可以避免过多的回溯,尽快地找到实例的解。而当问题实例不可满足时,由于

要遍历整棵完全二叉树,遍历所有的可能赋值,这时赋值顺序对算法的效率就没有任

何影响了。

后探机制用在搜索遇到矛盾而回溯的时候,找到造成矛盾的原因,用新约束子句

明确地表示出来,加入到原问题,这样,在回溯的时候可以直接返回到当前分枝路径

上 近的造成矛盾的分枝变量上去,而不是仅仅回溯到父节点,可以避免回溯到父节

点之后再分枝的无效搜索。这一思想也就是回跳[6](Back Jumping)。

下面将主要介绍5种比较有代表性的完备性算法:

J.Gashnig的回跳算法

回跳策略 先由J.Gashnig提出的,用在真值维护系统和Prolog的智能回溯中,

它的主导思想是在出现矛盾时,不是简单地回溯到父节点,而是回溯到造成这个矛盾

的 近的分枝节点。Gashnig的算法采用了标记技术,为每一个变量保留一个指向不

相容的 高层变量的指针,当出现矛盾时,直接回溯到当前变量指向的高层变量。

我们采用了另一种方法实现针对SAT问题的回跳方案,它采用在搜索中学习的方

法学习到造成当前矛盾的 小的分枝变量集,并以新子句的形式加入到原问题,这样

回溯的时候就会回溯到使新子句满足的节点,而不是简单地回溯到父节点。

Dubois的 C-SAT和 S-SAT算法

Dubois于 1993年提出了C-SAT和 S-SAT算法[17],分别针对于不可满足实例和

可满足实例。由于C-SAT的设计目标就是对付不可满足实例,它的搜索过程即形成一

棵完全树,C-SAT主要考虑以下两个标准:树的平衡和树的平均深度。

如果用两棵大小相差不大的子树代替原有的左子树和右子树,并且使得整棵树减

小,则说新的树比原来的树更平衡一些。因而,选择分枝变量时不仅要注意选择在

短子句中出现较多的变量,同时还要使得以正文字出现的次数和以负文字出现的次数

Page 17: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

相差 小,以保持树的平衡。

树的平均深度是指从根节点到所有叶节点的所有路径的长度的平均值。减少平均

深度对搜索树减小的作用是显而易见的。为减小树的平均深度,Dubois 采用了 3 种

策略:一是选择分枝变量时不仅考虑变量在 短子句中出现的次数,还要考虑在长子

句中出现的次数,这样才能全面地反应对变量的约束。在实际操作中,是给每个子句

一个权值,短子句的权值大,长子句的权值小。第二点是不仅考虑当前变量的出现,

还要考虑给这个变量赋值之后传播出来的其他变量的出现。这样才能精确地反应出整

个问题实例对这个变量的约束的强弱。Dubois 还采用了向前看(Local Processing)

的策略,当要选择分枝变量时,先使用单元传播的方法测试一部分未赋值变量,用意

在于尽快地发现矛盾然后回溯,或者作为传播的结果对一些变量进行赋值,实验表明

了向前看策略对减小搜索树有显著的作用。Dubois 采用的衡量分枝变量的权值函数

如下:

-17-

B F x F x F x F xC SAT− = +x U∈

F x f x f y( ) ( ) ( )= + ·

¬ + ∗ ¬max{ ( ) ( ) min( ( ), ( ))}α

其中:x y( )∨ ∈

f x Length( ) (= ∑ϕ

CNF

x clause∈

clause( ))

binary increase x

(3) Freeman的向前看(Look Forward)策略

Freeman的POSIT[15]也采用了向前看的策略,但是与Dubois的Local Processing

的不同点在于POSIT不仅仅用Look Forward来发现矛盾,还用Look Forward过程中

获得的信息来给变量赋权值。具体地说,POSIT 分别用 和

来表示给变量 x赋TRUE和 FALSE后,长度为2的子句数目

增加值, true descendents x− ( ) false d 和 escendents x− ¬( ) 表示分别给变量

赋 TRUE 和 FALSE 后,经过单元归结而给变量赋值的变量数目。变量的选择权值函数

为:

− ( )

binary increase x− ¬( )

total t l true descendants l binary increase l− = − + −cos ( ) ( ( ) ( ),α

false descendants l binary increase− l¬ + − ¬( ) ( ))

(4) Crawford的完备性算法和Local Search相结合的思路

James M. Crawford认为 Local Search 的成功之处在于它的全局观,即始终工作

在全局解向量之上,并且总是考虑所有的子句。Crawford于 1993年提出了一种结合

方案[9],即用Local Search的方法来给子句赋权值。当搜索到局部极值点时,认为

当前仍然不可满足的子句是较难满足的,增加这些子句的权值,多次重复之后,认为

子句的权值比较真实的反应了子句能否被满足的难易程度。然后定义变量的权值是所

有包含这个变量的子句的权值之和,用这个权值来指导分枝变量的选取。文[9]表明

Page 18: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-18-

(5)

作。

变量权值和以此变量为根得到的分枝树大小的协相关系数达到0.72,也就是说,得

到的变量权值可以有效地指导分枝变量的选择。

刘涛的分级重排搜索算法

刘涛于1993年提出了分级重排搜索算法MSRA[6],它的主要思想包含以下几点:

一是指在问题求解过程中,分多层对约束进行简化。对随机生成的问题实例只做一次

变量的赋权值和排序显然是不够的,MSRA的另一个方面即是对变量的动态排序策略。

后一点是指对问题实例的简化,随着分枝变量数的增加,很多子句已经被满足,这

些子句中包含的未扩展变量已经没有考虑的必要,此时只要将索引表进行简化使之精

确地表示当前的子问题就可以大大加快算法的速度。

除了以上几种主要的求解算法以外,还有许多精巧的改进策略,比如贺思敏提出

了在策略变换原则[18]的指导下利用吴方法来求解可满足性问题的思路,文[18]证明

了在给定的输入变换之下,吴方法求解可满足性问题是一种以特征列计算为核心的有

限制的子句归结过程,使得吴方法作为一种全新的求解可满足性问题的算法有了可读

性,以及高效实现的可能性。为了实现高效的剪枝,D.Pretolani[19]将可满足性问

题和超图进行类比,运用超图搜索常用的技巧来指导剪枝操

§2.2.2局部搜索算法(Local Search)

局部搜索算法是在六,七十年代求解组合优化问题时发展起来的,它的思想非常

简单,就是常说的爬山法[16]。下面是局部搜索算法的一般性描述:

Procedure local_Search

Input: 一个优化问题实例

Output: 实例的一个解

begin while( TRUE ) { x=Initilizing solution;

while( 在 x的邻域中存在解 x',并且使得 f(x')<f(x) )

{ x =x';

if( f(x) 满足要求 )

return ( x ); } }

end

Page 19: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-19-

(1)

局。

相邻,还有其他的领域定义方法,比如Hamming距离等于

2的两个

多的选

择,可以选用按固定顺序搜索的方案,也可以用从上次搜索停止处继续搜索的方案。

理策略对算法的效率和收敛性是至关重要的,各种算法的不同

也主

模拟退火[21]和遗传算

法[

在 SPARCStation1上不

出乎

意料

列局部搜索算法,在1993[7]年又发

表了

下我们将介绍两类主要的局部搜索算法:

从以上描述可以看出局部搜索算法非常简单,为运用局部搜索算法求解问题,只

需进行以下几步操作:

将原问题表示成一个优化问题,即定义一个可行域,然后定义这个可行域上

的一个目标函数。比如 N-皇后问题 [7] [16] ,它的可行域即是所有布局的集合,

而目标函数就是当前布局中发生冲突的皇后数目,当冲突数目等于零即是一个成功的

(2) 定义可行域中的邻域结构,说明怎样的两个点可以称为相邻。N-皇后问题中

两个仅有一个皇后位置不同的布局才能称为相邻,在可满足性问题中,Hamming距离

等于1的两个赋值向量称为

赋值向量等等。

(3) 在邻域中的搜索方式。常用的搜索方式有贪心策略[113[14](Greedy Method)

和 速下降策略[24][4][5],贪心策略是指只要遇到比当前可行解好的点就向前走,

而 速下降策略是走到邻域中找到下降幅度 大的点。邻域的搜索顺序也有很

(4) 如何处理局部极值点。如果一点邻域中的所有点目标函数值都比此点大,那

么这点就可以称为局部极值点。直观的说,局部极值点就是爬山法遇到的平原和低谷[16],在这些点,爬山法往往不知所措。在一些问题中,局部极值点就是全局 优点,

如凸规划问题,而对另一些问题而言,局部极值点已经满足需求。对一般的优化问题

来说,局部极值点的处

要表现在这里。

虽然局部搜索算法在运筹学界一直很活跃,80年代又以22]的形式出现,但是它进入人工智能界却是90年代的事情。

1990 年,Minton[23]等将皇后问题转化成优化问题,选取冲突树作为优化的目

标函数,得到了令人振奋的结果:一百万个皇后的无冲突布局

4分钟就能找到,这是传统的回溯搜索算法所不能想象的。

Selman对 Minton的结果表示怀疑,认为可能是皇后问题的特殊形式才使局部搜

索算法表现出如此高的效率。于是他们就转向经典的NP-Complete问题,并且估计局

部搜索算法会在这些问题上陷入局部极值点而导致低下的效率。然而实验结果却

,无论是对容易满足的实例还是较难的实例,算法都表现出良好的性能。

1990年,顾钧也报道了求解皇后问题的一系

针对求解可满足性问题的局部搜索算法。

Page 20: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-20-

乘 ,用代数加代替逻辑与,用(1-x)代替文字

(1) Bart Selman的 GSAT+Random Walk[8]策略 (离散的目标函数)

求解 SAT问题的局部搜索算法是在一个全局赋值向量的基础上,运用贪心法、梯

度下降法等等策略选取一些变量进行赋值的翻转,试图把当前未满足的子句数减小到

0,这里目标函数是当前未满足子句的个数,由一个给定的问题实例求其目标函数非

常简单,仅需用代数 算子代替逻辑或 x的出现 文字¬,x代替 x的出现即可。

x )7 8 9∨ ¬

{ , }0 1 N上的优化问题:

x x) 8 9∗ ∗

例如:

x x x x x) (2 5 6¬ ∨ ∨ ∧ ∨ ¬ CNF x x x=( ) (1 3 4∨ ∧ ¬ ∨ ¬

的在可以转化成以下

f x x x x x( ( ) (1 1 12 3 4 5 6 7∗ − ∗ ∗ − + −X x x) ( ) ) (= 1 1− ∗ +

xi ∈{ , }0 1 ; x R∈

由于目标函数是离散的,所以大部分的局部极值点以平台的形式出现,即局部极

值点

出的求解可满足性问题的算法,算法描述如下:

IPS, MAC-TRIES

put: 满足 CNF的一个赋值

h assignment

stance

) in the number of unsatisfied clauses

}

。但是 GSAT 算法的平移还是有一些盲目,未能充分利用搜索

过程

附近很多点的目标函数值相同,这是上述转化形式 主要的特点。

GSAT是 B.Selman较早提

Procedure GSAT()

Input: 一个 CNF,参数 MAX-FL

Out

{ while( TRUE ){ T:=a randomly generated trut for j:=1 to MAX-FLIPS { if T satisfies the in return ( T ); Flip any Variable in T that results in greatest decrease ( can be 0 or negative } }

GSAT 包含两个主要的部分:一是 速下降,一是平移,即移动前后目标函数值

不变,这也是和其他算法不同的地方。Selman 认为,平移可以有效地从局部极值点

逃出,发现更多的下降机会。大量地运行 GSAT 算法也表明在算法的搜索过程中,平

移占了绝大部分的比重

中得到的信息。

Page 21: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-21-

了 Ran 1994年 B.Selman又提出 dom Walk的策略,即以一定的概率 p从未满足子

句中选择一个变元变反,以 ( )1− p 的概率进行GSAT。从直观上讲,就是通过一定的

上升移动从局部极值点中逃出来。在这一点上是和模拟退火算法的思想是一致的。

[Se 的有效性。

策略详细描述如下:

AT scheme, i ,e. make the best possible local move.

AT问题变换连续优化问题,这样就可以直接利

用规

[20] 出 将 SAT

lman etal]表明了Random Walk 策略

Random Walk

Random Walk Strategy With probability p , pick a variable occurring in some unsatisfied clause and Flip its truth assignment. With probability (1-p) , follow the standard GS

(2) 顾钧、黄文奇的非线性规划方向 (连续的目标函数)

求解 SAT问题的另一种思路是将S

划领域已经成熟的结果和算法。

1994年,顾钧 提 了一种 问题转化成RN 上无约束的连续优化问题

的思路。例如:仍对上例的CNF,

x )7 8 9∨ ¬

yp p( )921−

CNF x x x x x x x x=( ) ( ) (3 4 5 6∨ ¬ ∨ ∧ ¬ ∨ ¬ ∨ ∧ ∨ ¬

化成以下的优化问题:

1 2

f Y y y y y y y y y( ) ( ) ( ) ( ) ( ) ( ) ( ) (= + +1 2 3 4 5 6 7 81 1 1 1 1 1 1+ − + + − + −p p p p p p p) ( )2 2 2 2 2 2 2 21− 其中:y Ri ∈ ,p是正整数。实例可满足的充分必要条件是存在向量Y使得f(y)

等于[25] [26]

了丰富的社会经验,拟人途径就是指使用这些经

验来

信对算法设计来说,直观

想法

下:局部搜索算法可以在 24 小时内求解 2000 个变量、8600 个子句的随机 3-SAT 问

0。

李未和黄文奇 于1994年从物理模型出发,转化成另一种有约束的优化

问题。尤其值得注意的是他们采用的拟人拟物的思路,所谓拟物即是寻找到于原始数

学问题等价的物理世界并观察这个世界中的物质运动的生动形态,然后从中得到启发

以求解数学问题。由于物理状态的演化天然地是按照使其 Lagrange 函数积分达到

小的方式进行,这就决定了拟物途径 终在数学上会落实为优化问题。然而在用数学

方法求解优化问题时,有时会掉进局部极小值的陷井,此时拟物策略已经无能为力,

但是人类在几千年的社会实践中得到

设计更好的跳出局部极值点的策略。

实验表明拟物拟人途径是一种非常有效的策略,我们相

和类比远比抽象的数学推理更富有创造性和启发性。

目前的算法研究主要针对于位于相变区域内的那些难解问题,近期的研究状况如

Page 22: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-22-

题( SunSparc Station 20, 32M内存,Solaris OS);完备性算法可以在1小时内求

解350个变量、1487个子句的随机3-SAT问题[17]。(SunSparc Station 10, Unix OS)。

近据说完备性算法可以在 24 小时之内求解 500 个变量的随机 3-SAT 问题,但是还

没有看到更详细的报道。

§2.3 相变现象

相变现象本是物理学中的术语,用来指复杂的物理系统从一个相到另一个相的突

变现象,而复杂性理论借用这个名词表示大规模计算系统的一些特性随一些特定参数

的变化而发生的突变现象。

§2.3.1物理学中的相变现象

复杂系统的研究由来已久,早在18世纪,Newton等人试图用机械的、分析的观

点和方法来分析复杂系统,结果遭到失败。后来Carnot和 Boltzman[27]等在制造热

机的过程中,研究了相互弱作用的宏观系统,由此创立了热力学。

我们知道,力学是研究少量粒子的运动规律和相互作用的科学,而对于宏观系统

即有大量客体组成的系统是无能为力的。适宜于宏观系统的一套行之有效的描述系统

是使用诸如温度、压力、能量、熵等宏观参量的热力学描述。力学和热力学分别针对

于微观和宏观这两个极端情形,使得它们相反相成的基本根据就是宏观系统是由极其

大量的微观粒子组成的,热力学是对大量微观的、力学的运动的“平均”的结果[28]。

相互作用导致有序和组织,热运动导致无序和混乱。从热力学看,这两种矛盾的

倾向表现为系统内能 U 和热运动与无序的宏观度量 ST 的消长。相变是一种倾向改过

另一种倾向时发生的突变。在缓慢降温的过程中,每当一种相互作用的能量足以和热

运动能量 ST 相抗衡[29],物质的宏观状态就可能发生突变。换句话说,每当温度低

到一定程度,以致于热运动不再能破坏某种特定的相互作一造成的秩序是,就会形成

一个新的相。多种多样的相互作用导致形形色色的相,愈是走向低温,更加精细的相

就得以呈现出来。然而,新相重视突然出现的,同时伴游许多物理性质的急剧变化。

相变现象可以看作从一种有序状态到另一种有序状态的变化,相变发生在两种有序状

态的交界处,相变点附近是一种无序的状态。

自然界中物质有固、液、气三态,还有多彩多姿的相变现象。比如日常生活中的

电饭锅的高温自动断电就是利用各向异性的铁磁体的相变现象。当温度高于居里点

Page 23: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

时,热运动占主要地位,各个小磁矩的取两种方向的机会相等,宏观上平均磁化强度

等于0。当温度低于居里点时,磁矩间的相互作用压过热运动的干扰,自发地表现出

宏观磁矩,而在居里点附近发生的变化是一种突变。

下图是氩在相变点附近的比热特性图[

28]:

-23-

20

(Cv/k)

10

0

0 1.0 1.5 (T/Tc)

图2.3.1.1 氩的比热特性相变

除了以上随温度变化而发生的相变,还有许多随其他参数发生的“几何”相变。

比如用尺寸相同的绝缘小球和导电小球堆成一个立体,如果导电球在总球数中占的比

例P太小,则肯定不会出现完全的导电通路;如果所有求都是导电球,即P等于1,

整个立体当然是导电体。在P从 0到 1的增加过程中完全通路是突然出现的。由于导

电球是杂乱无章地出现在立体中,每个P应当对应于一定的导通概率。下图表示这个

几何相变现象[29]。

1

0

0 Pc P 1

图2.3.1.2 几何相变现象──导通率突变

值得特别指出的是,虽然相变的原因和现象极为错综复杂,但是在相变点附近,

各种物理量的奇异性十分相似。只要合适地选择比例尺,铁磁体的比热尖峰可以重叠

在气液相变临界点的比热曲线上。

Page 24: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

§2.3.2可满足性问题中的相变现象

可满足性问题中也有一个相变现象,即问题实例的可满足概率随着问题规模参数

的变化而发生突变。下图中虚线是3-SAT问题的可满足概率的相变曲线,横轴是子句

数和变量数的比值。

图2.3.2.1 3-SAT 问题的相变曲线和难度曲线

从上图可以看出可满足概率曲线在 K/N 约等于 4.25 附近发生突变,传统的看法

认为相变点处的可满足概率等于0.5, 对于 2-SAT、4-SAT、5-SAT等同样存在着相变

现象。

相变现象是SAT问题的一个重要特性,在这方面也做了许多的工作,得到了许多

很有意思的结论。

Cheeseman[30]的实验首先证实了相变现象的存在,Mitchell[36]进一步讨论了

这一现象并说明了困难的实例多出现在相变区域。

Kirkpatrick and Selman[31]用放缩比例尺方法将不同问题的相变曲线合一。

Dubois[32]从可能解的个数的视角出发,求得相变点的上界。

Shuo Bai和 Tao Liu[33]提出了一种全新的思路,构造了布尔筛模型,对相变现

象给出了一个比较合理的解释。

相变现象还引发了可满足性问题的另一个相关的性质:问题的难度。虽然问题的

难度和算法复杂性是两个截然不同的概念,但问题的难度还是能够通过算法复杂性在

一定程度上表示出来。从直观上理解,算法的复杂性给出了问题难度的一个上界。图

中的钟形实线是难度的示意,在相变点两侧较远的距离,大部分问题实例都很容易求

解,而在相变点附近,所有的算法都表现出很差的性能。并且相变点附近微小的涨落

都有可能被放大,看上去微小的算法技巧的改进会极大地提高算法的效率,这一点体

现了浓厚的混沌[34]色彩。

-24-

Page 25: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-25-

1) 2)

约束满足问题中广泛地存在着相变现象,比如图的 K-着色问题,Hamilton 回路

问题等等[6]。

总之,求解算法和相变现象是可满足性问题领域研究的焦点,Crawford认为当

前的可满足性问题领域有两大挑战:

. 用完备性算法求解500个变量的位于相变区域的问题实例。

. 精确估计相变点到小数点后3~4位。

Page 26: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

第三章 相变现象和难度

SAT问题可以转化成线性整数问题、非线性优化问题,但是问题的难解性并未随

形式的改变而改变,这说明它们含有某种共同的决定难度的特性。

相变现象是SAT问题非常奇妙的性质,和难度有着紧密的联系,正确地认识这一

现象有助设计高效的求解算法。

本章介绍我们在这个方向上所做的三项工作,具体包括相变现象的数学模型、一

定约束条件下可能解的个数、不同长度子句间的约束能力比较三个方面。

§3.1 3-SAT 问题可满足概率的布尔筛模型

在文[35]中,Shuo Bai 和 Dongbo Bu 提出了 3-SAT 问题的布尔筛模型。即:任

一布尔赋值看作一个通透率为 7/8 的布尔筛,对 3-子句进行过滤。布尔赋值使子句

可满足,则子句可以通过;否则被阻碍。比如对于赋值 t l l li N=< >.....

l lt

1 2, . ,任一

3-子句可以 7/8 的概率通过这个布尔筛。其中,被阻碍的子句的形式为

C lp q= ¬ ∨¬ ∨¬ )( 。有以下定理1成立。

任一 3-子句

...... 布尔赋值t,通透率为7/8 l1 l2 l3 ln 的布尔筛

通过子句

图 3.1.1 SAT 问题的布尔筛模型

定理3.1.1

在理想情况下,即:全体 个布尔赋值皆相互独立,则 CNF 可满足概率 为2 N Pr

( )KN2

Pr = − −1 1 78( ) 。

证明:

∵对于任一赋值形成的布尔筛,任一3-子句通过的概率为7/8

-26-

Page 27: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

∴K个子句全通过的概率为( )78

K,即:赋值是CNF的解

∴至少有一个子句被阻碍的概率为1 ,即:赋值不是CNF的解 − ( )78

K

2 N∴CNF对所有 个赋值形成的布尔筛,均被阻碍的概率为 ( )82

KN

1 7− ,即:

CNF无解。

∴CNF可满足概率 为Pr ( )KN

82

( )

N

( )KN

ρ αβ

>1 1β, )

Pr = − −1 1 7 。

由于全体2 个布尔赋值皆相互独立的假定不成立,因此,在非理想情况下,我

们使用以下的带未定参数的概率表达式:

Pr ( ) = −1 1

---------式(1) ( )= − − < <∗1 1 0α αρ βNN

(

定理3.1.2

如果0 1< <α 且 ,则存在 满足下式: β > 1 ρ0

lim ( )N rP→+∞

ρ e= −1

1 1

0若

若 〈

若 〉

ρ ρρ ρρ ρ

0

0

0

=

) )N

α ρ β

∗* *N N Nα βρ ρ

∗ ∗* *N N Nα βρ ρ

证明:

l i m ( ) l i m ( (N r N

NP→ + ∞ → + ∞

∗= − −ρ 1 1

= − −

= − −→ +∞

→ +∞

1 1

1 1

lim ( )

l im ( )N

N

N

N

α

α

ρ β

ρ α

= − −→ + ∞

1 1l i m ( ( )N

Nα ρ α

∗ ∗−

N

)

∗* )N Nα β

= − −

= −→ + ∞

→ + ∞

− ∗

−→ + ∞1 1

1

( l im ( ( ) ) )

l im

* l i m (

( )

N

N

N

NN

N

e

α ρ α

α β

ρρ

ρ

-27-

Page 28: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

∴ lim ( )N rP→+∞

ρ e= −0

1 1

1

ρ

ρ

ρ

α βα βα β

∗ >∗ =∗ <

111

令:ρ0 = − βα

loglog

则: 满足上式。 ρ0

( )ρ0 0=

Pr ( )

定理 3.1.2 说明了在极限意义下,可满足概率仅有三种可能取值。取值的不同仅

仅依赖于子句数和变量数比值的不同。

定理3.1.3

Pr''

证明:

对 ρ 取二阶导数,将 代入即可证明。详细证明略。 ρ0

函数的一阶导数表明了函数的变化率,二阶导数等于零的点表明了函数在此点

的变化率 大。因此,定理3.1.3说明了可满足概率在 点的变化率 大,即:

是可满足概率的相变点。并且, Pr ( ) .ρ0 1 06= − ≈e1 ... .3 05> ,因而,我们认为相

变点应当在可满足概率等于 ( 处,而并不是可满足概率等于0.5处[)1 1− e31][32]

ρ0 ρ0

推导出可满足概率模型之后,可以应用回归分析的方法确定α 和β。即在采集了

大量实验数据之后,用式(1)所表示的概率模型逼近实验数据,求在 小二乘意义下

的 优。求得的结果为α =0.96…和β =1.18…。直观上讲,α 表示随机产生一个 3-

子句通过布尔筛的概率,也就是随机产生一个3-子句的统计平均可满足概率;而β则

表示每个变量的统计平均自由度,即:每个变量在统计意义下,可以取多少值。由于

子句相互之间的内在联系导致α ,而赋值之间的内在关联导致了β ≠ 2N

。 ≠ 7 8/ 下图是用上述概率表达式分别逼近 =100、125、150、175四条相变曲线的结果。

-28-

Page 29: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-29-

N N

)∗ρ β图3.1.2 的逼近效果(N=50,100,125,150)P k( ) (= − −1 1 α

N N

)∗ρ β

在上图中,横轴表示子句数 K,纵轴表示可满足的概率 P。带毛刺的曲线表示实

验 数 据 , 平 滑 曲 线 是 的 理 论 预 测 曲 线

P k( ) (= − −1 1 α

α β= 0 96. .., = 8..11. ),从上图看出,两条曲线很接近,表明了非常好的拟和

效果。下表是我们的实验数据,包含实验用例的规模、求得参数的值、 小二乘法得

到的误差以及相变点位置的估计。

表3.1.1 α ,β和相变点的实验数据

Num. of Var. Num. of Cla Step α β Error

50 1---400 1 0.93700 1.31699 0.11768 4.23157

100 1---800 1 0.94892 1.24688 0.15095 4.20830

125 1---1000 1 0.95154 1.23281 0.17594 4.21343

150 1---1200 1 0.95199 1.23020 0.22714 4.21175

200 1---1600 2 0.95990 1.18840 0.28174 4.21838

ρ0

[30][31][32]

细的实验所忽略。但是,仍有一些工作发现了一个奇异的现象,即随着问题规模的增

理论曲线

实验数据

传统的看法认为相变点位于可满足概率等于 0.5 这一点,但是除了实验上对求

解难度的记录之外,并没有特别详细和充足的理由,大都是认为可满足概率等于不可

满足概率的地方就是相变点的位置 。其实,当问题规模稍大以后,相变

曲线就变得非常陡峭,可满足概率等于 0.63 的点和等于 0.5 的点靠得非常近,实验

记录对这两点难度的区分并不能做到十分得显著,于是这微小的差异常常被不足够精

Page 30: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

加会观察到“传统”相变点(即 P CNF TRUEr ( ) .= = 05的点)向左漂移的现象。

利用上述结果可以对相变点的向左漂移现象给出初步的解释。从上表中可以看出

我们估计的相变点基本稳定在4.21处,因而可以把可满足概率等于(1-1/e)的点看作

一个枢轴,随着问题规模的增加,可满足概率曲线慢慢转动,变得越来越陡峭,结果

导致“传统”的相变点逐渐向左漂移。下图是 O.Dubois 针对不同的问题规模测得相

变曲线的实验数据[17],从图中可以清楚地看出不同规模的相变曲线有一个交点,但

是这个交点不是位于可满足概率等于0.5的地方,而是明显地高于它,并且“传统”

的相变点有明显的左漂移现象。

另一个有意思的现象是可 导数曲线和问题的难度

曲线

3.2 2-3-SAT 问题的可满足概率[44]

似于 3.1 节中介绍的 3-SAT 问题的可满足概率模型,我们可以得到更普通的随

理3.2.1

过布尔筛的概率为

图3.1.4 Dubois 的相变曲线

满足概率的解析表达式(1)的的

非常地接近,由此我们提出了以下的未经证实的猜想:难度就是可满足概率的导

数。从直观上理解,可满足概率变化大的地方对应问题的难度较大,变化率小的地方

对应的问题难度较小。

§

2-3-SAT的可满足概率模型。

设任一3-子句通 α3 ,任一2-子句通过布尔筛的概率为α2 ,任

一变量的自由度为β,则2-3-SAT的可满足概率 P 为: r

-30-

Page 31: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-31-

K N

)2 3β

N= ∗

P M KrM( , ) (= − − ∗1 1 α α

证明:

(类似于定理3.1.1易证上式成立,详证略)

定理 3.2.2

2-3-SAT的相变点处的2-子句个数M和 3-子句个数K满足以下线性关系:

K M+ ∗λ ρ0

证明:

由定理3.1.3可知:相变点在二阶导数等于零处,由此可得:

∂∂

β α α αβPα α

Mr N M K M KN

= − ∗ − ∗ ∗ − ∗ ∗−( ) (1 2 31

2 3 lo g )2

∗αK M2 }

数)

= ∗ ∗ ∗ − ∗

= − ∗ ∗

β α α α α

α α α

β

β

N K M

M K M

N

N

C C3 2 2 3

1

2 31

2

1

1

log {( )

* {( ) }( 为常

∂∂

α β α α α αβ2

2 2 2 32

2 31 1P

α2MCr M N M K M KN

= ∗ − − ∗ ∗ − ∗−{ *( )*( ) ( ∗ log )

log )}2 2α

+ − ∗ ∗ ∗

= − ∗ ∗

−( ) (

*( )'

1

12 3

1

2 3

α α α

α α β

βM K M

M K N

N

C

令∂∂

,可得: 2

2 0PMr =

1 01

2 3

2 3

2 3

− ∗ ∗ =

∗ =

∗ + ∗ = −

α α β

α α βα α

M K N

M KN

M Kl o g l o g ∗ βN l o g

2-SAT和 3-SAT可以视为2-3-SAT的两个特例,因而也必定满足式(2),将2-SAT

和 3-SAT的相变点作为特殊解代入式(2),可得:

N= ∗

-----式(2)

上式表明M和 K满足线性关系。对K求二阶偏导数可以得到同样的结论。

K M+ ∗λ ρ0 成立。

其中:

λ αα= ≈log

log2

3

定理3.2.2表明 2-3-SAT

. ......3 12

的相变点处的2-子句个数和3-子句个数满足线性关系。

其中,λ是2-子句3-子句的当量,它的直观含义是指在统计意义下,一个2-子句有

相当于λ个 3-子句的约束能力。下图是对变量数等于 100 的大量 2-3-SAT 实例相变

Page 32: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

点的统计结果。图中显示的是可满足概率等于 0.63 的等值线,x 轴表示相变点处的

2-子句数目,y轴表示相变点处的3-子句数目。从图中可以看出很好的线性,斜率大

约为-3.13,和我们理论上的预测非常接近。

2_3_SAT相变点的线性关系

0

50

100

150

200

250

300

350

400

450

0 5 10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

100

105

110

115

120

125

130

2_子句数目

3_子句数目

图3.2.1 2-3-SAT 问题相变点处2-子句个数和3-子句个数的线性关系

系列1

的 2-3-SAT 问

性算法设计带来很大的启发。我们知道,位于相变区域的问题

§3.3 相变现象的统计描述[45]

都是从宏观的角度出发,即研究整个系统的外在的宏观参数──可满足概

§3.3.1 可能解的个数的期望值

: 由于纵横轴的比例不同,因而图中看到的比例不是-3.13。

2-3-当量的重要意义在于为我们提供了一种考察更具有一般性

变现象的方法,我们可以应用 2-3-当量将一个随机 2-3-SAT 问题转化成一个在

相变意义下等价的规整的随机 3-SAT 问题,从而使得我们能够判别一个一般的

2-3-SAT问题实例是否位于相变区域。一个随机3-SAT问题经过分枝以后,就会得到

一个随机的2-3-SAT的子问题,而这个子问题和直接生成一个同等规模的2-3-SAT问

题的分布是一致的。

这将给我们的完备

一般难度很大,而相变点两侧较远的地方难度很小。因而,在选择分枝变量时,使得

形成的子问题避开相变区域将能够有效地提高算法的效率,应用 2-3-当量就能够判

别一个子问题是否落在相变区域。

前两节

本节将从统计的角度分析相变现象,即:估计一个CNF可能解的个数。每新增加

一个约束子句,原问题的一些解就会被这个约束给否定掉。如果可能解的个数等于0,

则此CNF无解,不可满足;如果可能解的个数大于等于1,则此CNF可满足。由于可

能解的个数是一个随机变量,以下我们将研究其期望值。

-32-

Page 33: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-33-

独立地产生一个合取范式, 以 N表示变量数,K表示子句数。

N ;

f k( ) 随机独立地产生的k个子句所否定的赋值的个数的期望值;

g k( ) 3N −

的个数的期望值

则有:

fg k

g k

( )( ))

( )

0 0=−

随机

则:整个赋值空间的大小 | |S = 2

定义:

:

: 第(k+1)个子句所否定的2 个赋值中,已被前k个子句否定过

的赋值 ;

f k f kg

g k g k

N( ) ( ) (( )

( ) ( )

1 20 0

1

3+ = +=

+ = +

下面详述 ∆g k( ) 的求法:

将 g k( ) 定义的求解过程倒过来看:

先随机产生子句: a= x y z0∨ ∨ ;

再随机产生k个子句集 x y z1 1 1∨ ∨ ,

z2 2∨ ∨ ,

x y zk∨ ∨ }

依 g k( )的定义: 否定的赋值集 B(k) 和 a 否定的赋值集 A

的交集,

g B k( ( )

N个变量的一个赋值向量,t N∈{ , }0 1 ,并且t不满足子句a }

={ t | t是 N个变量的一个赋值向量,t N∈{ , }0 1 ,并且t至少使b(k)

中的

A, B(k) 的一种简单表示方法为:

A x y z

0 0

b(k)={

x y

… …2

k k

g k( ) 可视为 b(k)

即: k A) = Ι 。

其中:

A={ t | t是

B(k)

一个子句不满足}

而集合

= ¬ ∧ ¬ ∧ ¬{ }0 0 0 ;

B k x y z( ) {= ¬ ∧ ¬ ∧ ¬1 1 1

Page 34: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

¬ ∧ ¬ 2 ∧ ¬x y z2 2

… …

… ∨

¬ ∧x yk ¬ ∧ ¬zk k};

zk+ +1 1;

zk

当用递推方法求解 g k( )时:

新产生的第(k+1)个子句: c= x yk k+ ∨ ∨1

c否定的解集 C: C x yk k= ¬ ∧ ¬+ +1 1 +1

{ }; ∧ ¬

故有:

g k A B( ) | |;= Ι

g k A B( ) |+ = k( )|+1 Ι 1

=| ( )|A B CΙ Υ

= +| |A B A C BΙ Ι Ι

= +| |A B | |A C BΙ Ι

生的,故 :

Ι

因为子句是随机独 有立地产

g k g kE A

( ) ( )(|

+ = +1Ι C

B|)

| |∗ N2E A(| Ι

= + ∗g k N( ) |2 −C

f kN|)( )|

2述如何求解E A C(| |)Ι : 下面论

由于: A x y z= ¬ ∧ ¬ ∧ ¬{ }0 0 0 ;

x y zk k= ¬ ∧C k¬ ∧ ¬+ +1 1 +{ };1

的情况, 分为5个子集:

C 集合 C根据和A相 可以交

C CC C C= + +0 1 2 3

C x y z: , , 和 x y z, , 中相同变量的个数为0;

z0 中相同变量的个数为 1,并且相同变量的文字

y+ + x y z0 0 0, , 中相同变量的个数为 2,并且相同变量的文字

yk k k1 1 1+ + + x y z0 0 0, , 中相同变量的个数为 3,并且相同变量的文字

4 ;+ +

其中:

k k k0 1 1 1+ + + 0 0 0

C x y zk k1 1: , ,+ + 和 x y0 0, ,也相同;

k1 1+

C xk k2 1: ,也相同;

zk1 1, + 和

C x: , z, 和3

-34-

Page 35: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-35-

x y zk k k1 1 1,+ + + 和 x y z0 0 0, , 中有相同变量,但是相同变量的文字不相同;

也相同;

C4 : , 则有:

E C(| |)0 =CN N3

3 362

2∗− −

; CN

3 3∗∗

2

E CC

N

N(| |)1

3

2=

∗−

CN* 3−

C N* 2 2

3 353 2

2∗

∗ −

E CCN

(| |)2 3 32=

E C(| |)1

2= ∗

N ;1 1

43 22

∗∗ −

CN3 3 32∗

由: A C C C CΙ = + +0 1 2

N ;3−

C+ 3 可得:

C E C E C E C|) (| |) (| |) (| |); E A C E(| |) (|Ι =

令: tE A C

=(| |)

+ + +0 1 2 3

N2

则有:

tC 3 6

C C CN N N

N

+ ∗ + ∗ +∗− − −3

23

13 3 1 12

;

下联立递推关系成立:

f k

)

( ))−

= 33

因而有以

ff k f k g kN

( )( ) ( ) ( ( )

0 01 2 3

=+ = + −

g( )0 0=g k g k t N( ) ( ) (1 2+ = + ∗

进一步可求得:

f k( ) [(= ∗ ∗ −1

2 13

t* 2t t t

t tt

N k k Nk k

) ( ) ]( ) ( )

+ − − + ∗ ∗− + − −

1 22 1 1

少,在k稍微滞后4.3*N的区域,可满足的概率接近0,同时,可能解的个数也

渐变为0。

图 3.3.1显示F k f kN( ) ( )= −2 的曲线(N=10),横轴表示子句数,纵轴

表示可能解的个数的期望值。从图中可以看出:可能解的个数随着子句数的增加而逐

渐减

Page 36: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

可能解的个

0

200

400

600

0 6

12

18

24

30

36

42

48

54

60

66

72

78

84

90

96

子句数

可能

解的

个数

系列1

图 3.3.1 可能解的个数和子句数的关系(理论曲线)N=10

数和子句数之关系

800

1000

1200

可能解的个数和子句数之关系

1000

1200

0

200

400

600

800

0 5

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

子句数

可能

解的

个数

系列1

1000

可以

§3.3.2 相变点上界的估计

对于固定的变量数N , 我们用Num(k) 表示随机产生一个k个子句的实例的可能

解的个数,则 Num(k) 是一个随机变量,且 Num(k) 的期望值是 F(k) , 即:

图3.3.2 可能解个数和子句数之关系 (实验数据)N=10

图 3.3.2是实验数据,子句数K从 0增加到100,对于每一个k , 随机产生

个实例,用完备性算法搜索整个分枝树,统计平均解数。从图3.3.1和图 3.3.2

看出,理论结果和实验结果非常接近。

-36-

Page 37: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-37-

Num k ir ( ( ) )F k E Num k( ) ( ( ))= 。我们用 P = 表示实例有i个可能解的概率;

P Num kr ( ) )( = 0 表示实例无解的概率。

P Num k( (

um k k ii

( ( ) ) )==1

Num k iN N

( ( ) )=2

= ==

um k iri

( ) )0

故有:

P Nur

则有:

N2

N2

ri=∑

0

P N

i) )= = 1

Num) ( (= = −∑0 1r

又因为:

P Num k( (2

i i Pri i

r) )= ≤ ∗= =∑ ∑

1 1

∑ i P NN

* (2

==E Num kF k

( ( ))( )

m k F k( ( ) ) ( )= ≥ −0 1

1

− − − − − −式(*)

显然,上式仅在 0 ≤ ≤F k( ) 时有意义。

, Bart Selman[31] Dubois[32] 等认为相变点在实例可满足概率等于 1/2 处,

ongbo Bu[35]赞同相变点在可满足概率等于(1 1− / e),约为 0 .63

1/2 的比例。

bois[32] 对于相变点上界估计值[32]

相变点的位置K/N

Shuo Bai和 D

处。但为了和Dubois[32]中的数据进行对比,本文中采用

下表是相变点的实验数据,以及式(*) 和 Du

的对比。从表中可以看出,式[3]比 Dubois 的数据更精确。

变量数N

式(*)得到的上界 Dubois的上界 实验数据

10 5.71 5.71 5.10

20 5.45 5.45 5.35

30 5.20 5.36 4.77

40 5.20 5.32 4.68

50 5.18 5.29 4.62

表3.3.1. 相变点的上界估计值的比较以及实验数据

Page 38: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-38-

§ 结

本章分别从宏观、统计的角度剖析了3-SAT问题的相变现象,解释了为何相变点

3.4. 总

K N/ .≈ 4 3 附近。需要说明的是,本章所使用的一般性方法可以推广到

4-SAT,5-SAT等,尤其是可以应用到2-3-SAT等更一般的情形,将会对完备性算法的

启发式信息。

AT问题可满足概率的导数Pr ( )' k 和问题

难度有着很强的相关性。可满足概率变化大的地方问题的难度也大,可满足概率变

么强的相关性的出现决不是偶然的,看似巧合的背后

似乎隐藏着更深刻、更必然的原因。从目前的文献来看,这一个方向还没有人开始研

究,本节我们试图给出一个不太严格的、略带猜想性质的解释,这也是我们今后的一

大,足以保证实例无解的情况;和SAT类,对应于实例规模很

小,

分枝变量的选择提供较强的

§3.5 进一步的讨论

在固定了实例的变量数目的条件下,S

化小的地方问题的难度也小。这

个重要的研究方向。

我们现在考虑两类算法,第I类是“足够智能”的分枝回溯算法,第II类是“足

够智能”的局部搜索算法。在固定变量数的条件下,随

问题实例的子句数的变化,我们分别考虑以下两个特殊的实例类,即:UNSAT

类,对应于实例规模很

足以保证实例有解的情况。我们不加证明地承认以下事实:

若 A SAT B SAT A B∈ ∈ ⊂, , ,,则有 f AII ( ) f BII ( )≤ 。 ----(1)

A UNSAT B UNSAT A B' ' ' ', , ,∈ ∈ ⊂ ,则有 f A f BI I( ) ( )' '≥ 。--(2)

在上式中,我们用 f xi ( )表示第 i 类算法求解问题实例 x 的求解时间。在式(1)

中,实例B比实例A增加了约束,因而解的个数必定小于或等于A的解数,所以对于

类算法来说,对于解数多的实

有更多的约束,因而分枝

所以 明 B’无

一些。直观图示见下:

一个“足够智能”的、以搜索实例的解为目的的第

例 A 花费的时间要少一些;在式

II

中,实例 B’比实例(2)

回溯 能够更快地遇到矛盾然后回溯,

A’

对于 算法,证算法 第 I 类 解更容易

f x( )II f x( )I

时解

SAT UNSAT

Page 39: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-39-

随着子句数的增加, f xI ( ) 仍然不断

加。在 P0 点, II 临界实例,如果它具有

以下性质: 如果减少一个子句,

则变成可满足实例。对于临界实例,既不容易判定可满足,又不容易判定不可满

足,无论是第 I 类算法还是第 II 类算法都是很难求解的,换句话说,临界实例的

较高,因而难度也较高,在实际运行中表现为无论是分枝回溯

图3.5.1两类算法的求解时间和问题规模

也不断增加;随着子句数的减少,

相交。我们称一个实例是

f xII ( )

f x( )和 f xI ( )

A B A’ B’P0 子句数

如果实例再增加一个子句,则变成不可满足实例;

难度是 高的。

平均复杂性虽然能够反应出算法的平均性能,但是往往由于极少数特别差或

者特别好的实例使得平均复杂性不很精确。因此,我们不仅研究平均复杂性,更

深入关注临界实例的比例。对可满足概率变化大的点,也就是说,具有加一个子

句就会变成不可满足、减掉一个子句就会变成可满足这样性质的实例较多,生成

临界点实例的比例

算法还是局部搜索算法求解时间都较长。对于可满足概率变化较小的区域,可以

相对明确地确定属于可满足实例类还是不可满足实例类,然后可以根据情况选择

适宜的求解算法。

Page 40: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-40-

第四章 可满足性问题的求解算法

完备性算法和不完备性算法是求解 SAT 问题的两类经典算法,细致的比较会发

现它们各有所长、各有所短。对于大规模的不可满足实例,上述两种方法却都鞭长莫

及,在此,我们提出了一类新的概率性算法。我们认为,完备性算法和不完备性算法

的有机结合能够有效地提高算法的效率,是求解SAT问题的一个极有前景的方向。沿

着这一方向,我们进行了广泛的探索,从中提炼出了几个高效算法。本章主要介绍我

们在算法设计方向所做的工作,包括4个高效算法和一个剪枝规则。

§4.1完备性算法和不完备性算法的比较:

完备性算法是在当前部分赋值向量的基础上,运用逻辑推理给一些尚未赋值变

量赋值,或者用启发式信息来选择一个新的分枝变量形成两个子问题。而局部搜索算

法始终是在一个全局赋值向量的基础之上对目标函数进行改进或者是跳出局部极值

点,但是在操作中启发式信息较少,大量地采用了随机选择。下表是两种算法详细的

比较情况:

表4.1.1完备性算法和不完备性算法特点比较

随机性 逻辑性 全局性信息 速度 主要困难

完备性算

弱 强 少 慢 分枝变量的选

不完备性

算法

强 弱 多 有解实例一般很

快;无解实例不停

大平台的判别

和逃出

从上表中可以看出完备性算法和局部搜索算法有很强的互补性,紧密地结合看来

是一种很好的思路。不完备性算法为完备性算法提供全局性信息,指导分枝变量的选

择;完备性算法为不完备性算法提供逻辑性的指导。下面两个算法的直观思路就是这

两个方向的结合:

§4.2 求解 SAT问题的完备性算法─CCSAT(Conflicted Cycle SAT)

Page 41: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

§4.2.1 Crawford方案的剖析和CCSAT算法的提出

在第二章中,曾经提到 Crawford 提出了一种 Local Search 和完备性算法结合

的方案[9],利用Local Search过程来开发全局性信息,指导完备性算法的分枝变量

选择过程。具体地说,当 Local Search 算法搜索遇到局部极值点时,当前所有不可

满足子句的权值都增加。多次重复上述操作之后,每个子句都有一个权值。再定义变

量的权值为所有出现此变量的子句的权值之和,用变量权值来指导分枝变量的选择,

Crawford认为使用权值的指导对于前几个分枝变量的选择尤为重要。

-41-

Crawford方案的直观想法是认为在到达局部极值点时,当前未满足子句包含于

整个实例的 不容易满足的子句集。经过多次重复之后,认为从统计的角度发现了该

实例的 不容易满足的子句集和──即 Sais 在 TWSat[37]中应用的实例的"核"。所

谓的核,通俗地讲,是指实例中约束 强的子句集合。由于核的作用,大大地限制了

分枝树的大小。

Crawford方案的缺陷在于,到达局部极值点时,当前不可满足子句仅仅是当前

赋值产生矛盾的表现,而未能揭示出造成矛盾的原因和根源,因此,不能准确地刻画

核。由图4.2.1的统计数据,可以更清楚地看到:这样得到的变量权值仅仅包含变量

在整个实例中出现次数的信息。

在图 4.2.1 中,横轴表示变量在子句集中出现的次数;纵轴表示由 Crawford 方

案得到的平均权值。图4.2.1表明,平均权值和子句出现次数的协相关系数达到0.96,

也就是说,由此得到的权值仅仅包含变量出现次数的信息。

图 4.2.1 Crawford 方案平均权值和子句出现次数的关系

因此,如果能够在发生矛盾时,深刻地揭示出矛盾的根源,将有助于更精确地

刻画实例的核。

我们提出了算法子过程ConflictCycle,实现了这一点。

Procedure ConflictCycle(tries)

Page 42: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

{ Set_to_zero( VariableWeights ); Set_to_zero( ClauseWeights ); for(i=1;i<=tries;i++ ) { Set_empty( Solution ); while( NOT( Conflict ) ) { r=Random_Select_Branch_Var(); Solution= ADD( Solution,$r$); Unit_resolution(); } BackTrack_and_IncreaseWeight( r ); Backtrack_and_IncreaseWeight( NOT(r) ); } }

其中,BackTrack_and_IncreaseWeight()是如下的递归过程:

Procedure BackTrack_and_IncreaseWeight( r ) { if r is a Branch Var return; else{ find the var who deduce r and the active Clause c; IncreaseWeight( var ); IncreaseWeight( c ); BackTrack_and_IncreaseWeight( var ); } }

算法 ConflictCycle的直观思想是:

随机选择一条分枝路径直到出现矛盾 c。当出现矛盾时,用回溯的方法确定造

成矛盾的 小分枝变量集合 B,以及在逻辑推导中起作用的子句集合 C。则有以下关

系成立:

任意一个赋值集合B ', ,则在赋值 下,C必定会推出矛盾c。 B B⊆ ' B '

任意一个子句集合C ',C ,则C⊆ '

已经限制了变量赋值B的出现。 C '

因此,我们有理由认为:经过多次重复之后,变量和子句的权值分布可以比较精

确地描述子句可满足的难易程度,以及变量赋值可推导出矛盾能力的强弱。从统计的

角度讲:权值反映了子句集对分枝树的剪枝能力。

简单的例示如下:

-42-

Page 43: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

8 C4 4

-43-

6 -5 C1 -9 C2 -2

X -7

7 C3 -3

图 4.2.2. 矛盾环的回溯过程

在图 4.2.2中,带阴影线圈表示分枝变量,无阴影线圈表示被推导出的变量,方

框表示在推导中起作用的子句。上图即表示了以下推导过程:

− ∧ −− ∧− ∧∧ ⇒

5 79 62 3

6 8

⇒⇒

−4

−−

927

CCC

C

1 52 23 24 4

7 96 9

7 38 6

= ∧= − ∧= ∧

− ∧∧

= ∧

∧ −

− ∧ − 由于 和-7得到矛盾。此时,分枝变量集− ∧ − ⇒2 3 7 B = − − −, , , }6 7 8

C C, , }3 4

C C2

{ ,3 5

3

起 作 用 的 子 句 集 而 利 用 矛 盾 环 回 溯 可 知 :

和子句集C C

C C C= { ,1 2

7}B0 3 5 6= − − −{ , , , 0 1= { , , }才是造成矛盾的根源。变量赋值8

和子句C4对于推导出矛盾未起任何作用。

这又引出了另一个问题:对于一个不可满足实例,N 个变量,K 个子句,需经过

多少次分枝,才能推导出矛盾?

实验数据表明:在变量数不变的情况下,分枝次数随着子句数增加而减小,并且

大致地保持一个反比的关系。而且由下表可以看出,分枝次数远小于变量数。这一点

说明了ConflictCycle过程经过很少几次分枝,就会碰到矛盾,不会占用过多的时间。

K/N=4

K/N=4.3 K/N=5 K/N=6 K/N=7 K/N=8 K/N=9

N=100 12.39 11.35 11.02 9.57 8.15 7.17 6.53N=150 17.35 16.73 14.75 12.79 10.79 9.82 8.84N=200 23.01 21.56 19.00 15.17 13.86 12.43 11.02

表4.2.3 分枝次数和变量数,子句数的关系

我们分别以每个变量做第一个分枝变量,即:分别以每个变量作树根,其余分

枝变量的选择使用mom策略和"向前看"的思想,由此得到分枝树的大小和变量权值的

关系,实验数据表明:权值和分枝树之间的协相关系数达到 -0.79。即:用矛盾环

Page 44: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

的方法得到的变量的权值越大,优先选择此变量分枝,就会有效地减小分枝树的大小。

§4.2.2 mom策略的缺陷:

mom策略的假设是:所有的子句,如果长度相同,则它们的权重也相同。然而,

由于子句中包含的变量各异,每个变量在整个实例中的分布不同,以及子句相互之间

的连接强度的差异,导致了即使相同长度的子句,其约束能力也互不相同。

因此,简单地应用mom策略,尤其是在分枝初期,2-子句很少的情况下,将不可

避免地导致分枝的盲目性。而树根部的选择对整棵树的大小有至关重要的意义。

§4.2.3 无级重排:

除了以上策略的改进之外,我们还在算法实现技巧上做了很大的优化。在文[6]

中,刘涛提出了分级重排搜索算法 MSRA(Multi-Stage Search Rearangement

Algorithm)。MSRA 算法很重要的一个方面就是对子问题的表示进行简化。分枝过程

在算法的初始阶段的效率很高,但随着分枝变量数的增加,一些不必要的查找操作浪

费了很多时间。这主要是因为一些约束子句以经被满足,其中的未扩展变量实际上已

经没有考虑的必要。

MSRA算法使用启发式信息将算法分级,在分级时进行重排,并且动态申请空间,

把子句的索引链重新拷贝,生成当前子问题的精确描述。同时,由于回溯的原因,必

须保存原有的子句索引表。因而,这必然会造成空间和时间上的浪费。

无级重排优化这一过程,每当一个约束子句可满足时,在此子句的索引链中,把

此子句与其索引链尾元素交换,同时,减小链长。这样,回溯时仅仅需要恢复原来的

链长即可。既不需要开辟大量新的空间,又每时每刻都保持当前子问题的精确描述。

-44-

x C1 C2 C3 C4 C5

count=3 exchange

图4.2.4 删除已满足的子句C1的过程

描述了完备性算法常常采用的数据结构,以及删除当前已被满足的子句 C1 的过

程。在完备性算法中,常采用以变量来对子句进行索引的方案,把每一个子句分别挂

入其包含的变量为索引的链中。图 4.2.4 表示了包含文字 x的子句共有 5 个。count

记录这 5 个子句中在当前的变量赋值下未满足的子句数。 竖线左方的实线框表示当

前未满足的子句 、C 、C ,竖线右方的虚线框表示已被满足的子句。当子句

变成已满足时,仅须将 和链尾的 交换位置,并将 count 记数减少 1。 这样,

既可随时保持当前子问题的精确描述,又避免了重新拷贝的时空开销。详细的算法描

C 2 3 C1

C1 C3

1

Page 45: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

述略。

实验结果表明:无级重排过程可大大提高算法效率,而且对于越大的实例,其作

用越明显。对于含有 300 个变量和 1290 个子句的随机 3-SAT 问题实例,速度可平均

提高10%左右。而程序直方图工具gprof的数据表明,重排过程本身消耗时间仅仅为

整个程序执行时间的0.92%。

§4.2.4. 实验数据:

-45-

我们在大量的随机 3-SAT 实例运行"矛盾环"和无级重排算法,并和当前 快的

CSAT[17]进行了比较,结果见下表:

CSAT CCSAT

#sat(Y) mean mean

#unsat(N) time branches

#sat(Y) mean mean

#unsat(N) time branches

N=200

K=850

5Y 6s 2890

5N 7s 3640

5Y 3.8s 1938.6

5N 6.01s 3289.8

N=250

K=1063

4Y 25s 10150

6N 56s 23510

5Y 17.9s 7615.0

5N 51.1s 20190.0

N=300

K=1275

5Y 141s 48200

5N 318s 113750

5Y 54.6s 15212.2

5N 298.1s 90740.0

表 4.2.4 CSAT 和 CCSAT运行时间的比较

注: CSAT的数据从Dubois[17]

0

中获得,CSAT和 CCSAT都运行于Sun Sparc 10, Unix OS.

从表4.2.4中可以看出:

在可满足的情况下,CCSAT比 CSAT速度提高了40%左右。

对于不可满足实例,CCSAT比 CSAT分枝树和时间都减小了10%左右。

对于从VLSI设计、图着色问题、调度问题转化来的实例,算法CCSAT也显示了

良好的性能。

§4.3求解 SAT 问题算法的统一模型USAT(Uniform SAT)

本节介绍求解 SAT 问题算法的统一框架 USAT,它包含了完备性算法 DPL 和不完

备性算法GSAT作为两个特例。USAT有一个实参数 P0 ( )0 1≤ ≤P P0

P0

,当 等于0时,

USAT退化成DPL算法;而当 等于1时,则退化成GSAT算法。

局部搜索算法的关键部分是如何判别平台的大小及逃出平台。然而,在判断平台

的大小时存在着很大的困难,仅仅能依赖于经验做定性的判别[38]。平台还有一个大

的缺陷在于它仅反映了目标函数的取值这一外在的特性,不能反映出取这些值的赋值

内部结构的变化。本节提出的子空间和基的概念克服了这一缺陷,并且有助于实现和

Page 46: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

完备性算法的结合。

-46-

2 N

2 N m−

§4.3.1 GSAT算法的特点及子空间旋转策略的引入:

在多次运行GSAT算法之后,我们发现了GSAT+Random Walk算法的一个非常突出

的特点,即虽然经过了多次翻转变量赋值的操作,仍然有一部分变量(设为m个)从

未被翻转过。换句话说,施行的变量赋值翻转操作不是在大小为 的赋值空间内进

行全面的搜索,而是仅仅局限于大小为 的赋值空间内。以下,我们把经过s次

变量赋值翻转而从未翻转过的变量称作这s次翻转的基,保持基变量赋值不变的赋值

空间称为这个基形成的子空间。在 GSAT 的翻转变量选取策略下,基变量的变化非常

的缓慢。下图显示了基变量的个数随变量赋值翻转次数的变化过程。

未翻转 变量个数和 翻转次数之 关系

0

50

100

150

200

250

300

350

400

450

500

4352

4864

5376

5888

6400

6912

7424

7936

8448

8960

9472

9984

10496

11008

11520

12032

12544

13056

13568

14080

14592

15104

15616

16128

16640

17152

17664

18176

18688

19200

19712

变 量翻转 次数

基变量个数

20224

系 列 1

2 N m−

图 4.3.1基变量个数和变量赋值翻转次数的关系 (N=500, K=2125)

图 4.3.1是对一个变量数为500的实例所得到的数据,横轴表示自 后一次未满

足子句数减少以来的变量赋值的翻转次数,纵轴表示基变量的个数。从上图可以看出,

当翻转了10000次之后,仍有近100个变量从未翻转过;当翻转了20000次之后,还

有25个变量从未翻转过。

基变量的存在给我们一个非常有价值的启示:当在大小为 的子空间内翻转

了s次变量赋值,仍然不能够进一步减少不可满足的子句数,那么是否这个子空间内

根本就不存在解呢?我们可以按一定次序对基文字使用完备性算法中的逻辑推演来

进行判断。若当前基文字经过逻辑推演得到矛盾,则可以使用回溯的方法确定一个新

的基,即,将一些基文字换入,再将一些基文字换出,类似于线形规划中由一个基础

解向量形成另一个基础解向量的换基过程,我们可以把以上的步骤称为基的置换,或

子空间的旋转(Pivotting) [4][5]。若当前的基文字经过逻辑推演不会得到矛盾,那

么在逻辑推演中将会推演出一些新的变量赋值,我们可以把这些新的变量赋值和原来

的基组合在一起,加上一定时间长度的禁忌,作为新的初始赋值,重新进行搜索过程。

显然,子空间旋转过程由于使用了逻辑推演,使得翻转变量的选择更有目的性,

在当前子空间不可能存在解的情况下,可以尽早地进行基变量的置换,避免无意义的

搜索。

Page 47: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

§4.3.2统一的算法模型USAT

应用上述的子空间旋转的策略,我们可以得到一个统一了完备性算法和局部搜索

算法的算法模型USAT。在以下的算法描述中,我们用 表示在大小为 的

子空间内经过 s 次变量赋值翻转未能找到解的条件下,判定整个实例无解的条件概

率。 是一个实参数, ≤ 。USAT算法描述如下:

P m s( , ) 2 N m−

P0 0 10 ≤PProcedure USAT() { Number_of_UnFlip_Variables := 0; Flip_Steps := 0; while( TRUE ) {

p = P Number of UnFip Variables Flip( _ _ _ , Steps_ ); if( p ≤ P ) 0

{ /*** Do local search now ***/ Select a Variable results in greatest decrease in the number of unsatisfiable clauses ( can be 0 or negative ) to flip, Or Random Walk; Update Number_of_UnFlip_Variables and Flip_Steps; }

if( p ≥ P ) 0

{ /*** Do Unit Propagate() and BackTrack ***/ theory = CNF;

for( i :=1;i ≤ N ; i ++ ) { if( i in Set_of_UnFlip_Variables ) {

theory = theory ∪ i ; result := Unit_Propagate( theory ); if( result == FLASE ) { Back Track to another satisfying Part Solution;

if all solution space are searched 2 N return ( ô UNSATISFIABLEö);

-47-

Page 48: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-48-

goto Reset; } } } Reset: if all variables are valued through Unit_Propagate() return ( SATISFIABLE); Number_of_UnFlip_Variables := 0; Flip_Steps := 0; set TABOO to the new initializing part solution; } } }

在上述的算法描述中,P 是一个由算法设计者给出的参数,表明算法设计者对0

局部搜索算法中变量翻转次数的要求。若 ( , ≥ ,即在大小为 的子空间

内经过s次变量赋值翻转,虽然未能找到解,但是已经满足了算法设计者的要求,设

计者认为 s 次变量赋值翻转已经足够了,再进行变量赋值翻转没有太大的意义,转

而使用逻辑推演去判定当前子空间是否根本就不存在解;若 P m s( , ) P0≤ ,即在大小

为2 的子空间内经过s次变量赋值翻转,未能找到解,但是算法设计者的认为搜N m−

索的次数还不足以判定当前子空间并不存在解,应当继续搜索下去。

P m s) P0 2 N m−

作为两个极端的情况,当 =1时,P0 P m s( , ) P0始终小于 ,这时只进行变量赋值

翻转的操作,不会执行逻辑推演步骤,此时USAT退化成普通的局部搜索算法;当 =0P0

时, ) 始终大于 ,这时仅仅执行逻辑推演操作,而不会执行变量赋值操作,P

此时USAT退化成分枝回溯算法DPL。P 可以在0和 1之间连续地变化,P 取值不同0 0

意味着算法设计者对逻辑推演和局部搜索的重视程度不同。 越大,进行变量赋值P0

翻转的操作越多; 越小,进行逻辑推演的机会越大。 P0

P m s( , 0

随选取不同的局部搜索算法而有不同的计算。比如: 若在局部搜索步骤

中选用顾钧的SAT1.2[20], 则可以利用文[20]中的定理[8]和[9]推导出 s, ) 。但在实际的实现中,我们常常采用经验估计的方法来代替烦琐的计算

P m s( , )P m(

平台的概念仅仅注重目标函数是否相同,而不关心赋值的结构变化。我们摒弃了

平台的概念,代之以子空间,可以更好地表示赋值的变化,并且很容易计算子空间的

大小。

§4.3.3 实验数据

Page 49: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-49-

为了验证USAT算法的有效性,我们进行了大量的实验,和 GSAT以及‘96北京

SAT问题国际竞赛冠军Solar进行对比,下表是实验数据:

变 量

子 句

USAT GSAT Solar

400 1700 9.1s 7s /

500 2125 25.1s / 21s

600 2550 32.0s 35s /

1000 4250 101.4s 1095s 91s

1500 6375 266.0s / /

2000 8500 653.8s 3255s 766s

表4.3.2 USAT 和 GSAT的运行速度对比

注: 数据来源:

GSAT+Random Walk 的性能数据取自文[8];

Solar的性能数据取自文[26]。

运行环境:

USAT: Sun Sparc 2 , 40MHz , 16M Memory ,Sun OS 4.1.2, SPEC 92INT: 21.8 SPEC 92FP : 22.8 GSAT: SGI Challenge, 70MHz MIPS R4400 CPU SPEC 92INT: 62.4 SPEC 92Fp : 66.5 Solar: Sun Sparc 2, 40Mhz , 16M Memory , Solaris, SPEC 92INT: 21.8 SPEC 92FP : 22.8

在上表中,我们选取的都是较难的实例,都是在K N/ 区域内产生的。

从表中可以看出USAT有很明显的优势。

.≈ 4 25

§4.3.4 总 结

局部搜索算法存在着太强的随机性, 翻转变量的选择的针对性不够。而引入逻

辑推演可以有效地判定当前子空间是否可能存在解,并且可以及时地避免在根本不可

能存在解的子空间内进行无用的搜索。USAT 是求解 SAT 问题的统一的算法模型,参

数 表明了设计者对逻辑推演和局部搜索的重视程度。分枝回溯算法和局部搜索算P0

法分别是对应于 =0和 =1的两个极端情况。 P0 P0

§4.4 求解 SAT 问题的第三类算法─概率性算法:

Page 50: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-50-

根据问题实例的规模大小和是否可满足可以将问题分为四个子类,并且完备性算

法和局部搜索算法各有其擅长解决的范围。详细情况见下图:

SAT Satifactory Complete Alg.

Scale Incomplete

small ? large Alg.

概 率 性

算法

UNSAT

在上图中,横轴表示问题实例的规模;纵轴表示实例是否可满足。完备性算法原

则上说能求解所有的SAT问题实例,无论是可满足的还是不可满足的实例都能求解。

但是从实际运行情况来看,完备性算法仅能对付小规模的问题,稍大规模的问题就不

能在可接受的时间内求解。而对于 Local Search 算法,所有的可满足实例都

能很快地求解,对不可满足实例却无能为力。因而,对于第四象限──大规模的不可

满足问题实例来说,传统的算法,无论是完备性算法还是局部搜索算法都不能在实际

可行的时间范围内有效地求解。 既然不可能找到实例的解,又不能快速地判定该问题实例不可满足,那么我们

只能退而求其次,计算该问题实例不可满足的概率信息,即 Sup(Pr(CNF=True)。在一些应用场合,不要求精确地知道问题实例是否有解,只要求以很大的概率保证问

题实例无解就已经足够了,但是对时间的要求却很强。我们提出的新一类概率性算法

能够满足这种要求。从问题实例的可满足概率的角度出发,我们又可以将问题分为三

类,详见下图:

Page 51: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-51-

Phase Transition ( N=50 )

0

10

20

30

40

50

60

70

80

90

100

1

22

43

64

85

106

127

148

169

190

211

232

253

274

295

316

337

358

379

400

Clause Number

Satisfiability Propbility (%)

II IIII系列1

图4.4.1根据可满足概率对问题的分类

第 I类是以很大的概率可满足的问题子类,第II类是位于相变区域的问题子类,

第III类是以很大的概率不可满足的问题子类。

概率性的直观思想是:在分枝过程中,如果形成的子问题是第I类,那么继续向

下分枝;如果子问题是第 II 类,当前不能以很大的概率判定有解还是无解,只好继

续分枝;如果是第III类,即当前子问题有解的概率很小,我们就可以忽略这个子问

题,直接返回,同时用第三章中提供的可满足概率公式计算出子问题有解的概率。概

率性算法和 Complete 算法的差异就在于对第 III 类子问题的处理上,对于可满足概

率即使很小的子问题,完备性算法仍然不会放过,还要继续分枝直到找到解(虽然成

功的机会很小)或者是搜索完整棵子树证明无解。概率性算法在这一点上表现得就比

较灵活,它碰到可满足概率很小的子问题时,会做剪枝处理直接返回。在现实生活中,

有很多概率事件,而对于大概率事件,只要是足够用,可以满足我们的要求,也是通

常作为确定性事件来处理,这样常常能够节省大量的时间和其他资源。由于概率性算

法比Complete算法有更早的剪枝操作,因而时间的节省是显而易见的。

在实际的算法设计中,第 II 类和第 III 类的分界线可以使用子句数和变量数之

比这个序参量,比如:我们可以设定界限为 K/N=6.0,当 K/N>6.0 时,则是第 III

类子问题,或者采用可满足概率作为分解线。而对于一般的随机2-3-SAT,我们可以

应用第三章中的2-3-当量将之转化成规整的3-SAT,进而判定子问题的类别。

概率性算法的详细描述如下:

Procedure Quasi-Complete( theory , limit ) { if all variables are valued, return( TRUE); Unit-Propagate(theory); if conflict occurs return ( False); Use 2-3-Ratio to compute the corresponding K as 3-SAT; p=Pr(K,N);

Page 52: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-52-

if ( p < limit ) { Super_Probabilty+=p; return (False); } Select a variable x without a value; return ( Quasi-Complete( theory AND x ) OR Quasi-Complete( theory AND NOT(x) ); }

我们对于大量的问题实例运行概率性算法,结果表明概率性比Complete算法的速

度有很大的提高,并且很少作出错误判断。

概率性算法填补了传统的完备性算法和局部搜索算法算法不能解决的空白区域,

能够快速的给出问题实例有解的概率上界。

值得指出的是,概率性算法包含了Complete算法作为特例,当第II类区域和第

III 类区域的分界线无限向右靠,即取 limit 为 1.0 时,概率性就退化成 Complete

算法。

§4.5 完备性算法 APTSAT ( Avoid Phase Transition SAT )

相变现象和难度有着紧密的联系。分枝时避开难度高的子问题可以提

§4.5.1 子问题的又一种分类方法

IIIIII

图 4.5.1根据问题的难度对问题的分类

Page 53: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-53-

从难度的角度又可以将问题分为三类。第 I 类的可满足概率很高,难度小;第

II类位于相变区域,难度很大;第III类大部分不可满足,求解难度也较小。

对于规整的3-SAT问题,可以用子句数和变量数的比值来设定它们的分界线。比

如:我们可以采用 3.008 和 4.8 作为相变区域的界限,即 K/N>4.8 的是第 III 类,

K/N<3.008的是第I类,中间的是第II类。也可以采用其他的分界线。

对于不规则的 2-3-SAT,可以使用第三章的 2-3-当量将问题在相变意义下转化

成等价的3-SAT问题,然后判别是否位于难度高的相变区域。

§4.5.2完备性算法APTSAT:

APTSAT 的直观思想就是分枝时避免形成第 II 类难度高的子问题,尽量形成第 I

类或第III类子问题,这样可以尽快地找到解或者是搜索完这个子树尽快回溯。

APTSAT的具体过程描述如下:

Procedure APTSAT( theory,limit1,limit2 ) { if all variables are valued, return (TRUE); Unit_Propagate( theroy ); if conflict occurs, return ( FALSE ); for i:=1 to N do { Test_Branch(i); Use 2-3-Ratio to Convert the sub-problem into the corresponding 3-SAT; if (K/N > limit2 OR K/N < limit1 ) PhaseFlag[i]:=FALSE; else PhaseFlag[i]:=FALSE; } Select an unassigned variable x which PhaseFlag is FALSE; return ( APTSAT( theory AND x ) OR APTSAT( theory AND NOT(x) ); }

初步的实验结果表明了APTSAT比普通的CSAT算法效率有显著的提高,对于大部

分实例速度可以提高 2~3 倍,但是有一些实例效率稍有下降,估计是选择分枝变量

时未考虑树的平衡的结果,在以后的工作中,我们将继续改进这个算法。

Page 54: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-54-

§4.6新的剪枝规则:Subset-Prune 剪枝

本节首先给出了 2-SAT 问题是 P 问题的一个简洁的证明,然后利用在证明中得到

的经验提出了Subset-Prune剪枝规则。

§4.6.1求解 2-SAT问题的P算法:

求解 3-SAT 问题的回溯思想也能应用到求解 2-SAT 中去,求解 2-SAT 问题的过程也

是一个对一棵二叉树的搜索过程。例如:CNF x y x= ∨ ∨ ¬{ , , },求解过程如下

图所示:

z z y∨¬

图4.6.1 2-SAT 问题的求解过程

X

x=T x=F

y=Fz=T

X√

y=T

2-SAT有一个显著的特点,就是分枝过程中形成的子问题是原问题的真子集。详

细地说,在分枝过程中使用单元归结操作,要么使得一个子句满足(子句中包含该归

结文字),要么根据这个子句推导出来新的变量赋值(子句中包含归结文字的反)。

总之,归结过程不会造成新的子句,而对于 3-SAT 问题来说,它会使得一个 3-子句

变成一个 2-子句,从下面的分析可知,这是造成 3-SAT 问题和 2-SAT 问题差异的

根本的原因。

定理4.6.1:

如果对原问题 P 和文字 x 进行单元归结操作,在单元归结操作中未出现矛盾,并

且得到子问题P’是原问题的真子集,则P有解当且仅当P’有解。

证明:

1〕 如果P’有解,即有变量赋值s’={x1,x2,...xN(不包含对变量|x|的赋值},s’

使得P’成立;

那么,令 , s s x= ∪' { }因为从P到 P’的单元归结过程没有矛盾发生,

Page 55: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-55-

所以s满足P,是原问题的一个解。

2〕 如果P’无解,

因为 P’是P的真子集, 所以原问题P无解。

综上,定理成立。

定理 4.6.1 的证明过程实际上已经提供了求解 2-SAT 问题的一个线性时间的算

法。算法的直观思想是:在分枝过程中如果单元归结操作没有矛盾,那么就沿着这个

分枝路径继续走下去;如果有矛盾发生,则沿着另外一条分枝路径走。总之,它是沿

着一条路径走直到矛盾或找到解,由于没有回溯操作,时间复杂性是O(n)级的。

算法详细描述如下:

Procedure 2SAT( theory ) { if all variable are assigned, return (TRUE); Select a variable x without a value; Unit_Propagate( theory AND x ) ; if conflict occurs, return ( 2SAT( theory AND NOT(x) )) ; else return ( 2SAT( theory NAD x ) ); }

§4.6.2 Subset-Prune剪枝规则:

在 3-SAT 问题中,分枝得到的子问题不能保证是原问题的真子集,但是有些情况

下,还是有这种情形的,这时,采用 Subset-Prune 剪枝规则,剪掉另一个分枝子问

题,将能够节省大量的时间。

Page 56: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-56-

第五章 结 束 语

本文综述了当前在可满足性问题方向的研究成果和动向,本文的宗旨之一就是

研究问题的固有属性和研究快速求解算法相结合,交叉进行,互相启发。

在问题固有属性方向,我们研究了 SAT 问题的相变现象以及问题的难度,提出

了随机 SAT 问题可满足概率的模型,对 2-3-SAT 问题的研究得到了在相变意义下 2-

子句和 3-子句约束能力比值,它提供了一种方法能够将一个随机 2-3-SAT 问题转化

成一个相变意义下等价的规整的随机3-SAT问题,对随机SAT问题的解的个数的研究

可以更精确地估计出相变点的上界。

在快速求解算法方向,我们坚持完备性算法和不完备性算法结合、互补的思想,

提出了4种新的算法和一个新的剪枝规则,并做了大量的实验,结果表明了新算法的

有效性。值得指出的是新算法都是在充分地研究了问题的特性之后提出的,根据某一

特性将问题分为几个子类,有针对性求解问题。而一些有关问题特性的思路,比如:

估计SAT问题的解数,是在设计、运行算法的过程中得到启发的。

我们还进一步提出了一个猜想:用可满足概率的导数表示问题的难度,对于可

满足概率的导数和问题难度的强相关性给出了一个初步的解释。

在这个领域还有很多问题值得研究,比如:SAT问题相变现象的物理模型、求解

算法的平均复杂性、难度的表示、更好的求解算法等等,这也是我们今后的研究重点。

Page 57: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-57-

参 考 文 献

[1] S.Cook “An overview of Computational Complexity”,

[2]

In ACM Turing Award

lectures, Reading MA:Addion-Wesley,1987

M.R.Garey

[3] S.A.Cook “The Complexity of theorem-proving procedures”

[4]

and D.S.Johnson. Computes and Intractablity: A guide to the

Theory of NP-Completeness. San Francisco: W.H. Freeman, 1979

王则柯

Proceeding Of Third ACM 柯,计算复杂性, 湖南教育出版社,1993

[5]

钱颂迪等,运筹学,清华大学出版社 1990

论及其算法,科学

出版

国科学院计算技术研究所博士学位论文,1994

[7]

方述诚, S.普森普拉,线性优化及其进展──理

社 1997

[6] 刘涛,中

Jun Gu,“On Optimizing a Search Problem”,In: on

[8] B

Advanced Series

Artificial Intelligence, Vol 1, World Scientific, Jan 1992

.Selman and Henry A. Kautz , ”Local r Search Strategies fo

Satisfiablity Testing”, DIMACS Challenge Workshop 1993 [9] J. M. Crawford,“Solving ion Satisfiablity Problems Using a combinat

of Systematic and Local Search”, DIMACS Challenge Workshop 1993 [10] Dongbo Bu and Shuo Bai,”A Uniform Model for Algorithms to Solving

the Satifiablity Problem”, Proceeding of IASTED ASC’97

[11] ,贵州人民出版社 1988

[12]

[13] 版社 1994

[14]

Banff, Canada

1997

马绍汉,图算法

陆仲万,数理逻辑, 科学出版社 1978

刘叙华,基于归结方法的自动推理 科学出

E.Horowitz and S.Sahni,”Foundmentals r Algorithms”,

[15] J.W.Freeman A Dissertation for Ph.D Degree ,1995

[16]

[17]

of Compute

Computer Science Press, Inc. 1978

林尧瑞,马少平, 人工智能导论, 清华大学出版社, 1989

O. Dubois, P. Andre, Y. Boufkhad and J. Carlier,”SAT rsus UNSAT”,

[18] 贺思敏,可满足性问题算法分析和设计, 清华大学博士论文 1997

[19]

ve

DIMACS Challenge Workshop 1993

D.Pretalani, “Solving hm Satifiablity Problems: An Algorit

Implementation Challenge?” DIMACS Challenge Workshop, 1993 [20] J.Gu, “Efficient local search for very large scale satifiality

problems”, SIGART Bulletin,1992

Page 58: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-58-

[21] S.Kirpatrick, M.P.Vechi, “Optimization by C.D.Gelatt, Jr.,and

Simulated annealing”,[22]

Science ,1983

A.Kolen and E.Pesch, “Genetic search in combinational local

optimization”, Discrete Applied Mathematics,1994 [23] S.Minton,M.D.Johnston,A.B.Philips,and .”Solving

scheduling

P.Laird

large-sacle constrain satisfaction and problems using a

hruristic repair method”, In Proceeding of AAAI-90,1990 [24] J.Gu “Local Search for Satisfiablity Problem” on

[25] 李

[26] SAT 问题的拟物拟人方法──Solar,中国科学,E

[27] ,科学出版社,1992

[28]

IEEE Transactions

Systems, Man. And Cybernetics Vol 23 No 4 1993

未,黄文奇,一种求解合取范式可满足性问题的数学物理方法,中国科学,

A 辑,1994

黄文奇,金人超,求解

辑,1997

冯端,冯步云,熵

F

[29] ,1992

[30]

.瑞夫, 统计物理学, 科学出版社,1978

于渌,郝柏林,相变和临界现象,科学出版社

P.Cheeseman,B.Kanefsky and w.M.Taylor, “Where he really hard t

problems are”,In

[31] S

Proceeding of the 12th international Joint Conference

on Artificial Intelligence,1991

.Kirkpatrick and B.Selman “C he Satifiablity ritical Behavior in t

of ranfom Boolean Expressions”,

[32]

In Science, Vol 264,pp. 1297-1301,

1994

O is and J.Carlier ,“Probalbilistic approach to the .Dubo

satisfiablity problem” S 1

[33]

In Theorectical Computer cience, Vol 81, 991

Shuo Bai and Tao Liu, “An Empirical Study on the Location of ‘Really’ Instances”, AAAI-94 Workshop Program, 1994

[34]

Hard 3-SAT

E.N.洛仑兹,混沌的本质,气象出版社,1997

[35] Shuo Bai and Donbo Bu, “Modeling em”, Symposium on SAT, 1997

[36]

the Phase Transition of SAT Probl

Presented at the International Competition and

D.Mitchell, B.Selman and H.Levesque, “Hard and Easy Distributiona of SAT Problems”, Artificial Intelligence(AAAI-92) , 1992

[37]

IN: Proceeding of the Tenth National Conference on

Mazure B. Sais L and Gregoire E, “SUN: a Multi-Strategy Platform for SAT”,

[38]

Presented at the International Competition and Symposium for

SAT, Beijing 1996

S.Hampson and D. Kibler “Plateaus and Plateau Search in Boolean Satifiability Problems: When to give up searching and start

again?” allenge Workshop, 1993 ,DIMACS Ch

Page 59: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-59-

[39]

[40]

王元元,计算机科学中的逻辑学,科学出版社,1990

M.D.Davis and E.J.Weyuker Computability,Complexity and

language—F ence ACADEMIC PRESS

[41]

undamentals of Theoretical Computer Sci

Inc. 1983

J.M.Crawford and l.D.Auton “Experimental results on the Crossover point in Satisfiability Problems”, From Private Communication.

[42] A.V. Y.K. Tsuji “Satisfiability Testing with more Gelder and

Reasoning and Less Guessing”, DIMACS Challenge Workshop 1993 [43] M.David and H.Putnam, “A , computing procedure for quantification theory”

Journal of the ACM, Vol 7, 1960

[44] 白硕,卜东波,2-3-SAT 问题的相变现象及其应用, 软件学报 ,北京,(已录

用)

[45] 卜东波,白硕,SAT 问题相变现象的统计解释,模式识别与人工智能,合肥,

(已投出)

Page 60: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-60-

硕 士 期 间 发 表 的 论 文

Modeling pahse transition of random 3-SAT problem. Presented on the International SAT Comptetion & Symposium’96 , Beijing , 1996

求解SAT问题的一种新算法

软件学报 ,北京,(已录用)

2-3-SAT问题的相变现象及其应用

软件学报 ,北京,(已录用)

A Uniform Model for Algorithms to Solving SAT Problem

IASTED Artificial Intelligence and Soft Computing ’97

Banff, Canada,July 1997

SAT问题相变现象的统计解释

模式识别与人工智能,合肥,(已投出)

Page 61: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-61-

作 者 简 历

卜东波,男,1973年 10月出生于山东省微山县。

1990年 9月考入山东大学计算机科学系,1994年 7月毕业,获工学

学士学位。

1994 年 9 月保送入中国科学院计算技术研究所攻读硕士学位,师从

白硕研究员,研究方向为算法设计与计算复杂性理论、计算机网络技术。

将 1997年 7月毕业。

Page 62: 学 位 论 文中国科学院计算技术研究所学位论文专用纸 -iii- 3. 4. 5. 结和回溯操作的频率,p越小则回溯操作越多。当p等于0,USAT退化为传统的完备性算

中国科学院计算技术研究所学位论文

-62-

致 谢

三年的研究生生活马上就要结束了!在这期间得到了许许多多老师、同事、

朋友的关心和无私的帮助,深深地使我感动。

我由衷地感谢我的导师白硕研究员给我的关怀和指导。从论文的选题到研究

的开展,每一步都得到老师的悉心指导,我的每一个进步和研究成果都是和老师

的辛勤劳动分不开的。一同看到新结果时的激动,发现疑点时热烈的讨论,迸发

新思路时的深夜打扰......老师创造了一个充满了宽松、向上然而却是严谨、求

实气氛的科研环境。老师不仅学识渊博,能够去芜存真,深刻地看清问题的实质,

更难能可贵的是老师对新东西的敏锐的感觉和积极探索的态度。老师认真、严谨、

积极进取的科研作风,使我受益非浅,从老师身上,我不仅学到了知识和科研方

法,更学会了做人要有诚实、善良的品格。“师恩深似海”,我只有用加倍的努

力和出色的成果,来报答恩师的关怀和期盼!

特别感谢清华大学贺思敏博士、柳常青博士、智能中心张中博士,无论是阅

读前人的文献,还是进行算法设计、程序的调试,他们的无私帮助使我尽快地摆

脱门外汉的状态,他们新颖的思路给了我许多启发。

感谢我们课题组的全体同事,他(她)们的热情帮助和共同努力使得整个课

题组洋溢着一种昂扬、勃发的气氛。

感谢华中理工大学的黄文奇教授、北京航空航天大学吕未峰博士、梁东敏博

士、AT&T 公司贝尔实验室的 B. Selman 博士和 J. Crawford 教授、法国 Laforia

大学的 O.Dubois 教授、加拿大 Calgery 大学的顾钧教授和中国科学院软件所张健

博士提供的资料和中肯的建议,尤其是 O. Dubois 的文章,给我以很大的启发。

感谢计算所教育处的诸位老师,谢谢他(她)们在生活上和学业上的关心、

爱护和教导,使我们在计算所渡过了三年的快乐时光。

深情感谢我的家人,感谢父母二十余年来的哺育和教诲,引导我树立高远的

志向,感谢我的姐妹的鼓舞和支持,游子远游,不能报答父母的养育之恩,唯愿

本文能给父母家人带来慰籍和欢乐。

感谢所有帮助过我的老师、同学和朋友!谢谢!