Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members

User-interface to formulate and solve optimal control problems with multiple objectives. More...

#include <multi_objective_algorithm.hpp>

Inheritance diagram for MultiObjectiveAlgorithm:
Inheritance graph
[legend]

Public Member Functions

returnValue getAllAlgebraicStates (const char *fileName) const
 
returnValue getAllControls (const char *fileName) const
 
returnValue getAllDifferentialStates (const char *fileName) const
 
returnValue getAllDisturbances (const char *fileName) const
 
returnValue getAllParameters (const char *fileName) const
 
DVector getNadirVector () const
 
DVector getNormalizationVector () const
 
DMatrix getNormalizedPayOffMatrix () const
 
returnValue getParetoFront (VariablesGrid &paretoFront) const
 
returnValue getParetoFrontWithFilter (VariablesGrid &paretoFront) const
 
DMatrix getPayOffMatrix () const
 
DMatrix getUtopiaPlaneVectors () const
 
DVector getUtopiaVector () const
 
DMatrix getWeights () const
 
returnValue getWeights (const char *fileName) const
 
returnValue getWeightsWithFilter (const char *fileName) const
 
 MultiObjectiveAlgorithm ()
 
 MultiObjectiveAlgorithm (const OCP &ocp_)
 
 MultiObjectiveAlgorithm (const MultiObjectiveAlgorithm &arg)
 
MultiObjectiveAlgorithmoperator= (const MultiObjectiveAlgorithm &arg)
 
returnValue printInfo ()
 
returnValue setParetoFrontDiscretization (const int &N_)
 
virtual returnValue solve ()
 
virtual returnValue solveSingleObjective (const int &number)
 
virtual ~MultiObjectiveAlgorithm ()
 
- Public Member Functions inherited from OptimizationAlgorithm
virtual returnValue init ()
 
OptimizationAlgorithmoperator= (const OptimizationAlgorithm &arg)
 
 OptimizationAlgorithm ()
 
 OptimizationAlgorithm (const OCP &ocp_)
 
 OptimizationAlgorithm (const OptimizationAlgorithm &arg)
 
virtual ~OptimizationAlgorithm ()
 
- Public Member Functions inherited from OptimizationAlgorithmBase
returnValue getAlgebraicStates (VariablesGrid &xa_) const
 
returnValue getAlgebraicStates (const char *fileName) const
 
returnValue getControls (VariablesGrid &p_) const
 
returnValue getControls (const char *fileName) const
 
returnValue getDifferentialStates (VariablesGrid &xd_) const
 
returnValue getDifferentialStates (const char *fileName) const
 
returnValue getDisturbances (VariablesGrid &w_) const
 
returnValue getDisturbances (const char *fileName) const
 
double getEndTime () const
 
virtual uint getNP () const
 
virtual uint getNU () const
 
virtual uint getNW () const
 
virtual uint getNX () const
 
virtual uint getNXA () const
 
double getObjectiveValue (const char *fileName) const
 
double getObjectiveValue () const
 
returnValue getParameters (VariablesGrid &u_) const
 
returnValue getParameters (DVector &u_) const
 
returnValue getParameters (const char *fileName) const
 
returnValue getSensitivitiesP (BlockMatrix &_sens) const
 
returnValue getSensitivitiesU (BlockMatrix &_sens) const
 
returnValue getSensitivitiesW (BlockMatrix &_sens) const
 
returnValue getSensitivitiesX (BlockMatrix &_sens) const
 
returnValue getSensitivitiesXA (BlockMatrix &_sens) const
 
double getStartTime () const
 
returnValue initializeAlgebraicStates (const char *fileName, BooleanType autoinit=BT_FALSE)
 
returnValue initializeAlgebraicStates (const VariablesGrid &xa_init_, BooleanType autoinit=BT_FALSE)
 
returnValue initializeControls (const char *fileName)
 
returnValue initializeControls (const VariablesGrid &p_init_)
 
returnValue initializeDifferentialStates (const char *fileName, BooleanType autoinit=BT_FALSE)
 
returnValue initializeDifferentialStates (const VariablesGrid &xd_init_, BooleanType autoinit=BT_FALSE)
 
returnValue initializeDisturbances (const char *fileName)
 
returnValue initializeDisturbances (const VariablesGrid &w_init_)
 
returnValue initializeParameters (const char *fileName)
 
returnValue initializeParameters (const VariablesGrid &u_init_)
 
