当前位置: 首页 > 专利查询>之江实验室专利>正文

一种基于最短路径和路径枚举的道路网选址方法和系统技术方案

技术编号:38239426 阅读:9 留言:0更新日期:2023-07-25 18:03
本发明专利技术公开了一种基于最短路径和路径枚举的道路网选址方法,首先读取真实道路网络数据集,提取其中的顶点和边数据,并根据提取的顶点和边数据建立无向有权图,使用函数readGraph()对无向有权图进行读取处理,以得到起点集合,使用函数readGraph()对无向有权图进行读取处理,以得到终点集合,使用深度优先搜索DFS方法对起点集合和终点集合进行处理,以得到所有起点到所有终点之间、且处于预设的路径阈值d范围内的所有路径,对每个起点到每个终点之间、且处于预设的路径阈值d范围内的所有路径进行降序排序处理,以得到每个起点到所有终点中的路径数量最大值及其对应的终点。本发明专利技术能够解决现有基于Dijkstra算法的道路网选址方法查询效率低的技术问题。道路网选址方法查询效率低的技术问题。道路网选址方法查询效率低的技术问题。

【技术实现步骤摘要】
一种基于最短路径和路径枚举的道路网选址方法和系统


[0001]本专利技术属于图计算和大数据
,更具体地,涉及一种基于最短路径和路径枚举的道路网选址方法和系统。

技术介绍

[0002]道路网选址是指在给定的道路网络中选择合适的位置建设服务设施,以满足用户的需求和优化资源利用。现实生活中位置选择需求应用的不断增加,基于道路网选址服务变得越来越重要,其应用已覆盖社交、旅行、综合生活服务等多个领域,用户已经习惯并充分使用“道路网选址服务+手机应用”带来的便利,比如,现在生活中常用的高德地图、美团、滴滴出行等。无论从终端用户还是地图运营商角度来说,基于道路网选址已然成为社会生活中一项不可或缺的基础服务。因此,寻找一种满足用户需求的多样性且准确有效的道路网选址方法是具有很大的现实意义。
[0003]由于现有道路网选址方法的度量方式过于单一,针对道路网选址方法主要是基于最短路径方法或基于路径枚举方法。第一种方法是基于迪杰斯特拉(Dijkstra)算法实现的,该算法定义一个顶点集合S,其用于存储已经确定了最短路径的顶点,以及一个距离集合D,其用于存储从起点到每个顶点的最短距离。算法开始时,将起点加入集合S中,并将其距离设置为0,然后,算法通过不断地向集合S中加入距离最短的顶点,并更新从起点到其他节点的距离,直到集合S包含了所有顶点或者找到了终点为止;第二种方法是基于深度优先搜索(Depth First Search,简称DFS)实现的,其基本思想是从一个起点开始,依次沿着一个方向走到底,直到到达终点或者不能继续往下走为止,路径枚举中,深度优先搜索可以用来寻找从一个起点开始的所有路径。
[0004]然而,上述两种方法均存在一些不可忽略的缺陷:第一,上述基于Dijkstra算法的道路网选址方法是通过计算两个顶点之间的最短路径是基于Dijkstra算法实现的,它是一种基于局部最优解来构建全局最优解的贪心算法,由于搜索过程中只能根据已知的信息进行决策,不能提前预测终点的位置,具有盲目性,导致搜索效率低;第二,上述基于DFS的道路网选址方法是通过枚举所有路径进行地址选择,由于没有设置适当的路径阈值,用户可能会被大量路径淹没,并且枚举所有路径是很耗时的,甚至有些路径是无用的,这种方法性价比低,搜索速度慢。

技术实现思路

[0005]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于最短路径和路径枚举的道路网选址方法。其目的在于,解决现有基于Dijkstra算法的道路网选址方法由于搜索过程中只能根据已知的信息进行决策,不能提前预测终点的位置,具有盲目性,导致查询效率低的技术问题;以及现有基于DFS的道路网选址方法由于没有设置适当的路径距离约束,用户可能会被大量路径淹没,并且枚举所有路径耗时、以及有些路径无用,导致效率很低,搜索速度慢的技术问题。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种基于最短路径和路径枚举的道路网选址方法,包括以下步骤:
[0007](1)读取真实道路网络数据集,提取其中的顶点和边数据,并根据提取的顶点和边数据建立无向有权图;
[0008](2)使用函数readGraph()对步骤(1)得到的无向有权图进行读取处理,以得到起点集合;
[0009](3)使用函数readGraph()对步骤(1)得到的无向有权图进行读取处理,以得到终点集合;
[0010](4)使用深度优先搜索DFS方法对步骤(2)得到的起点集合和步骤(3)得到的终点集合进行处理,以得到所有起点到所有终点之间、且处于预设的路径阈值d范围内的所有路径。
[0011](5)对步骤(4)得到的每个起点到每个终点之间、且处于预设的路径阈值d范围内的所有路径进行降序排序处理,以得到每个起点到所有终点中的路径数量最大值及其对应的终点,该终点即道路网选址中所要选择的最相关点。
[0012]优选地,步骤(1)首先是从SNAP数据集官网上获取真实道路网络数据集,然后,利用函数read_vertex()从该真实道路网络数据集中提取顶点文件,随后,从顶点文件中获取所有顶点的数据,每条顶点数据包括顶点编号和其对应的经纬度,然后,将每个顶点的经纬度存储在一个顶点集合中;其后,利用函数read_edge()从该真实道路网络数据集中提取边文件,随后,从边文件中获取所有边的数据,每条数据包括边起点和终点的编号,然后,将每条边起点和终点的编号存储在一个边集合中;其后,依次从边集合中取出每条边起点和终点的编号,根据起点和终点的编号从顶点集合中取出对应的经纬度,然后,根据这两个顶点的经纬度计算出边的权重;随后,将计算得到的任意两个顶点之间的权重添加到边集合中;最后,根据边集合里存储的边数据与其对应的权重建立一个无向有权图。
[0013]优选地,边的权重是根据如下算式计算得到的:
[0014][0015]其中R表示地球半径;分别表示顶点1和顶点2的纬度;λ1、λ2分别表示顶点1和顶点2的经度。
[0016]优选地,步骤(2)包括以下子步骤:
[0017](2

1)设置计数器i=0;
[0018](2

2)判断计数器i是否小于等于迭代总数m,如果是则进入步骤(2

3),否则过程结束;
[0019](2

3)对无向有权图进行读取操作,以得到无向有权图的所有顶点,利用函数rand()随机生成一个起点,随后,将生成的起点插入到起点集合,该起点集合初始为空;
[0020]优选地,步骤(3)包括以下子步骤:
[0021](3

1)设置计数器j=0;
[0022](3

2)判断计数器j是否小于等于迭代总数n,如果是则进入步骤(3

3),否则过程结束。
[0023](3

3)对无向有权图进行读取操作,以得到无向有权图的所有顶点,利用函数rand()随机生成一个终点,随后,进入步骤(3

4);
[0024](3

4)设置计数器k=0;
[0025](3

5)判断计数器k是否小于等于起点集合的大小m,如果是,则进入步骤(3

6),否则设置j=j+1,并返回步骤(3

2);
[0026](3

6)利用Dijkstra算法计算终点集合中的第j个终点到起点集合中的第k个起点的最短距离;
[0027](3

7)判断得到第j个终点到第k个起点的最短距离是否小于或等于预设的路径阈值d,如果是,则进入步骤(3

8),否则设置k=k+1,并返回步骤(3

5)。
[0028](3

8)将第j个终点插入到终点集合,该终点集合初始为空。
[0029]优选地,步骤(4)包括以下子步骤:...

