Constraint Programming is a powerful paradigm which allows the resolution of many complex problems, such as scheduling, planning, and configuration. These problems are defined by a set of variables and a set of constraints. Each variable has non-empty domain of possible value and each constraint involves some subset of the variables and specifies the allowable combinations of values for that subset. The resolution of these problems is carried out by a constraint satisfaction solver which explores a search tree of potential solutions. This exploration is controlled by the enumeration strategy, which is responsible for choosing the order in which variables and values are selected to generate the potential solution. There exist different ways to perform this selection, and depending on the quality of this decision, the efficiency of the solving process may dramatically vary. Autonomous search is a particular case of adaptive systems that aims at improving its solving performance by adapting itself to the problem at hand without manual configuration of an expert user. The goal is to improve their solving performance by modifying and adjusting themselves, either by self-adaptation or by supervised adaptation. This approach has been effectively applied to different optimization and satisfaction techniques such as constraint programming, metaheuristics, and SAT. In this paper, we present a new Autonomous Search approach for constraint programming based on four modern bio-inspired metaheuristics. The goal of those metaheuristics is to optimize the self-tuning phase of the constraint programming search process. We illustrate promising results, where the proposed approach is able to efficiently solve several well-known constraint satisfaction problems.
- Autonomous search
- Constraint programming
- Constraint satisfaction problems
- Enumeration strategies