Class C3_DTLZ4

All Implemented Interfaces:
AutoCloseable, Problem, AnalyticalProblem

public class C3_DTLZ4 extends DTLZ4
The C3-DTLZ4 test problem.
  • Constructor Details

    • C3_DTLZ4

      public C3_DTLZ4(int numberOfVariables, int numberOfObjectives)
      Constructs a C3-DTLZ4 test problem with the specified number of variables and objectives.
      Parameters:
      numberOfVariables - the number of variables for this problem
      numberOfObjectives - the number of objectives for this problem
    • C3_DTLZ4

      public C3_DTLZ4(int numberOfObjectives)
      Constructs a C3-DTLZ4 test problem with the specified number of objectives. This is equivalent to calling new DTLZ4(numberOfObjectives+9, numberOfObjectives).
      Parameters:
      numberOfObjectives - the number of objectives for this problem
  • Method Details

    • getNumberOfConstraints

      public int getNumberOfConstraints()
      Description copied from interface: Problem
      Returns the number of constraints defined by this problem.
      Specified by:
      getNumberOfConstraints in interface Problem
      Overrides:
      getNumberOfConstraints in class AbstractProblem
      Returns:
      the number of constraints defined by this problem
    • evaluate

      public void evaluate(Solution solution)
      Description copied from interface: Problem
      Evaluates the solution, updating the solution's objectives in place. Algorithms must explicitly call this method when appropriate to evaluate new solutions or reevaluate modified solutions.
      Specified by:
      evaluate in interface Problem
      Overrides:
      evaluate in class DTLZ4
      Parameters:
      solution - the solution to be evaluated
    • newSolution

      public Solution newSolution()
      Description copied from interface: Problem
      Returns a new solution for this problem. Implementations must initialize the variables so that the valid range of values is defined, but typically leave the actual value at a default or undefined state.
      Specified by:
      newSolution in interface Problem
      Overrides:
      newSolution in class DTLZ
      Returns:
      a new solution for this problem
    • generate

      public Solution generate()
      Description copied from interface: AnalyticalProblem
      Returns a randomly-generated solution using the analytical solution to this problem. The exact behavior of this method depends on the implementation, but in general (1) the solutions should be non-dominated and (2) spread uniformly across the Pareto front.

      It is not always possible to guarantee these conditions. For example, a discontinuous / disconnected Pareto surface could generate dominated solutions, and a biased problem could result in non-uniform distributions. Therefore, we recommend callers filter solutions through a NondominatedPopulation, in particular one that maintains a spread of solutions.

      Furthermore, some implementations may not provide the corresponding decision variables for the solution. These implementations should indicate this by returning a solution with 0 decision variables.

      Specified by:
      generate in interface AnalyticalProblem
      Overrides:
      generate in class DTLZ4
      Returns:
      a randomly-generated Pareto optimal solution to this problem