分支限界法PPT讲稿.ppt
《分支限界法PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《分支限界法PPT讲稿.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分支限界法第1页,共51页,编辑于2022年,星期五9.1 概概 述述 9.1.1 解空间树的动态搜索(解空间树的动态搜索(2)9.1.2 分支限界法的设计思想分支限界法的设计思想9.1.3 分支限界法的时间性能分支限界法的时间性能第2页,共51页,编辑于2022年,星期五 回回溯溯法法从从根根结结点点出出发发,按按照照深深度度优优先先策策略略遍遍历历问问题题的的解解空空间间树树。例例如如,图图8.4所所示示对对0/1背背包包问问题题的的搜搜索索,如如果果某某结结点点所所代代表表的的部部分分解解不不满满足足约约束束条条件件(即即超超过过背背包包容容量量),则则对对以以该该结结点点为为根根的的子
2、子树树实实行行剪剪枝枝;否否则则,继继续续按按深深度度优优先先策策略略遍遍历历以以该该结结点点为为根根的的子子树树。这这种种遍遍历历过过程程一一直直进进行行,当当搜搜索索到到一一个个满满足足约约束束条条件件的的叶叶子子结结点点时时,就就找找到到了了一一个个可可行行解解。对对整整个个解解空空间间树树的的遍遍历历结结束束后后,所所有有可可行行解解中中价价值值最最大大的的就就是是问问题题的的最最优优解解。回回溯溯法法求求解解0/1背背包包问问题题,虽虽然然实实行行剪剪枝枝减减少少了了搜搜索索空空间间,但但是是,整整个个搜搜索索过过程程是是按按深深度度优优先先策策略略机机械械地进行,所以,这种搜索是盲
3、目的。地进行,所以,这种搜索是盲目的。分分支支限限界界法法首首先先确确定定一一个个合合理理的的限限界界函函数数,并并根根据据限限界界函函数数确确定定目标函数的界目标函数的界down,up(对于最小化问题,根据(对于最小化问题,根据9.1.1 解空间树的动态搜索(解空间树的动态搜索(2)第3页,共51页,编辑于2022年,星期五限界函数确定目标函数的下界限界函数确定目标函数的下界down,目标函数的上界,目标函数的上界up可以用某种启发可以用某种启发式方法得到。例如贪心法,对于最大化问题,根据限界函数确定目标函数的式方法得到。例如贪心法,对于最大化问题,根据限界函数确定目标函数的上界上界up,目
4、标函数的下界,目标函数的下界down可以用某种启发式方法得到)。然后,按可以用某种启发式方法得到)。然后,按照广度优先策略遍历问题的解空间树,在分支结点上,依次搜索该结点的所照广度优先策略遍历问题的解空间树,在分支结点上,依次搜索该结点的所有孩子结点,分别估算这些孩子结点的目标函数的可能取值(对于最小化问有孩子结点,分别估算这些孩子结点的目标函数的可能取值(对于最小化问题,估算结点的下界;对于最大化问题,估算结点的上界),如果某孩子结题,估算结点的下界;对于最大化问题,估算结点的上界),如果某孩子结点的目标函数可能取得的值超出目标函数的界,则将其丢弃,因为从这个结点的目标函数可能取得的值超出目
5、标函数的界,则将其丢弃,因为从这个结点生成的解不会比目前已经得到的解更好;否则,将其加入待处理结点表点生成的解不会比目前已经得到的解更好;否则,将其加入待处理结点表(以下简称表(以下简称表PT)中。依次从表)中。依次从表PT中选取使目标函数的值取得极值中选取使目标函数的值取得极值(对于最小化问题,是极小值;对于最大化问题,是极大值)的(对于最小化问题,是极小值;对于最大化问题,是极大值)的结点成为当前扩展结点,重复上述过程,直到找到最优解。结点成为当前扩展结点,重复上述过程,直到找到最优解。随随着着这这个个遍遍历历过过程程的的不不断断深深入入,表表PT中中所所估估算算的的目目标标函函数数的的界
6、界越越来来越接近问题的最优解。当搜索到一个叶子结点时越接近问题的最优解。当搜索到一个叶子结点时第4页,共51页,编辑于2022年,星期五,如如果果该该结结点点的的目目标标函函数数值值是是表表PT中中的的极极值值(对对于于最最小小化化问问题题,是是极极小小值值;对对于于最最大大化化问问题题,是是极极大大值值),则则该该叶叶子子结结点点对对应应的的解解就就是是问问题题的的最最优优解解;否否则则,根根据据这这个个叶叶子子结结点点调调整整目目标标函函数数的的界界(对对于于最最小小化化问问题题,调调整整上上界界;对对于于最最大大化化问问题题,调调整整下下界界),依依次次考考察察表表PT中中的的结结点点,
7、将将超超出出目目标标函函数数界界的的结结点点丢丢弃弃,然然后后从从表表PT中选取使目标函数取得极值的结点继续进行扩展。中选取使目标函数取得极值的结点继续进行扩展。下面以下面以0/1背包问题为例介绍分支限界法的搜索过程。假设有背包问题为例介绍分支限界法的搜索过程。假设有4个物品,其重量分别为个物品,其重量分别为(4,7,5,3),价值分别为,价值分别为(40,42,25,12),背,背包容量包容量W=10。首先,将给定物品按单位重量价值从大到小排序,。首先,将给定物品按单位重量价值从大到小排序,结果如表结果如表9.1所示。所示。物品重量(w)价值(v)价值/重量(v/w)144010274263
8、525543124表9.1 0/1背包问题的价值/重量排序结果第5页,共51页,编辑于2022年,星期五 这样,第这样,第1个物品给出了单位重量的最大价值,最后一个物品给出个物品给出了单位重量的最大价值,最后一个物品给出了单位重量的最小价值。应用贪心法求得近似解为了单位重量的最小价值。应用贪心法求得近似解为(1,0,0,0),获得的价,获得的价值为值为40,这可以作为,这可以作为0/1背包问题的下界。如何求得背包问题的下界。如何求得0/1背包问题的一个背包问题的一个合理的上界呢?考虑最好情况,背包中装入的全部是第合理的上界呢?考虑最好情况,背包中装入的全部是第1个物品且可以个物品且可以将背包装
9、满,则可以得到一个非常简单的上界的计算方法:将背包装满,则可以得到一个非常简单的上界的计算方法:ub=W(v1/w1)=1010=100。于是,得到了目标函数的界。于是,得到了目标函数的界40,100。一般情况下,解空间树中第一般情况下,解空间树中第i层的每个结点,都代表了对物品层的每个结点,都代表了对物品1i做出做出的某种特定选择,这个特定选择由从根结点到该结点的路径唯一确定:左分的某种特定选择,这个特定选择由从根结点到该结点的路径唯一确定:左分支表示装入物品,右分支表示不装入物品。对于第支表示装入物品,右分支表示不装入物品。对于第i层的某个结点,假设背层的某个结点,假设背包中已装入物品的重
10、量是包中已装入物品的重量是w,获得,获得的价值是的价值是v,计算该结点的目标函数上,计算该结点的目标函数上界的一个简单方法是把已经装入背包中的物品取得的价值界的一个简单方法是把已经装入背包中的物品取得的价值v,加上背包,加上背包剩余容量剩余容量W-w与剩下物品的最大单位重量价值与剩下物品的最大单位重量价值vi+1/wi+1的积,于是,得的积,于是,得到限界函数:到限界函数:(式(式9.1)第6页,共51页,编辑于2022年,星期五 分分支支限限界界法法求求解解0/1背背包包问问题题,其其搜搜索索空空间间如如图图9.1所所示示,具具体体的的搜索过程如下:搜索过程如下:(1)在在根根结结点点1,没
11、没有有将将任任何何物物品品装装入入背背包包,因因此此,背背包包的的重重量量和和获获得得的的价价值值均均为为0,根根据据限限界界函函数数计计算算结结点点1的的目目标标函函数数值值为为1010=100;(2)在在结结点点2,将将物物品品1装装入入背背包包,因因此此,背背包包的的重重量量为为4,获获得得的的价价值值为为40,目目标标函函数数值值为为40+(10-4)6=76,将将结结点点2加加入入待待处处理理结结点点表表PT中中;在在结结点点3,没没有有将将物物品品1装装入入背背包包,因因此此,背背包包的的重重量量和和获获得的价值仍为得的价值仍为0,目标函数值为,目标函数值为10660,将结点,将结
12、点3加入表加入表PT中;中;(3)在表)在表PT中选取目标函数值取得极大的结点中选取目标函数值取得极大的结点2优先进行搜索;优先进行搜索;(4)在在结结点点4,将将物物品品2装装入入背背包包,因因此此,背背包包的的重重量量为为11,不不满满足足约束条件,将结点约束条件,将结点4丢弃;在结点丢弃;在结点5,没有将,没有将第7页,共51页,编辑于2022年,星期五物物品品2装装入入背背包包,因因此此,背背包包的的重重量量和和获获得得的的价价值值与与结结点点2相相同同,目目标标函函数数值为值为40+(10-4)5=70,将结点,将结点5加入表加入表PT中;中;(5)在表)在表PT中选取目标函数值取得
13、极大的结点中选取目标函数值取得极大的结点5优先进行搜索;优先进行搜索;(6)在在结结点点6,将将物物品品3装装入入背背包包,因因此此,背背包包的的重重量量为为9,获获得得的的价价值值为为65,目目标标函函数数值值为为65+(10-9)4=69,将将结结点点6加加入入表表PT中中;在在结结点点7,没没有有将将物物品品3装装入入背背包包,因因此此,背背包包的的重重量量和和获获得得的的价价值值与与结结点点5相相同,目标函数值为同,目标函数值为40+(10-4)464,将结点,将结点6加入表加入表PT中;中;(7)在表)在表PT中选取目标函数值取得极大的结点中选取目标函数值取得极大的结点6优先进行搜索
14、;优先进行搜索;(8)在在结结点点8,将将物物品品4装装入入背背包包,因因此此,背背包包的的重重量量为为12,不不满满足足约约束束条条件件,将将结结点点8丢丢弃弃;在在结结点点9,没没有有将将物物品品4装装入入背背包包,因因此此,背背包包的的重量和获得的价值与结点重量和获得的价值与结点6相同,相同,第8页,共51页,编辑于2022年,星期五目标函数值为目标函数值为65;(9)由由于于结结点点9是是叶叶子子结结点点,同同时时结结点点9的的目目标标函函数数值值是是表表PT中中的的极极大大值,所以,结点值,所以,结点9对应的解即是问题的最优解,搜索结束。对应的解即是问题的最优解,搜索结束。w=0,v
15、=0ub=100图9.1 分支限界法求解0/1背包问题示例(表示该结点被丢弃,结点上方的序号表示搜索顺序)w=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=65234567891第9页,共51页,编辑于2022年,星期五9.1.2 分支限界法的设计思想分支限界法的设计思想 假假设设求求解解最最大大化化问问题题,问问题题的的解解向向量量为为X X=(=(x x1 1,x x2 2,x xn n),其其中中,x xi i的的取取值值范范围围为为某某个个有有穷穷
16、集集合合S Si i,|S Si i|=|=r ri i(1 1i in n)。在在使使用用分分支支限限界界法法搜搜索索问问题题的的解解空空间间树树时时,首首先先根根据据限限界界函函数数估估算算目目标标函函数数的的界界 downdown,upup,然然后后从从根根结结点点出出发发,扩扩展展根根结结点点的的r r1 1个个孩孩子子结结点点,从从而而构构成成分分量量x x1 1的的r r1 1种种可可能能的的取取值值方方式式。对对这这r r1 1个个孩孩子子结结点点分分别别估估算算可可能能取取得得的的目目标标函函数数值值boundbound(x x1 1),其其含含义义是是以以该该孩孩子子结结点点
17、为为根根的的子树所可能取得的目标函数值不大于子树所可能取得的目标函数值不大于boundbound(x x1 1),也就是部分解应满足:,也就是部分解应满足:boundbound(x x1 1)boundbound(x x1,1,x x2 2)boundbound(x x1 1,x x2 2,x xk k)boundbound(x x1 1,x x2 2,x xn n)第10页,共51页,编辑于2022年,星期五若若某某孩孩子子结结点点的的目目标标函函数数值值超超出出目目标标函函数数的的界界,则则将将该该孩孩子子结结点点丢丢弃弃;否否则则,将将该该孩孩子子结结点点保保存存在在待待处处理理结结点点
18、表表PT中中。从从表表PT中中选选取取使使目目标标函函数数取取得得极极大大值值的的结结点点作作为为下下一一次次扩扩展展的的根根结结点点,重重复复上上述述过过程程,当当到到达达一一个个叶叶子子结结点点时时,就就得得到到了了一一个个可可行行解解X=(x1,x2,xn)及及其其目目标标函函数数值值bound(x1,x2,xn)。如如果果bound(x1,x2,xn)是是表表PT中中目目标标函函数数值值最最大大的的结结点点,则则bound(x1,x2,xn)就就是是所所求求问问题题的的最最大大值值,(x1,x2,xn)就就是是问问题题的的最最优优解解;如如果果bound(x1,x2,xn)不不是是表表
19、PT中中目目标标函函数数值值最最大大的的结结点点,说说明明还还存存在在某某个个部部分分解解对对应应的的结结点点,其其上上界界大大于于bound(x1,x2,xn)。于于是是,用用bound(x1,x2,xn)调调整整目目标标函函数数的的下下界界,即即令令down=bound(x1,x2,xn),并并将将表表PT中中超超出出目目标标函函数数下下界界down的的结结点点删删除除,然然后后选选取取目目标标函函数数值值取取得得极极大大值值的的结结点点作作为为下下一一次次扩扩展展的的根根结结点点,继续搜索,直到某个叶子结点的目标函数值在表继续搜索,直到某个叶子结点的目标函数值在表PT中最大。中最大。第1
20、1页,共51页,编辑于2022年,星期五 分支限界法求解最大化问题的一般过程如下:分支限界法求解最大化问题的一般过程如下:分支限界法的一般过程分支限界法的一般过程1根据限界函数确定目标函数的界根据限界函数确定目标函数的界down,up;2将待处理结点表将待处理结点表PT初始化为空;初始化为空;3对根结点的每个孩子结点对根结点的每个孩子结点x执行下列操作执行下列操作3.1 估算结点估算结点x的目标函数值的目标函数值value;3.2 若若(value=down),则将结点,则将结点x加入表加入表PT中;中;4循环直到某个叶子结点的目标函数值在表循环直到某个叶子结点的目标函数值在表PT中最大中最大
21、 3.1 i=表表PT中值最大的结点;中值最大的结点;3.2 对结点对结点i的每个孩子结点的每个孩子结点x执行下列操作执行下列操作3.2.1 估算结点估算结点x的目标函数值的目标函数值value;3.2.2 若若(value=down),则将结点,则将结点x加入表加入表PT中;中;3.2.3 若若(结点结点x是叶子结点且结点是叶子结点且结点x的的value值在表值在表PT中最大中最大),则,则将结点将结点x对应的解输出,算法结束;对应的解输出,算法结束;3.2.4 若若(结结点点x是是叶叶子子结结点点但但结结点点x的的value值值在在表表PT中中不不是是最最大大),则则令令down=valu
22、e,并且将表,并且将表PT中所有小于中所有小于value的结点删除;的结点删除;第12页,共51页,编辑于2022年,星期五 应用分支限界法的关键问题是:应用分支限界法的关键问题是:(1)如何确定合适的限界函数)如何确定合适的限界函数 分分支支限限界界法法在在遍遍历历过过程程中中根根据据限限界界函函数数估估算算某某结结点点的的目目标标函函数数的的可可能能取取值值。好好的的限限界界函函数数不不仅仅计计算算简简单单,还还要要保保证证最最优优解解在在搜搜索索空空间间中中,更更重重要要的的是是能能在在搜搜索索的的早早期期对对超超出出目目标标函函数数界界的的结结点点进进行行丢丢弃弃,减减少少搜搜索索空空
23、间间,从从而而尽尽快快找找到到问问题题的的最最优优解解。有有时时,对对于于具具体体的的问问题题实实例例需需要要进行大量实验,才能确定一个合理的限界函数。进行大量实验,才能确定一个合理的限界函数。(2)如何组织待处理结点表)如何组织待处理结点表 为为了了能能在在待待处处理理结结点点表表PT中中选选取取使使目目标标函函数数取取得得极极值值(极极大大或或极极小小)的的结结点点时时提提高高查查找找效效率率,表表PT可可以以采采用用堆堆的的形形式式,也也可可以以采采用用优优先先队队列列的形式存储。的形式存储。(3)如何确定最优解中的各个分量)如何确定最优解中的各个分量 第13页,共51页,编辑于2022
24、年,星期五分支限界法对问题的解空间树中结点的处理是跳跃式的,回溯也不是单纯分支限界法对问题的解空间树中结点的处理是跳跃式的,回溯也不是单纯地沿着双亲结点一层一层向上回溯,因此,当搜索到某个叶子结点且该叶地沿着双亲结点一层一层向上回溯,因此,当搜索到某个叶子结点且该叶子结点的目标函数值在表子结点的目标函数值在表PT中最大时(假设求解最大化问题),求得了问中最大时(假设求解最大化问题),求得了问题的最优值,但是,却无法求得该叶子结点对应的最优解中的各个分量。题的最优值,但是,却无法求得该叶子结点对应的最优解中的各个分量。这个问题可以用如下方法解决:这个问题可以用如下方法解决:对每个扩展结点保存该结
25、点到根结点的路径;对每个扩展结点保存该结点到根结点的路径;在在搜搜索索过过程程中中构构建建搜搜索索经经过过的的树树结结构构,在在求求得得最最优优解解时时,从从叶叶子结点不断回溯到根结点,以确定最优解中的各个分量。子结点不断回溯到根结点,以确定最优解中的各个分量。例如图例如图9.19.1所示所示0/10/1背包问题,为了对每个扩展结点保存该结点到根背包问题,为了对每个扩展结点保存该结点到根结点的路径,将部分解结点的路径,将部分解(x x1 1,x xi i)和该部分解的目标函数值都存储在和该部分解的目标函数值都存储在待处理结点表待处理结点表PTPT中,在搜索过程中表中,在搜索过程中表PTPT的状
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 限界 PPT 讲稿
限制150内