一种基于代价矩阵的堆垛机路径规划方法

文档序号:25303471发布日期:2021-06-04 13:55阅读:182来源:国知局
一种基于代价矩阵的堆垛机路径规划方法

1.本发明涉及机器人路径规划技术领域,具体是一种基于代价矩阵的堆垛机路径规划方法。


背景技术:

2.自动化仓储系统(automated storage and retrieval system,as/rs)是一种新型的仓储技术,作为现代物流系统的核心部分,正越来越多地应用于各个行业。仓库的出入库效率直接影响到整个物流系统的效率,因此出入库路径的优化就成为提高整个物流系统效率的关键问题。
3.堆垛机是as/rs中的运输和存取货物的主要设备,其中堆垛机拣选出入库货物的时间占其整个作业周期的50%左右,因此解决堆垛机行驶路径优化问题是提高自动化仓库效率的有效手段。
4.路径规划技术是堆垛机研究领域的一个重要组成部分,主要目的是在初始化有若干进出货物任务的环境中,根据一定的准则(如路径最短,用时最短等),寻求一个从库口依次存取货物的最优策略。
5.路径规划技术的发展在一定程度上标志着堆垛机智能水平的高低,而路径规划方法的优劣直接影响路径规划效果。
6.目前,在该问题上,考虑到穷举类算法的复杂度过高,多用启发式算法解决该问题,常见的有遗传算法,蚁群算法等。由于启发式算法可能存在陷入局部最优解,因此该类算法无法保证全局最优解的获取,因此,若能通过一些方法,降低穷举类算法的遍历的解空间大小,那么,将能使得穷举类算法的应用得以变得更加广泛。


技术实现要素:

7.本发明的目的在于提供一种基于代价矩阵的堆垛机路径规划方法,该方法够较好地克服传统穷举算法寻优速度慢的缺陷,在保留穷举类算法必能获得全局最优解的这一优点的情况下,大幅提高了算法寻解的速度。
8.本发明解决其技术问题所采用的技术方案是:
9.一种基于代价矩阵的堆垛机路径规划方法,包括以下步骤:
10.s1、依据堆垛的出库与入库任务数据构建代价矩阵其中,p
i,j
(i=1,2,...,m j=1,...,n)为出库任务o
j
捆绑给入库任务i
i
而产生的代价值,堆垛机仅执行i
i
的时间为t
i
,先执行i
i
后顺路执行o
j
的时间为t
j
,对应的p
i,j
=t
j

