一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

提升机调度方法、装置、存储介质及电子设备与流程

2022-06-05 03:00:57 来源:中国专利 TAG:


1.本公开涉及物流仓储领域,具体涉及一种提升机调度方法、提升机调度装置、存储介质及电子设备。


背景技术:

2.提升机(well elevating conveyor/elevator)是通过改变势能进行运输的大型机械设备,通常作为多穿梭车系统中的货物输送设备,可以在垂直上下通道上载运货箱升降的平台或半封闭平台,在不同位置进行取放货操作,实现货箱出入库作业。
3.一般提升机调度方法,以可用工位数量为上限,查找附近的任务并执行。这种通过就近原则选择任务的方法仅实现提升机任务调度的局部最优,难以实现全局最优。另外,随着提升机可用工位数量的增加,多个同时执行的任务之间由于缺少需要精确的路径规划,往往造成提升机空跑,降低提升机的效率和多层工位的利用率。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.本公开的目的在于提供一种提升机调度方法、提升机调度装置、存储介质及电子设备,旨在提高多载物工位的提升机调度路径优化效率。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.根据本公开实施例的一方面,提供了一种提升机调度方法,包括:基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务;其中,所述提升机具有多个载物工位;获取所述提升机的初始位置以及各所述待规划任务分别对应的起点和终点;根据所述提升机的载物工位定义提升机的状态函数和运行成本函数,以根据所述状态函数和所述运行成本函数得到状态转移方程;基于所述初始位置和所述起点和终点根据所述状态转移方程进行迭代更新得到所述提升机的行驶路径。
8.根据本公开的一些实施例,基于前述方案,所述基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务,包括:对所述任务进行优先级梯度排序,得到各优先级分别对应的任务;按照优先级由高至低依次从各优先级对应的任务中选取出预设数量个任务作为待规划任务。
9.根据本公开的一些实施例,基于前述方案,所述对所述任务进行优先级梯度排序,包括:基于各任务的业务级别确定第一优先级对应的任务;根据除所述第一优先级对应的任务之外的各任务对应的货箱位置以确定第二优先级对应的任务;计算除所述第一优先级和所述第二优先级对应的任务之外的各任务的等待时长以确定第三优先级对应的任务;将未确定优先级的任务确定为第四优先级对应的任务。
10.根据本公开的一些实施例,基于前述方案,所述按照优先级由高至低依次从各优
先级对应的任务中选取出预设数量个任务作为待规划任务,包括:初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量;按照待选任务集合中任务的优先级由高至低确定目标优先级;在所述目标优先级对应的任务数量小于所述待选任务数量时,将所述目标优先级对应的任务全部选取;或者在所述目标优先级对应的任务数量大于所述待选任务数量时,从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务;基于选取的任务更新所述待选任务集合、所述已选任务集合以及所述待选任务数量;重复上述确定目标优先级、选取任务以及更新的步骤,直至所述待选任务数量为零时,将所述已选任务集合中的任务作为待规划任务。
11.根据本公开的一些实施例,基于前述方案,所述从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务,包括:在已选任务集合中存在非成组任务时,计算所述非成组任务与所述目标优先级对应的任务之间的相似度,以根据相似度选取与待选任务数量匹配个任务;或者在已选任务集合中不存在非成组任务时,根据所述提升机的当前位置信息从目标优先级对应的任务中选取一个任务,并计算该选取的任务与所述目标优先级对应的除该选取的任务之外的所有任务之间的相似度,以根据相似度选取与与待选任务数量匹配个任务。
12.根据本公开的一些实施例,基于前述方案,在所述提升机存在执行中的任务时,在所述初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量之后,所述方法还包括:将所述执行中的任务加入所述已选任务集合;根据所述执行中的任务的数量更新所述待选任务数量。
13.根据本公开的一些实施例,基于前述方案,所述根据所述提升机的载物工位定义提升机的状态函数,包括:根据所述提升机的位置、载物工位、待规划任务、各所述待规划任务的执行状态以及各所述待规划任务的载物工位定义所述状态函数为:
14.sk=[(p,f,i),(t1,f1,t2,f2,...,tn,fn)];
[0015]
其中,p为提升机的位置;f为提升机的载物工位;i为第i个待规划任务;ti为第i个待规划任务的执行状态,所述执行状态包括执行完成、执行中和未执行;fi为第i个待规划任务使用的载物工位,n为待规划任务的总数。
[0016]
根据本公开的一些实施例,基于前述方案,所述根据所述提升机的载物工位定义提升机的运行成本函数,包括:根据提升机两个状态之间的运行距离和已使用载物工位的运行距离计算所述提升机的运行成本以定义所述运行成本函数为:
[0017]
c(sk,s
k 1
)=x
pp

