Class Schaffer2

java.lang.Object
org.moeaframework.problem.AbstractProblem
org.moeaframework.problem.misc.Schaffer2
All Implemented Interfaces:
AutoCloseable, Problem, AnalyticalProblem

public class Schaffer2 extends AbstractProblem implements AnalyticalProblem
The Schaffer (2) problem. The Schaffer (2) problem is univariate, with the optimum defined by 1 <= x <= 2 and 4 <= x <= 5.

Properties:

  • Disconnected Pareto set
  • Disconnected Pareto front

References:

  1. Schaffer, J. D. (1984). "Some Experiments in Machine Learning using Vector Evaluated Genetic Algorithms." Ph.D. Thesis, Vanderbilt University, Nashville, USA.
  2. Schaffer, J. D. (1985). "Multiple Objective Optimization with Vector Evaluated Genetic Algorithms." Genetic Algorithms and Their Applications: Proceedings of the First International Conference on Genetic Algorithms, pp. 93-100.
  3. Van Veldhuizen, D. A (1999). "Multiobjective Evolutionary Algorithms: Classifications, Analyses, and New Innovations." Air Force Institute of Technology, Ph.D. Thesis, Appendix B.
  • Constructor Details

    • Schaffer2

      public Schaffer2()
      Constructs the Schaffer (2) problem.
  • Method Details

    • 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
      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
      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
      Returns:
      a randomly-generated Pareto optimal solution to this problem