t
i
;初始代价值计数器p'=0,初始阈值p'
min
=k,k是大于全局最小值p
min
的数,k满足(p
a

max
为第a行中的最大的那个数);
11.s2、采用回溯算法寻找总代价值的最小值p
min
,按以下子步骤执行:
12.s21、若c为空矩阵,则更新p'
min
=min{p'
min
,p'},执行步骤s23;
13.若c为非空矩阵,按照从左向右的顺序依次每次取出矩阵c的第一行的一个元素,计算当前p'=p'+p
1,k
,p
1,k
为每次取出的元素,同时执行s22;
14.当第一行元素全部取出一遍后,若本步骤得到的c来源于步骤s1,则直接执行s3,若是来源于s23,则执行步骤s23;
15.s22、比较当前p'与p'
min
的大小,若p'≥p'
min
,则返回执行s21;若p'<p'
min
,则执行步骤s23,并返回执行步骤s21;
16.s23、删除当前代价矩阵c的第1行与第k列后的新矩阵储存于c1中,然后将c1传递给s21并执行,继续返回执行s22;
17.s3、输出p
min
,(p
min
=p'
min
)以及对应的序列。
18.本发明的有益效果是,基于代价矩阵对堆垛机的问题模型进行变角度处理,在保证能够获得全局最优解的前提下,大幅减小穷举法的解空间大小,充分利用问题模型的特点,结合回溯算法,进一步加速路径规划求解的效率。
附图说明
19.下面结合附图和实施例对本发明进一步说明:
20.图1是本发明的流程示意图;
21.图2程序仿真的代价矩阵及最优解对应的排列示意图;
22.图3程序仿真最优路径示意图。
具体实施方式
23.首先,假设问题模型初始为入库任务i有m个,出库任务o有n个,假定堆垛机的容量为1,那么总任务的解的序列模型l为:
[0024][0025]
式(1)中,i
i
(i=1,2,3...m)为入库任务,o
j
(j=1,2,3...n)为出库任务,简单分析后可知,i1有m种选择,o1有n种选择,i2有m

1种选择,o2有n

1种选择,其余以此类推,易得l的排列解空间大小s为:
[0026]
s=m*n*(m

1)*(n

1)*...*1*1=m*(m

1)*...*1*n*(n

1)*...*1=m!n!
ꢀꢀꢀ
(2)
[0027]
由式(2)可知,s的对m或n复杂度为阶乘级别,这也就解释了穷举类算法在堆垛机路径规划问题中的应用困难。
[0028]
观察序列模型l的式(1),不难发现,在开始阶段,i跟o是成对出现的,因为一对io构成一个回路,可以将路线理解成,堆垛机从起点出发,执行入库任务,在付出一定的时间代价后,顺便解决了附近的一个出库任务。
[0029]
基于上述内容,现在可以将堆垛机的路径规划问题换个角度描述,即先忽略出库点,仅考虑入库点,易得堆垛机完成任务的总时间t
i
为一定值,然后再来依次将出库点o
j

绑给对应的合适的入库点i
i
,设堆垛机仅执行i
i
的时间为t
i
,再设先执行i
i
后顺路执行o
j
的时间为t
j
,则后者较前者所额外付出的“代价值”为p
j
=t
j

t
i
,因此,每个出库任务在被捆绑后,都会产生一个“代价值”p,因此,任意一个序列l都会对应一个总代价值p:
[0030][0031]
当p=p
min
时,即对应的序列方案为全局最优解,即最优解对应的总用时:
[0032]
t=t
i
+p
min
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0033]
至此,堆垛机的路径规划问题转化为了求总代价值p最小值的问题。
[0034]
定义代价矩阵c如下:
[0035][0036]
其中,p
i,j
(i=1,2,...,m j=1,2,...,n)为o
j
捆绑给i
i
而产生的代价值。至此,基于代价矩阵对总代价值p的定义进行补充:
[0037]
(p
k
∈p
i,j
,其中i=1,2,...,m;j=1,2,...,n,且p
k
两两之间不同行,不同列)
[0038]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0039]
即从代价矩阵c的第一行任取一个p1,然后,删除其所在行与列,再从删除后的新的c1中的第一行任取一个p2,再循环执行上述操作,直至c
n+1
=[],一条完整的序列遍历结束,比较对应的p'值与已知的p'
min
,当且仅当p'小于p'
min
时,更新p'
min
,并记录下当前序列,设p
min
对应的序列为:
[0040]
p
min
=p
i1,j1
+p
i2,j2
+...+p
in,jn
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0041]
则对应的出入复合捆绑序列为:
[0042]
l1=i1,j1,i2,j2,...,in,jn。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0043]
注意上述得到序列是由若干对“入
‑‑‑
出”复合任务组成。设第k1,k2....列无元素被选中,则单程序列为:
[0044]
l2=[1,2,...]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0045]
综上,最终的全局序列为:
[0046]
l=l1+l2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0047]
分析上述过程可知,基于代价矩阵的p的解空间大小为:
[0048]
s1=m*(m

1)*(m

2)*...*1==m!
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0049]
显然s1<s。
[0050]
另外,由于在上述问题中,本发明只需要找p的最小值,因此,可以利用这个特性,用回溯算法代替穷举法来再寻找p
min

[0051]
即在整个过程中,始终保留目前时刻已知的p'
min
作为阈值,在遍历序列的过程中,若发先当前遍历的序列对应的p'>p'
min
,则中断当前的遍历,回溯至上一个节点,否则,在
一条完整的序列被遍历后,令p'
min
=p'。
[0052]
鉴于此,如图1所示,本发明提供一种基于代价矩阵的堆垛机路径规划方法,包括以下步骤:
[0053]
s1、依据堆垛的出库与入库任务数据构建代价矩阵其中,p
i,j
(i=1,2,...,m j=1,...,n)为出库任务o
j
捆绑给入库任务i
i
而产生的代价值,堆垛机仅执行i
i
的时间为t
i
,先执行i
i
后顺路执行o
j
的时间为t
j
,对应的p
i,j
=t
j

