Public Member Functions | Public Attributes | Private Attributes
BlisModel Class Reference

#include <BlisModel.h>

Inheritance diagram for BlisModel:
BcpsModel BcpsModel

List of all members.

Public Member Functions

 BlisModel ()
 Default construtor.
virtual ~BlisModel ()
 Destructor.
void gutsOfDestructor ()
 Actual destructor.
void init ()
 Intialize member data.
virtual void readInstance (const char *dataFile)
 Read in the instance data.
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 ()
 Create the root node based on model.
virtual bool setupSelf ()
 Do necessary work to make model usable.
virtual void setSolver (OsiSolverInterface *si)
 Set 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.
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 * origVarLB ()
 Get original variable bounds arrary.
double * origVarUB ()
double * origConLB ()
 Get original constraint bounds arrary.
double * origConUB ()
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
 Return the stored lp solution.
int getNumHeurSolutions () const
 Get number of heuristic solutions.
double * incumbent ()
 Return best ip solution found so far.
bool setBestSolution (BLIS_SOL_TYPE how, double &objectiveValue, const double *solution, bool fixVariables=false)
 Record a new incumbent solution and update objectiveValue.
double getCutoff () const
 Get cut off value.
void setCutoff (double co)
 Set cut off value.
bool feasibleSolution (int &numIntegerInfs)
 Test the current lp solution for feasiblility.
bool feasibleSolution (int &numIntegerInfs, int &numObjectInfs)
 Test the current solution for feasiblility.
void findIntegers (bool startAgain)
 Identify integer variable.
int getNumIntVars () const
 Get number of integers.
int * getIntVars () const
 Get integer indices.
bool checkInteger (double value) const
 Check if a value is integer.
void addHeuristic (BlisHeuristic *heur)
 Add a heuristic.
BlisHeuristicheuristics (int i) const
 Get a specific heuristic.
int numHeuristics () const
 Get the number of heuristics.
void addCutGenerator (CglCutGenerator *generator, const char *name=NULL, int strategy=0, bool normal=true, bool atSolution=false, bool whenInfeasible=false)
 Add a cut generator.
BlisConGeneratorcutGenerators (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.
BcpsConstraintPoolconstraintPool ()
 Access constraint pool.
int useCons () const
 Query constraint generation strategy.
void setUseCons (int u)
 Set constraint generation strategy.
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)
const 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 * messageHandler () const
 Get the message handler.
int getHotstartStrategy ()
 Don't know what it is.
void setHotstartStrategy (int value)
virtual void registerKnowledge ()
 Register knowledge.
virtual AlpsEncoded * encode () const
 The method that encodes the model into a encoded object.
virtual void decodeToSelf (AlpsEncoded &)
 The method that decodes the model from a encoded object.
 BlisModel ()
 Default construtor.
virtual ~BlisModel ()
 Destructor.
void gutsOfDestructor ()
 Actual destructor.
void init ()
 Intialize member data.
virtual void readInstance (const char *dataFile)
 Read in the instance data.
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 ()
 Create the root node based on model.
virtual bool setupSelf ()
 Do necessary work to make model usable.
virtual void setSolver (OsiSolverInterface *si)
 Set 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.
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 * origVarLB ()
 Get original variable bounds arrary.
double * origVarUB ()
double * origConLB ()
 Get original constraint bounds arrary.
double * origConUB ()
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
 Return the stored lp solution.
int getNumHeurSolutions () const
 Get number of heuristic solutions.
double * incumbent ()
 Return best ip solution found so far.
bool setBestSolution (BLIS_SOL_TYPE how, double &objectiveValue, const double *solution, bool fixVariables=false)
 Record a new incumbent solution and update objectiveValue.
double getCutoff () const
 Get cut off value.
void setCutoff (double co)
 Set cut off value.
bool feasibleSolution (int &numIntegerInfs)
 Test the current lp solution for feasiblility.
bool feasibleSolution (int &numIntegerInfs, int &numObjectInfs)
 Test the current solution for feasiblility.
void findIntegers (bool startAgain)
 Identify integer variable.
int getNumIntVars () const
 Get number of integers.
int * getIntVars () const
 Get integer indices.
bool checkInteger (double value) const
 Check if a value is integer.
void addHeuristic (BlisHeuristic *heur)
 Add a heuristic.
BlisHeuristicheuristics (int i) const
 Get a specific heuristic.
int numHeuristics () const
 Get the number of heuristics.
void addCutGenerator (CglCutGenerator *generator, const char *name=NULL, int strategy=0, bool normal=true, bool atSolution=false, bool whenInfeasible=false)
 Add a cut generator.
BlisConGeneratorcutGenerators (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.
BcpsConstraintPoolconstraintPool ()
 Access constraint pool.
int useCons () const
 Query constraint generation strategy.
void setUseCons (int u)
 Set constraint generation strategy.
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)
const 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 * messageHandler () const
 Get the message handler.
