当前位置: X-MOL 学术Int. J. Geograph. Inform. Sci. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Accelerating the shortest-path calculation using cut nodes for problem reduction and division
International Journal of Geographical Information Science ( IF 5.7 ) Pub Date : 2019-09-05 , DOI: 10.1080/13658816.2019.1660781
Wei Wei 1 , Weidong Yang 1 , Weibin Yao 2 , Heyang Xu 1
Affiliation  

ABSTRACT The shortest-path algorithm is one of the most important algorithms in geographical information systems. Bellman’s principle of optimization (BPO) is implicit in the shortest-path problem; that is, any involved node must be located in the simple paths between source and destination nodes. Unfortunately, BPO has never been explicitly used to exclude irrelevant nodes in existing methods, potentially leading to unnecessary searches among irrelevant nodes. To address this problem, we propose a BPO-based shortest-path acceleration algorithm (BSPA). In BSPA, a high-level graph is built to locate the necessary nodes and is used to partition the graph and divide a given task into independent subtasks. This allows the speed of any existing method to be improved using parallel computing. In a test using random graphs, on average, at most only 1.209% of the nodes need to be involved in the calculation. When compared with existing algorithms in real-world road networks, the BSPA shows faster preprocessing and query times, being respectively 118 and 463 times faster in the best case. In the worst case, they remain slightly faster.

中文翻译:

使用切割节点加速最短路径计算以减少和划分问题

摘要 最短路径算法是地理信息系统中最重要的算法之一。Bellman 的优化原则 (BPO) 隐含在最短路径问题中;也就是说,任何涉及的节点都必须位于源节点和目标节点之间的简单路径中。不幸的是,BPO 从未在现有方法中明确用于排除不相关的节点,这可能导致在不相关的节点之间进行不必要的搜索。为了解决这个问题,我们提出了一种基于 BPO 的最短路径加速算法(BSPA)。在 BSPA 中,构建了一个高级图来定位必要的节点,并用于对图进行分区并将给定的任务划分为独立的子任务。这允许使用并行计算提高任何现有方法的速度。在使用随机图的测试中,平均最多只有 1 个。209%的节点需要参与计算。与现实世界道路网络中的现有算法相比,BSPA 显示出更快的预处理和查询时间,在最佳情况下分别快 118 倍和 463 倍。在最坏的情况下,它们仍然稍微快一些。
更新日期:2019-09-05
down
wechat
bug