Efficient Implementation of the Global Cardinality Constraint with Costs
This work addresses a practical bottleneck in Constraint Programming for researchers and practitioners, offering an incremental improvement to enhance algorithm efficiency.
The paper tackles the inefficiency of the arc consistency filtering algorithm for the cardinality constraint with costs, which requires many shortest path searches, by proposing a new approach using upper bounds on shortest paths based on landmarks as a fast preprocessing step that reduces explicit computations.
The success of Constraint Programming relies partly on the global constraints and implementation of the associated filtering algorithms. Recently, new ideas emerged to improve these implementations in practice, especially regarding the all different constraint. In this paper, we consider the cardinality constraint with costs. The cardinality constraint is a generalization of the all different constraint that specifies the number of times each value must be taken by a given set of variables in a solution. The version with costs introduces an assignment cost and bounds the total sum of assignment costs. The arc consistency filtering algorithm of this constraint is difficult to use in practice, as it systematically searches for many shortest paths. We propose a new approach that works with upper bounds on shortest paths based on landmarks. This approach can be seen as a preprocessing. It is fast and avoids, in practice, a large number of explicit computations of shortest paths.