[发明专利]一种城市路网数据组织与最短路径快速计算方法在审

专利信息
申请号: 201410752964.1 申请日: 2014-12-08
公开(公告)号: CN105740964A 公开(公告)日: 2016-07-06
发明(设计)人: 龚勃文;林赐云 申请(专利权)人: 吉林大学;林赐云
主分类号: G06Q10/04 分类号: G06Q10/04
代理公司: 暂无信息 代理人: 暂无信息
地址: 130022 吉*** 国省代码: 吉林;22
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种城市路网数据组织与最短路径快速计算方法,涉及城市路网管理及交通诱导领域,包括建立邻接节点编号和邻接边权值数据组织结构并存到路网数据文件file中、邻接节点和邻接边权值定位查询及基于排序定位的改进Dijkstra最短路径计算三个步骤。本发明利用城市路网拓扑结构的稀疏特性巧妙地设计了一种能够定位查询邻接节点信息又能有效节省存储空间的路网数据组织结构,改变传统Dijkstra计算方法确定永久标号节点的实现策略,构建了一种新的临时标号节点数据组织和更新机制,实现了永久标号节点的定位获取,解决了多个同时具有最小长度标号的临时节点处理问题,有效提升了Dijkstra最短路径算法的计算效率,计算方法具有普遍适用性和可移植性。
搜索关键词: 一种 城市 路网 数据 组织 路径 快速 计算方法
【主权项】:
一种城市路网数据组织与最短路径快速计算方法,其特征包括以下步骤:(1)建立邻接节点编号和邻接边权值数据组织结构并存到路网数据文件file中首先将交叉口抽象为节点、交叉口之间的路段的每一个行驶方向抽象为一条有向边,且每条边都有权值,即将由交叉口和路段组成的路网抽象为由节点和边组成的有向加权图,因此,任意一条边都有两个不相同的节点确定。对图中的节点从1开始按照递增的顺序进行编号,得到节点编号集合E,节点总数为N。邻接节点编号和邻接边权值数据组织结构与存储方法为:确定路网中邻接节点最多的节点,获得其邻接节点总数为R,建立一个N行2R+1列的数据表文件。按E中节点编号递增的顺序,第1列依次存储各节点的邻接节点总数,第2列至第2R+1列依次存储各节点的所有邻接节点编号和与它们相应的邻接边权值。(2)邻接节点和邻接边权值定位查询根据数据文件file,以任意节点u(u∈E)为例,邻接节点和邻接边权值的具体查询方法为:1)查询节点u的全部邻接节点编号和邻接边权值:节点u的全部邻接节点编号在数据文件file中的存储位置为第u行的第2列~第file(u,1)+1列(其中,file(u,1)表示file文件中的第u行第1列),即全部邻接节点编号为file(u,2)~file(u,file(u,1)+1)所存储的数据,与它们相应的邻接边权值在数据文件file中的存储位置为第u行的第file(u,1)+2列~第2file(u,1)+1列,即全部邻接边权值为file(u,file(u,1)+2)~file(u,2file(u,1)+1)所存储的数据;2)查询节点u的某一个邻接节点的邻接边权值:如节点u的某一个邻接节点为file(u,v)(v小于节点u的邻接节点总数+1)所存储的数据,则与之相应的邻接边权值为file(u,v+file(u,1))所存储的数据。(3)基于排序定位的改进Dijkstra最短路径计算基于步骤1)中所建立的路网数据文件和步骤2)中所给出的邻接节点和邻接边权值数据查询方法,针对传统的Dijkstra算法所存在的问题进行改进,设计了一个求解单个节点到其他所有节点之间最短路径的改进Dijkstra算法,具体实现过程如下:1)首先给出计算过程中所使用符号的定义:为每个节点i(i∈E)分别定义一个长度标号、前驱节点标号p(i)及状态标号s(i),其中,d(i)用于存储从计算起点到节点i的累积权值,p(i)用于存储从起点到节点i的路径上节点i前面的一个节点,s(i)用于存储节点i的计算状态,若s(i)=0表示尚未求得从路径起点到到该节点的最短路径(称为临时标号),若s(i)=1表示已求得从路径起点到到该节点的最短路径(称为永久标号),定义w(i,j)为节点i到其邻接节点j(j∈E)之间的邻接边权值;定义一个行数可变的动态一维数组Q,用于存储长度标号小于+∞且状态标号为临时标号的节点编号,用L表示Q的行数变量,随着Q中数据的增减L是动态变化的,同时为统计Q中拥有最小长度标号的节点的各数,还需要定义一个变量x。2)基于上述定义,改进的Dijkstra算法求解单个节点到其他所有节点的最短路径共包括以下几个分步骤:分步骤一:从数据文件file中读取数据并赋值给二维数组M;分步骤二:初始化,确定计算的起点为z(z∈E),求节点z到其他所有节点的最短路径,令d(z)=0,s(z)=0,p(z)=0,对于r∈E且r≠z的节点,令d(r)=+∞,s(r)=0,p(r)=0,令Q={z},x=0;分步骤三:确定下次迭代计算将为永久标号的节点,首先对Q中数据按照各节点的长度标号数据大小递减的顺序进行重新排序,确定拥有最小长度标号的邻接节点个数并赋值给x,即此时Q中第L‑x+1行至第L行所存储的数据均为具有最小长度标号的节点编号,将这些节点的状态标号同时由临时标号更新为永久标号,即令K={Q(k)|k=(L‑x+1):L,k为整数},s(k)=1(k∈K),为方便后续对Q中数据的更新操作,令L=L‑x;分步骤四:对于集合K中的每个节点k,更新节点k的所有邻接节点标号和一维数组Q,首先根据节点k的编号在二维数组M中查找它的所有邻接节点编号为M(k,2)~M(k,M(k,1)+1)所存储的数据,以及与这些邻接节点相应的邻接边权值为M(k,M(k,1)+2)~M(k,2M(k,1)+1)所存储的数据,再对M(k,2)~M(k,M(k,1)+1)中的每个节点t判断d(t)>d(k)+w(k,t)是否成立,如果成立,则令d(t)=d(k)+w(k,t),p(t)=k,并判断在此次更新之前节点t的长度标号d(t)是否为+∞,若果是,则令L=L+1,Q(L)=t;分步骤五:转至步骤三,重复步骤三~步骤四的计算,直到所有节点的状态编号全部为1时停止计算,即获得了从计算的起始节点z到其他所有节点的最短路径。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉林大学;林赐云,未经吉林大学;林赐云许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201410752964.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top