t
i
;初始代价值计数器p'=0,初始阈值p'
min
=k,k是大于全局最小值p
min
的数,k满足(p
a

max
为第a行中的最大的那个数);
[0054]
s2、采用回溯算法寻找总代价值的最小值p
min
,按以下子步骤执行:
[0055]
s21、若c为空矩阵,则更新p'
min
=min{p'
min
,p'},执行步骤s23;
[0056]
若c为非空矩阵,按照从左向右的顺序依次每次取出矩阵c的第一行的一个元素,计算当前p'=p'+p
1,k
,p
1,k
为每次取出的元素,同时执行s22;
[0057]
当第一行元素全部取出一遍后,若本步骤得到的c来源于步骤s1,则直接执行s3,若是来源于s23,则执行步骤s23;
[0058]
s22、比较当前p'与p'
min
的大小,若p'≥p'
min
,则返回执行s21;若p'<p'
min
,则执行步骤s23,并返回执行步骤s21;
[0059]
s23、删除当前代价矩阵c的第0行与第k列后的新矩阵储存于c1中,然后将c1传递给s21并执行,继续返回执行s22;
[0060]
s3、输出p
min
,(p
min
=p'
min
)以及对应的序列。
[0061]
本发明的效果可以通过以下仿真实验进一步说明:
[0062]
为验证本方法的正确性和合理性,运用python语言编程,在cpu2.5 ghz,i5处理器的pc机上对基于代价矩阵的穷举算法进行验证仿真,并与常规穷举算法进行比较。任务数据采取期刊《机械科学与技术》在2011年30卷第7期中1202

1206页《基于遗传禁忌搜索算法的自动化立体仓库出入库路径优化研究》中测试的任务数据,仿真得到的代价矩阵及最优解对应的排列如图2所示,且由图2可知:
[0063]
p
min
=p
6,0
+p
7,1
+p
4,2
+p
1,3
+...+p
3,7
=8
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0064]
由式(8)对其解码得堆垛机的任务序列为:
[0065]
l1=[[6,0],[7,1],[4,2],[1,3],[2,4],[0,5],[5,6],[3,7]]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0066]
由于第8列无选中的元素,即第8个入库为单任务路线,由式(9)有:
[0067]
l2=[8]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0068]
因此最优解序列为:
[0069]
l=l1+l2=[[6,0],[7,1],[4,2],[1,3],[2,4],[0,5],[5,6],[3,7],[8]]
ꢀꢀꢀꢀ
(15)
[0070]
由式(4)最优解对应的总用时:
[0071]
t=t
i
+p
min
=118+8=126
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0072]
程序仿真路线图如图3所示,经分析,仿真结果与文献中所得结果一致。
[0073]
另外,本发明对上述步骤s21的选取元素行为进行计数,结果如表1所示。
[0074]
表1基于代价矩阵的算法仿真结果
[0075]
算法用时(s)选取行为计数(次)完整序列遍历个数穷举法23.3623530362880回溯算法0.582260116
[0076]
由表1仿真结果可知,在入库任务数m=9,出库任务数n=8的情况下,基于代价矩阵的一般穷举法的遍历序列个数s=362880=9!,满足式(8),由式(2)知,非基于代价矩阵下的一般穷举法需要遍历的序列个数为:
[0077]
s
*
=9!*8!=362880*40320=14631321600
[0078]
显然,s<<s
*
,这证明了基于代价矩阵的改进策略能有效降低穷举法遍历的工作量。另外,考虑到回溯算法可能在遍历过程中,即未取得完整序列时就可能发动回溯,以及算法耗时主要是多次执行s21选取元素步骤造成的,故以s21选取元素步骤的调用次数为参考,能有效地衡量回溯算法应用的优劣,如表1所示,回溯算法对解空间的遍历程度:
[0079][0080]
而选取行为较之穷举法的占比程度:
[0081][0082]
由e1与e2的结果看,回溯算法能大幅减小遍历的工作量。
[0083]
通过对比仿真可以得出结论:通过本发明代价矩阵的改进策略使得穷举算法在堆垛机路径规划问题上的效率明显优于传统穷举法。且在将穷举法替换成回溯算法后,能进一步提高寻优效率。
[0084]
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1