1.一种跨层穿梭车仓储系统的任务调度方法,包括以下步骤:
S1:基于跨层穿梭车仓储系统的出入库复合作业流程表述其复合作业时间,具体包括:步骤11:依据跨层穿梭车仓储系统的出入库复合作业流程,提前其关键任务:取货任务、出库任务、入库任务。
步骤11.1:引入虚拟提升机的概念,即在某过程中选择虚拟提升机,则表示在该过程中无需进行跨层作业;则复合作业中的每个任务都可以表示为三阶段的作业:第一阶段的作业设备为穿梭车,第二阶段的作业设备为提升机,第三阶段的作业设备为穿梭车。
步骤12:设出库货物i和入库货物j坐标分别为(xi,yi)和(xj,yj),则穿梭车初始位置即上一入库作业结束位置为(xj-1,yj-1),根据出入库复合作业流程,按照穿梭车初始位置与待出库货物是否处于同一层,进行作业时间分析。
步骤12.1:当穿梭车初始位置与待出库货物位置不相同时,即yi-1≠yi,则其复合作业时间为Tij=t1+t2+t3+2t4+t5+t6+2t7+4t8+4t9 (1)步骤12.2:当穿梭车初始位置与待出库货物位置相同时,即yi-1=yi,则其复合作业时间为Tij=t10+t5+t6+2t7+2t8+4t9 (2)其中,t1为穿梭车从初始位置运行至提升机站台的时间,t2为穿梭车前往取出库货物过程中等待提升机的时间,t3为穿梭车从当前所在层搭载提升机运行至出库货物所在层的时间,t4为穿梭车从提升机站台运行至出库货物i所在位置的时间,t5为穿梭车前往取入库货物过程中等待提升机的时间,t6为穿梭搭载提升机从出库货物所在层到达I/O站台并返回入库货物所在层的时间,t7为穿梭车从提升机站台运行至入库货物所在位置的时间,t8为提升机装(卸)穿梭车的时间,t9为穿梭车装(卸)货物的时间;t10为穿梭车从当前位置运行至出库货物所在位置的时间;其中t2和t5为穿梭车等待提升机的时间,与设定的作业任务序列有关;t1、t3、t4、t6、t7和t10可根据设备运动距离及其速度、加速度计算;t8和t9为定值。
S2:所述构建以最小化订单完成时间为目标的混合整数规划模型,具体包括:
步骤21:跨层穿梭车仓储系统的复合作业通过迭代思想转化为混合流水线作业模式。
步骤22:通过任务与穿梭车的不同组合与排序,产生不同的订单处理时间,选择其中最短的作业时间,可以确定任务的拣选分配与排序,故跨层穿梭车仓储系统完成某订单的总时间目标函数为Min Cmax (3)
其中Cmax为所有任务的最大完成时间。
步骤23:为保证每个复合作业单元的各设备执行顺序和时间的合法性建立混合整数规划模型的约束条件。
步骤23.1:执行设备的约束,具体为:
(1)每个任务的每个阶段仅由一台设备执行,表达式如下:
(2)每个任务的第一阶段和第三阶段所执行设备为同一个,表达式如下:
(3)属于一个复合作业单元的每个任务的第一阶段所执行设备为同一个,表达式如下:步骤23.2:任务作业开始时间的约束,具体为:
(1)所有任务的开始时间均在系统开始作业之后,表达式如下:
(2)同一复合作业单元下三个任务的开始时间的关系,只有前序任务完成后,才能进行后续任务的作业,表达式如下:(3)每个任务各阶段的开始时间的关系,只有上阶段完成后,才能进行下一阶段的作业,表达式如下:(4)同一设备连续两个作业任务开始时间的关系,只有前序任务完成后,才能进行后续任务的作业,表达式如下:步骤23.3:任务与设备间的约束,具体为:
(1)在每台设备作业序列中,每个任务最多有一个前序任务与后续任务,表达式如下:步骤23.4:总任务最大完成时间的约束,具体为:
(1)总任务最大完成时间大于等于每一个复合作业单元的完成时间,表达式如下:其中,b为任务序号,b=1,2,3…,3n-2,3n-1,3n,…,3N-2,3N-1,3N,其中n为单元编号;
s为阶段编号,s=1,2,3;k为作业设备编号,k=1,2,…,ms;ms为第s阶段的作业设备数,其中m1=m3=Q,表示第一阶段和第三阶段的设备数量即为穿梭车的数量;m2=2,其中该阶段的第一个设备为实际运行的提升机,第二个为虚拟提升机,选择该提升机表示该阶段无需进行跨层运动;tbs为任务b在s阶段的开始时间;pbs为任务b在s阶段的作业时间;wbb'sk为s阶段机器k操作的两个连续任务b和b’之间的准备时间。xbsk为当任务b在s阶段由设备k作业时,xbsk=1,否则xbsk=0;ybb'sk为当s阶段b与b’是前后连续的作业任务,并且由同一设备k作业时,ybb'sk=1,否则ybb'sk=0。
S3:所述的改进人工鱼群算法求解跨层穿梭车复合作业模型,并得到最优任务调度方案和调度时间,具体包括:步骤31:初始化算法参数;包括选择人工鱼数量n,人工鱼初始视野visual0,最小视野visualmin,拥挤度因子δ,最大试探次数Try_number,最大无效迭代次数Invalid_gen,人工鱼群最大迭代次数Max_gen。
步骤32:初始化种群;人工鱼群个体的编码:基于TTMSWS调度模型的特点,采用出入库混合整数编码方式,编码序号代表任务的编号;假设出入库复合作业任务为N对,即存在N个出库任务和N个入库任务,将N个出库任务随机编码为1~N,N个入库任务则随机编码为N+1~2N,每条人工鱼的编码第奇数个元素为出库任务,第偶数个元素为入库任务;即X=(x1,x2,...,x2k-1,x2k,...,x2n-1,x2n),其中x2k-1为出库任务,x2k为出库任务,即调度时按照顺序依次进行x1,x2,...,x2k-1,x2k,...,x2n-1,x2n对应的出库任务和入库任务;在解中的偶数位置插入标志位以区分不同穿梭车的任务执行序列。
步骤33:计算适应度函数;本文目标是完成所有任务的作业时间最短,即求解极小化问题,则适应度函数为Y=fitness=min T=min Cmax (15)式中Cmax为所有任务完成的最大时间。Y即是对应X编码方案的适应度。
步骤34:进入人工鱼群迭代过程,当迭代次数小于最大迭代次数Max_gen,执行如下操作。
步骤34.1:试探人工鱼的追尾行为,设人工鱼当前状态为Xi,探测其领域内的伙伴数目nf及最优的伙伴Xmin,若Yminnf<δYi,则执行追尾行为,该人工鱼向最优伙伴Xmin的位置前进:Xi|next=Xmin;若追尾失败,则试探人工鱼的聚群行为。
步骤34.2:试探人工鱼的聚群行为,设人工鱼当前状态为Xi,探测其邻域内的伙伴数目nf以及其中心位置Xc,若Ycnf<δYi,则执行聚群行为,该人工鱼向中心位置前进:Xi|next=Xc;
若聚群失败,则进行人工鱼的觅食行为。
步骤34.3:进行人工鱼的觅食行为,设人工鱼当前状态为Xi,在其视野范围内随机选择一个状态Xj,而从公布板中获取全局最优位置Xbest,人工鱼朝Xj和Xbest的组合方向前进;而其向Xj和全局最优位置Xbest的组合方向前进的实现方式为:比较Xj和Xbest的解序列相似性,保留两个序列中都同时出现的连续num个序列放入Xi|next中,其余部分则按Xi排列填充并去除其重复节点。
步骤34.4:公告板更新;设立公告板用来记录最优人工鱼个体的状态。各人工鱼每次执行完上述步骤之后,检验自身状态与公告板的状态,如果自身状态优于公告板状态,就将公告板的状态改写为自身状态,否则公告板不变。
步骤34.5:根据公布板的更新情况,进行人工鱼视野参数的更新,具体表达式如下:式中visual0表示初始视野值,visualmin表示最小视野值;gen表示当前迭代代数,invalid表示人工鱼最优解连续不变化的次数, 表示当前迭代次数下人工鱼的最优解序列,S控制视野缩小速度,为常数。
步骤34.6:进行增强局部搜索行为的条件判断:判断连续失效迭代次数是否已达到预先设置的连续失效迭代阈值;若满足局部搜索条件,则转步骤34.7;否则转步骤34.1。
步骤34.7:对当代最优个体进行变邻域搜索,得到新的当代最优个体X和最优状态值Y;
比较Y与公布板所记录的Ybest,记录适应度值大的个体作为当前最优个体,并更新公布板。
步骤35:当迭代次数已达到预置的最大迭代次数Max_gen,算法终止,输出最优解,即公告板中人工鱼状态和函数值;人工鱼状态即是任务调度方案,函数值即是该方案下调度时间。