# A Contribution of Shortest Paths Algorithms to the NetworkX Python Library
## 2 Literature Review
LPA* is able to reduce the number of nodes that need to be analysed by reusing information from previous calculations. Bidirectional A* [51; 52; 53] runs two simultaneous heuristics searches: one forward from the initial state to a node \(n\) (goal), and one backward from the goal to the start, stopping when the two meet. Learning Real-time A* (LRTA*) [35; 54] produces feasible paths any time during its execution and minimum length paths if run to completion. Real-time Adaptive A* (RTAA*) [55; 56] executes the behaviour of A* with limited lookahead, defining a trade-off between optimality and computational cost. Several studies have applied A* in different scenarios. [PERSON] & [PERSON] (2009) [57] explored A* in a scenario of real road networks. [PERSON] and [PERSON] (2013) [58] explored shortest path finding problem(s), applying a proposed algorithm alongside [PERSON]'s and A* in a Geographic Information System scenario. [PERSON], (2019) [59] introduced a hybrid approach, A-Star+IDA*, as a simple hybrid search algorithm. [PERSON] et al. (2020) [60] presented a Python algorithm for shortest-path in the context of river networks, exploring the multiple single-source weighted Dijkstra shortest path calculations. [PERSON] et al. (2020) [61], using the [PERSON] algorithm, presented a study by finding minimum-weight link-disjoint paths with a few common nodes by building an integer linear programming model and designing a fast algorithm by using the techniques of augmenting paths and splitting nodes. [PERSON] et al. (2021) [42] presented a systematic review of the A* algorithm and proposed the HPA-star algorithm, an extension to the A* with a faster runtime at the cost of not always finding the optimal path. [PERSON] (2021) [62] explored Dynamic A* to enhance dynamic path planning for unmanned vehicles used in epidemic prevention and disinfection tasks. [PERSON] et al. (2022) [43] presented a similar review but applied the A* and Dijkstra in game development. They also presented the Theta* algorithm, an extension of A*, to game development, designed for any-angle pathfinding, which allows direct line-of-sight between nodes, producing smoother, more realistic paths instead of restricting movement to the grid's edges in a matrix representation. [PERSON] et al. (2022) [63], using a computationally reproducible approach to [PERSON]'s shortest path algorithm, developed an online education material to enable a researcher or analyst to understand how [PERSON]'s algorithm works. [PERSON] at al. (2023) [64] explored LRTA* in the context of real-time path planning for controllable UAVs by employing subgoals through goal-conditioned reinforcement learning. [PERSON] et al. (2023) [65] presented an application study to promote inclusive mobility through a multi-objective approach in a real city scenario involving bi-objective and tri-objective optimization. [PERSON] (2024) [66] proposed a cost-effective approach to smooth A* path planning for autonomous vehicles. [PERSON] et al. (2024) [67] explored [PERSON] and [PERSON] et al. (2023) [68] explored LRTA* in the context of real-time path planning for controllable UAVs by employing subgoals through goal-conditioned reinforcement learning using an internal data structure to demonstrate that their proposal guarantees universal optimality for the problem of ordering vertices by distance from the source vertex. [PERSON] et al. (2025) [44] explored Q-learning algorithms in combination with the Dijkstra and A* algorithms. The hybrid approach can manage complex scenarios and guarantee optimal performance, even in a range of conditions in a road network scenario accounting for variables such as road conditions, length-to-width ratio and traffic conditions. Another relevant point identified during the literature review is the availability of some algorithm's implementations in open-source repositories such as GitHub.