分支和回溯

题目:四皇后问题

分支和回溯_第1张图片
解空间:四维向量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 √ 可行

如何找到解 以及解空间

分支和回溯_第2张图片
通过深度优先搜索来完成这棵树

0-1背包问题

问题示例

分支和回溯_第3张图片

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为的向量

xi = 1代表i选入背包

就是一个树 有n层 第i层代表第i个物品取0还是 1 每一层都分为俩个

0-1取值的二叉树为子集树

算法设计

分支和回溯_第4张图片
满足约束:就是背包体积不能超过

搜索空间

分支和回溯_第5张图片

货郎问题

分支和回溯_第6张图片

 					20
                   /  \
                  10    40
                 /  \
                5    12

问题分析

分支和回溯_第7张图片
中间遍历的时候进行约束条件的判定

深度优先

分支和回溯_第8张图片
广度优先

分支和回溯_第9张图片
回溯算法会用到这两个搜索方法

分支和回溯_第10张图片
分支和回溯_第11张图片
存储当前路径

你可能感兴趣的:(算法)