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

CPLEX MISOCP model. More...

#include <OptimizationModel.hpp>

Inheritance diagram for CPLEXMISOCP:
Collaboration diagram for CPLEXMISOCP:

Public Member Functions

 CPLEXMISOCP (ROCPPMISOCP_Ptr pIn, string baseVarNme="s")
 Constructor of CPLEXMISOCP. More...
 
 ~CPLEXMISOCP ()
 Destructor of CPLEXMISOCP. More...
 
void checkCompatibility (ROCPPConstraintIF_Ptr pConstraint) const
 
void checkCompatibility (ROCPPVarIF_Ptr pVariable) const
 
void checkCompatibility (ROCPPObjectiveIF_Ptr pObjFun) const
 
void add_cplexsoc_constraint (ROCPPVarIF_Ptr coneHead, const vector< ROCPPVarIF_Ptr > &otherVars)
 Create product term for the cone head variable and call function CPLEXMISOCP::add_cplexsoc_constraint(ROCPPProdTerm_Ptr, const vector<ROCPPProdTerm_Ptr>) More...
 
void add_cplexsoc_constraint (ROCPPProdTerm_Ptr coneHead, const vector< ROCPPProdTerm_Ptr > &otherVars)
 Add constraint in the form of: cone head^2 >= sum non cone head ^2. More...
 
problemType getType () const
 Return the problem type. More...
 
- Public Member Functions inherited from DeterministicOptimizationModel
 DeterministicOptimizationModel ()
 Constructor of the DeterministicOptimizationModel class. More...
 
 ~DeterministicOptimizationModel ()
 Destructor of the DeterministicOptimizationModel class. More...
 
- 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...
 
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...
 
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_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 map< string, ROCPPUnc_PtrcreateUncMap (ROCPPConstraintIF_Ptr pConstraint)
 
virtual map< string, ROCPPUnc_PtrcreateUncMap (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 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 >, 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...
 
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
 

Private Attributes

string m_baseVarNme
 Base variable name. More...
 

Additional Inherited Members

- 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 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 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

CPLEX MISOCP model.

Constructor & Destructor Documentation

◆ CPLEXMISOCP()

CPLEXMISOCP::CPLEXMISOCP ( ROCPPMISOCP_Ptr  pIn,
string  baseVarNme = "s" 
)

Constructor of CPLEXMISOCP.

Turn all constraints in the given model to the from of: cone head^2 >= \sum non cone head ^2 and create a CLPEXMISCOP problem

Parameters
pInInput model
baseVarNmeBase name of the variables

◆ ~CPLEXMISOCP()

CPLEXMISOCP::~CPLEXMISOCP ( )
inline

Destructor of CPLEXMISOCP.

Member Function Documentation

◆ add_cplexsoc_constraint() [1/2]

void CPLEXMISOCP::add_cplexsoc_constraint ( ROCPPProdTerm_Ptr  coneHead,
const vector< ROCPPProdTerm_Ptr > &  otherVars 
)

Add constraint in the form of: cone head^2 >= sum non cone head ^2.

◆ add_cplexsoc_constraint() [2/2]

void CPLEXMISOCP::add_cplexsoc_constraint ( ROCPPVarIF_Ptr  coneHead,
const vector< ROCPPVarIF_Ptr > &  otherVars 
)

Create product term for the cone head variable and call function CPLEXMISOCP::add_cplexsoc_constraint(ROCPPProdTerm_Ptr, const vector<ROCPPProdTerm_Ptr>)

◆ checkCompatibility() [1/3]

void CPLEXMISOCP::checkCompatibility ( ROCPPConstraintIF_Ptr  pConstraint) const
virtual
Warning
No uncertainty is allowed in this model

Reimplemented from DeterministicOptimizationModel.

◆ checkCompatibility() [2/3]

void CPLEXMISOCP::checkCompatibility ( ROCPPObjectiveIF_Ptr  pObjFun) const
virtual
Warning
No adaptive variable and no uncertainty is allowed in this model

Reimplemented from DeterministicOptimizationModel.

◆ checkCompatibility() [3/3]

void CPLEXMISOCP::checkCompatibility ( ROCPPVarIF_Ptr  pVariable) const
virtual
Warning
No adaptive decision variable is allowed in this model

Reimplemented from DeterministicOptimizationModel.

◆ getType()

problemType CPLEXMISOCP::getType ( ) const
inlinevirtual

Return the problem type.

Reimplemented from DeterministicOptimizationModel.

Member Data Documentation

◆ m_baseVarNme

string CPLEXMISOCP::m_baseVarNme
private

Base variable name.