OptimizationAlgorithmBaseoperator= (const OptimizationAlgorithmBase &arg)
 
 OptimizationAlgorithmBase ()
 
 OptimizationAlgorithmBase (const OCP &ocp_)
 
 OptimizationAlgorithmBase (const OptimizationAlgorithmBase &arg)
 
returnValue simulateStatesForInitialization ()
 
virtual ~OptimizationAlgorithmBase ()
 
- Public Member Functions inherited from UserInteraction
virtual int addPlotWindow (PlotWindow &_window)
 
virtual int operator<< (PlotWindow &_window)
 
virtual int operator<< (LogRecord &_record)
 
UserInteractionoperator= (const UserInteraction &rhs)
 
 UserInteraction ()
 
 UserInteraction (const UserInteraction &rhs)
 
virtual ~UserInteraction ()
 
- Public Member Functions inherited from Options
returnValue addOptionsList ()
 
returnValue ensureConsistency ()
 
returnValue ensureConsistency ()
 
returnValue get (OptionsName name, int &value) const
 
returnValue get (OptionsName name, double &value) const
 
returnValue get (OptionsName name, std::string &value) const
 
returnValue get (uint idx, OptionsName name, int &value) const
 
returnValue get (uint idx, OptionsName name, double &value) const
 
returnValue get (uint idx, OptionsName name, std::string &value) const
 
uint getNumOptionsLists () const
 
Options getOptions (uint idx) const
 
Optionsoperator= (const Options &rhs)
 
Optionsoperator= (const Options &rhs)
 
 Options ()
 
 Options ()
 
 Options (const Options &rhs)
 
 Options (const Options &rhs)
 
 Options ()
 
 Options (const OptionsList &_optionsList)
 
returnValue print () const
 
returnValue print () const
 
returnValue printOptionsList () const
 
returnValue printOptionsList (uint idx) const
 
returnValue set (OptionsName name, int value)
 
returnValue set (OptionsName name, double value)
 
returnValue set (OptionsName name, const std::string &value)
 
returnValue set (uint idx, OptionsName name, int value)
 
returnValue set (uint idx, OptionsName name, double value)
 
returnValue set (uint idx, OptionsName name, const std::string &value)
 
returnValue setOptions (const Options &arg)
 
returnValue setOptions (uint idx, const Options &arg)
 
returnValue setToDefault ()
 
returnValue setToDefault ()
 
returnValue setToFast ()
 
returnValue setToFast ()
 
returnValue setToMPC ()
 
returnValue setToReliable ()
 
returnValue setToReliable ()
 
 ~Options ()
 
 ~Options ()
 
virtual ~Options ()
 
- Public Member Functions inherited from Logging
int addLogRecord (LogRecord &record)
 
returnValue getAll (LogName _name, MatrixVariablesGrid &values) const
 
returnValue getFirst (LogName _name, DMatrix &firstValue) const
 
returnValue getFirst (LogName _name, VariablesGrid &firstValue) const
 
returnValue getLast (LogName _name, DMatrix &lastValue) const
 
returnValue getLast (LogName _name, VariablesGrid &lastValue) const
 
returnValue getLogRecord (LogRecord &_record) const
 
uint getNumLogRecords () const
 
 Logging ()
 
int operator<< (LogRecord &record)
 
returnValue printLoggingInfo () const
 
returnValue printNumDoubles () const
 
returnValue setAll (LogName _name, const MatrixVariablesGrid &values)
 
returnValue setLast (LogName _name, const DMatrix &value, double time=-INFTY)
 
returnValue setLast (LogName _name, VariablesGrid &value, double time=-INFTY)
 
returnValue updateLogRecord (LogRecord &_record) const
 
virtual ~Logging ()
 
- Public Member Functions inherited from Plotting
int addPlotWindow (PlotWindow &_window)
 
uint getNumPlotWindows () const
 
returnValue getPlotWindow (uint idx, PlotWindow &_window) const
 
returnValue getPlotWindow (PlotWindow &_window) const
 
int operator<< (PlotWindow &_window)
 
Plottingoperator= (const Plotting &rhs)
 
virtual returnValue plot (PlotFrequency _frequency=PLOT_IN_ANY_CASE)
 
 Plotting ()
 
 Plotting (const Plotting &rhs)
 
virtual returnValue replot (PlotFrequency _frequency=PLOT_IN_ANY_CASE)
 
