网站如何提交关键词淘宝店铺网站建设可行性报告
大家好,今天接着介绍数字化转型的概念性名词系列。
(1)分支定界法
分支定界法(branch and bound)是一种求解整数规划问题的最常用算法。这种方法不但可以求解纯整数规划,还可以求解混合整数规划问题。分支定界法是一种搜索与迭代的方法,选择不同的分支变量和子问题进行分支。
对于两个变量的整数规划问题,使用网格的方法有时更为简单。
通常,把全部可行解空间反复地分割为越来越小的子集,称为分支;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界。在每次分枝后,凡是界限超出已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。
对搜索树上的某些点必须作出分枝决策,即凡是界限小于迄今为止所有可行解最小下界的任何子集(节点),都有可能作为分枝的选择对象(对求最小值问题而言)。怎样选择搜索树上的节点作为下次分枝的节点呢?有两个原则:
1)从最小下界分枝(优先队列式分枝限界法):每次算完界限后,把搜索树上当前所有叶节点的界限进行比较。找出限界最小的节点,此结点即为下次分枝的结点。
·优点:检查子问题较少,能较快地求得最佳解;
·缺点:要存储很多叶节点的界限及对应的耗费矩阵,花费很多内存空间。
2)从最新产生的最小下界分枝(队列式(FIFO)分枝限界法):从最新产生的各子集中按顺序选择各结点进行分枝,对于下届比上届还大的节点不进行分枝。
优点:节省了空间;缺点:需要较多的分枝运算,耗费的时间较多。
这两个原则更进一步说明了,在算法设计中的时空转换概念。
分枝定界法已经成功地应用于求解整数规划问题、生产进度表问题、货郎担问题、选址问题、背包问题以及可行解的数目为有限的许多其它问题。对于不同的问题,分枝与界限的步骤和内容可能不同,但基本原理是一样的。
分枝界限法是组合优化问题的有效求解方法,其步骤如下所述:
步骤一:如果问题的目标为最小化,则设定最优解的值Z=∞;
步骤二:根据分枝法则(Branching rule),从尚未被洞悉(Fathomed)节点(局部解)中选择一个节点,并在此节点的下一阶层中分为几个新的节点;
步骤三:计算每一个新分枝出来的节点的下限值(Lower bound,LB);
步骤四:对每一节点进行洞悉条件测试,若节点满足以下任意一个条件,则此节点可洞悉而不再被考虑,此节点的下限值大于等于Z值。已找到在此节点中,具最小下限值的可行解;若此条件成立,则需比较此可行解与Z值,若前者较小,则需更新Z值,以此为可行解的值。此节点不可能包含可行解;
步骤五:判断是否仍有尚未被洞悉的节点,如果有,则进行步骤二,如果已无尚未被洞悉的节点,则演算停止,并得到最优解。
Kolen等曾利用此方法求解含时间窗约束的车辆巡回问题,其实验的节点数范围为6-15。当节点数为6时,计算机演算所花费的时间大约1分钟(计算机型为VAZ11/785),当节点数扩大至12时,计算机有内存不足的现象产生,所以分枝定界法比较适用于求解小型问题。Held和Karp指出分枝定界法的求解效率,与其界限设定的宽紧有极大的关系。
(2)割平面法
割平面法主要用于求解整数规划问题的方法。1958年由美国格莫理提出。基本思路是:先不考虑整数性约束,求解相应的线性规划问题。若线性规划问题的最优解恰好是整数解,则此解即为整数规划问题的最优解。否则,就增加一个新的约束条件,称为割平面。割平面必须具有两条性质:(1)从线性规划问题的可行域中至少割掉的非整数最优解;(2)不割掉任何整数可行域,然后在缩小的可行域上继续解线性规划问题。重复以上做法,经有限次切割后,必可在缩小的可行域的一个整数极点上达到整数规划问题的最优解。
混合整数线性规划(MILP)的割平面法通过将整数问题线性松弛为非整数线性问题,并对其进行求解,来求解 MILP 问题。线性规划理论说明,在温和的假定下(如果线性规划存在最优解,并且可行域不包含一条线),总存在一个极值点或顶点是最优的。检验所获的最优解是否为整数解。如否,则必然存在一线性不等式将最优点和真可行集的凸包分离。找到这样的不等式是分离问题,而这样的不等式就是切割。 切割可以被加入到被松弛的线性规划中,使得当前的非整数解对松弛不再可行。该过程不断重复,直到找到最优整数解。
用于普遍的凸连续优化和变体的割平面法有不同的名称: Kelley 法, Kelley-Cheney-Goldstein 法和捆绑法。它们常用于不可微的凸最小化问题。对于这类问题,通常的可微优化的梯度法无法使用,而使用这些方法可以高效地得到凸目标函数及其次梯度。这种情况最常出现在双拉格朗日函数的凹优化中。另一种常见情形是 Dantzig-Wolfe分解应用于结构优化问题中,这类问题通常有含有指数级变量的表达式。通过延迟列生成法按需生成这些变量等同于在对应的对偶问题上切割平面。
用割平面法求解整数规划的基本思路是:先不考虑整数约束条件,求松弛问题的最优解,如果获得整数最优解,即为所求,运算停止.如果所得到最优解不满足整数约束条件,则在此非整数解的基础上增加新的约束条件重新求解.这个新增加的约束条件的作用就是去切割相应松弛问题的可行域,即割去松弛问题的部分非整数解(包括原已得到的非整数最优解).而把所有的整数解都保留下来,故称新增加的约束条件为割平面.当经过多次切割后,就会使被切割后保留下来的可行域上有一个坐标均为整数的顶点,它恰好就是所求问题的整数最优解.即切割后所对应的松弛问题,与原整数规划问题具有相同的最优解。
本篇文章要介绍的就是这么多,我们下篇文章再见。