ROC++  v1.2
Automatic Robust Optimization in C++
UncertainMultiStageOptimizationModel Class Reference

Multi stage uncertain optimization model. More...

#include <OptimizationModel.hpp>

Inheritance diagram for UncertainMultiStageOptimizationModel:
Collaboration diagram for UncertainMultiStageOptimizationModel:

Public Member Functions

 UncertainMultiStageOptimizationModel (uint numTimeStages=1, uncOptModelObjType objType=robust)
 Constructor of UncertainSingleStageOptimizationModel. More...
 
 ~UncertainMultiStageOptimizationModel ()
 Destructor of UncertainSingleStageOptimizationModel. More...
 
virtual problemType getType () const
 Return the problem type. More...
 
- Public Member Functions inherited from UncertainOptimizationModel
 UncertainOptimizationModel (uint numTimeStages=1, uncOptModelObjType objType=robust)
 Constructor of the UncertainOptimizationModel class. More...
 
virtual ~UncertainOptimizationModel ()
 Destructor of the UncertainOptimizationModel class. More...
 
uncertaintiesIterator uncertaintiesBegin () const
 Return a constant iterator pointing to the beginning of the uncertain parameter container. More...
 
uncertaintiesIterator uncertaintiesEnd () const
 Return a constant iterator pointing to the end of the uncertain parameter container. More...
 
uncertaintySetIterator uncertaintySetBegin () const
 Return a constant iterator pointing to the beginning of the uncertainty set. More...
 
uncertaintySetIterator uncertaintySetEnd () const
 Return a constant iterator pointing to the end of the uncertainty set. More...
 
uncertaintySetIterator uncertaintySetBegin (string blockNme) const
 Return a constant iterator pointing to the beginning of the uncertainty set for this constraint if the constraint does not have its own uncertainty set, return a pointer to the beginning of the overall uncertainty set. More...
 
uncertaintySetIterator uncertaintySetEnd (string blockNme) const
 Return a constant iterator pointing to the end of the uncertainty set for this constraint if the constraint does not have its own uncertainty set, return a pointer to the end of the overall uncertainty set. More...
 
virtual void checkCompatibility (ROCPPConstraintIF_Ptr pConstraint) const
 
virtual void checkCompatibility (ROCPPObjectiveIF_Ptr pObjFun) const
 Check compatibility for the given objective function of this optimization model. More...
 
virtual map< string, ROCPPUnc_PtrcreateUncMap (ROCPPConstraintIF_Ptr pConstraint)
 Create the uncertain parameter map for the given constraint Iterate through all uncertainties in the given constraint. More...
 
map< string, ROCPPUnc_PtrcreateUncMap (ROCPPObjectiveIF_Ptr objFun)
 Create the uncertainty map for the given objective function Iterate through all uncertainties in the given objective function. More...
 
void set_objType (uncOptModelObjType pType)
 
void getExpectation ()
 Convert the objective function to its expectation. More...
 
size_t getNumUncertainties () const
 Return the number of the uncertain parameters in this model. More...
 
uint getAlphabeticalLocation (ROCPPUnc_Ptr pUncertainty) const
 Return the location of the given uncertain parameter in the uncContainer of this model. More...
 
uint getObservableAlphabeticalLocation (ROCPPUnc_Ptr pUncertainty) const
 Return the location of the given uncertain parameter in the container of the observable uncertainties of this model. More...
 
virtual uint getFirstStageObservable (string uncName) const
 Return 1 for non-ddu model. More...
 
virtual uint getLastStageObservable (string uncName) const
 Return the time stage for non-ddu model. More...
 
void getVarsAffectingUncSet (dvContainer &dvs)
 Return the variables affecting the uncertainty set in the dvContainer. More...
 
size_t getNumUncertaintySetConstraints () const
 Return the number of uncertainty set constraints. More...
 
size_t getNumProblemConstraints () const
 Return the number of problem constraints (constraints that do not define the uncertainty set) More...
 
size_t getNumObsUncertainties () const
 Return the number of observable uncertain parameters. More...
 