×
(d
pp

α
×
l
pp

×dpp

);
[0018]
其中,c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;p和p’分别为提升机由状态sk到状态s
k 1
运行的起点和终点;x
pp

为表示p至p’之间是否存在路径的0-1变量;d
pp

为提升机由p运行至p’的运行距离;l
pp

为提升机由p运行至p’的过程中已使用载物工位的数量;α为权重系数。根据本公开的一些实施例,基于前述方案,所述状态转移方程为:
[0019]
c(sk)=min{c(sk,s
k 1
) c(s
k 1
)};
[0020]
其中,c(sk)为提升机在状态sk时的运行成本;c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;c(s
k 1
)为提升机在状态s
k 1
时的运行成本。
[0021]
根据本公开实施例的第二方面,提供了一种提升机调度装置,包括:选取模块,用于基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务;其中,所述提
升机具有多个载物工位;获取模块,用于获取所述提升机的初始位置以及各所述待规划任务分别对应的起点和终点;建模模块,用于根据所述提升机的载物工位定义提升机的状态函数和运行成本函数,以根据所述状态函数和所述运行成本函数得到状态转移方程;求解模块,用于基于所述初始位置和所述起点和终点根据所述状态转移方程进行迭代更新得到所述提升机的行驶路径。
[0022]
根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的提升机调度方法。
[0023]
根据本公开实施例的第四方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的提升机调度方法。
[0024]
本公开示例性实施例可以具有以下部分或全部有益效果:
[0025]
在本公开的一些实施例所提供的技术方案中,首先根据当前生产环境下待执行任务的优先级选取一部分任务用于提升机的调度规划,然后利用动态规划的方法,建立状态函数得到状态转移方程,并通过优化提升机的运行成本来进行迭代求解,最终得到提升机的行驶路径完成调度规划。本公开提供的提升机调度方法,一方面能够调整依据当前生产环境的需要调整任务执行的顺序,优先执行优先级高的任务,使得提升机执行任务与当前生产需求相适应且收益最大化;另一方面,为具有多个载物工位的提升机运行的路径规划提供了求解方法,能够实现一定任务数量内的提升机运行路径的全局最优,同时提高提升机载物工位的利用率,减少提升机空载时间,节省运行成本。
[0026]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0027]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0028]
图1示意性示出本公开示例性实施例中一种提升机调度方法的流程示意图;
[0029]
图2示意性示出本公开示例性实施例中一种优先级梯度排序方法的流程示意图;
[0030]
图3示意性示出本公开示例性实施例中一种选取待规划任务方法的流程示意图;
[0031]
图4示意性示出本公开示例性实施例中一种提升机调度方法的流程示意图;
[0032]
图5示意性示出本公开示例性实施例中一种提升机调度装置的组成示意图;
[0033]
图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图;
[0034]
图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
具体实施方式
[0035]
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加
全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
[0036]
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
[0037]
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0038]
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0039]
传统技术中,在进行提升机任务调度,往往根据提升机可用的载物工位为上限,通过就近原则查找提升机附近的任务执行。随着提升机层数的增加,逻辑复杂度增加,任务调度难度随之上升,并且多个同时执行的任务之间由于缺少需要精确的路径规划,往往造成提升机空跑,降低了提升机的效率和多层工位的利用率。
[0040]
因此,本公开提供一种提升机调度方法,能够实现一定任务数量内提升机的路径全局最优,减少提升机空载,提高多层工位的利用率。
[0041]
需要说明的是,本公开主要针对是具有多个载物工位的提升机,即提升机在运行过程中可以同时携带多个货箱进行移动。与之相对应的就是单载物工位的提升机,由于单载物工位的提升机运行过程中只能携带一个货箱,因此在确定了任务执行顺序之后便可直接得到提升机的行驶路径,所以单载物工位提升机的调度优化问题多集中对任务执行顺序的规划中。而具有多个载物工位的提升机在执行过程中可以并行执行多个任务,为了减少优化出入库效率,通常可以对提升机执行多个任务时候的形式路径规划,以达到使用较短的距离和时间完成这些任务。
[0042]
在以提升机为主要运输设备的仓储系统中,货物通常被存储于货箱之中,货箱被放置在自动化立体仓库中,在货物出入库时,提升机穿行于货架之间的巷道中,自动完成货箱的取、放工作。
[0043]
以下对本公开实施例的技术方案的实现细节进行详细阐述。
[0044]
图1示意性示出本公开示例性实施例中一种提升机调度方法的流程示意图。如图1所示,该提升机调度方法包括步骤s101至步骤s104:
[0045]
步骤s101,基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务;其中,所述提升机具有多个载物工位;
[0046]
步骤s102,获取所述提升机的初始位置以及各所述待规划任务分别对应的起点和终点;
[0047]
步骤s103,根据所述提升机的载物工位定义提升机的状态函数和运行成本函数,以根据所述状态函数和所述运行成本函数得到状态转移方程;
[0048]
步骤s104,基于所述初始位置和所述起点和终点根据所述状态转移方程进行迭代更新得到所述提升机的行驶路径。
[0049]
在本公开的一些实施例所提供的技术方案中,首先根据当前生产环境下待执行任务的优先级选取一部分任务用于提升机的调度规划,然后利用动态规划的方法,建立状态函数得到状态转移方程,并通过优化提升机的运行成本来进行迭代求解,最终得到提升机的行驶路径完成调度规划。本公开提供的提升机调度方法,一方面能够调整依据当前生产环境的需要调整任务执行的顺序,优先执行优先级高的任务,使得提升机执行任务与当前生产需求相适应且收益最大化;另一方面,为具有多个载物工位的提升机运行的路径规划提供了求解方法,能够实现一定任务数量内的提升机运行路径的全局最优,同时提高提升机载物工位的利用率,减少提升机空载时间,节省运行成本。
[0050]
下面,将结合附图及实施例对本示例实施方式中的提升机调度方法的各个步骤进行更详细的说明。
[0051]
在步骤s101中,基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务;其中,所述提升机具有多个载物工位。
[0052]
在本公开的一个实施例中,提升机具有多载物工位,就可以同时执行多个任务,考虑到模型求解的复杂度,可以先选取一定数量的任务进行调度规划,进而实现这些选定任务内的提升机路径全局最优。
[0053]
因此,需要从提升机待执行的任务中选取预设数量个任务作为待规划任务。具体地,可以根据任务的优先级选取较为重要的任务优先进行规划。
[0054]
进一步地,执行步骤s101具体包括以下两个步骤:
[0055]
步骤(一)、对所述任务进行优先级梯度排序,得到各优先级分别对应的任务;
[0056]
步骤(二)、按照优先级由高至低依次从各优先级对应的任务中选取出预设数量个任务作为待规划任务。
[0057]
对于步骤(一),图2示意性示出本公开示例性实施例中一种优先级梯度排序方法的流程示意图。参考图2所示,对任务进行优先级梯度排序具体包括以下步骤:
[0058]
步骤s201,基于各任务的业务级别确定第一优先级对应的任务;
[0059]
步骤s202,根据除所述第一优先级对应的任务之外的各任务对应的货箱位置以确定第二优先级对应的任务;
[0060]
步骤s203,计算除所述第一优先级和所述第二优先级对应的任务之外的各任务的等待时长以确定第三优先级对应的任务;
[0061]
步骤s204,将未确定优先级的任务确定为第四优先级对应的任务。
[0062]
具体而言,在本实施例中共设置四个优先级,将所有待执行的任务进行梯度排序,将其分配至这四个优先级阶梯中。
[0063]
在步骤s201中,操作人员可以利用控制台为重要的任务配置业务级别标签,所以可以将带有标签的任务的优先级确定为最高等级,即第一优先级对应的任务。
[0064]
在步骤s202中,当货架某层积压的出库货箱较多,那么这些出库任务优先执行,所以利用任务对应的货箱位置挑选高优的出库任务作为第二优先级的任务。
[0065]
出库任务对应的货箱位置所在层的拥挤性越高(或者称为货箱位置稀缺性越低),则具有更高的优先级,即出库任务优先级依据本层积压的待出库任务数确定。
[0066]
具体而言,设出库任务i所在层储位上待出库箱数为ai,各层储位上待出库箱数组成集合a,当ai超过集合a的预设阈值(例如75%)时,标记该任务i为高优任务,确定为第二
优先级对应的任务。
[0067]
需要说明的是,在确定第二优先级时需要去除掉第一优先级对应的任务,从剩余的任务中挑选优先执行的任务。
[0068]
在步骤s203中,任务等待时间越长,那么这些出库任务优先执行,所以利用任务的等待时长挑选高优的出库任务作为第三优先级的任务。
[0069]
具体而言,在任务产生时系统会为其打上时间标签,当选取任务时根据当前时间和任务产生的时间计算等待时长ti,所有待执行任务的等待时长组成集合t,当ti超过集合t的预设阈值(例如75%)时,标记该任务i为高优任务,确定为第三优先级对应的任务。
[0070]
需要说明的是,同步骤s202相同,在确定第三优先级时需要去除掉第一和第二优先级对应的任务,从剩余的任务中挑选优先执行的任务。
[0071]
在步骤s204中,对于剩余的没有确定优先级的任务则自动归类为第四优先级。
[0072]
对于步骤(二),图3示意性示出本公开示例性实施例中一种选取待规划任务方法的流程示意图。参考图3所示,选取待规划任务具体包括以下步骤:
[0073]
步骤s301,初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量;
[0074]
步骤s302,按照待选任务集合中任务的优先级由高至低确定目标优先级;
[0075]
步骤s303,在所述目标优先级对应的任务数量小于所述待选任务数量时,将所述目标优先级对应的任务全部选取;或者
[0076]
步骤s304,在所述目标优先级对应的任务数量大于所述待选任务数量时,从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务;
[0077]
步骤s305,基于选取的任务更新所述待选任务集合、所述已选任务集合以及所述待选任务数量;
[0078]
步骤s306,重复上述确定目标优先级、选取任务以及更新的步骤,直至所述待选任务数量为零时,将所述已选任务集合中的任务作为待规划任务。
[0079]
具体地,在选取任务时设置两个集合,一个为可以用于选择的待执行的任务组成的待选任务集合w,另一个为选取的任务组成的已选任务集合u,同时,设置待选任务数量n。待执行的任务待选任务集合w、已选任务集合u以及待选任务数量n在每一轮任务选取后都会发生改变。
[0080]
需要说明的是,在执行步骤301至步骤306之前,可以首先判断一下w与n之间的数量关系。若|w|≤n,那么u=u∪w,即待执行的任务小于需要选取的数量时就对全部的待执行的任务进行规划。而反之,即|w|>n时,则需要从w中按照优先级依次选取n个任务。
[0081]
接下来对选取n个任务的步骤301至步骤306分别进行详细解释。
[0082]
在步骤s301中,初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量。
[0083]
首先,初始化待选任务集合w和已选任务集合u,在起始状态下,待选任务集合w中包括所有待执行的任务,已选任务集合u为空集。
[0084]
接着配置待选任务数量n的初始值。假设本次提升机调度需要选取n个任务来规划,在提升机为空载状态时,也就是没有执行中的任务,那么待选任务数量n的初始值为预设数量n。
[0085]
在步骤s302中,按照待选任务集合中任务的优先级由高至低确定目标优先级。
[0086]
具体地,预先已确定了各任务对应的优先级,将当前待选任务集合w中最高的优先级确定为目标优先级。在第一轮选取时,待选任务集合w包括所有的任务,那么确定的目标优先级为第一优先级,而假如在后续的任务选取中,第一优先级的任务全部被选取,那么此时待选任务集合w中不包括被选取的任务,那么目标优先级就可能是第一优先级之后的第二优先级。
[0087]
接下来,对目标优先级对应的任务数量与待选任务数量n之间进行比较,以按照不同的方法进行任务选取。
[0088]
在步骤s303中,在所述目标优先级对应的任务数量小于所述待选任务数量时,将所述目标优先级对应的任务全部选取。
[0089]
具体地,目前待选任务数量为n,若该目标优先级对应的任务数量小于n,那么将该目标优先级的所有任务加入到已选任务集合u,即该目标优先级对应的任务全部选取。
[0090]
在步骤s304中,在所述目标优先级对应的任务数量大于所述待选任务数量时,从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务。
[0091]
另一种情况是,当该目标优先级对应的任务数量大于n时,此时就要从该目标优先级对应的任务中选择n个。在实际应用中,为了提高提升机的执行效率以及减少空载率,通常会安排相似的任务进行合并执行。
[0092]
进一步地,在步骤s304中,所述从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务,包括:在已选任务集合中存在非成组任务时,计算所述非成组任务与所述目标优先级对应的任务之间的相似度,以根据相似度选取与待选任务数量匹配个任务;或者在已选任务集合中不存在非成组任务时,根据所述提升机的当前位置信息从目标优先级对应的任务中选取一个任务,并计算该选取的任务与所述目标优先级对应的除该选取的任务之外的所有任务之间的相似度,以根据相似度选取与与待选任务数量匹配个任务。
[0093]
其中,非成组任务时相对于成组任务来说的。任务共涉及四种类型,包括出库向下任务、出库向上任务、入库向下任务以及入库向下任务,在创建任务时,任务的类型就已经确定了。如果同一类型任务的数量为提升机总载物工位数量的倍数,则称这些任务为成组任务,与之相对的则为费承租任务。
[0094]
举例来说,若提升机的总载物工位数量为3,出库向下的任务总数量为3,出库向上的任务总数量为1,则出库向下的3个任务为成组任务,出库向上的1个任务为非成组任务。
[0095]
若已选的任务中存在非成组任务,那么在选取任务时,则需要优先考虑将非成组任务变为成组任务以方便提升机执行任务。因此需要计算该目标优先级中所有任务与非成组任务的相似度,然后按照相似度由高至低依次选择n-个任务。
[0096]
其中,若有多个非成组任务(例如2个),那么需要计算目标优先级中所有任务(例如6个)与这多个非成组任务之间的相似度,然后从所有的相似度(即为2*6=12个)中由高到低进行任务选择。
[0097]
若已选的任务中不存在非成组任务,那么在选取任务时,不需要考虑之前已选取的任务,所以与不存在上一优先级的选取方法相同,首先依据提升机的当前位置就近选择1个任务,然后再通过该任务与其他任务之间的相似度由高至低依次选择n-1个任务。
[0098]
其中,在创建各任务时便已知任务的起点和终点,如i任务的起点为pi,终点为p
i’,那么任务i和任务j之间的相似度r
ij
如公式(1)所示:
[0099][0100]
在步骤s305中,基于选取的任务更新所述待选任务集合、所述已选任务集合以及所述待选任务数量。
[0101]
具体而言,将选取的任务从待选任务集合中去除,并添加至已选任务集合,然后根据选取的任务的数量更改待选任务数量。
[0102]
步骤s306,重复上述确定目标优先级、选取任务以及更新的步骤,直至所述待选任务数量为零时,将所述已选任务集合中的任务作为待规划任务。
[0103]
举个例子,如果优先级排序之后,第一优先级对应的任务有任务

