一种基于多层AGV停车库多取车任务的优化方法

文档序号:30833373发布日期:2022-07-22 22:21阅读:220来源:国知局
技术简介:
本专利针对多层AGV停车库中多取车任务效率低、跨巷道作业频繁的问题,提出基于改进遗传算法的优化方法。通过建立AGV与电梯运动模型及半开环排队网络模型,构建任务完成时间函数,并采用IPMX交叉策略与交换/插入变异操作,优化任务执行顺序,有效减少等待时间与跨巷道次数,提升系统作业效率。
关键词:多层AGV停车库,遗传算法优化,任务调度
一种基于多层agv停车库多取车任务的优化方法
技术领域
1.本发明属于智能停车领域,涉及一种基于多层agv停车库多取车任务的优化方法。


背景技术:

2.多层agv停车库系统属于自动存取小车系统(autonomous vehicle storage and retrieval systems,avs/rs)的一种。与传统的自动存取系统(autonomous storageand retrieval systems,as/rs)中货箱利用货架可以实现平面移动和跨层移动不同,多层agv停车系统的车辆通过agv实现同层内的移动,而跨层运动需要依靠巷道末端的电梯实现跨楼层作业。
3.根据自动存取小车系统跨层电梯的工作方式不同,对avs/rs进行了分类:层到层的avs/rs(tier to tier avs/rs)和基于层的avs/rs(tier captive avs/rs)。层到层的avs/rs需要电梯运载agv完成楼层间的移动;基于层的avs/rs,跨层电梯与agv之间在agv所在楼层完成交接,即电梯只运载货物,且每层楼都需配备agv来完成该楼层的存取任务。
4.与单目标调度不同,agv的多目标调度是一个复杂的组合过程。在实际应用中,停车库的订单到达率最高的两个时间段分别为上班和下班时间段,而这两个时间段的订单呈现出密集停车和密集取车的特点。根据图1的取车作业流程,针对批量取车订单,不可避免的会出现agv在作业时跨巷道作业和跨楼层作业的情况。因此如何有效的避免以上情况的发生是多层agv停车库多取车任务的一个难点。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种基于多层agv停车库多取车任务的优化方法。根据多层agv停取车系统的停取车过程建立的agv与电梯的运动模型,在此基础上构建的多层agv停车库停取车系统的半开环排队网络模型进行研究,对遗传算法中部分交叉匹配进行改进,使用改进的遗传算法确定对批量取车订单的执行顺序,减少各环节间的等待时间,减少跨巷道作业的次数,提高多层agv停取车系统的作业效率,减少执行任务所需的时间。
6.为达到上述目的,本发明提供如下技术方案:
7.一种基于多层agv停车库多取车任务的优化方法,该方法包括以下步骤:
8.s1:根据多层agv停取车系统的停取车过程,建立agv与电梯的运动模型:
9.agv从第i列到第j列所需时间:
[0010][0011]
agv从第i巷道到第j巷道所需时间:
[0012][0013]
电梯从第i层到第j层所需时间:
[0014][0015]
其中,cm为agv加速到最大速度需要经过的列数;c为停车场列总数;av为agv加速度;vv为agv的最大速度;l为每个车位的长度;w为每个巷道的宽度;w为每个车位的宽度;a为停车库的总巷道数;am为agv加速到最大速度需要经过的巷道数;h为楼层每层高度;l为停车库的总层数,lm为电梯加速到最大速度需要的层数;a
l
为电梯加速度;v
l
为电梯的最大速度;
[0016]
s2:根据s1中agv与电梯的运动模型,建立多层agv停车库停取车系统的半开环排队网络模型;
[0017]
s3:求取多层agv停车库停取车系统在取车位置下任务完成时间函数;
[0018]
s4:根据改进的遗传算法确定对批量取车订单的执行顺序。
[0019]
可选的,在所述s4中,根据改进的遗传算法确定对批量取车订单的执行顺序,具体步骤包括:
[0020]
s41:初始化多层agv停车库系统停车位参数,停取车任务队列,电梯运动模型参数,agv动模型参数,随机初始化染色体任务序列,设置迭代次数;
[0021]
s42:根据s3中的时间函数计算种群规模的适应度函数;
[0022]
s43:采用竞标赛选择及基于比例的适应度分配方法选择优秀父代染色体;
[0023]
s44:以一定交叉概率pc采用ipmx策略进行交叉,产生优秀的子代染色体;
[0024]
s45:以一定变异概率pm进行随机2点变异操作;
[0025]
s46:迭代更新,如果其迭代次数《t,则跳至2)继续执行,如果迭代次数≥t,则迭代停止,并且返回其染色体基因编码组合,即最优订单任务序列矩阵;
[0026]
s47:根据最优订单任务序列矩阵和agv之间的映射关系,分配各agv最优任务订单执行顺序。
[0027]
可选的,在所述s44中,以一定交叉概率pc采用ipmx策略进行交叉,产生优秀的子代染色体,具体步骤包括:
[0028]
s441:设置两父代的染色体基因序列为p1,p2;
[0029]
s442:利用交换变异操作和插入编译操作对父代基因进行基因交换;
[0030]
s443:利用交换信息建立基因交换矩阵ge;
[0031]
s444:根据基因交换矩阵ge映射基因状态矩阵go1和主导向量矩阵go2:
[0032]go1
(1,ge(i,1))=ge(i,2)
[0033]go2
(1,ge(i,2))=ge(i,1)
[0034]
s445:根据go1和go2求出基因状态矩阵gp1和gp2;
[0035]
s446:合并基因状态状态gp1和gp2为gp,即gp=gp1+gp2;
[0036]
s447:求取变量基因gv=find(g
p
(1,:)》1);
[0037]
s448:重复s443~s447直到达到迭代次数。
[0038]
可选的,在所述s442中,利用交换变异操作和插入变异操作对父代基因进行基因交换,具体为:
[0039]
s4421:交换变异操作如下:使用随机函数生成交换位置a,b,其表达式为:
[0040]
a=rand()%n
[0041]
b=rand()%n
[0042]
swap=(a,b),a≠b
[0043]
其中:a为基因发生变异的位置编号,b为与之交换的另一位置编号,n为总任务的数量,swap表示变换操作;
[0044]
s4422:插入变异操作如下:使用随机函数生成插入位置d,其表达式为:
[0045]
d=rand()%n
[0046]
insert=(c,d),c≠d
[0047]
其中:c为发生变异的基因位置编号,d为插入的目标位置编号,n为总任务的数量,insert表示插入变异操作。
[0048]
本发明的有益效果在于:
[0049]
(1)使用改进的遗传算法确定对批量取车订单的执行顺序,减少各环节间的等待时间,减少跨巷道作业的次数,提高多层agv停取车系统的作业效率,减少执行任务所需的时间。
[0050]
(2)能有效解决对多层agv停车库系统取车订单密集情况下的订单顺序排列的优化问题。
[0051]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0052]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0053]
图1为本发明的流程图;
[0054]
图2为多层agv停车库系统取车作业流程图;
[0055]
图3为批量作业场景下agv系统半开环排队网络模型图;
[0056]
图4为基因交换变异图;
[0057]
图5为基因插入变异图。
具体实施方式
[0058]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实
施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0059]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0060]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0061]
本发明的目的是通过这样的技术方案实现的,如图1所示,具体步骤如下:
[0062]
s1:根据多层agv停取车系统的停取车过程如图2所示,建立agv与电梯的运动模型:
[0063]
agv从第i列到第j列所需时间:
[0064][0065]
agv从第i巷道到第j巷道所需时间:
[0066][0067]
电梯从第i层到第j层所需时间:
[0068][0069]
其中,cm为agv加速到最大速度需要经过的列数;c为停车场列总数;av为agv加速度;vv为agv的最大速度;l为每个车位的长度;w为每个巷道的宽度;w为每个车位的宽度;a为停车库的总巷道数;am为agv加速到最大速度需要经过的巷道数;h为楼层每层高度;l为停车库的总层数,lm为电梯加速到最大速度需要的层数;a
l
为电梯加速度;v
l
为电梯的最大速度。
[0070]
s2:建立多层agv停车库停取车系统的半开环排队网络模型如图3所示,第一个服务节点平均服务时间如下所示:
[0071]
[0072]
第二个服务节点系统平均服务时间如下所示:
[0073][0074]
其中,t
vti
为第一个服务节点在第i种停车场景作业下的平均服务时间(i=1,2,

8);t
lti
为第二个服务节点在第i种停车场景作业下的平均服务时间(i=1,2,

8);t
vqj
为第一个服务节点在第j种取车场景作业下的平均服务时间(j=1,2,

8);t
lqj
为第二个服务节点在第j种取车场景作业下的平均服务时间(j=1,2,

8);p
ti
为第i种停车作业场景发生概率(i=1,2

8);p
qj
为第j种取车作业场景发生概率(j=1,2

8);
[0075]
s3:利用s1和s2中的模型求取多层agv停车库停取车系统在取车位置下任务完成时间函数,c
max
为所有取车任务的最大完工时间,其函数模型如下:
[0076][0077][0078][0079][0080][0081]
xi′
ih
+xi′
ih
≤1,i=1,...,n,h=1,...,m
[0082]cmax
=max ci=max{si+q
ih
+p
ih
}
[0083]
其中,si为取车任务i的开始时间;ci为取车任务i的完成时间;p
ih
为取车任务i与ah匹配条件下agv完成任务所消耗的时间;q
ih
为取车任务i与lh匹配条件下电梯完成任务所消耗的时间;z
ih
为0-1决策变量;y
ih
为0-1决策变量;x
i’ih
为0-1决策变量,如果取车任务i'与i由同一台agv执行,且任务i'位于任务i得紧前的位置;x
ii’h
为0-1决策变量,如果取车任务i'与i由同一台agv执行,且任务i'位于任务i得紧后的位置,m为总agv的数量;
[0084]
s4:根据改进的遗传算法确定对批量取车订单的执行顺序。
[0085]
步骤s4中,根据改进的遗传算法确定对批量取车订单的执行顺序,具体的步骤为:
[0086]
s41:初始化多层agv停车库系统停车位参数,停取车任务队列,电梯运动模型参数,agv动模型参数,随机初始化染色体任务序列,设置迭代次数;
[0087]
s42:根据步骤s3中的任务完成时间函数计算种群规模的适应度函数,其表达式为:
[0088][0089]
s43:采用竞标赛选择及基于比例的适应度分配方法选择优秀父代染色体;
[0090]
s44:以一定交叉概率pc采用ipmx策略进行交叉,产生优秀的子代染色体;
[0091]
s45:以一定变异概率pm进行随机2点变异操作;
[0092]
s46:迭代更新,如果其迭代次数《t,则跳至2)继续执行,如果迭代次数≥t,则迭代停止,并且返回其染色体基因编码组合,即最优订单任务序列矩阵;
[0093]
s47:根据最优订单任务序列矩阵和agv之间的映射关系,分配各agv最优任务订单执行顺序。
[0094]
s44中,以一定交叉概率pc采用ipmx策略进行交叉,产生优秀的子代染色体,具体步骤包括:如下例所示:
[0095]
假设两父代基因如下:
[0096]
p1=(7,1,5,11,4,6,2,10,12,8,3,9)
[0097]
p2=(2,11,4,6,12,10,7,3,5,9,8,1)
[0098]
设其交叉初始位置和结束位置为第4个基因和第9个基因,其ipmx交叉算子设计如下:
[0099]
(1)父代信息进行基因交换:
[0100]
p1=(7,1,5,6,12,10,7,3,5,8,3,9)
[0101]
p2=(2,11,4,11,4,6,2,10,12,9,8,1)
[0102]
(2)将其交换信息建立基因交换矩阵:
[0103][0104]
(2)将矩阵ge进行映射关系
[0105]go1
(1,ge(i,1))=ge(i,2)
[0106]go2
(1,ge(i,2))=ge(i,1)
[0107]
(3)生成基因状态矩阵g
pi
和主导向量矩阵g
oi