int getHotstartStrategy ()
 Don't know what it is.
void setHotstartStrategy (int value)
virtual void registerKnowledge ()
 Register knowledge.
virtual AlpsEncoded * encode () const
 The method that encodes the model into a encoded object.
virtual void decodeToSelf (AlpsEncoded &)
 The method that decodes the model from a encoded object.
Branching Strategys

See the BcpsBranchStrategy class for additional information.

BcpsBranchStrategybranchStrategy () const
 Get the current branching strategy.
void setBranchingMethod (BcpsBranchStrategy *method)
 Set the branching strategy.
void setBranchingMethod (BcpsBranchStrategy &method)
 Set the branching stratedy.
BcpsBranchStrategybranchStrategy () const
 Get the current branching strategy.
void setBranchingMethod (BcpsBranchStrategy *method)
 Set the branching strategy.
void setBranchingMethod (BcpsBranchStrategy &method)
 Set the branching stratedy.
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.
BcpsObjectobjects (int which)
 Get the specified object.
void deleteObjects ()
 Delete all object information.
void addObjects (int numObjects, BcpsObject **objects)
 Add in object information.
int numObjects () const
 Get the number of objects.
void setNumObjects (int num)
 Set the number of objects.
BcpsObject ** objects ()
 Get the array of objects.
BcpsObjectobjects (int which)
 Get the specified object.
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.
BlisParamsBlisPar ()
 Access parameters.
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.
BlisParamsBlisPar ()
 Access parameters.

Public Attributes

bool isRoot_
 If root node.
double startTime_
 Search starting time.
double timeLimit_
 Max solution time.
double integerTol_
 Integer tolerance.
double optimalRelGap_
 Relative optimal gap.
double optimalAbsGap_
 Absolute optimal gap.
bool useHeuristics_
 If use heuristics.
OsiCuts newCutPool_
 Store new cuts in each pass.
std::vector< AlpsTreeNode * > leafToRootPath
 Record the path from leaf to root.

Private Attributes

OsiSolverInterface * lpSolver_
 Lp solver.
CoinPackedMatrix * colMatrix_
 Orignial column majored matrix.
int numSolutions_
int numHeurSolutions_
double incObjValue_
 Saved lp solution for temporatory usage.
double * incumbent_
 Incumbent.
double cutoff_
 Cutoff in lp solver.
double cutoffInc_
 Cutoff increment.
BcpsBranchStrategybranchStrategy_
 Variable selection function.
int hotstartStrategy_
int numObjects_
 Number of objects.
BcpsObject ** objects_
 The set of objects.
int * priority_
 Priorities of integer object.
AlpsTreeNode * activeNode_
 Active node.
int numStrong_
 Number of strong branching.
double nodeWeight_
int numHeuristics_
 Number of heuristics.
BlisHeuristic ** heuristics_
 The list of heuristics.
int useCons_
 If use cut generators.
int numCutGenerators_
 Number of cut generators used.
int maxNumCons_
 Number of cuts can be generators.
BlisConGenerator ** generators_
 The list of cut generators used.
BcpsConstraintPoolconstraintPool_
 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.
BlisParamsBlisPar_
 Blis parameters.
CoinMessageHandler * handler_
 Message handler.
int numNodes_
 Number of processed nodes.
int numIterations_
 Number of lp(Simplex) iterations.
int aveIterations_
 Average number of lp iterations to solve a subproblem.
double * origVarLB_
 Original variable and constraint bounds.
double * origVarUB_
 Original variable and constraint bounds.
double * origConLB_
 Original variable and constraint bounds.
double * origConUB_
 Original variable and constraint bounds.
int numCols_
 Number of columns/rows/elements in active subproblem.
int numRows_
 Number of columns/rows/elements in active subproblem.
int numElems_
 Number of columns/rows/elements in active subproblem.
double objSense_
 Objective function.
double * objCoef_
 Objective function.
int numIntVars_
 Column types.
int * intVars_
 Column types.
char * colType_
 Column types.
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.

Detailed Description

Definition at line 61 of file BlisModel.h.


Constructor & Destructor Documentation

BlisModel::BlisModel ( ) [inline]

Default construtor.

Definition at line 277 of file BlisModel.h.

virtual BlisModel::~BlisModel ( ) [virtual]

Destructor.

BlisModel::BlisModel ( ) [inline]

Default construtor.

Definition at line 277 of file BlisModel.h.

virtual BlisModel::~BlisModel ( ) [virtual]

Destructor.


Member Function Documentation

void BlisModel::gutsOfDestructor ( )

Actual destructor.

void BlisModel::init ( )

Intialize member data.

virtual void BlisModel::readInstance ( const char *  dataFile) [virtual]

Read in the instance data.

virtual void BlisModel::readParameters ( const int  argnum,
const char *const *  arglist 
) [virtual]

Read in Alps, Blis parameters.

virtual void BlisModel::writeParameters ( std::ostream &  outstream) const [virtual]

