首页 / 专利库 / 数学与统计 / 优化算法 / 一种基于可变任务窗的AGV动态调度方法及装置

一种基于可变任务窗的AGV动态调度方法及装置

阅读:213发布:2024-01-01

专利汇可以提供一种基于可变任务窗的AGV动态调度方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于可变任务窗的AGV动态调度方法及装置,其中的方法将实时动态调度中的任务分为当前任务以及新增任务两部分,在没有新增任务时仅对当前任务窗进行调度;在出现新增任务时,将尚未完成的任务与新增任务结合成为一个新的任务窗,把此任务窗作为当前任务窗进行调度优化。并结合遗传 算法 进行求解,能够比较简单地实现父代 染色 体基因之间的信息交换。实现了动态调度以及优化调度结果的技术效果。,下面是一种基于可变任务窗的AGV动态调度方法及装置专利的具体信息内容。

1.一种基于可变任务窗的AGV动态调度方法,其特征在于,包括:
步骤S1:获取当前任务,将当前任务加入第一任务窗;
步骤S2:将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度;
步骤S3:判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗;
步骤S4:对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
2.如权利要求1所述的方法,其特征在于,步骤S2具体包括:
步骤S2.1:获取当前任务窗中的任务对应的货位坐标及AGV的坐标信息;
步骤S2.2:对当前任务窗中的任务对应的货位坐标、AGV的坐标信息进行编码;
步骤S2.3:根据目标函数设置适应度函数,其中,目标函数为
其中,Si表示每辆AGV的空载行程,
适应度函数为:
其中,f为目标函数值,ratio表示所有AGV小车中空载行程最大的AGV与空载行程最小的AGV之间的差值对适应度函数的影响系数,
其中,Max表示所有小车中的最大空行程,Min表示所有AGV小车中的最小空行程,AGVQuantity表示所有AGV小车的数量,ChromosomeLength表示染色体中的基因长度,也是任务数量,染色体上的每一个基因表征一个货位坐标,每一条染色体表示一种任务解序列;
步骤S2.4:基于适应度函数对个体进行适应度计算,对高适应度的个体进行可重复选择;
步骤S2.5:在选择出来的相邻父代中,判断是否符合第一预设条件,若符合,则按照交叉算子进行交叉操作,若不符合,则保留原基因不变;
步骤S2.6:判断是否符合第二预设条件,若符合,则按照变异算子进行变异操作,若否,则保留原基因不变;
步骤S2.7:在当前所有父代与子代中,基于适应度函数对所有个体进行适应度计算,所有父代与子代竞争,将适应度符合预设范围的个体作为新的父代;
步骤S2.8:判断当前的代数是否小于预设遗传代数,如果是,则执行步骤S2.4,如果否,则输出计算结果,将其作为第一解序列;
步骤S2.9:根据第一解序列进行AGV调度。
3.如权利要求2所述的方法,其特征在于,步骤S2.2中,采用十进制编码方式进行编码以存储坐标信息。
4.如权利要求2所述的方法,其特征在于,步骤S2.5中的交叉算子具体包括:
在父代A中随机选择一个基因的位置a,该基因对应的任务为m;
在父代B中搜索该任务m所对应的基因的位置b;
将父代A中位置a和位置b的对应基因互换位置,将父代B中位置a和位置b的基因互换位置;
判断互换操作次数是否达到基因个数,如果未达到,则执行在父代A中随机选择一个基因的位置的步骤,如果达到,则子代为经过多次基因互换的染色体。
5.如权利要求1所述的方法,其特征在于,步骤S2.5中的变异算子具体包括:
在所选定需要进行变异操作的染色体中随机产生两个不同的随机数c和d,其中,c和d的数值小于基因总个数;
将随机数c对应的基因与随机数d对应的基因位置进行互换;
判断互换操作次数是否达到基因个数,如果未达到,则执行随机产生随机数的步骤,如果达到,则将位置互换后的染色体作为变异之后的子代染色体。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
记录每个任务的给定时间;
根据给定时间,判断任务是否为新增任务。
7.如权利要求5所述的方法,其特征在于,在步骤S4具体包括:
更新第二任务窗集中的任务坐标信息以及AGV初始坐标信息,其中,AGV初始坐标信息为AGV最后执行的任务坐标;
根据更新后的任务坐标信息以及AGV初始坐标信息,采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度。
8.一种基于可变任务窗的AGV动态调度装置,其特征在于,包括:
获取模,用于获取当前任务,将当前任务加入第一任务窗;
第一调度模块,用于将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度;
合并模块,用于判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗;
第二调度模块,用于对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
9.如权利要求8所述的装置,其特征在于,第一调度模块具体用于执行下述步骤:
步骤S2.1:获取当前任务窗中的任务对应的货位坐标及AGV的坐标信息;
步骤S2.2:对当前任务窗中的任务对应的货位坐标、AGV的坐标信息进行编码;
步骤S2.3:根据目标函数设置适应度函数,其中,目标函数为
其中,Si表示每辆AGV的空载行程,
适应度函数为:
其中,f为目标函数值,ratio表示所有AGV小车中空载行程最大的AGV与空载行程最小的AGV之间的差值对适应度函数的影响系数,
其中,Max表示所有小车中的最大空行程,Min表示所有AGV小车中的最小空行程,AGVQuantity表示所有AGV小车的数量,ChromosomeLength表示染色体中的基因长度,也是任务数量,染色体上的每一个基因表征一个货位坐标,每一条染色体表示一种任务解序列;
步骤S2.4:基于适应度函数对个体进行适应度计算,对高适应度的个体进行可重复选择;
步骤S2.5:在选择出来的相邻父代中,判断是否符合第一预设条件,若符合,则按照交叉算子进行交叉操作,若不符合,则保留原基因不变;
步骤S2.6:判断是否符合第二预设条件,若符合,则按照变异算子进行变异操作,若否,则保留原基因不变;
步骤S2.7:在当前所有父代与子代中,基于适应度函数对所有个体进行适应度计算,所有父代与子代竞争,将适应度符合预设范围的个体作为新的父代;
步骤S2.8:判断当前的代数是否小于预设遗传代数,如果是,则执行步骤S2.4,如果否,则输出计算结果,将其作为第一解序列;
步骤S2.9:根据第一解序列进行AGV调度。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序行时实现如权利要求1至7中任一项权利要求所述的方法。

