A parallel pull labelling algorithm for the resource constrained shortest path problem
Abstract
The Resource Constrained Shortest Path Problem (RCSPP) is a fundamental combinatorial optimisation problem in which the goal is to find a least-cost path in a directed graph subject to one or more resource constraints.
Pull labelling, where a vertex gathers labels from its predecessors rather than pushing them to its successors, is a classical idea; we turn it into a parallel algorithm whose immutable, contention-free bucket storage is designed to scale on modern multi-core hardware.
Its central component is an acyclic dependency bucket graph that orders the creation of labels so that buckets can be processed concurrently, without conflicting accesses, and stored as immutable objects.
On top of this we introduce i) a highly parallelisable approach at the label-bucket level, ii) an extension to bi-directional search with a dynamic midpoint that emerges from the bucket processing order, and iii) a vectorised dominance criterion that uses vector instructions to speed-up the label comparison with another level of parallelisation.
Compared to a baseline version of the algorithm the optimisations result in a speed-up of about 18 times on a set of hard instances and up to 274 times on the instance with the largest speed-up.
Against an open implementation of the state-of-the-art bucket graph labelling algorithm, run on the same hardware and instances with each solver in its best parallel configuration, the pull algorithm is 1.9 to 2.4 times faster.
The proposed algorithm demonstrates significant computational improvements that may enhance the efficiency of column generation frameworks incorporating resource constrained shortest path sub-problems, potentially enabling the efficient solution of larger-scale instances in routing, scheduling, supply chain and transportation network optimisation applications.
이 뉴스, 어떠셨어요?
한 번의 탭으로 반응을 남겨요 · 로그인 불필요