Write out parameters.

virtual AlpsTreeNode* BlisModel::createRoot ( ) [virtual]

Create the root node based on model.

virtual bool BlisModel::setupSelf ( ) [virtual]

Do necessary work to make model usable.

Return success or not.

virtual void BlisModel::setSolver ( OsiSolverInterface *  si) [inline, virtual]

Set lp solver.

Definition at line 308 of file BlisModel.h.

virtual OsiSolverInterface* BlisModel::solver ( ) [inline, virtual]

Get lp solver.

Definition at line 311 of file BlisModel.h.

bool BlisModel::resolve ( )

Resolving a lp.

void BlisModel::setActiveNode ( AlpsTreeNode *  node) [inline]

Set active node.

Definition at line 317 of file BlisModel.h.

void BlisModel::setSolEstimate ( double  est) [inline]

Set the solution estimate of the active node.

Definition at line 320 of file BlisModel.h.

int BlisModel::getNumStrong ( ) [inline]

Get number of strong branchings.

Definition at line 323 of file BlisModel.h.

void BlisModel::addNumStrong ( int  num = 1) [inline]

Add num to number of strong branchings.

Definition at line 326 of file BlisModel.h.

double* BlisModel::getObjCoef ( ) const [inline]

Get objective coefficients.

Definition at line 333 of file BlisModel.h.

const double* BlisModel::getColLower ( ) [inline]

Get column lower bound.

Definition at line 336 of file BlisModel.h.

const double* BlisModel::getColUpper ( ) [inline]

Get column upper bound.

Definition at line 339 of file BlisModel.h.

int BlisModel::getNumCols ( ) [inline]

Get number of columns.

Definition at line 342 of file BlisModel.h.

int BlisModel::getNumRows ( ) [inline]

Get number of rows.

Definition at line 345 of file BlisModel.h.

double* BlisModel::origVarLB ( ) [inline]

Get original variable bounds arrary.

Definition at line 348 of file BlisModel.h.

double* BlisModel::origVarUB ( ) [inline]

Definition at line 349 of file BlisModel.h.

double* BlisModel::origConLB ( ) [inline]

Get original constraint bounds arrary.

Definition at line 352 of file BlisModel.h.

double* BlisModel::origConUB ( ) [inline]

Definition at line 353 of file BlisModel.h.

double* BlisModel::startVarLB ( ) [inline]

The starting variable bounds arrary of a subproblem (internal use).

Definition at line 356 of file BlisModel.h.

double* BlisModel::startVarUB ( ) [inline]

Definition at line 357 of file BlisModel.h.

double* BlisModel::startConLB ( ) [inline]

The starting constraint bounds arrary of a subproblem (internal use).

Definition at line 360 of file BlisModel.h.

double* BlisModel::startConUB ( ) [inline]

Definition at line 361 of file BlisModel.h.

int* BlisModel::tempVarLBPos ( ) [inline]

Temparory storage.

Definition at line 364 of file BlisModel.h.

int* BlisModel::tempVarUBPos ( ) [inline]

Definition at line 365 of file BlisModel.h.

int* BlisModel::tempConLBPos ( ) [inline]

Definition at line 366 of file BlisModel.h.

int* BlisModel::tempConUBPos ( ) [inline]

Definition at line 367 of file BlisModel.h.

double BlisModel::getLpObjValue ( ) const [inline]

Get current objective function value.

Definition at line 374 of file BlisModel.h.

const double* BlisModel::getLpSolution ( ) const [inline]

Get active lp solution.

Definition at line 377 of file BlisModel.h.

int BlisModel::getNumSolutions ( ) const [inline]

Return the stored lp solution.

Get number of solutions.

Definition at line 387 of file BlisModel.h.

int BlisModel::getNumHeurSolutions ( ) const [inline]

Get number of heuristic solutions.

Definition at line 390 of file BlisModel.h.

double* BlisModel::incumbent ( ) [inline]

Return best ip solution found so far.

Definition at line 393 of file BlisModel.h.

bool BlisModel::setBestSolution ( BLIS_SOL_TYPE  how,
double &  objectiveValue,
const double *  solution,
bool  fixVariables = false 
)

Record a new incumbent solution and update objectiveValue.

double BlisModel::getCutoff ( ) const [inline]

Get cut off value.

Definition at line 402 of file BlisModel.h.

void BlisModel::setCutoff ( double  co) [inline]

Set cut off value.

Definition at line 405 of file BlisModel.h.

bool BlisModel::feasibleSolution ( int &  numIntegerInfs)

Test the current lp solution for feasiblility.

Scan integer objects for indications of infeasibility.

bool BlisModel::feasibleSolution ( int &  numIntegerInfs,
int &  numObjectInfs 
)

Test the current 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).

BcpsBranchStrategy* BlisModel::branchStrategy ( ) const [inline]

Get the current branching strategy.

Definition at line 432 of file BlisModel.h.

