文章目录
前言
本文对CSP进行了简要的介绍,并对CSP中的一种特殊情况SAT问题进行了详细介绍。SAT问题是逻辑学的一个基本问题,也是当今计算机科学和人工智能研究的核心问题。工程技术、军事、工商管理、交通运输及自然科学研究中的许多重要问题,如程控电话的自动交换、大型数据库的维护、大规模集成电路的自动布线、软件自动开发、机器人动作规划等,都可转化成SAT问题。因此致力于寻找求解SAT问题的快速而有效的算法,不仅在理论研究上而且在许多应用领域都具有极其重要的意义。
1 相关定义
1.1 CSP
定义:是一组变量X,每个变量有自己的值。当每个变量都有自己的赋值D同时满足所有关于变量的约束C时,问题就得到了解决,这类问题就叫做约束满足问题(CSP)。
全称Constraint Satisfaction Problem,即约束满足问题。CSP包含三个成分X,D,C:
X:变量集合 (variables)
D:值域集合,每个变量有自己的值域 (domain)
C:描述变量取值的约束集合 (constraint)
像本文要讲的SAT问题,以及其他如图着色问题,N皇后问题等都是CSP问题。
比如这里要讲的SAT问题,简单讲就是在一定条件下得出一个合取范式:
是否存在一个X的赋值v使得公式F可满足?显然当(1,1,1)的赋值是可满足的。
1.2 NP-完全问题
全称是Non-deterministic Polynomial,即多项式复杂程度的非确定性问题。
所有非确定性多项式时间内可解的判定问题构成NP类问题