配送任务的分配方法、装置、服务器和存储介质
技术领域
本发明实施例涉及信息处理技术领域,特别涉及一种配送任务的分配方法、装置、服务器和存储介质。
背景技术
在订单调度分配时,会设置若干种订单分配策略,根据不同的场景,选用不同的订单分配策略进行订单分配,将当前订单分配给满足分配策略的骑手。在实际情况中,是对若干订单进行同时分配,某些订单满足了预设的分配策略,分配给对应的骑手,实现了单个订单的最优分配。
然而,发明人发现相关技术中至少存在如下问题:由于每一个分配策略是独立存在的,相互之间缺乏相关性,导致在订单分配时刻,单个订单的最优分配的集合并不是当前所有订单整体的最优分配。
发明内容
本发明实施方式的目的在于提供一种配送任务的分配方法、装置、服务器和存储介质,采用对订单和骑手进行路径规划和仿真模拟的方式,对当前所有订单进行最优分配,使得在任意单个订单的分配时刻,当前分配的骑手都是最合适的配送资源,优化了订单的分配方式,便于骑手送单。
为解决上述技术问题,本发明的实施方式提供了一种配送任务的分配方法,包括:接收来自各客户端的指令,得到客户端的指令集;通过至少一个处理器解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;通过至少一个处理器,待分配任务指令
本发明的实施方式还提供了一种配送任务的分配装置,包括:获取模块,用于接收来自各客户端的指令,得到客户端的指令集;分析模块,用于解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;预分配矩阵获取模块,用于对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;分配模块,用于根据预分配矩阵获取每一个待分配任务指令的最优分配结果;根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,根据预分配结果将M个待分配任务指令分配给N个配送资源;其中,最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
本发明实施方式还提供了一种电子设备,包括存储器和处理器,存储器存储计算机程序,处理器运行程序时执行:接收来自各客户端的指令,得到客户端的指令集;通过至少一个处理器解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;通过至少一个处理器,根据预分配矩阵获取每一个待分配任务指令的最优分配结果;根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,根据预分配结果将M个待分配任务指令分配给N个配送资源;其中,最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
本发明实施方式还提供了一种非易失性存储介质,用于存储计算机可读程序,计算机可读程序被处理器执行时实现上述配送任务的分配方法。
本发明实施方式相对于现有技术而言,通过获取各个客户端的指令中的待分配任务指令,对待分配任务指令和配送资源进行配送任务路径规划的仿真模拟,得到待分配任务指令与配送资源的匹配得分,通过匹配得分可以反应出当前待分配任务指令分配给该配送资源是否合适;并将上述匹配得分具体反映在一个预分配矩阵中,通过对预分配矩阵进行迭代求解,获得每一个待分配任务指令的最优分配方式,按照最优分配方式将待分配任务指令分配给对应骑手,对当前所有订单进行最优分配,使得在任意单个订单的分配时刻,当前分配的骑手都是最合适的配送资源,优化了订单的分配方式,便于骑手送单。
另外,根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,具体包括:通过至少一个处理器重复下述步骤,直至获取M个待分配任务指令的预分配:分析每一个待分配任务指令的最优分配结果,在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,将目标分配任务的最优分配结果作为预分配结果;将M更新为M-1,对更新后的M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到更新后的M×N的预分配矩阵。
另外,在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,具体包括:通过至少一个处理器,判断M个待分配任务指令按照最优分配结果对应的配送资源是否处于空载状态;将处于空载状态的配送资源按照最优分配结果对应的待分配任务指令优先作为目标分配任务;对不处于空载状态的配送资源,按照M个待分配任务指令的最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为目标分配任务。
另外,完成获取M个待分配任务指令的预分配结果之后,根据预分配结果将M个待分配任务指令分配给N个配送资源之前,还包括:通过至少一个处理器,对M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式;按照全局最优分配方式,将M个待分配任务指令分配给N个配送资源。将单个骑手分配到的订单作为一个订单包,得到N个订单包,根据当前场景和骑手信息,对订单包的分配进行微调,得到全局最优分配方案,实现全局最优分配。
另外,通过至少一个处理器,对M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式,具体包括:通过至少一个处理器,获取N个配送资源分别被分配的配送任务包,配送任务包为预分配的结果中分配给该配送资源的所有待分配任务指令;通过至少一个处理器,对N个配送任务包与N个配送资源进行一一对应匹配程度进行打分,获得全局匹配得分;通过至少一个处理器,获取N个配送任务包与N个配送资源进行排列组合后的全局匹配得分的总和;将全局匹配得分的总和最高的N个配送任务包与N个配送资源的排列组合的方式作为全局最优分配方式。
另外,通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵,具体包括:通过至少一个处理器重复下述步骤,直至得到M×N的预分配矩阵:对第i个待分配任务指令分配给第j个配送资源时进行路径规划和仿真模拟,获取配送特征信息;将配送特征信息分别输入到不同类型的预设模型中,预设模型用于输出第i个待分配任务指令与第j个配送资源的预得分;累加所有不同类型的预设模型输出的第i个待分配任务指令与第j个配送资源的预得分,得到第i个待分配任务指令与第j个配送资源的匹配得分。通过仿真模拟规划当前所有订单的最优分配,使得在任意单个订单的分配时刻,当前分配的骑手都是最合适的配送资源。
另外,不同类型的预设模型至少包括以下模型的其中两种:波次超时模型、骑手背单模型、热门路径模型、均衡系数模型、压力系数模型。通过多种类型的预设模型,对配送特征信息判断获取待分配任务指令与配送资源的预得分,得到的预得分结果更加准确。
附图说明
图1是根据本发明第一实施方式中的配送任务的分配方法的流程图;
图2是根据本发明第一实施方式中的配送任务的分配方法中的打分示意图;
图3是根据本发明第二实施方式中的配送任务的分配方法的流程图;
图4是根据本发明第三实施方式中的配送任务分配装置的示意图;
图5是本发明第四实施方式提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合,相互引用。
本发明的第一实施方式涉及一种配送任务的分配方法。在本实施方式中,接收来自各客户端的指令,得到客户端的指令集;通过至少一个处理器解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;通过至少一个处理器,根据预分配矩阵获取每一个待分配任务指令的最优分配结果;根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,根据预分配结果将M个待分配任务指令分配给N个配送资源;其中,最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。采用对订单和骑手进行路径规划和仿真模拟的方式,对当前所有订单进行最优分配,对任意单个订单在分配时刻,使得在任意单个订单的分配时刻,当前分配的骑手都是最合适的配送资源,优化了订单的分配方式,便于骑手送单。
下面对本实施方式的一种配送任务的分配方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本发明的第一实施方式涉及一种配送任务的分配方法,具体流程如图1所示,该方法包括:
步骤101,接收来自客户端的指令。
接收来自各客户端的指令,得到客户端的指令集。具体地,服务器接收来自多个客户端的指令,得到客户端的指令集合。
在一个例子中,服务器接收的来自客户端的指令可以为:用户通过手机或平板电脑等移动终端设备上的点餐APP提交订单时生成的指令。
步骤102,解析指令集,获取待分配任务指令。
通过至少一个处理器解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数。具体地,通过服务器中的至少一个处理器对指令集进行解析,确定指令集中的所有待分配任务指令。
需要说明的是,待分配任务指令为用户通过点餐APP点餐后,生成的订餐配送任务,需要由配送资源来执行配送。在一个例子中,当服务器接收到来自客户端的订单后,对接收到的订单进行解析,获取该订单中的待分配任务指令;在本申请后续具体的举例说明中,以订单代替待分配任务指令,以骑手代替配送资源进行具体说明,并不对本方案构成限定。
步骤103,对待分配任务指令和配送资源进行路径规划和仿真模拟,得到预分配矩阵。
通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分;其中,N为大于0的自然数,i小于或等于M,j小于或等于N。具体地,将第i个待分配任务指令分配给第j个配送资源时,对该配送资源进行的路径规划和仿真模拟,得到第i个待分配任务指令与第j个配送资源的匹配得分,重复上述内容,直至得到M×N的预分配矩阵。
需要说明的是,配送资源具体指:将线下骑手等配送方式中每一个配送单元相互独立,将这些独立的配送单位进行配送资源电子化,每一个配送单位都拥有一个截然不同的编码(即配送资源ID)。
本发明实施例给出由两种打分方式结合得到M×N的预分配矩阵,参考图2,具体如下:
打分方式一:由路径规划和仿真模拟203直接获取待分配任务指令与配送资源匹配得分205。
具体地,通过以下三种条件综合获取待分配任务指令与配送资源的匹配得分。
(1)该待分配任务指令的配送方向是否与该配送资源的行驶方向一致。
具体地,待分配任务指令的配送方向与该配送资源的行驶方向越相似,匹配得分越高。
在一个具体的例子中,订单的配送方向与骑手的行驶方向相似度越高,其匹配得分越高。
(2)该配送资源接起该待分配任务指令后需要多行驶多少距离。
具体地,该配送资源接起该待分配任务指令后需要多行驶的距离越短,其匹配得分越高。
在一个具体的例子中,订单A分配给骑手a,骑手a需要多行驶500米;订单A分配给骑手b,骑手b需要多行驶800米。此时订单A与骑手a的匹配得分高于订单A与骑手b的匹配得分。
(3)该待分配任务指令对该配送资源来说的配送难度。
具体地,对所有配送资源来说,接起该待分配任务指令的配送难度大不大,难度越小,其匹配的得分越高。
在一个具体的例子中,骑手a背单过多,此时不能再接起订单,订单A对骑手a来说配送难度大;此时骑手b背单量不多,还能接起订单,订单A对骑手b来说配送难度就不大。此时订单A与骑手b的匹配得分高于订单A与骑手a的匹配得分。
打分方式二:通过路径规划和仿真模拟203获取配送特征信息,将配送特征信息输入到预设模型204中,获取待分配任务指令与配送资源匹配得分205。
对第i个待分配任务指令分配给第j个配送资源时进行路径规划和仿真模拟,获取配送特征信息。
具体地,路径规划和仿真模拟为:对配送资源正在配送的配送任务与待分配任务指令的路径进行模拟。
配送特性信息包括,配送总超时时间、等餐时间、每个配送任务的平均配送时间、新增配送任务需要多行驶多少距离和配送资源和待分配任务指令的基础数据。
其中,配送总超时时间为:第j个配送资源配送完已有订单和第i个待分配任务指令后,配送总时间超出预设时间的时间;等餐时间为:第j个配送资源配送已有订单和第i个待分配任务指令需要等餐的总时间;每个配送任务的平均配送时间为:第j个配送资源配送已有订单和第i个待分配任务指令中,每个配送任务需要消耗的平均时间;新增配送任务需要好多行驶多少距离为:第j个配送资源配送第i个待分配任务指令需要多行驶的距离;
配送资源的基础数据包括:配送资源的当前配送方向,配送资源的最大背单量、配送资源的配送压力等数据;待分配任务指令的基础数据包括:待分配任务指令的取餐地点、待分配任务指令的送餐地方、待分配任务指令的热门配送路径等数据。
将配送特征信息分别输入到不同类型的预设模型中,预设模型204用于输出第i个待分配任务指令与第j个配送资源的预得分205。
其中,不同类型的预设模型至少包括以下模型的其中两种:波次超时模型、骑手背单模型、热门路径模型、均衡系数模型、压力系数模型。
具体地,波次超时模型结合配送特征信息中配送总超时时间进行判断,给出相应的预得分分数;在一个具体的例子中,骑手配送总超时时间越小,波次超时模型给出的预得分的分数越高;或骑手配送超时的概率越小,给出的分数越高。
骑手背单模型结合配送特征信息中配送资源的背单量进行判断,给出相应的预得分分数;在一个具体的例子中,骑手的背单量越小,骑手背单模型给出的预得分分数越高。
热门路径模型结合配送特征信息中待分配任务指令的热门配送路径进行判断,给出相应的预得分分数;在一个具体的例子中,订单的热门配送路径越通畅,越符合配送资源的行驶方向,热门路径模型给出的预得分分数越高。
均衡系数模型结合配送特征信息中配送资源希望的背单量与实际背单量是否符合,给出相应的预得分分数;在一个具体的例子中,骑手的实际背单量小于骑手希望获得的背单量时,均衡系数模型给出的预得分分数高。
压力系数模型结合配送特征信息中配送资源的配送压力进行判断,给出相应的预得分分数;在一个具体的例子中,配送资源的配送压力越小,压力系数模型给出的预得分分数越高。
累加所有不同类型的预设模型输出的第i个待分配任务指令与第j个配送资源的预得分,得到所述第i个待分配任务指令与所述第j个配送资源的匹配得分205。
例如,波次超时模型给出的预得分分数为10,骑手背单模型给出的预得分分数为10,热门路径模型给出的预得分分数为10,均衡系数模型给出的预得分分数为10,压力系数模型给出的预得分分数为10;此时第i个待分配任务指令与第j个配送资源的匹配得分为10+10+10+10+10=50。
需要说明的是,在其他实施例中,还可以根据不同类型的模型设置权重系数,获取更为精确的待分配任务指令与配送资源的匹配得分。
在一个具体的例子中,得到如下5×4的预分配矩阵:
其中,第i行表示第i个待分配任务指令分别对应4个配送资源的对应得分,第j列表示第j个配送资源分别对应5个待分配任务指令的对应得分。例如,第3行第3列的数据63表示:第3个待分配任务指令分配给第3个配送资源时的匹配得分为63。
步骤104,对预分配矩阵进行迭代求解,将M个待分配任务指令分配给N个配送资源。
具体地,步骤104包括步骤114、步骤124、步骤134、步骤144。
步骤114,分析预分配矩阵,获取每一个待分配任务指令的最优分配结果。
具体地,结合预分配矩阵,获取待分配任务指令与配送资源得分最高的组合。
在一个例子中,结合上述矩阵进行判断:
此时,第1个待分配任务指令的最优分配结果去第2个配送资源,其匹配得分为84;第2个待分配任务指令的最优分配结果去第3个配送资源,其匹配得分为94;第3个待分配任务指令的最优分配结果去第1个配送资源,其匹配得分为99;第4个待分配任务指令的最优分配结果去第5个配送资源,其匹配得分为73;第5个待分配任务指令的最优分配结果去第3个配送资源,其匹配得分为91。
步骤124,选择一个待分配任务指令作为目标分配任务,将目标分配任务分配给对应的配送资源。
具体地,判断待分配任务指令按照最优分配结果对应的配送资源是否处于空载状态;将处于空载状态的配送资源按照最优分配结果对应的待分配任务指令优先作为目标分配任务;对不处于空载状态的配送资源,按照待分配任务指令的最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为目标分配任务。
在一个例子中,先判断上述4个配送资源是否存在空载的配送资源,若上述4个配送资源中仅存在一个空载的配送资源,则将该配送资源对应的最优分配结果进行分配。例如,第3个配送资源此时处于空载状态,则先将第2个配送任务分配给该配送资源;
若存在两个及两个以上的配送资源处于空载状态,则按照最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为所述目标分配任务,预分配给该配送资源。例如,第1个配送资源和第3个配送资源此时都处于空载状态,由于第1个配送资源的最优分配结果为99分,第3个配送资源此时的最优分配结果为94分,则先将第3个待分配任务指令预分配给第1个配送资源。
若没有处于空载状态的配送资源,则按照最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为所述目标分配任务,其过程跟上述过程相同,在此不过多赘述。
在完成一个待分配任务指令的预分配之后,结束步骤124,执行步骤134。
步骤134,重新对待分配任务指令和配送资源进行路径规划和仿真模拟,得到更新后的预分配矩阵。
具体地,步骤124中被分配的待分配任务指令的配送资源进行路径规划和仿真模拟,更新预分配矩阵。
在一个例子中,若步骤124中,将第3个待分配任务指令预分配给第1个配送资源,此时的预分配矩阵如下:
此时,需要对第1个配送资源和第1、2、4、5个预分配矩阵重新进行路径规划和仿真模拟,得到更新后的预分配矩阵如下:
预分配矩阵更新完成后,执行步骤144。
步骤144,所有待分配任务指令是否预分配完成。
判断所有的待分配任务指令是否预分配完成,若完成,则结束步骤104,执行步骤105,将待分配任务指令分配给配送资源;若并没有完成,则返回执行步骤114。
步骤105,将待分配任务指令分配给配送资源。
具体地,按照待分配任务指令的预分配结果,将待分配任务指令分配给配送资源。
需要说明的是,本实施方式中的上述各示例均为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中,在对订单进行分配前,采用对订单和骑手进行路径规划和仿真模拟的方式,对当前所有订单进行最优分配,使得在任意单个订单的分配时刻,当前分配的骑手都是最合适的配送资源,优化了订单的分配方式,便于骑手送单。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施方式涉及一种配送任务的分配方法,第二实施方式与第一实施方式大致相同,主要区别之处在于:在本实施方式中,完成获取M个待分配任务指令的预分配结果之后,根据预分配结果将M个待分配任务指令分配给N个配送资源之前,还包括:通过至少一个处理器,对M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式;按照所述全局最优分配方式,将M个待分配任务指令分配给N个配送资源。
本发明的第二实施方式的具体流程如图3所示,该方法包括:
步骤301,接收来自客户端的指令。
步骤302,解析指令集,获取待分配任务指令。
步骤303,对待分配任务指令和配送资源进行路径规划和仿真模拟,得到预分配矩阵。
步骤304,对预分配矩阵进行迭代求解,完成待分配任务指令的预分配。
其中,步骤301-步骤304的内容分别对应于步骤101-步骤104的内容,在此不过多赘述。
若在步骤304中,判断待分配预分配完成后,则进入步骤305。
步骤305,对待分配任务指令的预分配的结果进行调整,获取全局最优分配方式
具体地,步骤315,获取配送资源被分配的配送任务包。
按照步骤304的结果,获取配送资源被分配的所有待分配任务指令。
具体地,按照上述预分配矩阵:
假设迭代求解之后获取的预分配结果为:
第1个待分配任务指令分配给第2个配送资源;第2个待分配任务指令分配给第3个配送资源;第3个待分配任务指令分配给第1个配送资源;第4个待分配任务指令分配给第4个配送资源;第5个待分配任务指令分配给第3个配送资源。
此时,第1个配送资源获取的第1配送任务包为第3个待分配任务指令;第2个配送资源获取的第2配送任务包为第1个待分配任务指令;第3个配送资源获取的第3配送任务包为第2个和第5个待分配任务指令;第4个配送资源获取的第4配送任务包为第4个待分配任务指令。
步骤325,对配送任务包与配送资源进行一一对应匹配程度进行打分,获得全局匹配得分。
具体地,对配送任务包分别于配送资源进行匹配程度打分,获取每个配送任务包与每个订单包的全局匹配得分。
在一个例子中,上述5个配送资源对应5个订单包,获得的25个匹配得分具体如下:
|
第1个配送资源 |
第2个配送资源 |
第3个配送资源 |
第4个配送资源 |
第5个配送资源 |
第1配送任务包 |
95 |
07 |
35 |
73 |
03 |
第2配送任务包 |
36 |
93 |
31 |
65 |
45 |
第3配送任务包 |
44 |
53 |
97 |
33 |
81 |
第4配送任务包 |
26 |
77 |
22 |
92 |
46 |
第5配送任务包 |
58 |
45 |
31 |
42 |
91 |
步骤335,获取配送任务包与配送资源进行排列组合后的所述全局匹配得分的总和。
具体地,对配送任务包与配送资源进行排列组合后,计算获取全局匹配得分的总和。
在一个例子中,根据上述表格,5个配送资源和5个配送任务包,其排列组合有120种,即此时存在的120种分配结果。对其每种排列组合的全局匹配得分进行求和。
步骤345,将全局匹配得分的总和最高的配送任务包与配送资源的排列组合的方式作为所述全局最优分配方式。
具体地,根据步骤335中的全局匹配得分的求和结果进行排序,将全局匹配得分总和最高的配送任务包与配送资源的排列组合作为全局最优分配方式,执行步骤306。
在一个例子中,对上述120种排列组合进行全局匹配得分的总和后,其最高的排列组合为:将第1配送任务包分配给第1个配送资源,将第2配送任务包分配给第2个配送资源,将第3配送任务包分配给第3个配送资源,将第4配送任务包分配给第4个配送资源,将第5配送任务包分配给第5个配送资源。将此分配方式,作为全局最优分配方式后,执行步骤306。
步骤306,按照全局最优分配方式将待分配任务指令分配给配送资源。
需要说明的是,本实施方式中的上述各示例均为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中,完成M待分配任务指令的预分配之后,将待分配任务指令分配给配送资源之前,将单个骑手分配到的订单作为一个订单包,得到N个订单包,根据当前场景和骑手信息,对订单包的分配进行微调,得到全局最优分配方案,实现全局最优分配。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种配送任务的分配装置,如图4所示,该装置包括:
获取模块401,用于接收来自各客户端的指令,得到客户端的指令集;
分析模块402,用于解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;
预分配矩阵获取模块403,用于对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;
具体地,预分配矩阵获取模块403,具体包括:获取单元,用于对第i个待分配任务指令分配给第j个配送资源时进行路径规划和仿真模拟,获取配送特征信息,并将所述配送特征信息分别输入到不同类型的预设模型中,所述预设模型用于输出所述第i个待分配任务指令与所述第j个配送资源的预得分;统计单元,用于累加所有不同类型的预设模型输出的所述第i个待分配任务指令与第j个配送资源的预得分,得到所述第i个待分配任务指令与所述第j个配送资源的匹配得分。
更具体地,模拟单元具体包括以下子单元的其中两种:超时子单元、背单子单元、路径子单元、均衡子单元、压力子单元。
超时子单元,用于结合配送特征信息中配送总超时时间进行判断,给出相应的预得分分数;背单子单元,用于结合配送特征信息中配送资源的背单量进行判断,给出相应的预得分分数;路径子单元,用于结合配送特征信息中待分配任务指令的热门配送路径进行判断,给出相应的预得分分数;均衡子单元,用于结合配送特征信息中配送希望的背单量与实际背单量是否符合,给出相应的预得分分数;压力子单元,用于结合配送特征信息中配送资源的配送压力进行判断,给出相应的预得分分数。
分配模块404,用于根据预分配矩阵获取每一个待分配任务指令的最优分配结果;根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,根据预分配结果将M个待分配任务指令分配给N个配送资源;其中,最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
具体地,分配模块404具体包括:分析单元,用于根据预分配矩阵获取每一个待分配任务指令的最优分配结果,并分析每一个待分配任务指令的最优分配结果;处理单元,用于在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,将目标分配任务的最优分配结果作为预分配结果;更新单元,用于将M更新为M-1,对更新后的M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到更新后的M×N的预分配矩阵;分配单元,完成M个待分配任务指令的预分配后,按照M个待分配任务指令的预分配结果,用于将M个待分配任务指令分配给N个配送资源。
更具体地,处理单元具体包括:判断子单元,用于判断M个待分配任务指令按照最优分配结果对应的配送资源是否处于空载状态;第一处理子单元,用于将处于空载状态的配送资源按照最优分配结果对应的待分配任务指令优先作为目标分配任务;第二处理子单元,用于对不处于空载状态的配送资源,按照M个待分配任务指令的最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为目标分配任务。
需要说明的是,在其他实施例中,分配模块404还包括:全局分配单元,用于对M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式;分配单元用于按照全局最优分配方式,将M个待分配任务指令分配给N个配送资源。
具体地,全局分配单元具体包括:获取子单元,用于获取N个配送资源分别被分配的配送任务包,配送任务包为预分配的结果中分配给该配送资源的所有待分配任务指令;分析子单元,用于对N个配送任务包与N个配送资源进行一一对应匹配程度进行打分,获得全局匹配得分;计算子单元,用于获取N个配送任务包与N个配送资源进行排列组合后的全局匹配得分的总和;第三处理子单元,用于将全局匹配得分的总和最高的N个配送任务包与N个配送资源的排列组合的方式作为全局最优分配方式。
不难发现,本实施方式为与第一、第二或第三实施方式相对应的装置实施例,本实施方式可与第一、第二或第三实施方式互相配合实施。第一、第二或第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一。
第二或第三实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明的第四实施方式涉及一种电子设备,如图5所示,该电子设备包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;以及,与处理器501和存储器502通信连接的通信组件503,通信组件503在处理器501的控制下接收和发送数据;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行以实现:
接收来自各客户端的指令,得到客户端的指令集;通过至少一个处理器解析指令集,获取指令集中的M个待分配任务指令,M为大于0的自然数;通过至少一个处理器,对M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,N为大于0的自然数,i小于或等于M,j小于或等于N;通过至少一个处理器,根据预分配矩阵获取每一个待分配任务指令的最优分配结果;根据每一个待分配任务指令的最优分配结果对预分配矩阵进行迭代求解,获取M个待分配任务指令的预分配结果,根据预分配结果将M个待分配任务指令分配给N个配送资源;其中,最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
具体地,该服务器包括:一个或多个处理器501以及存储器502,图5中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述配送任务的配送任务的分配方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器502,这些远程存储器502可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的配送任务的分配方法。
上述产品可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。
本发明第五实施方式涉及一种非易失性存储介质,用于存储计算机可读程序。计算机可读程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
本申请实施方式提供A1.一种配送任务的分配方法,包括:
接收来自各客户端的指令,得到客户端的指令集;
通过至少一个处理器解析所述指令集,获取所述指令集中的M个待分配任务指令,所述M为大于0的自然数;
通过至少一个处理器,对所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;所述预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,所述N为大于0的自然数,i小于或等于所述M,j小于或等于所述N;
通过至少一个处理器,根据所述预分配矩阵获取每一个待分配任务指令的最优分配结果;根据所述每一个待分配任务指令的最优分配结果对所述预分配矩阵进行迭代求解,获取所述M个待分配任务指令的预分配结果,根据所述预分配结果将所述M个待分配任务指令分配给所述N个配送资源;
其中,所述最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
A2.根据A1所述的配送任务的分配方法,所述根据所述每一个待分配任务指令的最优分配结果对所述预分配矩阵进行迭代求解,获取所述M个待分配任务指令的预分配结果,具体包括:
通过至少一个处理器重复下述步骤,直至获取所述M个待分配任务指令的预分配结果:
分析所述每一个待分配任务指令的最优分配结果,在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,将所述目标分配任务的所述最优分配结果作为预分配结果;将所述M更新为M-1,对更新后的所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到更新后的M×N的预分配矩阵。
A3.根据A2所述的配送任务的分配方法,所述在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,具体包括:
通过至少一个处理器,判断所述M个待分配任务指令按照最优分配结果对应的配送资源是否处于空载状态;
将处于空载状态的配送资源按照最优分配结果对应的待分配任务指令优先作为所述目标分配任务;
对不处于空载状态的配送资源,按照所述M个待分配任务指令的最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为所述目标分配任务。
A4.根据A1所述的配送任务的分配方法,完成所述获取所述M个待分配任务指令的预分配结果之后,所述根据所述预分配结果将所述M个待分配任务指令分配给所述N个配送资源之前,还包括:
通过至少一个处理器,对所述M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式;
按照所述全局最优分配方式,将所述M个待分配任务指令分配给所述N个配送资源。
A5.根据A4所述的配送任务的分配方法,所述通过至少一个处理器,对所述M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式,具体包括:
通过至少一个处理器,获取所述N个配送资源分别被分配的配送任务包,所述配送任务包为所述预分配的结果中分配给该配送资源的所有待分配任务指令;
通过至少一个处理器,对所述N个配送任务包与所述N个配送资源进行一一对应匹配程度进行打分,获得全局匹配得分;
通过至少一个处理器,获取所述N个配送任务包与所述N个配送资源进行排列组合后的所述全局匹配得分的总和;
将全局匹配得分的总和最高的N个配送任务包与所述N个配送资源的排列组合的方式作为所述全局最优分配方式。
A6.根据A1所述的配送任务的分配方法,所述通过至少一个处理器,对所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵,具体包括:
通过至少一个处理器重复下述步骤,直至得到所述M×N的预分配矩阵:
对第i个待分配任务指令分配给第j个配送资源时进行路径规划和仿真模拟,获取配送特征信息;
将所述配送特征信息分别输入到不同类型的预设模型中,所述预设模型用于输出所述第i个待分配任务指令与所述第j个配送资源的预得分;
累加所有不同类型的预设模型输出的所述第i个待分配任务指令与第j个配送资源的预得分,得到所述第i个待分配任务指令与所述第j个配送资源的匹配得分。
A7.根据A6所述的配送任务的分配方法,所述不同类型的预设模型至少包括以下模型的其中两种:
波次超时模型、骑手背单模型、热门路径模型、均衡系数模型、压力系数模型。
本申请实施方式提供B1.一种配送任务的分配装置,包括:
获取模块,用于接收来自各客户端的指令,得到客户端的指令集;
分析模块,用于解析所述指令集,获取所述指令集中的M个待分配任务指令,所述M为大于0的自然数;
预分配矩阵获取模块,用于对所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;所述预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,所述N为大于0的自然数,i小于或等于所述M,j小于或等于所述N;
分配模块,用于根据所述预分配矩阵获取每一个待分配任务指令的最优分配结果;根据所述每一个待分配任务指令的最优分配结果对所述预分配矩阵进行迭代求解,获取所述M个待分配任务指令的预分配结果,根据所述预分配结果将所述M个待分配任务指令分配给所述N个配送资源;其中,所述最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
B2.根据B1所述的配送任务的分配装置,所述分配模块具体包括:
分析单元,用于根据所述预分配矩阵获取每一个待分配任务指令的最优分配结果,并分析所述每一个待分配任务指令的最优分配结果;
处理单元,用于在所有待分配任务指令中选取一个待分配任务指令作为目标配送任务,将所述目标分配任务的所述最优分配结果作为预分配结果;
更新单元,用于将所述M更新为M-1,对更新后的所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到更新后的M×N的预分配矩阵;
分配单元,完成所述M个待分配任务指令的预分配后,按照所述M个待分配任务指令的预分配结果,用于将所述M个待分配任务指令分配给所述N个配送资源。
B3.根据B2所述的配送任务的分配装置,所述处理单元具体包括:
判断子单元,用于判断所述M个待分配任务指令按照最优分配结果对应的配送资源是否处于空载状态;
第一处理子单元,用于将处于空载状态的配送资源按照最优分配结果对应的待分配任务指令优先作为所述目标分配任务;
第二处理子单元,用于对不处于空载状态的配送资源,按照所述M个待分配任务指令的最优分配结果的匹配得分由高到低的顺序,将得分最高的待分配任务指令作为所述目标分配任务。
B4.根据B2所述的配送任务的分配装置,所述分配模块还包括:
全局分配单元,用于对所述M个待分配任务指令的预分配的结果进行调整,获取全局最优分配方式;
所述分配单元用于按照所述全局最优分配方式,将所述M个待分配任务指令分配给所述N个配送资源。
B5.根据B4所述的配送任务的分配装置,所述全局分配单元具体包括:
获取子单元,用于获取所述N个配送资源分别被分配的配送任务包,所述配送任务包为所述预分配的结果中分配给该配送资源的所有待分配任务指令;
分析子单元,用于对所述N个配送任务包与所述N个配送资源进行一一对应匹配程度进行打分,获得全局匹配得分;
计算子单元,用于获取所述N个配送任务包与所述N个配送资源进行排列组合后的所述全局匹配得分的总和;
第三处理子单元,用于将全局匹配得分的总和最高的N个配送任务包与所述N个配送资源的排列组合的方式作为所述全局最优分配方式。
B6.根据B1所述的配送任务的分配装置,所述预分配矩阵获取模块具体包括:
获取单元,用于对第i个待分配任务指令分配给第j个配送资源时进行路径规划和仿真模拟,获取配送特征信息,并将所述配送特征信息分别输入到不同类型的预设模型中,所述预设模型用于输出所述第i个待分配任务指令与所述第j个配送资源的预得分;
统计单元,用于累加所有不同类型的预设模型输出的所述第i个待分配任务指令与第j个配送资源的预得分,得到所述第i个待分配任务指令与所述第j个配送资源的匹配得分。
B7.根据B6所述的配送任务的分配装置,所述不同类型的预设模型至少包括以下模型的其中两种:
波次超时模型、骑手背单模型、热门路径模型、均衡系数模型、压力系数模型。
本申请实施方式提供C1.一种电子设备,包括存储器和处理器,所述存储器存储计算机程序,所述处理器运行程序时执行:
接收来自各客户端的指令,得到客户端的指令集;
通过至少一个处理器解析所述指令集,获取所述指令集中的M个待分配任务指令,所述M为大于0的自然数;
通过至少一个处理器,对所述M个待分配任务指令和N个配送资源进行配送任务的路径规划和仿真模拟,得到M×N的预分配矩阵;所述预分配矩阵中的元素L(i,j)表示第i个待分配任务指令与第j个配送资源的匹配得分,所述N为大于0的自然数,i小于或等于所述M,j小于或等于所述N;
通过至少一个处理器,根据所述预分配矩阵获取每一个待分配任务指令的最优分配结果;根据所述每一个待分配任务指令的最优分配结果对所述预分配矩阵进行迭代求解,获取所述M个待分配任务指令的预分配结果,根据所述预分配结果将所述M个待分配任务指令分配给所述N个配送资源;其中,所述最优分配结果为,待分配任务指令分别与N个配送资源对应的匹配得分中,最高的匹配得分所对应的配送资源。
C2.根据C1所述的电子设备,所述处理器运行程序时执行如A2至A7中任一项所述的配送任务的分配方法。
本申请实施方式提供D1.一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如A1至A7中任一项所述的配送任务的分配方法。