具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述XXX,但这些XXX不应限于这些术语。这些术语仅用来将XXX区分开。例如,在不脱离本发明实施例范围的情况下,第一XXX也可以被称为第二XXX,类似地,第二XXX也可以被称为第一XXX。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
进一步值得说明的是,本发明各实施例中各步骤之间的顺序是可以调整的,不是必须按照以下举例的顺序执行。
图1a为本发明实施例提供的订单处理方法实施例一的流程图,本实施例提供的该订单处理方法可以由一订单处理装置来执行,该订单处理装置可以实现为软件,或者实现为软件和硬件的组合,该订单处理装置可以集成设置在物流调度平台侧的设备中,比如服务器中。如图1a所示,该方法包括如下步骤:
101、根据多个订单的总数获取实际分组容量,多个订单对应于同一集散地址。
102、根据多个订单各自的配送地址与集散地址的距离,选取当前的聚类中心订单。
103、基于实际分组容量,根据多个订单中未聚类订单与聚类中心订单的配送地址间距离,对未聚类订单进行聚类处理,以确定与聚类中心订单对应的订单组。
本发明实施例中的订单可以是快递订单,实际应用中,随着快递物品的配送过程,快递订单会经历至少一个集散地,从而,在到达某个集散地时,该订单会关联上该集散地址。从而,针对一个集散地址来说,基于此,可以获得该集散地址对应的订单,上述多个订单的总数即为某时间段内该集散地址对应的订单的总数量。
可选地,实际应用中,可以以一定的时间间隔来统计每个集散地址对应的订单,从而,获得同一集散地址对应的多个待分配的订单,以下本发明实施例中,仅以某个集散地址对应的多个订单为例进行订单处理方法的说明。
由于不同时刻,某个集散地址对应的订单数量可能不同,如果不管订单数量多少都固定设置每个订单分组的容量,对配送运力的高效利用不利。因此,本发明实施例中,适应于当前的订单数量来实时确定针对当前的多个订单,每个订单组的实际分组容量,即每个订单组能够容纳的订单个数。
针对101来说,在一种可选方式中,可以预先设置订单数量区间与实际分组容量的对应关系,从而,基于该对应关系以及当前的订单数量所处于的区间,确定当前采用的实际分组容量。
在另一可选方式中,上述实际分组容量的获取可以通过如下方式实现:
根据多个订单的总数和预设分组容量确定实际分组容量,以使实际分组容量接近所述预设分组容量。
可选地,其中,预设分组容量可以包括预设最小分组容量和预设最大分组容量,即由预设最小分组容量和预设最大分组容量构成了一个分组容量区间,从而,在一种具体实现方式中,可以根据多个订单的总数、预设最小分组容量和预设最大分组容量,结合如下条件获取实际分组容量:使多个订单的总数除以实际分组容量的余数大于预设最小分组容量,其中,实际分组容量为取自预设最小分组容量和预设最大分组容量之间的整数。
上述实现方式中,可以预先设定任一订单组的容量上下限,即最大分组容量和最小分组容量,实际分组容量取自上下限之间。上述多个订单的总数除以实际分组容量的余数,即为订单总数对实际分组容量取模。可选地,实际分组容量可以是使得该余数大于最小分组容量的最小容量值,即假设容量上下限之间有多个容量值能够满足该条件时,取满足该条件的最小容量值。
上述条件的实际意义在于:上述多个订单的订单总数很有可能不是实际分组容量的整数倍,即这多个订单往往不能正好平均划分为n个订单组。另上述余数尽量大于最小分组容量,是为了在按照该实际分组容量依次从上述多个订单中划分得到一个个订单组时,最后得到的订单组内的订单数量尽量多,这样对于配送运力的有效利用具有积极作用,因为这样能够一定程度上使得每个配送人员承接的订单量较为均衡,避免出现部分配送人员承接订单量过重,部分配送人员闲置的负载不均衡现象。
举例来说,实际应用中,上述预设分组容量可以通过如下方式确定:假设各配送人员的配送工具相同,即每个配送工具具有相同的运输能力,比如具有相同的体积大小,能够承载的总重量相同。针对一定历史时间段内的大量订单中的各订单,提取出其对应的需要配送的物品数量、物品重量、物品体积等参数,进而根据配送工具的比如承载总重量、体积的上限,统计确定配送工具能够承载的平均订单数量,该平均订单数量可以作为一种预设分组容量。当然,基于统计方式的不同,最终得到的预设分组容量的表现形式可能不同,比如,除了通过确定配送工具能够承载的平均订单数量外,还可以统计确定配送工具能够承载的最小订单数量、最大订单数量,即为上述最小分组容量、最大分组容量。
另外,值得说明的是,本发明实施例最终分组得到的各订单组可以具有相同的分组容量,即具有上述确定出的实际分组容量,但是,也可以是各订单组可以具有不完全相同的分组容量,比如某个或某些个订单组的分组容量是在该实际分组容量的基础上进行微调后的结果。其中,针对某个订单组来说,其分组容量微调的依据比如是:随着该订单组的生成过程,发现在该订单组内的订单容量还没有达到上述实际分组容量的限制时,该订单组内订单对应的总重量和/或总体积已经达到了配送工具的重量和/或体积的限制,此时,该订单组内的分组容量将小于实际分组容量的限制;相反的,如果发现在该订单组内的订单容量在已经达到上述实际分组容量的限制时,该订单组内订单对应的总重量和/或总体积还未达到配送工具的重量和/或体积的限制,此时,该订单组内的分组容量可以超过实际分组容量的限制。
综上,在某些场景中,本实施例中的实际分组容量可以理解为是一预估值,实际应用中,各订单组的订单容量可以在该预估值基础上存在浮动。
针对102和103来说,本发明实施例中,可选地,对多个订单进行分组划分的整体思想是:对于每个订单组的划分生成过程:首先选择聚类中心订单,从该聚类中心订单引出一个订单组;进而,以该聚类中心订单为基础,向该订单组中不断加入订单,即进行订单组内聚类处理,直到该订单组满足上述实际分组容量的限制,或者,满足其他订单组的聚类截止条件。之后,触发下一个订单组的划分生成过程,直到上述多个订单分组完毕。
其中,聚类中心订单的选择依据是根据订单的配送地址与集散地址之间的距离进行选择。加入上述订单组内订单的选择依据是未聚类订单与聚类中心订单之间的配送地址间距离。
其中,可选地,针对某聚类中心订单来说,其引出的订单组内订单的选择,可以是依据其他还未被聚类到某订单组的订单的配送地址与该聚类中心订单的配送地址之间的配送地址间来选择;除此之外,还可以进一步依据这些其他还未被聚类到某订单组的订单的配送地址与已经聚类到该聚类中心订单对应的订单组内的订单的配送地址间的距离来选择,将在后续详细说明。也就是说,在一可选方式中,当前的聚类中心订单确定之后,可以根据集散地址对应的多个订单中未聚类订单与该聚类中心订单的配送地址间距离,对未聚类订单进行聚类处理,以确定与聚类中心订单对应的订单组;在另一可选方式中,可以根据多个订单中未聚类订单与聚类中心订单对应的订单组内订单的配送地址间距离,对未聚类订单进行聚类处理。这里,未聚类订单是指该多个订单中还没有被聚类到一订单组内的各个订单。可以理解的是,在刚刚确定某个聚类中心订单时,其对应的订单组中仅包括该聚类中心订单,随着不断有订单加入到该订单组,该订单组内的订单不断更新,同时,未聚类订单也随之更新,因此,上述另一可选方式中,随着订单组内不断加入订单,上述未聚类订单以及订单组内订单是随时更新的。
可选地,在根据多个订单各自的配送地址与集散地址之间的距离依次进行每个订单组对应的聚类中心订单的选择时,既可以按照从靠近集散地址至远离集散地址的由近及远的方式来依次选择聚类中心订单,也可以按照从远离集散地址至靠近集散地址的由远及近的方式来依次选择聚类中心订单。
但是,在基于前述说明的订单分组的整体思想的情况下,在一种可选的订单组内订单的选择方式下,由近及远的方式容易导致最后得到的一个或几个订单组内的订单,其配送地址在空间上较为分散,不利于配送运力的提高,因此,结合采用的订单组内订单选择方式的不同,聚类中心订单的选择亦可不同。
另外,在进行当前的聚类中心订单选择时,可选地,可以一次选择出一个或多个聚类中心订单,比如一次选择出两个聚类中心订单。其中,在一次选择出多个聚类中心订单时,为保证多个聚类中心订单所对应的订单组内的订单在地理位置上具有较为明显的差异性,该多个聚类中心订单的配送地址之间应该相距较远,因此,实际应用中,可以合理设置不同聚类中心订单的配送地址间距离的距离阈值,以便进行不同聚类中心订单的合理选择。
具体地,在根据多个订单各自的配送地址与集散地址的距离选取当前的聚类中心订单时,可以先根据当前多个订单各自关联的聚类状态标记,从多个订单中筛选出未聚类订单,进而,根据这些未聚类订单各自的配送地址与集散地址的距离,从这些未聚类订单中选出距离集散地址最远的订单作为当前的聚类中心订单。
对于上述聚类中心订单的选择,在一可选实现方式中,初始情况时即还未进行正式的订单分组处理时,可以预先构建反映集散地址与各订单的配送地址之间距离的距离矩阵。从而,对于第一个订单组来说,可以从该距离矩阵中选择出一个订单作为第一个聚类中心订单,例如将最大距离值对应的订单作为第一个聚类中心订单,进而进行该第一个聚类中心订单对应的第一个订单组内订单的聚入处理过程。并且,在该过程中,可选地,可以在每当确定一个订单加入该第一订单组时,将该加入的订单标记为已聚类。从而,在第一个订单组生成完毕,需要进行第二个订单组的生成时,可以基于该标记,从距离矩阵中先筛选出没有标记即未聚类的订单与聚类中心订单的距离值,再从中确定第二个聚类中心订单,例如将最大距离值对应的订单作为第二个聚类中心订单。后续其他聚类中心订单的选择过程与之类似,不再赘述。
为便于理解,举例来说,如图1b所示,假设当前的时机为初始情况时,并且假设多个订单分别表示为a、b、c、d、e、f,每个订单对应的实心圆点表征对应的配送地址,集散地址表示为Z。由于初始情况下所有订单还没有被进行分组划分,所以每个订单关联的聚类状态标记都为未聚类状态,因此,此时需要根据所有订单即订单a、b、c、d、e、f各自的配送地址与集散地址的距离,从所有订单中选出距离集散地址最远的订单作为当前的聚类中心订单,图中示意的订单a的配送地址距离集散地址最远,因此,当前选择订单a作为聚类中心订单,并且假设该聚类中心订单a引出的订单组表示为订单组1。接下来需要执行针对订单组1的订单聚类处理过程。
在针对当前的聚类中心订单引出的订单组比如上述举例中的订单组1进行订单聚类处理之前,比如在初始情况时,在一可选实现方式中,可以预先针对每个订单,构建其对应的配送地址间距离矩阵。对于某订单来说,其对应的配送地址间距离矩阵的含义是:该订单的配送地址与其他订单的配送地址之间的距离即配送地址间距离,以便于基于该配送地址间距离矩阵进行后续的聚类处理。另外,每个订单的配送地址间距离矩阵中的每个元素即每个距离值还可以关联有聚类状态标记,如果对应的订单已经被聚类到某个订单组,则该标记置为已聚类状态标识,反之,置为未聚类状态标识。
比如,在基于当前订单组的实际分组容量,根据多个订单中未聚类订单与当前的聚类中心订单的配送地址间距离,对未聚类订单进行聚类处理以确定与该聚类中心订单对应的订单组的聚类处理方式中:基于该聚类中心订单对应的配送地址间距离矩阵,以及结合矩阵中各距离值关联的聚类状态标记,可以获知当前的各个未聚类订单相对该聚类中心订单的配送地址间距离;进而,以实际分组容量为该订单组内订单数量约束,从未聚类订单中选择出对应的距离值最大的n个订单加入该订单组,n取值为实际分组容量减一。从而,该聚类中心订单对应的订单组生成完毕。
为方便理解,继续以前述举例来说,由于预先已经确定出订单组1对应的实际分组容量,比如为3个订单,因此,在一可选方式中,可以以聚类中心订单a的配送地址为基准,从其他订单b、c、d、e、f中选择出配送地址相距该聚类中心订单a的配送地址最近的两个订单,假设为订单b、c加入订单组1,从而,订单组1中包括了订单a、b、c三个订单。
值得说明的是,上述一订单对应的配送地址间距离矩阵的构建时机,并非局限于前述举例的初始情况时,而且,该订单与其他各订单之间的配送地址间距离也不局限于一次全部计算完毕。比如,在确定出某聚类中心订单,该聚类中心订单引出一订单组时,构建该聚类中心订单对应的配送地址间距离矩阵,以基于该矩阵选择出加入该订单组的一个或多个订单;之后,如果该订单组内订单数量没有达到实际分组容量的限制,则此时可以再构建刚加入该订单组的订单所对应的配送地址间距离矩阵,而此时,刚加入该订单组的订单所对应的配送地址间距离矩阵中可以仅包含其与未聚类订单的配送地址间距离,可以不用计算其与订单组内订单的配送地址间距离。
除上述以当前的聚类中心订单的配送地址为基准,根据其他未聚类订单与该聚类中心订单的配送地址间距离来选择相距聚类中心订单最近的一定数量的订单组成该聚类中心订单对应的订单组外,本发明实施例还提供了另一种可选方式进行订单组中订单的聚类处理,即为前述提及的根据多个订单中未聚类订单与聚类中心订单对应的订单组内订单的配送地址间距离,对未聚类订单进行聚类处理。具体过程可以为:
迭代执行如下过程,直到满足订单组对应的聚类截止条件:
根据当前订单组内订单与当前的未聚类订单的配送地址间距离,从当前的未聚类订单中选择出相对订单组最近的订单;
将选择出的订单加入当前的订单组;
更新未聚类订单。
其中,可选地,聚类截止条件包括:当前订单组的订单数达到实际分组容量。
为便于理解,仍以前述举例来说,在首次迭代过程中,基于前述聚类中心订单的选择过程,已经确定订单a为当前的聚类中心订单,引出订单组1,即此时如图1b所示,订单组1中仅包含有订单a。由于当前其他订单都处于未聚类状态,即都为未聚类订单,因此,可以基于订单a的配送地址间距离矩阵,从当前的未聚类订单b、c、d、e、f中选出相对于订单a最近的订单,亦即相对当前的订单组1最近的订单。本实施例中,为描述方便,将选出的相对当前的订单组最近的订单,称为待聚入订单,表示等待聚入到当前的订单组内的订单的含义。假设未聚类订单b的配送地址与订单a的配送地址之间的距离小于其他未聚类订单的配送地址与订单a的配送地址之间的距离,则可以从未聚类订单中选出订单b作为当前的待聚入订单,将其加入到订单组1中,如图1c所示。此时,由于订单b已经被加入到订单组1中,则订单b的聚类状态标记变为已聚类状态,更新未聚类订单后,未聚类订单变为订单c、d、e、f。此时,判断当前订单组1内的订单数是否已经达到实际分组容量3,由于当前订单组1内仅包括了订单a和b,还没有达到3个订单,因此执行下一次迭代过程。
在执行第二次迭代过程时,如图1c所示,当前订单组1内包括了订单a和b,当前的未聚类订单包括订单c、d、e、f。此时,在执行根据当前订单组内订单与当前的未聚类订单的配送地址间距离,从当前的未聚类订单中选择出相对订单组最近的订单的过程中,首先针对当前订单组1内的订单a,基于其对应的配送地址间距离矩阵,从当前的未聚类订单c、d、e、f中确定出配送地址与订单a的配送地址之间的距离最近的未聚类订单,假设订单c的配送地址与订单a的配送地址之间的距离小于其他未聚类订单即d、e、f的配送地址分别与订单a的配送地址之间的距离,则确定订单c为相对订单a最近的订单。同理,针对当前订单组1内的订单b,基于其对应的配送地址间距离矩阵,从当前的未聚类订单c、d、e、f中确定出配送地址与订单b的配送地址之间的距离最近的未聚类订单,假设订单d的配送地址与订单b的配送地址之间的距离小于其他未聚类订单即c、e、f的配送地址分别与订单b的配送地址之间的距离,则确定订单d为相对订单b最近的订单。那么,此时,针对当前订单组1来说,订单c、d构成了一个候选订单集合,而相对当前订单组1最近的待聚入订单就是从该候选订单集合中选择出该待聚入订单,加入到订单组1中。
其中,相对当前订单组1最近的订单即待聚入订单的选择依据是:当前订单组1内各订单对应的最短配送地址间距离中的最小值所对应的订单即为相对当前订单组1最近的订单亦即待聚入订单。
其中,该最短配送地址间距离是相对于订单来说的,简单来说,某个订单对应的最短配送地址间距离是指:该订单的配送地址与当前的各未聚类订单的配送地址之间的距离中的最短距离。比如针对当前订单组1内的上述订单a来说,未聚类订单c、d、e、f中,相比于订单d、e、f,订单c的配送地址与订单a的配送地址间距离最短,故而称为最短配送地址间距离。
而最短配送地址间距离中的最小值是针对订单组来说的,简单来说,当前该订单组内包含的每个订单都对应有一个最短配送地址间距离,最小值就是指这些最短配送地址间距离中的最小值。对于上述举例中的订单组1来说,由于当前订单组1内订单数量不为1,即针对其中的每个订单都有与之对应的最短配送地址间距离,所有的最短配送地址间距离中的最小值所对应的那个未聚类订单,即为当前的待聚入到订单组内的订单,也就是相对当前订单组最近的订单。假设上述订单a与订单c的最短配送地址间距离为D1,订单b与订单d的最短配送地址间距离为D2,且假设D1小于D2,则确定订单c为当前的待聚入订单,将其加入到订单组1中,如图1d所示。此时,订单c的聚类状态标记变为已聚类状态,更新未聚类订单后,未聚类订单变为订单d、e、f。此时,判断当前订单组1内的订单数是否已经达到实际分组容量3,由于当前订单组1内包括订单a、b和c,已经达到3个订单,则以订单a为聚类中心订单的订单组1分组完毕。此时,更新未聚类订单后,未聚类订单为订单d、e、f。值得说明的是,如果假设上述实际分组容量为4,则针对上述订单组1来说,当前订单组1内包括订单a、b和c,还没有达到4个订单的容量限制,则继续执行下一次迭代过程,即第三次迭代过程,具体的过程与第二次迭代过程类似。
在订单组1分组完毕之后,可以进行下一个聚类中心订单的选择,以及以下一个聚类中心订单引出的订单组2的订单聚类处理过程,如图1e所示,假设根据当前未聚类订单为订单d、e、f,则根据这些未聚类订单分别与集散地址之间的距离,从中选择出距离集散地址最远的订单为d,则订单d作为第二个聚类中心订单,引出订单组2。进而,参见前述向订单组1聚类订单的过程的说明,不断向订单组2中加入订单,假设聚类截止条件为订单组内订单数达到实际分组容量3,则如图1f所示,最终,订单组2中包括了订单d、e、f三个订单。至此,所有订单已经分组完毕。
通过上述说明可知,本发明实施例中,相对于一订单组或者下述实施例中提及到的一个订单集合的最近订单,可以根据如下方式确定:首先从该组/集合内每个订单对应的配送地址间距离矩阵中确定出具有未聚类状态标记的最小距离值,进而比较确定出的各最小距离值,从中选择出最小值,即从多个最小距离值中选出最小值,该最小值对应的未聚类订单,作为该组/集合当前对应的最近订单。
另外,上述订单组内订单的聚类处理过程中,聚类截止条件可以是订单组内订单数达到实际分组容量的限制,如此,能够保证最终得到的全部订单组具有相对均衡的订单容量。除此之外,可选地,该聚类截止条件还可以包括:选择出的即待聚入到订单组内的订单相对订单组的最近距离大于或等于预设距离阈值。该条件进一步保证同一订单组内的订单在空间范围上相对集中,避免配送人员需要在过于宽广的范围内完成一组订单的配送。
仍以上述举例来说,针对第二次迭代过程来说,已经选择出的订单为订单c,且订单c与订单a的配送地址间距离为D1,如果D1大于或等于预设距离阈值,说明该订单c相对订单组1内订单来说相距较远,此时,不将订单c加入订单组1,则此时订单组1最终将仅包括订单a、b,订单数未达到实际分组大小。实际应用中,可以通过合理设置该距离阈值,在订单组容量和空间范围集中性间进行折中。
综上,以上实施例中,当某集散地存在多个订单需要进行配送时,首先根据订单总量适应性地确定每个订单分组的实际分组容量,进而以该实际分组容量为约束,对多个订单进行分组处理。其中,分组处理过程中,首先基于多个订单各自的配送地址与集散地址的距离选取当前的聚类中心订单,该聚类中心订单引起一个订单组,进而,根据多个订单中未聚类订单与该聚类中心订单的配送地址间距离对未聚类订单进行聚类处理,以获取该聚类中心订单所引起的订单组内的订单,形成一个订单组。本方案中,由于每个分组的聚类中心订单是基于订单配送地址与集散地的距离选定的,每个分组内的订单是基于未聚类订单与聚类中心订单的配送地址之间的距离而聚类确定的,使得不同分组的配送范围有明显差异,同一分组内的订单的配送地址具有较强集聚性,且分组大小与订单量相适应,从而,有利于保证每个配送人员被分配到的订单组大小与实际运力匹配且配送范围比较集中,整体来说,可以提高配送运力的利用率。
实际配送过程中,由于需配送物品的体积、重量往往各不相同,在上述以实际分组容量为聚类截止条件时,可能会出现对于一个订单组,虽然该订单组内订单数量达到了实际分组容量的限制,但是,实际配送过程中发现,这个订单组内订单对应的物品可能不足以供一次配送运输,这对配送运力的有效利用不利。而相反地,如果这个订单组内订单对应的物品稍微超过一次配送运输的运力,实际配送过程中还可以通过一定方法将一组订单对应的物品一次运输完毕。因此,本发明实施例在通过前述实施例的方式得到当前聚类中心订单对应的订单组比如上述举例的订单组1后,还提供了额外的补充订单的手段。
其中,补充订单的前提是基于当前确定出的实际分组容量是否已经达到预设的最大分组容量,因为实际应用中,最大分组容量往往是全面统计、考虑了影响配送运力利用率的多方面因素而设定的,如果实际分组容量小于预设最大分组容量,说明对于当前的订单组1,还可以适当补入一定数量的、满足一定条件的未聚类订单。即可选地,若实际分组容量小于预设最大分组容量,则根据当前订单组内订单与当前的未聚类订单的配送地址间距离,可以向当前的订单组补充订单。当然,如果当前的未聚类订单中不存在满足该一定条件的订单可以补入订单组1,则补充过程结束。也就是说,可选地,若实际分组容量小于预设最大分组容量,则可以执行一次或多个迭代过程,以向订单组1依次补入满足一定条件的订单,理想情况下,一致补充至直到满足补充截止条件为止。
下面结合图2a和图3a所示实施例,介绍两种补充订单的可选实现方式。
图2a为本发明实施例提供的订单处理方法实施例二的流程图,如图2a所示,在执行完一次103之后,还可以包括如下步骤:
201、根据当前订单组内订单与当前的未聚类订单的配送地址间距离,从当前的未聚类订单中选择出相对订单组最近的待补充订单。
仍以前述实施例中的举例来说,假设当前已经分组完毕订单组1,其中,订单组1中包含了订单a、b和c。当前的未聚类订单为订单d、e、f。按照前述实施例中提供的订单选择方式,假设订单d为相对订单组1最近的订单,即为待补充订单。具体地,假设订单d、e、f中,配送地址与订单a的配送地址间距离最近的订单为订单d,且假设订单a与订单d的配送地址间距离为D1;配送地址与订单b的配送地址间距离最近的订单为订单e,且假设订单b与订单e的配送地址间距离为D2;配送地址与订单c的配送地址间距离最近的订单为订单f,且假设订单c与订单f的配送地址间距离为D3,且假设D1、D2、D3中D1最小,则确定订单d为相对当前订单组1最近的待补充订单,相对订单组1的最近距离为D1。
202、根据待补充订单与剩余未聚类订单集合内订单的配送地址间距离,确定待补充订单相对剩余未聚类订单集合的最近距离;其中,剩余未聚类订单集合由除了待补充订单之外的未聚类订单组成。
本实施例中,当从当前的未聚类订单d、e、f中确定出相对订单组1最近的订单d之后,可以将剩余的未聚类订单e、f视为一个整体,构成剩余未聚类订单集合。进而,通过计算订单d与该集合中订单e、f分别对应的配送地址间距离,确定订单d相对剩余未聚类订单集合的最近距离。假设订单d与订单e的配送地址间距离为D4,订单d与订单f的配送地址间距离为D5,若D4小于D5,则确定D4为订单d相对剩余未聚类订单集合的最近距离。
203、判断待补充订单相对订单组的最近距离是否小于待补充订单相对剩余未聚类订单集合的最近距离,若小于,则执行204,否则,结束。
204、将待补充订单加入所述订单组,更新未聚类订单。
205、判断订单组的订单数是否达到预设最大分组容量,若否,则继续执行201,若是,则结束。
由此可知,本实施例中,订单补充过程是一迭代过程,且迭代的补充截止条件包括:订单组的订单数达到预设最大分组容量,或者,待补充订单相对订单组的最近距离大于或等于待补充订单相对剩余未聚类订单集合的最近距离。
如图2b所示,比较订单d与订单a的配送地址间距离D1和订单d与订单e的配送地址间距离D4,如果D1小于D4,则将订单d加入到订单组1中,如图2c所示,此时,订单组1中的订单为a、b、c、d。更新未聚类订单,则当前的未聚类订单更新为:订单e、f。如果此时订单组1内的订单数已经达到预设的最大分组容量,则结束,获得最终的订单组1;如果此时订单组1内的订单数还未达到预设的最大分组容量,则进行下一个待补充订单的选择,选择方式与订单d的选择方式一致,不赘述。
图3a为本发明实施例提供的订单处理方法实施例三的流程图,如图3a所示,在执行完一次103之后,还可以包括如下步骤:
301、根据当前订单组内订单与当前的未聚类订单的配送地址间距离,从当前的未聚类订单中选择出相对订单组最近的待补充订单。
302、根据待补充订单与补充订单集合中订单的配送地址间距离,确定待补充订单相对补充订单集合的最近距离。
303、判断待补充订单相对订单组的最近距离是否小于待补充订单相对补充订单集合的最近距离,若小于,则执行304,否则,结束。
304、将待补充订单加入订单组,并将待补充订单加入补充订单集合,更新未聚类订单。
305、判断订单组的订单数是否达到预设最大分组容量,若否,则继续执行301,若是,则结束。
由此可知,本实施例中,订单补充过程是一迭代过程,且迭代的补充截止条件包括:订单组的订单数达到预设最大分组容量,或者,待补充订单相对订单组的最近距离大于或等于待补充订单相对补充订单集合的最近距离。
本实施例中,当确定实际分组容量小于预设最大分组容量时,首先生成一补充订单集合,初始时,该补充订单集合为空。
之后,根据前述实施例中的说明,假设当前订单组1中订单为订单a、b、c,当前的未聚类订单包括订单d、e、f。按照前述实施例中提供的订单选择方式,假设订单d为相对订单组1最近的订单,即为当前的待补充订单,且假设订单d相对订单组1的最近距离为D1。由于此时补充订单集合中为空,当补充订单集合为空时,可以认为当前的待补充订单d相对补充订单集合的最近距离为无限大,则此时,待补充订单d相对订单组1的最近距离小于其相对补充订单集合的最近距离,将待补充订单d加入订单组1,并将待补充订单d加入补充订单集合,如图3b所示。进而,更新未聚类订单,更新后的未聚类订单为订单e、f。
此时,当前订单组1内包括订单a、b、c、d,假设该组内订单数还没有达到预设最大分组容量,则进而迭代执行下一个待补充订单的选择过程。
在该次迭代过程中,同样地,首先从当前的未聚类订单e和f中选择出相对当前包括订单a、b、c、d的订单组1的待补充订单,假设选择订单e为当前的待补充订单,且假设订单e相对当前的订单组1的最近距离为D2。之后,确定订单e相对补充订单集合的最近距离,由于当前补充订单集合中仅包括了订单d,因此,此时该最近距离即为订单e与订单d的配送地址间距离,假设为D3。当然,可以理解的是,如果当前补充订单集合中的订单数量多于一个,则分别计算待补充订单与补充订单集合中各订单的配送地址间距离,从中选择最短的配送地址间距离作为待补充订单相对补充订单集合的最近距离。
进而,如图3c所示,比较D2与D3的大小,如果D2小于D3,则将待补充订单e加入订单组1,并将待补充订单e加入补充订单集合,如图3d所示。反之,如果D2小于D3,则丢弃待补充订单e,结束订单组1的分组处理。
通过上述图2a、图3a所示实施例的订单补充手段,在以实际分组容量为限制的订单组内订单聚类处理,得到一个订单组之后,如果实际分组容量还未达到最大分组容量限制,则可以进一步将相对该订单组内订单,在空间范围内具有明显集中性的订单补充加入到该订单组内,从而使得每个配送人员一次能够配送更多订单,可以进一步提高配送运力的利用率。
在基于前述各实施例提供的方法得到最终的多个订单组后,还可以通过一定的调整策略来微调各订单组内的订单,以克服可能的订单组分组结果不合理问题。比如针对某个订单组来说,可以根据该订单组内订单与其他订单组内订单的配送地址间距离,调整该订单组内订单的归属。可选地,可以结合图4a所示实施例来实现该调整过程。
图4a为本发明实施例提供的订单处理方法实施例四的流程图,如图4a所示,可选地,在对当前的集散地址对应的多个订单都执行完毕分组处理后,还可以包括如下步骤:
401、针对订单组内的任一订单,根据该任一订单与该订单组内其他订单的配送地址间距离,确定该任一订单相对该订单组内其他订单的第一最近距离。
402、根据该任一订单与其他订单组内订单的配送地址间距离,确定该任一订单相对其他订单组内订单的第二最近距离。
403、若第一最近距离大于第二最近距离,则将该任一订单加入到第二最近距离对应的订单所属的其他订单组。
本实施例中,比如对多个订单分组最终得到了图4b所示的订单组1和订单组2之后,还可以通过一定的调整策略来微调各订单组内的订单,以克服可能的订单组分组结果不合理问题。比如,发现某个归属于订单组1的订单,与订单组2内的订单更加具有相似性,比如空间位置上更加贴近订单组2,则可以通过该调整过程进行调整,将其重新归属至订单组2中。
具体举例来说,假设订单组1内的订单包括订单a、b、c,订单组2内的订单包括订单d、e、f,针对订单组1中的任一订单c来说,分别计算其与订单组1内的其他订单即订单a、b之间的配送地址间距离,假设分别为D1、D2。从D1、D2中选择最小的配送地址间距离作为订单c相对该订单组1内其他订单的第一最近距离,假设D1小于D2,则确定第一最近距离为D1,如图4c所示。可以理解的是,针对订单组1中的订单a、b来说,计算方式与订单c的计算方式一致,不再赘述。
另外,再分别计算订单c与除订单组1外的其他订单组即订单组2内的各订单之间的配送地址间距离,假设订单c与订单d间的配送地址间距离为D3,订单c与订单e间的配送地址间距离为D4,订单c与订单f间的配送地址间距离为D5。从D3、D4、D5中选择最小的配送地址间距离作为订单c相对订单组1外其他订单的第二最近距离,假设D3、D4、D5中D3最小,则确定第二最近距离为D3,如图4c所示。
进而,比较D1与D3,若发现D1大于D3,说明订单c相对订单组2中订单的距离比相对自身当前归属的订单组1的距离更近,则将该订单c重新调整加入到订单组2中,如图4d所示。
本实施例中,通过在订单组分组之后,结合订单相对当前归属的订单组的最近距离以及该订单相对其他订单组的最近距离,对该订单的归属进行调整,以保证同一订单组内的订单具有更加明显的位置集聚性,不同订单组的订单具有更加明显的位置分散性,以避免同一配送人员需要行走更多的路途才能完成一个订单组的配送,提高配送运力的利用率。
图5为本发明实施例提供的订单处理方法实施例五的流程图,如图5所示,在103之后,还可以包括如下步骤:
501、采用最短路径算法,规划订单组内订单的配送路径。
本实施例中,为了在配送人员的配送过程中,为配送人员提供更好的辅助,在对多个订单进行分组,得到各个订单组后,还可以针对每个订单组,对其中订单的配送过程进行导航路径规划。其中,导航路径规划的原则可以是最短路径原则。
举例来说,可以通过调用电子地图或者使用地图数据,,按照总路径最小原则,规划得到相应的导航路径。
以下将详细描述本发明的一个或多个实施例的订单处理装置。这些订单处理装置可以被实现在服务器的基础架构中,或者实现在客户端与服务器的交互架构中。本领域技术人员可以理解,这些订单处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的订单处理装置实施例一的结构示意图,如图6所示,该装置包括:获取模块11、选择模块12、聚类处理模块13。
获取模块11,用于根据多个订单的总数获取实际分组容量,所述多个订单对应于同一集散地址。
选择模块12,用于根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单。
聚类处理模块13,用于基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。
可选地,该聚类处理模块13具体用于:基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单对应的订单组内订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。
可选地,所述获取模块11具体用于:
根据所述多个订单的总数和预设分组容量确定所述实际分组容量,以使所述实际分组容量接近所述预设分组容量。
可选地,所述获取模块11具体用于:
根据所述多个订单的总数、预设最小分组容量和预设最大分组容量,结合如下条件获取所述实际分组容量:
使所述多个订单的总数除以所述实际分组容量的余数,大于所述预设最小分组容量,所述实际分组容量为取自所述预设最小分组容量和所述预设最大分组容量之间的整数,所述预设分组容量包括所述预设最小分组容量和所述预设最大分组容量。
可选地,所述选择模块12包括:第一选择单元121、第二选择单元122。
第一选择单元121,用于根据当前所述多个订单各自关联的聚类状态标记,从所述多个订单中筛选出未聚类订单。
第二选择单元122,用于根据所述未聚类订单各自的配送地址与所述集散地址的距离,从所述未聚类订单中选出距离所述集散地址最远或最近的订单作为所述聚类中心订单。
可选地,所述聚类处理模块13具体用于:
迭代执行如下过程,直到满足所述订单组对应的聚类截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的订单;
将选择出的所述订单加入所述订单组;
更新所述未聚类订单;
所述聚类截止条件包括:所述订单组的订单数达到所述实际分组容量。
可选地,所述聚类截止条件还包括:所述选择出的订单相对所述订单组的最近距离大于或等于预设距离阈值。
图6所示装置可以执行图1a所示实施例的方法,本实施例未详细描述的部分,可参考对图1a所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1a所示实施例中的描述,在此不再赘述。
图7为本发明实施例提供的订单处理装置实施例二的结构示意图,如图7所示,在图6所示实施例基础上,该装置还包括:补充处理模块21。
补充处理模块21,用于若所述实际分组容量小于预设最大分组容量,则根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,向所述订单组补充订单。
可选地,该补充处理模块21可以包括第一补充处理单元211,用于:
执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与剩余未聚类订单集合内订单的配送地址间距离,确定所述待补充订单相对所述剩余未聚类订单集合的最近距离;其中,所述剩余未聚类订单集合由除了所述待补充订单之外的未聚类订单组成;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述剩余未聚类订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述剩余未聚类订单集合的最近距离。
图7所示装置可以执行图2a所示实施例的方法,本实施例未详细描述的部分,可参考对图2a所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2a所示实施例中的描述,在此不再赘述。
图8为本发明实施例提供的订单处理装置实施例三的结构示意图,如图8所示,在图7所示实施例基础上,可选地,该补充处理模块21还可以包括:第二补充处理单元212。
第二补充处理单元212,用于:
生成补充订单集合,执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与所述补充订单集合中订单的配送地址间距离,确定所述待补充订单相对所述补充订单集合的最近距离;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述补充订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组,并将所述待补充订单加入所述补充订单集合;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述补充订单集合的最近距离。
图8所示装置可以执行图3a所示实施例的方法,本实施例未详细描述的部分,可参考对图3a所示实施例的相关说明。该技术方案的执行过程和技术效果参见图3a所示实施例中的描述,在此不再赘述。
图9为本发明实施例提供的订单处理装置实施例四的结构示意图,如图9所示,在图6所示实施例基础上,该装置还包括:调整模块41。
调整模块41,用于根据所述订单组内订单与其他订单组内订单的配送地址间距离,调整所述订单组内订单的归属。
可选地,该调整模块41具体用于:
针对所述订单组内的任一订单,根据所述任一订单与所述订单组内其他订单的配送地址间距离,确定所述任一订单相对所述订单组内其他订单的第一最近距离;
根据所述任一订单与所述其他订单组内订单的配送地址间距离,确定所述任一订单相对所述其他订单组内订单的第二最近距离;
若所述第一最近距离大于所述第二最近距离,则将所述任一订单加入到所述第二最近距离对应的订单所属的其他订单组。
图9所示装置可以执行图4a所示实施例的方法,本实施例未详细描述的部分,可参考对图4a所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4a所示实施例中的描述,在此不再赘述。
图10为本发明实施例提供的订单处理装置实施例五的结构示意图,如图10所示,在图6所示实施例基础上,该装置还包括:路径规划模块51。
路径规划模块51,用于采用最短路径算法,规划所述订单组内订单的配送路径。
图10所示装置可以执行图5所示实施例的方法,本实施例未详细描述的部分,可参考对图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图5所示实施例中的描述,在此不再赘述。
以上描述了订单处理装置的内部功能和结构,在一个可能的设计中,该订单处理装置的结构可实现为服务器,如图11所示,可以包括:处理器61和存储器62。其中,所述存储器62用于存储支持订单处理装置执行上述任一实施例中提供的订单处理方法的程序,所述处理器61被配置为用于执行所述存储器62中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器61调用执行。
所述处理器61用于:根据多个订单的总数获取实际分组容量,所述多个订单对应于同一集散地址;根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单;基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。
可选地,所述处理器61还用于执行前述各方法步骤中的全部或部分步骤。
其中,所述订单处理装置的结构中还可以包括通信接口63,用于订单处理装置与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存订单处理装置所用的计算机软件指令,其包含用于执行上述第一方面中订单处理方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以产品的形式体现出来,该计算机产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
本发明公开A1、一种订单处理方法,包括:
根据多个订单的总数获取实际分组容量,所述多个订单对应于同一集散地址;
根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单;
基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。
A2、根据A1所述的方法,所述根据多个订单的总数获取实际分组容量,包括:
根据所述多个订单的总数和预设分组容量确定所述实际分组容量,以使所述实际分组容量接近所述预设分组容量。
A3、根据A2所述的方法,所述预设分组容量包括预设最小分组容量和预设最大分组容量,所述根据所述多个订单的总数和预设分组容量确定所述实际分组容量,以使所述实际分组容量接近所述预设分组容量,包括:
根据所述多个订单的总数、预设最小分组容量和预设最大分组容量,结合如下条件获取所述实际分组容量:
使所述多个订单的总数除以所述实际分组容量的余数,大于所述预设最小分组容量,所述实际分组容量为取自所述预设最小分组容量和所述预设最大分组容量之间的整数。
A4、根据A1所述的方法,所述根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单,包括:
根据当前所述多个订单各自关联的聚类状态标记,从所述多个订单中筛选出未聚类订单;
根据所述未聚类订单各自的配送地址与所述集散地址的距离,从所述未聚类订单中选出距离所述集散地址最远或最近的订单作为所述聚类中心订单。
A5、根据A4所述的方法,所述根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,包括:
根据所述多个订单中未聚类订单与所述聚类中心订单对应的订单组内订单的配送地址间距离,对所述未聚类订单进行聚类处理。
A6、根据A5所述的方法,所述根据所述多个订单的配送地址间距离对所述多个订单进行聚类处理,以确定与所述聚类中心订单对应的订单组,包括:
迭代执行如下过程,直到满足所述订单组对应的聚类截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的订单;
将选择出的所述订单加入所述订单组;
更新所述未聚类订单;
所述聚类截止条件包括:所述订单组的订单数达到所述实际分组容量。
A7、根据A6所述的方法,所述聚类截止条件还包括:
所述选择出的所述订单相对所述订单组的最近距离大于或等于预设距离阈值。
A8、根据A1至A7中任一项所述的方法,所述根据所述多个订单的配送地址间距离对所述多个订单进行聚类处理,以确定与所述聚类中心订单对应的订单组之后,还包括:
若所述实际分组容量小于预设最大分组容量,则根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,向所述订单组补充订单。
A9、根据A8所述的方法,所述根据当前的未聚类订单与所述订单组内订单的配送地址间距离,向所述订单组补充订单,包括:
执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与剩余未聚类订单集合内订单的配送地址间距离,确定所述待补充订单相对所述剩余未聚类订单集合的最近距离;其中,所述剩余未聚类订单集合由除了所述待补充订单之外的未聚类订单组成;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述剩余未聚类订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述剩余未聚类订单集合的最近距离。
A10、根据A8所述的方法,所述根据当前的未聚类订单与所述订单组内订单的配送地址间距离,向所述订单组补充订单,还包括:
生成补充订单集合,执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与所述补充订单集合中订单的配送地址间距离,确定所述待补充订单相对所述补充订单集合的最近距离;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述补充订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组,并将所述待补充订单加入所述补充订单集合;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述补充订单集合的最近距离。
A11、根据A1至A7中任一项所述的方法,所述方法还包括:
根据所述订单组内订单与其他订单组内订单的配送地址间距离,调整所述订单组内订单的归属。
A12、根据A11所述的方法,所述根据所述订单组内订单与其他订单组内订单的配送地址间距离,调整所述订单组内订单的归属,包括:
针对所述订单组内的任一订单,根据所述任一订单与所述订单组内其他订单的配送地址间距离,确定所述任一订单相对所述订单组内其他订单的第一最近距离;
根据所述任一订单与所述其他订单组内订单的配送地址间距离,确定所述任一订单相对所述其他订单组内订单的第二最近距离;
若所述第一最近距离大于所述第二最近距离,则将所述任一订单加入到所述第二最近距离对应的订单所属的其他订单组。
A13、根据A1至A7中任一项所述的方法,所述方法还包括:
采用最短路径算法,规划所述订单组内订单的配送路径。
本发明公开B14、一种订单处理装置,包括:
获取模块,用于根据多个订单的总数获取实际分组容量,所述多个订单对应于同一集散地址;
选择模块,用于根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单;
聚类处理模块,用于基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。
B15、根据B14所述的装置,所述获取模块具体用于:
根据所述多个订单的总数和预设分组容量确定所述实际分组容量,以使所述实际分组容量接近所述预设分组容量。
B16、根据B15所述的装置,所述获取模块具体用于:
根据所述多个订单的总数、预设最小分组容量和预设最大分组容量,结合如下条件获取所述实际分组容量:
使所述多个订单的总数除以所述实际分组容量的余数,大于所述预设最小分组容量,所述实际分组容量为取自所述预设最小分组容量和所述预设最大分组容量之间的整数;所述预设分组容量包括所述预设最小分组容量和所述预设最大分组容量。
B17、根据B14所述的装置,所述选择模块包括:
第一选择单元,用于根据当前所述多个订单各自关联的聚类状态标记,从所述多个订单中筛选出未聚类订单;
第二选择单元,用于根据所述未聚类订单各自的配送地址与所述集散地址的距离,从所述未聚类订单中选出距离所述集散地址最远或最近的订单作为所述聚类中心订单。
B18、根据B17所述的装置,所述聚类处理模块具体用于:
根据所述多个订单中未聚类订单与所述聚类中心订单对应的订单组内订单的配送地址间距离,对所述未聚类订单进行聚类处理。
B19、根据B18所述的装置,所述聚类处理模块具体用于:
迭代执行如下过程,直到满足所述订单组对应的聚类截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的订单;
将选择出的所述订单加入所述订单组;
更新所述未聚类订单;
所述聚类截止条件包括:所述订单组的订单数达到所述实际分组容量。
B20、根据B14至B19中任一项所述的装置,还包括:
补充处理模块,用于若所述实际分组容量小于预设最大分组容量,则根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,向所述订单组补充订单。
B21、根据B20所述的装置,所述补充处理模块包括:
第一补充处理单元,用于执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与剩余未聚类订单集合内订单的配送地址间距离,确定所述待补充订单相对所述剩余未聚类订单集合的最近距离;其中,所述剩余未聚类订单集合由除了所述待补充订单之外的未聚类订单组成;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述剩余未聚类订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述剩余未聚类订单集合的最近距离。
B22、根据B20所述的装置,所述补充处理模块包括:
第二补充处理单元,用于生成补充订单集合,执行如下迭代过程,直到满足补充截止条件:
根据当前所述订单组内订单与当前的未聚类订单的配送地址间距离,从所述当前的未聚类订单中选择出相对所述订单组最近的待补充订单;
根据所述待补充订单与所述补充订单集合中订单的配送地址间距离,确定所述待补充订单相对所述补充订单集合的最近距离;
判断所述待补充订单相对所述订单组的最近距离是否小于所述待补充订单相对所述补充订单集合的最近距离;
若小于,则将所述待补充订单加入所述订单组,并将所述待补充订单加入所述补充订单集合;
所述补充截止条件包括:所述订单组的订单数达到所述预设最大分组容量,或者,所述待补充订单相对所述订单组的最近距离大于或等于所述待补充订单相对所述补充订单集合的最近距离。
B23、根据B14至B19中任一项所述的装置,还包括:
调整模块,用于根据所述订单组内订单与其他订单组内订单的配送地址间距离,调整所述订单组内订单的归属。
B24、根据B23所述的装置,所述调整模块具体用于:
针对所述订单组内的任一订单,根据所述任一订单与所述订单组内其他订单的配送地址间距离,确定所述任一订单相对所述订单组内其他订单的第一最近距离;
根据所述任一订单与所述其他订单组内订单的配送地址间距离,确定所述任一订单相对所述其他订单组内订单的第二最近距离;
若所述第一最近距离大于所述第二最近距离,则将所述任一订单加入到所述第二最近距离对应的订单所属的其他订单组。
B25、根据B14至B19中任一项所述的装置,还包括:
路径规划模块,用于采用最短路径算法,规划所述订单组内订单的配送路径。
本发明还公开了C26、一种服务器,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器用于:根据多个订单的总数获取实际分组容量,所述多个订单对应于同一集散地址;根据所述多个订单各自的配送地址与所述集散地址的距离,选取当前的聚类中心订单;基于所述实际分组容量,根据所述多个订单中未聚类订单与所述聚类中心订单的配送地址间距离,对所述未聚类订单进行聚类处理,以确定与所述聚类中心订单对应的订单组。