ACADO Toolkit  1.2.0beta
Toolkit for Automatic Control and Dynamic Optimization
Public Member Functions | Protected Member Functions | Protected Attributes

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]

List of all members.

Public Member Functions

 MultiObjectiveAlgorithm ()
 Default constructor.
 MultiObjectiveAlgorithm (const OCP &ocp_)
 Default constructor.
 MultiObjectiveAlgorithm (const MultiObjectiveAlgorithm &arg)
 Copy constructor (deep copy).
virtual ~MultiObjectiveAlgorithm ()
 Destructor.
MultiObjectiveAlgorithmoperator= (const MultiObjectiveAlgorithm &arg)
 Assignment operator (deep copy).
virtual returnValue solve ()
 Starts execution.
virtual returnValue solveSingleObjective (const int &number)
 Starts the optimization of one objective specified by the
the number.
returnValue setParetoFrontDiscretization (const int &N_)
 Defines the descretization of the Pareto front
(for the 2-dimensional case)

.
returnValue getParetoFront (VariablesGrid &paretoFront) const
 Returns the Pareto front

.
returnValue getParetoFrontWithFilter (VariablesGrid &paretoFront) const
 Returns the filtered Pareto front

.
Matrix getPayOffMatrix () const
 Returns the pay-off matrix.
Matrix getNormalizedPayOffMatrix () const
 Returns the normalized pay-off matrix.
Vector getUtopiaVector () const
 Returns the utopia vector.
Vector getNadirVector () const
 Returns the nadir vector.
Vector getNormalizationVector () const
 Returns the normalisation vector
= difference between nadir vector and utopia vector.
Matrix getUtopiaPlaneVectors () const
 Returns the utopia plane vectors

.
returnValue printInfo ()
 Prints general Info (statistics)

.
Matrix getWeights () const
 Returns the weights

.
returnValue getWeights (const char *fileName) const
 Prints the weights into a file (with pre-ordering)

.
returnValue getWeightsWithFilter (const char *fileName) const
 Prints the weights into a file (with pre-ordering)
and after applying the Pareto filter.
returnValue getAllDifferentialStates (const char *fileName) const
returnValue getAllAlgebraicStates (const char *fileName) const
returnValue getAllParameters (const char *fileName) const
returnValue getAllControls (const char *fileName) const
returnValue getAllDisturbances (const char *fileName) const
virtual returnValue init ()
 Initializes the (internal) optimization algorithm part of the RealTimeAlgorithm.
returnValue initializeDifferentialStates (const char *fileName, BooleanType autoinit=BT_FALSE)
 Initialization of the optimization variables.
returnValue initializeDifferentialStates (const VariablesGrid &xd_init_, BooleanType autoinit=BT_FALSE)
returnValue initializeAlgebraicStates (const char *fileName, BooleanType autoinit=BT_FALSE)
returnValue initializeAlgebraicStates (const VariablesGrid &xa_init_, BooleanType autoinit=BT_FALSE)
returnValue initializeParameters (const char *fileName)
returnValue initializeParameters (const VariablesGrid &u_init_)
returnValue initializeControls (const char *fileName)
returnValue initializeControls (const VariablesGrid &p_init_)
returnValue initializeDisturbances (const char *fileName)
returnValue initializeDisturbances (const VariablesGrid &w_init_)
returnValue simulateStatesForInitialization ()
 Use this call to overwrite all states by a single shooting initialization.
returnValue getDifferentialStates (VariablesGrid &xd_) const
returnValue getDifferentialStates (const char *fileName) const
returnValue getAlgebraicStates (VariablesGrid &xa_) const
returnValue getAlgebraicStates (const char *fileName) const
returnValue getParameters (VariablesGrid &u_) const
returnValue getParameters (Vector &u_) const
returnValue getParameters (const char *fileName) const
returnValue getControls (VariablesGrid &p_) const
returnValue getControls (const char *fileName) const
returnValue getDisturbances (VariablesGrid &w_) const
returnValue getDisturbances (const char *fileName) const
double getObjectiveValue (const char *fileName) const
double getObjectiveValue () const
returnValue getSensitivitiesX (BlockMatrix &_sens) const
returnValue getSensitivitiesXA (BlockMatrix &_sens) const
returnValue getSensitivitiesP (BlockMatrix &_sens) const
returnValue getSensitivitiesU (BlockMatrix &_sens) const
returnValue getSensitivitiesW (BlockMatrix &_sens) const
virtual uint getNX () const
 Returns number of differential states.
virtual uint getNXA () const
 Returns number of algebraic states.
virtual uint getNP () const
 Returns number of parameters.
virtual uint getNU () const
 Returns number of controls.
virtual uint getNW () const
 Returns number of disturbances.
double getStartTime () const
double getEndTime () const
virtual int operator<< (PlotWindow &_window)
 Adds a window to the plot collection.
