基于实验设计方法确定启发式算法的参数
2017-04-17朱兰剑
朱兰剑
摘 要:启发式算法的参数会对其求解效率有着重要影响。如何确定算法中各个参数的值,是使用启发式算法的研究人员不得不面对的问题。本文运用实验设计的方法(DOE),去确定局部分支算法(LB)的参数取值,使其能够有效地解决循环瓶颈分配问题。
关键词:实验设计 局部分支算法 循环瓶颈 分配问题
一、引言
实践证明,启发式算法有效地能够求解组合优化问题,但是启发式算法所发现的解与问题的最优解之间的偏离程度往往是很难预计的。因此,通过控制启发式算法的参数获得最好的效果十分必要。
二、实施过程
实验设计是对系统的输入变量作一些有目的的改变,以使能够观察到和识别出引起输出响应变化的缘由[1]。本文运用实验设计的方法,去确定局部分支算法的参数,主要包含四个步骤:成子问题集选取;确定所研究参数的开始水平和它们的变化范围;为子问题集中的每个问题选定合适的参数值;找到对所有问题合适的参数值。下面主要从这四个步骤来详细说明算法参数确定过程。
(一)子问题集的选取
本文所应用的问题是一类比较特殊的分配问题[2],上述问题的算例共有8个规模,每个规模有10个不同的算例,所以在综合考虑实验时间和算例的代表性,选取的算例规模为{15,25,35,50},并从每个规模中随机选取1个算例,对应的序列为{7,5,10,2},即规模数为15,选第7个算例,规模为25,选第5个算例等。
(二)开始水平和变化范围的确定
局部分支算法是MatteoFischetti等2003年提出的一种求解混合整数规划的方法[3],影响其效率的参数主要有五个: k海明距离;dv多样化次数;root-time根节点计算时间;total-time算法计算的时间;node-time节点的计算时间。
通过对本算例的预先处理,发现多样化次数对算法的影响不显著,所以本文忽略多样性这一参数(固定为20),只考虑其余四个参数。为了粗略地确定设计中心,我们发现k = 100,root-time = 20,total-time = 600,node-time = 75,算法能够取得较好的解,所以选取上述参数值作为本文的设计中心。接着确定每个参数的变化范围,例如要确定参数k的变化范围,我们将参数dv、total-time,node-time固定在上述设计中心的值,然后对参数k的值进行变动(增加或减少),直到其所求得的目標值连续多次没有变化(或变差)为止,表1给出了确定规模为35的参数k的变化范围的数据。
表1参数k的变化范围
表5各参数的步长
根据表5的结果,以设计中心(100,20,75,600)为起始点,按照新的步长调整各参数的值,进行实验。调整过程中会发现部分参数会达到其边界值(低水平或高水平),这时我们固定这部分参数值,继续调整其他参数,直到所有参数都达到其边界。对规模为50的算例,参数调整结果如表6所示,我们发现当total-time = 690,其他参数将不发生变化,这时为了减少试验时间,直接令total-time = 1000,若其求得的解大于已知的较好解,那么其中间(即690-1000)的值也很难发现更好的值,所以可以省略;反之则要进一步确定该参数值,本文用二分法处理这样的情况。
表6规模为50的算例的参数调整过程
由以上结果,并结合找到最好解的时间,可以知道子问题集中不同规模算例的最合适参数组合,详细参数组合见表7:
表7 各规模算例的参数组合
(三)最优的参数组合
根据表7结果,我们发现不同规模的参数值相差比较明显,所以我们按不同规模来确定合适的参数组合。对整个问题的算例而言,还需要确定规模为20,30,40,45离那个参数组合更近,运行的结果如表8所示:
表8 规模为20,30,40,45的参数组合
最后我们确定规模 {15,20,25,30,35,40,45,50} 算例较好的参数组合对应结如下:(100,50,15,648), (100,50,15,648), (130,50,15,624),(130,50,15,648), (100,50,90,648), (100,50,15,648), (130,50,15,624),(25,10,15,675)。
三、结论
本文运用实验设计(DOE)方法对局部分支算法(LB)的参数进行了科学的调整,通过上述四个步骤,我们确定了不同规模算例的参数组合,发现不同规模的算例参数组合差距比较显著,所以我们针对不同规模的算例,分别给出了不同的参数组合,能够有效地求解循环瓶颈分配问题。
参考文献:
[1]汪仁宫,陈荣昭.实验设计与分析[M]. 中国统计出版社,1996.
[2]Kulkarni, Anand J., M.F. Baki, Ben A. Chaouch. 2016. Application of the cohort-intelligence optimization method to three selected combinatorial optimization problems[J]. European Journal of Operational Research 250 427–447.
[3]MatteoFischetti, Andrea Lodi. Local Branching [j].Math.Program, Ser.B98 : 23-47(2003).
[4]SP. Coy, BL. Golden, GC. Runger, EA. Wasil. Using Experimental Design to Find Effective parameter settings for heuristics[j]. Journal of Heuristics,7:77-97(2001)