void BlisModel::setBranchingMethod ( BcpsBranchStrategy method) [inline]

Set the branching strategy.

Definition at line 436 of file BlisModel.h.

void BlisModel::setBranchingMethod ( BcpsBranchStrategy method) [inline]

Set the branching stratedy.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 442 of file BlisModel.h.

int BlisModel::numObjects ( ) const [inline]

Get the number of objects.

Definition at line 452 of file BlisModel.h.

void BlisModel::setNumObjects ( int  num) [inline]

Set the number of objects.

Definition at line 455 of file BlisModel.h.

BcpsObject** BlisModel::objects ( ) [inline]

Get the array of objects.

Definition at line 458 of file BlisModel.h.

BcpsObject* BlisModel::objects ( int  which) [inline]

Get the specified object.

Definition at line 461 of file BlisModel.h.

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::findIntegers ( bool  startAgain)

Identify integer variable.

int BlisModel::getNumIntVars ( ) const [inline]

Get number of integers.

Definition at line 475 of file BlisModel.h.

int* BlisModel::getIntVars ( ) const [inline]

Get integer indices.

Definition at line 478 of file BlisModel.h.

bool BlisModel::checkInteger ( double  value) const [inline]

Check if a value is integer.

Definition at line 481 of file BlisModel.h.

void BlisModel::addHeuristic ( BlisHeuristic heur)

Add a heuristic.

BlisHeuristic* BlisModel::heuristics ( int  i) const [inline]

Get a specific heuristic.

Definition at line 500 of file BlisModel.h.

int BlisModel::numHeuristics ( ) const [inline]

Get the number of heuristics.

Definition at line 503 of file BlisModel.h.

void BlisModel::addCutGenerator ( CglCutGenerator *  generator,
const char *  name = NULL,
int  strategy = 0,
bool  normal = true,
bool  atSolution = false,
bool  whenInfeasible = false 
)

Add a cut generator.

BlisConGenerator* BlisModel::cutGenerators ( int  i) const [inline]

Get a specific cut generator.

Definition at line 518 of file BlisModel.h.

int BlisModel::numCutGenerators ( ) const [inline]

Get the number of cut generators.

Definition at line 521 of file BlisModel.h.

int BlisModel::getMaxNumCons ( ) const [inline]

Get the max number of cuts can be generated.

Definition at line 524 of file BlisModel.h.

void BlisModel::setMaxNumCons ( int  m) [inline]

Set the max number of cuts can be generated.

Definition at line 527 of file BlisModel.h.

BcpsConstraintPool* BlisModel::constraintPool ( ) [inline]

Access constraint pool.

Definition at line 530 of file BlisModel.h.

int BlisModel::getNumOldConstraints ( ) const [inline]

Get number of old constraints.

Definition at line 534 of file BlisModel.h.

void BlisModel::setNumOldConstraints ( int  num) [inline]

Set number of old constraints.

Definition at line 537 of file BlisModel.h.

int BlisModel::getOldConstraintsSize ( ) const [inline]

Get max number of old constraints.

Definition at line 540 of file BlisModel.h.

void BlisModel::setOldConstraintsSize ( int  num) [inline]

Set max number of old constraints.

Definition at line 543 of file BlisModel.h.

BlisConstraint** BlisModel::oldConstraints ( ) [inline]

Access old constraints.

Definition at line 546 of file BlisModel.h.

void BlisModel::setOldConstraints ( BlisConstraint **  old) [inline]

set old constraints.

Definition at line 549 of file BlisModel.h.

void BlisModel::delOldConstraints ( ) [inline]

Set max number of old constraints.

Definition at line 552 of file BlisModel.h.

int BlisModel::useCons ( ) const [inline]

Query constraint generation strategy.

Definition at line 559 of file BlisModel.h.

void BlisModel::setUseCons ( int  u) [inline]

Set constraint generation strategy.

Definition at line 562 of file BlisModel.h.

int BlisModel::getDenseConCutoff ( ) const [inline]

Get the thresheld to be considered as a dense constraint.

Definition at line 565 of file BlisModel.h.

void BlisModel::setDenseConCutoff ( int  cutoff) [inline]

Set the thresheld to be considered as a dense constraint.

Definition at line 568 of file BlisModel.h.

double* BlisModel::getConRandoms ( ) const [inline]

Get randoms for check parallel constraints.

Definition at line 571 of file BlisModel.h.

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]

Priorities.

Definition at line 596 of file BlisModel.h.

int BlisModel::priority ( int  sequence) const [inline]

Returns priority level for an object (or 1000 if no priorities exist)

Definition at line 599 of file BlisModel.h.

const double BlisModel::getNodeWeight ( ) const [inline]

Definition at line 604 of file BlisModel.h.

void BlisModel::setNodeWeight ( double  nw) [inline]

Definition at line 606 of file BlisModel.h.

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 617 of file BlisModel.h.

int BlisModel::getNumIterations ( ) const [inline]

