发明内容
本发明的主要目的在于提供一种自动引导车的任务分配方法、装置及计算机存储介质,旨在提高任务的整体执行效率。
为实现上述目的,本发明提供一种自动引导车的任务分配方法,所述自动引导车的任务分配方法包括以下步骤:
获取多个初始分配方案中的多个第一分配方案,其中,每一所述初始分配方案包括多个自动引导车以及所述自动引导车对应的多个待分配任务;
对多个所述第一分配方案进行染色体交叉处理,得到多个第二分配方案;
对多个所述第一分配方案中的第三分配方案以及多个所述第二分配方案中的第四分配方案进行染色体变异处理,得到多个第五分配方案;
在满足遗传算法的结束条件时,获取多个所述第一分配方案、多个所述第二分配方案以及多个所述第五分配方案中的目标分配方案;
按照所述目标分配方案对各个所述自动引导车进行任务分配。
可选地,所述对多个所述第一分配方案中的第三分配方案以及多个所述第二分配方案中的第四分配方案进行染色体变异处理,得到多个第五分配方案的步骤之后,还包括:
在不满足遗传算法的结束条件时,对多个所述初始分配方案进行更新,以将多个所述第一分配方案中未进行染色体变异处理的分配方案、多个所述第二分配方案中未进行染色体变异处理的分配方案以及所述第五分配方案作为更新后的多个所述初始分配方案;
根据更新后的多个所述初始分配方案,返回执行所述获取多个初始分配方案中的多个第一分配方案的步骤。
可选地,在多个所述第一分配方案中,未进行染色体变异处理的分配方案对应的任务完成总时间小于所述第三分配方案对应的任务完成总时间。
可选地,所述遗传算法的结束条件包括以下至少一个:
初始分配方案的更新次数大于预设次数;
本次对初始分配方案进行更新之前与之后分别对应的目标分配方案的任务完成总时间的差值小于预设差值,且所述差值小于所述预设差值的累计次数大于或等于预设次数。
可选地,所述获取多个初始分配方案中的多个第一分配方案的步骤包括:
获取各个所述初始分配方案对应的任务完成总时间;
根据所述任务完成总时间确定多个所述初始分配方案中的多个所述第一分配方案。
可选地,所述按照所述目标分配方案对各个所述自动引导车进行任务分配的步骤包括:
按照所述目标分配方案获取各个所述自动引导车对应的多个待分配任务;
获取所述自动引导车对应的各个待分配任务的任务下发时间;
根据所述任务下发时间确定所述自动引导车对应的多个待分配任务的任务执行顺序;
按照所述自动引导车对应的多个待分配任务的任务执行顺序,将所述自动引导车对应的多个待分配任务分配至所述自动引导车。
可选地,所述获取多个初始分配方案中的多个第一分配方案的步骤之前,还包括:
在满足遗传算法的开启条件时,获取多个所述待分配任务;
根据多个所述待分配任务以及多个所述自动引导车随机生成所述多个初始分配方案。
可选地,所述遗传算法的开启条件包括以下至少一个:
自动引导车在执行已分配任务时的实际耗时与所述已分配任务对应的预设耗时的差值大于第一预设时长;
存在待分配任务,且在按照目标分配方案对多个所述自动引导车进行任务分配后,开始计时,计时时长大于第二预设时长;
待分配任务的数量大于预设数量。
此外,为实现上述目的,本发明还提供一种自动引导车的任务分配装置,所述自动引导车的任务分配装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的自动引导车的任务分配程序,所述自动引导车的任务分配程序被所述处理器执行时实现如上所述中任一项所述的自动引导车的任务分配方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有自动引导车的任务分配程序,所述自动引导车的任务分配程序被处理器执行时实现如上所述中任一项所述的自动引导车的任务分配方法的步骤。
本发明实施例提出的自动引导车的任务分配方法、装置及计算机存储介质,自动引导车的任务分配方法包括以下步骤:获取多个初始分配方案中的多个第一分配方案,其中,每一初始分配方案包括多个自动引导车以及自动引导车对应的多个待分配任务;对多个第一分配方案进行染色体交叉处理,得到多个第二分配方案;对多个第一分配方案中的第三分配方案以及多个第二分配方案中的第四分配方案进行染色体变异处理,得到多个第五分配方案;在满足遗传算法的结束条件时,获取多个第一分配方案、多个第二分配方案以及多个第五分配方案中的目标分配方案;按照目标分配方案对各个自动引导车进行任务分配。本发明应用遗传算法来寻找任务执行耗时更短的任务分配方案,以提高任务的整体执行效率,减少完成所有任务的耗时,并通过改进遗传算法中的变异策略,将多个第一分配方案中的第三分配方案也进行变异,提高遗传算法的效率,以更快地确定更好的任务分配方案,使得任务的分配更加及时。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种解决方案,通过应用遗传算法来寻找任务执行耗时更短的任务分配方案,以提高任务的整体执行效率,减少完成所有任务的耗时,并通过改进遗传算法中的变异策略,将多个第一分配方案中的第三分配方案也进行变异,提高遗传算法的效率,以更快地确定更好的任务分配方案,使得任务的分配更加及时。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是工控设备,也可以是PC等终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括网络通信模块、用户接口模块以及自动引导车的任务分配程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的自动引导车的任务分配程序,并执行以下操作:
获取多个初始分配方案中的多个第一分配方案,其中,每一所述初始分配方案包括多个自动引导车以及所述自动引导车对应的多个待分配任务;
对多个所述第一分配方案进行染色体交叉处理,得到多个第二分配方案;
对多个所述第一分配方案中的第三分配方案以及多个所述第二分配方案中的第四分配方案进行染色体变异处理,得到多个第五分配方案;
在满足遗传算法的结束条件时,获取多个所述第一分配方案、多个所述第二分配方案以及多个所述第五分配方案中的目标分配方案;
按照所述目标分配方案对各个所述自动引导车进行任务分配。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
在不满足遗传算法的结束条件时,对多个所述初始分配方案进行更新,以将多个所述第一分配方案中未进行染色体变异处理的分配方案、多个所述第二分配方案中未进行染色体变异处理的分配方案以及所述第五分配方案作为更新后的多个所述初始分配方案;
根据更新后的多个所述初始分配方案,返回执行所述获取多个初始分配方案中的多个第一分配方案的步骤。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
在多个所述第一分配方案中,未进行染色体变异处理的分配方案对应的任务完成总时间小于所述第三分配方案对应的任务完成总时间。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
所述遗传算法的结束条件包括以下至少一个:
初始分配方案的更新次数大于预设次数;
本次对初始分配方案进行更新之前与之后分别对应的目标分配方案的任务完成总时间的差值小于预设差值,且所述差值小于所述预设差值的累计次数大于或等于预设次数。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
获取各个所述初始分配方案对应的任务完成总时间;
根据所述任务完成总时间确定多个所述初始分配方案中的多个所述第一分配方案。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
按照所述目标分配方案获取各个所述自动引导车对应的多个待分配任务;
获取所述自动引导车对应的各个待分配任务的任务下发时间;
根据所述任务下发时间确定所述自动引导车对应的多个待分配任务的任务执行顺序;
按照所述自动引导车对应的多个待分配任务的任务执行顺序,将所述自动引导车对应的多个待分配任务分配至所述自动引导车。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
在满足遗传算法的开启条件时,获取多个所述待分配任务;
根据多个所述待分配任务以及多个所述自动引导车随机生成所述多个初始分配方案。
进一步地,处理器1001可以调用存储器1005中存储的自动引导车的任务分配程序,还执行以下操作:
自动引导车在执行已分配任务时的实际耗时与所述已分配任务对应的预设耗时的差值大于第一预设时长;
存在待分配任务,且在按照目标分配方案对多个所述自动引导车进行任务分配后,开始计时,计时时长大于第二预设时长;
待分配任务的数量大于预设数量。
参照图2,在一实施例中,所述自动引导车的任务分配方法包括以下步骤:
步骤S10,获取多个初始分配方案中的多个第一分配方案,其中,每一所述初始分配方案包括多个自动引导车以及所述自动引导车对应的多个待分配任务;
在本实施例中,物料输送系统包括工控装置以及多个自动引导车(AGV,AutomatedGuided Vehicle)。自动引导车可沿预设的移动路径移动,将物料从路径上的某一位置输送至路径上的另一位置,所有的预设移动路径组成路径地图。在待分配任务被下发至工控装置后,工控装置可指定某一自动引导车执行该任务,例如,待分配任务可以是从某一位置取物料,并将物料输送至另一位置。
在本实施例中,每一初始分配方案均包括所有待分配任务的分配策略,即在每一初始分配方案中,每一待分配任务均对应有执行该待分配任务的自动引导车。
在本实施例中,基于遗传算法中的选择、交叉以及变异的过程,对多个初始分配方案进行处理,以寻找更好的任务分配方案,提高任务的整体执行效率,减少完成所有任务的耗时。
可选地,在获取到多个初始分配方案时,对多个初始分配方案进行精英个体选择的处理。具体地,可获取多个初始分配方案中的多个第一分配方案,将多个第一分配方案均作为精英个体,例如,可计算各个初始分配方案对应的任务完成总时间,对所有的初始分配方案按照任务完成总时间从小到大进行排序,将排名靠前的预设数量的初始分配方案作为多个第一分配方案,多个第一分配方案即为精英个体。
可选地,在计算各个分配方案对应的任务完成总时间时,可事先测量出各个自动引导车的平均速度,根据路径地图以及自动引导车对应的各个待分配任务确定自动引导车执行各个待分配任务时需要移动经过的路径,得到路径长度,根据平均速度以及路径长度可以计算出该自动引导车完成所有待分配任务需要的时长,进而可计算出对应的分配方案的任务完成总时间。其中,可确定分配方案中各个自动引导车完成对应的所有待分配任务需要的时长,并将最长时长作为该分配方案对应的任务完成总时间。
可选地,每一初始分配方案还可包括自动引导车对应的多个待分配任务的先后执行顺序。
步骤S20,对多个所述第一分配方案进行染色体交叉处理,得到多个第二分配方案;
在本实施例中,在进行染色体交叉处理时,将多个第一分配方案进行两两随机配对,并将配对得到的两个第一分配方案均截取一部分分配方案(即截取部分待分配任务与自动引导车的对应关系),并将截取得到的一部分分配方案重新组合,得到新的分配方案,即第二分配方案。
可选地,由于重新组合得到的第二分配方案可能存在一个待分配任务对应多个自动引导车,因此,可在重新组合后进行随机去重处理,以避免一个待分配任务对应多个自动引导车的情况。
可选地,由于重新组合得到的第二分配方案可能存在待分配任务未存在于第二分配方案中,即存在待分配任务未与自动引导车对应,因此,可在重新组合后针对进行随机填充处理,将该待分配任务与随机确定的自动引导车进行对应,以避免待分配任务未存在于第二分配方案中的情况。
可选地,采用染色体编码的方式将各个第一分配方案转化为对应的染色体编码序列,以便于进行染色体交叉处理,例如,染色体编码序列可以是[-1,T1,T5,-2,T2,T3…],表明编号为-1的自动引导车与待分配任务T1以及待分配任务T5对应,并且待分配任务T1的执行顺序先于待分配任务T5,编号为-2的自动引导车与待分配任务T2以及待分配任务T3对应,并且待分配任务T2的执行顺序先于待分配任务T3。
步骤S30,对多个所述第一分配方案中的第三分配方案以及多个所述第二分配方案中的第四分配方案进行染色体变异处理,得到多个第五分配方案;
在本实施例中,对多个第一分配方案中的一部分分配方案以及多个第二分配方案中的一部分分配方案均进行染色体变异处理,以通过增加较好的分配方案的变异数量,提高了遗传算法的收敛速度,可更快地找到更好的任务分配方案,从而使得任务的分配更加及时。
可选地,在执行染色体变异处理时,随机选择分配方案中的多个待分配任务,随机交换多个待分配任务与自动引导车的对应关系,得到新的分配方案,即第五分配方案。
步骤S40,在满足遗传算法的结束条件时,获取多个所述第一分配方案、多个所述第二分配方案以及多个所述第五分配方案中的目标分配方案;
在本实施例中,遗传算法的结束条件表明当前已经出现较优的分配方案,因此在满足遗传算法的结束条件时,从精英个体选择得到的多个第一分配方案、染色体交叉处理得到的多个第二分配方案以及染色体变异处理得到的多个第五分配方案中确定一个目标分配方案,该目标分配方案即为较优的分配方案。
可选地,在确定目标分配方案时,可获取各个第一分配方案、各个第二分配方案以及各个第五分配方案对应的任务完成总时间,将任务完成总时间最短的分配方案作为目标分配方案。
步骤S50,按照所述目标分配方案对各个所述自动引导车进行任务分配。
在本实施例中,按照目标分配方案对各个自动引导车进行任务分配,以将各个待分配任务分配至对应的自动引导车,自动引导车可执行被分配到的多个任务,使得任务完成的整体效率更高,任务完成耗时最短。
可选地,为了避免目标分配方案中某些待分配任务的执行顺序始终靠后,例如,新下发的任务靠前,而以往下发的任务靠后而迟迟无法执行,因此,可在按照目标分配方案对各个自动引导车进行任务分配时,可按照目标分配方案获取各个自动引导车对应的多个待分配任务,并针对单个自动引导车,获取该自动引导车对应的各个待分配任务的任务下发时间,将多个待分配任务按照任务下发时间从先到后进行排序,并将该排名作为多个待分配任务的任务执行顺序,以按照该任务执行顺序将对应的多个待分配任务分配至对应的自动引导车,以使自动引导车按照该任务执行顺序依次执行多个待分配任务。
在本实施例公开的技术方案中,应用遗传算法来寻找任务执行耗时更短的任务分配方案,以提高任务的整体执行效率,减少完成所有任务的耗时,并通过改进遗传算法中的变异策略,将多个第一分配方案中的第三分配方案也进行变异,提高遗传算法的效率,以更快地确定更好的任务分配方案,使得任务的分配更加及时。
在另一实施例中,如图3所示,在上述图2所示的实施例基础上,步骤S30之后,还包括:
步骤S60,在不满足遗传算法的结束条件时,对多个所述初始分配方案进行更新,以将多个所述第一分配方案中未进行染色体变异处理的分配方案、多个所述第二分配方案中未进行染色体变异处理的分配方案以及所述第五分配方案作为更新后的多个所述初始分配方案;
步骤S70,根据更新后的多个所述初始分配方案,返回执行所述获取多个初始分配方案中的多个第一分配方案的步骤。
在本实施例中,在不满足遗传算法的结束条件时,表明当前未出现较优的分配方案,因此,可对多个初始分配方案进行更新,根据更新后的多个初始分配方案,迭代进行精英个体选择、染色体交叉以及染色体变异等处理,直至满足遗传算法的结束条件。
可选地,在对多个初始分配方案进行更新时,由于多个第一分配方案中的第三分配方案以及多个第二分配方案中的第四分配方案已经进行染色体变异处理,因此,可仅将多个第一分配方案中未进行染色体变异处理的其余分配方案、多个第二分配方案中未进行染色体变异处理的其余分配方案以及染色体变异处理得到的第五分配方案作为更新后的多个初始分配方案,继续进行迭代计算。
可选地,为了保证迭代计算的收敛速度更快,将多个第一分配方案中的第三分配方案进行染色体变异处理,而多个第一分配方案中的其余分配方案则保留作为迭代计算时的初始分配方案。在确定多个第一分配方案中的第三分配方案时,可获取各个第一分配方案对应的任务完成总时间,并将多个第一分配方案按照任务完成总时间从小到大进行排序,并将排名靠后的预设数量的分配方案作为第三分配方案,以在增加收敛速度的同时,保留第一分配方案中最优的一部分分配方案不进行染色体变异处理,以防止染色体变异处理将第一分配方案中最优的这一部分分配方案过滤掉,反而减慢了迭代计算的收敛速度的情况发生,因此,在多个第一分配方案中,未进行染色体变异处理的分配方案对应的任务完成总时间小于第三分配方案对应的任务完成总时间。
可选地,遗传算法的结束条件包括以下至少一个:初始分配方案的更新次数大于预设次数;本次对初始分配方案进行更新之前与之后分别对应的目标分配方案的任务完成总时间的差值小于预设差值,且差值小于预设差值的累计次数大于或等于预设次数。其中,在初始分配方案的更新次数大于预设次数时,表明迭代计算的迭代次数已经较多,可认为当前已经出现较优的分配方案。其中,在本次对初始分配方案进行更新之前与之后分别对应的目标分配方案的任务完成总时间的差值小于预设差值,且差值小于所述预设差值的累计次数大于或等于预设次数,表明在迭代计算中,目标分配方案对应的任务完成总时间的变化较小,当前的目标分配方案已非常接近最优的分配方案,因此可将当前的目标分配方案作为较优的分配方案。
在本实施例公开的技术方案中,在不满足遗传算法的结束条件时,更新初始分配方案,以继续进行精英个体选择、染色体交叉以及染色体变异等处理,通过迭代的方式寻找更好的任务分配方法。
在再一实施例中,如图4所示,在图2至图3任一实施例所示的基础上,步骤S10之前,还包括:
步骤S80,在满足遗传算法的开启条件时,获取多个所述待分配任务;
步骤S90,根据多个所述待分配任务以及多个所述自动引导车随机生成所述多个初始分配方案。
在本实施例中,定时检测是否满足遗传算法的开启条件,在满足时,获取多个待分配任务,并根据多个待分配任务以及物料输送系统中的多个自动引导车进行对应关系的随机分配,以使每一待分配任务均对应有一个自动引导车,得到初始分配方案,多次随机分配以得到多个初始分配方案。
可选地,在已下发的任务中,包括尚未执行的任务、正在执行的任务以及已经执行的任务,因此,可将尚未执行的任务均作为待分配任务。可以理解的是,待分配任务包括之前已经分配但仍在等待执行的任务。
可选地,遗传算法的开启条件包括以下至少一个:自动引导车在执行已分配任务时的实际耗时与已分配任务对应的预设耗时的差值大于第一预设时长;存在待分配任务,且在按照目标分配方案对多个自动引导车进行任务分配后,开始计时,计时时长大于第二预设时长;待分配任务的数量大于预设数量。其中,在自动引导车在执行已分配任务时的实际耗时与已分配任务对应的预设耗时的差值大于第一预设时长时,表明对于该已分配任务的任务完成时间不准确,使得按照当前分配方案来对多个自动引导车分配任务时的任务完成总时间的估计有误,因此,需要应用遗传算法重新进行目标分配方案的确定以及按照重新确定的目标分配方案重新进行任务分配。其中,存在待分配任务,且在按照目标分配方案对多个自动引导车进行任务分配后,开始计时,计时时长大于第二预设时长,以定时进行目标分配方案的确定以及按照定时确定的目标分配方案重新进行任务分配,避免频繁进行目标分配方案的确定以及任务分配。其中,在待分配任务的数量大于预设数量时,表明存在较多任务需要分配。
在本实施例公开的技术方案中,在满足遗传算法的开启条件时,获取多个待分配任务,根据多个待分配任务以及多个自动引导车随机生成多个初始分配方案,以通过改进后的遗传算法确定更好的分配方案。
在又一实施例中,如图5所示,在图2至图3任一实施例所示的基础上,示例如下,以更加具体地描述自动引导车的任务分配方法。
1、应用场景示例如下:
(1)待分配任务记为(Tn,Desn,tsn),其中,待分配任务包括任务编号T、目标点Des和任务下发时刻ts;
(2)自动引导车的信息记为(AGVn,Ptn),自动引导车的信息包括编号AGV和当前位置Pt;
(3)自动引导车的平均速度是提前测量好的;
(4)路径地图是有向拓扑路段G=(V,E),V是节点,E是有向边;
(5)执行任务调度时,自动引导车可能已经有正在执行的任务,此时这些任务不参与自动引导车的任务分配方法。
2、自动引导车的任务分配方法的步骤示例如下:
(1)定义染色体编码方式:例如,可采用实数编码方式,以自动引导车为主要目标,给自动引导车分配不同任务来先后串行执行。这里一个个体只有一个染色体,表示一种分配方案。染色体编码序列Code可以是[-1,T1,T5,-2,T2,T3…],表明编号为-1的自动引导车与待分配任务T1以及待分配任务T5对应,并且待分配任务T1的执行顺序先于待分配任务T5,编号为-2的自动引导车与待分配任务T2以及待分配任务T3对应,并且待分配任务T2的执行顺序先于待分配任务T3。
(2)种群初始化:通过多个自动引导车和多个待分配任务随机构建染色体编码序列Code,构建N个个体(初始分配方案)组建种群;
(3)精英个体选择:计算每个个体的任务完成总时间Ttotal(i),(i=1,2…N),这里完成时间通过A Star算法结合路径地图G进行路径查询(对某个自动引导车来说,例如(-1,T1,T5),自动引导车的第一个任务T1的路径起点是这样确定的:如果自动引导车已经绑定了其他执行的任务,那么路径起始点为当前绑定任务的目标点,否则起始点为自动引导车的当前位置。后续的任务规划的路径起点都是上个任务的目标点Des,例如,这里T5的起始点是T1的终点),通过自动引导车的平均速度和路径长度估计任务执行所需时间。然后按Ttotal(i)进行个体进行降序排序,根据设定的比例阈值Th(Th<0.5),挑选头部数量为Nh(Nh=N*Th)的精英个体,即第一分配方案,其余个体舍弃;
(4)染色体交叉:为了提高收敛速度,这里采取精英保留策略,具体步骤如下:
精英个体进行两两配对,然后各随机截取一部分来构建新的染色体,新的染色体为子代染色体,即第二分配方案;
对子代染色体中重复的任务进行随机去重,去重后可能会有任务不在染色体中,需要对这些任务进行随机分配填充;
最终交叉后总的精英代和子代数目是N,不足N则依旧通过多个自动引导车和多个待分配任务随机构建染色体来作为子代个体,同时需要对当前种群的精英个体和子代个体进行分类标记,方便步骤5的染色体变异处理。
(5)染色体变异:为了降低对精英个体的影响,同时加快收敛速度,这里引入r(r<0.5)因子和H(H<Nh)因子来进行控制。(Nh-H)*r为精英代中需要变异的个体数,即第三分配方案,(N-Nh)*(1-r)为子代中需要进行变异操作的个体数,即第四分配方案。随机选择出相应数目的个体后(注意:精英代中按任务完成总时间排序后,保留头部H个个体不进行染色体变异),对个体进行变异操作:在选出的染色体上随机选择K个位置,颠倒顺序进行重排后插入;
(6)计算当前种群中任务完成总时间最短的个体,并该个体对应的任务完成总时间t0,重复步骤3到步骤5,直到满足迭代次数X或连续Y次t0的变化小于阈值则退出,任务完成总时间最短的个体(即目标分配方案)作为最优解。
(7)对待分配任务进行排序:对目标分配方案中的每个自动引导车对应的待分配任务进行排序操作:按任务的等待时长来进行比较,等待时长长的排前面,等待时长=当前时刻-任务下发时刻。
在本实施例公开的技术方案中,由于遗传算法收敛速度偏低,随机化因素太多,这里对交叉及变异过程基于精英保留策略进行了改进优化,尽可能的减少对精英个体的影响,同时每次迭代都会对精英代进行优化,显著提升了算法的收敛速度。
可选地,由于自动引导车实际运行时速度并不一定是理论的匀速,还存在加减速、动作时间消耗等因素,这就会导致任务不一定会按理想时间完成,在没有新任务派发的前提下,系统一直按照某一次计算后的匹配结果进行行驶,可能会导致某些任务不能及时执行,这里通过对任务执行时间的监控来控制任务重调度的时机,对任务进行动态调整。具体地,动态调整:定时检测每个执行任务的自动引导车,假定当前执行任务已花费时间为Tc,任务的理论执行时间为Tp,如果Tc-Tp>α(α>0),则认为系统执行的已经不准确了,需要重新进行调度,重新执行步骤(2)到(7)。注意:已经执行的任务不加入待分配任务。
可选地,由于当不停的有新任务派发时,极端情况可能会导致某些任务迟迟得不到执行,比如某个任务安排到了某个自动引导车的最后一个执行,而当快要执行该任务时,又来了新的任务排在了它的前面,任务不停到来,该任务一直处于“饥饿”状态得不到执行,这里通过引入任务等待时长来对调度过程进行优化,让等待时长较长的任务相对优先执行。具体地,当新任务到来时,为了减少任务分配的频次,设定时间Tr作为定时阈值,Tr时间到后如果存在未分配任务则进行任务分配,Tr等待时间内新来的任务需要等待至下次任务分配。
在本实施例公开的技术方案中,通过动态调整与任务等待时长机制的引入,解决了任务长时间得不到及时执行的问题,最终实现自动引导车任务分配的全局相对最优调度,实现自动引导车的高效率配送。
此外,本发明实施例还提出一种自动引导车的任务分配装置,所述自动引导车的任务分配装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的自动引导车的任务分配程序,所述自动引导车的任务分配程序被所述处理器执行时实现如上各个实施例所述的自动引导车的任务分配方法的步骤。
此外,本发明实施例还提出一种计算机存储介质,所述计算机存储介质上存储有自动引导车的任务分配程序,所述自动引导车的任务分配程序被处理器执行时实现如上各个实施例所述的自动引导车的任务分配方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。