In a
system for enabling configuration of an ensemble of several solvers, such that the ensemble can efficiently solve a constraint problem, for each one of several candidate configurations, an array of scores is computed. The array corresponds to a statistical parameter related to a
problem solution, and the computation is based on, at least in part, a set of features associated with the problem. One candidate configuration is assigned to a
solver, and based on the array of scores associated with that candidate configuration the same or a different candidate configuration is assigned to a another
solver. A
system for dynamically reconfiguring an ensemble of solvers obtains runtime data from several solvers, and a new configuration is determined by applying a
machine learning and / or
heuristic analysis procedure to the runtime data. The configuration of a
solver may be updated according to the new configuration while that solver is running.