算法设计和分析分枝限界法.pptVIP

  • 1
  • 0
  • 约8.58千字
  • 约 37页
  • 2019-12-22 发布于广东
  • 举报
* * 称为该作业调度的完成时间和。批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。 * * 2. 限界函数 在结点E处相应子树中叶结点完成时间和的下界是: 注意到如果选择Pk,使t1pk在k=r+1时依非减序排列,S1则取得极小值。同理如果选择Pk使t2pk依非减序排列,则S2取得极小值。 这可以作为优先队列式分支限界法中的限界函数。 6.7 批处理作业问题 * * do { if (enode.s == n ) {// 叶结点 if (enode.sf2 bestc) { bestc = enode.sf2; for (int i = 0; i n; i++) bestx[i] = enode.x[i]; } } 3. 算法描述 当enode.sf2bestc时,更新当前最优值beste和相应的最优解bestx 6.7 批处理作业问题 * * 3. 算法描述 else // 产生当前扩展结点的儿子结点 for (int i = enode.s; i n; i++) { MyMath.swap(enode.x, enode.s,i); int [] f= new int [3]; int bb=bound(enode,f); if (bb bestc ) { Heap Nodenode=new HeapNode(enode,f,bb,n); heap.put(node); } MyMath.swap(enode.x, enode.s,i); } // 完成结点扩展 当bbbestc时,将儿子结点插入到活结点优先队列中 6.7 批处理作业问题 * * 旅行商问题的距离矩阵: v1 v2 v3 v4 v5 V1 ∞ 14 1 16 2 V2 ∞ 25 2 6 V3 ∞ 9 9 V4 ∞ 6 V5 ∞ * * 构造估值函数C’(x) 将距离升序排列:d13 d24 d15 d25 d45 d35 d34 d12 d14 d23 取前面最小的5个并求和:] d13+d24+d15+d25+d45 =14 * * ①(13 24 15 25 45) ( 14) ②(13 24 25 45 35) ( 21) ③(13 24 15 45 35) ( 20) ④(13 24 15 25 35) (17) ⑤(13 24 15 25 34) ( 19) 35 45 25 15 15 45 不合理 不合理 * * 第六章 分支限界法 * * 6.1 分支限界法的基本思想 1、分支限界法与回溯法的不同 (1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。 * * 2. 分支限界法基本思想 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。 此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。 6.1 分支限界法的基本思想 * * 3. 常见的两种分支限界法 (1)队列式(FIFO)分支限界法 按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。 (2)优先队列式分支限界法 按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。 6.1 分支限界法的基本思想 * * 6.2 单源最短路径问题 1. 问题描述

文档评论(0)

1亿VIP精品文档

相关文档