[0108]
主导向量矩阵:
[0109]go1
=[0 0 10 0 12 11 2 0 0 6 0 4]
[0110]go2
=[0 7 0 12 0 10 0 0 0 3 6 5]
[0111]
基因状态矩阵:
[0112]gp1
=[0 0 1 0 1 1 1 0 0 1 0 1]
[0113]gp2
=[0 1 0 1 0 1 0 0 0 1 1 1]
[0114]
(4)将基因状态矩阵合并:
[0115]gp
=g
p1
+g
p2
=[0 1 1 1 1 2 1 0 0 2 1 2]
[0116]
(5)其变量基因求解:
[0117]gv
=find(g
p
(1,:)》1)=[6 10 12]
[0118]
(6)由(5)的计算结果,更新基因交换矩阵:
[0119][0120]
(7)根据基因交换矩阵,更新主导向量矩阵:
[0121]go1
=[0 0 11 0 4 0 2 0 0 0 0 0]
[0122]
(8)将主导向量矩阵g
o1
与(6)的矩阵关系进行重复映射,其余基因位置不变,即可产生子代1基因:
[0123]
p
’1=(2,1,4,6,12,10,7,3,5,8,11,9)
[0124]
(9)现定义子代基因1与2之间的映射关系:
[0125]
fe(p
’1(i))=p1(i),i=1,2,

,n
[0126]
p
’2(i)=fe(p2(i)),i=1,2,

,n
[0127]
(10)由(9)可知其子代2的基因序列:
[0128]
p
’2=(7,3,5,11,4,6,2,10,12,9,8,1)
[0129]
为了维持种群的多样性,提高搜索效率,扩大探索区域,避免陷入“早熟”,需引入变异算子,本发明使用传统的遗传算法求解整数编码问题中常用的交换变异与插入变异。
[0130]
(51)交换变异操作如下:使用随机函数生成交换位置a,b,其表达式为:
[0131]
a=rand()%n
[0132]
b=rand()%n
[0133]
swap=(a,b),a≠b
[0134]
其中:a为基因发生变异的位置编号,b为与之交换的另一位置编号,n为总任务的数量,swap表示变换操作,如图4所示。
[0135]
(52)插入变异操作如下:使用随机函数生成插入位置d,其表达式为:
[0136]
d=rand()%n
[0137]
insert=(c,d),c≠d
[0138]
其中:c为发生变异的基因位置编号,d为插入的目标位置编号,n为总任务的数量,insert表示插入变异操作,如图5所示。
[0139]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!