virtual int operator<< (LogRecord &_record)
 Adds a record to the log collection.
virtual int addPlotWindow (PlotWindow &_window)
 Adds a window to the plot collection.
returnValue addOptionsList ()
 Adds an additional OptionsList to internal array.
returnValue get (OptionsName name, int &value) const
 Returns value of an existing option item of integer type.
returnValue get (OptionsName name, double &value) const
 Returns value of an existing option item of double type.
returnValue get (uint idx, OptionsName name, int &value) const
 Returns value of an existing option item of integer type within the option list of given index.
returnValue get (uint idx, OptionsName name, double &value) const
 Returns value of an existing option item of double type within the option list of given index.
returnValue set (OptionsName name, int value)
 Sets value of an existing option item of integer type to a given value.
returnValue set (OptionsName name, double value)
 Sets value of an existing option item of double type to a given value.
returnValue set (uint idx, OptionsName name, int value)
 Sets value of an existing option item of integer type within the option list of given index to a given value.
returnValue set (uint idx, OptionsName name, double value)
 Sets value of an existing option item of double type within the option list of given index to a given value.
returnValue setOptions (const Options &arg)
 Assigns a given Options object to this object.
returnValue setOptions (uint idx, const Options &arg)
 Assigns the option list with given index of a given Options object to option list with given index of this object.
Options getOptions (uint idx) const
 Returns an Options object containing exactly the option list with given index.
uint getNumOptionsLists () const
 Returns total number of option lists.
returnValue printOptionsList () const
 Prints a list of all available options of all option lists.
returnValue printOptionsList (uint idx) const
 Prints a list of all available options of option list with given index.
int addLogRecord (LogRecord &record)
 Adds a record to the log collection.
returnValue getLogRecord (uint idx, LogRecord &_record) const
 Returns the record with given index from the log collection.
returnValue getLogRecord (LogRecord &_record) const
 Returns the record with certain index from the log collection.
returnValue updateLogRecord (LogRecord &_record) const
 Updates all items with the record given as argument.
returnValue getAll (LogName _name, MatrixVariablesGrid &values) const
 Gets all numerical values at all time instants of the item with given name.
returnValue getFirst (LogName _name, Matrix &firstValue) const
 Gets numerical value at first time instant of the item with given name.
returnValue getFirst (LogName _name, VariablesGrid &firstValue) const
 Gets numerical value at first time instant of the item with given name (converts internally used Matrix into VariablesGrid).
returnValue getLast (LogName _name, Matrix &lastValue) const
 Gets numerical value at last time instant of the item with given name.
returnValue getLast (LogName _name, VariablesGrid &lastValue) const
 Gets numerical value at last time instant of the item with given name (converts internally used Matrix into VariablesGrid).
uint getNumLogRecords () const
 Returns number of records contained in the log collection.
returnValue printLoggingInfo () const
 Prints information on all records and their items on screen.
returnValue printNumDoubles () const
returnValue getPlotWindow (uint idx, PlotWindow &_window) const
 Returns the window with given index from the plot collection.
returnValue getPlotWindow (PlotWindow &_window) const
 Returns the window with certain index from the plot collection.
virtual returnValue plot (PlotFrequency _frequency=PLOT_IN_ANY_CASE)
 Plots all windows of the plot collection, each one into a new figure.
virtual returnValue replot (PlotFrequency _frequency=PLOT_IN_ANY_CASE)
 Plots all windows of the plot collection, each one into the corresponding existing figure, if possible.
uint getNumPlotWindows () const
 Returns number of windows contained in the plot collection.

Protected Member Functions

virtual returnValue setupOptions ()
 Sets-up default options.
virtual returnValue initializeNlpSolver (const OCPiterate &_userInit)
virtual returnValue initializeObjective (Objective *F)
returnValue formulateOCP (double *idx, OCP *ocp_, Expression **arg)
 Reformulates the OCP problem for the multi-objective case.
returnValue evaluateObjectives (VariablesGrid &xd_, VariablesGrid &xa_, VariablesGrid &p_, VariablesGrid &u_, VariablesGrid &w_, Expression **arg1)
 Evaluates the objectives.
returnValue printAuxiliaryRoutine (const char *fileName, VariablesGrid *x_) const
returnValue init (UserInteraction *_userIteraction)
 Initializes everything.
virtual returnValue setupLogging ()
 Sets-up default logging information.
