回溯法ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分析:
可能解由一个等长向量(x1, x2, …, xn)组成, 其中
xi=1(1≤i≤n)表示物品i装入背包 xi=0(1≤i≤n)表示物品i没有装入背包
如:
当n=3时,其解空间是:
{ (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)}
第5章 回溯法
学习要点
5.1 回溯法概述 5.2 回溯法的典型示例 5.3 回溯法的效率分析 本章小结
1
5.1 回溯法概述
5.1.1 问题的解空间 问题的解空间 两类典型的解空间
5.1.2 回溯法的基本思想 回溯法的基本思想 算法的框架 例:排列与组合 小结
15
排列树
分析
求赋权图G的具有最小权的Hamilton圈1
1解空间30:
2
2 34
64
5 10
3 42 4 2 3
3
4
20
4
34
23
2
当起点1固定时,上图有3!个周游路线(排列问题)
16
回溯法的基本思想
回溯法
回溯法是一种选优搜索法,按选优条件向前搜 索,以达到目标。
但当探索到某一步时,发现原先选择并不优或 达不到目标,就退回一步重新选择,这种走不 通就退回再走的技术为回溯法,而满足回溯条 件的某个状态的点称为“回溯点”。
若(x1, x2,… xi xi+1)满足约束条件, 则继续添加 xi+2 ;
若所有可能的xi+1 si+1均不满足约束条件,则去 掉xi , 回溯到(x1, x2,… xi-1), 添加尚未考虑过的xi;
如此反复进行,直到(x1, x2,… xk) kn满足所有的
约束条件或证明无解。
问题的解向量:
问题的解可以表示成一个n元式(x1, x2,… xn)的形
式。
问题的解空间
E={(x1, x2,… xn)| xi si , si为有限集 }称为问题的
解空间

约束条件
显约束:每个xi的范围都给定的约束。
隐约束:元组的分量间满足函数关系 f(x1,...xn)
4
问题的解空间
12
排列树
排列树(Permutation Trees):
当所给问题是确定n个元素满足某种性质的排 列时,相应的解空间树称为排列树。
通常情况下:|S1|=n,|S2|=n-1,…,|Sn|=1, 解空间为:
(1,2,3,……,n-1,n) (2,1,3,……,n-1,n)
…… (n,n-1,……,3,2,1)
如:
当n=3时,解空间: { (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1),
(1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)}
7
子集树
例1:
可以用一棵满二叉树表示解空间树(如n=3) 。
8
子集树
例2:0-1背包问题
5
两类典型的解空间
两类典型的解空间
子集树 排列树
6
子集树
例1:
集合A={a1,a2,…,an},求A的所有子集合。
分析:
问题的解(子集)可以表示为X=(x1, x2, …, xn) 其中
xi=1(1≤i≤n) :ai属于X xi=0(1≤i≤n) :ai不属于X
在子集树中,一般地: |S1|=|S2|=…=|Sn|=2, 即每个结点有2棵的子树。
解空间为:
(0,0,……,0,0) (0,0,……,0,1)
…… (1,1,……,1,1)
11
子集树
所以:
解空间有2n个元素。 若表示为树形结构就是一棵有2n个叶结点的
满二叉树,遍历子集树需Ω(2n)的计算时间。
9
子集树
可以用一棵满二叉树表示解空间树
例如:W= (20,15, 15) ,V= (40,25, 25), C=30
问题的求解过程:相当于在解空间树中搜索满足条件的叶结点 。
10
子集树
子集树(Subset Trees)
当所给问题是从n个元素的集合中找出满足某种性 质的子集时,相应的解空间树称为子集树。
13
排列树
所以:
解空间有n!个元素 若表示为树形结构就是一个n度树,这样的树
有n! 个叶结点,遍历排列树需Ω(n!)计算时间。
14
排列树
例:旅行商问题
问题提出: 某售货员要到若干个城市去推销商品。已 知各个城市之间的路程(或旅费)。 要选定一条从驻地出发,经过每个城市一 遍,最后回到驻地的路线,使得总的路程 (或总旅费)最小。
17
回溯法的基本思想
主要应用
解决一些复杂问题在求解的过程中,需要经过 若干步骤,而每一个步骤都有若干种可能的分 支,为了完成这一过程,又必须遵守一些规则,
但这些规则又无法精确地用数学公式或语言来 描述的一类问题中。
18
回溯法的基本思想
1.基本思想
设问题的解可表示为n元组(x1, x2,… xn), xisi , si为有限集, 设已有满足约束条件的部分解(x1, x2,… xi)添加xi+1 si+1,
2
问题的解空间
复杂问题的求解
复杂问题常常有很多的可能解,这些可能解构 成了问题的解空间。
解空间也就是进行穷举的搜索空间,所以,解 空间中应该包括所有的可能解。
问题解的求解方法
搜索问题的解空间,获得问题的解,依据搜索 策略的不同,可以分为:
回溯法
分支限界法
3
问题的解空间
问题的解空间
由笛卡儿积A=S1×S2×…×Sn构成,且
第1层的根结点有|S1|棵子树, 第2层共有|S1|个结点, 第3层共有|S1|×|S2|个结点,
依此类推,
第n+1层共有|S1|×|S2|×…×|Sn|个结点,他们都是 叶子结点,代表问题的所有可能解。
显式图和隐式图
19
回溯法的基本思想
2.求解过程
求解过程可表示为在一棵解空间树作深度优先搜索。 具体过程:
搜索按深度优先策略从根开始, 当搜索到任一结点时,度优先搜索, 否则,跳过该结点以下的子树(剪枝),向上逐级
相关文档
最新文档