基于自适应大规模邻域搜索算法的堆垛机路径优化方法与流程

文档序号:27308983发布日期:2021-11-09 21:30阅读:418来源:国知局
基于自适应大规模邻域搜索算法的堆垛机路径优化方法与流程

1.本发明涉及路径规划技术领域,特别是涉及一种基于自适应大规模邻域搜索算法的堆垛机路径优化方法。


背景技术:

2.随着物流运输业的飞速发展,烟草中转、配送需求不断增加,为了更好地满足运输需求,越来越多的烟草配送中心选择使用先进的物流设备来代替人力劳动,降低成本的同时,提高了运作效率。自动化立体仓是现代物流技术领域出现的一种新型仓储方式,其主体由货架、巷道式堆垛起重机、出入库工作台和自动运进运出及操作控制系统组成。利用立体仓库设备企业实现了仓库高层合理化、存取自动化、操作简便化。在自动化立体仓库这整个系统中,堆垛机的调度优化式提高仓库作业效率的关键,因而研究自动化立体仓库堆垛机的调度问题具有重要的理论价值和现实意义。
3.中国发明专利cn106773686a(公开日为2018年12月28日)公开了一种同轨双车运行模式下堆垛机调度路径模型建立方法,该方法建立的同轨双车调度路径模型,以两台堆垛机共同完成任务序列所需时间为评价标准,通过统筹分配原则将一批任务合理分配给两台堆垛机,以保证完成任务序列所需时间最短,同时避免碰撞的发生,在对堆垛机调度路径进行优化求解时,采用化学反应优化(cro),通过任务序号映射货位坐标的间接整数编码的方式,并将统筹分配原则嵌入到算法的每一次迭代中,调整分配结果,改变任务序列,寻得堆垛机调度路径模型的最优解。在化学反应优化算法中,采用分子结构描所求解问题的解,在其四种碰撞方式中,不论是单分子还是多分子间的无效碰撞都是在原分子的附近发生的,往往容易使求解陷入局部最优,且该专利的方法全局搜索能力不强,收敛速度慢,精度较低。


技术实现要素:

4.本发明的目的是提供一种灵活性好和效率高的基于自适应大规模邻域搜索算法的堆垛机路径优化方法。
5.为了实现上述目的,本发明提供了一种基于自适应大规模邻域搜索算法的堆垛机路径优化方法,包括如下步骤:
6.s1、以堆垛机完成全部任务的总时间最小为目标,建立相应的数学优化模型;
7.s2、对作业任务进行顺序编码,以及根据仓库中的货位分布生成堆垛机在任意两个货位之间移动所需的时间矩阵;
8.s3、将接收任务的顺序作为初始作业顺序,生成算法初始解,保存初始解为当前解和最优解,同时为所有操作算子赋予初始得分和权重;
9.s4、依据算子被赋予初始得分和权重,随机选择移除算子,以对当前解进行“破坏”;随后随机选择插入算子,以对当前解进行“重构”,生成新解;
10.s5、根据新解的效果和模拟退火接受准则,用新解更新当前解或最优解:根据步骤
s2的时间矩阵获得新解、当前解和最优解的总耗时,若新解的总耗时小于当前解和最优解的总耗时,则用新解更新当前解和最优解;若新解的总耗时大于最优解的总耗时而小于当前解的总耗时,则最优解不变,用新解更新当前解;若新解的总耗时均大于最优解和当前解的总耗时,则依照模拟退火接受准则更新当前解;
11.s6、根据新解的效果更新相应算子的得分和权重;
12.s7、重复步骤s4、s5和s6进行迭代,直至达到预设的最大迭代次数或达到预设的最大无更新迭代次数,停止迭代,输出保存的最优解,此时的最优解即为优化得到的最优作业顺序。
13.作为优选方案,在步骤s4中,通过轮盘赌的方法随机选择移除的算子。
14.作为优选方案,在步骤s4中,算子的移除采用最大节约成本移除和随机移除。
15.作为优选方案,在步骤s4中,算子的插入采用最小增加成本插入和最大后悔值插入。
16.作为优选方案,在步骤s1中,数学优化模型的目标函数为:
17.min t=∑
i∈a

j∈a
t
ij
x
ij

18.其中,min t为最小化堆垛机完成全部任务的总时间;t
ij
表示堆垛机从任务i的货位移动到任务j的货位所需要的时间,x
ij
为0

1变量,表示若堆垛机在任务i后完成任务j,则取1;否则,取0;
19.约束条件包括:
20.(4)
21.约束条件(1)表示每个任务所对应的货位仅被访问一次,且出入度相等;
22.其中,x
ji
为0

