Class Kursawe

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

public class Kursawe extends AbstractProblem
The Kursawe test problem. According to a personal correspondence between Van Veldhuizen and Marco Laumanns, a misprint exists in Kursawe's paper. This implementation uses the corrected version.

Properties:

  • Disconnected, symmetric Pareto set
  • Disconnected, concave Pareto front
  • Scalable number of variables

References:

  1. Kursawe, F. "A Variant of Evolution Strategies for Vector Optimization." Parallel Problem Solving from Nature, pp. 193-197, 1991.
  2. Van Veldhuizen, D. "Multiobjective Evolutionary Algorithms: Classifications, Analyses, and New Innovations." Ph.D. Dissertation. The Air Force Institute of Technology, Air University, 1999.
  • Constructor Details

    • Kursawe

      public Kursawe()
      Constructs the Kursawe problem with 3 decision variables.
    • Kursawe

      public Kursawe(int numberOfVariables)
      Constructs the Kursawe problem with the specified number of decision variables.
      Parameters:
      numberOfVariables - the number of decision variables
    • Kursawe

      public Kursawe(int numberOfVariables, double lowerBound, double upperBound)
      Constructs the Kursawe problem with the specified number of decision variables.
      Parameters:
      numberOfVariables - the number of decision variables
      lowerBound - the lower bound for decision variables
      upperBound - the upper bound for decision variables
  • 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.
      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.
      Returns:
      a new solution for this problem