DART  6.10.1
dart::optimizer::MultiObjectiveProblem Class Referenceabstract

#include <MultiObjectiveProblem.hpp>

Inheritance diagram for dart::optimizer::MultiObjectiveProblem:
dart::optimizer::GenericMultiObjectiveProblem

Public Member Functions

 MultiObjectiveProblem (std::size_t dim, std::size_t integerDim=0u)
 Constructor. More...
 
virtual ~MultiObjectiveProblem ()=default
 Destructor. More...
 
virtual std::ostream & print (std::ostream &os) const
 Prints information of this class to a stream. More...
 
Solution
virtual void setSolutionDimension (std::size_t dim, std::size_t integerDim=0u)
 Sets the dimension of the solution. More...
 
virtual std::size_t getSolutionDimension () const
 Returns dimension of the solution. More...
 
std::size_t getDoubleDimension () const
 Returns dimension of the floating-point part of the solution. More...
 
virtual void setIntegerDimension (std::size_t dim)
 Sets dimension of the integers in the decision vector. More...
 
virtual std::size_t getIntegerDimension () const
 Returns dimension of the integers in the decision vector. More...
 
void setLowerBounds (const Eigen::VectorXd &lb)
 Sets lower bounds for optimization parameters. More...
 
const Eigen::VectorXd & getLowerBounds () const
 Returns lower bounds for optimization parameters. More...
 
void setUpperBounds (const Eigen::VectorXd &ub)
 Sets upper bounds for optimization parameters. More...
 
const Eigen::VectorXd & getUpperBounds () const
 Returns upper bounds for optimization parameters. More...
 
Objectives
virtual std::size_t getObjectiveDimension () const =0
 Returns the total dimension of objective functions. More...
 
Equality Constraints
virtual std::size_t getEqConstraintDimension () const
 Returns the total dimension of equality constraints. More...
 
Inequality Constraints
virtual std::size_t getIneqConstraintDimension () const
 Returns the total dimension of inequality constraints. More...
 
Evaluations
virtual Eigen::VectorXd evaluateObjectives (const Eigen::VectorXd &x) const =0
 Evaluates objectives. More...
 
virtual Eigen::VectorXd evaluateEqConstraints (const Eigen::VectorXd &x) const
 Evaluates equality constraints. More...
 
virtual Eigen::VectorXd evaluateIneqConstraints (const Eigen::VectorXd &x) const
 Evaluates inequality constraints. More...
 
std::size_t getFitnessDimension () const
 Return dimension of fitness. More...
 
Eigen::VectorXd evaluateFitness (const Eigen::VectorXd &x) const
 Evaluates fitness, which is [objectives, equality constraints, inequality constraints]. More...
 

Protected Attributes

std::size_t mDimension
 Dimension of the decision vector (or optimization parameters) More...
 
std::size_t mIntegerDimension
 Dimension of integer in the decision vector. More...
 
Eigen::VectorXd mLowerBounds
 Lower bounds for optimization parameters. More...
 
Eigen::VectorXd mUpperBounds
 Upper bounds for optimization parameters. More...
 

Constructor & Destructor Documentation

◆ MultiObjectiveProblem()

dart::optimizer::MultiObjectiveProblem::MultiObjectiveProblem ( std::size_t  dim,
std::size_t  integerDim = 0u 
)
explicit

Constructor.

◆ ~MultiObjectiveProblem()

virtual dart::optimizer::MultiObjectiveProblem::~MultiObjectiveProblem ( )
virtualdefault

Destructor.

Member Function Documentation

◆ evaluateEqConstraints()

Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::evaluateEqConstraints ( const Eigen::VectorXd &  x) const
virtual

Evaluates equality constraints.

Reimplemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ evaluateFitness()

Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::evaluateFitness ( const Eigen::VectorXd &  x) const

Evaluates fitness, which is [objectives, equality constraints, inequality constraints].

