最短路径搜索方法、装置及存储介质
技术领域
本发明涉及地图搜索技术领域,特别涉及一种最短路径搜索方法、装置及存储介质。
背景技术
最短路径搜索方法常见有Dijkstra算法(单源最短路径)及其衍生算法、A Star算法(启发式最短路径算法)、生物算法等。其中最著名的算法是Djikstra算法,该算法的实现基于图的邻接矩阵表示法,它不仅能够找到任意两点的最短路径,还可以找到某个指定点到其他所有顶点的最短路径。Dijkstra算法虽然简单,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。然而,Dijkstra算法虽然能得出最短路径的最优解,但是遍历计算的结点过多,导致效率低,其衍生算法搜索效率虽有提升,但依然效率不高。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种最短路径搜索方法,能够准确找到最短路径,提高了搜索效率。
本发明还提出一种使用上述最短路径搜索方法的路径搜索装置。
本发明还提出一种使用上述最短路径搜索方法的计算机可读存储介质。
根据本发明的第一方面实施例的最短路径搜索方法,包括以下步骤:S100,以起点及终点间的连接线为对角线构建外包矩形,空间过滤出所述外包矩形内的第一道路中线;S200,根据所述连接线及所述第一道路中线进行拓扑构面,查找与所述连接线空间相交的若干相邻路径多边形,合并得到初始路径多边形,根据所述初始路径多边形得到初始最短路径;S300,以所述初始最短路径的长度的一半为范围值,所述连接线为中心线构建缓冲矩形,空间过滤出所述缓冲矩形内的第二道路中线;S400,根据所述第一道路中线及所述第二道路中线进行拓扑构面,得到待搜索路径,根据所述待搜索路径得出最短路径。
根据本发明实施例的最短路径搜索方法,至少具有如下有益效果:基于起点及终点间的连接线,搜索范围局限在连线的最小外包矩形内实现了初始路径的快速确定;同时通过缓冲矩形确保搜索范围不向全局扩张,最短路径的搜索范围在二维空间得到约束,搜索效率与样本空间大小不相关,该区域范围外数据变化不会影响数据最终的搜索结果,易于实现,高效稳定,可提升搜索效率及准确性。
根据本发明的一些实施例,所述步骤S200包括:S210,根据所述连接线及所述第一道路中线进行拓扑构面;S220,判断所述起点及所述终点间是否存在与所述连接线空间相交的若干相邻的路径多边形,若存在,则获取所述相邻路径多边形;S230,合并所述相邻路径多边形得到所述初始路径多边形,以所述连接线为界,得到连接起点及终点的两条路径,选长度较小者为所述初始最短路径。根据与连接线空间相交的路径多边形,在最小外包矩形内快速实现初始路径的确定,提高搜索效率。
根据本发明的一些实施例,所述步骤S220还包括:若所述起点及所述终点间不存在与所述连接线空间相交的若干相邻的路径多边形,则将所述外包矩形的长宽各扩大一倍,返回至步骤S100。不存在相邻路径多边形时的异常处理,确保可以搜索到初始最短路径。
根据本发明的一些实施例,所述步骤S400包括:S410,判断所述外包矩形是否在所述缓冲矩形内部;S420,若是,则根据所述第二道路中线进行拓扑构面,得到所述待搜索路径;S430,从所述起点开始对所述待搜索路径中的结点逐级计算得出最短路径。外包矩形被缓冲矩形包围,只需对缓冲矩形内的路径进行处理,简化操作。
根据本发明的一些实施例,所述步骤S420还包括:若否,则提取所述外包矩形中与所述缓冲矩形中空间相交的路径,得到相交路径;结合所述相交路径与所述第二道路中线进行拓扑构面,得到所述待搜索路径。外包矩形不被缓冲矩形完全包围,则还需要对与所述缓冲矩形中空间相交的路径进行搜索;提高了搜索的准确性。
根据本发明的一些实施例,所述步骤S430包括:S431,在所述待搜索路径中,从所述起点开始,将邻近的结点依次连接;S432,根据连接后的路径所邻近的路径多边形,计算所述起点到所述结点的长度,取长度值最小的所述结点为候选结点;S433,将所述候选结点邻近的结点依次连接,跳转到所述步骤S432,直至所述候选结节为所述终点,得到最短路径。通过该计算方法,提高了搜索的准确性及效率。
根据本发明的第二方面实施例的路径搜索装置,包括:搜索模块,用于使用上述第一方面实施例的最短路径搜索方法,基于起点及终点间的连接线,在一定范围内搜索出最短路径;存储模块,用于存储原始道路数据及所述搜索模块中空间过滤的第一道路中线、第二道路中线、初始最短路径的长度及最短路径中的结点。
根据本发明实施例的路径搜索装置,至少具有同上述第一方面实施例的最短路径搜索方法同样的有益效果。
根据本发明的第三方面实施例的计算机可读存储介质,用于存储计算机可执行指令,所述计算机可执行指令用于执行上述第一方面实施例的最短路径搜索方法。
根据本发明实施例的计算机可读存储介质,至少具有同上述第一方面实施例的最短路径搜索方法同样的有益效果。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的方法的主要步骤流程图;
图2为本发明实施例的方法的原理示意图;
图3为本发明实施例的方法的详细步骤流程图;
图4为本发明实施例的装置的示意框图;
图5为本发明实施例的方法中的城市道路示意图;
图6为本发明实施例的方法中的外包矩形的构建示意图;
图7为对图6示出的外包矩形内进行空间过滤后得到的路径示意图;
图8为图7示出的路径进行构面的示意图;
图9为图8中与连接线相交的若干相邻路径多边形示意图;
图10为图9的相邻路径多边形的合并结果示意图;
图11为图10得到的初始最短路径示意图;
图12为对图11构建缓冲矩形的示意图;
图13为图12的缓冲矩形的拓扑构面结果示意图;
图14为从图13的拓扑构面结果中搜索出的最短路径示意图。
附图标记:搜索模块100、存储模块200。
具体实施方式
名词解释:
道路中线:自然道路的中心线。
节点:道路的特征点;
度:节点连接线的条数,度为2是为普通节点,度大于2为结点;
结点:不同道路的交点;
道路:自然道路;
路径多边形:所有弧段围成的区域。两个路径多边形至少有一个共同的点即为相邻。
四者关系:节点为道路的特征点,两端(度大于2)时,即为结点。邻近结点连线即为弧段,结点的度大于2。弧段为这些多边形的边界,每个弧段为两个相邻多边形的公共边即空间关系为相交。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
参照图1,本发明的方法包括以下步骤:S100,将起点与终点连接,得到连接线,以该连接线为对角线构建一个外包矩形,空间过滤得到该外包矩形范围内的第一道路中线;S200,将第一道路中线与连接线进行拓扑构面,获取起点与终点间与连接线相交的若干相邻路径多边形,合并得到的路径多边形,称初始路径多边形,根据该初始路径多边形得出初始最短路径;S300,以连接线为中线,以初始最短路径的长度的一半为范围构建一个缓冲矩形,空间过滤得到该缓冲矩形范围内的第二道路中线;S400,根据第一道路中线及第二道路中线进行拓扑构面,得到待搜索路径,从待搜索路径中查找出最短路径。
最短路径搜索是二维线的长度对比,对比实质就是逻辑,属于一维问题,因此该问题实际上是二维问题一维化,基于此将搜索空间拓展到二维,同时在二维空间根据问题本质进行空间约束,最终在有限二维空间求得一维化问题解,因此本方法的创新和进步体现在如下两点:基于起点及终点间的连接线,搜索范围局限在连线的最小外包矩形内实现了初始路径的快速确定;同时通过缓冲矩形确保搜索范围不向全局扩张,最短路径的搜索范围在二维空间得到约束,搜索效率与样本空间大小不相关,该区域范围外数据变化不会影响数据最终的搜索结果,易于实现,高效稳定,可提升搜索效率及准确性。
下面将说明根据外包矩形及缓冲矩形内为何能找出最短路径。由三角形基本原理可知,斜边长度大于垂直边,因此如果知道解的范围不大于某个值,即可完成范围矩形的构建。范围外任意一条连线到起终点长度都大于初始解——初始路径,将原来的距离问题拓展到二维面积问题,实现了解空间的升维和约束,进而实现了在有限范围内将最终解求解的目标。
参照图2,点S为起点,点E为终点,点O为连接线SE的中心点,AO垂直于SE。其中线段AO长度为初始路径的长度的一半,显然曲线SA(图中标号为4的曲线)长度大于线段SA,SA长度大于AO,曲线AE(图中标号为5的曲线)长度大于线段AE,AE长度大于AO,因此,曲线SAE的长度必定大于两倍的线段AO长度,即大于初始路径长度。可以理解的是,当曲线不在以SE为基准,范围为初始路径长度一半的矩形范围内,显然其长度是大于初始路径长度的,不需要再参与路径搜索。因此,本发明的实施例仅需要根据外包矩形获取初始路径,并根据起点及终点的连接线为中线及以初始路径长度的一半为范围构建出缓冲矩形,在这两个矩形范围内一定可以查找到最短路径。
而对于范围的确定,由问题的本质可知,路径优化的前提在于连通路径存在,而连通的属性在二维就体现在面相邻,因此通过面的邻接可以求得线的连通,至此本发明实现了线问题的二维化,将一维长度问题在二维有限空间进行约束,最终可以快速精确求的最优解。
参照图3,本发明的方法的步骤S200包括:S210,根据连接线及第一道路中线进行拓扑构面;S220,判断起点及终点间是否存在与连接线空间相交的若干相邻的路径多边形,若存在,则获取相邻路径多边形;S230,依次合并相邻的路径多边形得到初始路径多边形,以连接线为界,得到起点及终点间的两条路径,分别计算长度,选长度较小者为初始最短路径。在本发明的实施例中,参照图3,步骤S220还包括:若不存在相邻的路径多边形,则保持外包矩形在原中心点不动但长宽各扩大一倍返回至步骤S100。可以理解的是,在本发明的另一些实施例中,外包矩形的某个顶点位置不动但长宽各扩大一倍后返回步骤S100。
本发明实施例的方法的步骤S400,参照图4,包括:S410,判断外包矩形是否在缓冲矩形内部;S420,若是,则根据第二道路中线直接进行拓扑构面,得到待搜索路径;S430,从起点开始对待搜索路径中的结点逐级计算得出最短路径。在本发明的实施例中,步骤S420还包括:若否(即外包矩形与缓冲矩形部分重叠或者在缓冲矩形之外),则提取外包矩形中与缓冲矩形中空间相交的路径,得到相交路径;结合相交路径与第二道路中线进行拓扑构面,得到待搜索路径和相关路径多边形。在本发明的一些实施例中,步骤S430包括:S431,在待搜索路径中,从起点开始,将邻近的结点依次连接;S432,根据连接后的路径所邻近的路径多边形,计算起点到该结点的长度,取长度值最小的结点为候选结点;S433,将候选结点邻近的结点依次连接,跳转至步骤S432,直至候选结节为终点,由侯选结点序列即可得到最短路径。可以理解的是,在本发明的一些实施例中,S430也可以通过传统的Dijkstra算法(单源最短路径)从待搜索路径中寻找出最短路径。
参照图4,为本发明实施例的装置,包括搜索模块100及存储模块200。其中,搜索模块100用于使用上述最短路径搜索方法,基于起点及终点的连接线,在一定范围内搜索出最短路径;存储模块,用于存储原始道路数据及搜索模块中处理的各种数据,包括空间过滤的第一道路中线、第二道路中线、初始路路径的长度及最短路径中的结点等。
图5至图14为本发明实施例中一个具体的搜索过程,其中图5为某城市的道路中线图。现已获取起点及作为目的地的终点(图6中的2个黑点),参照图6,以起点及终点之间的连接线为对角线,构建一个外包矩形(图6中的黑框)。首先,空间过滤出该外包矩形范围内的道路中线,参照图7中的实线部分。然后根据过滤出的道路中线,进行拓扑构面,结果参照图8中的灰色部分。在拓扑构面结果中查找起点及终点间依次相邻的路径多边形,其中的路径多边形与连接线相交,参照图9,其中的深灰色部分即为要查找的若干相邻路径多边形。接着,将相邻的路径多边形依次合并,得到包括起点和终点的初始路径多边形,参见图10的深灰色部分。以连接线为界,由该初始路径多边形得到两条连接起点及终点的路径,选取其中长度较短者作为初始最短路径,参照图11,加粗的路径即为初始最短路径。参照图12,以初始最短路径长度的一半为范围,以连接线为中线,构建缓冲矩形(图12中的外面的矩形),内部矩形为外包矩形。由于外包矩形正好落在缓冲矩形内,仅需要对缓冲矩形范围内空间过滤得到的道路中心线进行拓扑构面,拓扑结果参照图13,得到待搜索路径和路径多边形(图13中的深灰色部分)。最后,在待搜索路径中,从起点开始,将邻近的每节路径依次连接,根据连接后的路径所邻近的多边形,计算连接后起点到当前结点的长度,取短者对应的结点为候选结点,继续计算侯选结点的邻近结点直到终点,结果即为所求最短路径,参照图14。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。