Get how many iterations it took to solve the problem.

Definition at line 620 of file BlisModel.h.

int BlisModel::getAveIterations ( ) const [inline]

Get the average iterations it took to solve a lp.

Definition at line 623 of file BlisModel.h.

void BlisModel::addNumNodes ( int  newNodes = 1) [inline]

Increment node count.

Definition at line 626 of file BlisModel.h.

void BlisModel::addNumIterations ( int  newIter) [inline]

Increment Iteration count.

Definition at line 629 of file BlisModel.h.

CoinMessageHandler* BlisModel::messageHandler ( ) const [inline]

Get the message handler.

Definition at line 635 of file BlisModel.h.

BlisParams* BlisModel::BlisPar ( ) [inline]

Access parameters.

Definition at line 639 of file BlisModel.h.

int BlisModel::getHotstartStrategy ( ) [inline]

Don't know what it is.

Definition at line 643 of file BlisModel.h.

void BlisModel::setHotstartStrategy ( int  value) [inline]

Definition at line 644 of file BlisModel.h.

virtual void BlisModel::registerKnowledge ( ) [virtual]

Register knowledge.

virtual AlpsEncoded* BlisModel::encode ( ) const [virtual]

The method that encodes the model into a encoded object.

virtual void BlisModel::decodeToSelf ( AlpsEncoded &  ) [virtual]

The method that decodes the model from a encoded object.

void BlisModel::gutsOfDestructor ( )

Actual destructor.

void BlisModel::init ( )

Intialize member data.

virtual void BlisModel::readInstance ( const char *  dataFile) [virtual]

Read in the instance data.

virtual void BlisModel::readParameters ( const int  argnum,
const char *const *  arglist 
) [virtual]

Read in Alps, Blis parameters.

virtual void BlisModel::writeParameters ( std::ostream &  outstream) const [virtual]

Write out parameters.

virtual AlpsTreeNode* BlisModel::createRoot ( ) [virtual]

Create the root node based on model.

virtual bool BlisModel::setupSelf ( ) [virtual]

Do necessary work to make model usable.

Return success or not.

virtual void BlisModel::setSolver ( OsiSolverInterface *  si) [inline, virtual]

Set lp solver.

Definition at line 308 of file BlisModel.h.

virtual OsiSolverInterface* BlisModel::solver ( ) [inline, virtual]

Get lp solver.

Definition at line 311 of file BlisModel.h.

bool BlisModel::resolve ( )

Resolving a lp.

void BlisModel::setActiveNode ( AlpsTreeNode *  node) [inline]

Set active node.

Definition at line 317 of file BlisModel.h.

void BlisModel::setSolEstimate ( double  est) [inline]

Set the solution estimate of the active node.

Definition at line 320 of file BlisModel.h.

int BlisModel::getNumStrong ( ) [inline]

Get number of strong branchings.

Definition at line 323 of file BlisModel.h.

void BlisModel::addNumStrong ( int  num = 1) [inline]

Add num to number of strong branchings.

Definition at line 326 of file BlisModel.h.

double* BlisModel::getObjCoef ( ) const [inline]

Get objective coefficients.

Definition at line 333 of file BlisModel.h.

const double* BlisModel::getColLower ( ) [inline]

Get column lower bound.

Definition at line 336 of file BlisModel.h.

const double* BlisModel::getColUpper ( ) [inline]

Get column upper bound.

Definition at line 339 of file BlisModel.h.

int BlisModel::getNumCols ( ) [inline]

Get number of columns.

Definition at line 342 of file BlisModel.h.

int BlisModel::getNumRows ( ) [inline]

Get number of rows.

Definition at line 345 of file BlisModel.h.

double* BlisModel::origVarLB ( ) [inline]

Get original variable bounds arrary.

Definition at line 348 of file BlisModel.h.

double* BlisModel::origVarUB ( ) [inline]

Definition at line 349 of file BlisModel.h.

double* BlisModel::origConLB ( ) [inline]

Get original constraint bounds arrary.

Definition at line 352 of file BlisModel.h.

double* BlisModel::origConUB ( ) [inline]

Definition at line 353 of file BlisModel.h.

double* BlisModel::startVarLB ( ) [inline]

The starting variable bounds arrary of a subproblem (internal use).

Definition at line 356 of file BlisModel.h.

double* BlisModel::startVarUB ( ) [inline]

Definition at line 357 of file BlisModel.h.

double* BlisModel::startConLB ( ) [inline]

The starting constraint bounds arrary of a subproblem (internal use).

Definition at line 360 of file BlisModel.h.

double* BlisModel::startConUB ( ) [inline]

Definition at line 361 of file BlisModel.h.

int* BlisModel::tempVarLBPos ( ) [inline]

Temparory storage.

Definition at line 364 of file BlisModel.h.

int* BlisModel::tempVarUBPos ( ) [inline]

Definition at line 365 of file BlisModel.h.