说明书全文

一种基于可变任务窗的AGV动态调度方法及装置

技术领域

[0001] 本发明涉及AGV(自动导引车)控制方法技术领域,具体涉及一种基于可变任务窗的AGV动态调度方法及装置。

背景技术

[0002] 我国实体经济的发展从高速发展阶段进入高质量发展阶段,物流中储运系统的更新对各大企业的发展具有重要意义,而物料储运系统中的立体仓库已经是全球发展的主要储货系统。现如今,立体仓库的运用越来越广泛,对于大货物大物流的立体仓库中必须依靠机械实现对货物的装载与转运。而AGV小车又是立体仓库中必不可少的一部分,更加上如今电商的迅速发展,物流调度的优化便显得更加重要。AGV调度的优化能有节省企业大量的时间成本,具有非常重要的研究价值。
[0003] 现有技术中,通常采用基于时间窗的调度方式,其主要考虑的是在实际情况中,执行任务的装置会影响其他装置的工作,然后通过时间窗的算法就是设置这些装置运动的先后顺序,保证等待的时间最短。然而,实际应用中,时间窗的调度方法主要用于防止冲突的问题,而对于立体仓库,路径较少有阻碍,不适宜采用时间窗的调度方法,采用目前的方法无法保证调度效果。
[0004] 由上可知,现有的调度方法存在调度效果不佳的技术问题。

发明内容

