第六章 分支限界法1540

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ilujl
8
0/1背包的分支限界法过程
1. 问题描述
物品 1 2 重(w) 4 7 价(v) 40 42 容量w=10 价/重(v/w) 10 6
3
4
5
3
25
12
5
4
贪心法的解(1,0,0,0),价值为40,可作为0/1背包的下界。
ilujl 9
0/1背包的分支限界法过程
2. 求解过程
上界ub可用最好情况来代替ub=w*(v1/w1)=10*10=100 目标函数的界[40, 100],一般解空间树中第i层的各结 点,代表对物1~i的选择,可这样定限界函数:
2. 算法思想
算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的
儿子结点被依次插入堆中。此后,算法从堆中取出具有最小当前 路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻 的所有顶点。如果从当前扩展结点i到顶点j有边可达,且从源出 发,途经顶点i再到顶点j的所相应的路径的长度小于当前最优路 径长度,则将该顶点作为活结点插入到活结点优先队列中。 这个结点的扩展过程一直继续到活结点优先队列为空时为止。
ilujl 3
分支限界法的基本思想
分支限界法常以广度优先或以最小耗费 (最大效益)优先的方式搜索问题的解空间 树。对已处理的各结点根据限界函数估算目 标函数的可能取值,从中选取使目标函数取 得极值(极大/极小)的结点优先进行广度优 先搜索不断调整搜索方向,尽快找到解。
特点:限界函数常基于问题的目标函数,适 用于求解最优化问题。
ilujl 4
分支限界法的基本思想
在分支限界法中,每一个活结点只有一次机会 成为扩展结点。活结点一旦成为扩展结点,就一次 性产生其所有儿子结点。在这些儿子结点中,导致 不可行解或导致非最优解的儿子结点被舍弃,其余 儿子结点被加入活结点表中。
此后,从活结点表中取下一结点成为当前扩展 结点,并重复上述结点扩展过程。这个过程一直持 续到找到所需的解或活结点表为空时为止。
ilujl
wk.baidu.com
是否PT中最大值?

用X来调整down bound是最少所能 得到的解 继续搜索
13
单源最短路径问题
1. 问题描述
下面以一个例子来说明单源最短路径问题:在下 图所给的有向图G中,每一边都有一个非负边权。要 求图G的从源顶点s到目标顶点t之间的最短路径。
ilujl
14
单源最短路径问题
1. 问题描述
ilujl
5
分支限界法的基本思想
常见的两种分支限界法
(1)队列式(FIFO)分支限界法 按照队列先进先出(FIFO)原则选取下一个 结点为扩展结点。 (2)优先队列式分支限界法
按照优先队列中规定的优先级选取优先级最高 的结点成为当前扩展结点。
ilujl 6
解空间树的动态搜索
(1)回溯求解0/1背包问题,虽剪枝减少了搜索 空间,但整个搜索按深度优先机械进行,是盲目 搜索(不可预测本结点以下的结点进行的如何)。 (2)回溯求解TSP也是盲目的(虽有目标函数,也 只有找到一个可行解后才有意义)
ilujl
11
分支限界法的设计思路
设求解最大化问题,解向量为X=(x1,…,xn),xi的取值 范围为Si,|Si|=ri。在使用分支限界搜索问题的解空间 树时,先根据限界函数估算目标函数的界[down, up], 然后从根结点出发,扩展根结点的r1个孩子结点,从 而构成分量x1的r1种可能的取值方式。
下图是用优先队列式分支限界法解有向图G的 单源最短路径问题产生的解空间树。其中,每一个结 点旁边的数字表示该结点所对应的当前路长。
ilujl
15
单源最短路径问题
2. 算法思想
解单源最短路径问题的优先队列式分支限界法用一极 小堆来存储活结点表。其优先级是结点所对应的当前路长。
ilujl
16
单源最短路径问题
x1
x2
r 1 ...
ilujl
对这r1个孩子结点分别估算可能的目标函 数bound(x1),其含义:以该结点为根的子 树所有可能的取值不大于bound(x1),即:
x2
bound(x1)≥bound(x1,x2)≥…≥ bound(x1,…,xn)
12
分支限界法的设计思路



若某孩子结点的目标函数 值超出目标函数的下界, 则将该孩子结点丢弃;否 是 则,将该孩子结点保存在 待处理结点表PT中。 再取PT表中目标函数极大 则X是问题 的最优解; 值结点作为扩展的根结点, 重复上述。 直到一个叶子结点时的可 行解X=(x1,…,xn),及目标 函数值bound(x1,…,xn)。
ub=V+(W-w)*(vi+1/wi+1)
已装入价值 剩余容量 剩下物品最大单位价值vi+1/wi+1 的积
可参考板书视图
ilujl 10
0/1背包的分支限界法过程
2. 总结 从0/1背包问题的搜索过程可看出:与回溯法相 比,分支限界法可根据限界函数不断调整搜索 方向,选择最可能得最优解的子树优先进行搜 索找到问题的解。
ilujl 2
分支限界法的基本思想
分支限界法与回溯法
(1)求解目标:回溯法的求解目标是找出解空间 树中满足约束条件的所有解,而分支限界法的求解 目标则是找出满足约束条件的一个解,或是在满足 约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同: 回溯法以深度优先的方式搜索解空间树; 而分支限界法则以广度优先或以最小耗费优先的方 式搜索解空间树。
ilujl
7
解空间树的动态搜索
分支限界法首先确定一个合理的限界函数,并根据限 界函数确定目标函数的界[down, up]; 然后按照广度优先策略遍历问题的解空间树,在某一 分支上,依次搜索该结点的所有孩子结点,分别估算 这些孩子结点的目标函数的可能取值(对最小化问题, 估算结点的down,对最大化问题,估算结点的up)。 如果某孩子结点的目标函数值超出目标函数的界,则 将其丢弃(从此结点生成的解不会比目前已得的更 好),否则入待处理表。
第六章 分支限界法

理解分支限界法的剪枝搜索策略。 掌握分支限界法的算法框架

队列式(FIFO)分支限界法 优先队列式分支限界法
ilujl
1
第五章 分支限界法

通过应用范例学习分支限界法的设计策略。



单源最短路径问题 装载问题; 布线问题 0-1背包问题; 最大团问题; 旅行售货员问题 电路板排列问题 批处理作业调度问题
相关文档
最新文档