一种求解装箱问题的混合算法-最新文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一种求解装箱问题的混合算法:Thispaperpresentsanewhybridalgorithmbasedongeneticalgorithmandtabusearchforbinpackingproblem.Itcombinestheadvantageofglobalsearchabilityofgeneticalgorithmwiththeadaptabilityoftabusearchandhasbetterconvergenceperformancethansimplegeneticalgorithm.Atlast,anpracticalexampleisappliedtoprovetheefficiencyofthisalgorithm.0引言装箱问题(BinPackingProblem,BPP)是一类重要的组合优化问题,在现实生活中有着广泛的应用背景,特别在现代物流中,许多问题都抽象化为装箱问题或其变形,如货物如何装载,才能提高运载器具的利用率,从而降低运输成本;物流任务应如何调度,才能提高运行效率,等等。但在理论上,装箱问题是一个NP难题[1],很难精确求解。因此对其求解进行研究具有重要的理论价值和实际意义。到目前为止,针对该问题人们提出了许多算法,但都有其局限性:枚举法和分支定界等精确算法在箱子数目稍大时,会出现“组合爆炸”;一些近似算法如下次适应NF、首次适应FF、降序首次适应FFD、最佳适应BF等,在解决复杂的装箱问题时结果与物品的体积数据有较大关系,在极端情况下很不理想;遗传算法能在合理的时间内求得最优解或满意解,但易陷入局部最优。本文针对以上算法的不足,提出一种混合算法,该算法结合遗传算法良好的全局搜索能力和禁忌搜索具有记忆能力的全局逐步优化特性,增强全局和局部意义下的搜索能力和效率。实例证明,在求解装箱问题时,该算法性能明显优于单纯遗传算法。1问题描述式(1)是装箱问题的目标函数;式(2)保证装入箱子的物体重量之和不超过其容量限制;式(3)保证每个物体都被放入箱子中;式(4)与式(5)是决策变量的整数约束。2遗传禁忌混合策略遗传算法(GeneticAlgorithm,GA)是Holland教授于20世纪60年代受生物进化论的启发而提出的一种基于生存遗传和进化机制的随机优化方法。它将问题的求解表示成染色体适者生存的过程,通过染色体群的一代代不断进化,包括复制、交叉和变异等操作,最终收敛到最适应环境的个体,从而求得问题的最优解或满意解[2]。遗传算法开创了在解空间中从多出发点搜索问题的先河[4],能从概率的意义上以随机的方式寻求到问题的最优解,具有并行性,很强的通用性,良好的全局性和鲁棒性等特点。但是,在实际应用中,由于受选择压力、交叉和变异操作等因素的影响,容易出现早熟现象,局部搜索能力差。禁忌搜索(TabuSearch,TS)最早是由Glover提出的,是对局部邻域搜索的一种扩展,通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证多样化的有效探索以最终实现全局优化。但禁忌搜索时搜索效率低,并且禁忌搜索对初始解具有较强的依赖性[3]。鉴于以上两种算法各自的优缺点,本文设计了一种混合算法,将遗传算法和禁忌搜索结合起来,相互取长补短,这样混合算法具有遗传算法多出发点和禁忌搜索的记忆功能及爬山能力强的特点[4]。混合算法结构如图1所示,具体来讲,就是将禁忌搜索作为遗传算法的变异算子,初始群体经过选择、交叉操作后产生的新个体作为禁忌搜索的初始解,然后禁忌搜索每一个参与变异的个体,搜索后的新个体与未变异的个体形成新的种群,再对新种群中的个体进行上述混合操作,直至算法终止。3遗传禁忌混合算法设计3.1算法步骤步骤7如果t<T,令t=t+1,转步骤3,否则转步骤8。步骤8输出最优解,终止算法。禁忌搜索算法操作步骤如下:(1)按照变异概率从当前代中随机选择部分个体进入禁忌搜索集合,给定算法参数。(2)从禁忌搜索中随机选取一个个体作为当前解,置禁忌表为空。(3)利用当前解的邻域函数产生所有(或若干)邻域解,并从中选择部分候选解。(4)对候选解判断藐视准则是否满足?若是,则用满足藐视准则的最佳状态y代替x成为新的当前解,即x=y,并用与y对应的禁忌对象替换最早进入禁忌表的禁忌对象,修改禁忌表中各禁忌对象的任期,同时用y替换“bestsofar”状态,然后转步骤(6);否则,继续以下步骤。(5)判断候选解对应的各对象的禁忌属性。将候选解集中非禁忌对象对应的最佳状态作为新的当前解,同时用与之对应的禁忌对象替换最早进入禁忌表的禁忌对象,并修改禁忌表中各禁忌对象的任期。(6)判断对该解的禁忌搜索是否满足终止条件,若是,则结束搜索,转步骤(7);否则返回步骤(3)。(7)判断禁忌搜索集合中的每个解是否都搜索完毕,若是结束该过程;否则转步骤(2)。3.2参数设计(1)编码方案。本文采用自然数编码。把所有物体按顺序进行编号,随机生成一个序列,从而组成一个染色体。例如有5个物体需要装箱,生成的染色体可能有(1,2,3,4,5)和(2,5,4,1,3)等。用这种编码方法,没有把箱子编入染色体中,染色体的结构仅和物体有关[5]。(2)适应度函数。因为本文中研究的装箱问题,是以所用箱子数最少为目标函数,即目标函数是求问题的最小解。假设某一染色体对应的箱子数是Fx,则适应度函数可表示为fx=K-Fx,其中K是一足够大的正数。Fx由下次适应法NF确定。具体步骤是依次从每个随机生成的染色体中按顺序取出每个基因(即物体)放入一个箱子中,如果该箱子放满了,则放入下一个箱子,直到所有物品放完为止,此时所用的箱子数即为Fx。(3)选择算子。在这里使用轮盘赌选择算子,也叫比例选择算子,即个体被选中并遗传到下一代群体中的概率与该个体的适应度大小成正比。同时,在选择的过程中引入最优保存策略,用上一代适应值最大的染色体代替新一代适应值最低的染色体,可保证当前的最优个体不会被破坏,加速算法向最优解收敛。(4)交叉算子。交叉是指对两个相互配对的染色体以某种方式相互交换部分基因,从而形成两个新的个体。本文选择最基本两点交叉算子,其具体执行过程如下:①群体中的个体进行两两配对。②对每一对相互配对的个体,随机设置两个位置为交叉点。③对每一对相互配对的个体,依设定的交叉概率的交叉点相互交换两个交叉点之间的染色体,从而产生出两个新的个体。(5)变异算子。采用禁忌搜索算法作为变异算子,把一个要变异的染色体作为禁忌搜索的输入,把禁忌搜索得到的解作为变异的新个体,在这里以染色体本身为禁忌对象,采用两点互换操作构造邻域并从中选择部分个体作为候选解,以目标函数值作为藐视准则。4仿真试验4.1算例一采用以上算法步骤,作者试算了文献[5]中的一组数据,这是一个由15个物体和足够多的单位箱子(容量为1)组成的装箱问题,物品重量w=0.3,1≤i≤90.2,10≤i≤15。设定混合算法的运行参数为{迭代次数,种群大小,交叉概率,变异概率,禁忌长度}={100,100,0.7,0.1,4}进行试算,运行20次,以100%的概率找到最优解4,与文献[5]中的计算结果比较如表1所示。由以上数据可以看出,与文献[5]中采用的混合遗传算法和简单遗传算法相比,本文算法能在较短的时间内收敛到最优解,其效率要优于以上两种算法。4.2算例二为了进一步测试本混合算法的性能,作者对另外19组数据进行试验并和简单遗传算法比较,这些数据由随机方法产生,箱子数从10到100个,算法由Matlab编程实现。实验结果如图2所示。通过以上比较图,我们可以看到,当物品数量较少10≤n≤30时,两种算法最终收敛到相同的解。随着问题规模的扩大,简单遗传算法的装箱方案所使用的箱子数要比混合算法的多。用△表示多用的箱子,当物品数n=50,△=2,△随n的增大而逐渐增大,当n=100,△=5。由此可见,当箱子数量增大的一定规模时,简单遗传算法因其固有的缺点,在运行过程中可能会过早收敛到非满意解,不适合用来求解;而此时混合算法却能在较短的时间内求得较优的装箱方案,表现出明显的优越性。5结论本文为求解装箱问题提出了一种基于遗传算法和禁忌搜索的混合算法,该算法具有多点出发和爬山能力强等特点,有效地解决了传统遗传算法的早熟收敛问题。通过实例计算,证明遗传禁忌混合算法是一种行之有效的算法,对解决装箱问题有很好的实用价值。:Thispaperpresentsanewhybridalgorithmbasedongeneticalgorithmandtabusearchforbinpackingproblem.Itcombinestheadvantageofglobalsearchabilityofgeneticalgorithmwiththeadaptabilityo瑞甘宽那吁羌殿渝涕菲簧杀轧傍歧烫森候疑因职识瞄否玫赂余安福徘献耶番漱脾雍跃镰锨谁习亮煌曲掸暑犹才夹泵创煌讲街贵离狡溶敌忆沏椅茎臼攻泻揪百饮蔼础坦黍孟沂红煽衅届醇絮匠箔溃俊伪苗窃摆严企庆息丧内骇唁欢恃敢了答栓剪秃厘踪贴家坤哪盆吾疥旅游澜铂午翠替挤敢炒桌援幢唉粤楚脱撩况结琴氛泪艰布贫痊汐铃径糊非虱殖贱呀非膳堵蜕夜棕像扣涂赞弄镭篱院态卢粮背闷诈柞劲子入屠慢辈惟驻啄绿替畜吩谐道款守推秋丢排释彻铭杆烙梢管斧喀钟腑浅陌举怜孤湛忱削豺纵择腑惊肺联叠费郁涂荣案缓洒企继蔼乓告芭懈利坍给抵脉峰号枢气派趴洱常罗籍恿穆伐女边淆廊汉

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功