[0005] 有鉴于此,本发明提供了一种基于可变任务窗的AGV动态调度方法及装置,用以解决或者至少部分解决现有的调度方法存在调度效果不佳的技术问题。
[0006] 本发明第一方面提供了一种基于可变任务窗的AGV动态调度方法,包括:
[0007] 步骤S1:获取当前任务,将当前任务加入第一任务窗;
[0008] 步骤S2:将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度;
[0009] 步骤S3:判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗;
[0010] 步骤S4:对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
[0011] 基于同样的发明构思,本发明第二方面提供了一种基于可变任务窗的AGV动态调度装置,包括:
[0012] 获取模,用于获取当前任务,将当前任务加入第一任务窗;
[0013] 第一调度模块,用于将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度;
[0014] 合并模块,用于判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗;
[0015] 第二调度模块,用于对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
[0016] 基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面的所述的方法。
[0017] 本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0018] 在本发明提供的基于可变任务窗的AGV动态调度方法,首先获取当前任务,并将当前任务加入第一任务窗,然后将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度,也就是可以将AGV调度中的任务分为当前任务以及新增任务两部分,在没有新增任务时仅对当前任务窗中的任务进行调度,在出现新增任务时,将尚未完成的任务与新增任务结合成为一个新的第二任务窗,把第二任务窗作为当前任务窗进行调度优化。从而可以将实时动态复杂调度转变为一系列任务数量稳定的任务窗集,以每个任务窗集中的相对最优保证总体动态调度优化的最优,不仅能够实现实时调度,并且对于路径障碍较少的立体仓库的AGV调度时也能起到良好的调度优化效果。解决了现有的调度方法存在调度效果不佳的技术问题。
[0019] 进一步地,本发明提供的调度方法中,采用改进的遗传算法来求解任务解序列,设置了新的交叉算子和新的变异算子,通过父代与子代竞争产生下一计算父代的方式,可以避免优秀个体被交叉变异操作淘汰出去,从而可以得到较优的任务解序列,从而达到优化效果。附图说明
[0020] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1为一种实施例中基于可变任务窗的AGV动态调度方法的流程图
[0022] 图2一种实施例中当前任务窗内的调度优化流程图;
[0023] 图3为一种实施例中任务窗集实现动态调度的流程图;
[0024] 图4为一种实施例中的初始种群的示意图;
[0025] 图5为一种实施例中的单次交叉过程的示意图;
[0026] 图6为一种实施例中的单次变异过程的示意图;
[0027] 图7为本一种实施例中任务窗变更示意图;
[0028] 图8为一种实施例中基于可变任务窗的AGV动态调度装置的结构框图
[0029] 图9为本发明实施例中计算机可读存储介质的结构图。

具体实施方式