◆ evaluateIneqConstraints()

Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::evaluateIneqConstraints ( const Eigen::VectorXd &  x) const
virtual

Evaluates inequality constraints.

Reimplemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ evaluateObjectives()

virtual Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::evaluateObjectives ( const Eigen::VectorXd &  x) const
pure virtual

Evaluates objectives.

Implemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ getDoubleDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getDoubleDimension ( ) const

Returns dimension of the floating-point part of the solution.

◆ getEqConstraintDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getEqConstraintDimension ( ) const
virtual

Returns the total dimension of equality constraints.

Reimplemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ getFitnessDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getFitnessDimension ( ) const

Return dimension of fitness.

◆ getIneqConstraintDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getIneqConstraintDimension ( ) const
virtual

Returns the total dimension of inequality constraints.

Reimplemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ getIntegerDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getIntegerDimension ( ) const
virtual

Returns dimension of the integers in the decision vector.

◆ getLowerBounds()

const Eigen::VectorXd & dart::optimizer::MultiObjectiveProblem::getLowerBounds ( ) const

Returns lower bounds for optimization parameters.

◆ getObjectiveDimension()

virtual std::size_t dart::optimizer::MultiObjectiveProblem::getObjectiveDimension ( ) const
pure virtual

Returns the total dimension of objective functions.

Implemented in dart::optimizer::GenericMultiObjectiveProblem.

◆ getSolutionDimension()

std::size_t dart::optimizer::MultiObjectiveProblem::getSolutionDimension ( ) const
virtual

Returns dimension of the solution.

◆ getUpperBounds()

const Eigen::VectorXd & dart::optimizer::MultiObjectiveProblem::getUpperBounds ( ) const

Returns upper bounds for optimization parameters.

◆ print()

std::ostream & dart::optimizer::MultiObjectiveProblem::print ( std::ostream &  os) const
virtual

Prints information of this class to a stream.

◆ setIntegerDimension()

void dart::optimizer::MultiObjectiveProblem::setIntegerDimension ( std::size_t  dim)
virtual

Sets dimension of the integers in the decision vector.

◆ setLowerBounds()

void dart::optimizer::MultiObjectiveProblem::setLowerBounds ( const Eigen::VectorXd &  lb)

Sets lower bounds for optimization parameters.

◆ setSolutionDimension()

void dart::optimizer::MultiObjectiveProblem::setSolutionDimension ( std::size_t  dim,
std::size_t  integerDim = 0u 
)
virtual

Sets the dimension of the solution.

The element type of the solution can be either double or int. In the case that the solution partially contains integers, we assume the integer part takes place the tail of the solution, and the size of the integer part is integerDim. For example, a solution vector can be [floating1, floating2, ..., int1, int2].

Note that the dim represents the whole dimension of the solution so that the dimension of floating-point part is to be (dim - integerDim).

By default, we assume the solution is homogeneously floating-point type ( i.e., integerDim is zero).

Parameters
[in]dimTotal dimension of the solution.
[in]integerDimThe dimension of integer part in the solution.

◆ setUpperBounds()

void dart::optimizer::MultiObjectiveProblem::setUpperBounds ( const Eigen::VectorXd &  ub)

Sets upper bounds for optimization parameters.

Member Data Documentation

◆ mDimension

std::size_t dart::optimizer::MultiObjectiveProblem::mDimension
protected

Dimension of the decision vector (or optimization parameters)

◆ mIntegerDimension

std::size_t dart::optimizer::MultiObjectiveProblem::mIntegerDimension
protected

Dimension of integer in the decision vector.

The integers are placed in the tail of the decision vector.

◆ mLowerBounds

Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::mLowerBounds
protected

Lower bounds for optimization parameters.

◆ mUpperBounds

Eigen::VectorXd dart::optimizer::MultiObjectiveProblem::mUpperBounds
protected

Upper bounds for optimization parameters.