virtual ~Plotting ()
 

Protected Member Functions

returnValue evaluateObjectives (VariablesGrid &xd_, VariablesGrid &xa_, VariablesGrid &p_, VariablesGrid &u_, VariablesGrid &w_, Expression **arg1)
 
returnValue formulateOCP (double *idx, OCP *ocp_, Expression **arg)
 
virtual returnValue initializeNlpSolver (const OCPiterate &_userInit)
 
virtual returnValue initializeObjective (Objective *F)
 
returnValue printAuxiliaryRoutine (const char *fileName, VariablesGrid *x_) const
 
virtual returnValue setupOptions ()
 
- Protected Member Functions inherited from OptimizationAlgorithm
virtual returnValue allocateNlpSolver (Objective *F, DynamicDiscretization *G, Constraint *H)
 
virtual returnValue setupLogging ()
 
- Protected Member Functions inherited from OptimizationAlgorithmBase
returnValue clear ()
 
virtual returnValue determineDimensions (Objective *const _objective, DifferentialEquation **const _differentialEquation, Constraint *const _constraint, uint &_nx, uint &_nxa, uint &_np, uint &_nu, uint &_nw) const
 
virtual returnValue extractOCPdata (Objective **objective, DifferentialEquation ***differentialEquation, Constraint **constraint, Grid &unionGrid)
 
returnValue init (UserInteraction *_userIteraction)
 
virtual returnValue initializeOCPiterate (Constraint *const _constraint, const Grid &_unionGrid, uint nx, uint nxa, uint np, uint nu, uint nw)
 
BooleanType isLinearQuadratic (Objective *F, DynamicDiscretization *G, Constraint *H) const
 
virtual returnValue setupDifferentialEquation (Objective *objective, DifferentialEquation **differentialEquation, Constraint *constraint, Grid unionGrid)
 
virtual returnValue setupDynamicDiscretization (UserInteraction *_userIteraction, Objective *objective, DifferentialEquation **differentialEquation, Constraint *constraint, Grid unionGrid, DynamicDiscretization **dynamicDiscretization)
 
virtual returnValue setupObjective (Objective *objective, DifferentialEquation **differentialEquation, Constraint *constraint, Grid unionGrid)
 
- Protected Member Functions inherited from UserInteraction
virtual returnValue getPlotDataFromMemberLoggings (PlotWindow &_window) const
 
BlockStatus getStatus () const
 
returnValue setStatus (BlockStatus _status)
 
- Protected Member Functions inherited from Options
returnValue addOption (OptionsName name, int value)
 
returnValue addOption (OptionsName name, double value)
 
returnValue addOption (OptionsName name, const std::string &value)
 
returnValue addOption (uint idx, OptionsName name, int value)
 
returnValue addOption (uint idx, OptionsName name, double value)
 
returnValue addOption (uint idx, OptionsName name, const std::string &value)
 
returnValue clearOptionsList ()
 
returnValue copy (const Options &rhs)
 
returnValue copy (const Options &rhs)
 
returnValue declareOptionsUnchanged ()
 
returnValue declareOptionsUnchanged (uint idx)
 
BooleanType haveOptionsChanged () const
 
BooleanType haveOptionsChanged (uint idx) const
 

Protected Attributes

int count
 
int m
 
int N
 
VariablesGridpResults
 
DMatrix result
 
VariablesGriduResults
 
DMatrix vertices
 
VariablesGridwResults
 
VariablesGridxaResults
 
VariablesGridxResults
 
- Protected Attributes inherited from OptimizationAlgorithmBase
OCPiterate iter
 
NLPsolvernlpSolver
 
OCPocp
 
OCPiterate userInit
 
- Protected Attributes inherited from UserInteraction
BlockStatus status
 
- Protected Attributes inherited from Options
std::vector< OptionsListlists
 
- Protected Attributes inherited from Logging
std::vector< LogRecordlogCollection
 
int logIdx
 
- Protected Attributes inherited from Plotting
PlotCollection plotCollection
 

Private Attributes

double totalCPUtime
 
int totalNumberOfSQPiterations
 

Additional Inherited Members

- Public Attributes inherited from Options
real_t boundRelaxation
 
real_t boundTolerance
 
int dropBoundPriority
 
int_t dropBoundPriority
 
int dropEqConPriority
 
int_t dropEqConPriority
 