int* BlisModel::tempConLBPos ( ) [inline]

Definition at line 366 of file BlisModel.h.

int* BlisModel::tempConUBPos ( ) [inline]

Definition at line 367 of file BlisModel.h.

double BlisModel::getLpObjValue ( ) const [inline]

Get current objective function value.

Definition at line 374 of file BlisModel.h.

const double* BlisModel::getLpSolution ( ) const [inline]

Get active lp solution.

Definition at line 377 of file BlisModel.h.

int BlisModel::getNumSolutions ( ) const [inline]

Return the stored lp solution.

Get number of solutions.

Definition at line 387 of file BlisModel.h.

int BlisModel::getNumHeurSolutions ( ) const [inline]

Get number of heuristic solutions.

Definition at line 390 of file BlisModel.h.

double* BlisModel::incumbent ( ) [inline]

Return best ip solution found so far.

Definition at line 393 of file BlisModel.h.

bool BlisModel::setBestSolution ( BLIS_SOL_TYPE  how,
double &  objectiveValue,
const double *  solution,
bool  fixVariables = false 
)

Record a new incumbent solution and update objectiveValue.

double BlisModel::getCutoff ( ) const [inline]

Get cut off value.

Definition at line 402 of file BlisModel.h.

void BlisModel::setCutoff ( double  co) [inline]

Set cut off value.

Definition at line 405 of file BlisModel.h.

bool BlisModel::feasibleSolution ( int &  numIntegerInfs)

Test the current lp solution for feasiblility.

Scan integer objects for indications of infeasibility.

bool BlisModel::feasibleSolution ( int &  numIntegerInfs,
int &  numObjectInfs 
)

Test the current 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).

BcpsBranchStrategy* BlisModel::branchStrategy ( ) const [inline]

Get the current branching strategy.

Definition at line 432 of file BlisModel.h.

void BlisModel::setBranchingMethod ( BcpsBranchStrategy method) [inline]

Set the branching strategy.

Definition at line 436 of file BlisModel.h.

void BlisModel::setBranchingMethod ( BcpsBranchStrategy method) [inline]

Set the branching stratedy.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 442 of file BlisModel.h.

int BlisModel::numObjects ( ) const [inline]

Get the number of objects.

Definition at line 452 of file BlisModel.h.

void BlisModel::setNumObjects ( int  num) [inline]

Set the number of objects.

Definition at line 455 of file BlisModel.h.

BcpsObject** BlisModel::objects ( ) [inline]

Get the array of objects.

Definition at line 458 of file BlisModel.h.

BcpsObject* BlisModel::objects ( int  which) [inline]

Get the specified object.

Definition at line 461 of file BlisModel.h.

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::findIntegers ( bool  startAgain)

Identify integer variable.

int BlisModel::getNumIntVars ( ) const [inline]

Get number of integers.

Definition at line 475 of file BlisModel.h.

int* BlisModel::getIntVars ( ) const [inline]

Get integer indices.

Definition at line 478 of file BlisModel.h.

bool BlisModel::checkInteger ( double  value) const [inline]

Check if a value is integer.

Definition at line 481 of file BlisModel.h.

void BlisModel::addHeuristic ( BlisHeuristic heur)

Add a heuristic.

BlisHeuristic* BlisModel::heuristics ( int  i) const [inline]

Get a specific heuristic.

Definition at line 500 of file BlisModel.h.

int BlisModel::numHeuristics ( ) const [inline]

Get the number of heuristics.

Definition at line 503 of file BlisModel.h.

void BlisModel::addCutGenerator ( CglCutGenerator *  generator,
const char *  name = NULL,
int  strategy = 0,
bool  normal = true,
bool  atSolution = false,
bool  whenInfeasible = false 
)

Add a cut generator.

BlisConGenerator* BlisModel::cutGenerators ( int  i) const [inline]

Get a specific cut generator.

Definition at line 518 of file BlisModel.h.

int BlisModel::numCutGenerators ( ) const [inline]

Get the number of cut generators.

Definition at line 521 of file BlisModel.h.

int BlisModel::getMaxNumCons ( ) const [inline]

Get the max number of cuts can be generated.

Definition at line 524 of file BlisModel.h.

void BlisModel::setMaxNumCons ( int  m) [inline]

Set the max number of cuts can be generated.

Definition at line 527 of file BlisModel.h.

BcpsConstraintPool* BlisModel::constraintPool ( ) [inline]

Access constraint pool.

Definition at line 530 of file BlisModel.h.

int BlisModel::getNumOldConstraints ( ) const [inline]

Get number of old constraints.

Definition at line 534 of file BlisModel.h.

void BlisModel::setNumOldConstraints ( int  num) [inline]

Set number of old constraints.

Definition at line 537 of file BlisModel.h.

int BlisModel::getOldConstraintsSize ( ) const [inline]

Get max number of old constraints.

Definition at line 540 of file BlisModel.h.

void BlisModel::setOldConstraintsSize ( int  num) [inline]