bool uncIsDefined (string uncName) const
 Return true if and only if the uncertain parameter is defined in this model. More...
 
bool isUncertainOptimizationModel () const
 Return true if and only if this model is uncertain. More...
 
bool isObservable (string uncName) const
 Return true if and only if the given uncertainty is observable. More...
 
bool hasRectangularUncertaintySet () const
 Return true if the problem has rectangular uncertainty set. More...
 
bool hasRealVarsInUncertaintySet () const
 
bool hasDecisionDependentUncertaintySet () const
 
uncOptModelObjType getObjType () const
 Return the objective type. More...
 
ROCPPUnc_Ptr getUnc (string uncName) const
 Return the uncertain parameter called uncName. More...
 
ROCPPuncContainer_Ptr getUncContainer () const
 Return the uncertainty container (m_uncContainer) of this object. More...
 
ROCPPuncContainer_Ptr getObsUncContainer () const
 
- Public Member Functions inherited from OptimizationModelIF
 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...
 
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 (ROCPPVarIF_Ptr pVariable) const
 Check compatibility for the given decision variable 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...
 
map< string, ROCPPVarIF_PtrcreateVarMap (ROCPPConstraintIF_Ptr pConstraint)
 Create the variable map for the given constraint Iterate through all variables in the given constraint. More...
 
map< string, ROCPPVarIF_PtrcreateVarMap (ROCPPObjectiveIF_Ptr objFun)
 Create the variable map for the given objective function Iterate through all variables in the given objective function. More...
 
virtual void pair_uncertainties (ROCPPUnc_Ptr u1, ROCPPUnc_Ptr u2)
 
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...
 
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 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 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...
 
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 >, measPairgetDDUToMeasMap () 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...
 
ROCPPconstdvContainer_Ptr getDVContainer () const
 Return the decision variable container (m_dvContainer) of this object. 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 ROCPPOptModelIF_Ptr Clone () const
 Clone this problem. More...
 
virtual void WriteToFile (string folderName, string fileName) const
 

Additional Inherited Members

- Public Types inherited from UncertainOptimizationModel
typedef vector< ROCPPConstraintIF_Ptr >::const_iterator uncertaintySetIterator
 Const iterator in the uncertainty set constraints of this model. More...
 
- Public Types inherited from OptimizationModelIF
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...
 
- Protected Member Functions inherited from UncertainOptimizationModel
virtual void add_uncertainty (ROCPPUnc_Ptr pUnc)
 Add uncertainty to the m_pUncContainer of this modeel. More...
 
void add_uncertainties (ROCPPconstuncContainer_Ptr pUncContainer)
 Add uncertainties to the m_pUncContainer of this model. More...
 
- Protected Member Functions inherited from OptimizationModelIF
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 inherited from UncertainOptimizationModel
uncOptModelObjType m_objType
 Uncertain objective type of this model. More...
 
- Protected Attributes inherited from OptimizationModelIF
uint m_numTimeStages
 Length of planning horizon of this model. More...
 
vector< ROCPPConstraintIF_Ptrm_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, measPairm_measVars
 Map from measurement varaibles to measurement pairs. More...
 
map< pair< string, uint >, measPairm_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...
 

Detailed Description

Multi stage uncertain optimization model.

Constructor & Destructor Documentation

◆ UncertainMultiStageOptimizationModel()

UncertainMultiStageOptimizationModel::UncertainMultiStageOptimizationModel ( uint  numTimeStages = 1,
uncOptModelObjType  objType = robust 
)
inline

◆ ~UncertainMultiStageOptimizationModel()

UncertainMultiStageOptimizationModel::~UncertainMultiStageOptimizationModel ( )
inline

Member Function Documentation

◆ getType()

virtual problemType UncertainMultiStageOptimizationModel::getType ( ) const
inlinevirtual

Return the problem type.

Reimplemented from UncertainOptimizationModel.

Reimplemented in MultiStageOptModelDDID, and MultiStageOptModelExoID.