4 #ifndef SmiScnModel_HPP
5 #define SmiScnModel_HPP
83 int writeSmps(
const char *name,
bool winFileExtensions =
false,
bool strictFormat =
true);
152 std::vector<int>labels,
double prob,
200 std::vector<int>labels,
double prob,
469 #endif //#define SmiScnModel_HPP
OsiSolverInterface * osiStoch_
constructs LP and QP data arrays for Deterministic Equivalent
void releaseSolver()
constructs LP and QP data arrays for Deterministic Equivalent
double * dcup_
constructs LP and QP data arrays for Deterministic Equivalent
double * getRowDuals(SmiScenarioIndex ns, int *length)
constructs LP and QP data arrays for Deterministic Equivalent
void setModelProb(double p)
void setQuadraticSolver(ClpModel *clp)
constructs LP and QP data arrays for Deterministic Equivalent
void operator()(SmiScnNode *node)
int nels_
constructs LP and QP data arrays for Deterministic Equivalent
int * getIntegerIndices()
int nrow_
constructs LP and QP data arrays for Deterministic Equivalent
Base class for message handling.
double * dels_
constructs LP and QP data arrays for Deterministic Equivalent
int * maxNelsPerScenInStage
constructs LP and QP data arrays for Deterministic Equivalent
~SmiScnModel()
constructs LP and QP data arrays for Deterministic Equivalent
static SmiCoreCombineReplace * Instance()
SmiScnModel: COIN-SMI Scenario Model Class.
SmiScenarioIndex getNumScenarios()
constructs LP and QP data arrays for Deterministic Equivalent
SmiScenarioIndex generateScenario(SmiCoreData *core, CoinPackedMatrix *matrix, CoinPackedVector *dclo, CoinPackedVector *dcup, CoinPackedVector *dobj, CoinPackedVector *drlo, CoinPackedVector *drup, SmiStageIndex branch, SmiScenarioIndex anc, double prob, SmiCoreCombineRule *r=SmiCoreCombineReplace::Instance())
generate scenario with ancestor/branch node identification
SmiScenarioIndex getScenarioIndex()
ClpModel * getQuadraticSolver()
constructs LP and QP data arrays for Deterministic Equivalent
int * rstrt_
constructs LP and QP data arrays for Deterministic Equivalent
void processDiscreteDistributionIntoScenarios(SmiDiscreteDistribution *s, bool test=false)
generate scenarios from discrete distribution
int * qstart_
constructs LP and QP data arrays for Deterministic Equivalent
double getEEVValue(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent
std::pair< double, double * > solveEV(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent
SmiMessage * messages_
constructs LP and QP data arrays for Deterministic Equivalent
void addNode(SmiScnNode *node, bool notDetEq=false)
constructs LP and QP data arrays for Deterministic Equivalent
double * getColValue(const double *d, SmiScenarioIndex ns, int *length)
constructs LP and QP data arrays for Deterministic Equivalent
Sparse Matrix Base Class.
SmiScnNode * getLeafNode(SmiScenarioIndex i)
constructs LP and QP data arrays for Deterministic Equivalent
SmiTreeNode< T > * getRoot()
Get root node.
void addIntIndice(int indice)
constructs LP and QP data arrays for Deterministic Equivalent
void releaseCore()
constructs LP and QP data arrays for Deterministic Equivalent
This deals with Clp messages (as against Osi messages etc)
SmiScenarioTree< SmiScnNode * > smiTree_
constructs LP and QP data arrays for Deterministic Equivalent
std::vector< std::pair< double, double > > solveWS(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent
void setParent(SmiScnNode *g)
void setModelProb(double p)
generate scenarios from discrete distribution
int * indx_
constructs LP and QP data arrays for Deterministic Equivalent
int readSmps(const char *name, SmiCoreCombineRule *r=NULL)
int binaryLen
constructs LP and QP data arrays for Deterministic Equivalent
double getObjectiveValue(SmiScenarioIndex ns)
constructs LP and QP data arrays for Deterministic Equivalent
std::vector< int > getIntIndices()
constructs LP and QP data arrays for Deterministic Equivalent
void setOsiSolverHandle(OsiSolverInterface &osi)
constructs LP and QP data arrays for Deterministic Equivalent
double * qdels_
constructs LP and QP data arrays for Deterministic Equivalent
OsiSolverInterface * loadOsiSolverData()
constructs LP and QP data arrays for Deterministic Equivalent
double totalProb_
constructs LP and QP data arrays for Deterministic Equivalent
int * getIntegerInd()
constructs LP and QP data arrays for Deterministic Equivalent
double * getRowSolution(SmiScenarioIndex ns, int *length)
constructs LP and QP data arrays for Deterministic Equivalent
int ncol_
constructs LP and QP data arrays for Deterministic Equivalent
void setOsiSolverHandle(OsiSolverInterface *osi)
constructs LP and QP data arrays for Deterministic Equivalent
SmiTreeNode< T > * getLeaf(int scn)
Get leaf node.
ClpModel * loadQuadraticSolverData()
constructs LP and QP data arrays for Deterministic Equivalent
int writeSmps(const char *name, bool winFileExtensions=false, bool strictFormat=true)
double * getColSolution(SmiScenarioIndex ns, int *length)
constructs LP and QP data arrays for Deterministic Equivalent
SmiScnNode * getRootNode()
constructs LP and QP data arrays for Deterministic Equivalent
int getIntegerLen()
constructs LP and QP data arrays for Deterministic Equivalent
friend void SmiScnModelDiscreteUnitTest()
friend void DecompUnitTest()
bool solve_synch_
constructs LP and QP data arrays for Deterministic Equivalent
double * dobj_
constructs LP and QP data arrays for Deterministic Equivalent
Abstract Base Class for describing an interface to a solver.
double getWSValue(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent
double * drup_
constructs LP and QP data arrays for Deterministic Equivalent
int integerLen
constructs LP and QP data arrays for Deterministic Equivalent
int nqels_
constructs LP and QP data arrays for Deterministic Equivalent
void generateSolverArrays()
constructs LP and QP data arrays for Deterministic Equivalent
This deals with combining Core and Stochastic data.
int addNodeToSubmodel(SmiScnNode *smiScnNode)
generate scenarios from discrete distribution
friend void DecompUnitTest()
int nels_max
constructs LP and QP data arrays for Deterministic Equivalent
SmiScnModelAddNode(SmiScnModel *s)
SmiScnModelDeleteNode(SmiScnModel *s)
double addProb(double prob)
SmiScenarioTree< SmiScnNode * > * getSmiTree()
constructs LP and QP data arrays for Deterministic Equivalent
double * getRowValue(const double *d, SmiScenarioIndex ns, int *length, bool isDual)
constructs LP and QP data arrays for Deterministic Equivalent
SmiScnModel()
constructs LP and QP data arrays for Deterministic Equivalent
OsiSolverInterface * getOsiSolverInterface()
constructs LP and QP data arrays for Deterministic Equivalent
int getCoreRowIndex(int i)
int getBinaryLen()
constructs LP and QP data arrays for Deterministic Equivalent
int minrow_
constructs LP and QP data arrays for Deterministic Equivalent
SmiScnNode(SmiNodeData *node)
virtual OsiSolverInterface * clone(bool copyData=true) const =0
Clone.
double getScenarioProb(SmiScenarioIndex ns)
constructs LP and QP data arrays for Deterministic Equivalent
SmiScenarioIndex generateScenarioFromCore(SmiCoreData *core, double prob, SmiCoreCombineRule *r=SmiCoreCombineReplace::Instance())
generate scenarios from discrete distribution
void setScenarioIndex(SmiScenarioIndex i)
OsiSolverInterface * loadOsiSolverDataForSubproblem(int stage, int scenStart)
constructs LP and QP data arrays for Deterministic Equivalent
double * dclo_
constructs LP and QP data arrays for Deterministic Equivalent
std::vector< int > intIndices
constructs LP and QP data arrays for Deterministic Equivalent
int getNumScenarios()
get number of scenarios
void deleteNode(SmiScnNode *tnode)
constructs LP and QP data arrays for Deterministic Equivalent
int getCoreColIndex(int i)
int * qindx_
constructs LP and QP data arrays for Deterministic Equivalent
void setCondProb(double p)
double solveEEV(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent
int * getBinaryInd()
constructs LP and QP data arrays for Deterministic Equivalent
void operator()(SmiScnNode *node)
int * binaryInd
constructs LP and QP data arrays for Deterministic Equivalent
CoinMessageHandler * handler_
constructs LP and QP data arrays for Deterministic Equivalent
ClpModel * clp_
constructs LP and QP data arrays for Deterministic Equivalent
void setCore(SmiCoreData *val)
constructs LP and QP data arrays for Deterministic Equivalent
double * drlo_
constructs LP and QP data arrays for Deterministic Equivalent
int * integerInd
constructs LP and QP data arrays for Deterministic Equivalent
SmiCoreData * core_
constructs LP and QP data arrays for Deterministic Equivalent
CoinPackedMatrix * matrix_
constructs LP and QP data arrays for Deterministic Equivalent
double getEVValue(OsiSolverInterface *osiSolver, double objSense)
constructs LP and QP data arrays for Deterministic Equivalent