Abstract:The classic problem of \textit{constrained path finding} is a well-studied but yet challenging topic in AI with a broad range of applications in various areas such communication and transportation. The Weight Constrained Shortest Path Problem (WCSPP), as the base form of constrained path finding with only one side constraint, aims to plan a cost optimum path whose weight/resource usage is limited. Given the bi-criteria nature of the problem (i.e., dealing with cost and weight of paths), methods addressing the WCSPP have some common properties with bi-objective search. This paper leverages the recent state-of-the-art A*-based techniques in both constrained path finding and bi-objective search and presents two exact solution approaches to the WCSPP, both capable of solving hard problem instances on very large graphs. We empirically evaluate the performance of our algorithms on a new set of large and realistic problem instances and show their advantages over the state-of-the-art algorithms in both time and space metrics. This paper also investigates the importance of priority queues in constrained search with A*. We show with extensive experiments on both realistic and randomised graphs how bucket-based queues without tie-breaking can effectively improve the algorithmic performance of exhaustive bi-criteria searches.
Abstract:Bi-objective search is a well-known algorithmic problem, concerned with finding a set of optimal solutions in a two-dimensional domain. This problem has a wide variety of applications such as planning in transport systems or optimal control in energy systems. Recently, bi-objective A*-based search (BOA*) has shown state-of-the-art performance in large networks. This paper develops a bi-directional variant of BOA*, enriched with several speed-up heuristics. Our experimental results on 1,000 benchmark cases show that our bi-directional A* algorithm for bi-objective search (BOBA*) can optimally solve all of the benchmark cases within the time limit, outperforming the state of the art BOA*, bi-objective Dijkstra and bi-directional bi-objective Dijkstra by an average runtime improvement of a factor of five over all of the benchmark instances.