当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:车载导航系统中的动态路线选择是其必备功能之一,文中分析了经典Dijkstra算法存在的不足,并在此基础上,采用优化的邻接矩阵存储结构,讨论了有障碍物存在情况下的最短路径问题。同时用VC++与MapX实现了有障碍物存在的动态最短路径算法。实验结果表明,该算法能有效求出有障碍物存在时的最短路径。

引言

路径选择问题是解决车载导航系统中的核心问题,归根结底是最短路径问题。现有的最短路径算法有很多,如迪杰斯特拉(Dijkstra)、弗洛伊德(Floyd)及其改进算法、盲目捜索法,启发式A*算法、人工神经网络、遗传算法、蚁群算法等[%而这其中又是以迪杰斯特拉及其改进算法最经典,是研究得最多的一种算法,并取得了一定的成果,然而,对这些成果进行分析发现,研究的这些算法都是静态的,以图论为基础的方法,并没有考虑到障碍物的影响。因此,本文主要对有障碍物影响的情况下的最短路径算法进行研究,并利用MapX控件实现了最短路径的算法,在车载导航中取得了较好的应用。

1Dikjsrta算法存在的问题

Dikjsrta算法是由荷兰数学家E.W.Dikjsrta于1959年提出单源最短路算法,是目前求解最短路问题的理论上最完备、应用最广的经典算法,它可完成从指定图中所有其他节点的最短路径,它是主要路径长度递增产生最短路径算法,此算法在诸多教材中均有阐述。从所介绍的算法不难看出存在两点不足:①只考虑静态的最短路径,没有及时反映出存在障碍物(如交通阻塞、修路等情况)下的最短路径;②图的存储结构中存在着大量的8,浪费了大量的存储空间。因此本文从以上两个方面加以改进。

2Dikjsrta算法的改进

2.1有障碍物存在时的改进Dikjsrta算法

通过对各类公交流量的分析和研究,可将城市道路障碍物分为阻塞和繁忙两种状态,如修路行不通为阻塞状态、上下班堵车为繁忙状态,在这两种状态情况下,必须另录一条最短路径以获得时间最短。将障碍物反映到图上,则存在两种情况:一是正好在相应节点上(如图1节点2上),贝屿其相连的节点上各边权值变为8;二是在相应的某一条边上(如节点1-3)之间,贝惧相邻接的邻接矩阵变为8。其改进算法如下:

建立邻接矩阵A[v,][vJ]„若v障碍物正好处于图的节点,则此节点是车载不允许经过的节点,A[:][Vj]=8,亦矩阵中V所在的列的元素均取8。若障碍物正好位于两节点之前,即此段路程不通必须加以回避,设e,j=(v„Vj)为必须回避的边,则A[v;][vj]=8。

初始化。S={vs)(vseV),dist[vi]=A[vs][vi],path[Vj]={vs},vieV,i=1,2,…,n。

选择Vk,使得dist[Vk]=min(dist[v』VieV-S),S=SU{Vk}。Vk为目前求得的下一条从Vs出发的最短路径的终点。如果Vk夭Vt,转向(4),否则结束,dist[Vt]即为回避的点、边、路径障碍下从Vs到顶点vt的最短路径。

修改从v出发到集合V-S任一顶点Vi的最短路径长度。设V为路径path[Vk]倒数第二个节点。若dist[Vk]+A[Vk][Vi]<dist[Vi],则dist[i]=dist[Vk]+A[Vk][Vi],path[Vi]=path[Vk]U{财,转向(3)。

图1所示是一种有路障的加权图G',图1中,假设节点2号有路障,另外1-3号节点的路段正在修路不能通行,其存储的邻接矩阵如图2所示。

图2图G'的邻接矩阵

2.2存储结构的改进

无论是有无障碍物的Dikjsrta算法,采用矩阵来存储点与点间的拓扑关系,行数和列数相同,矩阵中i行J列的值对应着点i和点J之间的权值,起点和终点为同一点时权值用0表示,两点之间没有直接通路时权值用8表示。矩阵中含有大量的0和8,增加了无效循环次数,在存储上也占用了大量的空间,浪费了大量的空间。为提高内存的利用率,本文采用的邻接表存储如图3所示。

用链表数组MGrpah表示存储矩阵G时,可将其每一行用一个单链表来表示,链表中只有非8元素,每个节点有两个元素,一个为所在的列值,一为点的权值。其伪代码如下:

Typedfstruct

{Intr,v;

Mnode*next;

}Mnode;

ClassMGraph{

Public:

Mnode*first,*current;

Mgraph(){current=null;first=current;}

Voidsetfirst(Mnode*p){first=p;current=first;}

Mnode*GotoFirst(){if(first){current=first;returncurrent;}

Elsereturnnull;}

VoidAdd(Mnode*p){current->next=p;current=p;}

Mnode*Next(){if(current->next){current=current->next;returncurrent;}

ElsereturnNULL;}

}

然后可用一维数组D来存储各顶点到源点的最短距离,并用一维数组P来存储前驱点,再用一个辅助双向链表来存储正在参与比较的节点(使用双向链表的目的是在删除节点时降低时间复杂度)。其代码如下:

Typedefstruct{intr;Node*next,*prev;}chinaNode;

Classpath{

public:

chainNode*first,*current;

intn;

path(){n=0;current=null;first=null;}

voidsetfirst(chainnode*p){first=p;current=first;n=1;}

voidAddTail(chainNode*p){current->next=p;p->prev=current;current=p;n++}

intdelete(chainNode*p);

chainNode*Next(){if(current->next){current=current->next;

returncurrent;}elsereturnnull;}

boolIsEmpty(){returnn==0;}

}

2.3改进算法的实现步骤

改进算法的实现步骤如下:

将与V。直接相连的节点的D[vJ初始化为其权值,其余的置为机器所允许的最大值。

将与V。直接相连的顶点加入到链表Path中。

在Path中找到权值最小的节点w,并在Path中删除此顶点,如果剩余节点数为。则结束。

修改最短路径:在G里与w直接相连的其余各节点Vj的权值中比较D[Vj]与D[w]+s(w,vD的大小,如果D[vJ小于D[w]+s(w,Vj),并且如果D[Vj]为8,则将Vj加入到Path中,然后将P[vJ的前驱设置为w,并修改最短路径D[vJ=D[w]+s(w,V)。重复步骤(4)。

根据以上思路,利用MapX控件,结合可视化编程语言,对武汉市地图矢量化,去除多余的结点,构建拓扑关系,结合改进的算法,进行编程,其实现的界面如图4所示。

3结语

本文在研究现有的Dikjsrta算法的基础上,讨论了有障碍物存在的Dikjsrta的算法,并对其存储结构进行了一点小的改进,给出了具体的实现过程,提高了存储效率。存在的不足是没有对时间与空间复杂度进行量化,另外,对其搜索方法

也没有加以改进,这将是下一步努力改进的方向。

图4障碍特存在的最短路径展示图

20211116_6193be3cc09ae__障碍物存在的最短路径算法及其在车载导航中的应用

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