题目:四皇后问题

解空间:四维向量x1,x2,x3,x4
四叉树:定义 每一个节点向下分叉 有四个 就是四叉树
| 第一个皇后 | 第二个皇后 | 第三个皇后 | 第四个皇后 |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 |
| 4 | 4 | 4 | 4 |
| 第一个皇后 | 第二个皇后 | 第三个皇后 | 第四个皇后 | 可行? |
|---|---|---|---|---|
| 1 | 3 | 2 | 4 | x 2 3 反斜线 |
| 1 | 3 | 4 | 2 | x 3 4 斜线 |
| 1 | 4 | 2 | 3 | x 不满住 |
| 2 | 4 | 1 | 3 | √ 可行 |
如何找到解 以及解空间

通过深度优先搜索来完成这棵树
0-1背包问题
问题示例

x:代表几种物品
y:代表背包当前所能包含的最大价值
F(x-1,y-value(x))+value(x):代表选择了第x个物品
F(x-1,y) :代表没有选择第x个物品价值最大
F(x,y) = max{F(x-1,y-value(x))+value(x),F(x-1,y)}
解空间
为一个n为的向量
<x1,x2,…xn>
xi = 1代表i选入背包
就是一个树 有n层 第i层代表第i个物品取0还是 1 每一层都分为俩个
0-1取值的二叉树为子集树
算法设计

满足约束:就是背包体积不能超过
搜索空间

货郎问题

20
/ \
10 40
/ \
5 12
问题分析

中间遍历的时候进行约束条件的判定
深度优先

广度优先

回溯算法会用到这两个搜索方法


存储当前路径



















