第七章-分支限界法new优秀PPT.ppt
《第七章-分支限界法new优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第七章-分支限界法new优秀PPT.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、North China Electric Power University第七章第七章 分支限界法分支限界法 分支限界法的基本思想分支限界法的基本思想 单源最短路径问题单源最短路径问题 布线问题布线问题North China Electric Power University 方格调整问题方格调整问题North China Electric Power University1 1 分支限界法的基本思想分支限界法的基本思想 分支限界法类似于回溯算法,也是一种在问题的解空间分支限界法类似于回溯算法,也是一种在问题的解空间树树T上搜寻问题的解的算法。上搜寻问题的解的算法。和回溯法的区分:和回溯法的区
2、分:1.求解目标不同:回溯法的求解目标是找出求解目标不同:回溯法的求解目标是找出T中满足约束条件中满足约束条件的全部解,而分支限界法的求解目标则是找出满足约束条件的全部解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出访某一目标函数的一个解,或是在满足约束条件的解中找出访某一目标函数值达到极大或微小的解,即在某种意义下的最优解。值达到极大或微小的解,即在某种意义下的最优解。2.结点的扩展方式不同:回溯法以深度优先的方式搜寻解空间结点的扩展方式不同:回溯法以深度优先的方式搜寻解空间树,而分支限界法则以广度优先或最小耗费优先的方式搜寻树,而分支限界法则以广度优先或
3、最小耗费优先的方式搜寻解空间树,在扩展结点处,先生成全部的儿子结点,然后再解空间树,在扩展结点处,先生成全部的儿子结点,然后再从当前的扩展结点表中选择下一个扩展结点。从当前的扩展结点表中选择下一个扩展结点。3.活结点成为扩展结点的机会不同:在回溯法中每个结点可能活结点成为扩展结点的机会不同:在回溯法中每个结点可能有多次机会成为扩展结点,而分支限界法中每个活结点只有有多次机会成为扩展结点,而分支限界法中每个活结点只有一次机会成为扩展结点。一次机会成为扩展结点。North China Electric Power UniversityNorth China Electric Power Unive
4、rsity 分支限界法以广度优先或最小耗费优先的方式分支限界法以广度优先或最小耗费优先的方式搜寻问题的解空间树。在搜寻问题的解空间树时,搜寻问题的解空间树。在搜寻问题的解空间树时,每一个活结点只有一次机会称为扩展结点。活结点每一个活结点只有一次机会称为扩展结点。活结点一旦成为扩展结点,就一次性产生其全部的儿子结一旦成为扩展结点,就一次性产生其全部的儿子结点。在这些儿子结点中,那些导致不行行解或非最点。在这些儿子结点中,那些导致不行行解或非最优解的儿子结点被舍弃,其余的儿子结点被加入活优解的儿子结点被舍弃,其余的儿子结点被加入活结点表中。此后,从活结点表中选择下一个结点成结点表中。此后,从活结点
5、表中选择下一个结点成为当前扩展结点,并重复上述结点扩展过程。这个为当前扩展结点,并重复上述结点扩展过程。这个过程始终持续到找到所需的解或活结点表为空时为过程始终持续到找到所需的解或活结点表为空时为止。止。分支限界法的搜寻策略:分支限界法的搜寻策略:North China Electric Power UniversityNorth China Electric Power University 依据从活结点表中选择下一结点的不同方式,依据从活结点表中选择下一结点的不同方式,分支限界法分为两类:分支限界法分为两类:1)1)队列式分支限界法队列式分支限界法 队列式分支限界法将活结点表组织成一个队列
6、,并队列式分支限界法将活结点表组织成一个队列,并依据队列的先进先出的原则选取下一个结点称为当前结依据队列的先进先出的原则选取下一个结点称为当前结点。点。2)2)优先队列式分支限界法优先队列式分支限界法 优先队列式分支限界法将活结点表组织成一个优先优先队列式分支限界法将活结点表组织成一个优先队列,并依据优先队列中规定的优先级选取优先级最高队列,并依据优先队列中规定的优先级选取优先级最高的下一结点成为当前扩展结点。在算法实现时,通常用的下一结点成为当前扩展结点。在算法实现时,通常用一个最大堆来实现最大优先队列,用最小堆来实现最小一个最大堆来实现最大优先队列,用最小堆来实现最小优先队列。用优先队列法
7、解具体问题时,应依据具体问优先队列。用优先队列法解具体问题时,应依据具体问题的特点选用最大优先队列活最小优先队列来表示解空题的特点选用最大优先队列活最小优先队列来表示解空间的活结点表。间的活结点表。North China Electric Power UniversityABCDEFGHIJLKMNOx1=1x1=0 x2=1x2=0 x3=1x3=0 x3=1x3=0 x2=1x2=0 x3=1x3=0 x3=1x3=0例:例:0-1背包问题背包问题 n=3,C=20,(p1,p2,p3)=(20,15,25)(w1,w2,w3)=(10,5,15),求求X=(x1,x2,x3)使背包价值最
8、大?使背包价值最大?(10,20)(15,35)(15,35)(10,20)(10,20)(5,15)(20,40)(15,35)(5,15)(20,40)(0,0)(0,0)(15,25)(20,40)(20,40)(0,0)(20,40)当前最优解当前最优解可行解可行解中间计算结果中间计算结果North China Electric Power UniversityABCDEFGHIJLKMNO10101010101010解空间树解空间树T T例:例:0-1背包问题背包问题 n=3,C=20,(p1,p2,p3)=(20,15,25)(w1,w2,w3)=(10,5,15),求求X=(x1
9、,x2,x3)使背包价值最大?使背包价值最大?B1020C00D1535E1020F515G00I1535当前最优解当前最优解K1020M515N1525O00L2040当前最优解当前最优解(10,20)(15,35)(10,20)(5,15)(0,0)(0,0)North China Electric Power University堆是满足下列性质的数列堆是满足下列性质的数列R1,R2,R1,R2,,RnRn:或或若将此数列看成是一棵完全二叉树,则堆或是空树或是满足下若将此数列看成是一棵完全二叉树,则堆或是空树或是满足下列特性的完全二叉树:其左、右子树分别是堆,并且当左、右列特性的完全二叉
10、树:其左、右子树分别是堆,并且当左、右子树不空时,根结点的值小于子树不空时,根结点的值小于(或大于或大于)左、右子树根结点的值。左、右子树根结点的值。堆的补充学问堆的补充学问1.堆的定义堆的定义North China Electric Power University2.最小堆的最小堆的C+描述描述template class MinHeap Array array;int count;public:MinHeap(unsigned int n);MinHeap();EnQueue(Object&object);Object&DeleteMin();North China Electric P
11、ower University3.最小堆的插入和删除最小堆的插入和删除1)插入插入34675插入插入2 23467534675346752North China Electric Power Universityvoid MinHeap:EnQueue(Object&object)if(count=array.Length()throw domain_error(“priority queue is full”);+count;unsigned int i=count;while(i1)&(arrayi/2object)arrayi=arrayi/2;i=i/2;arrayi=&object;
12、North China Electric Power University2)删除删除34675删除删除2 2436754367523475634756North China Electric Power UniversityObject&MinHeap:DeleteMin()if(count=0)throw domain_error(“priority queue is emtpy”);Object&result=*array1;Object&last=*arraycount;-count;unsigned int i=1;while(2*icount+1)unsigned int chil
13、d=2*i;if(child+1count+1)&(*arraychild+1*arraychild)child+=1;if(last=*arraychild)break;arrayi=arraychild;i=child;arrayi=&last;return result;North China Electric Power UniversityNorth China Electric Power University2.2.单源最短路径问题单源最短路径问题 1.1.问题描述问题描述1234301020645 给定一个带权有向图给定一个带权有向图G=(V,E),其中每条边的权是一个非,其中
14、每条边的权是一个非负实数。另外,还给定负实数。另外,还给定V中的一个顶点,称为源。计算从源中的一个顶点,称为源。计算从源到全部其他各顶点的最短路径长度。这里路径的长度是指路到全部其他各顶点的最短路径长度。这里路径的长度是指路上各边权之和。这个问题称为单源最短路径问题。上各边权之和。这个问题称为单源最短路径问题。例:例:下图为一包含下图为一包含4个顶点的无向图,其中顶点个顶点的无向图,其中顶点1为源,求为源,求顶点顶点1到其它各顶点的最短路径及其长度。到其它各顶点的最短路径及其长度。sNorth China Electric Power University2.2.算法思想算法思想 单源最短路径
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 分支 限界 new 优秀 PPT
限制150内