CN111325502B - 线路计算方法、装置、电子设备及可读存储介质 - Google Patents
线路计算方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111325502B CN111325502B CN202010082972.5A CN202010082972A CN111325502B CN 111325502 B CN111325502 B CN 111325502B CN 202010082972 A CN202010082972 A CN 202010082972A CN 111325502 B CN111325502 B CN 111325502B
- Authority
- CN
- China
- Prior art keywords
- line
- point
- target
- point location
- adjacent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0835—Relationships between shipper or supplier and carriers
- G06Q10/08355—Routing methods
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Navigation (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例提供了一种线路计算方法、装置、电子设备及可读存储介质,所述方法包括:确定目标线路对应的点位集合;计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。本公开实施例可以提高计算相邻线路的准确性。
Description
技术领域
本公开的实施例涉及计算机领域,尤其涉及一种线路计算方法、装置、电子设备及可读存储介质。
背景技术
在物流配送领域,排线是指由多个订单组合成的一条物流配送线路。例如,对商家订单进行聚合,将邻近的商家合理地安排在一辆车上进行集中配送,每辆车及其需要负责配送的商家称为一条“排线”。在对订单进行排线的过程中,为了提高配送的时效性,通常倾向于将相邻商家的订单放在一起集中进行配送。
“排线”实际上是一个经典的VRP(Vehicle Routing Problem,车辆路径问题),VRP是典型的NP-Hard(non-deterministic polynomial,非确定性多项式)问题。然而,通常开展配送业务的城市供货仓库业务量比较大(大城市一个仓库每天需要负责几千个商家的货物配送任务,一般城市配送商家也过千),如此数据规模的VRP问题,传统排线算法无法很好的解决。
目前,提出了启发式搜索算法,可以先给出初始解,并在初始解的基础上基于“邻域”变换与调整来优化当前解,从而得到更加合理的排线结果。为了保证时效性,通常将“邻域”限定在一个较小的局部范围内,如空间相邻的线路之间,因此,如何准确计算相邻线路是一个亟需解决的问题。
通常,一个仓库的一次排线任务可能会包含上百条线路,每条线路上商家的坐标信息可以勾勒出一个密闭的空间多边形,进而可以计算每个多边形的虚拟重心,根据空间多边形的虚拟重心之间的距离,可以粗略计算出相邻线路的拓扑关系。例如,如果两个虚拟重心之间的距离小于R,可以认为这两个虚拟重心相对应的两条线路相邻,否则,认为这两条线路不相邻。
然而,如果线路中的点位分布稀疏,将影响计算出的虚拟重心的准确性,进而影响计算相邻线路的准确性;此外,利用虚拟重心计算相邻线路,无法识别线路间是否存在遮挡(或者部分遮挡),因此,计算得到的两个相邻线路之间可能存在其他线路,导致计算得到的相邻线路不够准确;再者,距离R的取值只能根据经验设置,R的具体取值难以把控,如果R取值不合适也将影响计算相邻线路的准确性。
发明内容
本公开的实施例提供一种线路计算方法、装置、电子设备及可读存储介质,用以提高计算相邻线路的准确性。
根据本公开的实施例的第一方面,提供了一种线路计算方法,所述方法包括:
确定目标线路对应的点位集合;
计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
根据本公开的实施例的第二方面,提供了一种线路计算装置,所述装置包括:
点位集合确定模块,用于确定目标线路对应的点位集合;
邻近点位计算模块,用于计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
相邻路线确定模块,用于根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
根据本公开的实施例的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述线路计算方法。
根据本公开的实施例的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述线路计算方法。
本公开的实施例提供了一种线路计算方法、装置、电子设备及可读存储介质,所述方法包括:
确定目标线路对应的点位集合;计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
本公开实施例计算相邻线路不再基于虚拟重心,而是基于一个前提:如果线路1和线路2相邻,说明线路1和线路2的中间没有穿插其他线路的点,也即,与线路1中的某一个点位P距离最近的点位,要么属于线路1,要么属于线路1的相邻线路。基于该前提计算相邻线路,可以避免使用虚拟重心导致计算相邻线路不准确的问题,可以提高计算相邻线路的准确性。此外,基于上述前提计算得到的相邻线路,如相邻的线路1和线路2,说明线路1和线路2的中间没有穿插其他线路的点,可以避免相邻线路之间存在遮挡或部分遮挡的情况,可以进一步提高计算相邻线路的准确性。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开的一个实施例中的线路计算方法的步骤流程图;
图2示出了本公开的一种排线任务的线路示意图;
图3示出了图2的局部示意图;
图4示出了本公开的一个实施例中的线路计算装置的结构图;
图5示出了本公开的一个实施例提供的电子设备的结构图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的实施例一部分实施例,而不是全部的实施例。基于本公开的实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开的实施例保护的范围。
实施例一
参照图1,其示出了本公开的一个实施例中的线路计算方法的步骤流程图,所述方法包括:
步骤101、确定目标线路对应的点位集合;
步骤102、计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
步骤103、根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
本公开的线路计算方法可应用于电子设备,所述电子设备具体包括但不限于:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,Moving PictureExperts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,MovingPicture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。
针对现有的基于虚拟重心计算相邻线路存在的问题,本公开实施例提出了一种线路计算方法,可用于准确计算目标线路的相邻线路。
在实际应用中,一个仓库的一次排线任务可能会包含多条线路,参照图2,示出了一种排线任务的线路示意图。如图2所示,每一个小圆圈表示一个点位,其中,一个点位可以是一个配送目的地,如一个POI(Point of Interest,兴趣点)。点位上的数字用于表示线路标识,例如图2中包括线路标识从1至7的七条线路。为便于描述,本公开实施例将线路标识为1的线路称为线路1,线路标识为2的线路称为线路2,以此类推。
需要说明的是,不同线路可以对应不同的配送车辆,而对于各条线路之间的顺序关系,本公开实施例并不加以限制。例如,对于图2中的线路1至线路7,本公开实施例并不限制配送过程中先走哪条线路再走哪条线路。
通过本公开实施例,可以计算上述七条线路中每一条线路的相邻线路。本公开实施例计算相邻线路不再基于虚拟重心,而是基于一个前提:如果线路1和线路2相邻,说明线路1和线路2的中间没有穿插其他线路的点,因此,与线路1中的某一个点位P距离最近的点位,要么属于线路1,要么属于线路1的相邻线路。
也就是说:与目标线路中的任意一个点位距离最近的点位,要么属于该目标线路,要么属于该目标线路的相邻线路。基于上述前提并结合统计策略可以计算线路之间的邻近关系。
具体地,首先确定目标线路对应的点位集合,该点位集合中包括目标线路的所有点位。例如,计算图2中线路标识为1的线路的相邻线路,则将线路标识为1的线路作为目标线路。首先确定目标线路对应的点位集合,该目标线路对应的点位集合包括图2中所有线路标识为1的点位。
然后,计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位。因为基于前面的前提可知,该目标邻近点位属于该目标线路的相邻线路。
参照图3,为图2的局部示意图,需要说明的是,为便于描述,图3中只列出图2中的部分点位。如图3所示,对于目标线路中的点位A,与点位A距离最近的点位为点位D,由于点位D的线路标识为2,不属于目标线路,也即点位D和点位A属于不同线路,因此,确定点位D为点位A的目标邻近点位。
在本公开的一种可选实施例中,所述计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位之前,所述方法还可以包括:
步骤S11、构建距离矩阵,所述距离矩阵中包括所有线路中任意两个点位之间的距离;
步骤S12、根据所述距离矩阵,构建邻接矩阵,所述邻接矩阵中包括所述距离矩阵中每一个点位与其余点位的距离顺序关系。
在计算线路之间的邻近关系之前,本公开实施例可以进行计算数据的准备。具体地,首先可以构建距离矩阵,用于记录任意两个点位之间的距离。例如,可以构建距离矩阵distanceMat,distanceMat中包括图2中线路1至线路7中任意两个点位之间的距离。
然后,根据所述距离矩阵,可以构建邻接矩阵,用于记录所述距离矩阵中每一个点位与其余点位的距离顺序关系。
例如,对于点位A,点位A与其余点位的距离顺序关系可以表示为:{0->A,1->D,2->B,3->F…},该距离顺序关系的含义为,对于点位A,与点位A距离最近的是点位A自己,与点位A距离次近的是点位D,接下来是点位B,点位F,以此类推。
所述计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位,具体可以包括:遍历所述点位集合,对当前遍历的第一点位执行如下操作步骤:
步骤S21、根据所述邻接矩阵,构建所述第一点位的近邻索引数组,所述近邻索引数组中包括按照与所述第一点位的距离顺序关系依次存储的第二点位,所述第二点位包括所述所有线路中的所有点位;
步骤S22、根据所述近邻索引数组,确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位。
在本公开实施例中,还可以建立点位与线路之间的映射关系,具体地,对于每一个点位,可以生成对应的点位标识pid;对于每一条线路,可以生成对应的线路标识rid,则每一条线路中所包含的点位与该线路之间具有对应关系。假设目标线路为rid=1的线路,目标线路对应的点位集合记为pointList,pointList中包含所有rid=1的点位标识pid。
本公开实施例遍历目标线路的点位集合,根据步骤S12构建的邻接矩阵,对当前遍历的第一点位构建近邻索引数组。其中,所述近邻索引数组中包括按照与所述第一点位的距离顺序关系依次存储的第二点位,所述第一点位为遍历所述点位集合中的当前点位,所述第二点位包括所述所有线路中的所有点位。
例如,对于点位集合pointList,当前遍历的第一点位是pointList中的点位A,根据所述邻接矩阵,可以构建第一点位(点位A)的近邻索引数组,该近邻索引数组中包括按照与点位A的距离顺序关系依次存储的第二点位。如构建点位A的近邻索引数组adjoinArray=[A,D,B,F,…]。可以理解,在具体应用中,近邻索引数组中存储的可以是第二点位的索引值,如第二点位的点位标识。
需要说明的是,点位A与自身之间的距离是0,此外,为了保证数组的长度和元素的长度相同,近邻索引数组中的第一个元素可以是第一点位自己。当然,在实际应用中,近邻索引数组中也可以不包含第一点位,例如,点位A的近邻索引数组可以如下:adjoinArray=[D,B,F,…],本领域技术人员可以根据实际需要灵活设置。
由于近邻索引数组中的元素顺序可以体现对应第二点位与第一点位的距离顺序关系,因此,根据所述近邻索引数组,可以从所述第二点位中确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位。
在本公开的一种可选实施例中,所述根据所述近邻索引数组,确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位,具体可以包括:遍历所述近邻索引数组,对当前遍历的第二点位执行如下操作步骤:
判断当前遍历的第二点位对应的线路标识与当前遍历的第一点位对应的线路标识是否相等;若相等,则遍历下一个第二点位;若不相等,则确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位。
在构建第一点位(如点位A)的近邻索引数组之后,遍历点位A的近邻索引数组,对于当前遍历的第二点位,判断当前遍历的第二点位对应的线路标识与当前遍历的第一点位对应的线路标识是否相等。假设当前遍历的第二点位对应的线路标识记为rid,当前遍历的第一点位对应的线路标识记为curRid,如果rid=curRid,则跳过当前遍历的第二点位,遍历下一个第二点位,也即读取邻索引数组的下一个元素。如果rid≠curRid,说明当前遍历的第二点位与当前遍历的第一点位距离最近且不属于该第一点位所在的目标线路,因此,可以确定当前遍历的第二点位为当前遍历的第一点位的目标邻近点位。
如图3所示,对于目标线路点位集合pointList中的点位B,与点位B距离最近的点位为点位A,但是点位A的线路标识与点位B的线路标识相等,也即点位A属于目标线路,因此跳过点位A。最终找到与点位B距离最近且不属于目标线路的点位为点位D,因此,确定点位D为点位B的目标邻近点位。
同样地,对于目标线路点位集合pointList中的点位C,可以确定其目标邻近点位为点位E(线路标识为2)。对于目标线路点位集合pointList中的点位F,可以确定其目标邻近点位为点位G(线路标识为4)。
在目标线路的点位集合pointList遍历完成之后,可以计算得到目标线路点位集合pointList中每一个点位的目标邻近点位。
最后,根据所述目标线路的点位集合中各点位的目标邻近点位所属的线路,可以确定所述目标线路对应的相邻线路。
在本公开的一种可选实施例中,所述根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路,具体可以包括:
步骤S31、在确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位的情况下,记录所述目标邻近点位对应的线路标识;
步骤S32、在所述目标线路对应的点位集合遍历完成之后,根据所述点位集合中各点位的目标邻近点位对应的线路标识,确定所述目标线路对应的相邻线路。
本公开实施例在遍历所述目标线路对应的点位集合过程中,记录所述点位集合中各点位的目标邻近点位对应的线路标识,在点位集合遍历完成之后,可以得到点位集合中各点位的目标邻近点位对应的线路标识。例如,对于线路标识为1的目标线路,其点位集合中各点位的目标邻近点位对应的线路标识包括2、3、4,则可以确定该目标线路对应的相邻线路包括线路2、线路3和线路4。
在本公开的一种可选实施例中,所述确定所述目标线路对应的相邻线路之后,所述方法还可以包括:
步骤S41、统计所述各点位的目标邻近点位对应的线路标识的数目;
步骤S42、根据所述数目的大小,确定所述相邻线路与所述目标线路的邻近顺序关系。
本公开实施例除了可以计算目标线路的相邻线路,在相邻线路的数目大于1的情况下,还可以确定目标线路的多个相邻线路的邻近顺序关系。例如,目标线路(线路1)对应的相邻线路包括线路2、线路3和线路4,可以进一步确定线路2、线路3和线路4中与线路1最邻近的是哪条线路,次邻近的是哪条线路等。
具体地,可以统计目标线路(线路1)中各点位的目标邻近点位对应的线路标识的数目。假设统计得到线路1中各点位的目标邻近点位对应的线路标识的数目如下:线路标识为2的数目为num1,表示线路1中有num1个点位的目标邻近点位属于线路2;线路标识为3的数目为num2,表示线路1中有num2个点位的目标邻近点位属于线路3;线路标识为4的数目为num3,表示线路1中有num3个点位的目标邻近点位属于线路4。假设num3<num2<num1,则可以确定线路2、线路3和线路4与线路1的邻近顺序关系为:线路2与线路1最邻近,线路3与线路1次邻近,最后是线路4。
在本公开的一种可选实施例中,所述遍历所述近邻索引数组之前,所述方法还可以包括:初始化字典数据,所述字典数据的关键字为线路标识,所述字典数据的关键字值为线路标识的计数值。
本公开实施例在遍历近邻索引数组的过程中,可以维护一个字典数据,该字典数据的关键字key为线路标识,以及该字典数据的关键字值value为线路标识的计数值。该字典数据可用于在遍历过程中,记录目标线路中各点位的目标邻近点位对应的线路标识,以及统计目标线路中各点位的目标邻近点位对应的线路标识的数目。
具体地,在遍历近邻索引数组之前,可以初始化字典数据如counterMap,例如counterMap的key和value的初始值均为0。
所述确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位之后,所述方法还可以包括:对所述字典数据中所述当前遍历的第二点位对应的线路标识的计数值执行加1操作。
在本公开的一种应用示例中,假设当前遍历到目标线路的点位集合中的第一点位(如点位A),则构建点位A的近邻索引数组,并且遍历点位A的近邻索引数组。对于当前遍历的近邻索引数组中的第二点位,判断当前遍历的第二点位对应的线路标识rid与当前遍历的第一点位对应的线路标识curRid是否相等。如果rid=curRid,则跳过当前遍历的第二点位,继续遍历下一个第二点位;如果rid≠curRid,则确定当前遍历的第二点位为当前遍历的第一点位的目标邻近点位,从counterMap中取出当前遍历的第二点位的rid对应的计数值,对该计数值加1后重新放回counterMap。以图3为例,假设rid=2,则从counterMap中读取rid=2的value值,对该value值加1后重新放回counterMap。例如,若当前rid=2的value值为1,则执行加1操作后,rid=2的value值变为2。
所述根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路,具体可以包括:在所述目标线路对应的点位集合遍历完成之后,对所述字典数据中的数据元素按照关键字值进行逆序排序,并返回所述字典数据中的关键字。
通过本公开实施例,对于目标线路的点位集合中的每个点位,均只记录一次与该点位线路标识不同且距离最近的目标邻近点位的线路标识。在目标线路的点位集合遍历完成之后,对所述字典数据中的数据元素按照关键字值进行逆序排序,并返回所述字典数据中的关键字,具体地,对counterMap中的元素按照value逆序排序,并返回所有的key,即可得到按照邻近顺序关系排序的目标线路的相邻线路。
在本公开的一种应用示例中,对图2中的各条线路计算相邻线路,具体过程可以如下:
首先,准备计算过程中的基础数据,具体包括:
a)构建距离矩阵distanceMat,用于记录图2中线路1至线路7中任意两点之间的距离。
b)构建邻接矩阵adjoinMat,用于记录所述距离矩阵中每一个点位与其余点位的距离顺序关系。
c)构建映射关系结构point2RouteMap,用于记录点位标识pid与线路标识rid之间的映射关系。
d)构建线路集合routeList,用于记录图2中的所有线路。
然后,对于routeList中的每一条线路,执行如下操作:
1)维护字典数据counterMap,其中key是线路标识,value是线路标识对应的计数值。
2)确定目标线路,假设目标线路为线路标识rid=1的线路,记pointList为目标线路的点位集合,记curRid为目标线路的线路标识。
3)loop1:遍历pointList中的元素,对于当前遍历的元素p(也即第一点位):根据adjoinMat,构建第一点位的近邻索引数组adjoinArray;
loop2:遍历adjoinArray中的元素,对于当前遍历的元素pid(也即第二点位):获取该pid对应的线路标识rid,如果rid=curRid,跳过该pid,不做任何操作;如果rid≠curRid,从counterMap中取出该rid对应的计数值,加1操作后重新放回counterMap,并终止当前pid的loop2操作,读取adjoinArray中的下一个pid。
其中,loop1和loop2为两个循环操作。
4)在pointList中的元素遍历完成之后,对counterMap中的元素按照value逆序排序,并返回所有的key。
对于routeList中的每一条线路,执行上述1)至4)的操作,可以得到图2中每一条线路的相邻线路,以及相邻线路的邻近顺序关系,具体如下:
route.id=1,neighbors=[2,3,4]
route.id=2,neighbors=[4,1]
route.id=3,neighbors=[5,7,1,4]
route.id=4,neighbors=[2,1,5]
route.id=5,neighbors=[7,6,4,3]
route.id=6,neighbors=[7,5]
route.id=7,neighbors=[3,6,5]
其中,route.id=1,neighbors=[2,3,4],表示按照邻近顺序关系排序,线路1的相邻线路包括:线路2、线路3、线路4。
同样地,route.id=2,neighbors=[4,1],表示按照邻近顺序关系排序,线路2的相邻线路包括:线路4、线路1。以此类推。
在本公开的一种可选实施例中,所述确定目标线路对应的点位集合之前,所述方法还可以包括:
步骤S51、获取订单数据集,所述订单数据集中包括多个订单的配送目的地;
步骤S52、依据预设约束条件生成包括所述配送目的地的配送线路;
步骤S53、在所述配送线路中确定目标线路;
所述确定所述目标线路对应的相邻线路之后,所述方法还可以包括:根据所述目标线路的相邻路线,对所述目标线路进行调整。
具体的,所述订单数据集中可以包括多个商家订单的配送目的地信息,比如,一个订单数据集中可以包括2000条订单信息,每条订单信息中包括订单的配送目的地信息,这里的配送目的地信息可以是配送目的地的经纬度信息,配送目的地比如北京中关村。
预设约束条件可以根据每台车辆的满载率、承载的商家数、以及车辆行驶区域的稀疏/密集程度等因素综合确定,例如,当前排线上的点位数是否满足最大商家数、最大满载率以及里程数要求等。
可以理解,本公开实施例对排线的具体算法不加以限制,排线算法可以包括多阶段,第一阶段可用于生成初始解,也即得到大致的配送线路。本公开实施例在对排线任务生成初始解之后,可以对当前得到的配送线路,按照本公开的步骤101至步骤103准确计算各条线路的相邻线路,根据计算得到的各条线路的相邻线路,可以判断初始解中是否存在可以进一步优化调整的不合规的线路,例如,线路的满载率不满足最大满载率,或者相邻线路存在线路交叉,或者相邻线路之间存在遮挡等,对这些不合规的线路可以进一步调整,进而可以对初始解进行优化,得到更优的排线结果。
综上,本公开实施例计算相邻线路不再基于虚拟重心,而是基于一个前提:如果线路1和线路2相邻,说明线路1和线路2的中间没有穿插其他线路的点,也即,与线路1中的某一个点位P距离最近的点位,要么属于线路1,要么属于线路1的相邻线路。基于该前提计算相邻线路,可以避免使用虚拟重心导致计算相邻线路不准确的问题,可以提高计算相邻线路的准确性。此外,基于上述前提计算得到的相邻线路,如相邻的线路1和线路2,说明线路1和线路2的中间没有穿插其他线路的点,可以避免相邻线路之间存在遮挡或部分遮挡的情况,可以进一步提高计算相邻线路的准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开实施例所必须的。
实施例二
参照图4,其示出了本公开的一个实施例中的线路计算装置的结构图,具体如下。
点位集合确定模块401,用于确定目标线路对应的点位集合;
邻近点位计算模块402,用于计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
相邻路线确定模块403,用于根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
可选地,所述装置还包括:
第一构建模块,用于构建距离矩阵,所述距离矩阵中包括所有线路中任意两个点位之间的距离;
第二构建模块,用于根据所述距离矩阵,构建邻接矩阵,所述邻接矩阵中包括所述距离矩阵中每一个点位与其余点位的距离顺序关系;
所述邻近点位计算模块,包括:
循环遍历子模块,用于遍历所述点位集合;
所述循环遍历子模块,包括:
数组构建子模块,用于根据所述邻接矩阵,构建所述第一点位的近邻索引数组,所述近邻索引数组中包括按照与所述第一点位的距离顺序关系依次存储的第二点位,所述第二点位包括所述所有线路中的所有点位;
目标确定子模块,用于根据所述近邻索引数组,确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位。
可选地,所述目标确定子模块,包括:
循环遍历单元,用于遍历所述近邻索引数组;
所述循环遍历单元,具体用于判断当前遍历的第二点位对应的线路标识与当前遍历的第一点位对应的线路标识是否相等;若相等,则遍历下一个第二点位;若不相等,则确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位。
可选地,所述相邻路线确定模块,包括:
标识记录模块,用于在确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位的情况下,记录所述目标邻近点位对应的线路标识;
线路确定模块,用于在所述目标线路对应的点位集合遍历完成之后,根据所述点位集合中各点位的目标邻近点位对应的线路标识,确定所述目标线路对应的相邻线路。
可选地,所述装置还包括:
数目统计模块,用于统计所述各点位的目标邻近点位对应的线路标识的数目;
顺序确定模块,用于根据所述数目的大小,确定所述相邻线路与所述目标线路的邻近顺序关系。
可选地,所述装置还包括:
字典初始化模块,用于初始化字典数据,所述字典数据的关键字为线路标识,所述字典数据的关键字值为线路标识的计数值;
所述装置还包括:
字典更新模块,用于对所述字典数据中所述当前遍历的第二点位对应的线路标识的计数值执行加1操作;
所述相邻路线确定模块,具体用于在所述目标线路对应的点位集合遍历完成之后,对所述字典数据中的数据元素按照关键字值进行逆序排序,并返回所述字典数据中的关键字。
可选地,所述装置还包括:
订单数据获取模块,用于获取订单数据集,所述订单数据集中包括多个订单的配送目的地;
配送线路生成模块,用于依据预设约束条件生成包括所述配送目的地的配送线路;
目标线路确定模块,用于在所述配送线路中确定目标线路;
所述装置还包括:
线路调整模块,用于根据所述目标线路的相邻路线,对所述目标线路进行调整。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提供了一种电子设备,参见图5,包括:处理器501、存储器502以及存储在所述存储器上并可在所述处理器上运行的计算机程序5021,所述处理器执行所述程序时实现前述实施例的线路计算方法。
本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的线路计算方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描述是为了披露本公开的实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的实施例的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开的实施例的排序设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。
以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种线路计算方法,其特征在于,所述方法包括:
确定目标线路对应的点位集合;所述目标线路为配送线路;
计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
2.根据权利要求1所述的方法,其特征在于,所述计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位之前,所述方法还包括:
构建距离矩阵,所述距离矩阵中包括所有线路中任意两个点位之间的距离;
根据所述距离矩阵,构建邻接矩阵,所述邻接矩阵中包括所述距离矩阵中每一个点位与其余点位的距离顺序关系;
所述计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位,包括:
遍历所述点位集合,对当前遍历的第一点位执行如下操作步骤:
根据所述邻接矩阵,构建所述第一点位的近邻索引数组,所述近邻索引数组中包括按照与所述第一点位的距离顺序关系依次存储的第二点位,所述第二点位包括所述所有线路中的所有点位;
根据所述近邻索引数组,确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位。
3.根据权利要求2所述的方法,其特征在于,所述根据所述近邻索引数组,确定与所述第一点位距离最近且不属于所述目标线路的目标邻近点位,包括:
遍历所述近邻索引数组,对当前遍历的第二点位执行如下操作步骤:
判断当前遍历的第二点位对应的线路标识与当前遍历的第一点位对应的线路标识是否相等;
若相等,则遍历下一个第二点位;若不相等,则确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位。
4.根据权利要求3所述的方法,其特征在于,所述根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路,包括:
在确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位的情况下,记录所述目标邻近点位对应的线路标识;
在所述目标线路对应的点位集合遍历完成之后,根据所述点位集合中各点位的目标邻近点位对应的线路标识,确定所述目标线路对应的相邻线路。
5.根据权利要求4所述的方法,其特征在于,所述确定所述目标线路对应的相邻线路之后,所述方法还包括:
统计所述各点位的目标邻近点位对应的线路标识的数目;
根据所述数目的大小,确定所述相邻线路与所述目标线路的邻近顺序关系。
6.根据权利要求3所述的方法,其特征在于,所述遍历所述近邻索引数组之前,所述方法还包括:
初始化字典数据,所述字典数据的关键字为线路标识,所述字典数据的关键字值为线路标识的计数值;
所述确定当前遍历的第二点位为所述当前遍历的第一点位的目标邻近点位之后,所述方法还包括:
对所述字典数据中所述当前遍历的第二点位对应的线路标识的计数值执行加1操作;
所述根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路,包括:
在所述目标线路对应的点位集合遍历完成之后,对所述字典数据中的数据元素按照关键字值进行逆序排序,并返回所述字典数据中的关键字。
7.根据权利要求1所述的方法,其特征在于,所述确定目标线路对应的点位集合之前,所述方法还包括:
获取订单数据集,所述订单数据集中包括多个订单的配送目的地;
依据预设约束条件生成包括所述配送目的地的配送线路;
在所述配送线路中确定目标线路;
所述确定所述目标线路对应的相邻线路之后,所述方法还包括:
根据所述目标线路的相邻路线,对所述目标线路进行调整。
8.一种线路计算装置,其特征在于,所述装置包括:
点位集合确定模块,用于确定目标线路对应的点位集合;所述目标线路为配送线路;
邻近点位计算模块,用于计算与所述点位集合中每一个点位的距离最近、且不属于所述目标线路的目标邻近点位;
相邻路线确定模块,用于根据所述点位集合中各点位的目标邻近点位所属的线路,确定所述目标线路对应的相邻线路。
9.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的线路计算方法。
10.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-7中任一项所述的线路计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082972.5A CN111325502B (zh) | 2020-02-07 | 2020-02-07 | 线路计算方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082972.5A CN111325502B (zh) | 2020-02-07 | 2020-02-07 | 线路计算方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111325502A CN111325502A (zh) | 2020-06-23 |
CN111325502B true CN111325502B (zh) | 2022-02-15 |
Family
ID=71172663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010082972.5A Active CN111325502B (zh) | 2020-02-07 | 2020-02-07 | 线路计算方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111325502B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494590B (zh) * | 2008-01-23 | 2011-09-21 | 中兴通讯股份有限公司 | 一种通信网络中基于负载平衡的最优路径选择方法 |
US20100217635A1 (en) * | 2009-02-25 | 2010-08-26 | At&T Intellectual Property I, L.P. | Package shipping method |
JP5906837B2 (ja) * | 2012-03-12 | 2016-04-20 | 富士通株式会社 | 経路探索方法、経路探索装置、及びプログラム |
US9534901B2 (en) * | 2014-12-11 | 2017-01-03 | International Business Machines Corporation | Access route optimization for harvestable resources |
CN105628043B (zh) * | 2015-12-28 | 2018-09-04 | 北京握奇智能科技有限公司 | 一种浮动车车载终端的最优路径搜索方法及*** |
CN107103061B (zh) * | 2017-04-14 | 2020-04-21 | 中国科学院遥感与数字地球研究所 | 一种室内空间单元的动态邻接矩阵的构建方法及装置 |
CN107194656A (zh) * | 2017-07-04 | 2017-09-22 | 北京惠赢天下网络技术有限公司 | 一种基于标准箱订单的配送路径的规划方法及装置 |
CN108489500A (zh) * | 2018-03-13 | 2018-09-04 | 安徽江淮汽车集团股份有限公司 | 一种基于能耗经济性的全局路径规划方法及*** |
CN108985597B (zh) * | 2018-06-29 | 2021-11-19 | 华南理工大学 | 一种动态物流调度方法 |
CN109598368B (zh) * | 2018-11-14 | 2021-09-10 | 拉扎斯网络科技(上海)有限公司 | 路径决策评估、订单分配方法及装置、电子设备及介质 |
CN109816315B (zh) * | 2019-02-22 | 2023-07-21 | 拉扎斯网络科技(上海)有限公司 | 路径规划方法、装置、电子设备及可读存储介质 |
CN109978447A (zh) * | 2019-03-06 | 2019-07-05 | 北京三快在线科技有限公司 | 一种物流配送线路规划方法和装置 |
-
2020
- 2020-02-07 CN CN202010082972.5A patent/CN111325502B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111325502A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10593110B2 (en) | Method and device for computing a path in a game scene | |
EP2750087A1 (en) | Methods and systems for determining estimated package delivery/pick-up times | |
CN112288347B (zh) | 冷链配送的路线确定方法、装置、服务器及存储介质 | |
JP2020533254A (ja) | 貨物を仕分けるための方法および装置 | |
WO2015154438A1 (zh) | 定位方法及装置 | |
US20130253827A1 (en) | Apparatus for fast path search by learning heuristic function and method thereof | |
CN107796395A (zh) | 一种用于室内目标位置的导航方法、装置及终端设备 | |
CN110399445A (zh) | 一种兴趣点的处理方法、装置及设备 | |
CN112926808A (zh) | 物流路径规划方法、装置、设备和计算机可读存储介质 | |
CN110659752B (zh) | 用于确定移动路径的方法和装置 | |
Kim et al. | Ant colony optimisation with random selection for block transportation scheduling with heterogeneous transporters in a shipyard | |
CN111461396A (zh) | 物流排线方法、装置、电子设备及可读存储介质 | |
CN111325502B (zh) | 线路计算方法、装置、电子设备及可读存储介质 | |
CN110930092B (zh) | 一种配送路线调整方法、装置、电子设备和存储介质 | |
CN109359760A (zh) | 一种物流路径优化方法、装置及服务器 | |
CN112884180B (zh) | 物流集散点选址方法、装置、电子设备及存储介质 | |
CN113108806A (zh) | 路径规划方法、装置、设备及介质 | |
Liu | A faster algorithm for the constrained minimum covering circle problem to expedite solving p‐center problems in an irregularly shaped area with holes | |
US10191928B2 (en) | Planar graph generation device and method | |
Song et al. | Large‐Scale Storage/Retrieval Requests Sorting Algorithm for Multi‐I/O Depots Automated Storage/Retrieval Systems | |
CN115409070A (zh) | 离散数据序列临界点的确定方法、装置以及设备 | |
CN111553637B (zh) | 提货路径生成方法、装置、电子设备及存储介质 | |
CN113627837B (zh) | 集货定位方法和装置 | |
JP2007241516A (ja) | 施設検索プログラム | |
CN113607183A (zh) | 一种车辆的运输路线规划方法、装置、存储介质及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |