分支-切割法是把分支定界法与割平面法结合起来,被用处理0-1整数规划问题。
20世纪60年代至70年代初,由于分支定界法的发展和优化,产生了一次大的突破,小问题(100个变量以内)能被高效率地解决,题目稍微增大点却很可能使计算时间呈指数级增长,超出了可行范围内。在攻克计算时间随问题增大指数级增长方面没有多大的进展。现实中的许多问题无法解决。
随着分支-切割法被用处理0-1整数规划问题,20世纪80年代中期迎来了很大的突破。此后,有进一步的发展。起先,此方法只用于纯0-1整数规划问题,然后被扩展至混合0-1整数规划问题。接着是混合整数规划问题。
现在分支-切割法已经很普遍的应用于成千上万变量的问题了。
分支定界法特征选择:
在( ①③ )情况下,用分支定界法做特征选择计算量相对较少。
①Cnd>>n(n 为原特征个数,d 为要选出的特征个数)。
②样本较多。
③选用的可分性判据 J 对特征数目单调不减。
④选用的可分性判据 J 具有可加性。
算法分析:
算法优点:可以求得最优解、平均速度快。因为从最小下界分支,每次算完限界后,把搜索树上当前所有的叶子结点的限界进行比较,找出限界最小的结点,此结点即为下次分支的结点。这种决策的优点是检查子问题较少,能较快的求得最佳解。
用分枝定界法进行流水线平衡,逻辑性强,能较快寻求到最优方案。分枝定界法是利用分技定界并寻找最新活功节点的原理来对自动化流水线进行时间平衡的。它已经成功地应用于单一品种装配流水线的时间平衡中,并以其逻辑件强,能较快地寻求最优解的特点得到了广泛的青睐。在实际生产中,存在许多混合装
配流水线,对于它们的时间平衡基本上采用的是试算表法,精确度较差,得出的方案常常不能满足下一步的投产顺序安排的需要,造成工序同期化的返工。目前,还没有完善的定量方法应用其中。
单一品种装配流水线的分枝定界法
单一品种装配流水线中运用分枝定界法是以节拍为时间单位,校按工序时间进行分配的。它的基本思路是以作业顺序图和节拍为基础,寻求装配线工作地数量最少的工序方案。可分为两个步骤:一是列出每道工序的各工步组合方案.伐出节点,进行分枝,最终求出第—个可行解,二是采用回溯进行检查,看是否漏掉其他可行解。确定节点的依据首先是各组合方案流水线上可能的最少工作数量skj,其计算公式如下:
从各组合方案中,找出最少工作地数为最小的方案,作为节点,进行分枝;当各方案的最少工作地数值相等时,选取工序时间值较大的方案,作为分枝节点,然后进行分枝。
搜索算法的关键就是尽可能缩小搜索空间,也就是说尽量少走冤枉路。
但一条路没有走之前,怎么知道它是不是冤枉路呢?
这就需要考验算法设计者对问题的理解深度了。就像普通棋手只能走一步看一步,而高手能预判很多步一样,优秀的算法工程师,能够更早的判断出哪些路不必探索。
而松弛与分枝定界(relaxation, branch and bound)就是两个常见的工具,帮助我们预判路径的无效性。
所谓松弛,就是放宽约束条件,这样得到的优化目标值肯定要优于原始问题。
分枝定界,就是在探路之前,看看最乐观的情况下,这条路径能获得的最大收益。如果这个最大收益都不如其它已探明的路径,那么就可以直接忽略此路,去看下一条路径。
这两个工具往往结合使用,不同的松弛技术改变了最大收益的计算方式,因而能够影响分支定界的执行效率。所以,如何松弛,如何划定分枝,往往是搜索算法的关键所在。
1、方法简介
好久没更新啦,最近在专注看看分支定界,列生成,分支定价算法,并动手实现去求解一些简单的问题。分支定界我理解就是一种有规律的枚举,所以它是可以求出精确的解。分支定界几个关键点就是设定界限函数,随着搜索的过程中逐渐更新界限,直至上界和下界重合;构建节点表,在每个分支的过程中需要将信息记录下来,按照某一个标准在节点表里储存,后续取点删点。
2、方法应用
下边以bb在求解tsp中的应用来说明,不同问题思路相近,大同小异。求解步骤如下:
(1)规约费用矩阵。即使费用矩阵中每一行每一列都包含0元素,此时规约系数就是该问题的一个下界。
3、算法实现
以28个点的tsp为例,测试结果如下:
以上就是关于分支切割和分支定界的区别全部的内容,包括:分支切割和分支定界的区别、分支定界法特征选择、如何用分支定界法进行流水线平衡等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)