1变量,表示若堆垛机在任务j后完成任务i,则取1,否则,取0;a表示所有任务及初始位置集合,a=d∪p∪{0

},其中d表示入库任务集合,p表示出库任务集合,0

表示出入库平台及其复制点;
23.(5)
24.约束条件(2)表示子回路消除,
25.其中,s
i
表示任务i在整个任务序列中的位置,s
j
表示任务j在整个任务序列中的位置,m表示大于104的数;
26.决策变量取值范围为:
[0027][0028][0029]
作为优选方案,约束条件还包括:
[0030]
(6)
[0031][0032][0033]
约束条件(3)表示完成任务过程中堆垛机的载货量变化以及堆垛机的负载限制,
[0034]
其中,u
i
表示堆垛机离开任务i货位时运载的货物件数,u
j
表示堆垛机离开任务j货位时运载的货物件数。
[0035]
作为优选方案,在步骤s2中,堆垛机在i和j两位置间移动所需时间的计算方法为:
[0036][0037]
其中,a
i
表示任务i所对应货位的坐标中的层,b
i
表示任务i所对应货位的坐标中的列,l表示每个货位的长度,h表示每个货位的高度,v
x
表示堆垛机的水平移动速率,v
y
表示堆垛机的竖直移动速率。
[0038]
作为优选方案,在步骤s5中,当新解的总耗时均大于最优解和当前解的总耗时,以的概率用新解更新当前解,其中f(s
new
)表示新解的总耗时,f(s
cur
)表示当前解的总耗时,t为温度,t0=0.85*f(s
initial
),f(s
initial
)为初始解,温度每代以参数λ(0<λ<1)的速率下降。
[0039]
作为优选方案,在步骤s6中,若新解效果优于最优解,则对应算子加σ1分;若新解效果优于当前解,则对应算子加σ2分;若新解的效果虽劣于当前解,但更新了当前解,则对应算子加σ3分;更新后的算子得分为根据:
[0040][0041]
重新计算算子权重,其中,ω
p
表示操作算子p的权重,θ表示计算权重时,新一轮得分的重要程度;
[0042]
并且,根据:
[0043][0044]
对权重进行归一化处理。
[0045]
作为优选方案,σ1>σ2>σ3。
[0046]
与现有技术相比,本发明的有益效果在于:
[0047]
本发明在算法初始,为每个操作算子赋予得分和权重,在每次迭代时,依据算子赋予初始得分和权重随机选择若干操作算子移除和插入,进行“破坏”和“重构”,生成新解,并根据新解的的效果和模拟退火接受准则判断是否用新解更新当前解和最优解,直至满足迭代条件后输出最优解,在迭代过程中,每个操作算子均有一定的概率被选中,有更大的搜索空间,陷入局部最优的可能性更小,增加了得到全局最优解的可能性,而且,各个操作算子的权重在迭代过程中是改变的,效果好的操作算子在迭代过程中逐渐比较被筛选出来,使算法的灵活性高,缩短了造成求解时间,效率高。
附图说明
[0048]
图1是本发明实施例的堆垛机路径优化方法的流程图。
[0049]
图2是本发明实施例的堆垛机路径优化方法的示意图。
[0050]
图3是本发明实施例的堆垛机路径优化方法的算例测试统计图。
具体实施方式
[0051]
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施
例用于说明本发明,但不用来限制本发明的范围。
[0052]
如图1和图2所示,本发明优选实施例的一种基于自适应大规模邻域搜索算法的堆垛机路径优化方法,包括如下步骤:
[0053]
s1、以堆垛机完成全部任务的总时间最小为目标,建立相应的数学优化模型。
[0054]
堆垛机需要完成多个任务,因此,堆垛机的作业总时间为按顺序完成全部任务的时间,任务完成的顺序不同,可形成多个不同的作业方案,各个作业方案的作业总时间也不同,本实施例即是要找到作业总时间最短的作业方案。
[0055]
本实施例数学优化模型的目标函数为:
[0056]
min t=∑
i∈a

j∈a
t
ij
x
ij

[0057]
其中,min t为最小化堆垛机完成全部任务的总时间;t
ij
表示堆垛机从任务i的货位移动到任务j的货位所需要的时间,x
ij
为0

1变量,表示若堆垛机在任务i后完成任务j,则取1;否则,取0;
[0058]
约束条件包括:
[0059]
(1)
[0060]
约束条件(1)表示每个任务所对应的货位仅被访问一次,且出入度相等;
[0061]
其中,x
ji
为0

