




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江工业大学 自动化仓库的存储策略分析浙江工业大学物流自动化系统课程设计报告题目 自动化仓库的存储策略分析学 院: 机械工程学院班 级: 物流工程 0701 班学生姓名: 赵羚琳 学 号: 200702370127 指导教师: 张烨2009-2010学年目录第一章 概述31.1自动化仓库的布局和尺寸31.2堆垛机的运行参数31.3原材料性息51.4事件发生规则5第二章 基本设计流程和设计思路62.1 总体设计流程62.2 堆垛机运行时间计算72.3 随机事件的产生方法82.4 原始库存量的产生92.5 存储策略9第三章 软件界面分析25第四章 软件源代码27第五章 运行结果495.1 参数汇总495.2 结果分析53第六章 总结54附一 参考文献55第一章 概述1.1自动化仓库的布局和尺寸某日化工厂拟建设自动化仓库系统,采用多排多轨,一个堆垛机负责一排货架的布局形式。同时计划用其中的一个单排货架和一个堆垛机来存储产品编号为XZ67783的系列产品的所有原材料的仓储和存取。其示意图如图1所示:图1 货架和堆垛机的布局货物的最小储存单元为1MX1.2M的标准托盘,托盘的最高高度不超过1.2M,因此每个存货格的开口尺寸为宽1M高1.2M,深度可容纳2个托盘。整个货架的长度为25米,长度方向包含25个货格;高度24米,高度方向包含20个货格。因此,该排自动化仓库总共可容纳1000个托盘。1.2堆垛机的运行参数堆垛机设计为不能在X、Y和Z方向同时运动,因此在存储一件货物时存在以下三种情况:1、仅需要存放货物至货架,此时堆垛机的工作流程如下:1)货物装载至堆垛机2)堆垛机在X方向上加速;3)堆垛机在X方向上减速,到达目标货格所在的列时停止;4)堆垛机在Y方向上加速;5)堆垛机在Y 方向上减速,到达目标货格所在的行时停止;6)堆垛机对货物进行存放;7)堆垛机在Y方向上加速;8)堆垛机在Y 方向上减速,到达初始位置所在行时停止;9)堆垛机在X方向上加速;10)堆垛机在X方向上减速,到达初始位置所在的列时停止;2、仅需要从货架取出货物,此时堆垛机的工作流程如下:1)堆垛机在X方向上加速;2)堆垛机在X方向上减速,到达目标货格所在的列时停止;3)堆垛机在Y方向上加速;4)堆垛机在Y 方向上减速,到达目标货格所在的行时停止;5)堆垛机对货物进行捡取;6)堆垛机在Y方向上加速;7)堆垛机在Y 方向上减速,到达初始位置所在行时停止;8)堆垛机在X方向上加速;9)堆垛机在X方向上减速,到达初始位置所在的列时停止;10)如果此时堆垛机上有货物,则需要对货物进行卸载。3、如果堆垛机同时接到存取货物的命令,此时堆垛机的工作流程如下:1)货物装载至堆垛机2)堆垛机在X方向上加速;3)堆垛机在X方向上减速,到达存货目标货格所在的列时停止;4)堆垛机在Y方向上加速;5)堆垛机在Y 方向上减速,到达存货货格所在的行时停止;6)堆垛机对货物进行存放;7)堆垛机在X方向上加速;8)堆垛机在X方向上减速,到达取货目标货格所在的列时停止;9)堆垛机在Y方向上加速;10)堆垛机在Y 方向上减速,到达取货货格所在的行时停止;11)堆垛机在Y方向上加速;12)堆垛机在Y 方向上减速,到达初始位置所在行时停止;13)堆垛机在X方向上加速;14)堆垛机在X方向上减速,到达初始位置所在的列时停止;15)对货物进行卸载。堆垛机的运行速度参数如下:堆垛机容量:1个托盘;堆垛机的初始位置:货架的右下处,即货架最右下角货格的右边;启动加速度:X,Y方向均为0.5米/秒2;最大速度:X,Y方向均为2米/秒;初始位置的装卸货时间:10秒;货格的装卸时间:20秒。1.3原材料信息XZ67783的系列产品的生产需要以下原材料,其最大储存量,订货点,订货批量和订货时间如表1-1所示:表1-1 原材料需求和订货信息(单位:SKU,即托盘)原料名称最大储存量订货点订货批量日平均用量订货时间钢带70205042天空纸袋5230.22天空桶1101010051天药物155100.23天油料豆420200220602天乳酸30102012天粘性油28040240251天维生素40103023天备件2051511天润滑油10551.62天1.4事件发生规则1、每天工作按8小时工作制,上午9点下午5点,中间没有休息时间。如果到了下班时间存取工作仍然没有完成,则工作时间延长到完成为止,不拖延到第二天。2、初始时间,仓库的各种原料的库存量随机产生,但必须大于订货点。系统开始运行前,先根据你所设计的储存策略将所有库存布置到货架内,该布置过程不占用工作时间。3、取货频率假设为随机发生,其事件的产生规则是,根据日平均用量,随机计算货物的每天取货时间。比如,如果一种原料的日平均用量是1,则在8小时内随机产生一次取货事件;如果一种原料的日平均用量为10,则在8小时内随机产生10次取货事件;如果原料的平均日用量小于1或非整数,则需要凑成整数日的整数随机取货事件,日用量0.2则可以算作5日内随机取1次,日用量1.6可以算作5日内随机取8次。4、取货的单位都是一次一个托盘。5、如果仓库的原料小于等于订货点,则视为当日自动发出订货命令,补充的原料将在当日+订货时间后的那一日的任一随机时间送达。6、注意:所有的原料均不要求先进先出。第二章 基本设计流程和设计思路2.1 总体设计流程生成50天的出库需求(输入:物料类别、物料日平均用量)生成初始存货量(输入:物料类别、物料最大储存量、物料订货点)设计存储策略(输入:物料类别、物料最大储存量、物料日平均用量、物料订货批量、货架当前状态等)生成50天的入库需求(输入:物料类别、物料日平均用量、订货时间等)将50天的取货需求排序汇总排序50天的出入库需求计算堆垛机工作时间(输入:堆垛机性能参数、需要存储的位置)模拟堆垛机运行记录每次运行的参数:堆垛机运行距离、等待时间、暂存区数量等。运行结果及参数统计计算货架初始状态2.2 堆垛机运行时间计算堆垛机启动加速度X,Y方向均为0.5米/秒2;最大速度X,Y方向均为2米/秒。由于堆垛机初始速度为0,根据加速度、速度、距离之间的公式V=a*t, S=(a*t2)/2,可算得堆垛机从0加速到最大速度2m/s需要4s,同时移动4米。因为堆垛机是先加速后减速的,所以完成一次存取需要在X方向上进行2次加速和2次减速,Y方向上进行2次加速和2次减速。若恰好达到最大速度,则1次加速和1次减速所需的时间共为8s,运行距离为8m,所以以8米为分界点,可分为以下四种情况来计算堆垛机运行时间:设x表示X方向上要运行的距离,y表示Y方向上要运行的距离,t表示一次存取所需的时间,Sqr表示开根号。x8m且y8m,则t=Sqr(x/2) * 4 + Sqr(y/2) * 4x=8m,则t= Sqr(x/2) * 4 + 8 + (y-8) / 2 * 2x=8m且y=8m且y=8m,则t= 8 + (x-8) / 2 + 8 + (y-8) / 2* 2一个货格长1m,高1.2m,而货架长25m,高24m,所以长度方向有25个,高度方向有20个。由于堆垛机定位时直接以货格数来定位,所以X轴方向的分界点8m转化为货格数就是8个(8m/1m),Y轴方向的分界点8米转化为货格数是7个(8m/1.2m)。所以若设i为X方向上要运行的货格数(i=x),j表示Y方向上要运行的货格数(1.2*j=y),t表示一次存取所需的时间,Sqr表示开根号,则上述四种情况的公式变为:i8且j7 ,则t=Sqr(i/2) * 4 + Sqr(1.2*j /2) * 4i=8,则t= Sqr(i/2) * 4 + 8 + (1.2*j -8) / 2 * 2i=8且j=8且j=8,则t= 8 + (i-8) / 2 + 8 + (1.2*j -8) / 2* 2注意:上述公式都是计算来回的,同时存取时需除以2。2.3 随机事件的产生方法主要运用VB的Rnd函数来实现。Rnd函数会产生一个0,1)的随机数,由于工作时间是8小时,而且堆垛机运行要精确到秒,所以需用Rnd*8*60*60来实现。先建立一个三维数组Sjtime,用来存储第几种货物,第几天,第几次取货时刻。若每种货物的日平均用量都大于1,则随机取货时间很容易建立,只要用货物品种、50天、日平均用量为循环量建立三重循环即可。但是现在的10种货物中空纸袋和药物的日平均用量为0.2,即每5天取一次货,润滑油的日平均用量为1.6,即每5天取8次货,这样就相对增加了循环的难度。通过调节天数的步长来实现每几天取一次的区别,然后随机时间用Rnd*8*60*60*循环天数(如每五天,则*5,每一天则*1),经过取余数处理后以分为单位记录到Sjtime里面,后期再换算成时:分:秒的形式。这样得到的随机时间有0的存在,所以再通过刚才的三重循环把0去掉,并转存到另外一个三维数组中。这样得到的随机时间是没有按时间顺序排好的,所以用冒泡法排序后再写入 到文件中形成取货时间表。等到货物量等于订货点的时候需要发出订货命令,同时产生一个随机时间,储存在一个两维数组(第几天订货及订货的货物)中,并写入到文件中形成订货时间表。然后把订货时间与取货时间比较大小,若比取货时间小,则插入到取货时间前,并最终形成四维数组(第几天,第几次,哪种货物,存还是取),然后把该数组写入文件中形成作业时间表。在写入文件时,注意把分钟转换成H:M:S的形式,即前面数组存储的随机时间整除3600再加上9就是H,前面数组存储的随机时间被3600取余然后再整除60就是M,前面数组存储的随机时间被60取余就是S。并记录清楚第几天,哪种货物,存还是取。2.4 原始库存量的产生建立一维数组用以储存原始库存量,原始库存量也用Rnd函数实现。原始库存量=Rnd*(最大储存量-订货点)+订货点+12.5 存储策略出入库原则入库原则从考虑货物入库的角度出发,在实现满足货物入库基本要求的同时,尽可能提高货物入库的效率,还要兼顾货物存储的要求。需要考虑的主要入库原则有分区原则,即把整个立体仓库划分为几个不同的分区,分别存放对应的不同类型,不同特点或不同周转效率的货物;均布原则,即货物应该均匀地分布到不同的巷道,均衡每个巷道的任务,同时避免由于某个巷道的堆垛机发生故障造成某种货物因为集中存放而不能出库的问题;效率原则,即通过最短路径的方法或最优货位选择的方法,获得最佳出入库货位从而使堆垛机行走的距离最少,而存取货物的时间最少;重力原则,考虑到存取方便和安全性因素,较重的物品应尽量存放在低层的货位上。出库原则,主要是按照先入先出原则作为总的指导思想,兼顾效率原则和均布原则,从而在满足货物出入库要求的同时,更好地提高自动化立体仓库的出库效率。在设计自动化立体仓库时,应综合考虑上面提到的几种基本出入库原则,从而能够设计出一种满足一般自动化立体仓库作业要求的最佳出入库优化流程的设计方法。由于这次研究的仓库只考虑一排货架,堆垛机只对一排货架作业,而且也没有先进先出的要求,所以只需考虑入库原则中的分区原则和效率原则,下面简单阐述分区原则:分区原则就是根据货物特性、货位拣选方式和作业方式的不同,把一个整体的立体仓库,逻辑上划分为几个不同的分区,从而更好的满足不同货物存储要求的同时,也能提高物品出入库效率。ABC分类法可作为对货位进行分区的很好理论依据。ABC分析法又称帕雷托(Pareto)分析法、ABC分类管理法、ABC动态管理法、重点管理法等。它是根据事物有关方面的特征,进行分类、排队,分清重点和一般,从而有区别地实施管理的一种分析方法。立体库是不是需要分区,主要取决于仓库的形式以及仓库出、入库频率高低。对于库体较长的仓库,分区才有必要。因为运输设备效率在行程较短的情况下,主要取决于加速、减速过程,只有在较长行程的情况下,才能体现出运行时间的差异,这样根据货物出入库优先级不同或者货位的周转周期不同来进行分区,才显得很有必要。同样,对于生产量大、出入库频率高的立体仓库有必要分区。对于出入库周期较多的物品则可以安排在出入库台较近的区域,从而更好地满足频繁出入库的要求。如果作业系统的瓶颈在输送机那么就没有必要分区。分区还要考虑所存储物料的性质。如果库中要存放用量大,单盘存放少的物料,则分区才有必要,同时还需要库存中有用量不大的物料存在,分区才有意义。对于一些特殊需求的物品,分区也很有必要。例如,对于药品而言,就存在不能混放的情况,则也应考虑分区存放,但其分区目的不再是出、入库效率的要求。分区也有其自身的特点,以此作为一种功能,系统要保留分区的功能。在实际立体仓库的运作过程中,要不要分区应根据实际情况决定。实际应用中按分区原则的不同,具体有几种分区方法。(1)根据货品特性分区货品特性分区就是根据货品本身固有的性质,将需要特别储存、搬运或分离储存的货品进行分开存放,以保证货品的品质在储存期间保持一定。例如药品的存放就需要考虑分区原则,易串味的药品需要单独一个区域,需低温存放的药品也需要单独物理划区。这里的分区并没有考虑到出入库效率因素,主要是满足物品存放的要求。(2)出入库优先级分区可以根据不同物品出入库的优先级别把整个库区划分成几个部分,优先入库区即离入库台比较近的区域,用来存放需优先入库的物品,优先出库区即离出库台比较近的区域,用来存放需要优先出库的物品,其他没有特定优先级的物品则放在其他的中间区域。这里就是利用提高效率的方法来解决物品优先出入库的问题。一般而言,自动化立体仓库都会有至少三个的分区。(3)出入库频率分区这种分区方法通常对于同一端进行出入库作业的立体仓库系统来说有很大的必要。在这种自动化立体仓库系统中由于物品出入库台都在同一端,则靠近出入库台货位的出入库效率很高,而货架另一端则是效率最低的区域。因此可以把出入库频率较大的物品放在离出入库口近的区域,以充分利用出入库作业的效率。这次研究的仓库是同端出入,而且货物特性差别不大,也没有出入库优先级区别,所以只需考虑出入库频率。货位存储策略良好的存储策略可以减少出入库移动的距离、缩短作业时间,甚至能够充分利用存储空间。存储策略按大类可分为两种:一种是专用存储策略(Dedicated Storage Polices);另一种是共享存储策略(Shared Storage Polices)。专用存储策略又可分为定位储放与分类存储,共享存储策略又可分为随机存储、分类随机存储和共享存储。定位存储:每一存储物品都有固定货位,物品不能互用货位,因此须规划物品的货位容量不得小于其可能的最大在库量。定位存储可按周转率大小或出货频率来安排,以缩短出入库搬运距离,可针对各种物品的特性作货位的安排调整,将不同物品特性之间相互影响减至最小。缺点是货位必须按各项物品之最大在库量设计,因此货区空问平时的使用效率较低。分类储放:所有的存储物品按照一定特性加以分类,每一类物品都有固定存放的位置,而同类的不同物品又按一定的法则来分配货位。分类存储通常按产品相关性、流动性、产品尺寸、重量或产品特性来分类。分类存储的优点是便于畅销品的存取,具有定位存放的各项优点。各分类的存储区域可根据物品特性再作设计,有助子物品的存储管理。缺点是货位必须按各项物品最大在库量设计,因此货区空间平均的使用效率低。随机存储:每一个物品被指派存储的位置都是经由随机过程所产生的,而且可经常改变,也就是说,任何物品可以被存放在任何可利用的位置。此随机原则通常按货品入库的时间顺序存放于靠近出入口的储位。随机储放的优点是货区空间使用效率较高。缺点是货品出入库及盘点工作的进行困难度较高,周转率高的物品可能被存放在离出入口较远的位置,增加了出入库的搬运距离,具有相互影响特性的物品可能相邻储放,造成物品的伤害或发生危险。分类随机存储:每一类物品有固定存放位置,但在各类货区内,每个货位的分配是随机的。分类随机存储具有分类储放的部分优点,又可节省货位数量,提高货区利用率。缺点是物品出入库及盘点工作进行困难度较高。共享存储:在确定知道各物品的出入库时,不同物品可共享相同货位的方式称为共享存储。共享存储在管理上虽然较复杂,所需的存储空间及搬运时间却更为经济。这次主要讨论随机存储和分类随机存储的效率区别。随机存储在VB实现上较简单,先建立一个三维数组(货架长,高,深度)来表示货架货位的状态,如0表示空货位,1表示已存放,然后用四重循环(第几天,第几次,哪种货物,存还是取)来对作业时间表里的每次作业进行操作,操作的时候用三重循环(货架长,高,深度)来实现对货位的查找,若发现有空货位则存入,同时改变货位状态,否则寻找下一个货位。分类随机存储需先把货架按照货物的出入库频率(这里由于货物特性相差不大,只考虑出入库频率)划分为不同的区域,在同一个区域内再按照上述随机方法实现,下面介绍一下区域划分的优化目标函数。存储策略优化目标函数建立该系统基于如下假设:(1)该自动化立体仓库系统的存取方式是单元货格式(Unit Load,简称UL)。仓库有一个通道,一个货架,有一台堆垛机。(2)货架是矩形,货架的I/O处位于货架的右下角。货架的长度L,高度H已知,货架在行程时间上是矩形的,即堆垛机从I/O处到达货架最远点的垂直和水平方向的时间是不一样的。货架共有N列,M层,货位长度为W,高度为h。(3)系统中有多种货物,且每个托盘只存取一种类型的货物,并且所有的托盘是相同的。货架上所有货位尺寸都是相同的,并且任意一个托盘都可以存放于货架上的任意一个货位。(4)系统中对各种货物的需求是固定且已知,且货物之间没有相关性。(5)堆垛机的运行模式为混合模式,即当存货队列和取货队列中都不为空时,进行双指令(DC)周期作业,当存货队列和取货队列一个为空一个不为空时,进行单指令(SC)周期作业。(6)堆垛机不可以在水平方向上和垂直方向上同时运动,并设其在水平和垂直方向上的加减速是线性的。已知水平和垂直方向上的最大速度以及加速度都是V,A,并设水平和垂直方向的减速度与该方向上的加速度在数值上相等。(7)堆垛机从货位中取货和放货时间与堆垛机的运行速度,以及货架的形状无关。立体仓库基本参数:表2-1 立体仓库基本参数堆垛机X、Y最大速度:2m/s货架长:25m托盘长:1m货架列数:25堆垛机X、Y启动加速度:0.5m/s2货架高:24m托盘高:1.2m货架层数:20初始位置的装卸货时间:10s货格装卸时间:20s货架深度方向可容纳2个托盘目标函数:(1)货架货位编号以堆垛机运行效率最优为原则进行货位编号,根据上表所示堆垛机X、Y最大速度为2m/s,启动加速度为0.5m/s2,则根据货架货位到达出入库口的堆垛机运行时间t的计算公式:i8且j7 ,则t=Sqr(i/2) * 4 + Sqr(1.2*j /2) * 4i=8,则t= Sqr(i/2) * 4 + 8 + (1.2*j -8) / 2 * 2i=8且j=8且j=8,则t= 8 + (i-8) / 2 + 8 + (1.2*j -8) / 2* 2将第i列第j层货位上的货品搬运到出入库台的时间进行计算可得(按货架的从左到右、从上到下的顺序排列,及65.0表示货架最左上角的货格到I/O处的运行时间)时间表,如图2-1所示:图2-1 每个货格堆垛机运行时间表然后将第i列第j层货位上的货品搬运到出入库台所用的时间由短到长进行排序,得到货位编号如图2-2所示:图2-2 货位编号 (2)货品编号一种是根据出入库频率的大小来分配货位,即出入库频率大的货物优先放在图2-2中货位编号小的货格。出入库频率大小如表2-2所示,由于货架深度方向上有两个托盘,所以以下考虑的库存容量是原始数据表1-1中最大储存量的一半。表2-2 出入库频率排序编号原料名称库存容量出入库频率5油料豆2100.67粘性油1400.253空桶550.051钢带350.048维生素200.0210润滑油50.0166乳酸150.019备件100.012空纸袋2.50.0024药物7.50.002但是上述方法有一个缺点:若货品库存量很大,即使它的出入库频率很大,放在靠近I/O的地方也会因占用太多好的货位而给后面的货物存取带来不便。所以考虑下面的分配方法。根据货品的COI值 (COI为立方体索引号,Heskctt给出的COI的计算公式为:I=CF,其中C为某种货品储存总量所需的库存容量;F为某种货品的出库频率)分配货格,货品COI值越小,所给图2-2中的货位编号也就越小。使用COI值是因为在货品进行存储时,货架上有一个初始的存货量,虽然某货品出入库频率较高,但如果初始存储量比较大,则把其放在I/O近的货位会使后续进出库货物所用时间更长。出入库货品频率F-10类货物相对比的频率,他们的加权和为l,可根据日平均用量归一化得到,如表2-2所示:所占货格数-表示当该类货物存储量最大时需要占据的货格数量C(这里考虑到深度方向上有2个托盘,所以是原始数据表中最大库存量的一半)。计算得到的COI值按从小到大排序,如表2-3所示,货品COI值越小,应该离出入口越近,所给货位编号也就越小。表2-3 出入库货品频率F及库存容量C原料编号原料名称库存容量C日平均用量出入库货品频率F(日平均用量/100)COI(C/F)6乳酸1510.115010润滑油51.60.016312.55油料豆210600.63507粘性油140250.255601钢带3540.048758维生素2020.0210009备件1010.0110003空桶5550.0511002空纸袋2.50.20.00212504药物7.50.20.0023750合计5001001(3)优化函数根据出入库堆垛机运行时间最少原则,当堆垛机运行时间t和货品COI的乘积之和Q最小时,得到一个优化目标条件: 式2-1根据上轻下重的原则,仓库每排货架共有20层25列,设地面层为第一层,离出入口最近的列为第一列,处在第i层第j列的货品重量记为W,我们货位分配优化目标是每个托盘上货品的质量与其所在层的乘积之和S最小。得到第二个优化目标条件: 式2-2由上述优化函数可以知道,货位分配需要同时考虑货架的稳定性和存取效率,这是个组合多目标优化问题。但是这次研究货物重量不考虑,所以只需研究第一个目标条件。算法实现(1)遗传算法简介遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。总的说来,遗传算法是按不依赖于问题本身的方式去求解问题。它的目标是搜索这个多维、高度非线性空间以找到具有最优适应值(即最小费用的1的点。遗传算法最早由美国的Holland教授提出,起源于六十年代对自然和人工自适应系统的研究。七十年代Dc Jong基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算试验。在一系列研究工作的基础上,八十年代由Goldbcrg进行归纳总结,形成了遗传算法的基本框架。它的基本出发点是仿照自然界优胜劣汰的自然选择原理,将问题的求解形象的表示成为“染色体”的适者生存的过程,即通过复制、交叉和变异等过程使群体中个体的“染色体”一代一代的不断进化,最终找到最适应环境的个体,从而得到该问题的最优解。遗传算法在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。作为强有力且应用广泛的随机搜索和优化方法,遗传算法可能是当今影响最广泛的进化计算方法之。在过去的几年中,遗传算法界将更多的注意力放在工业工程领域的优化问题上,并由此产生了一批新的应用和研究。(2)基本遗传算法基本遗传算法只使用选择算子、交叉算子和变异算子这三种基本遗传算子,其遗传进化操作过程简单,容易理解,是其他一些遗传算法的雏形和基础。基本遗传算法的构成要素: 1)染色体的编码方法:基本遗传算法使用固定长度的二进制符号串来表示种群中的个体,其等位基因是由二值符号集0,l组成的。初始群体中各个个体的基因值可用均匀分布的随机数来生成。2)个体的适应度评价。基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代种群中的机会多少。为了正确计算这个概率,这里要求所有个体的适应度必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则。3)遗传算子:基本遗传算法有三种遗传算子。选择算子使用比例选择算子交叉算子使用单点交叉算子变异算子使用基本位变异算子或均匀位变异算子(3)基本遗传算法的设计基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。1)初始化:设置进化代数计数器i=O;设置最大进化代数maxgan;设置遗传算法的几个重要参数(交叉概率Pc,变异概率Pm和群体规模N);随机产生n个个体作为初始种群Population(O)。2)个体评价:计算群体Population(i)中个体的适应度。3)选择运算;将选择算子作用于群体,即根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择一些优良的个体遗传到下一代群体中。4)交叉运算:将当前群体的各个个体随机搭配成对,对每对个体,以交叉概率Pc交换它们的部分染色体。5)变异操作:将当前群体中每个个体,以变异概率Pm改变某一个或某一些基因座(染色体由多个基因组成,基因座即基因在染色体中的位置)上的基因值。群体Population(i)经过选择、交叉、变异操作后得到下一代的群体Population(i+1)。对于Population(i+1),Population(i)称为父代;而对于Population(i), Population(i+1)称为子代。6)终止条件判断。若i=maxgan,则i=i+l,转步骤2;否则将当前群体中具有最大适应度的个体作为最优解输出,终止计算。遗传算法的一般流程如2-3图所示:图2-3 遗传算法的一般流程(4)货位分配的计算过程1)多目标优化问题的单目标简化使用赋权值的方法把上述多目标问题变成单目标问题,具体方法如下:两目标函数分别是求堆垛机利用率最高和货架重心最低的函数,通过对两目标函数赋给权重,不同的仓库类型对两目标的重要性具有不同的要求,这里为了说明方法的需要(实际这次研究不考虑重量,即S的权重为0),赋给权重相等,分别为0.5,则多目标函数就变成:式2-3两边各乘2得到:式2-4 2)进行初始分配,随机给货品赋给一个货位,根据表2-2的内容,假设货架满货时(也就是没有空货位存在),不同的货品所占货位格数已给出。3)货品赋给的货位正确与否的判断条件,任意选取第i行第j列货品其对应的重量为W(ij),COI值为COI(ij),使用该货品与第m行第n列货品其进行比较对应的重量为W(mn),COI值为COI(mn),把第i行第j列货品的H值与第m行第n列货品的H值进行求和得到:式2-5然后再把第i行第i列货品与第m行第n列货品互换,同时计算其和得到:式2-6把式5和式6进行比较,如果式5大于式6,则第i行第j列货品与第m行第n列货品不进行互换,反之,进行互换。4)重复第三步骤,直到每个货位上的货品与其他每个货位上货品进行比较完成,这样得到一个最优的货位分配方案。上述算法流程如图2-4:图2-4 算法流程图优化前的区域划分在VB环境中编程实现,若只考虑出入库频率如表2-2所示,则(5)油料豆放在出入口附近,(7)粘性油次之。最终的区域分配如图2-5所示:编号为1表示物品(1)钢带优先存放在该位置,编号为2表示物品(2)空纸袋优先存放在该位置,以此类推。图2-5 优化前区域划分优化后的区域划分在VB环境中编程实现,根据表2-3所示,货品COI值越小,应该离出入口越近,所给货架编号也就越小,分配的个数为库存容量C,即(6)乳酸需15个,10润滑油需5个,(5)油料豆需210个,(7)粘性油需140个,(1)钢带需35个, (8)维生素需20个,(9)备件需10个,(3)空桶需55个,(2)空纸袋需2.5个(算3个),(4)药物需7.5个(算7个),由于时间有些是相同的,且空纸袋和药物的个数有四舍五入,所以在分配个数时个别会有多一个或少一个,但是这个分配区域只是作为优先选择存放相应的货物,若优先选择的区域存满,则可选一个最近的,所以并不影响存放,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论