int dropIneqConPriority
 
int_t dropIneqConPriority
 
int enableCholeskyRefactorisation
 
int_t enableCholeskyRefactorisation
 
int enableDriftCorrection
 
int_t enableDriftCorrection
 
BooleanType enableDropInfeasibles
 
BooleanType enableEqualities
 
BooleanType enableFarBounds
 
BooleanType enableFlippingBounds
 
BooleanType enableFullLITests
 
BooleanType enableInertiaCorrection
 
BooleanType enableNZCTests
 
BooleanType enableRamping
 
BooleanType enableRegularisation
 
real_t epsDen
 
real_t epsFlipping
 
real_t epsIterRef
 
real_t epsLITests
 
real_t epsNum
 
real_t epsNZCTests
 
real_t epsRegularisation
 
real_t finalRamping
 
real_t growFarBounds
 
real_t initialFarBounds
 
real_t initialRamping
 
SubjectToStatus initialStatusBounds
 
real_t maxDualJump
 
real_t maxPrimalJump
 
int numRefinementSteps
 
int_t numRefinementSteps
 
int numRegularisationSteps
 
int_t numRegularisationSteps
 
PrintLevel printLevel
 
real_t rcondSMin
 
real_t terminationTolerance
 

Detailed Description

User-interface to formulate and solve optimal control problems with multiple objectives.

The class MultiObjectiveAlgorithm serves as a user-interface to formulate and solve optimal control problems with multiple objectives.

Author
Boris Houska, Hans Joachim Ferreau

Definition at line 54 of file multi_objective_algorithm.hpp.

Constructor & Destructor Documentation

BEGIN_NAMESPACE_ACADO MultiObjectiveAlgorithm::MultiObjectiveAlgorithm ( )

Default constructor.

Definition at line 45 of file multi_objective_algorithm.cpp.

MultiObjectiveAlgorithm::MultiObjectiveAlgorithm ( const OCP ocp_)

Default constructor.

Definition at line 64 of file multi_objective_algorithm.cpp.

MultiObjectiveAlgorithm::MultiObjectiveAlgorithm ( const MultiObjectiveAlgorithm arg)

Copy constructor (deep copy).

Definition at line 83 of file multi_objective_algorithm.cpp.

MultiObjectiveAlgorithm::~MultiObjectiveAlgorithm ( )
virtual

Destructor.

Definition at line 106 of file multi_objective_algorithm.cpp.

Member Function Documentation

returnValue MultiObjectiveAlgorithm::evaluateObjectives ( VariablesGrid xd_,
VariablesGrid xa_,
VariablesGrid p_,
VariablesGrid u_,
VariablesGrid w_,
Expression **  arg1 
)
protected

Evaluates the objectives.

Returns
SUCCESSFUL_RETURN

Definition at line 623 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::formulateOCP ( double *  idx,
OCP ocp_,
Expression **  arg 
)
protected

Reformulates the OCP problem for the multi-objective case.

Returns
SUCCESSFUL_RETURN

Definition at line 446 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::getAllAlgebraicStates ( const char *  fileName) const
inline
returnValue MultiObjectiveAlgorithm::getAllControls ( const char *  fileName) const
inline
returnValue MultiObjectiveAlgorithm::getAllDifferentialStates ( const char *  fileName) const
inline
returnValue MultiObjectiveAlgorithm::getAllDisturbances ( const char *  fileName) const
inline
returnValue MultiObjectiveAlgorithm::getAllParameters ( const char *  fileName) const
inline
DVector MultiObjectiveAlgorithm::getNadirVector ( ) const
inline

Returns the nadir vector.

Returns
the nadir vector.
DVector MultiObjectiveAlgorithm::getNormalizationVector ( ) const
inline

Returns the normalisation vector
= difference between nadir vector and utopia vector.

Returns
the normalization vector.
DMatrix MultiObjectiveAlgorithm::getNormalizedPayOffMatrix ( ) const
inline

Returns the normalized pay-off matrix.

Returns
the pay-off matrix.
returnValue MultiObjectiveAlgorithm::getParetoFront ( VariablesGrid paretoFront) const
inline

Returns the Pareto front

Parameters
paretoFrontThe pareto front in form of a
VariablesGrid.

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::getParetoFrontWithFilter ( VariablesGrid paretoFront) const
inline

Returns the filtered Pareto front

Parameters
paretoFrontThe pareto front in form of a
VariablesGrid.