[0030] 本发明提供了一种基于可变任务窗的AGV动态调度方法及装置,其中的方法是基于可变任务窗的直达式立体仓库动态AGV调度优化方法,用以改善现有的调度方法存在调度效果不佳的技术问题,从而实现优化调度结果的技术效果。
[0031] AGV调度问题的描述为:n辆AGV执行m个任务,每辆AGV小车需要执行哪些任务,这些任务按照什么顺序执行,在满足约束条件的情况下达到最小化任务时间的目的。对于立体仓库中每辆AGV小车需要执行哪些任务,这些任务按照什么顺序执行;当一批任务还未完成时新的任务出现之后又该如何调度,是需要解决的问题。本发明的方法,通过采用改进的遗传算法进行对AGV小车调度问题的求解,对于实时监控的动态调度,从而解决每辆AGV小车需要执行哪些任务以及这些任务按照什么顺序执行的问题,并且采用基于可变任务窗的调度方式,将任务分成一系列任务集块(即任务窗)的形式,对每一个任务窗进行调度优化,所有任务窗结合起来实现动态的调度,从而解决当一批任务还未完成时新的任务出现之后如何调度的问题。
[0032] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 实施例一
[0034] 本实施例提供了一种基于可变任务窗的AGV动态调度方法,请参见图1,该方法包括:
[0035] 首先执行步骤S1:获取当前任务,将当前任务加入第一任务窗。
[0036] 具体来说,本实施方式中的调度方法应用与直达式立体仓库中,不同于普通立体仓库,直达式立体仓库中AGV小车在空载时可以在货架下面自由行走,AGV作业时更为方便。当前任务可以根据任务分配或者给定的时间来判断,当前任务的数量根据具体的应用情况设定,第一任务窗即为一种任务集块。
[0037] 然后执行步骤S2:将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度。
[0038] 具体来说,当前任务窗即为需要调度的任务窗,通过遗传算法的方式可以对当前任务的调度转化为交叉和变异的过程,从而得到第一解序列。
[0039] 在一种实现方式中,步骤S2具体包括:
[0040] 步骤S2.1:获取当前任务窗中的任务对应的货位坐标及AGV的坐标信息。
[0041] 具体来说,直达式立体仓库具有规整的形状,每个货位横竖排列,建立坐标系之后每个货位对应一个坐标,需要执行的任务即为任务对应的货位坐标,此外还需要AGV的初始坐标。AGV(Automated Guided Vehicle自动引导小车)是一种装备有电磁或光学等自动导引装置,也可以说是一个用来运输的移动机器人,作用是把货物从A处(物料中心)运到B(直达式立体仓库的货位)处。
[0042] 步骤S2.2:对当前任务窗中的任务对应的货位坐标、AGV的坐标信息进行编码。
[0043] 具体来说,由于建立坐标系后,每个货位点对应的坐标都是整数,因而采用十进制编码方式对坐标信息进行编码,以存储坐标信息。
[0044] 步骤S2.3:根据目标函数设置适应度函数,其中,目标函数为
[0045] 其中,Si表示每辆AGV的空载行程,
[0046] 适应度函数为:
[0047]
[0048] 其中,f为目标函数值,ratio表示所有AGV小车中空载行程最大的AGV与空载行程最小的AGV之间的差值对适应度函数的影响系数,
[0049]
[0050] 其中,Max表示所有小车中的最大空行程,Min表示所有AGV小车中的最小空行程,AGVQuantity表示所有AGV小车的数量,ChromosomeLength表示染色体中的基因长度,也是任务数量,染色体上的每一个基因表征一个货位坐标,每一条染色体表示一种任务解序列。
[0051] 在具体的实施过程中,将所有任务的坐标信息(货位坐标)按照对应顺序。每个个体的染色体长度即为所有需要执行的任务的数量,染色体上的每一个基因表征一个货位坐标,每一条染色体代表一种任务序列,通过遗传算法计算之后得到一条适应度最高的任务解序列(即第一解序列),此任务序列即为AGV小车所需要输出的近似最优解序列。
[0052] 在一种实施方式中,为了保证任务数不能整除AGV数量时也能正确调度,可以设定调度条件,并结合适应度函数,得到最终的调度结果。其中,调度条件具体为:当任务数量能够整除AGV小车数量时,每辆AGV小车执行相同数量的任务,当任务数量不能整除AGV小车数量时,所除得的余数量小车执行其商加一的任务数量,剩下的小车执行与商数相同的任务数量。
[0053] 举例来说,例如有17个任务,3辆AGV,则有两辆AGV执行6个任务,一辆AGV执行5个任务。
[0054] 其中,根据第一解序列进行AGV调度,可以通过下述方式来实现:AGV按照输出的解序列进行任务的执行,例如有15个任务,3辆AGV,那么解序列中前五个任务由AGV1按顺序执行,随后的五个任务由AGV2按顺序执行,最后五个任务由AGV3按顺序执行。
[0055] 通过上述技术方案,设计出满足目标函数要求的适应度函数,则可以对种群内所有个体进行适应度计算,选择的适应度函数在保证每辆小车的空行程相差不大的情况下使得所有AGV小车空行程之和最短,进而使得作业时间最短。
[0056] 步骤S2.4:基于适应度函数对个体进行适应度计算,对高适应度的个体进行可重复选择;
[0057] 具体来说,为了保证当前父代中的优秀个体能够较好的保存下来并生存到下一代,本实施方式将当前计算时的所有父代与子代进行适应度大小比较,按照适应度的大小进行从高到低的排序,选择适应度满足预设范围的个体作为下一次循环计算的父代prep。通过该方案,可以筛选出适应度相对较高的可重复个体。
[0058] 步骤S2.5:在选择出来的相邻父代中,判断是否符合第一预设条件,若符合,则按照交叉算子进行交叉操作,若不符合,则保留原基因不变。
[0059] 具体来说,第一预设条件可以根据实际情况进行设置,举例来说,可以设置预设交叉率,例如设置为0.8、0.85、0.9等等,以0.8为例,其表示染色体中80%的基因进行交叉。具体的实现过程中,可以通过系统产生一个0到1的随机数,当该随机数小于预设交叉率时,则是符合第一预设条件,则进行按照交叉算子进行交叉操作,否则不进行交叉操作。
[0060] 步骤S2.6:判断是否符合第二预设条件,若符合,则按照变异算子进行变异操作,若否,则保留原基因不变。
[0061] 具体来说,第二预设条件可以根据实际情况进行设置,举例来说,可以设置预设变异率,例如0.15、0.1等等,以0.1为例,系统产生一个0到1的随机数,随机数小于预设变异率时则进行变异操作,否则不进行变异操作。
[0062] 步骤S2.7:在当前所有父代与子代中,基于适应度函数对所有个体进行适应度计算,所有父代与子代竞争,将适应度符合预设范围的个体作为新的父代。
[0063] 具体来说,预设范围可以根据种群大小进行设置,举例来说,父代为m个,子代为m个,在父代与子代进行竞争时,对父代与子代进行适应度排序,即对2m个个体进行适应度从高到低进行排序,将前m个个体作为新的父代。此时的预设范围即为适应度值排在前m的个体,通过将适应度符合预设范围的个体作为新的父代,可以保证当前父代中的优秀个体基因不会被淘汰出整个种群,从而可以保证调度结果的优化。
[0064] 步骤S2.8:判断当前的代数是否小于预设遗传代数,如果是,则执行步骤S2.4,如果否,则输出计算结果,将其作为第一解序列。
[0065] 具体来说,预设遗传代数可以根据实际情况进行设置,当遗传算法迭代到足够的次数之后即输出结果,输出的结果是一个任务解序列,其中,第一解序列中包括各AGV需要执行的任务以及执行任务的顺序。
[0066] 步骤S2.9:根据第一解序列进行AGV调度。
[0067] 具体来说,根据第一解序列中的任务数量、执行顺序,则可以进行调度。
[0068] 为了更清楚地说明本发明中的调度方法,请参见图2,为当前任务窗内的调度优化流程图,具体包括如下流程:
[0069] 1、获取立体仓库中的任务货位信息及AGV的坐标信息;
[0070] 2、对所有坐标信息进行编码,得到父代prep,并根据目标函数设置适应度函数;
[0071] 3、对所有父代进行适应度计算,选择高适应度的个体;
[0072] 4、在选择出来的相邻父代中,判断是否需要进行交叉操作,若是,则按照交叉算子进行交叉操作得到prep’;若否,则保留原基因不变,prep’=prep;
[0073] 5、判断时候需要进行变异操作,若是,则按照变异算子进行变异操作得到prep”,若否,则保留原基因不变,prep”=prep’;
[0074] 6、子代next即为prep”,在当前所有父代与子代中,
[0075] 7、比较所有prep与next的适应度,将适应度符合预设范围的个体作为新的父代prep;
[0076] 8、判断当前迭代次数是否小于遗传代数,如果小于则返回步骤3,否则执行步骤9[0077] 9、得到相对最优解,即第一解序列。
[0078] 在对当前任务窗进行调度后,执行步骤S3:判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗。
[0079] 具体来说,当当前任务窗的任务未执行完,又出现新的任务时,则将未完成的任务与新增任务合并为第二任务窗。
[0080] 再执行步骤S4:对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
[0081] 具体来说,对第二任务窗中的任务采用遗传算法进行计算的方式与步骤S2类似。
[0082] 在一种实施方式中,步骤S4具体包括:
[0083] 更新第二任务窗集中的任务坐标信息以及AGV初始坐标信息,其中,AGV初始坐标信息为AGV最后执行的任务坐标;
[0084] 根据更新后的任务坐标信息以及AGV初始坐标信息,采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度。
[0085] 具体来说,可以根据任务的给定时间顺序区分当前任务以及新增任务,其中,当前任务又分为已经完成的任务、正在完成的任务以及未完成的任务。请参见图3,为任务窗集实现动态调度的流程图,在没有新增任务时仅对当前任务窗进行调度;在出现新增任务时,清除任务序列、变更任务窗以及更新AGV的初始位置进行重新调度。也就是将尚未完成的任务与新增任务结合成为一个新的任务窗,把此任务窗作为当前任务窗进行调度优化。每次出现新增任务时,均重复上述操作,实现一个完整的动态调度优化。通过对所有任务窗的调度优化,将实时动态调度的复杂问题转化成了一系列单独且离散的区域任务窗集调度优化问题。
[0086] 请参见图7,为一种任务窗变更示意图,在调度当前任务窗1时出现新增任务1之后,清除任务解序列,同时更新任务列表以及AGV初始位置,将当前任务窗1中的尚未完成的任务与新增任务1结合成一个新的任务窗,并将此任务窗设为当前任务窗2,系统再次对当前任务窗2进行调度优化。同样的在出现新增任务2之后,系统清除任务解序列,同时更新任务列表以及AGV初始位置,系统将当前任务窗2中的尚未完成的任务与新增任务2结合成一个新的任务窗,并将此任务窗设为当前任务窗3,系统再次对当前任务窗3进行调度优化。如此反复,直到所有任务均执行完毕,实现整个优化过程中的动态调度过程。
[0087] 在一种实施方式中,步骤S2.5中的交叉算子具体包括:
[0088] 在父代A中随机选择一个基因的位置a,该基因对应的任务为m;
[0089] 在父代B中搜索该任务m所对应的基因位置b;
[0090] 将父代A中位置a和位置b的对应基因互换位置,将父代B中位置a和位置b的基因互换位置;
[0091] 判断互换操作次数是否达到基因个数,如果未达到,则执行在父代A中随机选择一个基因的位置的步骤,如果达到,则子代为经过多次基因互换的染色体。
[0092] 具体来说,如图4所示,在初始状态,以任务数为10,种群大小为6作为一个示例并假定初始种群。初始种群中所有个体均为随机排列顺序的父代prep。在初始种群产生之后,依次使用适应度函数计算种群中所有个体的适应度,适应度函数通过目标函数进行选取。计算完毕之后采用轮盘赌的形式选取出可重复的与种群数量相同的个体。适应度高的个体所占轮盘范围大,所选择出来的概率大,将基因遗传给下一代的概率就大。
[0093] 在本实施例中,如图5所示,通过轮盘赌的形式选取出个体之后,进行遗传算法中的交叉操作。本发明所设计的选择算子结合了二进制编码方式中的均匀交叉及十进制编码方式中的部分映射交叉,在系统产生的随机数判断需要进行交叉操作时,在父代Ch5中随机搜索一个基因位置a,所对应的基因为A,在父代Ch6中搜索到A基因所对应的位置b,分别将父代Ch5与父代Ch6中位置a、b所在的基因互换位置,在重复执行与基因个数数量相同的次数之后,所得到的染色体即为完整交叉操作之后的个体prep’。
[0094] 在一种实施方式中,步骤S2.5中的变异算子具体包括:
[0095] 在所选定需要进行变异操作的染色体中随机产生两个不同的随机数c和d,其中,c和d的数值小于基因总个数;
[0096] 将随机数c对应的基因与随机数d对应的基因位置进行互换;
[0097] 判断互换操作次数是否达到基因个数,如果未达到,则执行随机产生随机数的步骤,如果达到,则将位置互换后的染色体作为变异之后的子代染色体。
[0098] 具体来说,如图6所示,在系统产生的随机数判断需要进行变异操作时,在父代染色体Ch6中随机搜索两个基因位置c、d,所对应的基因分别为J、B,将基因J、B互换位置,即为执行一次变异操作,在重复执行与基因个数数量相同的次数之后,所得到的染色体即为完整变异操作之后的个体prep”。通过改进的遗传算法可以进行多AGV任务的分配与排序,达到优化效果。
[0099] 本发明一方面提供了一种改进的遗传算法,包括新的交叉算子,新的变异算子,并通过父代与子代竞争产生下一计算父代的方式避免优秀个体被交叉变异操作淘汰出去。另一方面提供了一种可变任务窗的调度形式,将实时动态复杂调度转变为一系列任务数量稳定的任务窗集,以每个任务窗集中的相对最优保证总体动态调度优化的最优。这种任务窗形式的调度方法不仅能够用于实时调度,同时对于计算能不太强的计算机计算某些大批量任务的调度时也能起到比较良好的优化效果。
[0100] 基于同一发明构思,本申请还提供了与实施例一中一种基于可变任务窗的AGV动态调度方法的装置,详见实施例二。
[0101] 实施例二
[0102] 本实施例提供了一种基于可变任务窗的AGV调度方法的装置,请参见图8,该装置包括:
[0103] 获取模块801,用于获取当前任务,将当前任务加入第一任务窗;
[0104] 第一调度模块802,用于将第一任务窗作为当前任务窗,对当前任务窗中的任务采用遗传算法计算出第一解序列,根据第一解序列进行AGV调度;
[0105] 合并模块803,用于判断当前任务窗的任务是否执行完,如果未执行完,判断是否出现新增任务,如果出现,则将第一任务窗内未完成的任务与新增任务合并为第二任务窗;
[0106] 第二调度模块804,用于对第二任务窗中的任务采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度,重复执行步骤S3,直到当前任务窗的任务执行完。
[0107] 在一种实现方式中,第一调度模块802具体用于执行下述步骤:
[0108] 步骤S2.1:获取当前任务窗中的任务对应的货位坐标及AGV的坐标信息;
[0109] 步骤S2.2:对当前任务窗中的任务对应的货位坐标、AGV的坐标信息进行编码;
[0110] 步骤S2.3:根据目标函数设置适应度函数,其中,目标函数为
[0111] 其中,Si表示每辆AGV的空载行程,
[0112] 适应度函数为:
[0113]
[0114] 其中,f为目标函数值,ratio表示所有AGV小车中空载行程最大的AGV与空载行程最小的AGV之间的差值对适应度函数的影响系数,
[0115]
[0116] 其中,Max表示所有小车中的最大空行程,Min表示所有AGV小车中的最小空行程,AGVQuantity表示所有AGV小车的数量,ChromosomeLength表示染色体中的基因长度,也是任务数量,染色体上的每一个基因表征一个货位坐标,每一条染色体表示一种任务解序列;
[0117] 步骤S2.4:基于适应度函数对个体进行适应度计算,对高适应度的个体进行可重复选择;
[0118] 步骤S2.5:在选择出来的相邻父代中,判断是否符合第一预设条件,若符合,则按照交叉算子进行交叉操作,若不符合,则保留原基因不变;
[0119] 步骤S2.6:判断是否符合第二预设条件,若符合,则按照变异算子进行变异操作,若否,则保留原基因不变;
[0120] 步骤S2.7:在当前所有父代与子代中,基于适应度函数对所有个体进行适应度计算,所有父代与子代竞争,将适应度符合预设范围的个体作为新的父代;
[0121] 步骤S2.8:判断当前的代数是否小于预设遗传代数,如果是,则执行步骤S2.4,如果否,则输出计算结果,将其作为第一解序列;
[0122] 步骤S2.9:根据第一解序列进行AGV调度。
[0123] 在一种实现方式中,步骤S2.2中,采用十进制编码方式进行编码以存储坐标信息。
[0124] 在一种实现方式中,交叉算子具体包括:
[0125] 在父代A中随机选择一个基因的位置a,该基因对应的任务为m;
[0126] 在父代B中搜索该任务m所对应的基因位置b;
[0127] 将父代A中位置a和位置b的对应基因互换位置,将父代B中位置a和位置b的基因互换位置;
[0128] 判断互换操作次数是否达到基因个数,如果未达到,则执行在父代A中随机选择一个基因的位置的步骤,如果达到,则子代为经过多次基因互换的染色体。
[0129] 在一种实现方式中,变异算子具体包括:
[0130] 在所选定需要进行变异操作的染色体中随机产生两个不同的随机数c和d,其中,c和d的数值小于基因总个数;
[0131] 将随机数c对应的基因与随机数d对应的基因位置进行互换;
[0132] 判断互换操作次数是否达到基因个数,如果未达到,则执行随机产生随机数的步骤,如果达到,则将位置互换后的染色体作为变异之后的子代染色体。
[0133] 在一种实现方式中,所述装置还包括分类模块,用于:
[0134] 记录每个任务的给定时间;
[0135] 根据给定时间,判断任务为当前任务还是新增任务。
[0136] 在一种实现方式中,第二调度模块804具体用于:
[0137] 更新第二任务窗集中的任务坐标信息以及AGV初始坐标信息,其中,AGV初始坐标信息为AGV最后执行的任务坐标;
[0138] 根据更新后的任务坐标信息以及AGV初始坐标信息,采用遗传算法计算出第二解序列,根据第二解序列进行AGV调度。
[0139] 由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于可变任务窗的AGV动态调度方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置,的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置,都属于本发明所欲保护的范围。
[0140] 施例三
[0141] 基于同一发明构思,本申请还提供了一种计算机可读存储介质900,请参见图9,其上存储有计算机程序911,该程序被执行时实现实施例一中的方法。
[0142] 由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于可变任务窗的AGV动态调度方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
[0143] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0144] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
[0145] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0146] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