Class ParetoOptimizer

  • All Implemented Interfaces:
    IMonitorSolution, ISearchMonitor

    public class ParetoOptimizer
    extends Object
    implements IMonitorSolution
    Class to store the pareto front (multi-objective optimization). Worse solutions are dynamically removed from the solution set.
    Author:
    Jean-Guillaume Fages
    • Constructor Detail

      • ParetoOptimizer

        public ParetoOptimizer​(boolean maximize,
                               IntVar[] objectives)
        Create an object to compute the Pareto front of a multi-objective problem. Maintain the set of dominating solutions and posts constraints dynamically to prevent search from computing dominated ones. This object must be used as follows: model.getSolver().plugMonitor(paretoRecorder); while(model.getSolver().solve()); List paretoFront = paretoRecorder.getParetoFront(); The Solutions store decision variables (those declared in the search strategy) BEWARE: requires the objectives to be declared in the search strategy
        Parameters:
        maximize - whether to maximize or minimize the objectives
        objectives - objective variables (must all be optimized in the same direction)
    • Method Detail

      • getParetoFront

        public List<Solution> getParetoFront()
        Returns:
        the set of Pareto-best (possibly optimal) solutions found so far