The Dijkstra algorithm is a classical method for solving the shortest path problem on weighted graphs. There are several variations of the Dijkstra algorithm, including algorithms for the widest path problem and for two-player games. In this paper, we introduce the coalgebraic shortest path problem (CSPP), a unifying framework for a broad class of optimization problems on state-transition systems. This framework encompasses not only the aforementioned problems but also new ones such as the shortest binary tree problem. We further present a coalgebraic Dijkstra algorithm for solving the CSPP efficiently under a suitable condition. Our condition is necessary and sufficient for the algorithm to return correct solutions, thereby providing a precise criterion for when Dijkstra-style acceleration is possible. We also show that the proposed algorithm achieves asymptotic complexity comparable to that of the classical Dijkstra algorithm.
翻译:迪杰斯特拉算法是解决加权图上最短路径问题的经典方法。该算法存在多种变体,包括用于最宽路径问题和双人博弈的算法。本文提出了余代数最短路径问题(CSPP),这是一个用于状态转移系统上广泛优化问题的统一框架。该框架不仅涵盖前述问题,还包含诸如最短二叉树问题等新问题。我们进一步提出了一种余代数迪杰斯特拉算法,能在适当条件下高效求解CSPP。我们给出的条件是算法返回正确解的必要且充分条件,从而为何时能实现迪杰斯特拉式加速提供了精确判据。我们还证明,所提算法可实现与经典迪杰斯特拉算法相当的渐近复杂度。