Route finder: efficiently finding k shortest paths using constraint programming

  • Authors:
  • Michel P. Lefebvre;Jean-François Puget;Petr Vilím

  • Affiliations:
  • IBM. Ecully, France;IBM, Saint Raphael, France;IBM, Chodov, Czech Republic

  • Venue:
  • CP'11 Proceedings of the 17th international conference on Principles and practice of constraint programming
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we describe a Constraint Programming (CP) route finding application for a container transportation company. Mathematically, this amounts to finding the k shortest paths in a directed graph. However the nature of the business constraints rule out known algorithms such as Dijkstra's. Indeed, one cannot unfold all constraints into a directed graph as the resulting graph would be too large. Given an origin and destination (two places), the problem is to decide which ships should be used (routes), and when and where the containers should be loaded from one ship to another (connections), while satisfying many business rules specified by the transportation company. The CP model described in this paper is quite simple, it doesn't use any specialized constraints, but it is surprisingly effective. Queries for the best route are answered in a matter of a second or fraction of a second, although the problem is very large: around 900 places, 2,300 routes, 22,000 connections and 4,200 business rules. The system gracefully handles 100,000 requests a day on a single server.