1变量,表示若堆垛机在任务j后完成任务i,则取1,否则,取0;a表示所有任务及初始位置集合,a=d∪p∪{0

},其中d表示入库任务集合,p表示出库任务集合,0

表示出入库平台及其复制点;
[0062]
(2)
[0063]
约束条件(2)表示子回路消除,
[0064]
其中,s
i
表示任务i在整个任务序列中的位置,s
j
表示任务j在整个任务序列中的位置,m表示大于104的数,m是一个非常大的数,本实施例取105;
[0065]
决策变量取值范围为:
[0066][0067][0068]
约束条件还包括:
[0069]
(3)
[0070][0071][0072]
约束条件(3)表示完成任务过程中堆垛机的载货量变化以及堆垛机的负载限制,其中,u
i
表示堆垛机离开任务i货位时运载的货物件数,u
j
表示堆垛机离开任务j货位时运载的货物件数。
[0073]
s2、对作业任务进行顺序编码,以及根据仓库中的货位分布生成堆垛机在任意两个货位之间移动所需的时间矩阵。
[0074]
采用顺序编码的方式对作业任务进行编码,作业方案表示为一组编号的序列,以此反映作业完成的先后顺序,例如某次任务共包含6个出入库任务,分别编号为1~6,则[05316240]表示堆垛机从出入库平台出发后以5
‑3‑1‑6‑2‑
4的顺序依次完成相应任务并返
回出入库平台。
[0075]
再根据约束条件(3)消除子回路,根据自动化立体仓中的货位分布。作业方案内包括多个任务,任务的本质是从一个货位移动到另一个货位,本实施例生成了在任意两个货位之间移动所需时间的集合矩阵,根据作业方案内的任务,将任务对应的各个货位移动时间求和得到该作业方案的总作业时间。
[0076]
本实施例的堆垛机在i和j两位置间移动所需时间的计算方法为:
[0077][0078]
其中,a
i
表示任务i所对应货位的坐标中的层,b
i
表示任务i所对应货位的坐标中的列,l表示每个货位的长度,h表示每个货位的高度,v
x
表示堆垛机的水平移动速率,v
y
表示堆垛机的竖直移动速率。
[0079]
s3、将接收任务的顺序作为初始作业顺序,生成算法初始解,保存初始解为当前解和最优解,同时为所有操作算子赋予初始得分和权重。
[0080]
本实施例在初始时,为所有操作算子赋予π
p
的初始得分,此时每个操作算子的权重相等。
[0081]
s4、依据算子被赋予初始得分和权重,随机选择移除算子,以对当前解进行“破坏”;随后随机选择插入算子,以对当前解进行“重构”,生成新解。
[0082]
本实施例通过轮盘赌的方法随机选择移除的算子,算子的得分越高,所占权重越大,被选中的概率越大,依据选中的移除算子的规则移除指定数量的点,对当前解进行“破坏”,再依据选中的插入算子的规则依次将移除的点重新插入,构成新解。
[0083]
算子的移除采用最大节约成本移除和随机移除。其中,最大节约成本移除指依次移除能够使目标函数(完成任务总耗时)减小最多的点,具体过程为:先计算解序列中前后点之间的距离,比较并选择与前后两点距离最远,即移动耗时最长的点,并将其移除,其目的在于使得作业顺序向着使总耗时减少的方向调整。随机移除指随机选取指定数量个点将其从序列中移除,其目的在于在搜索过程中加入一定的随机性,避免搜索陷入局部最优,使搜索过程覆盖更多的作业排序可能性。
[0084]
算子的插入采用最小增加成本插入和最大后悔值插入。其中,最小增加成本插入指将点优先插在使得目标函数(完成任务总耗时)增加最小的位置,具体过程为:先计算将每个点插入每个位置带来的消耗时间的增加量,比较并选择消耗时间增加最小的位置,并将点插入该位置,其目的在于使得作业顺序向着使总耗时减少的方向调整。最大后悔值插入指将点优先插在使目标函数增加最少且少的程度相比于其他位置更大的位置,具体过程为:先计算将每个点插入每个位置带来的消耗时间的增加量,对于每个点而言,计算该点插入不同位置时消耗时间增加量的差异,比较并选择差异最大的点,并将其插入消耗时间增加量最小的位置,其目的在于避免插入点的先后顺序影响解质量的情况。
[0085]
s5、根据新解的效果和模拟退火接受准则,用新解更新当前解或最优解:根据步骤s2的时间矩阵获得新解、当前解和最优解的总耗时,若新解的总耗时小于当前解和最优解的总耗时,则用新解更新当前解和最优解;若新解的总耗时大于最优解的总耗时而小于当前解的总耗时,则最优解不变,用新解更新当前解;若新解的总耗时均大于最优解和当前解的总耗时,则依照模拟退火接受准则更新当前解。
[0086]
本实施例的模拟退火接受准则为:当新解的总耗时均大于最优解和当前解的总耗时,以的概率用新解更新当前解,其中f(s
new
)表示新解的总耗时,f(s
cur
)表示当前解的总耗时,t为温度,t0=0.85*f(s
initial
),f(s
initial
)为初始解,温度每代以参数λ(0<λ<1)的速率下降。
[0087]
新解、当前解和最优解均为各任务的作业顺序。即若产生的新的作业顺序的总耗时小于得到的最优作业顺序,则用新的作业顺序更新得到的最优作业顺序和当前迭代使用的作业顺序;若产生的新的作业顺序总耗时大于得到的最优作业顺序而小于当前迭代使用的作业顺序,则用新的作业顺序更新当前迭代使用的作业顺序;若产生的新的作业顺序总耗时大于当前迭代使用的作业顺序,则依照模拟退火接受准则,以的概率用新的作业顺序更新当前迭代使用的作业顺序。
[0088]
s6、根据新解的效果更新相应算子的得分和权重。
[0089]
若新解效果优于最优解,则对应算子加σ1分;若新解效果优于当前解,则对应算子加σ2分;若新解的效果虽劣于当前解,但更新了当前解,则对应算子加σ3分;更新后的算子得分为本实施例的σ1>σ2>σ3。
[0090]
根据:
[0091][0092]
重新计算算子权重,其中,ω
p
表示操作算子p的权重,θ表示计算权重时,新一轮得分的重要程度;
[0093]
并且,根据:
[0094][0095]
对权重进行归一化处理。
[0096]
s7、重复步骤s4、s5和s6进行迭代,直至达到预设的最大迭代次数或达到预设的最大无更新迭代次数,停止迭代,输出保存的最优解,此时的最优解即为优化得到的最优作业顺序。
[0097]
本实施例还包括步骤s8、通过算例测试优化效果。
[0098]
设货架共包含2排42列10层的货位,每个货位长1.5m米,高2米,堆垛机水平方向的移动速率为1.5米/秒,竖直方向的移动速率为0.5米/秒,堆垛机每次可搬运一件货物。
[0099]
随机生成一批出入库混合任务及其对应的货位坐标。按照算例中出入库任务的数量多少分为i类,即以入库任务为主(入库任务数量约为出库任务数量的2倍);o类,即以出库任务为主(出库任务数量约为入库任务数量的2倍);io类,即均衡任务(出入库任务数量大致相等)。算例共包含小、中、大6种规模,任务总数分别为30、100、200、300、400和500个,每种规模下包含3类算例各10个。
[0100]
表1为算例测试结果表,展示了i类、o类和io类算例在堆垛机在作业顺序优化前后的完成任务平均总耗时及其差值。每张表中都含有6种规模的算例,每种规模所对应的结果为该规模下10个算例求解结果的平均值。从表中可以看出,无论哪类算例,优化作业顺序都可以使完成任务总耗时减少20%以上,进行作业顺序的优化是有意义的。
[0101]
表1:算例测试结果
[0102][0103]
i类、o类和io类算例优化效果的折线图如图3所示,从图中可以看出,对于i类算例和o类算例的优化效果相当,而io类算例的优化效果最好,且对于io类算例,路径优化带来的耗时减少百分比随算例规模的增加而增加。
[0104]
综上,本发明实施例提供一种基于自适应大规模邻域搜索算法的堆垛机路径优化方法,其在算法初始,为每个操作算子赋予得分和权重,在每次迭代时,依据算子的初始得分和权重随机选择若干移除和插入算子,对当前解进行“破坏”和“重构”,生成新解,并根据新解的的效果和模拟退火接受准则判断是否用新解更新当前解和最优解,直至满足迭代条件后输出最优解,在迭代过程中,每个操作算子均有一定的概率被选中,有更大的搜索空间,陷入局部最优的可能性更小,增加了得到全局最优解的可能性,而且,各个操作算子的权重在迭代过程中是改变的,效果好的操作算子在迭代过程中逐渐比较被筛选出来,使算法的灵活性高,缩短了造成求解时间,效率高。
[0105]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1