计算机设计与分析分枝-限界法0预备知识问题状态解状态状态空间答案状态状态空间树活结点E-结点死结点等等……本节主要目的通过对n-皇后问题的分析,学习以上概念,并且了解回溯法n-皇后问题描述将n个皇后放置在一个n×n的棋盘上,要求没有两个皇后可以互相攻击
攻击的定义:两个皇后出现在同一行、或同一列、或者同一条斜线上都视为出现了攻击
8-皇后问题的一个解1234567812345678该解的8元组表示:(4,6,8,2,7,1,3,5)n-皇后问题用n-元组(x1,x2,…,xn)表示棋盘上皇后的位置状态下标表示皇后i(i=1,2,…,n)xi表示放置皇后i所在的列号显式约束条件:每个xi只从集合Si={1,2,…,n}取值满足显式约束的所有元组确定一个可能的解空间解空间由nn个n-元组组成隐式约束条件没有两个xi可以相同,而且没有两个皇后可以在同一条斜线上由前者得,所有解都是n-元组(1,2,…,n)的置换,因此,解空间缩小为n
个元组4-皇后问题解空间的树结构结点按深度优先检索编号叶子结点有4
=24个解空间树结构的术语树中每个结点确定求解问题的一个问题状态(problemstate)由根结点到其它结点的所有路径确定了这个问题的状态空间(statespace)解状态(solutionstates)是这样一些问题状态S,对于这些问题状态,由根到S的那条路径确定了这解空间中的一个元组(满足显式约束)答案状态(solutionstates)是这样一些解状态S,由根到S的路径确定了问题的一个解(满足隐式约束)解空间的树结构为状态空间树(statespacetree)利用状态空间树解题1设想状态空间树2生成问题状态3确定问题状态中哪些是解状态4哪些解状态是答案状态生成问题状态构造状态空间树状态空间树术语活结点:自己