Class RotatedProblems

java.lang.Object
org.moeaframework.core.spi.ProblemProvider
org.moeaframework.problem.RotatedProblems

public class RotatedProblems extends ProblemProvider
Problem provider for rotated problems. Supports any problem available through ProblemFactory#getProblem(String). See RotatedProblem for details on how rotation is supported. Rotated problems are instantiated by providing the problem name prefixed with one of the following prefix patterns.
List of rotated problem prefixes
Prefix Pattern Result
UNROT_ Unrotated problem
ROT_ Fully rotated instance, with each plane rotated by 45°
ROT(ANGLE)_ Fully rotated instance, with each plane rotated by ANGLE degrees. Use RAND for randomized rotations
ROT(K,ANGLE)_ K random rotation planes, each rotated by ANGLE degrees. Use ALL to rotate all planes

As an example, rotated 2D DTLZ2 instances can be created with "UNROT_DTLZ2_2", "ROT_DTLZ2_2", "ROT(30)_DTLZ2_2" and "ROT(10,RAND)_DTLZ2_2". Note that multiple calls to getProblem(String) may return instances with different rotations.

When comparing rotated problems against their unrotated versions, it is important to use the UNROT_ prefix for the unrotated problem. The act of rotating a problem expands the decision variable ranges slightly (imagine a 1 x 1 square that is rotated 45 degrees; the bounding box of the rotated square is approximately 1.4 x 1.4). The UNROT_ prefix ensures the unrotated version uses the same expanded decision variable ranges as the rotated variant.

  • Constructor Details

    • RotatedProblems

      public RotatedProblems()
      Constructs a problem provider for rotated problems.
  • Method Details

    • getProblem

      public Problem getProblem(String name)
      Description copied from class: ProblemProvider
      Returns the problem with the specified name, or null if this provider does not support the problem.
      Specified by:
      getProblem in class ProblemProvider
      Parameters:
      name - the problem name
      Returns:
      the problem with the specified name, or null if this provider does not support the problem
    • getReferenceSet

      public NondominatedPopulation getReferenceSet(String name)
      Description copied from class: ProblemProvider
      Returns the reference set for the specified problem, or null if this provider does not support the problem or no reference set is available.
      Specified by:
      getReferenceSet in class ProblemProvider
      Parameters:
      name - the problem name
      Returns:
      the reference set for the specified problem, or null if this provider does not support the problem or no reference set is available