、任务

、任务

共3个,而第二优先级对应的任务有任务

、任务

、任务

、任务

、任务

共5个,需要选取n=5个任务,选取任务的过程如下:
[0104]
首先,初始化待选任务集合w={















},已选任务集合为空集,待选任务数量n=n=5。
[0105]
然后,确定目标优先级为第一优先级,第一优先级对应的任务共有3个,3<5,所以将第一优先级的任务全选,此时,更新待选任务集合为w={









},已选任务集合为u={





},其中任务

和任务

未成组任务,任务

为非成组任务,待选任务数量n=5-3=2。
[0106]
之后,确定目标优先级为第二优先级,第二优先级对应的任务共有5个,5>2,那么需要从第二优先级的5个任务中选择2个任务。由于任务

为非成组任务,因此需要计算任务

与第二优先级中各任务之间的相似度,之后根据任务

与任务

、任务

、任务

、任务

、任务

的相似度x
34
、x
35
、x
36
、x
37
、x
38
的值从大到小依次选取2个相似度最高的任务,例如任务

和任务


[0107]
选取结束后,此时待选任务数量n=0,表示选取任务结束,已选任务集合u={









},那么待选任务集合w中的任务{





}将为未被选取的待执行任务,可以放在下一次规划的待选任务集合中。
[0108]
在本公开的一个实施例中,除了在提升机处于空闲时进行规划,还可以在执行任务的过程中实时进行规划。
[0109]
具体而言,在所述提升机存在执行中的任务时,在所述初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量之后,所述方法还包括:将所述执行中的任务加入所述已选任务集合;根据所述执行中的任务的数量更新所述待选任务数量。
[0110]
由于提升机有多个载物工位,所以可以同时执行多个出入库任务,如果目前提升机还有执行中的任务,比如载物工位上还有货箱需要入库,或者需要在此次调度取出目标货箱,此时就需要将执行中的任务加入到已选任务集合中。将执行中的任务组成任务集合为e,在初始化已选任务集合u之后,需要将执行中的任务添加至已选任务集合u中,即u=e。
[0111]
在步骤s102中,获取所述提升机的初始位置以及各所述待规划任务分别对应的起点和终点。
[0112]
具体来说,在规划之前,需要获取一些已知信息,包括提升机的初始位置和各个待规划任务对应的提升机运行的起点和终点。
[0113]
其中,提升机的位置主要由两个参数来确定,分别是提升机的位置和提升机的定位平台,这两个参数决定了提升机的哪个平台对着哪一层,也就确定了提升机的位置。在规划初始状态下,获取提升机的位置和定位平台信息便可得到初始位置。
[0114]
另外,在仓储系统中创建每一个任务i,都会添加该任务对应的提升机运行的起点和终点,即由那个位置运输到哪个位置。
[0115]
在步骤s103中,根据所述提升机的载物工位定义提升机的状态函数和运行成本函数,以根据所述状态函数和所述运行成本函数得到状态转移方程。
[0116]
具体而言,步骤s103中主要包括三个步骤:
[0117]
步骤(一)、定义提升机的状态函数;
[0118]
步骤(二)、定义提升机的运行成本函数;
[0119]
步骤(三)、构建状态转移方程;
[0120]
为方便描述,首先针对步骤s103中的变量进行介绍。
[0121]
i:待规划任务i的集合,其中|i|=n,共有n个待规划任务。
[0122]
p:提升机位置p的集合,其中|p|=2n 1,位置是指提升机运行所停留的位置,也可称之为停靠点,提升机从初始位置p开始,每一个任务都需要提升机将货箱从起点移动至终点,所以提升机调度n个任务,共需经历2n 1个停靠点。
[0123]
f:载物工位f集合,f=“1号载物工位”,“2号载物工位”,

}
[0124]
需要说明的是,虽然在规划任务之前已经知道提升机所需要停靠的点,但由于提升机在同时执行多个任务时,所以并不确定停靠点之间的执行顺序,需要进行精细的路径规划。
[0125]
进一步地,对于步骤(一)定义提升机的状态函数,包括:根据所述提升机的位置、载物工位、待规划任务、各所述待规划任务的执行状态以及各所述待规划任务的载物工位定义所述状态函数见公式(2)所示:
[0126]
sk=[(p,f,i),(t1,f1,t2,f2,...,tn,fn)]
ꢀꢀꢀꢀꢀꢀꢀ
(2)
[0127]
其中,p为提升机的位置;f为提升机的载物工位;i为第i个待规划任务;ti为第i个待规划任务的执行状态,所述执行状态包括执行完成、执行中和未执行,即ti∈{执行完成,执行中,未执行},i∈i;fi为第i个待规划任务使用的载物工位,即fi∈f,i∈i;n为待规划任务的总数。
[0128]
进一步地,对于步骤(二)定义提升机的运行成本函数,包括:根据提升机两个状态之间的运行距离和已使用载物工位的运行距离计算所述提升机的运行成本以定义所述运行成本函数为:
[0129]
c(sk,s
k 1
)=x
pp

