Efficient Implementation of the Global Cardinality Constraint with Costs
Margaux Schmied, Jean-Charles Regin
TL;DR
The paper addresses the costly arc-consistency filtering for the global cardinality constraint with costs (costgcc) in constraint programming. It introduces a landmark-based preprocessing to compute upper bounds on shortest-path distances, reducing the number of explicit path computations required by Régin's costgcc filtering. The approach yields significant runtime improvements and fewer path computations, especially on large graphs and when the cost bound $H$ provides margin, demonstrated on TSP, StockingCost, FJSSP, and CHILD problems. Overall, the method enhances practicality of costgcc constraints by making arc-consistency filtering faster and more scalable in real-world CP applications.
Abstract
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.
