CN115794969A - 距离查询方法、装置及计算机设备 - Google Patents
距离查询方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN115794969A CN115794969A CN202211097743.6A CN202211097743A CN115794969A CN 115794969 A CN115794969 A CN 115794969A CN 202211097743 A CN202211097743 A CN 202211097743A CN 115794969 A CN115794969 A CN 115794969A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- distance
- road
- path
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Navigation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种距离查询方法、装置及计算机设备,包括:接收目标对象从第一位置至第二位置的距离查询请求;获取第一位置对应的节点和第二位置对应的节点,利用标签数据获取第一位置至第二位置的距离;基于道路数据建立路网,路网包括n个节点,节点表示可通行的路段之间的交点,节点的边表示道路的路段,节点的边携带权重,权重的高低表示目标对象在节点的边所对应的路段的通行难度;获取Ni与Mi j的最优路径,生成标签数据;Ni是指路网中的第i个节点,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,标签数据用于指示Ni与Mi j的最优路径的目标距离,最优路径包括Ni与Mi j之间各条路径中通行难度最低的路径。
Description
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及距离查询方法、装置及计算机设备。
背景技术
目前,很多业务场景都具有计算距离的需求。例如配送业务场景中,配送运力接到的运单包含了商户位置和配送位置,两者的配送距离将影响配送运力在整个配送链路的行为逻辑以及实际收益,因此有着极其重要的作用。但是在实际城市配送场景中,面对城市等级别的超大规模路网,如何能够快速响应大量的请求,是亟待解决的技术问题。
发明内容
为克服相关技术中存在的问题,本说明书实施例提供了距离查询方法、装置及计算机设备的多个实施例。
根据本说明书实施例的第一方面,提供一种距离查询方法,所述方法包括:
接收目标对象从第一位置至第二位置的距离查询请求;
获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取所述第一位置至所述第二位置的距离;其中,所述标签数据通过如下方式获得:
基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;
获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括所述Ni与Mi j之间各条路径中通行难度最低的路径。
在一些例子中,所述生成标签数据,包括:
获取所述Ni与Mi j的最优路径中所经过的一个或多个中转节点后,根据所述边的权重,从所述一个或多个中转节点中获取重要度最高的节点作为所述Ni至Mi j的目标中转节点;其中,所述重要度基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高;
获取所述Ni与所述目标中转节点的第一距离以及获取所述Mi j与所述目标中转节点的第二距离后,生成标签数据;所述标签数据包括:所述Ni标识的标签、所述目标中转节点标识的标签和所述第一距离的第一距离标签三者的对应关系;以及,所述Mi j标识的标签、所述目标中转节点标识的标签和所述第二距离的第二距离标签三者的对应关系。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
循环执行如下步骤,直至所述路网中所有节点完成遍历:基于节点的重要度在所述路网中选取出Ni,获取Ni至Mi j的最优路径;其中,所述节点的重要度是基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
搜索出所述Ni对应的m个Mi j,对于所述m个Mi j中重要度高于Ni的重要度的节点,确定Ni至Mi j的最优路径。
在一些例子中,所述基于节点的重要度在所述路网中选取出Ni,包括:
基于所述节点的重要度由高至低的顺序,依次在所述路网中选取出Ni。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
从已选取出的i个节点中获取Mi j,以及在已选取出的i个节点中获取Ni至Mi j的第一路径;在遍历完成后,通过如下方式确定所述Ni至Mi j的最优路径:
若Ni至Mi j的第一路径的权重,大于目标路径的权重,将Ni至Mi j的最优路径确定为所述目标路径;其中,所述目标路径为:Ni至Kj t的最优路径加上Kj t至Mi j的路径,所述Kj t为所述Mi j的其中一个相邻节点,t为正整数;权重越高表示通行难度越高;
若Ni至Mi j的第一路径的权重,小于或等于所述目标路径的权重,将Ni至Mi j的第一路径确定为所述Ni至Mi j的最优路径。
在一些例子中,所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
获取待查询距离的第一查询节点的第一标识和第二查询节点的第二标识;
从所述标签数据中查找与所述第一标识对应且与所述第二标识对应的目标中转节点标识的标签后,根据所述第一距离标签和所述第二距离标签,得到所述第一查询节点至第二查询节点的距离。
在一些例子中,所述第一位置对应的节点包括:所述第一位置所在路段的两端的两个第一节点,所述第二位置对应的节点包括:所述第二位置所在路段的两端的两个第二节点;
所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
从所述标签数据中获取所述两个第一节点中任一节点至所述两个第二节点中任一节点的最优路径的目标距离;
将获取的多个目标距离中最短的距离作为所述第一位置至所述第二位置的距离。
在一些例子中,所述设定范围是根据所述目标对象的活动范围确定的。
在一些例子中,所述基于道路数据建立路网,包括:
获取所述道路数据中各条道路的一种或多种属性信息;
根据预设权重规则以及每条道路的属性信息,对所述路网中各条道路对应的节点的边配置权重;其中,所述预设权重规则记录道路的一种或多种属性信息分别对应的权重的规则。
在一些例子中,所述接收目标对象从第一位置至第二位置的距离查询请求,包括:
响应于配送订单的生成请求,获取所述配送订单中的取货位置和收货位置,以所述取货位置为第一位置、所述收货位置为第二位置,生成所述配送运力从所述第一位置至所述第二位置的距离查询请求。
根据本说明书实施例的第二方面,提供一种距离查询装置,所述装置包括:
请求接收模块,用于:接收目标对象从第一位置至第二位置的距离查询请求;
距离获取模块,用于:获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取所述第一位置至所述第二位置的距离;
数据生成模块,用于:基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括所述Ni与Mi j之间各条路径中通行难度最低的路径。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述第一方面所述的距离查询方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,基于道路数据建立有路网,路网包括节点、节点的边和所述边的权重,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述权重的高低表示所述目标对象在该路段的通行难度;基于此,可以对路网生成标签数据,标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括Ni与Mi j之间各条路径中通行难度最低的路径,从而将大规模路网结构中,目标对象的路径查询问题转化为在标签数据中的距离查询问题,极大降低了资源的开销和极大提高了查询效率,能够满足高QPS场景下的高实时性要求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种距离查询方法的流程图。
图2A是本说明书根据一示例性实施例示出的路网中部分节点的示意图。
图2B是本说明书根据一示例性实施例示出的路网中部分节点的另一示意图。
图2C和图2D分别是本说明书根据一示例性实施例示出的选取节点的示意图。
图2E是本说明书根据一示例性实施例示出的路网中部分节点的另一示意图。
图2F是本说明书根据一示例性实施例示出的一种最优路径的示意图。
图2G是本说明书根据一示例性实施例示出的另一种距离查询方法的流程图。
图2H是本说明书根据一示例性实施例示出的一种标签数据的示意图。
图3是本说明书根据一示例性实施例示出的一种距离查询装置所在计算机设备的硬件结构图。
图4本说明书根据一示例性实施例示出的一种距离查询装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如背景技术中所言,在配送场景中,平台产生的配送订单都涉及到收货位置与取货地址之间的时间和费用计算,而这些计算结果的准确性都依赖于订单的距离计算。由于配送场景下有着海量的配送运力,在业务的高峰期会大量接单,因此这是一个高峰期有着明显高QPS(Queries Per Second,每秒查询率,即一台服务器每秒能够支持的查询次数)请求的场景。对于平台而言,为配送运力提供相关服务的服务器资源是固有的消费资源,因此提供高QPS查询属于日常需要的计算成本和服务成本。其他的业务场景,如地图导航或网约车派单等,也面临相同问题。
一些解决方案是基于深度学习等机器学习模型的方法。例如,将配送运力在配送链路中的配送时间等数据作为训练集,通过有效的特征组合与模型训练,最终可以根据实时输入直接输出预估结果。该方案缺陷主要表现在,深度学习模型的黑盒化,对可能发生误差的环节缺少直接纠正能力,模型预估结果的准确度难以保证。
另一些解决方案是基于地图导航,根据查询请求,需要在地图中搜索出两点的路径后,确定两点的距离。但此种方案需要在进行路径搜索,其处理效率较慢,无法满足高QPS场景下的高实时性要求。
另一些解决方案是缩减路网结构,删减节点并将路网分层提取多个子图,如配送场景下涉及很多末端节点,很可能会忽略掉部分对配送场景下很重要的节点,从而导致查询结果不准确。
基于此,本说明书实施例提供一种数据处理方法,能够快速地响应距离查询请求。如图1所示,是本说明书根据一示例性实施例示出的一种距离查询方法的流程图,包括如下步骤:
在步骤102中,接收目标对象从第一位置至第二位置的距离查询请求。
在步骤104中,获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取第一位置至第二位置的距离。
其中,所述标签数据通过如下方式获得:
基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;
获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni至Mi j的最优路径的目标距离,所述最优路径包括所述Ni至Mi j之间各条路径中通行难度最低的路径。
本实施例通过标签数据,将大规模路网结构中的查询问题转化为在标签数据中的文本查询问题,极大降低了资源的开销和极大提高了查询效率。
接下来对生成标签数据的实施例进行描述。本实施例中,可以基于道路数据建立路网,其中道路数据可从地图数据中获取到,道路数据中包括有各条道路的信息,基于此可以建立路网,本实施例的路网是指表征道路的网络network,即一个地理范围(如城市等)内由所有道路构成的网络结构。路网包括n个节点、节点的边和边的权重,在本实施例方案中,节点表示可通行的路段之间的交点,节点的边表示道路的路段,即一条道路或道路的一段,根据一条道路是否与其他道路相连通而确定,权重的高低表示目标对象在该路段通行的难易程度。如图2A所示,是本说明书根据一示例性实施例示出的路网中部分节点之间的网络示意图。
本实施例中,权重可以表示所述目标对象在该路段通行的难易程度;实际应用中可以基于本实施例方案所应用的业务场景及实际的目标对象灵活配置。作为例子,以本实施例方案应用于配送场景为例,目标对象即配送运力。道路数据中通常会包括基础的道路等级等初始信息,例如道路是否为高速路,是否为城乡道路以及是否为末端道路等等。不同道路对目标对象的适用程度不同,例如配送运力通常采用电单车作为交通工具,配送运力在不同道路的通行难易程度不同。本实施例可以预先为各条道路构建表示通行难易程度的标签。
本领域技术人员清楚,各条道路及目标对象在该道路通行的难易程度可以根据实际需要灵活实现。作为一个例子,可以采用数值的高低表示目标对象在该道路通行的难易程度,即权重可以采用数值表示。
构建表示难易程度的标签的过程可以有多种实现方式。作为一个示例,可以是由作业人员构建标签。
在另一些例子中,还可以通过一种或多种方式自动构建标签。例如,在基于道路数据建立路网时,可以获取所述道路数据中各条道路的一种或多种属性信息;根据预设权重规则以及每条道路的属性信息,对所述路网中各条道路对应的节点的边配置权重。本实施例中,通过预设权重规则可以快速地对路网中节点的边配置权重。示例性的,节点的边表示道路的路段,通过道路的属性信息确定道路的权重后,道路的各个路段所对应的节点的边的权重即可确定。在其他例子中,一条道路的各个路段有不同权重也是可选的。
本领域技术人员清楚,预设权重规则记录有一种或多种属性信息分别对应的权重,实际应用中可以有多种实现方式,本实施例对此不进行限定。例如,可以是记录各种属性信息对应的权重的映射关系,或者是记录各种属性信息对应的权重的转换函数关系;或者还可以是两者的组合,例如记录部分属性信息与权重的映射关系,记录部分属性信息与权重的转换函数关系等等。其中,道路的属性信息包括有多种,例如道路的等级信息、道路的形状信息、道路的车道信息等,本实施例对此不进行限定。
例如,实际应用中可以确定目标对象的通行方式,以及从道路数据中获取各条道路的一种或多种属性信息。地图中的道路数据对于道路的等级划分可能多种标准,例如按照行驶速度划分的高速公路、一级公路、二级公路、三级公路或四级公路,不同等级下对行驶速度的限制不同;还有根据行政级别划分等级;还有划分为快速路、主干路、次干路或支路等等。不同等级信息的道路对于目标对象通行的难易程度不同。例如,在配送场景下,高速道路等不适用于配送运力通行,可以为其配置表示通行难度较高的权重。或者,还可以获取道路的车道信息,例如单行道路、双行道路或包括有自行车道等的车道信息,不同车道也会影响目标对象的通行难易程度。或者,还可以获取道路的形状信息,例如一些转弯较多的道路对于目标对象来说具有较高的通行难度等。实际应用中,可以综合上述一种或多种属性信息设计预设权重规则。
实际应用中,还可以根据目标对象的历史路径数据设计预设权重规则。例如,获取到配送运力的历史路径数据,历史路径数据表征配送运力在历史配送运单的通行路径,可以分析出配送运力在各条道路的通行难易程度。例如,越多配送运力都经过的道路,则道路的通行难易程度越低等等。
本实施例中边的权重表示目标对象在该路段通行的难易程度,可以用于确定节点之间的最优路径。节点之间的路径本身具有距离信息,本实施例方案中在确定最优路径时,优先考虑的是边的权重信息,即目标对象在该路段通行的难易程度。实际应用中,两个节点之间存在多条不同路径,但各条路径对于目标对象来说通行的难易程度不同,本实施例的最优路径是指两个节点之间各条路径中权重最低的路径,即最优路径是对于目标对象来说通行难度最低的路径。
基于此,本实施例可以将地图中的道路数据转换为带有权重的路网;为了解决查询问题,本实施例可以基于路网生成标签数据。具体的,对于路网中的节点Ni,可以在节点Ni的设定范围内搜索出与其连通的m个节点,本实施例称之为节点Mi j,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数。在确定Ni与Mi j之间的最优路径,将最优路径的真实的物理距离存储为节点Ni与节点Mi j之间的距离,真实的物理距离可以从道路数据中获取到。其中,本实施例的路网可以是有向图,即两个节点之间的边带有方向,可以在建立路网时根据道路的通行方向为边配置方向。因此Ni与Mi j之间的最优路径可以包括Ni至Mi j之间的最优路径和Mi j至Ni之间的最优路径,两个路径可能相同或不同。
本实施例的设定范围,是用于在对节点Ni搜索与其连通的各个节点Mi j时进行搜索范围的限制,从而达到降低计算量的目的。实际应用中,路网覆盖的地理范围较大,路网中节点数量非常多,设定范围的大小实际应用中可以根据需要灵活确定。例如,可以根据本实施例的业务场景确定,可以根据所述目标对象的活动范围进行确定,或者根据历史距离查询请求中第一位置至第二位置的距离确定。作为一个示例,在配送场景下,配送运力的活动范围通常是在几公里,活动范围可以基于实际业务场景确定,即距离查询请求中第一位置至第二位置的距离是可控的,因此设定范围大于距离查询请求中第一位置至第二位置的距离等。或者,设定范围的限制还可以基于节点的边的数量来实现,例如,在确定与Ni在设定范围内连通的m个节点时,可以限制Ni与Mi j的边的数量的上限值,即针对节点Ni搜索其Mi j节点时,限制从Ni出发后所搜索的边的数量的上限值,例如最高200条边等,该值可以根据实际业务进行确定,本实施例对此不进行限定。基于此,在路网中搜索Ni的各个节点Mi j时,通过边的数量实现了对范围的限制。
例如,如图2B所示,是本说明书根据一示例性实施例示出的路网示意图,图2B中实线框表示某个地理范围内的路网,图中的圆圈表示路网中的节点;以节点A为例,图2B中的以节点A为圆心的圆形虚线框表示了节点A的设定范围内,虚线框内的除了节点A之外的其他节点与节点A在设定范围内连通的节点。针对节点A以及在设定范围内与其连通的多个节点,本实施例可以预先存储节点A至各个其他节点的最优路径及距离。同理,以节点B为例,图2B中的以节点B为圆心的圆形虚线框表示了节点B的设定范围,本实施例也预存了节点B至各个其他节点的最优路径及距离。
作为一个例子,获取Ni与Mi j的最优路径可以有多种实现方式。例如,可以从路网中的任意节点开始,遍历选取出节点,每选取出一个节点Ni,则执行搜索设定范围内与其连通的m个节点,确定Ni至每个Mi j的最优路径,每次完成一个节点Ni的计算,可以从路网中再次选取未计算过的节点,遍历路网中的所有节点后完成计算。示例性的,对节点Ni搜索与其连通的节点时,可以是搜索与Ni连接的各个相邻节点,再搜索各个相邻节点的相邻节点,以此类推。
在另一些例子中,为了减少计算量,在一些例子中,循环执行如下步骤,直至所述路网中所有节点完成遍历:基于节点的重要度在所述路网中选取出Ni,获取Ni至Mi j的最优路径;其中,所述节点的重要度是基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高。从而,路网中表示通行难度较低的道路的路段的节点会优先得到选取,路网中一些表示通行难度较大的道路的路段的节点可能可以无需经过计算。
也即是,本实施例可以根据节点的重要度来确定路网中从哪个节点开始进行最优路径的搜索,例如,从重要度由高至低的方式。作为例子,可以对路网中所有节点配置标识ID,节点的ID是基于节点的边的数量越多且所述边的权重指示的通行难度,例如,节点的边越多和权重指示的通行难度越低,则节点的ID越小。基于此,对路网中所有节点配置ID,使得表示节点重要度的节点ID也表示了节点被选取的优先级,节点的ID越小表示节点的重要度越高,在选取时优先被选中。从而,可以按照ID从小到大顺序依次选取Ni。当然,实际应用中,按照重要度由低至高的顺序选取也是可选的。
其中,本实施例的节点Ni,可以是路网中的所有节点,也可以是部分节点,即i可以等于n,也可以小于n。例如,在一些例子中,通过节点的重要度,可以确定一些节点是目标对象无法通行的,即距离查询请求中的位置并不会处于该节点所属的道路。因此,这些节点可以无需进行最优路径的搜索。
例如,i从1开始,选取路网中ID最小的节点作为N1,搜索与N1连通的m个节点,以及确定N1与Mi j的最优路径,N1与Mi j之间满足前述设定范围的限制,即从N1搜索出Mi j时,不会搜索整个路网,而是在设定范围内进行搜索。其中,最优路径的计算可以采用双向迪杰斯特拉(Dijkstra)算法实现,即分别从路径搜索的起点和路径搜索的终点同时执行前向的Dijkstra算法和后向的Dijkstra算法。当前向Dijkstra算法和后向Dijkstra算法相遇时,搜索结束,根据起点和终点相遇时的节点确定起点和终点的最优路径,其中,本实施例的Dijkstra算法计算最优路径时采用所述权重信息衡量节点之间的路径是否最优。
接着,按ID从路网中选取下一个节点N2,再次执行前述步骤,即搜索与N2连通的m个节点Mi j,以及N2至Mi j的最优路径。以此类推,循环计算,最终路网中每个节点Ni,都具有与其对应的各个Mi j的最优路径。
图2C和图2D示出了选取节点的示意图;在图2C中,箭头左侧的所有节点中,被选取到的节点为箭头右侧中的实心的节点,该节点的重要度最高。在其他轮次的选取中,可能存在重要度相同的节点,如图2D中,对于重要度相同的节点,则根据节点的边的权重进行选取,如边的权重指示的道路通行难度越低的节点优先被选取。
其中,在遍历过程中,一些节点可能已经计算过,例如,节点A与节点B之间位于设定范围内,节点A标识ID小于节点B的标识ID,节点A优先计算,可以计算出节点A至节点B的最优路径;节点A计算完成后选取其他节点进行计算,当选取到节点B计算时,以节点A搜索设定范围内的节点时包括有节点A,可以从已存储的最优路径数据中查询节点A与节点B之间的最优路径已经计算得到,因此在计算节点B至节点A时可以终止本次计算,从而减少计算量。
由上述实施例可见,对所有节点的遍历过程中,每一次选取节点Ni时,已计算出的最优路径的路径权重可以进行存储。按节点重要度从高至低的顺序,每一轮选取出节点计算并存储的最优路径数据,会随着轮次的递增依次递减。当前轮次选取Ni并获取最优路径时可以利用已存储的最优路径数据进行查询。
基于此,在另一些例子中,还可以通过其他方式提升计算效率。本实施例中,在选取出Ni后,可以搜索出所述Ni对应的m个Mi j,对于所述m个Mi j中重要度高于Ni的重要度的节点,确定Ni至Mi j的最优路径。也即是,对于Ni搜到Ni的各个Mi j,Ni的重要度弱于各个Mi j的重要度,终止本次计算跳转选取下一个节点;若有Mi j的重要度高于Ni,则计算该Mi j与Ni的最优路径。
本实施例中,虽然按照ID从小到大计算节点,第一个选取的节点是重要度最高的节点,但通过上述实施例,第一个选取的节点N1与该N1的各个Mi j未计算最优路径;接着选取N2,N2与该N2的各个Mi j也可能未计算最优路径;到第三轮选取N3,N3的各个Mi j中可能包括N1,由于N3的重要度低于N1,计算最优路径并存储。以此类推;在任意一轮选取与计算中,Ni的各个Mi j中有重要度低于Ni的Mi j,才计算双向最优路径。由此可见,随着轮次的递增,所计算并存储的最优路径的数据是依次递增的,从而,每一轮次的计算过程中,由于已存储的最优路径的数据依次递增,因此当前轮次在选取Ni并获取最优路径时利用已存储的最优路径数据进行查询时,可以提升查询效率。
例如,以图2A示出的部分路网为例,从重要度高往低算,第一轮选取重要度最高的节点a,与节点a对应的各个Mi j重要度低于节点a;
进入第二轮,选取到节点d,与节点d对应的各个Mi j中包括有节点a、节点c和节点e等;其中,节点d的重要度低于节点a,获取节点d与节点a的最优路径;由于节点c和e的重要度低于节点d,无需计算最优路径;
进入第三轮,选取到节点c,与节点c对应的各个Mi j中包括有节点d、节点a和节点b等;其中,节点d和节点a的重要度均高于节点c,获取节点c与节点d的最优路径,以及节点c与节点a的最优路径;由于节点b的重要度低于节点c,无需计算两者的最优路径。本实施例在搜索最优路径时,是在路网中以全局的方式进行搜索。
基于此,通过上述方式获取到了路网中每个Ni与该Ni对应的各个Mi j的最优路径。例如,如图2E所示的6个节点构成的路网,这6个节点满足所述设定范围,经过上述最优路径搜索,对于V1可以得到其到V2至V6中5个节点的最优路径;同理,对V2来说,也可以得到其到V1、V3至V6中5个节点的最优路径。而两个节点之间最优路径的实际物理距离,可以从地图的道路数据中获取到。由上述实施例可见,每两个节点之间都需要存储两者的最优路径的距离。
基于此,本说明书实施例中,存储的标签数据还可以通过如下方式减少数据存储量。作为例子,所述生成标签数据可以包括:
获取所述Ni与Mi j的最优路径中所经过的一个或多个中转节点后,根据所述边的权重,从所述一个或多个中转节点中获取重要度最高的节点作为所述Ni至Mi j的目标中转节点;其中,所述重要度基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高;
获取所述Ni与所述目标中转节点的第一距离以及获取所述Mi j与所述目标中转节点的第二距离后,生成标签数据;所述标签数据包括:所述Ni标识的标签、所述目标中转节点标识的标签和所述第一距离的第一距离标签三者的对应关系;以及,所述Mi j标识的标签、所述目标中转节点标识的标签和所述第二距离的第二距离标签三者的对应关系。
例如图2F所示,从节点C至节点D的最优路径是:节点C→节点D→节点E→节点F→节点G,记录节点C至节点G的标签数据可以是从节点C与节点D之间的中转节点D、E和F中选取一目标中转节点,该目标中转节点可以是这三个中转节点中重要度最高的节点,重要度基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高,例如节点F。从而标签数据中,可以记录:节点C的标识、中转节点F的标签以及节点C至节点F的距离标签;节点G的标识、中转节点F的标签以及节点G至节点F的距离标签。
接下来再通过一实施例进行说明。如图2G,是本说明书根据一示例性实施例示出的另一种距离查询方法的示意图,包括如下步骤:
在步骤202中,基于道路数据建立路网。
例如,可参考前述实施例,地图领域中原始的道路路网,可以通过本步骤的处理,转换为表示通行难度的路网。
在步骤204中,对路网中的节点Ni,获取Ni与Mi j的最优路径。
本步骤中,可以对路网中的每个节点配置重要度,重要度基于节点的边的数量和边的权重确定。例如,获取节点的边的数量值,获取节点的各条边的权重和值,对边的数量值和各条边的权重和值进行加权,加权和即重要度。
对所有节点的重要度排序,对于重要度数值相同的节点,各条边的权重和值大的,节点的排序越高,即重要度越高。按重要度由高到低赋予每个节点唯一的标识ID;其中,例如,ID越大,相应节点的重要度越低。
选取节点开始获取节点与邻近节点的最优路径;本实施例中,节点Ni的邻近节点,即与Ni在设定范围内连通的m个节点。每一轮计算,即选取出节点Ni并在路网中搜索出Ni与各个Mi j的最优路径的过程。
在一些例子中,当前搜索到一个Mi j时,若Mi j的重要度小于Ni,执行双向Dijkstra,得到Ni与当前搜到的Mi j的最优路径;若Mi j的重要度大于Ni,则搜索下一个Mi j。若所有Mi j都搜索到,执行下一轮计算。循环计算,使得路网中的节点,都具有到达邻近节点的最优路径,且可以获得最优路径的权重值,该权重值即最优路径的各条边的权重和值。
前述实施例采用全局搜索的方式确定最优路径。在另一些例子中,还可以采用局部搜索的方式提升性能。例如,基于重要度由高至低选取出节点进行计算;每一轮计算中,从已选取出的i个节点中获取Mi j,即Mi j是已选取出的i个节点中的节点,以及在已选取出的i个节点中获取Ni至Mi j的第一路径,即当前计算的Ni至Mi j的最优路径是指在已选取出的i个节点中确定出的最优路径,从而采用局部搜索方式,提升生成标签数据的性能。
以图2A为例,采用局部搜索的方式,第一轮选取重要度最高的节点a,此时已选取的节点仅有该节点a,此时无需计算最优路径;
进入第二轮,选取到节点d,当前已选取到的节点包括节点a和节点d;对于节点d,由于节点a与其连接,且节点d的重要度小于节点a,因此计算出两者的最优路径,本实施例将当前计算出的路径称之为第一路径,因为当前的计算结果不一定是全局最优的路径;
进入第三轮,选取到节点c,当前已选取到的节点包括节点a、节点d和节点c;对于节点c,由于节点a和节点d均与其连接,且节点c的重要度小于节点a,因此计算出节点c与节点a的最优路径以及节点c与节点d的最优路径,即第一路径。
同理,循环计算其他轮次。
在步骤206中,生成标签数据。
经过步骤204的处理,路网中节点至少具有如下三个属性:唯一的ID、节点之间的边携带有表示通行难度的权重;节点到达各个邻近节点的第一路径的权重值。
本实施例中,由于前述204步骤采用局部搜索的方式,可能会出现部分第一路径并不是最优的情况。例如,在步骤204中,存储的节点d至节点a的最优路径是权重4,而实际上有更优的从节点d→c→a的路径。
基于此,本实施例还可以通过如下方式确定全局的最优路径:若Ni至Mi j的第一路径的权重,大于目标路径的权重,将Ni至Mi j的最优路径确定为所述目标路径;其中,所述目标路径为:Ni至Kj t的最优路径加上Kj t至Mi j的路径,所述Kj t为所述Mi j的其中一个相邻节点,t为正整数。以及,若Ni至Mi j的第一路径的权重,小于或等于所述目标路径的权重,将Ni至Mi j的第一路径确定为所述Ni至Mi j的最优路径。其中,权重越高表示通行难度越高。
作为例子,选取节点Ni,从选取的节点开始,遍历该节点Ni至各个Mi j的路径,并确定Ni至各个Mi j的最优路径;在更新过程中:
(1)以Ni至目标节点Mi j为例,当Ni到达目标节点Mi j的权重<到达目标节点Mi j的相邻节点的最优路径的权重+该相邻节点到目标节点Mi j的路径的权重,则跳过此次计算。
如图2A中,节点a为目标节点Mi j,从节点d出发,存储的节点d至节点a的最优路径的权重是4;
其中,节点a的相邻节点包括节点b,节点d到达节点b的最优路径的权重加上,节点b到达节点a的路径权重,权重和为7,因此无需更新。
(2)当Ni到达目标节点Mi j的权重>到达目标节点Mi j的相邻节点的最优路径的权重+该相邻节点到目标节点Mi j的路径的权重,更新节点d中保存的至节点a的最优路径。
例如,节点a的相邻节点还包括节点c,当采用路径节点d→c→a时,由于该路径的权重值为3,小于节点d→节点a;因此,更新节点d至节点a的最优路径为路径:节点d→c→a,且权重为3。
本实施例中,经过上述处理,可以生成标签数据,即可以不存储每两个节点之间最优路径的距离,而是可以分析出两个节点之间的目标中转节点,例如,存储节点Ni至目标中转节点的最优路径的目标距离,以及存储目标中转节点至节点Mi j的最优路径的目标距离。
作为一个例子,如图2E所示的部分路网,原本V2、V5至V6之间,需要存储3条数据,即V2与V5、V2与V6以及V5与V6,由于V2是V5与V6的中转站,因此,只需要存储V5至V2、V6至V2两条数据即可,V5至V6之间的最优路径,可以通过V5至V2、V6至V2两条数据计算得到。图2E所示的路网存储的标签数据为图2H所示的数据,图中L(v)表示节点v对应的数据,如V3对应的数据包括有V3至V1的距离为1,V3至V2的距离为1。从该表格里的节点关系可以快速判定:由于V2同时在V5和V6的标签中,因此V2属于V5→V6的最优路径中,而最优路径的距离就是两个距离标签的和,V2即V5与V6的重要中转节点hub,V2可以携带有中转节点标签hub。
通过上述方式,标签数据具有以下特点:
hub标签满足一定的覆盖度,即两个非相邻的节点之间的最优路径,需要包括至少一个目标中转节点;
若存在两个相邻节点分别为对方的目标中转节点,大概率是发生了权重的不合理导致道路之间陷入循环。因为理论上,对于一个区域内来说,邻近的节点共享label应该是因为他们有着共同的更高重要等级的节点。
存储的标签数据满足最小原则,也就是移除任意一个目标中转节点会破坏标签数据的完整性。例如,标签数据表示了一个携带有hub标签的路网,移除任意一个hub都会破坏该网络的覆盖度。
在步骤208中,接收距离查询请求,利用标签数据查询距离。
例如,距离查询请求中携带有第一位置的地理位置信息和第二位置的地理位置信息,查询到第一位置对应的节点包括:所述第一位置所在路段的两端的两个第一节点,第二位置对应的节点包括:所述第二位置所在路段的两端的两个第二节点;因此,利用标签数据获取所述第一位置至所述第二位置的距离,包括:从所述标签数据中获取所述两个第一节点中任一节点至所述两个第二节点中任一节点的最优路径的目标距离;将获取的多个目标距离中最短的距离作为所述第一位置至所述第二位置的距离。
例如,在查询V5至V6之间的最优路径的距离时,由于V2同时在V5和V6对应的数据中,因此V2属于V5至V6的最短路径中的中转节点,将V5至V2的距离加上V6至V2的距离,即可得到V5至V6的最短路径的距离。
以配送场景为例,例如,服务端可以获取到用户通过客户端发起在店铺的下单请求后推送给该店铺,响应于店铺的接单消息,服务端可以生成配送运单并推送给配送运力的客户端。其中,响应于配送订单的生成请求,可以获取所述配送订单中的取货位置和收货位置,以所述取货位置为第一位置、所述收货位置为第二位置,生成配送运力从所述第一位置至所述第二位置的距离查询请求,从而可以通过前述实施例获取到取货位置和收货位置的距离查询结果。之后,配送运力的客户端会展示多个待分配配送运力的配送运单,还可以展示取货位置至收货位置的距离,可选的,在获得到距离后还可以预估所述配送运力从所述取货位置至所述收货位置的时间。
例如,标签数据中各个节点都对应有节点标识ID,根据取货位置确定取货位置所在路段两端的两个节点ID(例如节点C1和节点C2),根据收货位置确定取货位置所在路段两端的两个节点ID(例如节点C3和节点C4);接着,可以获取:节点C1至节点C3的最优路径的距离、节点C1至节点C4的最优路径的距离、节点C2至节点C3的最优路径的距离、节点C2至节点C4的最优路径的距离共4个距离,这4个距离中最短的距离,即可作为取货位置和收货位置的距离。在配送场景中,根据取货位置和收货位置的距离,服务端可以预估所述配送运力从所述取货位置至所述收货位置的时间。
由上述实施例可见,本实施例方案适用于大规模路网的查询问题,能将大规模路网结构中的查询问题转化为在标签数据中的文本标签的查询问题,查询效率非常高,而且准确度也有保障。极大的减少了查询时需要消耗的内存与CPU等资源的消耗。
上述实施例方案是可回溯和标记的,所构造的路网有着细节的把控能力。而基于标签的构造方法,使得最终生成的结果将路径查找转化为标签检索,这保证了最终查询效率与准确度兼得。并且该方案可以灵活地适用于不同业务场景下目标对象的距离查询,只需要通过简单的调整即可作为不同场景的的距离查询服务,既可以作为独立的服务也可以作为其他服务的输入。
与前述距离查询方法的实施例相对应,本说明书还提供了距离查询装置及其所应用的计算机设备的实施例。
本说明书距离查询装置的实施例可以应用在计算机设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书实施例距离查询装置所在计算机设备的一种硬件结构图,除了图3所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的计算机设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图4所示,图4是本说明书根据一示例性实施例示出的一种距离查询装置,所述装置包括:
请求接收模块41,用于:接收目标对象从第一位置至第二位置的距离查询请求。
距离获取模块42,用于:获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取所述第一位置至所述第二位置的距离。
数据生成模块43,用于:基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括所述Ni与Mi j之间各条路径中通行难度最低的路径。
在一些例子中,所述生成标签数据,包括:
获取所述Ni与Mi j的最优路径中所经过的一个或多个中转节点后,根据所述边的权重,从所述一个或多个中转节点中获取重要度最高的节点作为所述Ni至Mi j的目标中转节点;其中,所述重要度基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高;
获取所述Ni与所述目标中转节点的第一距离以及获取所述Mi j与所述目标中转节点的第二距离后,生成标签数据;所述标签数据包括:所述Ni标识的标签、所述目标中转节点标识的标签和所述第一距离的第一距离标签三者的对应关系;以及,所述Mi j标识的标签、所述目标中转节点标识的标签和所述第二距离的第二距离标签三者的对应关系。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
循环执行如下步骤,直至所述路网中所有节点完成遍历:基于节点的重要度在所述路网中选取出Ni,获取Ni至Mi j的最优路径;其中,所述节点的重要度是基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
搜索出所述Ni对应的m个Mi j,对于所述m个Mi j中重要度高于Ni的重要度的节点,确定Ni至Mi j的最优路径。
在一些例子中,所述基于节点的重要度在所述路网中选取出Ni,包括:
基于所述节点的重要度由高至低的顺序,依次在所述路网中选取出Ni;其中,若存在重要度相同的多个节点,基于节点的边的权重进行选取。
在一些例子中,所述获取Ni与Mi j的最优路径,包括:
从已选取出的i个节点中获取Mi j,以及在已选取出的i个节点中获取Ni至Mi j的第一路径;在遍历完成后,通过如下方式确定所述Ni至Mi j的最优路径:
若Ni至Mi j的第一路径的权重,大于目标路径的权重,将Ni至Mi j的最优路径确定为所述目标路径;其中,所述目标路径为:Ni至Kj t的最优路径加上Kj t至Mi j的路径,所述Kj t为所述Mi j的其中一个相邻节点,t为正整数;权重越高表示通行难度越高;
若Ni至Mi j的第一路径的权重,小于或等于所述目标路径的权重,将Ni至Mi j的第一路径确定为所述Ni至Mi j的最优路径。
在一些例子中,所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
获取待查询距离的第一查询节点的第一标识和第二查询节点的第二标识;
从所述标签数据中查找与所述第一标识对应且与所述第二标识对应的目标中转节点标识的标签后,根据所述第一距离标签和所述第二距离标签,得到所述第一查询节点至第二查询节点的距离。
在一些例子中,所述第一位置对应的节点包括:所述第一位置所在路段的两端的两个第一节点,所述第二位置对应的节点包括:所述第二位置所在路段的两端的两个第二节点;
所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
从所述标签数据中获取所述两个第一节点中任一节点至所述两个第二节点中任一节点的最优路径的目标距离;
将获取的多个目标距离中最短的距离作为所述第一位置至所述第二位置的距离。
在一些例子中,所述设定范围是根据所述目标对象的活动范围确定的。
在一些例子中,所述基于道路数据建立路网,包括:
获取所述道路数据中各条道路的一种或多种属性信息;
根据预设权重规则以及每条道路的属性信息,对所述路网中各条道路对应的节点的边配置权重;其中,所述预设权重规则记录道路的一种或多种属性信息分别对应的权重的规则。
在一些例子中,所述接收目标对象从第一位置至第二位置的距离查询请求,包括:
响应于配送订单的生成请求,获取所述配送订单中的取货位置和收货位置,以所述取货位置为第一位置、所述收货位置为第二位置,生成所述配送运力从所述第一位置至所述第二位置的距离查询请求。
上述距离查询装置中各个模块的功能和作用的实现过程具体详见上述距离查询方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本说明书还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述第一方面所述的距离查询方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该申请的保护范围内。
其中,“具体示例”、或“一些示例”等的描述意指结合所述实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (14)
1.一种距离查询方法,所述方法包括:
接收目标对象从第一位置至第二位置的距离查询请求;
获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取所述第一位置至所述第二位置的距离;其中,所述标签数据通过如下方式获得:
基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;
获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括所述Ni与Mi j之间各条路径中通行难度最低的路径。
2.根据权利要求1所述的方法,所述生成标签数据,包括:
获取所述Ni与Mi j的最优路径中所经过的一个或多个中转节点后,根据所述边的权重,从所述一个或多个中转节点中获取重要度最高的节点作为所述Ni至Mi j的目标中转节点;其中,所述重要度基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高;
获取所述Ni与所述目标中转节点的第一距离以及获取所述Mi j与所述目标中转节点的第二距离后,生成标签数据;所述标签数据包括:所述Ni标识的标签、所述目标中转节点标识的标签和所述第一距离的第一距离标签三者的对应关系;以及,所述Mi j标识的标签、所述目标中转节点标识的标签和所述第二距离的第二距离标签三者的对应关系。
3.根据权利要求1或2所述的方法,所述获取Ni与Mi j的最优路径,包括:
循环执行如下步骤,直至所述路网中所有节点完成遍历:基于节点的重要度在所述路网中选取出Ni,获取Ni至Mi j的最优路径;其中,所述节点的重要度是基于节点的边的数量和所述边的权重确定的,所述节点的边的数量越多且所述边的权重指示的通行难度越低,所述重要度越高。
4.根据权利要求3所述的方法,所述获取Ni与Mi j的最优路径,包括:
搜索出所述Ni对应的m个Mi j,对于所述m个Mi j中重要度高于Ni的重要度的节点,确定Ni至Mi j的最优路径。
5.根据权利要求3所述的方法,所述基于节点的重要度在所述路网中选取出Ni,包括:
基于所述节点的重要度由高至低的顺序,依次在所述路网中选取出Ni;其中,若存在重要度相同的多个节点,基于节点的边的权重进行选取。
6.根据权利要求5所述的方法,所述获取Ni与Mi j的最优路径,包括:
从已选取出的i个节点中获取Mi j,以及在已选取出的i个节点中获取Ni至Mi j的第一路径;在遍历完成后,通过如下方式确定所述Ni至Mi j的最优路径:
若Ni至Mi j的第一路径的权重,大于目标路径的权重,将Ni至Mi j的最优路径确定为所述目标路径;其中,所述目标路径为:Ni至Kj t的最优路径加上Kj t至Mi j的路径,所述Kj t为所述Mi j的其中一个相邻节点,t为正整数;权重越高表示通行难度越高;
若Ni至Mi j的第一路径的权重,小于或等于所述目标路径的权重,将Ni至Mi j的第一路径确定为所述Ni至Mi j的最优路径。
7.根据权利要求2所述的方法,所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
获取待查询距离的第一查询节点的第一标识和第二查询节点的第二标识;
从所述标签数据中查找与所述第一标识对应且与所述第二标识对应的目标中转节点标识的标签后,根据所述第一距离标签和所述第二距离标签,得到所述第一查询节点至第二查询节点的距离。
8.根据权利要求1或7所述的方法,所述第一位置对应的节点包括:所述第一位置所在路段的两端的两个第一节点,所述第二位置对应的节点包括:所述第二位置所在路段的两端的两个第二节点;
所述利用标签数据获取所述第一位置至所述第二位置的距离,包括:
从所述标签数据中获取所述两个第一节点中任一节点至所述两个第二节点中任一节点的最优路径的目标距离;
将获取的多个目标距离中最短的距离作为所述第一位置至所述第二位置的距离。
9.根据权利要求1所述的方法,所述设定范围是根据所述目标对象的活动范围确定的。
10.根据权利要求1所述的方法,所述基于道路数据建立路网,包括:
获取所述道路数据中各条道路的一种或多种属性信息;
根据预设权重规则以及每条道路的属性信息,对所述路网中各条道路对应的节点的边配置权重;其中,所述预设权重规则记录道路的一种或多种属性信息分别对应的权重的规则。
11.根据权利要求1所述的方法,所述接收目标对象从第一位置至第二位置的距离查询请求,包括:
响应于配送订单的生成请求,获取所述配送订单中的取货位置和收货位置,以所述取货位置为第一位置、所述收货位置为第二位置,生成所述配送运力从所述第一位置至所述第二位置的距离查询请求。
12.根据权利要求11所述的方法,所述查询结果包括所述取货位置和收货位置的距离;所述方法还包括:
在获取到所述查询结果后,预估所述配送运力从所述取货位置至所述收货位置的时间。
13.一种距离查询装置,所述装置包括:
请求接收模块,用于:接收目标对象从第一位置至第二位置的距离查询请求;
距离获取模块,用于:获取所述第一位置对应的节点和所述第二位置对应的节点,利用标签数据获取所述第一位置至所述第二位置的距离;
数据生成模块,用于:基于道路数据建立路网,所述路网包括n个节点,所述节点表示可通行的路段之间的交点,所述节点的边表示道路的路段,所述节点的边携带权重,所述权重的高低表示所述目标对象在所述节点的边所对应的路段的通行难度;其中,n为正整数;获取Ni与Mi j的最优路径,生成标签数据;其中,Ni是指路网中的第i个节点,1≤i≤n,Mi j是指与Ni在设定范围内连通的m个节点中的第j个节点,1≤j≤m,m为正整数;所述标签数据用于指示所述Ni与Mi j的最优路径的目标距离,所述最优路径包括所述Ni与Mi j之间各条路径中通行难度最低的路径。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现权利要求1至12任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097743.6A CN115794969B (zh) | 2022-09-08 | 2022-09-08 | 距离查询方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097743.6A CN115794969B (zh) | 2022-09-08 | 2022-09-08 | 距离查询方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794969A true CN115794969A (zh) | 2023-03-14 |
CN115794969B CN115794969B (zh) | 2023-07-11 |
Family
ID=85431829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211097743.6A Active CN115794969B (zh) | 2022-09-08 | 2022-09-08 | 距离查询方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794969B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299248A (zh) * | 2008-06-24 | 2008-11-05 | 北京信息科技大学 | 一种肉类食品安全追溯方法 |
CN112291374A (zh) * | 2020-12-29 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 一种物联网设备特征获取方法及装置 |
CN112307151A (zh) * | 2020-12-25 | 2021-02-02 | 浙江口碑网络技术有限公司 | 导航数据处理方法及装置 |
CN113065074A (zh) * | 2021-04-02 | 2021-07-02 | 大连理工大学 | 一种基于知识图谱和自注意力机制的轨迹目的地预测的方法 |
CN113607183A (zh) * | 2021-08-05 | 2021-11-05 | 北京中交兴路信息科技有限公司 | 一种车辆的运输路线规划方法、装置、存储介质及终端 |
CN114253975A (zh) * | 2021-12-20 | 2022-03-29 | 华中科技大学 | 一种负载感知的路网最短路径距离计算方法及装置 |
CN114331257A (zh) * | 2021-12-06 | 2022-04-12 | 上海东普信息科技有限公司 | 物流运输装载管理方法、装置、设备及存储介质 |
CN114390628A (zh) * | 2022-01-13 | 2022-04-22 | 上海应用技术大学 | 基于多跳网络结构的相对距离路由选择方法、装置和设备 |
-
2022
- 2022-09-08 CN CN202211097743.6A patent/CN115794969B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299248A (zh) * | 2008-06-24 | 2008-11-05 | 北京信息科技大学 | 一种肉类食品安全追溯方法 |
CN112307151A (zh) * | 2020-12-25 | 2021-02-02 | 浙江口碑网络技术有限公司 | 导航数据处理方法及装置 |
CN112291374A (zh) * | 2020-12-29 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 一种物联网设备特征获取方法及装置 |
CN113065074A (zh) * | 2021-04-02 | 2021-07-02 | 大连理工大学 | 一种基于知识图谱和自注意力机制的轨迹目的地预测的方法 |
CN113607183A (zh) * | 2021-08-05 | 2021-11-05 | 北京中交兴路信息科技有限公司 | 一种车辆的运输路线规划方法、装置、存储介质及终端 |
CN114331257A (zh) * | 2021-12-06 | 2022-04-12 | 上海东普信息科技有限公司 | 物流运输装载管理方法、装置、设备及存储介质 |
CN114253975A (zh) * | 2021-12-20 | 2022-03-29 | 华中科技大学 | 一种负载感知的路网最短路径距离计算方法及装置 |
CN114390628A (zh) * | 2022-01-13 | 2022-04-22 | 上海应用技术大学 | 基于多跳网络结构的相对距离路由选择方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
MAOCHUN TIAN等: "Path Planning of Unmanned Beacon Ship for Rapid Position of Single Underwater Node by Ranging Method", pages 1 - 5, Retrieved from the Internet <URL:《网页在线公开:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9229988》> * |
郑乔芳: "考虑交通拥堵的物流配送路径优化", 《技术与方法》, vol. 39, no. 8, pages 78 - 81 * |
Also Published As
Publication number | Publication date |
---|---|
CN115794969B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109506669B (zh) | 动态路径规划方法、装置、系统以及存储介质 | |
CN106156898B (zh) | 一种基于MoCD算法的商品配送路径规划方法 | |
CN104809129B (zh) | 一种分布式数据存储方法、装置和系统 | |
CN111275383B (zh) | 一种配送范围生成方法、装置、计算机设备及存储介质 | |
CN113723715B (zh) | 公交线网自动匹配道路网络方法、系统、设备及存储介质 | |
Li et al. | Towards smart transportation system: A case study on the rebalancing problem of bike sharing system based on reinforcement learning | |
CN113865589B (zh) | 一种基于地形坡度的长距离快速路径规划方法 | |
Bucher et al. | A heuristic for multi-modal route planning | |
CN111861178B (zh) | 服务匹配模型的训练方法、服务匹配方法、设备及介质 | |
Zhu et al. | Transportation routing map abstraction approach: Algorithm and numerical analysis | |
CN104598548B (zh) | 一种分析农产品价格空间关联性的方法及装置 | |
Duan et al. | A greedy approach for vehicle routing when rebalancing bike sharing systems | |
Zhang et al. | Free-floating bike-sharing systems: New repositioning rules, optimization models and solution algorithms | |
CN111461396A (zh) | 物流排线方法、装置、电子设备及可读存储介质 | |
CN112559807B (zh) | 一种基于多源点并行探索的图模式匹配方法 | |
WO2022041600A1 (zh) | 一种对象间相似性的确定方法及装置 | |
CN110674990B (zh) | 设置滑动窗口更新机制的即时配送路径选择方法及系统 | |
CN115794969B (zh) | 距离查询方法、装置及计算机设备 | |
CN115424446B (zh) | 用于交通组织评估的道路网络拓扑简化方法 | |
Zhang et al. | An offline map matching algorithm based on shortest paths | |
CN117312396A (zh) | 一种车道定位方法及装置、电子设备和可读存储介质 | |
CN114742507A (zh) | 车辆货物配载方法、装置、计算机设备及存储介质 | |
KR20130096654A (ko) | 내비게이션 시스템 및 내비게이션 방법 | |
Gibas et al. | Bayesian Modelling of Travel Times on the Example of Food Delivery: Part 1-Spatial Data Analysis and Processing | |
US20240184809A1 (en) | Reverse geocoding apparatus, reverse geocoding method, and program |
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 |