×
(d
pp

α
×
l
pp

×dpp

)
ꢀꢀꢀꢀꢀ
(3)
[0130]
其中,c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;p和p’分别为提升机由状态sk到状态s
k 1
运行的起点和终点;x
pp

为表示p至p’之间是否存在路径的0-1变量,d
pp

为提升机由p运行至p’的运行距离;l
pp

为提升机由p运行至p’的过程中已使用载物工位的数量,也就是提升机执行中的任务数量;α为权重系数。
[0131]
实际上可以解释为提升机由状态sk到状态s
k 1
时已使用载物工位的运行距离,可以作为一种绕路程度的度量,α为该项的权重系数,α通常不为0,表示提升机在每个停靠点都会卸载或者装载该点涉及的所有货箱,一般恒定取0.1即可。
[0132]
进一步地,对于步骤步骤(三)构建状态转移方程,见公式(4)所示:
[0133]
c(sk)=min{c(sk,s
k 1
) c(s
k 1
)}
ꢀꢀꢀꢀ
(4)
[0134]
其中,c(sk)为提升机在状态sk时的运行成本;c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;c(s
k 1
)为提升机在状态s
k 1
时的运行成本。
[0135]
在步骤s104中,基于所述初始位置和所述起点和终点根据所述状态转移方程进行迭代更新得到所述提升机的行驶路径。
[0136]
步骤s104即动态规划求解的过程。动态规划中当前的状态往往依赖于前一阶段的状态和前一阶段的决策结果,例如我们知道了第k个阶段的状态sk,那么第k 1阶段的状态s
k 1
也就确定了,反之也是,知道了状态s
k 1
,可逆推出状态sk。
[0137]
通过已知的提升机初始位置以及各待规划任务的起点和终点,可以根据状态转移方程进行编程以进行动态规划问题求解,最终得到提升机在每一个阶段k对应的状态,每个阶段的状态包含了提升机要达到的位置,执行的任务,执行任务的载物台和任务执行的状态信息,所有阶段的这些信息串联起来,最终得到以提升机当前的初始位置为起点,针对所有已选的待规划任务的路径规划。
[0138]
图4示意性示出本公开示例性实施例中一种提升机调度方法的流程示意图。参考图4所示,主要包括以下步骤:
[0139]
步骤s401,输入信息。即包括提升机位置和定位平台、执行中的任务(如果有则输入,无则不输入)、待执行的任务以及任务的位置时长等信息;
[0140]
步骤s402,进行任务选择,即共选择n个待规划任务;
[0141]
步骤s403,进行动态规划。对这n个待规划任务按照状态转移方程进行提升机的路径规划;
[0142]
步骤s404,输出信息。输出得到n个待规划任务的规划结果,即提升机执行这n个任务的行驶路径,以及n个待规划任务之外的未规划任务。
[0143]
基于上述方法,本公开提供的提升机调度方法一方面根据优先级选取任务,能够依据当前生产环境的需要调整任务执行的顺序,使得提升机执行任务与当前生产需求相适应;另一方面可以实现一定任务数量内的路径全局最优,减少提升机空载,提高多层工位的利用率。
[0144]
图5示意性示出本公开示例性实施例中一种提升机调度装置的组成示意图,如图5所示,该提升机调度装置500可以包括选取模块501、获取模块502、建模模块503以及求解模块504。其中:
[0145]
选取模块501,用于基于提升机待执行的任务的优先级选取预设数量个任务作为待规划任务;其中,所述提升机具有多个载物工位;
[0146]
获取模块502,用于获取所述提升机的初始位置以及各所述待规划任务分别对应的起点和终点;
[0147]
建模模块503,用于根据所述提升机的载物工位定义提升机的状态函数和运行成本函数,以根据所述状态函数和所述运行成本函数得到状态转移方程;
[0148]
求解模块504,用于基于所述初始位置和所述起点和终点根据所述状态转移方程进行迭代更新得到所述提升机的行驶路径。
[0149]
根据本公开的示例性实施例,所述选取模块501包括排序单元和选取单元,排序单元用于对所述任务进行优先级梯度排序,得到各优先级分别对应的任务;选取单元用于按照优先级由高至低依次从各优先级对应的任务中选取出预设数量个任务作为待规划任务。
[0150]
根据本公开的示例性实施例,所述排序单元用于基于各任务的业务级别确定第一优先级对应的任务;根据除所述第一优先级对应的任务之外的各任务对应的货箱位置以确定第二优先级对应的任务;计算除所述第一优先级和所述第二优先级对应的任务之外的各任务的等待时长以确定第三优先级对应的任务;将未确定优先级的任务确定为第四优先级对应的任务。
[0151]
根据本公开的示例性实施例,所述选取单元用于初始化待选任务集合和已选任务集合,以及将待选任务数量的初始值配置为所述预设数量;按照待选任务集合中任务的优先级由高至低确定目标优先级;在所述目标优先级对应的任务数量小于所述待选任务数量时,将所述目标优先级对应的任务全部选取;或者在所述目标优先级对应的任务数量大于所述待选任务数量时,从所述目标优先级对应的任务中选取与所述待选任务数量匹配个任务;基于选取的任务更新所述待选任务集合、所述已选任务集合以及所述待选任务数量;重复上述确定目标优先级、选取任务以及更新的步骤,直至所述待选任务数量为零时,将所述已选任务集合中的任务作为待规划任务。
[0152]
根据本公开的示例性实施例,所述选取单元还用于在已选任务集合中存在非成组任务时,计算所述非成组任务与所述目标优先级对应的任务之间的相似度,以根据相似度选取与待选任务数量匹配个任务;或者在已选任务集合中不存在非成组任务时,根据所述提升机的当前位置信息从目标优先级对应的任务中选取一个任务,并计算该选取的任务与所述目标优先级对应的除该选取的任务之外的所有任务之间的相似度,以根据相似度选取与与待选任务数量匹配个任务。
[0153]
根据本公开的示例性实施例,所述选取单元还用于在所述提升机存在执行中的任务时,将所述执行中的任务加入所述已选任务集合;根据所述执行中的任务的数量更新所述待选任务数量。
[0154]
根据本公开的示例性实施例,所述建模模块503包括状态函数单元,用于根据所述提升机的位置、载物工位、待规划任务、各所述待规划任务的执行状态以及各所述待规划任务的载物工位定义所述状态函数为:
[0155]
sk=[(p,f,i),(t1,f1,t2,f2,...,tn,fn)];
[0156]
其中,p为提升机的位置;f为提升机的载物工位;i为第i个待规划任务;ti为第i个待规划任务的执行状态,所述执行状态包括执行完成、执行中和未执行;fi为第i个待规划任务使用的载物工位;n为待规划任务的总数。
[0157]
根据本公开的示例性实施例,所述建模模块503包括运行成本函数单元,用于根据提升机两个状态之间的运行距离和已使用载物工位的运行距离计算所述提升机的运行成本以定义所述运行成本函数为:
[0158]
c(sk,s
k 1
)=x
pp

