改进的双向启发式搜索算法及其在车载导航仪中的应用
发布时间:2007/8/15 0:00:00 访问次数:665
摘要:介绍单车辆路径规划的有关算法,针对车载导航仪的应用,对双向启动式搜索算法进行了改进和优化,提出了可靠有效的搜索终止条件和搜索切换标准,给出了改进算法的流程。最后给出了四种算法的实际测试和比较结果。结果表明改进的双向启发式搜索算法快速高速效。
关键词:路径规划 启发式搜索算法 双向搜索算法
车载导航仪也称为车载定位和导航系统(Vehicle Location and Navigation System)。它的主要功能是利用全球定位(GPS)获取定位信息并与电子地图进行匹配,以决定车辆的当前集团并用图形化方式显示;按要求规划从出发地到目的地的最优驾驶路线;按照预先设定的路线,自动根据车辆的位置向驾驶员提供操作指令引导驾驶;提供与电子地图相关的集成信息服务;提供无线通信服务等。车载导航仪把先进的全球卫星定位技术、地理信息技术、数字库技术、多媒体技术和现场通信技术综合在一起,能够实时、高效地向驾驶员提供多种重要信息,具有很强的实用价值和广阔的市场前景。
路径规划是车载导航仪的重要功能模块。在开发车载导航仪过程中,为了实现路径规划模块,对单车辆路径规划算法进行了研究。
1 路径规划算法
所谓路径规划,就是在路网中找到任意给定两点之间的最优路径。最优的标准是旅行费用最小或最大。旅行费用可以是距离、时间或速度等因素。路径规划主要算法有:迪杰斯特拉(Dijkstra)算法及其改进算法、启发式搜索算法、双向搜索算法和双向启发式搜索算法等。
迪杰斯特拉算法是解决两点之间最短距离的有效算法。算法的思想是:从原节点开始,算法每前进一步,都找到一个与原节点之间费用(距离)最小的节点,直至找到所有节点离原节点的最小费用。该算法的特点是:只要各段路径的费用非负,一定可以找到众原节点到各节点的最优解。缺点是需遍历所有节点。算法的运行时间为O(slogn)[1],其中n、s分别为路径节点和路段的总线。单车导航没有必要找有节点到原节点的最优路径。改进的迪杰斯特拉算法在找到目标节点的最优路径后,算法停止。其运行时间为O(bd),其中b是各节点的平均后继节点数,d为算法的搜索深度,即遍历树的层数。
启发式搜索算法引入启发式估价函数f'(n)=g(n)+h'(n),其中g(n)表示从原节点到当前节点n析实际费用,h'(n)为当前节点n到目标节点的估计费用。启发式搜索算法基本同于改进的迪杰斯特拉算法,唯一不同的是前者的费用是f'(n),而后者为g(n)。估计费用h'(n)能引导算法优先搜索接近目标节点的节点,因此比改进的迪杰斯特拉算法有更快的速度。其运行时间为O(bd)。注意这里的d要比改进的迪杰斯特拉算法中的d要小。若路网中任意两点之间存在最优路径,而且估计费用满足可纳性,即h'(n)小于从节点n到目标节点之间的实际费用,那么通过该算法一定可以找到一条最优路径。
前面两种算法都是从原节点到目标节点没单一方向进行搜索的算法。双向搜索算法的思想是:不仅进行从原节点到目标节点的前向搜索,而且进行从目标节点到原节点的后向搜索。在单CPU硬件平台条件下,两个方向的搜索交替进行。成功实现双向搜索有两个条件,即合适的搜索停止条件和前向后向搜索切换标准。其算法时间为O(bd/2)。若双向搜索算法中加入估计费用函数,便是更快的双向启发式搜索算法[1]。
2
双向启发式搜索算法的改进和实现
2.1 算法的优化与改进
通过对双向启发式搜索算法的仔细分析,发现算法主要围绕两个表进行操作,即OPEN表和CLOSE表。前者用于存放已经搜索但尚未确定最小费用的节点,称la
摘要:介绍单车辆路径规划的有关算法,针对车载导航仪的应用,对双向启动式搜索算法进行了改进和优化,提出了可靠有效的搜索终止条件和搜索切换标准,给出了改进算法的流程。最后给出了四种算法的实际测试和比较结果。结果表明改进的双向启发式搜索算法快速高速效。
关键词:路径规划 启发式搜索算法 双向搜索算法
车载导航仪也称为车载定位和导航系统(Vehicle Location and Navigation System)。它的主要功能是利用全球定位(GPS)获取定位信息并与电子地图进行匹配,以决定车辆的当前集团并用图形化方式显示;按要求规划从出发地到目的地的最优驾驶路线;按照预先设定的路线,自动根据车辆的位置向驾驶员提供操作指令引导驾驶;提供与电子地图相关的集成信息服务;提供无线通信服务等。车载导航仪把先进的全球卫星定位技术、地理信息技术、数字库技术、多媒体技术和现场通信技术综合在一起,能够实时、高效地向驾驶员提供多种重要信息,具有很强的实用价值和广阔的市场前景。
路径规划是车载导航仪的重要功能模块。在开发车载导航仪过程中,为了实现路径规划模块,对单车辆路径规划算法进行了研究。
1 路径规划算法
所谓路径规划,就是在路网中找到任意给定两点之间的最优路径。最优的标准是旅行费用最小或最大。旅行费用可以是距离、时间或速度等因素。路径规划主要算法有:迪杰斯特拉(Dijkstra)算法及其改进算法、启发式搜索算法、双向搜索算法和双向启发式搜索算法等。
迪杰斯特拉算法是解决两点之间最短距离的有效算法。算法的思想是:从原节点开始,算法每前进一步,都找到一个与原节点之间费用(距离)最小的节点,直至找到所有节点离原节点的最小费用。该算法的特点是:只要各段路径的费用非负,一定可以找到众原节点到各节点的最优解。缺点是需遍历所有节点。算法的运行时间为O(slogn)[1],其中n、s分别为路径节点和路段的总线。单车导航没有必要找有节点到原节点的最优路径。改进的迪杰斯特拉算法在找到目标节点的最优路径后,算法停止。其运行时间为O(bd),其中b是各节点的平均后继节点数,d为算法的搜索深度,即遍历树的层数。
启发式搜索算法引入启发式估价函数f'(n)=g(n)+h'(n),其中g(n)表示从原节点到当前节点n析实际费用,h'(n)为当前节点n到目标节点的估计费用。启发式搜索算法基本同于改进的迪杰斯特拉算法,唯一不同的是前者的费用是f'(n),而后者为g(n)。估计费用h'(n)能引导算法优先搜索接近目标节点的节点,因此比改进的迪杰斯特拉算法有更快的速度。其运行时间为O(bd)。注意这里的d要比改进的迪杰斯特拉算法中的d要小。若路网中任意两点之间存在最优路径,而且估计费用满足可纳性,即h'(n)小于从节点n到目标节点之间的实际费用,那么通过该算法一定可以找到一条最优路径。
前面两种算法都是从原节点到目标节点没单一方向进行搜索的算法。双向搜索算法的思想是:不仅进行从原节点到目标节点的前向搜索,而且进行从目标节点到原节点的后向搜索。在单CPU硬件平台条件下,两个方向的搜索交替进行。成功实现双向搜索有两个条件,即合适的搜索停止条件和前向后向搜索切换标准。其算法时间为O(bd/2)。若双向搜索算法中加入估计费用函数,便是更快的双向启发式搜索算法[1]。
2
双向启发式搜索算法的改进和实现
2.1 算法的优化与改进
通过对双向启发式搜索算法的仔细分析,发现算法主要围绕两个表进行操作,即OPEN表和CLOSE表。前者用于存放已经搜索但尚未确定最小费用的节点,称la