Set max number of old constraints.

Definition at line 543 of file BlisModel.h.

BlisConstraint** BlisModel::oldConstraints ( ) [inline]

Access old constraints.

Definition at line 546 of file BlisModel.h.

void BlisModel::setOldConstraints ( BlisConstraint **  old) [inline]

set old constraints.

Definition at line 549 of file BlisModel.h.

void BlisModel::delOldConstraints ( ) [inline]

Set max number of old constraints.

Definition at line 552 of file BlisModel.h.

int BlisModel::useCons ( ) const [inline]

Query constraint generation strategy.

Definition at line 559 of file BlisModel.h.

void BlisModel::setUseCons ( int  u) [inline]

Set constraint generation strategy.

Definition at line 562 of file BlisModel.h.

int BlisModel::getDenseConCutoff ( ) const [inline]

Get the thresheld to be considered as a dense constraint.

Definition at line 565 of file BlisModel.h.

void BlisModel::setDenseConCutoff ( int  cutoff) [inline]

Set the thresheld to be considered as a dense constraint.

Definition at line 568 of file BlisModel.h.

double* BlisModel::getConRandoms ( ) const [inline]

Get randoms for check parallel constraints.

Definition at line 571 of file BlisModel.h.

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]

Priorities.

Definition at line 596 of file BlisModel.h.

int BlisModel::priority ( int  sequence) const [inline]

Returns priority level for an object (or 1000 if no priorities exist)

Definition at line 599 of file BlisModel.h.

const double BlisModel::getNodeWeight ( ) const [inline]

Definition at line 604 of file BlisModel.h.

void BlisModel::setNodeWeight ( double  nw) [inline]

Definition at line 606 of file BlisModel.h.

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 617 of file BlisModel.h.

int BlisModel::getNumIterations ( ) const [inline]

Get how many iterations it took to solve the problem.

Definition at line 620 of file BlisModel.h.

int BlisModel::getAveIterations ( ) const [inline]

Get the average iterations it took to solve a lp.

Definition at line 623 of file BlisModel.h.

void BlisModel::addNumNodes ( int  newNodes = 1) [inline]

Increment node count.

Definition at line 626 of file BlisModel.h.

void BlisModel::addNumIterations ( int  newIter) [inline]

Increment Iteration count.

Definition at line 629 of file BlisModel.h.

CoinMessageHandler* BlisModel::messageHandler ( ) const [inline]

Get the message handler.

Definition at line 635 of file BlisModel.h.

BlisParams* BlisModel::BlisPar ( ) [inline]

Access parameters.

Definition at line 639 of file BlisModel.h.

int BlisModel::getHotstartStrategy ( ) [inline]

Don't know what it is.

Definition at line 643 of file BlisModel.h.

void BlisModel::setHotstartStrategy ( int  value) [inline]

Definition at line 644 of file BlisModel.h.

virtual void BlisModel::registerKnowledge ( ) [virtual]

Register knowledge.

virtual AlpsEncoded* BlisModel::encode ( ) const [virtual]

The method that encodes the model into a encoded object.

virtual void BlisModel::decodeToSelf ( AlpsEncoded &  ) [virtual]

The method that decodes the model from a encoded object.


Member Data Documentation

OsiSolverInterface * BlisModel::lpSolver_ [private]

Lp solver.

Definition at line 70 of file BlisModel.h.

CoinPackedMatrix * BlisModel::colMatrix_ [private]

Orignial column majored matrix.

(For MPS file, etc.)

Definition at line 77 of file BlisModel.h.

double * BlisModel::origVarLB_ [private]

Original variable and constraint bounds.

Definition at line 81 of file BlisModel.h.

double * BlisModel::origVarUB_ [private]

Original variable and constraint bounds.

Definition at line 82 of file BlisModel.h.

double * BlisModel::origConLB_ [private]

Original variable and constraint bounds.

Definition at line 83 of file BlisModel.h.

double * BlisModel::origConUB_ [private]

Original variable and constraint bounds.

Definition at line 84 of file BlisModel.h.

int BlisModel::numCols_ [private]

Number of columns/rows/elements in active subproblem.

Initaially is the same as numCoreVariables.

Definition at line 90 of file BlisModel.h.

int BlisModel::numRows_ [private]

Number of columns/rows/elements in active subproblem.

Initaially is the same as numCoreVariables.

Definition at line 91 of file BlisModel.h.

int BlisModel::numElems_ [private]

Number of columns/rows/elements in active subproblem.

Initaially is the same as numCoreVariables.

Definition at line 92 of file BlisModel.h.

double BlisModel::objSense_ [private]

Objective function.

Definition at line 97 of file BlisModel.h.

double * BlisModel::objCoef_ [private]

Objective function.

Definition at line 98 of file BlisModel.h.

int BlisModel::numIntVars_ [private]

Column types.

Definition at line 103 of file BlisModel.h.

int * BlisModel::intVars_ [private]

