算法设计与分析-王红梅-第二版-第9章-分支限界法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《算法设计与分析-王红梅-第二版-第9章-分支限界法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 红梅 第二 分支 限界 课件
- 资源描述:
-
1、教学重点教学重点分支限界法的设计思想,各种经典问题的限界函数分支限界法的设计思想,各种经典问题的限界函数教学难点教学难点各种经典问题的限界函数以及限界算法各种经典问题的限界函数以及限界算法教学内容及目教学内容及目标标知识点知识点教学要求教学要求了解了解理解理解掌握掌握熟练掌握熟练掌握分支限界法的设计思想分支限界法的设计思想分支限界法的时空性能分支限界法的时空性能TSP问题问题多段图的最短路径问题多段图的最短路径问题0/1背包问题背包问题任务分配问题任务分配问题批处理作业调度问题批处理作业调度问题学习目标第第9 9章章 分支限界法分支限界法 9.1 9.1 概概 述述 9.2 9.2 图问题中的
2、分支限界法图问题中的分支限界法9.3 9.3 组合问题中的分支限界法组合问题中的分支限界法回溯法回溯法:按深度优先策略遍历问题的解空间:按深度优先策略遍历问题的解空间树,应用约束条件、目标函数等剪枝函数实树,应用约束条件、目标函数等剪枝函数实行剪枝行剪枝分支限界法分支限界法:按广度优先策略遍历问题的解:按广度优先策略遍历问题的解空间树,在遍历过程中,对已经处理的每一空间树,在遍历过程中,对已经处理的每一个结点根据限界函数估算目标函数的可能取个结点根据限界函数估算目标函数的可能取值,从中选取使目标函数取得极值的结点优值,从中选取使目标函数取得极值的结点优先进行广度优先搜索,从而不断调整搜索方先进
3、行广度优先搜索,从而不断调整搜索方向,尽快找到问题的解。向,尽快找到问题的解。9.1 9.1 概概 述述 9.1 9.1 概概 述述 9.1.1 9.1.1 分支限界法的设计思想分支限界法的设计思想9.1.2 9.1.2 分支限界法的时间性分支限界法的时间性能能n回溯法存在的问题回溯法存在的问题n虽用虽用剪枝剪枝减少了搜索空间,但减少了搜索空间,但按深度优先策略机械地进按深度优先策略机械地进行行,搜索是盲目的。如,搜索是盲目的。如0/10/1背包问题。背包问题。n首先将目标函数初始化为最大值,目标函数只有在首先将目标函数初始化为最大值,目标函数只有在有一有一个可行解(第一个叶子)后才有意义个可
4、行解(第一个叶子)后才有意义,此后的搜索相对,此后的搜索相对来说才有方向,所以从搜索的整个过程来看还是盲目的。来说才有方向,所以从搜索的整个过程来看还是盲目的。如如TSPTSP问题(图问题(图8.68.6)。)。n分支限界法分支限界法n先确定一个合理的先确定一个合理的限界函数限界函数n由限界函数确定目标函数的界由限界函数确定目标函数的界down,updown,upn仍以仍以穷举法的解空间树穷举法的解空间树为基础,但以为基础,但以广度优先的原理广度优先的原理搜搜索该结点的所有孩子结点,分别估算这些索该结点的所有孩子结点,分别估算这些孩子结点的目孩子结点的目标函数的可能取值标函数的可能取值分支限界
5、法的设计思想分支限界法的设计思想n如果某孩子结点的目标函数如果某孩子结点的目标函数可能取值超出目标函数的界,则可能取值超出目标函数的界,则将其丢弃,将其丢弃,因为从这个结点生成的解不会比目前已经得到的因为从这个结点生成的解不会比目前已经得到的解更好;否则,将其加入待处理结点表(表解更好;否则,将其加入待处理结点表(表PTPT)n依次从表依次从表PTPT中选取使目标函数的值取极值的结点成为当前扩中选取使目标函数的值取极值的结点成为当前扩展结点,重复上述过程,直到找到最优解。展结点,重复上述过程,直到找到最优解。n目标函数的界目标函数的界down,updown,up的确定的确定n对最大化问题对最大
6、化问题UpUp由限界函数确定,由限界函数确定,downdown由某种启发方式得到由某种启发方式得到,如贪心算法如贪心算法n对最小化问题对最小化问题downdown由限界函数确定,由限界函数确定,upup由某种启发方式得到由某种启发方式得到,如贪心算法如贪心算法分支限界法的设计思想分支限界法的设计思想n例:例:0/10/1背包问题。假设有背包问题。假设有4 4个物品,其重量分别个物品,其重量分别为为(4,7,5,3)(4,7,5,3),价值分别为,价值分别为(40,42,25,12)(40,42,25,12),背包容量,背包容量W=10W=10。首先,将给定物品按单位重量。首先,将给定物品按单位
7、重量价值从大到小排序,结果如下:价值从大到小排序,结果如下:物品物品重量重量(w)价值价值(v)价值价值/重量重量(v/w)144010274263525543124分支限界法的设计思想分支限界法的设计思想n确定上下界确定上下界 ndowndown:应用贪心法求得近似解为应用贪心法求得近似解为(1,0,0,0)(1,0,0,0),获得的,获得的价值为价值为4040,这可以作为,这可以作为0/10/1背包问题的背包问题的下界下界。nupup:考虑最好情况,背包中全部装入第考虑最好情况,背包中全部装入第1 1个物品且可以个物品且可以将背包装满,则可得到一个将背包装满,则可得到一个简单上界简单上界的
8、计算方法:的计算方法:up=Wup=W(v(v1 1/w/w1 1)=10)=1010=10010=100n则目标函数的界:则目标函数的界:40,10040,100n限界函数为限界函数为:)()(11iiwvwWvub分支限界法的设计思想分支限界法的设计思想w=0,v=0ub=100w=4,v=40ub=76w=0,v=0ub=60w=11无效解无效解w=4,v=40ub=70w=9,v=65ub=69w=4,v=40ub=64w=12无效解无效解w=9,v=65ub=65234567891PT表图9.1 0/1背包问题分支限界法的设计思想分支限界法的设计思想n分支限界法的搜索过程如下:分支限
9、界法的搜索过程如下:n在根结点在根结点1 1 没有物品装入背包,没有物品装入背包,w=0,v=0w=0,v=0 限界函数值:限界函数值:ub=0+(10-0)=10ub=0+(10-0)=1010=10010=100n在结点在结点2 2 物品物品1 1装入背包,装入背包,w=ww=w1 1=4=4,v=40v=40 目标函数值目标函数值:ub=40+(10-4)ub=40+(10-4)6=766=76 将结点将结点2 2加入待处理结点表加入待处理结点表PTPT中中n在结点在结点3 3 物品物品1 1不装入背包,不装入背包,w=0,v=0w=0,v=0 目标函数值目标函数值:10ub=0+(10
10、-0)10ub=0+(10-0)6 66060,将结点将结点3 3加入表加入表PTPT中中n在表在表PTPT中选取目标函数值取得中选取目标函数值取得极大的结点极大的结点2 2 优先进行搜索;优先进行搜索;分支限界法的设计思想分支限界法的设计思想n在结点在结点4 4 物品物品2 2装入背包,装入背包,w=11Ww=11W,不满足约束条件,不满足约束条件,将结点将结点4 4丢弃丢弃n在结点在结点5 5 物品物品2 2不装入背包,不装入背包,w=4,v=40 w=4,v=40 与结点与结点2 2相同相同 目标函数值为目标函数值为:ub=40+(10-4)ub=40+(10-4)5=705=70 将结
11、点将结点5 5加入表加入表PTPT中中n在结点在结点6 6 物品物品3 3装入背包,装入背包,w=4+5=9w=4+5=9,v=40+25=65v=40+25=65 目标函数值为目标函数值为:ub=65+(10-9)ub=65+(10-9)4=694=69 将结点将结点6 6加入表加入表PTPT中中在表在表PTPT中选取目标函数值取得极大的结点中选取目标函数值取得极大的结点5 5 优先进行搜索优先进行搜索分支限界法的设计思想分支限界法的设计思想n在结点在结点7 7 物品物品3 3不装入背包,不装入背包,w=4,v=40,w=4,v=40,与结点与结点5 5相同相同 目标函数值为:目标函数值为:
12、ub=40+(10-4)ub=40+(10-4)4 46464 将结点将结点7 7加入表加入表PTPT中中n在结点在结点8 8 物品物品4 4装入背包,装入背包,w=12W,w=12W,不满足约束条件,将结点不满足约束条件,将结点8 8丢弃;丢弃;n在结点在结点9 9 物品物品4 4不装入背包,不装入背包,w=9,v=65w=9,v=65,与结点与结点6 6相同相同 目标函数值为目标函数值为:ub=65+(W-w)ub=65+(W-w)*0=650=65 将结点将结点7 7加入表加入表PTPT中中在表在表PT PT 中选取目标函数值取得极大的结点中选取目标函数值取得极大的结点6 6 优先进行搜
13、索优先进行搜索分支限界法的设计思想分支限界法的设计思想n结点结点9 9是叶子结点是叶子结点 同时结点同时结点9 9 的目标函数值是表的目标函数值是表PT PT 中的极大值,中的极大值,结点结点9 9 对应的解即是问题的最优解,对应的解即是问题的最优解,搜索结束搜索结束n在图在图9.19.1的的0/10/1背包问题中,为了在搜索过程中背包问题中,为了在搜索过程中构建搜构建搜索经过的树结构索经过的树结构,设一个表,设一个表PTPT,记录搜索过程,如图,记录搜索过程,如图9.29.2。n再设计了一表再设计了一表STST,从,从PTPT中中取出最大值结点进行扩充取出最大值结点进行扩充时,时,将最大值结
14、点存储到表将最大值结点存储到表STST中,表中,表PTPT和表和表STST的数据结构的数据结构为:为:(物品物品i-1i-1的选择结果,的选择结果,ubub)在搜索过程中表在搜索过程中表PTPT和表和表ST ST 的状态如图的状态如图9.29.2所示所示分支限界法的设计思想分支限界法的设计思想(c)(c)扩展结点扩展结点5 5后后 (d)(d)扩展扩展结点结点6 6 后,最优解为后,最优解为(1,0,1,0)65(1,0,1,0)65 图图9.2 9.2 方法确定方法确定0/10/1背包问题最优解背包问题最优解的各分量的各分量(a)扩展根结点后扩展根结点后 (b)扩展结点扩展结点2后后(0,7
15、6)(0,60)PTST(0,60)(1,70)PTST(0,76)(0,60)(0,69)(0,64)PTST(0,76)(1,70)(0,60)(0,64)(1,65)PTST(0,76)(1,70)(0,69)3792567分支限界法的设计思想分支限界法的设计思想分支限界法的设计思想分支限界法的设计思想分支限界法的一般过程分支限界法的一般过程 1 1根据限界函数计算目标函数的根据限界函数计算目标函数的 downdown,upup;2 2将待处理结点表将待处理结点表PT PT 初始化为空;初始化为空;3.3.对根结点的每个孩子结点对根结点的每个孩子结点x x执行下列操作执行下列操作 3.1
16、 3.1 估算结点估算结点x x的目标函数值的目标函数值value;value;3.2 3.2 若(若(value=downvalue=down),则将结点则将结点x x加入表加入表PTPT中;中;4 4循环直到某个叶子结点的目标函数值在表循环直到某个叶子结点的目标函数值在表PTPT中最大中最大4.1 4.1 i i=表表PTPT中值最大的结点;中值最大的结点;4.2 4.2 对结点对结点i i的每个孩子结点的每个孩子结点x x执行下列操作执行下列操作4.2.1 4.2.1 估算结点估算结点x x的目标函数值的目标函数值valuevalue;4.2.2 4.2.2 若若(value=down)
17、(value=down),则将结点,则将结点x x加入表加入表PTPT中;中;4.2.3 4.2.3 若(结点若(结点x x是叶子结点且是叶子结点且valuevalue值在表值在表PTPT中最大),则将中最大),则将结点结点x x对应的解输出,算法结束;对应的解输出,算法结束;4.2.4 4.2.4 若若(结点结点x x是叶子结点但是叶子结点但valuevalue值在表值在表PTPT中不是最大中不是最大),),则令则令down=valuedown=value,并且将表,并且将表PTPT中所有小于中所有小于valuevalue的结点删除;的结点删除;分支限界法的设计思想分支限界法的设计思想n目标
18、函数目标函数“界界”的特性的特性n问题的解向量为问题的解向量为X=(xX=(x1 1,x,x2 2,x xn n),其中,其中,x xi i 的取值的取值范围为某个有穷集合范围为某个有穷集合S Si i,|S|Si i|=|=r ri i(1in1in)n 是部分解,是部分解,是相应的界是相应的界n对最小值问题对最小值问题,称为下界,意思是,称为下界,意思是向下搜索所可能取向下搜索所可能取得得的值的值最小不会小于这些下界最小不会小于这些下界。若。若X=(xX=(x1 1,x,x2 2,x xn n)是所得到的部分解,满足:是所得到的部分解,满足:),()(211kxxxx),(),(211kx
19、xxboundxbound),(),()(21211kxxxboundxxboundxbound分支限界法的设计思想分支限界法的设计思想n对最大值问题对最大值问题,称为上界,意思是向下搜索所可能取,称为上界,意思是向下搜索所可能取得的值最大不会大于这些上界。若得的值最大不会大于这些上界。若 是所得到的部分解,满足:是所得到的部分解,满足:),(21kxxxX),(),()(21211kxxxboundxxboundxbound分支限界法的设计思想分支限界法的设计思想分支限界法的设计思想分支限界法的设计思想n用分支限界法求解问题的关键用分支限界法求解问题的关键n如何确定合适的如何确定合适的限界函
20、数限界函数限界函数用于估算结点的目标函数的可能取值。好的限界函数用于估算结点的目标函数的可能取值。好的限界函数不仅计算简单,还要保证最优解在搜索空间限界函数不仅计算简单,还要保证最优解在搜索空间中,更重要的是能尽早对超出目标函数界的结点进行中,更重要的是能尽早对超出目标函数界的结点进行剪枝,减少搜索空间。有时需要对具体的问题实例进剪枝,减少搜索空间。有时需要对具体的问题实例进行大量实验才能确定一个合理的限界函数。行大量实验才能确定一个合理的限界函数。n如何组织如何组织待处理结点表待处理结点表为提高查找极值的效率,待处理结点表为提高查找极值的效率,待处理结点表PTPT可采用堆或可采用堆或优先队列
21、的形式存储。优先队列的形式存储。分支限界法的设计思想分支限界法的设计思想n用分支限界法求解问题的关键(续)用分支限界法求解问题的关键(续)n如何确定最优解中如何确定最优解中的各个分量的各个分量分支限界法对问题的解空间树中结点的处理是跳跃式分支限界法对问题的解空间树中结点的处理是跳跃式的,回溯也不是单纯地沿着双亲结点一层一层向上回的,回溯也不是单纯地沿着双亲结点一层一层向上回溯,因此当搜索到最优解(叶子结点)时,却无法求溯,因此当搜索到最优解(叶子结点)时,却无法求得该叶子结点对应的最优解中的各个分量。解决方法:得该叶子结点对应的最优解中的各个分量。解决方法:n对每个扩展结点保存根结点到该结点的
22、路径;对每个扩展结点保存根结点到该结点的路径;n在搜索过程中构建搜索经过的树结构,在求得最优在搜索过程中构建搜索经过的树结构,在求得最优解时,从叶子结点不断回溯到根结点,以确定最优解时,从叶子结点不断回溯到根结点,以确定最优解中的各个分量。解中的各个分量。分支限界法的设计思想分支限界法的设计思想(c)(c)扩展结点扩展结点5 5后后 (d)(d)扩展扩展结点结点6 6 后,最优解为后,最优解为(1,0,1,0)65(1,0,1,0)65 图图9.3 9.3 方法确定方法确定0/10/1背包问题最优解背包问题最优解的各分量的各分量(a)扩展根结点后扩展根结点后 (b)扩展结点扩展结点2后后(0,
23、76)(0,60)PTST(0,60)(1,70)PTST(0,76)(0,60)(0,69)(0,64)PTST(0,76)(1,70)(0,60)(0,64)(1,65)PTST(0,76)(1,70)(0,69)3792567分支限界法的设计思想分支限界法的设计思想9.1 9.1 概概 述述 9.1.1 9.1.1 分支限界法的设计思想分支限界法的设计思想9.1.2 9.1.2 分支限界法的时间性分支限界法的时间性能能n与回溯法相同点与回溯法相同点n分支限界法分支限界法和和回溯法回溯法实际上都是基于蛮力法,遍历具有实际上都是基于蛮力法,遍历具有指数阶个结点的解空间树指数阶个结点的解空间树
24、n在最坏情况下,时间复杂性肯定为指数阶在最坏情况下,时间复杂性肯定为指数阶2 2n n或或n nn nn与回溯法不同点与回溯法不同点n分支限界法分支限界法首先扩展解空间树中的上层结点首先扩展解空间树中的上层结点,并用,并用限界限界函数大范围剪枝函数大范围剪枝n根据限界函数根据限界函数不断调整搜索方向不断调整搜索方向,选择最有可能取得最,选择最有可能取得最优解的子树优先进行搜索优解的子树优先进行搜索n如果选择了结点的合理如果选择了结点的合理扩展顺序扩展顺序以及设计以及设计好的限界函数好的限界函数,分支界限法分支界限法可以快速得到问题的解可以快速得到问题的解9.1.2 9.1.2 分支限界法的时间
25、性能分支限界法的时间性能 n分支限界法的代价分支限界法的代价n首先,设计首先,设计一个好的限界函数通常需要花费更多的时间一个好的限界函数通常需要花费更多的时间计算相应的目标函数值计算相应的目标函数值,而且对于具体的问题实例,通,而且对于具体的问题实例,通常需要进行大量实验,才能确定一个好的限界函数;常需要进行大量实验,才能确定一个好的限界函数;n其次,分支限界法其次,分支限界法对解空间树中结点的处理是跳跃式的对解空间树中结点的处理是跳跃式的,因此,在搜索到某个叶子结点得到最优值时,为了从该因此,在搜索到某个叶子结点得到最优值时,为了从该叶子结点求出对应的最优解中的各个分量,需要对每个叶子结点求
展开阅读全文