Optimization model interface class. More...
#include <OptimizationModel.hpp>

Public Types | |
| typedef vector< ROCPPConstraintIF_Ptr >::const_iterator | constraintIterator |
| Constant iterator for optimization model constraints. More... | |
| typedef dvMapType::const_iterator | varsIterator |
| Constant iterator for optimization model decision variable map. More... | |
| typedef map< string, ROCPPUnc_Ptr >::const_iterator | uncertaintiesIterator |
| Constant iterator for optimization model uncertain parameter map. More... | |
Public Member Functions | |
| OptimizationModelIF (uint numTimeStages=1) | |
| Constructor of OptimizationModelIF. More... | |
| virtual | ~OptimizationModelIF () |
| Destructor of OptimizationModelIF. More... | |
| constraintIterator | constraintBegin () const |
| Return a constant iterator pointing to the beginning of the constraint vector. More... | |
| constraintIterator | constraintEnd () const |
| Return a constant iterator pointing to the end of the constraint vector. More... | |
| varsIterator | varsBegin () const |
| Return a constant iterator pointing to the beginning of the decision variable map (m_pDVContainer) More... | |
| varsIterator | varsEnd () const |
| Return a constant iterator pointing to the end of the decision variable map (m_pDVContainer) More... | |
| virtual uncertaintiesIterator | uncertaintiesBegin () const |
| Return a constant iterator pointing to the beginning of the uncertain parameter map (m_pUncContainer) More... | |
| virtual uncertaintiesIterator | uncertaintiesEnd () const |
| Return a constant iterator pointing to the end of the uncertain parameter map (m_pUncContainer) More... | |
| map< string, vector< ROCPPConstraintIF_Ptr > >::const_iterator | blockMapBegin () const |
| Return a constant iterator pointing to the begining of the block map. More... | |
| map< string, vector< ROCPPConstraintIF_Ptr > >::const_iterator | blockMapEnd () const |
| Return a constant iterator pointing to the end of the block map. More... | |
| virtual void | checkCompatibility (ROCPPConstraintIF_Ptr pConstraint) const |
| Check compatibility for the given constraint of this optimization model. More... | |
| virtual void | checkCompatibility (ROCPPVarIF_Ptr pVariable) const |
| Check compatibility for the given decision variable of this optimization model. More... | |
| virtual void | checkCompatibility (ROCPPObjectiveIF_Ptr pObjFun) const |
| Check compatibility for the given objective function of this optimization model. More... | |
| void | add_constraint (ROCPPConstraintIF_Ptr pConstraint, string blockNme="main") |
| Add a constraint into the optimization model after setting the constraint attributes. More... | |
| void | add_soc_constraint (ROCPPVarIF_Ptr coneHead, const vector< ROCPPVarIF_Ptr > &otherVars, string blockNme="main") |
| Add a soc constraint into the optimization model. More... | |
| void | add_constraints (vector< ROCPPConstraintIF_Ptr >::const_iterator first, vector< ROCPPConstraintIF_Ptr >::const_iterator last, string blockNme="main") |
| Add constraints into the optimization model. More... | |
| void | add_constraint_uncset (ROCPPConstraintIF_Ptr pUncCstr, string blockNme="main") |
| Add a constraint defining the uncertainty set into the model. More... | |
| void | add_epigraph () |
| Add an epipragh variable as the objective function and an epigraph constraint into this model. More... | |
| virtual void | add_ddu (ROCPPUnc_Ptr pUncertainty, uint firstTimeStageObservable, uint lastTimeStageObservable, const map< uint, double > &obsCosts) |
| virtual void | set_objective (ROCPPObjectiveIF_Ptr pObj) |
| Set the given objective as the objective function of the model. More... | |
| void | set_objective (ROCPPExpr_Ptr objFun) |
| Create an objective function using the given expression and add it to the optimization model. More... | |
| void | set_objective (vector< ROCPPExpr_Ptr > objFuns) |
| Create an objective function using the given expressions and add it to the optimization model. More... | |
| ROCPPOptModelIF_Ptr | replaceTermWithVar (const multimap< string, ROCPPVarIF_Ptr > &term, ROCPPVarIF_Ptr var) const |
| Replace the given term in this model with the given decision variable. More... | |
| virtual void | set_ddu (ROCPPOptModelIF_Ptr pIn) |
| Copy the information in the given model and set it to this one, make sure the information of ddu is kept after clone or reformulation. More... | |
| virtual void | set_ddu (const map< pair< string, uint >, measPair > &dduToMeasMap, const map< string, pair< uint, uint > > &dduStagesObs) |
| Copy the information in the given maps and set it to this one, make sure the information of ddu is kept after clone or reformulation. More... | |
| virtual void | set_objType (uncOptModelObjType pType) |
| map< string, ROCPPVarIF_Ptr > | createVarMap (ROCPPConstraintIF_Ptr pConstraint) |
| Create the variable map for the given constraint Iterate through all variables in the given constraint. More... | |
| map< string, ROCPPVarIF_Ptr > | createVarMap (ROCPPObjectiveIF_Ptr objFun) |
| Create the variable map for the given objective function Iterate through all variables in the given objective function. More... | |
| virtual map< string, ROCPPUnc_Ptr > | createUncMap (ROCPPConstraintIF_Ptr pConstraint) |
| virtual map< string, ROCPPUnc_Ptr > | createUncMap (ROCPPObjectiveIF_Ptr objFun) |
| virtual void | pair_uncertainties (ROCPPUnc_Ptr u1, ROCPPUnc_Ptr u2) |
| virtual void | getExpectation () |
| Convert the objective function to its expectation. More... | |
| virtual size_t | getNumUncertainties () const |
| virtual bool | isDDU (string uncName) const |
| Return true if and only if the given uncertainty has a time of revelation that is decision-dependent. More... | |
| virtual bool | isObservable (string uncName) const |
| Return true if and only if the given uncertainty is observable. More... | |
| bool | isAdaptive (string varName) const |
| Return true if and only if the variable with the given name is adaptive. More... | |
| bool | isInStandardForm () const |
| Return true if and only if this model does not include a norm term. More... | |
| virtual bool | isUncertainOptimizationModel () const |
| Return true if and only if this model is uncertain. More... | |
| virtual bool | isMultiStageOptModelDDID () const |
| Return true if and only if this model is a ddu model. More... | |
| bool | varIsDefined (string varName) const |
| Return true if and only if the decision variable exists in this model. More... | |
| bool | VarInObj (string varName, uint i=1) const |
| Return true if and only if the decision variable exists in the i th objective function of the max term. More... | |
| virtual problemType | getType () const =0 |
| Return the problem type. More... | |
| virtual ROCPPVarIF_Ptr | getMeasVar (string dduncName, uint timeStage) const |
| Return the measurement variable for the given uncertainty and the time stage. More... | |
| ROCPPVarIF_Ptr | getVar (string varName) const |
| Return the variable called varName. More... | |
| virtual ROCPPUnc_Ptr | getUnc (string uncName) const |
| Return the uncertain parameter called uncName. More... | |
| uint | getNumTimesTermAppears (const multimap< string, ROCPPVarIF_Ptr > &term) const |
| Return the number of times the given term in the map appears in this model. More... | |
| void | getAllProductsOf2Variables (map< pair< string, string >, uint > &freqMap, map< pair< string, string >, multimap< string, ROCPPVarIF_Ptr > > &termMap) const |
| Return all products of two variables in this model. More... | |
| ROCPPObjectiveIF_Ptr | getObj () const |
| Return a pointer pointing to the objective function of this problem. More... | |
| virtual map< pair< string, uint >, measPair > | getDDUToMeasMap () const |
| Return a map from decision dependent uncertain parameters to associated measurement variables. More... | |
| virtual map< string, pair< uint, uint > > | getdduStagesObs () const |
| Return a map from decision dependent uncertain parameters to the stages when the parameter can be observed. More... | |
| virtual uint | getFirstStageObservable (string uncName) const |
| Return the first time stage when uncertainty called uncName can be observed. More... | |
| virtual uint | getLastStageObservable (string uncName) const |
| Return the last time stage when uncertainty called uncName can be observed. More... | |
| ROCPPconstdvContainer_Ptr | getDVContainer () const |
| Return the decision variable container (m_dvContainer) of this object. More... | |
| virtual ROCPPuncContainer_Ptr | getUncContainer () const |
| Return the uncertainty container (m_uncContainer) of this object. More... | |
| virtual uncOptModelObjType | getObjType () const |
| Return the objective type. More... | |
| size_t | getNumConstraints () const |
| Return the number of constraints in the model. More... | |
| uint | getNumTimeStages () const |
| Return the time stage of the model. More... | |
| uint | getNumContVars () const |
| Return the number of real-valued decision variables in this term. More... | |
| uint | getNumIntVars () const |
| Return the number of integer decision variables in this term. More... | |
| uint | getNumBoolVars () const |
| Return the number of boolen decision variables in this term. More... | |
| uint | getNumAdaptiveContVars () const |
| Return the number of adaptive real-valued decision variables in this term. More... | |
| uint | getNumAdaptiveVars () const |
| Return the number of adaptive decision variables in this term. More... | |
| size_t | getNumVars () const |
| Return the number of decision variables in this term. More... | |
| bool | hasNonlinearities () const |
| Return true if and only if there is a product between two decision variables in this optimization model. More... | |
| virtual bool | hasRectangularUncertaintySet () const |
| Return true if the problem has rectangular uncertainty set. More... | |
| virtual bool | hasRealVarsInUncertaintySet () const |
| virtual bool | hasDecisionDependentUncertaintySet () const |
| virtual ROCPPOptModelIF_Ptr | Clone () const |
| Clone this problem. More... | |
| virtual void | WriteToFile (string folderName, string fileName) const |
Protected Member Functions | |
| virtual void | add_var (ROCPPVarIF_Ptr pVariable) |
| Add the given variable into the dvContainer of this model. More... | |
| virtual void | add_vars (ROCPPconstdvContainer_Ptr pDVcontainer) |
| Add the variable in the given container into the dvContainer of this model. More... | |
| void | add_ddu_obj (ROCPPVarIF_Ptr pVar, double cost) |
| Add the information discovery cost to the objective model. More... | |
| void | push_constraint (ROCPPConstraintIF_Ptr pConstraint) |
| Push the constraint back into the vector of constraints of this model. More... | |
| ptrdiff_t | getConstraintIdx (constraintIterator pConstraintIt) const |
| Get index of the given constraint in the m_mapCstrIdxToUncertaintySet map. More... | |
Protected Attributes | |
| uint | m_numTimeStages |
| Length of planning horizon of this model. More... | |
| vector< ROCPPConstraintIF_Ptr > | m_uncertaintySet |
| Vector collecting the uncertainty set constraints of this model. More... | |
| ROCPPuncContainer_Ptr | m_pUncContainer |
| Uncertain parameter container of this model. More... | |
| ROCPPuncContainer_Ptr | m_dduContainer |
| Container of decision dependent uncertain parameters in this model. More... | |
| ROCPPuncContainer_Ptr | m_nondduContainer |
| Container of non decision dependent uncertain parameters in this model. More... | |
| map< string, measPair > | m_measVars |
| Map from measurement varaibles to measurement pairs. More... | |
| map< pair< string, uint >, measPair > | m_dduToMeasMap |
| Map from pair of uncertain parameter name and time stage to measurement pair. More... | |
| map< string, pair< uint, uint > > | m_dduStagesObs |
| Map from name of the uncertain parameter to the first and last times when it can be observed. More... | |
| map< string, vector< ROCPPConstraintIF_Ptr > > | m_mapBlockConstraints |
| Map from block name to vector of problem constraint indices. More... | |
Private Attributes | |
| ROCPPdvContainer_Ptr | m_pDVContainer |
| Decision variable container of this model. More... | |
| vector< ROCPPConstraintIF_Ptr > | m_constraints |
| Vector of constraints in this model. More... | |
| ROCPPObjectiveIF_Ptr | m_pObj |
| Objective function of this model. More... | |
Optimization model interface class.
| typedef vector<ROCPPConstraintIF_Ptr>::const_iterator OptimizationModelIF::constraintIterator |
Constant iterator for optimization model constraints.
| typedef map<string, ROCPPUnc_Ptr>::const_iterator OptimizationModelIF::uncertaintiesIterator |
Constant iterator for optimization model uncertain parameter map.
| typedef dvMapType::const_iterator OptimizationModelIF::varsIterator |
Constant iterator for optimization model decision variable map.
| OptimizationModelIF::OptimizationModelIF | ( | uint | numTimeStages = 1 | ) |
Constructor of OptimizationModelIF.
| numTimeStages | Planning horizon of this model: maximum time when any decision is made or any uncertain parameter is revealed |
|
inlinevirtual |
Destructor of OptimizationModelIF.
| void OptimizationModelIF::add_constraint | ( | ROCPPConstraintIF_Ptr | pConstraint, |
| string | blockNme = "main" |
||
| ) |
Add a constraint into the optimization model after setting the constraint attributes.
| void OptimizationModelIF::add_constraint_uncset | ( | ROCPPConstraintIF_Ptr | pUncCstr, |
| string | blockNme = "main" |
||
| ) |
Add a constraint defining the uncertainty set into the model.
| void OptimizationModelIF::add_constraints | ( | vector< ROCPPConstraintIF_Ptr >::const_iterator | first, |
| vector< ROCPPConstraintIF_Ptr >::const_iterator | last, | ||
| string | blockNme = "main" |
||
| ) |
Add constraints into the optimization model.
|
virtual |
Reimplemented in MultiStageOptModelDDID.
|
protected |
Add the information discovery cost to the objective model.
| void OptimizationModelIF::add_epigraph | ( | ) |
Add an epipragh variable as the objective function and an epigraph constraint into this model.
| void OptimizationModelIF::add_soc_constraint | ( | ROCPPVarIF_Ptr | coneHead, |
| const vector< ROCPPVarIF_Ptr > & | otherVars, | ||
| string | blockNme = "main" |
||
| ) |
Add a soc constraint into the optimization model.
| coneHead | Cone head decision variable |
| otherVars | Other variables |
|
protectedvirtual |
Add the given variable into the dvContainer of this model.
|
protectedvirtual |
Add the variable in the given container into the dvContainer of this model.
|
inline |
Return a constant iterator pointing to the begining of the block map.
|
inline |
Return a constant iterator pointing to the end of the block map.
|
virtual |
Check compatibility for the given constraint of this optimization model.
Reimplemented in CPLEXMISOCP, Bilinear_MISOCP, MISOCP, UncertainOptimizationModel, and DeterministicOptimizationModel.
|
virtual |
Check compatibility for the given objective function of this optimization model.
Reimplemented in CPLEXMISOCP, Bilinear_MISOCP, MISOCP, UncertainOptimizationModel, and DeterministicOptimizationModel.
|
virtual |
Check compatibility for the given decision variable of this optimization model.
Reimplemented in CPLEXMISOCP, Bilinear_MISOCP, MISOCP, UncertainSingleStageOptimizationModel, and DeterministicOptimizationModel.
|
virtual |
Clone this problem.
Reimplemented in MultiStageOptModelDDID.
|
inline |
Return a constant iterator pointing to the beginning of the constraint vector.
|
inline |
Return a constant iterator pointing to the end of the constraint vector.
|
virtual |
Reimplemented in UncertainOptimizationModel.
|
virtual |
Reimplemented in UncertainOptimizationModel.
| map< string, ROCPPVarIF_Ptr > OptimizationModelIF::createVarMap | ( | ROCPPConstraintIF_Ptr | pConstraint | ) |
Create the variable map for the given constraint Iterate through all variables in the given constraint.
If a variable with the same name exists in the model, use the old one. If a variables with the same name does not exist, create a new variable and add it into the model.
| map< string, ROCPPVarIF_Ptr > OptimizationModelIF::createVarMap | ( | ROCPPObjectiveIF_Ptr | objFun | ) |
Create the variable map for the given objective function Iterate through all variables in the given objective function.
If a variable with the same name exists in the model, use the old one. If a variables with the same name does not exist, create a new variable and add it into the model.
| void OptimizationModelIF::getAllProductsOf2Variables | ( | map< pair< string, string >, uint > & | freqMap, |
| map< pair< string, string >, multimap< string, ROCPPVarIF_Ptr > > & | termMap | ||
| ) | const |
Return all products of two variables in this model.
|
protected |
Get index of the given constraint in the m_mapCstrIdxToUncertaintySet map.
Return a map from decision dependent uncertain parameters to the stages when the parameter can be observed.
Reimplemented in MultiStageOptModelDDID.
Return a map from decision dependent uncertain parameters to associated measurement variables.
Reimplemented in MultiStageOptModelDDID.
|
inline |
Return the decision variable container (m_dvContainer) of this object.
|
virtual |
Convert the objective function to its expectation.
Reimplemented in UncertainOptimizationModel.
|
virtual |
Return the first time stage when uncertainty called uncName can be observed.
Reimplemented in MultiStageOptModelDDID, and UncertainOptimizationModel.
|
virtual |
Return the last time stage when uncertainty called uncName can be observed.
Reimplemented in MultiStageOptModelDDID, and UncertainOptimizationModel.
|
virtual |
Return the measurement variable for the given uncertainty and the time stage.
Reimplemented in MultiStageOptModelDDID.
| uint OptimizationModelIF::getNumAdaptiveContVars | ( | ) | const |
Return the number of adaptive real-valued decision variables in this term.
| uint OptimizationModelIF::getNumAdaptiveVars | ( | ) | const |
Return the number of adaptive decision variables in this term.
| uint OptimizationModelIF::getNumBoolVars | ( | ) | const |
Return the number of boolen decision variables in this term.
|
inline |
Return the number of constraints in the model.
| uint OptimizationModelIF::getNumContVars | ( | ) | const |
Return the number of real-valued decision variables in this term.
| uint OptimizationModelIF::getNumIntVars | ( | ) | const |
Return the number of integer decision variables in this term.
|
inline |
Return the time stage of the model.
| uint OptimizationModelIF::getNumTimesTermAppears | ( | const multimap< string, ROCPPVarIF_Ptr > & | term | ) | const |
Return the number of times the given term in the map appears in this model.
|
virtual |
Reimplemented in UncertainOptimizationModel.
| size_t OptimizationModelIF::getNumVars | ( | ) | const |
Return the number of decision variables in this term.
|
inline |
Return a pointer pointing to the objective function of this problem.
|
virtual |
Return the objective type.
Reimplemented in UncertainOptimizationModel.
|
pure virtual |
Return the problem type.
Implemented in MultiStageOptModelDDID, MultiStageOptModelExoID, UncertainMultiStageOptimizationModel, CPLEXMISOCP, Bilinear_MISOCP, MISOCP, UncertainSingleStageOptimizationModel, UncertainOptimizationModel, and DeterministicOptimizationModel.
|
virtual |
Return the uncertain parameter called uncName.
Reimplemented in UncertainOptimizationModel.
|
virtual |
Return the uncertainty container (m_uncContainer) of this object.
Reimplemented in UncertainOptimizationModel.
| ROCPPVarIF_Ptr OptimizationModelIF::getVar | ( | string | varName | ) | const |
Return the variable called varName.
|
inlinevirtual |
Reimplemented in UncertainOptimizationModel.
| bool OptimizationModelIF::hasNonlinearities | ( | ) | const |
Return true if and only if there is a product between two decision variables in this optimization model.
|
inlinevirtual |
Reimplemented in UncertainOptimizationModel.
|
virtual |
Return true if the problem has rectangular uncertainty set.
Reimplemented in UncertainOptimizationModel.
| bool OptimizationModelIF::isAdaptive | ( | string | varName | ) | const |
Return true if and only if the variable with the given name is adaptive.
|
inlinevirtual |
Return true if and only if the given uncertainty has a time of revelation that is decision-dependent.
Reimplemented in MultiStageOptModelDDID.
| bool OptimizationModelIF::isInStandardForm | ( | ) | const |
Return true if and only if this model does not include a norm term.
|
inlinevirtual |
Return true if and only if this model is a ddu model.
Reimplemented in MultiStageOptModelDDID.
|
virtual |
Return true if and only if the given uncertainty is observable.
Reimplemented in UncertainOptimizationModel.
|
inlinevirtual |
Return true if and only if this model is uncertain.
Reimplemented in UncertainOptimizationModel.
|
virtual |
Reimplemented in MultiStageOptModelDDID.
|
protected |
Push the constraint back into the vector of constraints of this model.
| ROCPPOptModelIF_Ptr OptimizationModelIF::replaceTermWithVar | ( | const multimap< string, ROCPPVarIF_Ptr > & | term, |
| ROCPPVarIF_Ptr | var | ||
| ) | const |
Replace the given term in this model with the given decision variable.
|
virtual |
Copy the information in the given maps and set it to this one, make sure the information of ddu is kept after clone or reformulation.
Reimplemented in MultiStageOptModelDDID.
|
virtual |
Copy the information in the given model and set it to this one, make sure the information of ddu is kept after clone or reformulation.
Reimplemented in MultiStageOptModelDDID.
| void OptimizationModelIF::set_objective | ( | ROCPPExpr_Ptr | objFun | ) |
Create an objective function using the given expression and add it to the optimization model.
|
virtual |
Set the given objective as the objective function of the model.
Reimplemented in MultiStageOptModelDDID.
| void OptimizationModelIF::set_objective | ( | vector< ROCPPExpr_Ptr > | objFuns | ) |
Create an objective function using the given expressions and add it to the optimization model.
|
virtual |
Reimplemented in UncertainOptimizationModel.
|
virtual |
Return a constant iterator pointing to the beginning of the uncertain parameter map (m_pUncContainer)
Reimplemented in UncertainOptimizationModel.
|
virtual |
Return a constant iterator pointing to the end of the uncertain parameter map (m_pUncContainer)
Reimplemented in UncertainOptimizationModel.
| bool OptimizationModelIF::VarInObj | ( | string | varName, |
| uint | i = 1 |
||
| ) | const |
Return true if and only if the decision variable exists in the i th objective function of the max term.
| bool OptimizationModelIF::varIsDefined | ( | string | varName | ) | const |
Return true if and only if the decision variable exists in this model.
| OptimizationModelIF::varsIterator OptimizationModelIF::varsBegin | ( | ) | const |
Return a constant iterator pointing to the beginning of the decision variable map (m_pDVContainer)
| OptimizationModelIF::varsIterator OptimizationModelIF::varsEnd | ( | ) | const |
Return a constant iterator pointing to the end of the decision variable map (m_pDVContainer)
|
virtual |
Reimplemented in MultiStageOptModelDDID.
|
private |
Vector of constraints in this model.
|
protected |
Container of decision dependent uncertain parameters in this model.
Map from name of the uncertain parameter to the first and last times when it can be observed.
Map from pair of uncertain parameter name and time stage to measurement pair.
|
protected |
Map from block name to vector of problem constraint indices.
|
protected |
Map from measurement varaibles to measurement pairs.
|
protected |
Container of non decision dependent uncertain parameters in this model.
|
protected |
Length of planning horizon of this model.
|
private |
Decision variable container of this model.
|
private |
Objective function of this model.
|
protected |
Uncertain parameter container of this model.
|
protected |
Vector collecting the uncertainty set constraints of this model.