Returns
SUCCESSFUL_RETURN
DMatrix MultiObjectiveAlgorithm::getPayOffMatrix ( ) const
inline

Returns the pay-off matrix.

Returns
the pay-off matrix.
DMatrix MultiObjectiveAlgorithm::getUtopiaPlaneVectors ( ) const
inline

Returns the utopia plane vectors

Returns
the utopia plane vector (stored column-wise).
DVector MultiObjectiveAlgorithm::getUtopiaVector ( ) const
inline

Returns the utopia vector.

Returns
the utopia vector.
DMatrix MultiObjectiveAlgorithm::getWeights ( ) const
inline

Returns the weights

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::getWeights ( const char *  fileName) const
inline

Prints the weights into a file (with pre-ordering)

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::getWeightsWithFilter ( const char *  fileName) const
inline

Prints the weights into a file (with pre-ordering)
and after applying the Pareto filter.

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::initializeNlpSolver ( const OCPiterate _userInit)
protectedvirtual

Reimplemented from OptimizationAlgorithm.

Definition at line 431 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::initializeObjective ( Objective F)
protectedvirtual

Reimplemented from OptimizationAlgorithm.

Definition at line 437 of file multi_objective_algorithm.cpp.

MultiObjectiveAlgorithm & MultiObjectiveAlgorithm::operator= ( const MultiObjectiveAlgorithm arg)

Assignment operator (deep copy).

Definition at line 116 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::printAuxiliaryRoutine ( const char *  fileName,
VariablesGrid x_ 
) const
inlineprotected
returnValue MultiObjectiveAlgorithm::printInfo ( )
inline

Prints general Info (statistics)

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::setParetoFrontDiscretization ( const int &  N_)
inline

Defines the descretization of the Pareto front
(for the 2-dimensional case)

Parameters
Nthe number of descretization intervals

Returns
SUCCESSFUL_RETURN
returnValue MultiObjectiveAlgorithm::setupOptions ( )
protectedvirtual

Sets-up default options.

Returns
SUCCESSFUL_RETURN

Reimplemented from OptimizationAlgorithm.

Definition at line 418 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::solve ( )
virtual

Starts execution.

Reimplemented from OptimizationAlgorithm.

Definition at line 278 of file multi_objective_algorithm.cpp.

returnValue MultiObjectiveAlgorithm::solveSingleObjective ( const int &  number)
virtual

Starts the optimization of one objective specified by the
the number.

Parameters
numberThe number of the objective to be optimized

Returns
SUCCESSFUL_RETURN
or an error message from the optimization
algorithms

Definition at line 142 of file multi_objective_algorithm.cpp.

Member Data Documentation

int MultiObjectiveAlgorithm::count
protected

Definition at line 264 of file multi_objective_algorithm.hpp.

int MultiObjectiveAlgorithm::m
protected

Definition at line 259 of file multi_objective_algorithm.hpp.

int MultiObjectiveAlgorithm::N
protected

Definition at line 258 of file multi_objective_algorithm.hpp.

VariablesGrid* MultiObjectiveAlgorithm::pResults
protected

Definition at line 269 of file multi_objective_algorithm.hpp.

DMatrix MultiObjectiveAlgorithm::result
protected

Definition at line 263 of file multi_objective_algorithm.hpp.

double MultiObjectiveAlgorithm::totalCPUtime
private

Definition at line 277 of file multi_objective_algorithm.hpp.

int MultiObjectiveAlgorithm::totalNumberOfSQPiterations
private

Definition at line 276 of file multi_objective_algorithm.hpp.

VariablesGrid* MultiObjectiveAlgorithm::uResults
protected

Definition at line 270 of file multi_objective_algorithm.hpp.

DMatrix MultiObjectiveAlgorithm::vertices
protected

Definition at line 260 of file multi_objective_algorithm.hpp.

VariablesGrid* MultiObjectiveAlgorithm::wResults
protected

Definition at line 271 of file multi_objective_algorithm.hpp.

VariablesGrid* MultiObjectiveAlgorithm::xaResults
protected

Definition at line 268 of file multi_objective_algorithm.hpp.

VariablesGrid* MultiObjectiveAlgorithm::xResults
protected

Definition at line 267 of file multi_objective_algorithm.hpp.


The documentation for this class was generated from the following files:


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Mon Jun 10 2019 12:35:25