Interface Problem

All Superinterfaces:
AutoCloseable
All Known Subinterfaces:
AnalyticalProblem
All Known Implementing Classes:
AbstractProblem, Ackley, AttractiveSector, BBOBFunction, BBOBTransformation, Beale, Belegundu, Binh, Binh2, Binh3, Binh4, C1_DTLZ1, C1_DTLZ3, C2_DTLZ2, C3_DTLZ1, C3_DTLZ4, CF1, CF10, CF2, CF3, CF4, CF5, CF6, CF7, CF8, CF9, ConvexC2_DTLZ2, ConvexDTLZ2, DifferentPowers, DistributedProblem, DTLZ, DTLZ1, DTLZ2, DTLZ3, DTLZ4, DTLZ5, DTLZ6, DTLZ7, Ellipsoid, ExternalProblem, Fonseca, Fonseca2, Gallagher, Griewank, Himmelblau, Jimenez, Kita, Kursawe, Laumanns, Lis, LSMOP, LSMOP1, LSMOP2, LSMOP3, LSMOP4, LSMOP5, LSMOP6, LSMOP7, LSMOP8, LSMOP9, LZ, LZ1, LZ2, LZ3, LZ4, LZ5, LZ6, LZ7, LZ8, LZ9, Murata, Obayashi, OKA1, OKA2, Osyczka, Osyczka2, Poloni, ProblemStub, ProblemWrapper, Quagliarella, Rastrigin, Rastrigin, Rendon, Rendon2, Rosenbrock, Rosenbrock, RotatedProblem, ScaledProblem, Schaffer, Schaffer2, Schaffers, Schwefel, Schwefel, ScriptedProblem, SharpRidge, Sphere, Sphere, Srinivas, StackedProblem, Tamaki, Tanaka, TimingProblem, TransformObjectiveOscillate, TransformObjectivePenalize, TransformObjectivePower, TransformObjectiveShift, TransformVariablesAffine, TransformVariablesAsymmetric, TransformVariablesBrs, TransformVariablesConditioning, TransformVariablesOscillate, TransformVariablesScale, TransformVariablesShift, TransformVariablesXHat, TransformVariablesZHat, UF1, UF10, UF11, UF12, UF13, UF2, UF3, UF4, UF5, UF6, UF7, UF8, UF9, Viennet, Viennet2, Viennet3, Viennet4, WFG, WFG1, WFG2, WFG3, WFG4, WFG5, WFG6, WFG7, WFG8, WFG9, Zakharov, ZCAT, ZCAT1, ZCAT10, ZCAT11, ZCAT12, ZCAT13, ZCAT14, ZCAT15, ZCAT16, ZCAT17, ZCAT18, ZCAT19, ZCAT2, ZCAT20, ZCAT3, ZCAT4, ZCAT5, ZCAT6, ZCAT7, ZCAT8, ZCAT9, ZDT, ZDT1, ZDT2, ZDT3, ZDT4, ZDT5, ZDT6

public interface Problem extends AutoCloseable
Interface for defining optimization problems. All methods must be thread safe.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes any underlying resources used by this problem.
    void
    evaluate(Solution solution)
    Evaluates the solution, updating the solution's objectives in place.
    Returns the user-friendly name for this problem.
    int
    Returns the number of constraints defined by this problem.
    int
    Returns the number of objectives defined by this problem.
    int
    Returns the number of decision variables defined by this problem.
    default boolean
    isType(Class<? extends Variable> type)
    Returns true if all decision variables used by this solution are the given type.
    Returns a new solution for this problem.
  • Method Details

    • getName

      String getName()
      Returns the user-friendly name for this problem.
      Returns:
      the user-friendly name for this problem
    • getNumberOfVariables

      int getNumberOfVariables()
      Returns the number of decision variables defined by this problem.
      Returns:
      the number of decision variables defined by this problem
    • getNumberOfObjectives

      int getNumberOfObjectives()
      Returns the number of objectives defined by this problem.
      Returns:
      the number of objectives defined by this problem
    • getNumberOfConstraints

      int getNumberOfConstraints()
      Returns the number of constraints defined by this problem.
      Returns:
      the number of constraints defined by this problem
    • evaluate

      void evaluate(Solution solution)
      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

      Solution newSolution()
      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
    • close

      void close()
      Closes any underlying resources used by this problem. Once closed, further invocations of any methods on this problem may throw exceptions.
      Specified by:
      close in interface AutoCloseable
    • isType

      default boolean isType(Class<? extends Variable> type)
      Returns true if all decision variables used by this solution are the given type. This also considers if the given types are compatible. For example, BinaryIntegerVariable is compatible with BinaryVariable.
      Parameters:
      type - the type of decision variable
      Returns:
      true if all decision variables are the given type; false otherwise.