Column types.

Definition at line 104 of file BlisModel.h.

char * BlisModel::colType_ [private]

Column types.

Definition at line 105 of file BlisModel.h.

int BlisModel::numSolutions_ [private]

Definition at line 112 of file BlisModel.h.

Definition at line 113 of file BlisModel.h.

double BlisModel::incObjValue_ [private]

Saved lp solution for temporatory usage.

Incumbent objective value.

Definition at line 119 of file BlisModel.h.

double * BlisModel::incumbent_ [private]

Incumbent.

Definition at line 122 of file BlisModel.h.

double BlisModel::cutoff_ [private]

Cutoff in lp solver.

Definition at line 125 of file BlisModel.h.

double BlisModel::cutoffInc_ [private]

Cutoff increment.

Definition at line 128 of file BlisModel.h.

double * BlisModel::startVarLB_ [private]

Starting var/con bounds for processing each node.

Definition at line 136 of file BlisModel.h.

double * BlisModel::startVarUB_ [private]

Starting var/con bounds for processing each node.

Definition at line 137 of file BlisModel.h.

double * BlisModel::startConLB_ [private]

Starting var/con bounds for processing each node.

Definition at line 138 of file BlisModel.h.

double * BlisModel::startConUB_ [private]

Starting var/con bounds for processing each node.

Definition at line 139 of file BlisModel.h.

Variable selection function.

Definition at line 143 of file BlisModel.h.

Definition at line 148 of file BlisModel.h.

int BlisModel::numObjects_ [private]

Number of objects.

Definition at line 151 of file BlisModel.h.

The set of objects.

Definition at line 154 of file BlisModel.h.

int * BlisModel::priority_ [private]

Priorities of integer object.

Definition at line 157 of file BlisModel.h.

AlpsTreeNode * BlisModel::activeNode_ [private]

Active node.

Definition at line 160 of file BlisModel.h.

int BlisModel::numStrong_ [private]

Number of strong branching.

Definition at line 163 of file BlisModel.h.

double BlisModel::nodeWeight_ [private]

Definition at line 166 of file BlisModel.h.

Number of heuristics.

Definition at line 173 of file BlisModel.h.

The list of heuristics.

Definition at line 176 of file BlisModel.h.

int BlisModel::useCons_ [private]

If use cut generators.

Definition at line 183 of file BlisModel.h.

Number of cut generators used.

Definition at line 186 of file BlisModel.h.

int BlisModel::maxNumCons_ [private]

Number of cuts can be generators.

Definition at line 189 of file BlisModel.h.

The list of cut generators used.

Definition at line 192 of file BlisModel.h.

Store all the cuts.

Definition at line 195 of file BlisModel.h.

Temporary store old cuts at a node when installing a node.

Definition at line 198 of file BlisModel.h.

The memory size allocated for oldConstraints_.

Definition at line 201 of file BlisModel.h.

Number of old constraints.

Definition at line 204 of file BlisModel.h.

double * BlisModel::conRandoms_ [private]

Random keys.

Definition at line 207 of file BlisModel.h.

Dense constraint cutoff.

Definition at line 210 of file BlisModel.h.

Blis parameters.

Definition at line 217 of file BlisModel.h.

CoinMessageHandler * BlisModel::handler_ [private]

Message handler.

Definition at line 220 of file BlisModel.h.

int BlisModel::numNodes_ [private]

Number of processed nodes.

Definition at line 223 of file BlisModel.h.

Number of lp(Simplex) iterations.

Definition at line 226 of file BlisModel.h.

Average number of lp iterations to solve a subproblem.

Definition at line 229 of file BlisModel.h.

int * BlisModel::tempVarLBPos_ [private]

Tempory storage for var/con indices.

Definition at line 237 of file BlisModel.h.

int * BlisModel::tempVarUBPos_ [private]

Tempory storage for var/con indices.

Definition at line 238 of file BlisModel.h.

int * BlisModel::tempConLBPos_ [private]

Tempory storage for var/con indices.

Definition at line 239 of file BlisModel.h.

int * BlisModel::tempConUBPos_ [private]

Tempory storage for var/con indices.

Definition at line 240 of file BlisModel.h.

If root node.

Definition at line 246 of file BlisModel.h.

Search starting time.

Definition at line 249 of file BlisModel.h.

Max solution time.

Definition at line 252 of file BlisModel.h.

Integer tolerance.

Definition at line 255 of file BlisModel.h.

Relative optimal gap.

Definition at line 258 of file BlisModel.h.

Absolute optimal gap.

Definition at line 261 of file BlisModel.h.

If use heuristics.

Definition at line 264 of file BlisModel.h.

Store new cuts in each pass.

Definition at line 267 of file BlisModel.h.

std::vector< AlpsTreeNode * > BlisModel::leafToRootPath

Record the path from leaf to root.

Definition at line 272 of file BlisModel.h.


The documentation for this class was generated from the following files: