当前位置: X-MOL 学术Int. J. Softw. Eng. Knowl. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Generic Approach on How to Formally Specify and Model Check Path Finding Algorithms: Dijkstra, A* and LPA*
International Journal of Software Engineering and Knowledge Engineering ( IF 0.6 ) Pub Date : 2020-11-09 , DOI: 10.1142/s0218194020400215
Kazuhiro Ogata 1
Affiliation  

The paper describes how to formally specify three path finding algorithms in Maude, a rewriting logic-based programming/specification language, and how to model check if they enjoy desired properties with the Maude LTL model checker. The three algorithms are Dijkstra Shortest Path Finding Algorithm (DA), A* Algorithm and LPA* Algorithm. One desired property is that the algorithms always find the shortest path. To this end, we use a path finding algorithm (BFS) based on breadth-first search. BFS finds all paths from a start node to a goal node and the set of all shortest paths is extracted. We check if the path found by each algorithm is included in the set of all shortest paths for the property. A* is an extension of DA in that for each node [Formula: see text] an estimation [Formula: see text] of the distance to the goal node from [Formula: see text] is used and LPA* is an incremental version of A*. It is known that if [Formula: see text] is admissible, A* always finds the shortest path. We have found a possible relaxed sufficient condition. The relaxed condition is that there exists the shortest path such that for each node [Formula: see text] except for the start node on the path [Formula: see text] plus the cost to [Formula: see text] from the start node is less than the cost of any non-shortest path to the goal from the start. We informally justify the relaxed condition. For LPA*, if the relaxed condition holds in each updated version of a graph concerned including the initial graph, the shortest path is constructed. Based on the three case studies for DA, A* and LPA*, we summarize the formal specification and model checking techniques used as a generic approach to formal specification and model checking of path finding algorithms.

中文翻译:

关于如何正式指定和建模检查路径查找算法的通用方法:Dijkstra、A* 和 LPA*

本文描述了如何在 Maude(一种基于重写逻辑的编程/规范语言)中正式指定三种路径查找算法,以及如何使用 Maude LTL 模型检查器对它们是否具有所需属性进行模型检查。这三种算法是 Dijkstra 最短路径查找算法 (DA)、A* 算法和 LPA* 算法。一个期望的属性是算法总是找到最短路径。为此,我们使用基于广度优先搜索的寻路算法(BFS)。BFS 查找从起始节点到目标节点的所有路径,并提取所有最短路径的集合。我们检查每个算法找到的路径是否包含在该属性的所有最短路径集中。A* 是 DA 的扩展,因为对于每个节点 [公式:见文本],从 [公式:见文本] 到目标节点的距离估计 [公式:见文本] 参见文本],LPA* 是 A* 的增量版本。众所周知,如果 [公式:见文本] 是可接受的,A* 总是找到最短路径。我们找到了一个可能的松弛充分条件。宽松的条件是存在最短路径,使得对于每个节点 [公式:参见文本],除了路径 [公式:参见文本] 上的起始节点加上从起始节点到 [公式:参见文本] 的成本为小于从一开始就到达目标的任何非最短路径的成本。我们非正式地证明了放松的条件。对于 LPA*,如果松弛条件在包括初始图在内的相关图的每个更新版本中都成立,则构建最短路径。基于 DA、A* 和 LPA* 的三个案例研究,
更新日期:2020-11-09
down
wechat
bug