【技术实现步骤摘要】
一种基于最短路径和路径枚举的道路网选址方法和系统
[0001]本专利技术属于图计算和大数据
,更具体地,涉及一种基于最短路径和路径枚举的道路网选址方法和系统。
技术介绍
[0002]道路网选址是指在给定的道路网络中选择合适的位置建设服务设施,以满足用户的需求和优化资源利用。现实生活中位置选择需求应用的不断增加,基于道路网选址服务变得越来越重要,其应用已覆盖社交、旅行、综合生活服务等多个领域,用户已经习惯并充分使用“道路网选址服务+手机应用”带来的便利,比如,现在生活中常用的高德地图、美团、滴滴出行等。无论从终端用户还是地图运营商角度来说,基于道路网选址已然成为社会生活中一项不可或缺的基础服务。因此,寻找一种满足用户需求的多样性且准确有效的道路网选址方法是具有很大的现实意义。
[0003]由于现有道路网选址方法的度量方式过于单一,针对道路网选址方法主要是基于最短路径方法或基于路径枚举方法。第一种方法是基于迪杰斯特拉(Dijkstra)算法实现的,该算法定义一个顶点集合S,其用于存储已经确定了最短路径的顶点,以及一个距离集合D,其用于存储从起点到每个顶点的最短距离。算法开始时,将起点加入集合S中,并将其距离设置为0,然后,算法通过不断地向集合S中加入距离最短的顶点,并更新从起点到其他节点的距离,直到集合S包含了所有顶点或者找到了终点为止;第二种方法是基于深度优先搜索(Depth First Search,简称DFS)实现的,其基本思想是从一个起点开始,依次沿着一个方向走到底,直到到达终点或者不能继续往下走为
【技术保护点】
【技术特征摘要】 【专利技术属性】
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
‑
技术研发人员:周旭,吴凯莉,余婷,张吉,杨志邦,李肯立,
申请(专利权)人:之江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。