【技术保护点】

【技术特征摘要】
1.一种基于最短路径和路径枚举的道路网选址方法,其特征在于,包括以下步骤:(1)读取真实道路网络数据集,提取其中的顶点和边数据,并根据提取的顶点和边数据建立无向有权图;(2)使用函数readGraph()对步骤(1)得到的无向有权图进行读取处理,以得到起点集合;(3)使用函数readGraph()对步骤(1)得到的无向有权图进行读取处理,以得到终点集合;(4)使用深度优先搜索DFS方法对步骤(2)得到的起点集合和步骤(3)得到的终点集合进行处理,以得到所有起点到所有终点之间、且处于预设的路径阈值d范围内的所有路径。(5)对步骤(4)得到的每个起点到每个终点之间、且处于预设的路径阈值d范围内的所有路径进行降序排序处理,以得到每个起点到所有终点中的路径数量最大值及其对应的终点,该终点即道路网选址中所要选择的最相关点。2.根据权利要求1所述的基于最短路径和路径枚举的道路网选址方法,其特征在于,步骤(1)首先是从SNAP数据集官网上获取真实道路网络数据集,然后,利用函数read_vertex()从该真实道路网络数据集中提取顶点文件,随后,从顶点文件中获取所有顶点的数据,每条顶点数据包括顶点编号和其对应的经纬度,然后,将每个顶点的经纬度存储在一个顶点集合中;其后,利用函数read_edge()从该真实道路网络数据集中提取边文件,随后,从边文件中获取所有边的数据,每条数据包括边起点和终点的编号,然后,将每条边起点和终点的编号存储在一个边集合中;其后,依次从边集合中取出每条边起点和终点的编号,根据起点和终点的编号从顶点集合中取出对应的经纬度,然后,根据这两个顶点的经纬度计算出边的权重;随后,将计算得到的任意两个顶点之间的权重添加到边集合中;最后,根据边集合里存储的边数据与其对应的权重建立一个无向有权图。3.根据权利要求1或2所述的基于最短路径和路径枚举的道路网选址方法,其特征在于,边的权重是根据如下算式计算得到的:其中R表示地球半径;分别表示顶点1和顶点2的纬度;λ1、λ2分别表示顶点1和顶点2的经度。4.根据权利要求1至3中任意一项所述的基于最短路径和路径枚举的道路网选址方法,其特征在于,步骤(2)包括以下子步骤:(2

1)设置计数器i=0;(2

2)判断计数器i是否小于等于迭代总数m,如果是则进入步骤(2

3),否则过程结束;(2

3)对无向有权图进行读取操作,以得到无向有权图的所有顶点,利用函数rand()随机生成一个起点,随后,将生成的起点插入到起点集合,该起点集合初始为空。5.根据权利要求1所述的基于最短路径和路径枚举的道路网选址方法,其特征在于,步骤(3)包括以下子步骤:(3

1)设置计数器j=0;
(3

2)判断计数器j是否小于等于迭代总数n,如果是则进入步骤(3

3),否则过程结束。(3

3)对无向有权图进行读取操作,以得到无向有权图的所有顶点,利用函数rand()随机生成一个终点,随后,进入步骤(3

4);(3

4)设置计数器k=0;(3

5)判断计数器k是否小于等于起点集合的大小m,如果是,则进入步骤(3

6),否则设置j=j+1,并返回步骤(3

2);(3

6)利用Dijkstra算法计算终点集合中的第j个终点到起点集合中的第k个起点的最短距离;(3

7)判断得到第j个终点到第k个起点的最短距离是否小于或等于预设的路径阈值d,如果是,则进入步骤(3

8),否则设置k=k+1,并返回步骤(3

5)。(3

【专利技术属性】
技术研发人员:周旭吴凯莉余婷张吉杨志邦李肯立
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1