virtual returnValue allocateNlpSolver (Objective *F, DynamicDiscretization *G, Constraint *H)
returnValue clear ()
BooleanType isLinearQuadratic (Objective *F, DynamicDiscretization *G, Constraint *H) const
virtual returnValue extractOCPdata (Objective **objective, DifferentialEquation ***differentialEquation, Constraint **constraint, Grid &unionGrid)
virtual returnValue setupObjective (Objective *objective, DifferentialEquation **differentialEquation, Constraint *constraint, Grid unionGrid)
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 determineDimensions (Objective *const _objective, DifferentialEquation **const _differentialEquation, Constraint *const _constraint, uint &_nx, uint &_nxa, uint &_np, uint &_nu, uint &_nw) const
virtual returnValue initializeOCPiterate (Constraint *const _constraint, const Grid &_unionGrid, uint nx, uint nxa, uint np, uint nu, uint nw)
virtual returnValue getPlotDataFromMemberLoggings (PlotWindow &_window) const
 Copies all collected logging information required to plot a given window.
BlockStatus getStatus () const
 Gets current status of user interface.
returnValue setStatus (BlockStatus _status)
 Sets status of user interface.
returnValue clearOptionsList ()
 Clears all option lists from array.
BooleanType haveOptionsChanged () const
 Determines whether options of at least one option list have been modified.
BooleanType haveOptionsChanged (uint idx) const
 Determines whether options of option list with given index have been modified.
returnValue declareOptionsUnchanged ()
 Declares all options of all option lists to be unchanged.
returnValue declareOptionsUnchanged (uint idx)
 Declares all options of option list with given index to be unchanged.
returnValue addOption (OptionsName name, int value)
 Add an option item with a given integer default value to the all option lists.
returnValue addOption (OptionsName name, double value)
 Add an option item with a given double default value to the all option lists.
returnValue addOption (uint idx, OptionsName name, int value)
 Add an option item with a given integer default value to option list with given index.
returnValue addOption (uint idx, OptionsName name, double value)
 Add an option item with a given double default value to option list with given index.

Protected Attributes

int N
int m
Matrix vertices
Matrix result
int count
VariablesGridxResults
VariablesGridxaResults
VariablesGridpResults
VariablesGriduResults
VariablesGridwResults
NLPsolvernlpSolver
OCPocp
OCPiterate iter
OCPiterate userInit
BlockStatus status
 Current status of the user interface, see documentation of BlockStatus for details.
OptionsList ** optionsList
 Array consisting of OptionsLists.
uint nOptionsList
 Total number of OptionsLists.
LogCollection logCollection
 Log collection containing a singly-linked list of log records.
int logIdx
 Index of a certain log record to be optionally used within derived classes.
PlotCollection plotCollection
 Plot collection containing a singly-linked list of plot windows.

Detailed Description

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

Author:
Boris Houska, Hans Joachim Ferreau

Constructor & Destructor Documentation


Member Function Documentation

int Logging::addLogRecord ( LogRecord record) [inherited]
Parameters:
[in]recordRecord to be added.
Returns:
>= 0: index of added record,
-RET_LOG_COLLECTION_CORRUPTED

References LogCollection::addLogRecord(), and Logging::logCollection.

Referenced by AlgorithmicBase::addLogRecord(), UserInteraction::addPlotWindow(), Logging::operator<<(), IntegrationAlgorithm::setupLogging(), Controller::setupLogging(), and Process::setupLogging().

returnValue Options::addOption ( OptionsName  name,
int  value 
) [protected, inherited]
returnValue Options::addOption ( OptionsName  name,
double  value 
) [protected, inherited]
Parameters:
[in]nameName of new option item.
[in]valueDefault value of new option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_ALREADY_EXISTS,
RET_OPTIONS_LIST_CORRUPTED

References OptionsList::add(), Options::getNumOptionsLists(), Options::optionsList, SUCCESSFUL_RETURN, and uint.