×
(d
pp

α
×
l
pp

×dpp

);
[0159]
其中,c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;p和p’分别为提升机由
状态sk到状态s
k 1
运行的起点和终点;x
pp

为表示p至p’之间是否存在路径的0-1变量;d
pp

为提升机由p运行至p’的运行距离;l
pp

为提升机由p运行至p’的过程中已使用载物工位的数量;α为权重系数。
[0160]
根据本公开的示例性实施例,所述所述状态转移方程为:
[0161]
c(sk)=min{c(sk,s
k 1
) c(s
k 1
)};
[0162]
其中,c(sk)为提升机在状态sk时的运行成本;c(sk,s
k 1
)为提升机由状态sk到状态s
k 1
的运行成本;c(s
k 1
)为提升机在状态s
k 1
时的运行成本。
[0163]
上述的提升机调度装置500中各模块的具体细节已经在对应的提升机调度方法中进行了详细的描述,因此此处不再赘述。
[0164]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0165]
在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图6所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0166]
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
[0167]
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0168]
如图7所示,计算机系统700包括中央处理单元(central processing unit,cpu)701,其可以根据存储在只读存储器(read-only memory,rom)702中的程序或者从存储部分708加载到随机访问存储器(random access memory,ram)703中的程序而执行各种适当的动作和处理。在ram 703中,还存储有系统操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
[0169]
以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0170]
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实
施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本公开的系统中限定的各种功能。
[0171]
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0172]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0173]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0174]
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
[0175]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0176]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
[0177]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
[0178]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献