#include <BlisModel.h>
Inheritance diagram for BlisModel:
Public Member Functions | |
BlisModel () | |
Default construtor. | |
virtual | ~BlisModel () |
Destructor. | |
void | gutsOfDestructor () |
Actual destructor. | |
void | setColMatrix (CoinPackedMatrix *mat) |
Pass a matrix in. | |
void | setNumCons (int num) |
Pass column upper bounds. | |
void | setNumVars (int num) |
Pass column upper bounds. | |
void | setNumElems (int num) |
Pass column upper bounds. | |
void | setConLb (double *cl) |
Pass column upper bounds. | |
void | setConUb (double *cu) |
Pass column lower bounds. | |
void | setVarLb (double *lb) |
Pass variable upper bounds. | |
void | setVarUb (double *ub) |
Pass variable lower bounds. | |
void | setColType (char *colType) |
Pass variable types. | |
void | setObjCoef (double *obj) |
Pass objective coefficients. | |
virtual void | readInstance (const char *dataFile) |
For parallel code, only the master calls this function. | |
virtual void | importModel (std::vector< BlisVariable * > vars, std::vector< BlisConstraint * > cons) |
For parallel code, only the master calls this function. | |
virtual void | readParameters (const int argnum, const char *const *arglist) |
Read in Alps, Blis parameters. | |
virtual void | writeParameters (std::ostream &outstream) const |
Write out parameters. | |
virtual AlpsTreeNode * | createRoot () |
For parallel code, only the master calls this function. | |
virtual bool | setupSelf () |
All processes call this function. | |
virtual void | preprocess () |
Preprocessing the model. | |
virtual void | postprocess () |
Postprocessing the searching results. | |
virtual void | setSolver (OsiSolverInterface *si) |
Set lp solver. | |
virtual OsiSolverInterface * | getSolver () |
Get lp solver. | |
virtual OsiSolverInterface * | solver () |
Get lp solver. | |
bool | resolve () |
Resolving a lp. | |
void | setActiveNode (AlpsTreeNode *node) |
Set active node. | |
void | setSolEstimate (double est) |
Set the solution estimate of the active node. | |
int | getNumStrong () |
Get number of strong branchings. | |
void | addNumStrong (int num=1) |
Add num to number of strong branchings. | |
int | getNumBranchResolve () |
Get the maximum number of resolve during branching. | |
void | setNumBranchResolve (int num) |
Set the maximum number of resolve during branching. | |
double * | getObjCoef () const |
Get objective coefficients. | |
const double * | getColLower () |
Get column lower bound. | |
const double * | getColUpper () |
Get column upper bound. | |
int | getNumCols () |
Get number of columns. | |
int | getNumRows () |
Get number of rows. | |
double * | varLB () |
Get variable bounds arrary. | |
double * | varUB () |
double * | conLB () |
Get original constraint bounds arrary. | |
double * | conUB () |
double * | startVarLB () |
The starting variable bounds arrary of a subproblem (internal use). | |
double * | startVarUB () |
double * | startConLB () |
The starting constraint bounds arrary of a subproblem (internal use). | |
double * | startConUB () |
int * | tempVarLBPos () |
Temparory storage. | |
int * | tempVarUBPos () |
int * | tempConLBPos () |
int * | tempConUBPos () |
double | getLpObjValue () const |
Get current objective function value. | |
const double * | getLpSolution () const |
Get active lp solution. | |
int | getNumSolutions () const |
Get number of solutions. | |
int | getNumHeurSolutions () const |
Get number of heuristic solutions. | |
double * | incumbent () |
Return best ip solution found so far. | |
int | storeSolution (BlisSolutionType how, BlisSolution *sol) |
Record a new incumbent solution and update objectiveValue. | |
double | getCutoff () const |
Get cut off value. | |
void | setCutoff (double co) |
Set cut off value. | |
BlisSolution * | feasibleSolutionHeur (const double *solution) |
Test if a solution found by heuristic is feasible. | |
virtual BlisSolution * | feasibleSolution (int &numIntegerInfs, int &numObjectInfs) |
Test the current LP solution for feasiblility. | |
virtual BlisSolution * | userFeasibleSolution (const double *solution, bool &feasible) |
User's criteria for a feasible solution. | |
void | createIntgerObjects (bool startAgain) |
Identify integer variable. | |
int * | getIntObjIndices () const |
Get integers' object indices. | |
int | getNumIntObjects () const |
Get number of integers. | |
int * | getIntColIndices () const |
Get integers' column indices. | |
bool | checkInteger (double value) const |
Check if a value is integer. | |
void | analyzeObjective () |
void | addHeuristic (BlisHeuristic *heur) |
Add a heuristic. | |
BlisHeuristic * | heuristics (int i) const |
Get a specific heuristic. | |
int | numHeuristics () const |
Get the number of heuristics. | |
void | addCutGenerator (BlisConGenerator *generator) |
Add a Blis cut generator. | |
void | addCutGenerator (CglCutGenerator *generator, const char *name=NULL, BlisCutStrategy strategy=BlisCutStrategyAuto, int cutGenerationFrequency=1, bool normal=true, bool atSolution=false, bool whenInfeasible=false) |
Add a Cgl cut generator. | |
BlisConGenerator * | cutGenerators (int i) const |
Get a specific cut generator. | |
int | numCutGenerators () const |
Get the number of cut generators. | |
int | getMaxNumCons () const |
Get the max number of cuts can be generated. | |
void | setMaxNumCons (int m) |
Set the max number of cuts can be generated. | |
BcpsConstraintPool * | constraintPool () |
Access constraint pool. | |
BcpsConstraintPool * | constraintPoolReceive () |
Access receive constraint pool. | |
BcpsConstraintPool * | constraintPoolSend () |
Access send constraint pool. | |
BlisCutStrategy | getCutStrategy () const |
Query constraint generation strategy. | |
void | setCutStrategy (BlisCutStrategy u) |
Set constraint generation strategy. | |
int | getCutGenerationFrequency () const |
Query constraint generation frequency. | |
void | setCutStrategy (int f) |
Set constraint generation frequency. | |
int | getDenseConCutoff () const |
Get the thresheld to be considered as a dense constraint. | |
void | setDenseConCutoff (int cutoff) |
Set the thresheld to be considered as a dense constraint. | |
double * | getConRandoms () const |
Get randoms for check parallel constraints. | |
void | passInPriorities (const int *priorities, bool ifNotSimpleIntegers, int defaultValue=1000) |
Pass in branching priorities. | |
const int * | priority () const |
Priorities. | |
int | priority (int sequence) const |
Returns priority level for an object (or 1000 if no priorities exist). | |
double | getNodeWeight () const |
void | setNodeWeight (double nw) |
virtual void | modelLog () |
Log of specific models. | |
int | getNumNodes () const |
Get how many Nodes it took to solve the problem. | |
int | getNumIterations () const |
Get how many iterations it took to solve the problem. | |
int | getAveIterations () const |
Get the average iterations it took to solve a lp. | |
void | addNumNodes (int newNodes=1) |
Increment node count. | |
void | addNumIterations (int newIter) |
Increment Iteration count. | |
CoinMessageHandler * | blisMessageHandler () const |
Get the message handler. | |
CoinMessages | blisMessages () |
Return messages. | |
virtual void | nodeLog (AlpsTreeNode *node, bool force) |
Node log. | |
virtual bool | fathomAllNodes () |
Return true, if all nodes can be fathomed. | |
virtual void | registerKnowledge () |
Register knowledge. | |
virtual AlpsEncoded * | encode () const |
The method that encodes the model into an encoded object. | |
virtual void | decodeToSelf (AlpsEncoded &) |
The method that decodes the model from an encoded object. | |
virtual AlpsEncoded * | packSharedKnowlege () |
Pack knowledge to be shared with others into an encoded object. | |
virtual void | unpackSharedKnowledge (AlpsEncoded &) |
Unpack and store shared knowledge from an encoded object. | |
virtual void | presolveForTheWholeTree () |
Branching Strategys | |
See the BcpsBranchStrategy class for additional information. | |
BcpsBranchStrategy * | branchStrategy () const |
Get the current branching strategy. | |
void | setBranchingMethod (BcpsBranchStrategy *method) |
Set the branching strategy. | |
void | setBranchingMethod (BcpsBranchStrategy &method) |
Set the branching stratedy. | |
BcpsBranchStrategy * | rampUpBranchStrategy () const |
Get the current branching strategy. | |
Object manipulation routines | |
int | numObjects () const |
Get the number of objects. | |
void | setNumObjects (int num) |
Set the number of objects. | |
BcpsObject ** | objects () |
Get the array of objects. | |
BcpsObject * | objects (int which) |
Get the specified object. | |
void | setSharedObjectMark (int i) |
Mark object to be shared. | |
void | clearSharedObjectMark () |
Clear all the share mark. | |
void | deleteObjects () |
Delete all object information. | |
void | addObjects (int numObjects, BcpsObject **objects) |
Add in object information. | |
int | getNumOldConstraints () const |
Get number of old constraints. | |
void | setNumOldConstraints (int num) |
Set number of old constraints. | |
int | getOldConstraintsSize () const |
Get max number of old constraints. | |
void | setOldConstraintsSize (int num) |
Set max number of old constraints. | |
BlisConstraint ** | oldConstraints () |
Access old constraints. | |
void | setOldConstraints (BlisConstraint **old) |
set old constraints. | |
void | delOldConstraints () |
Set max number of old constraints. | |
BlisParams * | BlisPar () |
Access parameters. | |
Public Attributes | |
bool | isRoot_ |
If root node. | |
int | boundingPass_ |
The number of passes during bounding procedure. | |
double | integerTol_ |
Integer tolerance. | |
double | optimalRelGap_ |
Input relative optimal gap. | |
double | optimalAbsGap_ |
Input absolute optimal gap. | |
double | currRelGap_ |
Current relative optimal gap. | |
double | currAbsGap_ |
Current absolute optimal gap. | |
BlisHeurStrategy | heurStrategy_ |
If use heuristics. | |
int | heurCallFrequency_ |
Frequency of using heuristics. | |
OsiCuts | newCutPool_ |
Store new cuts in each pass. | |
std::vector< AlpsTreeNode * > | leafToRootPath |
Record the path from leaf to root. | |
Protected Member Functions | |
void | init () |
Intialize member data. | |
void | createObjects () |
Create variables and constraints. | |
AlpsReturnStatus | encodeBlis (AlpsEncoded *encoded) const |
Pack Blis portion of the model into an encoded object. | |
AlpsReturnStatus | decodeBlis (AlpsEncoded &encoded) |
Unpack Blis portion of the model from an encoded object. | |
void | packSharedPseudocost (AlpsEncoded *encoded, int numToShare) |
Retrieve and pack shared pseudocost. | |
void | unpackSharedPseudocost (AlpsEncoded &encoded) |
Unpack and store shared pseduocost. | |
void | packSharedConstraints (AlpsEncoded *encoded) |
Retrieve and pack shared constraints. | |
void | unpackSharedConstraints (AlpsEncoded &encoded) |
Unpack and store shared constraints. | |
void | packSharedVariables (AlpsEncoded *encoded) |
Retrieve and pack shared variables. | |
void | unpackSharedVariables (AlpsEncoded &encoded) |
Unpack and store shared variables. | |
Protected Attributes | |
OsiSolverInterface * | origLpSolver_ |
Input by user. | |
OsiSolverInterface * | presolvedLpSolver_ |
Presolved. | |
OsiSolverInterface * | lpSolver_ |
Actually used. | |
CoinPackedMatrix * | colMatrix_ |
Column majored matrix. | |
BlisPresolve * | presolve_ |
bool | presolved |
bool | problemSetup |
int | numSolutions_ |
int | numHeurSolutions_ |
double | incObjValue_ |
Incumbent objective value. | |
double * | incumbent_ |
Incumbent. | |
double | cutoff_ |
Cutoff in lp solver. | |
double | cutoffInc_ |
Cutoff increment. | |
int * | intObjIndices_ |
char * | colType_ |
BcpsBranchStrategy * | branchStrategy_ |
Variable selection function. | |
BcpsBranchStrategy * | rampUpBranchStrategy_ |
BlisHotStartStrategy | hotstartStrategy_ |
int | numObjects_ |
Number of objects. | |
BcpsObject ** | objects_ |
The set of objects. | |
char * | sharedObjectMark_ |
The objects that can be shared. | |
int * | priority_ |
Priorities of integer object. | |
AlpsTreeNode * | activeNode_ |
Active node. | |
int | numStrong_ |
Number of strong branching. | |
double | nodeWeight_ |
int | numBranchResolve_ |
Maximum number of resolve during branching. | |
int | numHeuristics_ |
Number of heuristics. | |
BlisHeuristic ** | heuristics_ |
The list of heuristics. | |
BlisCutStrategy | cutStrategy_ |
If use cut generators. | |
int | cutGenerationFrequency_ |
Frequency of cut generation. | |
int | numCutGenerators_ |
Number of cut generators used. | |
int | maxNumCons_ |
Number of cuts can be generators. | |
BlisConGenerator ** | generators_ |
The list of cut generators used. | |
BcpsConstraintPool * | constraintPool_ |
Store all the cuts. | |
BlisConstraint ** | oldConstraints_ |
Temporary store old cuts at a node when installing a node. | |
int | oldConstraintsSize_ |
The memory size allocated for oldConstraints_. | |
int | numOldConstraints_ |
Number of old constraints. | |
double * | conRandoms_ |
Random keys. | |
int | denseConCutoff_ |
Dense constraint cutoff. | |
BlisParams * | BlisPar_ |
Blis parameters. | |
CoinMessageHandler * | blisMessageHandler_ |
Message handler. | |
CoinMessages | blisMessages_ |
Blis messages. | |
int | numNodes_ |
Number of processed nodes. | |
int | numIterations_ |
Number of lp(Simplex) iterations. | |
int | aveIterations_ |
Average number of lp iterations to solve a subproblem. | |
BcpsConstraintPool * | constraintPoolSend_ |
Constraints that can be sent/broadcasted to other processes. | |
BcpsConstraintPool * | constraintPoolReceive_ |
Constraints that are received from other processses. | |
double * | varLB_ |
Variable and constraint bounds. | |
double * | varUB_ |
Variable and constraint bounds. | |
double * | conLB_ |
Variable and constraint bounds. | |
double * | conUB_ |
Variable and constraint bounds. | |
int | numCols_ |
Number of columns/rows/elements. | |
int | numRows_ |
Number of columns/rows/elements. | |
int | numElems_ |
Number of columns/rows/elements. | |
double | objSense_ |
Objective function. | |
double * | objCoef_ |
Objective function. | |
int | numIntObjects_ |
Column types. | |
int * | intColIndices_ |
Column types. | |
std::vector< BcpsVariable * > | inputVar_ |
User's input objects. | |
std::vector< BcpsConstraint * > | inputCon_ |
User's input objects. | |
double * | startVarLB_ |
Starting var/con bounds for processing each node. | |
double * | startVarUB_ |
Starting var/con bounds for processing each node. | |
double * | startConLB_ |
Starting var/con bounds for processing each node. | |
double * | startConUB_ |
Starting var/con bounds for processing each node. | |
int * | tempVarLBPos_ |
Tempory storage for var/con indices. | |
int * | tempVarUBPos_ |
Tempory storage for var/con indices. | |
int * | tempConLBPos_ |
Tempory storage for var/con indices. | |
int * | tempConUBPos_ |
Tempory storage for var/con indices. |
Definition at line 69 of file BlisModel.h.
BlisModel::BlisModel | ( | ) | [inline] |
virtual BlisModel::~BlisModel | ( | ) | [virtual] |
Destructor.
void BlisModel::init | ( | ) | [protected] |
void BlisModel::createObjects | ( | ) | [protected] |
Create variables and constraints.
void BlisModel::gutsOfDestructor | ( | ) |
Actual destructor.
void BlisModel::setColMatrix | ( | CoinPackedMatrix * | mat | ) | [inline] |
void BlisModel::setNumCons | ( | int | num | ) | [inline] |
void BlisModel::setNumVars | ( | int | num | ) | [inline] |
void BlisModel::setNumElems | ( | int | num | ) | [inline] |
void BlisModel::setConLb | ( | double * | cl | ) | [inline] |
void BlisModel::setConUb | ( | double * | cu | ) | [inline] |
void BlisModel::setVarLb | ( | double * | lb | ) | [inline] |
void BlisModel::setVarUb | ( | double * | ub | ) | [inline] |
void BlisModel::setColType | ( | char * | colType | ) | [inline] |
void BlisModel::setObjCoef | ( | double * | obj | ) | [inline] |
virtual void BlisModel::readInstance | ( | const char * | dataFile | ) | [virtual] |
For parallel code, only the master calls this function.
1) Read in the instance data 2) Set colMatrix_, varLB_, varUB_, conLB_, conUB numCols_, numRows_ 3) Set objCoef_ and objSense_ 4) Set colType_ ('C', 'I', or 'B') 5) Create variables and constraints 6) Set numCoreVariables_ and numCoreConstraints_
Reimplemented in VrpModel.
virtual void BlisModel::importModel | ( | std::vector< BlisVariable * > | vars, | |
std::vector< BlisConstraint * > | cons | |||
) | [virtual] |
For parallel code, only the master calls this function.
Import model from vars and cons. 1) Set colMatrix_, varLB_, varUB_, conLB_, conUB numCols_, numRows_ 2) Set objCoef_ (Assume minimization) 3) Set colType_ ('C', 'I', or 'B') 4) Set variables_ and constraints_ 5) Set numCoreVariables_ and numCoreConstraints_ NOTE: Blis takes over the memory ownship of vars and cons, which means users must NOT free vars or cons.
virtual void BlisModel::readParameters | ( | const int | argnum, | |
const char *const * | arglist | |||
) | [virtual] |
virtual void BlisModel::writeParameters | ( | std::ostream & | outstream | ) | const [virtual] |
Write out parameters.
virtual AlpsTreeNode* BlisModel::createRoot | ( | ) | [virtual] |
For parallel code, only the master calls this function.
Create the root node based on model.
virtual bool BlisModel::setupSelf | ( | ) | [virtual] |
All processes call this function.
Do necessary work to make model usable. Return success or not. 1) Set numIntObjects_, intColIndices_, intObjectIndices_ 2) Load problem to LP solver. 3) Create integer objects (must after load to lp since using lp info) 4) Set branch strategy 5) Add heuristics 6) Add Cgl cut generators
virtual void BlisModel::preprocess | ( | ) | [virtual] |
Preprocessing the model.
virtual void BlisModel::postprocess | ( | ) | [virtual] |
Postprocessing the searching results.
virtual void BlisModel::setSolver | ( | OsiSolverInterface * | si | ) | [inline, virtual] |
virtual OsiSolverInterface* BlisModel::getSolver | ( | ) | [inline, virtual] |
virtual OsiSolverInterface* BlisModel::solver | ( | ) | [inline, virtual] |
Get lp solver.
Definition at line 446 of file BlisModel.h.
References lpSolver_.
Referenced by BlisBranchObjectInt::BlisBranchObjectInt(), and BlisHeurRound::BlisHeurRound().
bool BlisModel::resolve | ( | ) |
Resolving a lp.
void BlisModel::setActiveNode | ( | AlpsTreeNode * | node | ) | [inline] |
void BlisModel::setSolEstimate | ( | double | est | ) | [inline] |
Set the solution estimate of the active node.
Definition at line 455 of file BlisModel.h.
References activeNode_.
int BlisModel::getNumStrong | ( | ) | [inline] |
void BlisModel::addNumStrong | ( | int | num = 1 |
) | [inline] |
Add num to number of strong branchings.
Definition at line 461 of file BlisModel.h.
References numStrong_.
int BlisModel::getNumBranchResolve | ( | ) | [inline] |
Get the maximum number of resolve during branching.
Definition at line 464 of file BlisModel.h.
References numBranchResolve_.
void BlisModel::setNumBranchResolve | ( | int | num | ) | [inline] |
Set the maximum number of resolve during branching.
Definition at line 467 of file BlisModel.h.
References numBranchResolve_.
double* BlisModel::getObjCoef | ( | ) | const [inline] |
const double* BlisModel::getColLower | ( | ) | [inline] |
const double* BlisModel::getColUpper | ( | ) | [inline] |
Get column upper bound.
Definition at line 480 of file BlisModel.h.
References lpSolver_.
Referenced by BlisBranchObjectInt::BlisBranchObjectInt().
int BlisModel::getNumCols | ( | ) | [inline] |
int BlisModel::getNumRows | ( | ) | [inline] |
double* BlisModel::varLB | ( | ) | [inline] |
double* BlisModel::varUB | ( | ) | [inline] |
double* BlisModel::conLB | ( | ) | [inline] |
Get original constraint bounds arrary.
Definition at line 493 of file BlisModel.h.
References conLB_.
double* BlisModel::conUB | ( | ) | [inline] |
double* BlisModel::startVarLB | ( | ) | [inline] |
The starting variable bounds arrary of a subproblem (internal use).
Definition at line 497 of file BlisModel.h.
References startVarLB_.
double* BlisModel::startVarUB | ( | ) | [inline] |
double* BlisModel::startConLB | ( | ) | [inline] |
The starting constraint bounds arrary of a subproblem (internal use).
Definition at line 501 of file BlisModel.h.
References startConLB_.
double* BlisModel::startConUB | ( | ) | [inline] |
int* BlisModel::tempVarLBPos | ( | ) | [inline] |
int* BlisModel::tempVarUBPos | ( | ) | [inline] |
int* BlisModel::tempConLBPos | ( | ) | [inline] |
int* BlisModel::tempConUBPos | ( | ) | [inline] |
double BlisModel::getLpObjValue | ( | ) | const [inline] |
Get current objective function value.
Definition at line 515 of file BlisModel.h.
References lpSolver_.
const double* BlisModel::getLpSolution | ( | ) | const [inline] |
int BlisModel::getNumSolutions | ( | ) | const [inline] |
int BlisModel::getNumHeurSolutions | ( | ) | const [inline] |
Get number of heuristic solutions.
Definition at line 528 of file BlisModel.h.
References numHeurSolutions_.
double* BlisModel::incumbent | ( | ) | [inline] |
Return best ip solution found so far.
Definition at line 531 of file BlisModel.h.
References incumbent_.
int BlisModel::storeSolution | ( | BlisSolutionType | how, | |
BlisSolution * | sol | |||
) |
Record a new incumbent solution and update objectiveValue.
double BlisModel::getCutoff | ( | ) | const [inline] |
void BlisModel::setCutoff | ( | double | co | ) | [inline] |
Set cut off value.
Definition at line 540 of file BlisModel.h.
References BlisPar_, cutoff_, BlisParams::cutoffInc, BlisParams::entry(), and lpSolver_.
BlisSolution* BlisModel::feasibleSolutionHeur | ( | const double * | solution | ) |
Test if a solution found by heuristic is feasible.
virtual BlisSolution* BlisModel::feasibleSolution | ( | int & | numIntegerInfs, | |
int & | numObjectInfs | |||
) | [virtual] |
Test the current LP solution for feasiblility.
Scan all objects for indications of infeasibility. This is broken down into simple integer infeasibility (numIntegerInfs
) and all other reports of infeasibility(numObjectInfs
).
virtual BlisSolution* BlisModel::userFeasibleSolution | ( | const double * | solution, | |
bool & | feasible | |||
) | [inline, virtual] |
User's criteria for a feasible solution.
If user think the given solution is feasible then need 1) set userFeasible to true, and 2) return a non-null solution. If user think the solution is infeasible then need 1) set userFeasible to false, and 2) return a null.
Reimplemented in VrpModel.
Definition at line 571 of file BlisModel.h.
BcpsBranchStrategy* BlisModel::branchStrategy | ( | ) | const [inline] |
Get the current branching strategy.
Definition at line 587 of file BlisModel.h.
References branchStrategy_.
void BlisModel::setBranchingMethod | ( | BcpsBranchStrategy * | method | ) | [inline] |
void BlisModel::setBranchingMethod | ( | BcpsBranchStrategy & | method | ) | [inline] |
BcpsBranchStrategy* BlisModel::rampUpBranchStrategy | ( | ) | const [inline] |
Get the current branching strategy.
Definition at line 601 of file BlisModel.h.
References rampUpBranchStrategy_.
int BlisModel::numObjects | ( | ) | const [inline] |
void BlisModel::setNumObjects | ( | int | num | ) | [inline] |
BcpsObject** BlisModel::objects | ( | ) | [inline] |
BcpsObject* BlisModel::objects | ( | int | which | ) | [inline] |
void BlisModel::setSharedObjectMark | ( | int | i | ) | [inline] |
void BlisModel::clearSharedObjectMark | ( | ) | [inline] |
Clear all the share mark.
Definition at line 624 of file BlisModel.h.
References numIntObjects_, and sharedObjectMark_.
void BlisModel::deleteObjects | ( | ) |
Delete all object information.
void BlisModel::addObjects | ( | int | numObjects, | |
BcpsObject ** | objects | |||
) |
Add in object information.
Objects are cloned; the owner can delete the originals.
void BlisModel::createIntgerObjects | ( | bool | startAgain | ) |
Identify integer variable.
int* BlisModel::getIntObjIndices | ( | ) | const [inline] |
Get integers' object indices.
Definition at line 642 of file BlisModel.h.
References intObjIndices_.
int BlisModel::getNumIntObjects | ( | ) | const [inline] |
int* BlisModel::getIntColIndices | ( | ) | const [inline] |
Get integers' column indices.
Definition at line 648 of file BlisModel.h.
References intColIndices_.
Referenced by BlisBranchObjectInt::BlisBranchObjectInt().
bool BlisModel::checkInteger | ( | double | value | ) | const [inline] |
void BlisModel::analyzeObjective | ( | ) |
void BlisModel::addHeuristic | ( | BlisHeuristic * | heur | ) |
Add a heuristic.
BlisHeuristic* BlisModel::heuristics | ( | int | i | ) | const [inline] |
int BlisModel::numHeuristics | ( | ) | const [inline] |
Get the number of heuristics.
Definition at line 675 of file BlisModel.h.
References numHeuristics_.
void BlisModel::addCutGenerator | ( | BlisConGenerator * | generator | ) |
Add a Blis cut generator.
void BlisModel::addCutGenerator | ( | CglCutGenerator * | generator, | |
const char * | name = NULL , |
|||
BlisCutStrategy | strategy = BlisCutStrategyAuto , |
|||
int | cutGenerationFrequency = 1 , |
|||
bool | normal = true , |
|||
bool | atSolution = false , |
|||
bool | whenInfeasible = false | |||
) |
Add a Cgl cut generator.
BlisConGenerator* BlisModel::cutGenerators | ( | int | i | ) | const [inline] |
int BlisModel::numCutGenerators | ( | ) | const [inline] |
Get the number of cut generators.
Definition at line 697 of file BlisModel.h.
References numCutGenerators_.
int BlisModel::getMaxNumCons | ( | ) | const [inline] |
Get the max number of cuts can be generated.
Definition at line 700 of file BlisModel.h.
References maxNumCons_.
void BlisModel::setMaxNumCons | ( | int | m | ) | [inline] |
Set the max number of cuts can be generated.
Definition at line 703 of file BlisModel.h.
References maxNumCons_.
BcpsConstraintPool* BlisModel::constraintPool | ( | ) | [inline] |
BcpsConstraintPool* BlisModel::constraintPoolReceive | ( | ) | [inline] |
Access receive constraint pool.
Definition at line 709 of file BlisModel.h.
References constraintPoolReceive_.
BcpsConstraintPool* BlisModel::constraintPoolSend | ( | ) | [inline] |
Access send constraint pool.
Definition at line 713 of file BlisModel.h.
References constraintPoolSend_.
int BlisModel::getNumOldConstraints | ( | ) | const [inline] |
Get number of old constraints.
Definition at line 717 of file BlisModel.h.
References numOldConstraints_.
void BlisModel::setNumOldConstraints | ( | int | num | ) | [inline] |
Set number of old constraints.
Definition at line 720 of file BlisModel.h.
References numOldConstraints_.
int BlisModel::getOldConstraintsSize | ( | ) | const [inline] |
Get max number of old constraints.
Definition at line 723 of file BlisModel.h.
References oldConstraintsSize_.
void BlisModel::setOldConstraintsSize | ( | int | num | ) | [inline] |
Set max number of old constraints.
Definition at line 726 of file BlisModel.h.
References oldConstraintsSize_.
BlisConstraint** BlisModel::oldConstraints | ( | ) | [inline] |
void BlisModel::setOldConstraints | ( | BlisConstraint ** | old | ) | [inline] |
void BlisModel::delOldConstraints | ( | ) | [inline] |
Set max number of old constraints.
Definition at line 735 of file BlisModel.h.
References oldConstraints_.
BlisCutStrategy BlisModel::getCutStrategy | ( | ) | const [inline] |
Query constraint generation strategy.
Definition at line 742 of file BlisModel.h.
References cutStrategy_.
void BlisModel::setCutStrategy | ( | BlisCutStrategy | u | ) | [inline] |
Set constraint generation strategy.
Definition at line 747 of file BlisModel.h.
References cutStrategy_.
int BlisModel::getCutGenerationFrequency | ( | ) | const [inline] |
Query constraint generation frequency.
Definition at line 750 of file BlisModel.h.
References cutGenerationFrequency_.
void BlisModel::setCutStrategy | ( | int | f | ) | [inline] |
Set constraint generation frequency.
Definition at line 753 of file BlisModel.h.
References cutGenerationFrequency_.
int BlisModel::getDenseConCutoff | ( | ) | const [inline] |
Get the thresheld to be considered as a dense constraint.
Definition at line 756 of file BlisModel.h.
References denseConCutoff_.
void BlisModel::setDenseConCutoff | ( | int | cutoff | ) | [inline] |
Set the thresheld to be considered as a dense constraint.
Definition at line 759 of file BlisModel.h.
References denseConCutoff_.
double* BlisModel::getConRandoms | ( | ) | const [inline] |
Get randoms for check parallel constraints.
Definition at line 762 of file BlisModel.h.
References conRandoms_.
void BlisModel::passInPriorities | ( | const int * | priorities, | |
bool | ifNotSimpleIntegers, | |||
int | defaultValue = 1000 | |||
) |
Pass in branching priorities.
If ifClique then priorities are on cliques otherwise priorities are on integer variables. Other type (if exists set to default) 1 is highest priority. (well actually -INT_MAX is but that's ugly) If hotstart > 0 then branches are created to force the variable to the value given by best solution. This enables a sort of hot start. The node choice should be greatest depth and hotstart should normally be switched off after a solution.
If ifNotSimpleIntegers true then appended to normal integers
const int* BlisModel::priority | ( | ) | const [inline] |
int BlisModel::priority | ( | int | sequence | ) | const [inline] |
Returns priority level for an object (or 1000 if no priorities exist).
Definition at line 790 of file BlisModel.h.
References priority_.
double BlisModel::getNodeWeight | ( | ) | const [inline] |
void BlisModel::setNodeWeight | ( | double | nw | ) | [inline] |
virtual void BlisModel::modelLog | ( | ) | [virtual] |
Log of specific models.
int BlisModel::getNumNodes | ( | ) | const [inline] |
Get how many Nodes it took to solve the problem.
Definition at line 808 of file BlisModel.h.
References numNodes_.
int BlisModel::getNumIterations | ( | ) | const [inline] |
Get how many iterations it took to solve the problem.
Definition at line 811 of file BlisModel.h.
References numIterations_.
int BlisModel::getAveIterations | ( | ) | const [inline] |
Get the average iterations it took to solve a lp.
Definition at line 814 of file BlisModel.h.
References aveIterations_.
void BlisModel::addNumNodes | ( | int | newNodes = 1 |
) | [inline] |
void BlisModel::addNumIterations | ( | int | newIter | ) | [inline] |
Increment Iteration count.
Definition at line 820 of file BlisModel.h.
References aveIterations_, numIterations_, and numNodes_.
CoinMessageHandler* BlisModel::blisMessageHandler | ( | ) | const [inline] |
Get the message handler.
Definition at line 826 of file BlisModel.h.
References blisMessageHandler_.
CoinMessages BlisModel::blisMessages | ( | ) | [inline] |
BlisParams* BlisModel::BlisPar | ( | ) | [inline] |
Access parameters.
Definition at line 834 of file BlisModel.h.
References BlisPar_.
Referenced by VrpModel::VrpModel().
virtual void BlisModel::nodeLog | ( | AlpsTreeNode * | node, | |
bool | force | |||
) | [virtual] |
Node log.
virtual bool BlisModel::fathomAllNodes | ( | ) | [virtual] |
Return true, if all nodes can be fathomed.
AlpsReturnStatus BlisModel::encodeBlis | ( | AlpsEncoded * | encoded | ) | const [protected] |
Pack Blis portion of the model into an encoded object.
AlpsReturnStatus BlisModel::decodeBlis | ( | AlpsEncoded & | encoded | ) | [protected] |
Unpack Blis portion of the model from an encoded object.
void BlisModel::packSharedPseudocost | ( | AlpsEncoded * | encoded, | |
int | numToShare | |||
) | [protected] |
Retrieve and pack shared pseudocost.
void BlisModel::unpackSharedPseudocost | ( | AlpsEncoded & | encoded | ) | [protected] |
Unpack and store shared pseduocost.
void BlisModel::packSharedConstraints | ( | AlpsEncoded * | encoded | ) | [protected] |
Retrieve and pack shared constraints.
void BlisModel::unpackSharedConstraints | ( | AlpsEncoded & | encoded | ) | [protected] |
Unpack and store shared constraints.
void BlisModel::packSharedVariables | ( | AlpsEncoded * | encoded | ) | [protected] |
Retrieve and pack shared variables.
void BlisModel::unpackSharedVariables | ( | AlpsEncoded & | encoded | ) | [protected] |
Unpack and store shared variables.
virtual void BlisModel::registerKnowledge | ( | ) | [virtual] |
virtual AlpsEncoded* BlisModel::encode | ( | ) | const [virtual] |
virtual void BlisModel::decodeToSelf | ( | AlpsEncoded & | ) | [virtual] |
virtual AlpsEncoded* BlisModel::packSharedKnowlege | ( | ) | [virtual] |
Pack knowledge to be shared with others into an encoded object.
Return NULL means that no knowledge can be shared.
virtual void BlisModel::unpackSharedKnowledge | ( | AlpsEncoded & | ) | [virtual] |
Unpack and store shared knowledge from an encoded object.
virtual void BlisModel::presolveForTheWholeTree | ( | ) | [virtual] |
OsiSolverInterface* BlisModel::origLpSolver_ [protected] |
Input by user.
Definition at line 78 of file BlisModel.h.
Referenced by getSolver(), and setSolver().
OsiSolverInterface* BlisModel::presolvedLpSolver_ [protected] |
OsiSolverInterface* BlisModel::lpSolver_ [protected] |
Actually used.
If using presolve, then it is presolved; otherwise it is the original.
Definition at line 83 of file BlisModel.h.
Referenced by getColLower(), getColUpper(), getLpObjValue(), getLpSolution(), getNumCols(), getNumRows(), setCutoff(), and solver().
CoinPackedMatrix* BlisModel::colMatrix_ [protected] |
Column majored matrix.
(For MPS file, etc.)
Definition at line 90 of file BlisModel.h.
Referenced by setColMatrix().
double* BlisModel::varLB_ [protected] |
Variable and constraint bounds.
Definition at line 94 of file BlisModel.h.
Referenced by setVarLb(), and varLB().
double* BlisModel::varUB_ [protected] |
Variable and constraint bounds.
Definition at line 95 of file BlisModel.h.
Referenced by setVarUb(), and varUB().
double* BlisModel::conLB_ [protected] |
Variable and constraint bounds.
Definition at line 96 of file BlisModel.h.
Referenced by conLB(), and setConLb().
double* BlisModel::conUB_ [protected] |
Variable and constraint bounds.
Definition at line 97 of file BlisModel.h.
Referenced by conUB(), and setConUb().
int BlisModel::numCols_ [protected] |
Number of columns/rows/elements.
Definition at line 102 of file BlisModel.h.
Referenced by setNumVars().
int BlisModel::numRows_ [protected] |
Number of columns/rows/elements.
Definition at line 103 of file BlisModel.h.
Referenced by setNumCons().
int BlisModel::numElems_ [protected] |
Number of columns/rows/elements.
Definition at line 104 of file BlisModel.h.
Referenced by setNumElems().
double BlisModel::objSense_ [protected] |
double* BlisModel::objCoef_ [protected] |
Objective function.
Definition at line 110 of file BlisModel.h.
Referenced by getObjCoef(), and setObjCoef().
int BlisModel::numIntObjects_ [protected] |
Column types.
Definition at line 115 of file BlisModel.h.
Referenced by clearSharedObjectMark(), and getNumIntObjects().
int* BlisModel::intColIndices_ [protected] |
std::vector<BcpsVariable *> BlisModel::inputVar_ [protected] |
std::vector<BcpsConstraint *> BlisModel::inputCon_ [protected] |
BlisPresolve* BlisModel::presolve_ [protected] |
Definition at line 129 of file BlisModel.h.
bool BlisModel::presolved [protected] |
Definition at line 131 of file BlisModel.h.
bool BlisModel::problemSetup [protected] |
Definition at line 132 of file BlisModel.h.
int BlisModel::numSolutions_ [protected] |
int BlisModel::numHeurSolutions_ [protected] |
double BlisModel::incObjValue_ [protected] |
double* BlisModel::incumbent_ [protected] |
double BlisModel::cutoff_ [protected] |
Cutoff in lp solver.
Definition at line 149 of file BlisModel.h.
Referenced by getCutoff(), and setCutoff().
double BlisModel::cutoffInc_ [protected] |
int* BlisModel::intObjIndices_ [protected] |
char* BlisModel::colType_ [protected] |
double* BlisModel::startVarLB_ [protected] |
Starting var/con bounds for processing each node.
Definition at line 163 of file BlisModel.h.
Referenced by startVarLB().
double* BlisModel::startVarUB_ [protected] |
Starting var/con bounds for processing each node.
Definition at line 164 of file BlisModel.h.
Referenced by startVarUB().
double* BlisModel::startConLB_ [protected] |
Starting var/con bounds for processing each node.
Definition at line 165 of file BlisModel.h.
Referenced by startConLB().
double* BlisModel::startConUB_ [protected] |
Starting var/con bounds for processing each node.
Definition at line 166 of file BlisModel.h.
Referenced by startConUB().
BcpsBranchStrategy* BlisModel::branchStrategy_ [protected] |
Variable selection function.
Definition at line 170 of file BlisModel.h.
Referenced by branchStrategy(), and setBranchingMethod().
BcpsBranchStrategy* BlisModel::rampUpBranchStrategy_ [protected] |
BlisHotStartStrategy BlisModel::hotstartStrategy_ [protected] |
Definition at line 176 of file BlisModel.h.
int BlisModel::numObjects_ [protected] |
Number of objects.
Definition at line 179 of file BlisModel.h.
Referenced by numObjects(), and setNumObjects().
BcpsObject** BlisModel::objects_ [protected] |
char* BlisModel::sharedObjectMark_ [protected] |
The objects that can be shared.
Definition at line 185 of file BlisModel.h.
Referenced by clearSharedObjectMark(), and setSharedObjectMark().
int* BlisModel::priority_ [protected] |
AlpsTreeNode* BlisModel::activeNode_ [protected] |
Active node.
Definition at line 191 of file BlisModel.h.
Referenced by setActiveNode(), and setSolEstimate().
int BlisModel::numStrong_ [protected] |
Number of strong branching.
Definition at line 194 of file BlisModel.h.
Referenced by addNumStrong(), and getNumStrong().
double BlisModel::nodeWeight_ [protected] |
int BlisModel::numBranchResolve_ [protected] |
Maximum number of resolve during branching.
Definition at line 200 of file BlisModel.h.
Referenced by getNumBranchResolve(), and setNumBranchResolve().
int BlisModel::numHeuristics_ [protected] |
BlisHeuristic** BlisModel::heuristics_ [protected] |
BlisCutStrategy BlisModel::cutStrategy_ [protected] |
If use cut generators.
Definition at line 217 of file BlisModel.h.
Referenced by getCutStrategy(), and setCutStrategy().
int BlisModel::cutGenerationFrequency_ [protected] |
Frequency of cut generation.
Definition at line 220 of file BlisModel.h.
Referenced by getCutGenerationFrequency(), and setCutStrategy().
int BlisModel::numCutGenerators_ [protected] |
Number of cut generators used.
Definition at line 223 of file BlisModel.h.
Referenced by numCutGenerators().
int BlisModel::maxNumCons_ [protected] |
Number of cuts can be generators.
Definition at line 226 of file BlisModel.h.
Referenced by getMaxNumCons(), and setMaxNumCons().
BlisConGenerator** BlisModel::generators_ [protected] |
The list of cut generators used.
Definition at line 229 of file BlisModel.h.
Referenced by cutGenerators().
BcpsConstraintPool* BlisModel::constraintPool_ [protected] |
BlisConstraint** BlisModel::oldConstraints_ [protected] |
Temporary store old cuts at a node when installing a node.
Definition at line 235 of file BlisModel.h.
Referenced by delOldConstraints(), oldConstraints(), and setOldConstraints().
int BlisModel::oldConstraintsSize_ [protected] |
The memory size allocated for oldConstraints_.
Definition at line 238 of file BlisModel.h.
Referenced by getOldConstraintsSize(), and setOldConstraintsSize().
int BlisModel::numOldConstraints_ [protected] |
Number of old constraints.
Definition at line 241 of file BlisModel.h.
Referenced by getNumOldConstraints(), and setNumOldConstraints().
double* BlisModel::conRandoms_ [protected] |
int BlisModel::denseConCutoff_ [protected] |
Dense constraint cutoff.
Definition at line 247 of file BlisModel.h.
Referenced by getDenseConCutoff(), and setDenseConCutoff().
BlisParams* BlisModel::BlisPar_ [protected] |
Blis parameters.
Definition at line 254 of file BlisModel.h.
Referenced by BlisPar(), and setCutoff().
CoinMessageHandler* BlisModel::blisMessageHandler_ [protected] |
CoinMessages BlisModel::blisMessages_ [protected] |
int BlisModel::numNodes_ [protected] |
Number of processed nodes.
Definition at line 263 of file BlisModel.h.
Referenced by addNumIterations(), addNumNodes(), and getNumNodes().
int BlisModel::numIterations_ [protected] |
Number of lp(Simplex) iterations.
Definition at line 266 of file BlisModel.h.
Referenced by addNumIterations(), and getNumIterations().
int BlisModel::aveIterations_ [protected] |
Average number of lp iterations to solve a subproblem.
Definition at line 269 of file BlisModel.h.
Referenced by addNumIterations(), and getAveIterations().
int* BlisModel::tempVarLBPos_ [protected] |
Tempory storage for var/con indices.
Definition at line 277 of file BlisModel.h.
Referenced by tempVarLBPos().
int* BlisModel::tempVarUBPos_ [protected] |
Tempory storage for var/con indices.
Definition at line 278 of file BlisModel.h.
Referenced by tempVarUBPos().
int* BlisModel::tempConLBPos_ [protected] |
Tempory storage for var/con indices.
Definition at line 279 of file BlisModel.h.
Referenced by tempConLBPos().
int* BlisModel::tempConUBPos_ [protected] |
Tempory storage for var/con indices.
Definition at line 280 of file BlisModel.h.
Referenced by tempConUBPos().
BcpsConstraintPool* BlisModel::constraintPoolSend_ [protected] |
Constraints that can be sent/broadcasted to other processes.
Definition at line 288 of file BlisModel.h.
Referenced by constraintPoolSend().
BcpsConstraintPool* BlisModel::constraintPoolReceive_ [protected] |
Constraints that are received from other processses.
Definition at line 291 of file BlisModel.h.
Referenced by constraintPoolReceive().
bool BlisModel::isRoot_ |
double BlisModel::integerTol_ |
double BlisModel::optimalRelGap_ |
double BlisModel::optimalAbsGap_ |
double BlisModel::currRelGap_ |
double BlisModel::currAbsGap_ |
OsiCuts BlisModel::newCutPool_ |
std::vector<AlpsTreeNode *> BlisModel::leafToRootPath |