returnValue Options::addOption ( uint  idx,
OptionsName  name,
int  value 
) [protected, inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of new option item.
[in]valueDefault value of new option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_ALREADY_EXISTS,
RET_OPTIONS_LIST_CORRUPTED,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, OptionsList::add(), Options::getNumOptionsLists(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

returnValue Options::addOption ( uint  idx,
OptionsName  name,
double  value 
) [protected, inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of new option item.
[in]valueDefault value of new option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_ALREADY_EXISTS,
RET_OPTIONS_LIST_CORRUPTED,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, OptionsList::add(), Options::getNumOptionsLists(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

Returns:
SUCCESSFUL_RETURN

References Options::nOptionsList, Options::optionsList, and SUCCESSFUL_RETURN.

Referenced by AlgorithmicBase::addOptionsList().

int UserInteraction::addPlotWindow ( PlotWindow _window) [virtual, inherited]

This function is overloaded here in order to add the plotDataRecord required to plot the window to the log collection.

Parameters:
[in]_windowWindow to be added.
Returns:
>= 0: index of added record,
-RET_PLOT_COLLECTION_CORRUPTED

Reimplemented from Plotting.

References Logging::addLogRecord(), PlotWindow::getPlotDataRecord(), and PlotWindow::setPlotDataRecord().

Referenced by UserInteraction::operator<<().

returnValue OptimizationAlgorithm::allocateNlpSolver ( Objective F,
DynamicDiscretization G,
Constraint H 
) [protected, virtual, inherited]
returnValue OptimizationAlgorithmBase::clear ( ) [protected, inherited]
returnValue Options::clearOptionsList ( ) [protected, inherited]
returnValue Options::declareOptionsUnchanged ( ) [protected, inherited]
returnValue Options::declareOptionsUnchanged ( uint  idx) [protected, inherited]
Parameters:
[in]idxIndex of option list.
Returns:
SUCCESSFUL_RETURN

References ACADOERROR, OptionsList::declareOptionsUnchanged(), Options::getNumOptionsLists(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

returnValue OptimizationAlgorithmBase::determineDimensions ( Objective *const  _objective,
DifferentialEquation **const  _differentialEquation,
Constraint *const  _constraint,
uint _nx,
uint _nxa,
uint _np,
uint _nu,
uint _nw 
) const [protected, virtual, inherited]
returnValue OptimizationAlgorithmBase::extractOCPdata ( Objective **  objective,
DifferentialEquation ***  differentialEquation,
Constraint **  constraint,
Grid unionGrid 
) [protected, virtual, inherited]
returnValue MultiObjectiveAlgorithm::formulateOCP ( double *  idx,
OCP ocp_,
Expression **  arg 
) [protected]
returnValue Options::get ( OptionsName  name,
int &  value 
) const [inherited]
returnValue Options::get ( OptionsName  name,
double &  value 
) const [inherited]
Parameters:
[in]nameName of option item.
[out]valueValue of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS

References OptionsList::get(), and Options::optionsList.

returnValue Options::get ( uint  idx,
OptionsName  name,
int &  value 
) const [inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of option item.
[out]valueValue of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, OptionsList::get(), Options::getNumOptionsLists(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

returnValue Options::get ( uint  idx,
OptionsName  name,
double &  value 
) const [inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of option item.
[out]valueValue of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, OptionsList::get(), Options::getNumOptionsLists(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

returnValue OptimizationAlgorithmBase::getAlgebraicStates ( const char *  fileName) const [inherited]
BEGIN_NAMESPACE_ACADO returnValue Logging::getAll ( LogName  _name,
MatrixVariablesGrid values 
) const [inline, inherited]

If this item exists in more than one record, the first one is choosen as they are expected to have identical values anyhow.

Parameters:
[in]_nameInternal name of item.
[out]valuesAll numerical values at all time instants of given item.
Returns:
SUCCESSFUL_RETURN,
RET_LOG_ENTRY_DOESNT_EXIST

References ACADOERROR, BT_TRUE, LogCollection::getAll(), LogCollection::hasNonEmptyItem(), Logging::logCollection, and RET_LOG_ENTRY_DOESNT_EXIST.

Referenced by AlgorithmicBase::getAll(), SimulationEnvironment::getProcessAlgebraicStates(), SimulationEnvironment::getProcessDifferentialStates(), and SimulationEnvironment::getProcessIntermediateStates().

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]
returnValue OptimizationAlgorithmBase::getControls ( const char *  fileName) const [inherited]
returnValue OptimizationAlgorithmBase::getDifferentialStates ( const char *  fileName) const [inherited]
returnValue OptimizationAlgorithmBase::getDisturbances ( const char *  fileName) const [inherited]
double OptimizationAlgorithmBase::getEndTime ( ) const [inherited]
returnValue Logging::getFirst ( LogName  _name,
Matrix firstValue 
) const [inline, inherited]

If this item exists in more than one record, the first one is choosen as they are expected to have identical values anyhow.

Parameters:
[in]_nameInternal name of item.
[out]firstValueNumerical value at first time instant of given item.
Returns:
SUCCESSFUL_RETURN,
RET_LOG_ENTRY_DOESNT_EXIST

References ACADOERROR, BT_TRUE, LogCollection::getFirst(), LogCollection::hasNonEmptyItem(), Logging::logCollection, and RET_LOG_ENTRY_DOESNT_EXIST.

Referenced by AlgorithmicBase::getFirst().

returnValue Logging::getFirst ( LogName  _name,
VariablesGrid firstValue 
) const [inline, inherited]

If this item exists in more than one record, the first one is choosen as they are expected to have identical values anyhow.

Parameters:
[in]_nameInternal name of item.
[out]firstValueNumerical value at first time instant of given item.
Returns:
SUCCESSFUL_RETURN,
RET_LOG_ENTRY_DOESNT_EXIST

References ACADOERROR, BT_TRUE, LogCollection::getFirst(), LogCollection::hasNonEmptyItem(), Logging::logCollection, and RET_LOG_ENTRY_DOESNT_EXIST.

returnValue Logging::getLast ( LogName  _name,
Matrix lastValue 
) const [inline, inherited]

If this item exists in more than one record, the first one is choosen as they are expected to have identical values anyhow.

Parameters:
[in]_nameInternal name of item.
[out]lastValueNumerical value at last time instant of given item.
Returns:
SUCCESSFUL_RETURN,
RET_LOG_ENTRY_DOESNT_EXIST

References ACADOERROR, BT_TRUE, LogCollection::getLast(), LogCollection::hasNonEmptyItem(), Logging::logCollection, and RET_LOG_ENTRY_DOESNT_EXIST.

Referenced by AlgorithmicBase::getLast().

returnValue Logging::getLast ( LogName  _name,
VariablesGrid lastValue 
) const [inline, inherited]

If this item exists in more than one record, the first one is choosen as they are expected to have identical values anyhow.

Parameters:
[in]_nameInternal name of item.
[out]lastValueNumerical value at last time instant of given item.
Returns:
SUCCESSFUL_RETURN,
RET_LOG_ENTRY_DOESNT_EXIST

References ACADOERROR, BT_TRUE, LogCollection::getLast(), LogCollection::hasNonEmptyItem(), Logging::logCollection, and RET_LOG_ENTRY_DOESNT_EXIST.

returnValue Logging::getLogRecord ( uint  idx,
LogRecord _record 
) const [inherited]
Parameters:
[in]idxIndex of desired record.
[out]_recordDesired record.
Returns:
SUCCESSFUL_RETURN,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, Logging::getNumLogRecords(), Logging::logCollection, RET_INDEX_OUT_OF_BOUNDS, and SUCCESSFUL_RETURN.

Referenced by Logging::getLogRecord().

returnValue Logging::getLogRecord ( LogRecord _record) const [inherited]

This index is not provided when calling the function, but rather obtained by using the alias index of the record. If the record is no alias record, the error RET_INDEX_OUT_OF_BOUNDS is thrown.

Parameters:
[out]_recordDesired record.
Returns:
SUCCESSFUL_RETURN,
RET_INDEX_OUT_OF_BOUNDS

References LogRecord::getAliasIdx(), and Logging::getLogRecord().



Returns:
the nadir vector.

References acadoMax(), m, max(), and vertices.

Referenced by getNormalizationVector().



Returns:
the normalization vector.

References getNadirVector(), and getUtopiaVector().

Referenced by formulateOCP(), and getNormalizedPayOffMatrix().



Returns:
the pay-off matrix.

References getNormalizationVector(), getPayOffMatrix(), and m.

Referenced by formulateOCP(), and getUtopiaPlaneVectors().

uint OptimizationAlgorithmBase::getNP ( ) const [virtual, inherited]
uint OptimizationAlgorithmBase::getNU ( ) const [virtual, inherited]
uint Logging::getNumLogRecords ( ) const [inherited]
Returns:
Number of records

References LogCollection::getNumLogRecords(), and Logging::logCollection.

Referenced by Logging::getLogRecord().

uint Plotting::getNumPlotWindows ( ) const [inline, inherited]
Returns:
Number of windows

References PlotCollection::getNumPlotWindows(), and Plotting::plotCollection.

Referenced by Plotting::getPlotWindow().

uint OptimizationAlgorithmBase::getNW ( ) const [virtual, inherited]
Returns:
Number of disturbances

Reimplemented in RealTimeAlgorithm.

References OCPiterate::getNW(), and OptimizationAlgorithmBase::iter.

Referenced by OptimizationAlgorithmBase::determineDimensions().

uint OptimizationAlgorithmBase::getNX ( ) const [virtual, inherited]
Returns:
Number of differential states

Reimplemented in RealTimeAlgorithm.

References OCPiterate::getNX(), and OptimizationAlgorithmBase::iter.

Referenced by OptimizationAlgorithmBase::determineDimensions().

uint OptimizationAlgorithmBase::getNXA ( ) const [virtual, inherited]
Returns:
Number of algebraic states

Reimplemented in RealTimeAlgorithm.

References OCPiterate::getNXA(), and OptimizationAlgorithmBase::iter.

Referenced by OptimizationAlgorithmBase::determineDimensions().

double OptimizationAlgorithmBase::getObjectiveValue ( const char *  fileName) const [inherited]
double OptimizationAlgorithmBase::getObjectiveValue ( ) const [inherited]
Options Options::getOptions ( uint  idx) const [inherited]
Parameters:
[in]idxIndex of option list.
Returns:
Options object containing exactly the option list with given index

References ACADOERROR, Options::getNumOptionsLists(), Options::Options(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

Referenced by AlgorithmicBase::getOptions().

returnValue OptimizationAlgorithmBase::getParameters ( const char *  fileName) const [inherited]
Parameters:
paretoFrontThe pareto front in form of a
VariablesGrid.

Returns:
SUCCESSFUL_RETURN

References ACADOERROR, count, VectorspaceElement::getDim(), VariablesGrid::init(), m, result, RET_MEMBER_NOT_INITIALISED, and SUCCESSFUL_RETURN.

Parameters:
paretoFrontThe pareto front in form of a
VariablesGrid.

Returns:
SUCCESSFUL_RETURN

References ACADOERROR, count, EPS, VectorspaceElement::getDim(), VariablesGrid::init(), m, result, RET_MEMBER_NOT_INITIALISED, and SUCCESSFUL_RETURN.



Returns:
the pay-off matrix.

References m, and vertices.

Referenced by formulateOCP(), and getNormalizedPayOffMatrix().

returnValue UserInteraction::getPlotDataFromMemberLoggings ( PlotWindow _window) const [protected, virtual, inherited]

This function is overloaded within the UserInterface class to syncronize the logging information collected elsewhere within the algorithm with the one stored within the given window for plotting.

Parameters:
[in]_windowWindow to be plotted.
Returns:
SUCCESSFUL_RETURN

Reimplemented from Plotting.

References PlotWindow::getPlotDataRecord(), PlotWindow::setPlotDataRecord(), SUCCESSFUL_RETURN, and Logging::updateLogRecord().

returnValue Plotting::getPlotWindow ( uint  idx,
PlotWindow _window 
) const [inline, inherited]
Parameters:
[in]idxIndex of desired window.
[out]_windowDesired window.
Returns:
SUCCESSFUL_RETURN,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, Plotting::getNumPlotWindows(), Plotting::getPlotDataFromMemberLoggings(), Plotting::plotCollection, and RET_INDEX_OUT_OF_BOUNDS.

Referenced by Plotting::getPlotWindow(), Plotting::plot(), and Plotting::replot().

returnValue Plotting::getPlotWindow ( PlotWindow _window) const [inline, inherited]

This index is not provided when calling the function, but rather obtained by using the alias index of the window. If the window is no alias window, the error RET_INDEX_OUT_OF_BOUNDS is thrown.

Parameters:
[out]_windowDesired window.
Returns:
SUCCESSFUL_RETURN,
RET_INDEX_OUT_OF_BOUNDS

References PlotWindow::getAliasIdx(), and Plotting::getPlotWindow().

double OptimizationAlgorithmBase::getStartTime ( ) const [inherited]
BlockStatus UserInteraction::getStatus ( ) const [protected, inherited]
Returns:
the utopia plane vector (stored column-wise).

References getNormalizedPayOffMatrix(), and m.

Referenced by formulateOCP().



Returns:
the utopia vector.

References m, and vertices.

Referenced by formulateOCP(), and getNormalizationVector().

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

References getWeights(), and SUCCESSFUL_RETURN.

returnValue MultiObjectiveAlgorithm::getWeightsWithFilter ( const char *  fileName) const [inline]
BooleanType Options::haveOptionsChanged ( ) const [protected, inherited]
BooleanType Options::haveOptionsChanged ( uint  idx) const [protected, inherited]
Parameters:
[in]idxIndex of option list.
Returns:
BT_TRUE iff options have been modified,
BT_FALSE otherwise

References ACADOERROR, BT_FALSE, Options::getNumOptionsLists(), OptionsList::haveOptionsChanged(), Options::optionsList, and RET_INDEX_OUT_OF_BOUNDS.

returnValue OptimizationAlgorithm::init ( ) [virtual, inherited]
returnValue OptimizationAlgorithmBase::init ( UserInteraction _userIteraction) [protected, inherited]
returnValue OptimizationAlgorithmBase::initializeAlgebraicStates ( const char *  fileName,
BooleanType  autoinit = BT_FALSE 
) [inherited]
returnValue OptimizationAlgorithmBase::initializeControls ( const char *  fileName) [inherited]
returnValue OptimizationAlgorithmBase::initializeDifferentialStates ( const char *  fileName,
BooleanType  autoinit = BT_FALSE 
) [inherited]
returnValue OptimizationAlgorithmBase::initializeDisturbances ( const char *  fileName) [inherited]
returnValue MultiObjectiveAlgorithm::initializeNlpSolver ( const OCPiterate _userInit) [protected, virtual]

Reimplemented from OptimizationAlgorithm.

Reimplemented from OptimizationAlgorithm.

References SUCCESSFUL_RETURN.

returnValue OptimizationAlgorithmBase::initializeOCPiterate ( Constraint *const  _constraint,
const Grid _unionGrid,
uint  nx,
uint  nxa,
uint  np,
uint  nu,
uint  nw 
) [protected, virtual, inherited]
returnValue OptimizationAlgorithmBase::initializeParameters ( const char *  fileName) [inherited]
int UserInteraction::operator<< ( PlotWindow _window) [virtual, inherited]

This function is overloaded here in order to add the plotDataRecord required to plot the window to the log collection.

Parameters:
[in]_windowWindow to be added.
Note:
This function is doing the same as the corresponding addPlotWindow member function and is introduced for syntax reasons only.
Returns:
>= 0: index of added record,
-RET_PLOT_COLLECTION_CORRUPTED

Reimplemented from Plotting.

References UserInteraction::addPlotWindow().

Referenced by UserInteraction::operator<<().

int UserInteraction::operator<< ( LogRecord _record) [virtual, inherited]
Parameters:
[in]recordRecord to be added.
Note:
This function tunnels the corresponding function of the Logging class. It is introduced to avoid syntax ambiguity only.
Returns:
>= 0: index of added record,
-RET_LOG_COLLECTION_CORRUPTED

Reimplemented from Logging.

References UserInteraction::operator<<().

MultiObjectiveAlgorithm & MultiObjectiveAlgorithm::operator= ( const MultiObjectiveAlgorithm arg)
returnValue Plotting::plot ( PlotFrequency  _frequency = PLOT_IN_ANY_CASE) [virtual, inherited]
Parameters:
[in]_frequencyFrequency determining at which time instants the window is to be plotted.
Returns:
SUCCESSFUL_RETURN

References ACADOERROR, PlotCollection::first, PlotWindow::getNext(), Plotting::getPlotWindow(), PlotWindow::plot(), PLOT_NEVER, Plotting::plotCollection, RET_PLOTTING_FAILED, and SUCCESSFUL_RETURN.

Referenced by IntegrationAlgorithm::evaluate(), and AlgorithmicBase::plot().

returnValue MultiObjectiveAlgorithm::printAuxiliaryRoutine ( const char *  fileName,
VariablesGrid x_ 
) const [inline, protected]
Returns:
SUCCESSFUL_RETURN

References acadoPrintf(), and SUCCESSFUL_RETURN.

returnValue Logging::printLoggingInfo ( ) const [inherited]
returnValue Logging::printNumDoubles ( ) const [inherited]
returnValue Options::printOptionsList ( ) const [inherited]
returnValue Options::printOptionsList ( uint  idx) const [inherited]
Parameters:
[in]idxIndex of option list.
Returns:
SUCCESSFUL_RETURN

References ACADOERROR, Options::getNumOptionsLists(), Options::optionsList, OptionsList::printOptionsList(), and RET_INDEX_OUT_OF_BOUNDS.

returnValue Plotting::replot ( PlotFrequency  _frequency = PLOT_IN_ANY_CASE) [virtual, inherited]
Parameters:
[in]_frequencyFrequency determining at which time instants the window is to be plotted.
Returns:
SUCCESSFUL_RETURN

Reimplemented in Process.

References ACADOERROR, PlotCollection::first, PlotWindow::getNext(), Plotting::getPlotWindow(), PLOT_NEVER, Plotting::plotCollection, PlotWindow::replot(), RET_PLOTTING_FAILED, and SUCCESSFUL_RETURN.

Referenced by AlgorithmicBase::replot(), and RealTimeAlgorithm::solve().

returnValue Options::set ( OptionsName  name,
int  value 
) [inherited]
Parameters:
[in]nameName of option item.
[in]valueNew value of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_OPTIONS_LIST_CORRUPTED

References Options::optionsList, and OptionsList::set().

Referenced by AlgorithmicBase::set().

returnValue Options::set ( OptionsName  name,
double  value 
) [inherited]
Parameters:
[in]nameName of option item.
[in]valueNew value of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_OPTIONS_LIST_CORRUPTED

References Options::optionsList, and OptionsList::set().

returnValue Options::set ( uint  idx,
OptionsName  name,
int  value 
) [inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of option item.
[in]valueNew value of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_OPTIONS_LIST_CORRUPTED,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, Options::getNumOptionsLists(), Options::optionsList, RET_INDEX_OUT_OF_BOUNDS, and OptionsList::set().

returnValue Options::set ( uint  idx,
OptionsName  name,
double  value 
) [inherited]
Parameters:
[in]idxIndex of option list.
[in]nameName of option item.
[in]valueNew value of option.
Returns:
SUCCESSFUL_RETURN,
RET_OPTION_DOESNT_EXISTS,
RET_OPTIONS_LIST_CORRUPTED,
RET_INDEX_OUT_OF_BOUNDS

References ACADOERROR, Options::getNumOptionsLists(), Options::optionsList, RET_INDEX_OUT_OF_BOUNDS, and OptionsList::set().

returnValue Options::setOptions ( const Options arg) [inherited]
Parameters:
[in]argNew Options object to be assigned.
Note:
This routine is introduced only for convenience and is equivalent to the assignment operator.
Returns:
SUCCESSFUL_RETURN

References Options::operator=(), and SUCCESSFUL_RETURN.

Referenced by AlgorithmicBase::setOptions().

returnValue Options::setOptions ( uint  idx,
const Options arg 
) [inherited]
Parameters:
[in]idxIndex of option list.
[in]argOptions object containing the option list to be assigned.
Returns:
SUCCESSFUL_RETURN

References ACADOERROR, Options::getNumOptionsLists(), Options::optionsList, RET_INDEX_OUT_OF_BOUNDS, and SUCCESSFUL_RETURN.

Parameters:
Nthe number of descretization intervals

Returns:
SUCCESSFUL_RETURN

References N, and SUCCESSFUL_RETURN.

returnValue UserInteraction::setStatus ( BlockStatus  _status) [protected, inherited]
Parameters:
[in]_statusNew status of user interface
Returns:
SUCCESSFUL_RETURN

References UserInteraction::status, and SUCCESSFUL_RETURN.

Referenced by Controller::Controller(), DynamicEstimator::DynamicEstimator(), Estimator::Estimator(), FeedforwardLaw::FeedforwardLaw(), KalmanFilter::init(), OptimizationAlgorithm::init(), DynamicEstimator::init(), Estimator::init(), LinearStateFeedback::init(), FeedforwardLaw::init(), RealTimeAlgorithm::init(), TransferDevice::init(), PIDcontroller::init(), SimulationEnvironment::init(), Controller::init(), Process::init(), Process::initializeStartValues(), IntegrationAlgorithm::IntegrationAlgorithm(), KalmanFilter::KalmanFilter(), LinearStateFeedback::LinearStateFeedback(), OCPexport::OCPexport(), UserInteraction::operator=(), OptimizationAlgorithm::OptimizationAlgorithm(), RealTimeAlgorithm::performFeedbackStep(), RealTimeAlgorithm::performPreparationStep(), PIDcontroller::PIDcontroller(), Process::Process(), RealTimeAlgorithm::RealTimeAlgorithm(), Process::setActuator(), Controller::setControlLaw(), SimulationEnvironment::setController(), Process::setDynamicSystem(), Controller::setEstimator(), SimulationEnvironment::setProcess(), Process::setProcessDisturbance(), Controller::setReferenceTrajectory(), Process::setSensor(), OCPexport::setup(), SIMexport::setup(), SIMexport::SIMexport(), SimulationEnvironment::SimulationEnvironment(), solve(), solveSingleObjective(), TransferDevice::TransferDevice(), and UserInteraction::UserInteraction().

returnValue OptimizationAlgorithmBase::setupDifferentialEquation ( Objective objective,
DifferentialEquation **  differentialEquation,
Constraint constraint,
Grid  unionGrid 
) [protected, virtual, inherited]
returnValue OptimizationAlgorithmBase::setupDynamicDiscretization ( UserInteraction _userIteraction,
Objective objective,
DifferentialEquation **  differentialEquation,
Constraint constraint,
Grid  unionGrid,
DynamicDiscretization **  dynamicDiscretization 
) [protected, virtual, inherited]
returnValue OptimizationAlgorithm::setupLogging ( ) [protected, virtual, inherited]
Returns:
SUCCESSFUL_RETURN

Reimplemented from Logging.

References SUCCESSFUL_RETURN.

Referenced by OptimizationAlgorithm::OptimizationAlgorithm().

returnValue OptimizationAlgorithmBase::setupObjective ( Objective objective,
DifferentialEquation **  differentialEquation,
Constraint constraint,
Grid  unionGrid 
) [protected, virtual, inherited]

This function takes the initial state and controls and overwrite all states apart from the first one by simulation.

References MatrixVariablesGrid::enableAutoInit(), SUCCESSFUL_RETURN, OptimizationAlgorithmBase::userInit, OCPiterate::x, and OCPiterate::xa.

returnValue Logging::updateLogRecord ( LogRecord _record) const [inherited]

In doing so, it is checked for each item whether it is contained within one of of the records of the collection; and if so, the numerical values are copied into the argument record.

Parameters:
[in,out]_recordRecord to be updated
Returns:
SUCCESSFUL_RETURN

References Logging::logCollection, and LogCollection::updateLogRecord().

Referenced by UserInteraction::getPlotDataFromMemberLoggings(), and SimulationEnvironment::getSampledProcessOutput().


Member Data Documentation

LogCollection Logging::logCollection [protected, inherited]
int Logging::logIdx [protected, inherited]
int MultiObjectiveAlgorithm::m [protected]
int MultiObjectiveAlgorithm::N [protected]
uint Options::nOptionsList [protected, inherited]
OCP* OptimizationAlgorithmBase::ocp [protected, inherited]
OptionsList** Options::optionsList [protected, inherited]
PlotCollection Plotting::plotCollection [protected, inherited]
BlockStatus UserInteraction::status [protected, inherited]

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines