DART  6.10.1
dart::optimizer::MultiObjectiveSolver Class Referenceabstract

Abstract class that provides a common interface for different multi-objective optimization solvers. More...

#include <MultiObjectiveSolver.hpp>

Inheritance diagram for dart::optimizer::MultiObjectiveSolver:
dart::optimizer::PagmoMultiObjectiveSolver

Classes

struct  Properties
 The MultiObjectiveSolver::Properties class contains Solver parameters that are common to all MultiObjectiveSolver types. More...
 

Public Member Functions

 MultiObjectiveSolver (const Properties &properties=Properties())
 Default constructor. More...
 
virtual ~MultiObjectiveSolver ()=default
 Destructor. More...
 
virtual bool solve (std::size_t numEvolutions=1u)=0
 Solve optimization problem. More...
 
virtual std::string getType () const =0
 Returns the type (implementation) of this Solver. More...
 
virtual std::shared_ptr< MultiObjectiveSolverclone () const =0
 Creates an identical clone of this Solver. More...
 
void setProperties (const Properties &properties)
 Set the generic Properties of this Solver. More...
 
const PropertiesgetSolverProperties () const
 Get the generic Properties of this Solver. More...
 
virtual void setProblem (std::shared_ptr< MultiObjectiveProblem > problem)
 
std::shared_ptr< MultiObjectiveProblemgetProblem () const
 Get nonlinear optimization problem. More...
 
void setNumIterationsPerEvolution (std::size_t maxIterations)
 Sets the number of iterations per evolution. More...
 
std::size_t getNumIterationsPerEvolution () const
 Returns the number of iterations per evolution. More...
 
Population
void setPopulationSize (std::size_t size)
 Sets the number of decision vectors in one population. More...
 
std::size_t getPopulationSize () const
 Return sthe number of decision vectors in one population. More...
 
void setNumPopulations (std::size_t size)
 Sets the number of populations. More...
 
std::size_t getNumPopulations () const
 Returns the number of populations. More...
 
const PopulationgetPopulation (std::size_t index) const
 Returns a population at index. More...
 
const std::vector< Population > & getPopulations () const
 Returns all the populations. More...
 

Protected Attributes

Properties mProperties
 Properties. More...
 
std::vector< PopulationmPopulations
 Populations. More...
 

Detailed Description

Abstract class that provides a common interface for different multi-objective optimization solvers.

The different MultiObjectiveSolver implementations each use a different Pareto-optimization library, which could lead to differences in performance for various problem types. This base class allows the different MultiObjectiveSolver implementations to be swapped out with each other quickly and easily to help with testing, benchmarking, and experimentation.

Constructor & Destructor Documentation

◆ MultiObjectiveSolver()

dart::optimizer::MultiObjectiveSolver::MultiObjectiveSolver ( const Properties properties = Properties())
explicit

Default constructor.

◆ ~MultiObjectiveSolver()

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

Destructor.

Member Function Documentation

◆ clone()

virtual std::shared_ptr<MultiObjectiveSolver> dart::optimizer::MultiObjectiveSolver::clone ( ) const
pure virtual

Creates an identical clone of this Solver.

Implemented in dart::optimizer::PagmoMultiObjectiveSolver.

◆ getNumIterationsPerEvolution()

std::size_t dart::optimizer::MultiObjectiveSolver::getNumIterationsPerEvolution ( ) const

Returns the number of iterations per evolution.

◆ getNumPopulations()

std::size_t dart::optimizer::MultiObjectiveSolver::getNumPopulations ( ) const

Returns the number of populations.

◆ getPopulation()

const Population & dart::optimizer::MultiObjectiveSolver::getPopulation ( std::size_t  index) const

Returns a population at index.

◆ getPopulations()

const std::vector< Population > & dart::optimizer::MultiObjectiveSolver::getPopulations ( ) const

Returns all the populations.

◆ getPopulationSize()

std::size_t dart::optimizer::MultiObjectiveSolver::getPopulationSize ( ) const

Return sthe number of decision vectors in one population.

◆ getProblem()

std::shared_ptr< MultiObjectiveProblem > dart::optimizer::MultiObjectiveSolver::getProblem ( ) const

Get nonlinear optimization problem.

◆ getSolverProperties()

const MultiObjectiveSolver::Properties & dart::optimizer::MultiObjectiveSolver::getSolverProperties ( ) const

Get the generic Properties of this Solver.

◆ getType()

virtual std::string dart::optimizer::MultiObjectiveSolver::getType ( ) const
pure virtual

Returns the type (implementation) of this Solver.

Implemented in dart::optimizer::PagmoMultiObjectiveSolver.

◆ setNumIterationsPerEvolution()

void dart::optimizer::MultiObjectiveSolver::setNumIterationsPerEvolution ( std::size_t  maxIterations)

Sets the number of iterations per evolution.

◆ setNumPopulations()

void dart::optimizer::MultiObjectiveSolver::setNumPopulations ( std::size_t  size)

Sets the number of populations.

◆ setPopulationSize()

void dart::optimizer::MultiObjectiveSolver::setPopulationSize ( std::size_t  size)

Sets the number of decision vectors in one population.

◆ setProblem()

void dart::optimizer::MultiObjectiveSolver::setProblem ( std::shared_ptr< MultiObjectiveProblem problem)
virtual

◆ setProperties()

void dart::optimizer::MultiObjectiveSolver::setProperties ( const Properties properties)

Set the generic Properties of this Solver.

◆ solve()

virtual bool dart::optimizer::MultiObjectiveSolver::solve ( std::size_t  numEvolutions = 1u)
pure virtual

Solve optimization problem.

Implemented in dart::optimizer::PagmoMultiObjectiveSolver.

Member Data Documentation

◆ mPopulations

std::vector<Population> dart::optimizer::MultiObjectiveSolver::mPopulations
protected

Populations.

◆ mProperties

Properties dart::optimizer::MultiObjectiveSolver::mProperties
protected