Constraint-Based Local Search (CBLS) is an approach for quickly building local search solvers based on a declarative modelling framework for specifying input variables, constraints and objective function. An underlying engine can efficiently update the optimization model to reflect any change to the input variables, enabling fast exploration of neighbourhoods as performed by local search procedures. This approach suffers from a weakness when moves involve modifying the value of a large set of input variables in a structured fashion. In routing optimization, if one implements the optimization model by means of integer variables, a two-opt move that flip a portion of route requires modifying the value of many variables. The constraint on this problems are then notified about many updates, but they need to infer that these updates constitute a flip, and waste a lot of time. This paper presents this multi-variable limitation, discusses approaches to mitigate it, and proposes an efficient implementation of a variable type that represents sequences of integers to avoid it. The proposed implementation offers good complexities for updating and querying the value of sequences of integers and some mechanisms to enable the use of state-of-the art incremental global constraints.
Voir en ligne : http://www.icores.org