Robustify engine class (automatically dualizes all semi-infinite constraints) More...
#include <RobustifyEngine.hpp>


Public Member Functions | |
| RobustifyEngine (uint dualVarsCounter=0, string dualNme_suff="", string dualNme="dual") | |
| ~RobustifyEngine () | |
| ROCPPBilinMISOCP_Ptr | robustify (ROCPPUncSSOptModel_Ptr pIn, bool feasible=true) |
| Robusity the given model. More... | |
| void | calculateUncertaintySetMatrices (ROCPPUncSSOptModel_Ptr const pIn) |
| Calculate the coefficient map for uncertainties and the coefficient map for deterministic part. More... | |
| void | createDualVars (ROCPPBilinMISOCP_Ptr pOut, ROCPPConstraintIF_Ptr pCstr, vector< vector< ROCPPVarIF_Ptr > > &dualVars, bool feasible=true) |
| Create and store the dual variables in the given constraint and add duality constraint into output model. More... | |
| void | robustifyConstraint (ROCPPConstraintIF_Ptr pConstraint, ROCPPUncSSOptModel_Ptr const pIn, ROCPPBilinMISOCP_Ptr pOut, bool feasible=true) |
| Robusify the given constraint. More... | |
| uint | getDualVarsCnt () const |
| Get the number of dual variables. More... | |
| ROCPPOptModelIF_Ptr | Reformulate (ROCPPOptModelIF_Ptr pIn) |
| bool | isApplicable (ROCPPOptModelIF_Ptr pIn) const |
| string | getName () const |
Public Member Functions inherited from ReformulationStrategyIF | |
| ReformulationStrategyIF () | |
| ~ReformulationStrategyIF () | |
Private Attributes | |
| string | m_dualNme |
| Name of the dual variable. More... | |
| string | m_dualNme_suff |
| uint | m_dualVarsCounter |
| Number of the dual variabls. More... | |
| bool | m_uncertaintySetMatricesCalculated |
| Indicate whether the uncertainty set matriced are calculated or not. More... | |
| map< uint, vector< vector< vector< pair< bool, ROCPPExpr_Ptr > > > > > | m_EMvec |
| Map from time-stage to -> dimensions are constraint defining the us, number of linear expressions in that constraint, number of total uncertainties in the model. More... | |
| map< uint, vector< vector< ROCPPExpr_Ptr > > > | m_EVvec |
| Map from time-stage -> dimensions are constraint defining the us number, number of linear expressions in that constraint. More... | |
| map< pair< uint, uint >, bool > | m_isEqCstr |
| Map from pair( time-stage, constraint num) to bool = true if constraint is equality constraint. More... | |
Robustify engine class (automatically dualizes all semi-infinite constraints)
|
inline |
|
inline |
| void RobustifyEngine::calculateUncertaintySetMatrices | ( | ROCPPUncSSOptModel_Ptr const | pIn | ) |
Calculate the coefficient map for uncertainties and the coefficient map for deterministic part.
| void RobustifyEngine::createDualVars | ( | ROCPPBilinMISOCP_Ptr | pOut, |
| ROCPPConstraintIF_Ptr | pCstr, | ||
| vector< vector< ROCPPVarIF_Ptr > > & | dualVars, | ||
| bool | feasible = true |
||
| ) |
Create and store the dual variables in the given constraint and add duality constraint into output model.
| pOut | Optimization model after dualization |
| pCstr | Constraint to be robustified |
| dualVars | Store dual variable for each linear expression(outside and in the norm term) in each constraint defining uncertainty set and store it in this vector |
| feasible | Indicate whether the given constraint is feasible or not, only set to false when we dualize an infeasible problem |
|
inline |
Get the number of dual variables.
|
inlinevirtual |
Implements ReformulationStrategyIF.
|
virtual |
Implements ReformulationStrategyIF.
|
virtual |
Implements ReformulationStrategyIF.
| ROCPPBilinMISOCP_Ptr RobustifyEngine::robustify | ( | ROCPPUncSSOptModel_Ptr | pIn, |
| bool | feasible = true |
||
| ) |
Robusity the given model.
| pIn | Model to be robusified |
| feasible | Indicate whether the given constraint is feasible or not, only set to false when we dualize an infeasible problem |
| void RobustifyEngine::robustifyConstraint | ( | ROCPPConstraintIF_Ptr | pConstraint, |
| ROCPPUncSSOptModel_Ptr const | pIn, | ||
| ROCPPBilinMISOCP_Ptr | pOut, | ||
| bool | feasible = true |
||
| ) |
Robusify the given constraint.
| pConstraint | Constraint to be robustified |
| pIn | Model to be robusified |
| feasible | Indicate whether the given constraint is feasible or not, only set to false when we dualize an infeasible problem |
|
private |
Name of the dual variable.
|
private |
|
private |
Number of the dual variabls.
|
private |
Map from time-stage to -> dimensions are constraint defining the us, number of linear expressions in that constraint, number of total uncertainties in the model.
|
private |
Map from time-stage -> dimensions are constraint defining the us number, number of linear expressions in that constraint.
Map from pair( time-stage, constraint num) to bool = true if constraint is equality constraint.
|
private |
Indicate whether the uncertainty set matriced are calculated or not.