集装箱装载问题的模拟退火遗传算法

2007-03-09 19:03:27来源: 互联网
摘要:将模拟退火的思想引入遗传算法中,将两者结合起来,探讨了模拟退火遗传算法在复杂集装箱装载中的应用,以此达到缩小搜索区域,增强算法的收敛性的目的。该算法充分发挥了遗传操作中交叉算子的作用,并通过实验仿真表明该算法优于传统的计算方法。 关键词:集装箱装载 模拟退火遗传算法 启发式算法 目前,物流业正处在快速发展的时期,集装箱运输将会有大幅度的增长。集装箱装载作为物流配送过程中的一个关键性环节,可提高配送业务的自动化水平、提高货物装载的优化程度、提高配送业务的工作效率和规范业务流程等。 从二十世纪70年代初正式开始,集装箱装载问题就引起了应用的研究和探讨。装箱问题就是将不同尺寸的物品摆放入有一定容易的容器中,以获得某种最佳的效益。从计算复杂性理论来讲,装箱问题属于NP完全问题,求解极为困难。 遗传算法采用了生物进化论的思想,通过自然选择和适者生存的竞争策略来解优化问题;模拟退火起源于统计物理方法,并首先被Kirkpatrick等引入组合优化领域。遗传算法的全局搜索性能较强,便是其容易过早收敛,而且在进化后期搜索效率较低,种群的进化缓慢;需模拟退火算法具有较强的局部搜索能力,并且能使搜索过程避免陷入局部最优解,但是把握搜索过程的能力不强,运行效率不高。本文通过将模拟退火的思想引入遗传算法,使两者有效地结合,缓解了遗传算法的选择压力,增强了遗传算法的全局收敛性,避免在搜索过程中陷入局部最优。 1 遗传算法 遗传算法最早由美国Michigan大学的J.Holland教授提出,起源于上世纪60年代人们自然和人工自适应系统的研究,是基于Darwin进化论和Mendel的遗传学说的一种全局优化概率搜索算法,它模拟了生物界中的生命进化机制,在人工系统中实现特定目标的优化。对于复杂的优化问题,遗传算法无需建模和进行复杂的运算。与传统的搜索算法不同,遗传算法把优化问题的解的搜索空间转化为遗传空间,从代表问题可能潜在问题的解的搜索空间转化为遗传空间,从代表问题可能潜在解集的一个种群开始,其中种群中的每一个体对应问题的一个解,称为染色体。初代种群产生后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,按预先根据目标函数确定的适应度函数计算各个体对问题环境的适应值,再根据个体的适应值对个体对应的染色体进行选择,使适应性好的梁色体比适应性差的染色体有更多的繁殖机会;然后进行交叉、变异等遗传操作产生新一代群体。如此循环,逐步向优化的种群进化。 遗传算法的主要特点是:遗传算法的处理对象不是参数本身,而是对参数集进行编码的个体;遗传算法采用同时处理群体中多个个体的方法,即同时对搜索空间中的多个解进行评估;遗传算法仅使用问题的目标函数进行工作,不需要其他的先决条件或辅助信息;遗传算法不是采用确定性规则进行工作,而是采用概率的变化迁规则来指导其搜索方法;遗传算法具有隐形并行性,可以在较大的解空间迅速寻优。 标准的遗传算法求解过程如下: (1)初始化遗传算法的控制参数,如群体规模N、变异概率pm、交叉概率pc; (2)随机产生初始解群p(t)={p0p1p2…pn},个体的数目一定,每个个体表示为染色体的基因编码; (3)计算群体中每个个体的适应函数值; 遗传算法在搜索过程中基本不利于外部信息,仅以适应度函数为依据,利用种群中每个个体的适应度值进行搜索。因此适应度函数的选取至关重要,将直接影响遗传算法的收敛速度以及能否找到最优解。解的好坏用适宜度函数值的大小评估,适应度的函数值越大,解的质量越好。 (4)根据个体的适应度选择复制再生个体,适应函数值大的个体的复制概率大; 选择是指以一定的概率从种群中选择优胜个体,淘汰质个体的操作。选择的过程是一种基于适应的优胜劣汰的过程,是用来确定得组或交叉个体,以及被选个体将产生多少个子代个体。 (5)按照一定的交叉概率和交叉方法,对现有解群中的个体体交叉操作,生成新个体。 交叉是指对两个相互配对的染色体以某种方式相互交换部分基因,从而形成两个新的个体,交叉是遗传算法的核心。 (6)按照一定的变异概率和变异方法,对交叉后的个体进行变异操作; 变异运算是指将个体染色体编码串中的某些基因座上的基因值用该基因座的其他等位基因替换,从而形成一个新的个体。 (7)由交叉和变异产生了一新一代种群,若满足收敛条件,遗传进化过程结束;否则转(3)。 2 模拟退火算法 模拟退火算法是基于Monte Carlo迭代求解法后种启发式随机搜索算法,它模拟固体物质退火过程的热平衡问题与随机搜索寻优问题的相似性来达到寻找全局最优或近似全局最优的目的。在搜索最优解的过程中,模拟退火法除了可以接受优化解外,还有一个随机接受准则(Metropolis准则)有限度地接受恶化解,并且接受恶化解的概率慢慢趋向于0,这使得算法有可能从局部极值区域中跳出,即可能找到全局最优解,并保证了算法的收敛性。 模拟退火算法的求解过程如下: (1)随机产生初始解x0; (2)初始化退火温度T0; (3)在温度TK下执行如下操作: %26;#183;产生新的可行解x",x"为x的邻解; %26;#183;计算评价函数f(x")和f(x)的差值Δf=f(x")-f(x); %26;#183;以min{1,exp(-Δf/Tk)}>random[0,1]的概率接收新解,其中random[0,1]是[0,1]之间的随机数。若达到温度Tk的平衡状态转(4),否则转(3); (4)按一定方式降低温度,可定义下降函数为Tk+1=αTk,k+1→,其中α∈[0,1]; (5)若满足收敛判据,退火过程结束;否则转(3)。 通过以上分析可知,在模拟退火过程中,其退火温度控制着求解过程向最小值的优化方向进行,同时它又以概率exp(-Δf/Tk)接收劣质解,因此算法可以跳出局部极值点。只要初始温度足够高,退火过程足够慢,算法能够收敛到全局最优解。 3 模拟退火遗传算法 虽然遗传算法使用简单、鲁棒性强、应用范围甚广,但是它本身也存在着许多不足,尤其是容易过早收敛,使搜索陷入局部最优解,因此本文把模拟退火引入到遗传算法中。本文的模拟退火遗传算法如下: (1)初始化控制参数: N为群体规模;Pm为变异概率;T0为退火初始温度;α为温度冷却参数; (2)随机产生初始解群; (3)对现有解群实施如下操作,直至产生出下一代新的群体: %26;#183;评价群体中每个个体的适应函数值f(xi),i=1,2,…,N,本文中以空间利用率作为适应度函数; %26;#183;采用轮盘赌选择法对个体进行选择; 轮盘赌选择法的基本思想是:生成一个随机数γ∈[0,1],并且计算个体的相对适应度值pi=fi/∑fi,如果p0+p1+…+pi-1<γ≤p0+p1+…+pi,则第i个个体被选择到下一代。可见,个体的适应度值越大被选择到下一代的机会也越多。 %26;#183;对选择复制后的个体实话交叉操作,随机选择两个个体xi和xj进行交叉操作,并且计算两个新个数x"I和x"j的适应函数值f(x"i)和f(x"j);生成一个[0,1]之间的随机数random,以min{1,exp(-Δf/Tk)}>random[0,1]的概率接受新的解,即接受新个体。 %26;#183;对交叉后的个体进行变异操作,按第三步中的方法决定是否接收变异后的解; (4)若满足收敛条件,进化过程结束;否则Tk+1=αTk,转(3)。 模拟退火遗传算法首先利用轮盘赌选择方法,淘汰了适应度较低的个体。而交叉操作是遗传算法中的核心,寻优过程主要通过它实现,模拟退火遗传算法吸取了这一思想,对选择后个体均实话交叉操作,并且把交叉和变异后的子代与父代竞争,通过Boltzmann机制来接收子代,不但有利于优良个体的保留,同时防止了早熟收敛的问题。随着进化过程的进行,温度逐渐下降,接收劣质解的概率也逐渐减小,有效地利用了模拟退火算法的爬山特性,提高了算法的收敛速度。 4 集装箱装载实例与算法分析 在实际应用中,为了求解的快速性和实用性,人们通常采用一引起启发式算法来求解装箱问题。为了评价模拟退火遗传算法的性能,将模拟退火算法和启发式算法进行比较,分别用来求解装箱问题。 本文使用DELPHI程序进行模拟装箱,所使用的模拟退火遗传算法的控制参数选取如下:群体规模N=100,变异概率pm=0.01,初始温度T0=1000,冷却参数α=0.9;待装物品为洗衣机散件,单位为毫米,其体积以及数量如表1所示;布局空间采用规格为11.96%26;#215;2.35%26;#215;2.69的集装箱,单位为米。物口装箱过程中,充分考虑到物品的摆放方式,以及是否可以置底,分别利用启发式算法以及本文的模拟退火遗传算法进行装箱,得到的结果如表2、表3所示,装载效果如图1、图2所示。其中X0,Y0,Z0表示物品在集装箱中的位置。 表1 待装物品数据 名称 数量 深 宽 高 体积 10#   800 475 335 127300 8# 4 440 330 330 47916 4#   1500 420 420 264600 2# 139 360 360 220 28512 3# 10 550 430 170 40205 7#   660 440 350 101640 9# 6 285 230 230 15076 11# 45 770 540 445 185031 17# 1 860 490 500 210700 21#   291 364 275 29129 27#   580 580 580 195112 28#   519 310 500 80445 30# 7 800 475 580 220400 电机   565 365 235 48463 定时器   550 430 170 40205 主体机 500 430 390 660 110682 表2 启发式算法的装箱结果 序号 产品 数量 深向 宽向 高向 X0 Y0 Z0 1 主体机 486 27 6 3 0 0 0 5 8# 4 1 4 1 11610 0 0 6 3# 10 1 5 2 0 0 1980 7 2# 138 23 6 1 550 0 1980 7 2# 1 1 1 1 8830 0 1980 8 9# 2 1 2 1 11610 1760 0 8 9# 4 1 4 1 11610 0 330 表3 模拟退火遗传算法的装箱结果 序号 产品 数量 深向 宽向 高向 X0 Y0 Z0 1 主体机 486 27 6 3 0 0 0 1 主体机 12 2 6 1 0 0 1980 1 主体机 2 1 2 1 860 0 1980 2 30# 4 4 1 1 1290 0 1980 2 30# 3 1 3 1 1290 800 1980 3 17# 1 1 1 1 2090 800 1980 4 11# 45 15 3 1 3190 0 1980 5 8# 4 1 4 1 11610 0 0 6 3# 6 1 2 3 860 780 1980 6 3# 2 1 1 2 2090 1660 1980 6 3# 2 1 1 2 2580 800 1980 7 2# 2 1 1 2 860 1880 1980 7 2# 2 1 2 1 2580 1350 1980 7 2# 4 1 4 1 2580 800 2320 7 2# 126 21 6 1 3190 0 2425 7 2# 5 1 5 1 10750 0 2425 8 9# 2 1 2 1 11610 1760 0 8 9# 4 1 4 1 11610 0 330 本例中的待特物品共有712件,其中需要装载500台主机,7台30#,1台17#,45台11#,6台9#,10台3#,139台2#,4台8#。 启发式算法使用知识规则,搜索速度快,搜索方向相对明确,但是知识规则的使用使得搜索空间的范围急剧缩小,因此求解结果通常会有很大的局限。利用文献中的启发式算法装载物品,共布入645件物品,空间利用率为88.3%。装箱结果如表2、图1所示。 模拟退火遗传算法把模拟退火和遗传算法有效地结合起来,既加速了算法的收敛速度又避免陷入局部是优解。利用模拟退火遗传算法装载物品,物品全部布入,空间利用率为92.6%。装箱结果如表3、图2所示。 从表2和表3的数据以及装箱效果图可以看出:模拟退火遗传算法的空间利用率比较高而且布入物口的个数和种类较多;启发式算法空间利用率比较低,布入的物品也较少。利用模拟退火遗传算法解决装箱问题还是行之有效的。 本文针对集装箱货物装载问题提出了一种模拟退火遗传算法,将模拟退火 和遗传算法有效地结合。通过具体试验可以看出,该算法充分发挥了交叉算子的作用,不仅缩小了可行域的搜索范围,而且避免搜索陷入局部最优解。采用该算法进行求解,不仅提高了集装箱的利用率,而且提高了工人的装载效率,从而提高了企业的竞争力。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/sensor/200703/10412.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved