分支与限界:货物装载问题(共16页).doc
《分支与限界:货物装载问题(共16页).doc》由会员分享,可在线阅读,更多相关《分支与限界:货物装载问题(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 分支与限界:货物装载问题课程名称: * 院 系: * 学生姓名: * 学 号: * 专业班级: *指导教师: * 2013年12月27日专心-专注-专业分支与限界:货物装载问题摘要:在现实生活中,我们会经常遇见货物装载问题,如何解决货物装载问题,获取利润的最大化,花费最少的而得到更多的东西,是人们一直都要考虑的问题。在广泛的解决问题中,人们一般采用分支限界算法解决这样的问题。分支限界法是由分支策略和限界策略两部分组成的。分枝定界法是一个用途十分广泛的算法,运用这种算法的技巧性很强,不同类型的问题解法也各不相同。该算法在具体执行时,把全部可行的解空间不断分割为越来越小
2、的子集(称为分支),并为每个子集内的解的值计算一个下界或上界(称为定界)。在每次分支后,对凡是界限超出已知可行解值那些子集不再做进一步分支。这样,解的许多子集(即搜索树上的许多结点)就可以不予考虑了,从而缩小了搜索范围。该算法在具体执行时,把全部可行的解空间不断分割为越来越小的子集(称为分支),并为每个子集内的解的值计算一个下界或上界(称为定界)。在每次分支后,对凡是界限超出已知可行解值那些子集不再做进一步分支。这样,解的许多子集(即搜索树上的许多结点)就可以不予考虑了,从而缩小了搜索范围。分支策略体现在对问题空间是按广度优先的策略进行搜索,限界策略是为了加速搜索速度而采用启发信息剪枝的策略。
3、在分支限界法,经常采用的是分支搜索法,分支搜索法是一种在问题空间上进行搜索尝试的算法。所谓分支是采用广度优先的策略,依次搜索E-结点的所有的分支,也就是所有的相邻结点。和回溯法一样,在生成的节点中,抛弃那些不满足的约束条件的的结点,其余结点加入活结点表。在分支搜索的算法中,人们经常会采用FIFO搜索和优先队列式搜索。例题中采用的是轮船装载的问题,这是一个非常经典的分支限界算法的例题,通过这个例子的学习,将会理解并掌握分支限界货物装载的问题。关键词:分支限界法 货物装载 FIFO分支限界 优先队列分支限界 目录第一章 绪论1.1分支-界限算法的基本思想分支限界法常以广度优先或以最小耗费(最大效益
4、)优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。1.2常见的两种分支界限算法 队列式(FIFO)分支限界法按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。FIFO搜索算法要依赖“队”做基本的数据结构。一开始根节点是唯一的活结点,根节点入队。从活结点的对中取出艮结点后,作为当前扩展结点。
5、对当前扩展结点,先从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子加入到活结点队列中。再从活结点表中取出队首结点为当前扩展结点。优先队列式分支限界法按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。优先队列式搜索,对每一个活结点计算一个优先级,并根据这些优先级,从当前活结点表中优先选择一个一个优先级最高的节点作为扩展结点,使搜索朝着解空间树上最优解的分支推进,以便尽快找出一个最优解。第二章 货物装载问题2.1 问题描述有两艘船和需要装运的N个货箱,第一艘船的载重量是c1,第二艘船的载重量是c2,wi是货箱i的重量,且w1+w2+.+wn=c1+c2。希望确定是
6、否有一种可能将所有货箱全部装船的方法。若有的话,找出该方法。2.2 问题分析先看一个实例,当n=3,c1=c2=50,w=10,40,40时,可将货箱1,2装到第一艘船上,货箱3装到第二艘船上。但如果w=20,40,40,则无法将货箱全部装船。有此可知问题可能有解,可能无解,也可能多解。虽然是关于两艘船的问题,若w1+w2+w3+.wn-bestw 0; j-) rj=rj+1 + wj+1; int i = 1; bbnode *E = 0; Ew = 0; / 搜索子集空间树 while (i != n+1) / 不在叶子上 if (Ew+wi=c) / 可行的左孩子 AddLiveNod
7、e(E,Ew+wi+ri,1,i+1); if (bestwEw+wi) bestw=Ew+wi; if(bestw0;j-) bestxj = E-LChild; E = E-parent; return Ew; AddLiveNode(float wt, int lev,bbnode *E, int ch) bbnode *b=new bbnode; b-parent=E; b-LChild=ch; HeapNode N; N.uweight=wt; N.level=lev; N.ptr=b; Insert(H,N) ; 3.3 测试结果与分析图3.2 货物装载问题的解由图可以看出,当输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 限界 货物 装载 问题 16
限制150内