CbcSimpleIntegerDynamicPseudoCost Class Reference

Define a single integer class but with dynamic pseudo costs. More...

#include <CbcBranchDynamic.hpp>

Inheritance diagram for CbcSimpleIntegerDynamicPseudoCost:
CbcSimpleInteger CbcObject

List of all members.

Public Member Functions

 CbcSimpleIntegerDynamicPseudoCost ()
 CbcSimpleIntegerDynamicPseudoCost (CbcModel *model, int iColumn, double breakEven=0.5)
 CbcSimpleIntegerDynamicPseudoCost (CbcModel *model, int iColumn, double downDynamicPseudoCost, double upDynamicPseudoCost)
 CbcSimpleIntegerDynamicPseudoCost (CbcModel *model, int dummy, int iColumn, double downDynamicPseudoCost, double upDynamicPseudoCost)
 CbcSimpleIntegerDynamicPseudoCost (const CbcSimpleIntegerDynamicPseudoCost &)
virtual CbcObjectclone () const
 Clone.
CbcSimpleIntegerDynamicPseudoCostoperator= (const CbcSimpleIntegerDynamicPseudoCost &rhs)
virtual ~CbcSimpleIntegerDynamicPseudoCost ()
virtual double infeasibility (int &preferredWay) const
 Infeasibility - large is 0.5.
virtual CbcBranchingObjectcreateBranch (int way)
 Creates a branching object.
virtual double infeasibility (const OsiSolverInterface *solver, const OsiBranchingInformation *info, int &preferredWay) const
 Infeasibility - large is 0.5.
virtual CbcBranchingObjectcreateBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
 Create a branching object and indicate which way to branch first.
void fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
 Fills in a created branching object.
virtual CbcObjectUpdateData createUpdateInformation (const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject)
 Pass in information on branch just done and create CbcObjectUpdateData instance.
virtual void updateInformation (const CbcObjectUpdateData &data)
 Update object by CbcObjectUpdateData.
void copySome (const CbcSimpleIntegerDynamicPseudoCost *otherObject)
 Copy some information i.e. just variable stuff.
virtual void updateBefore (const OsiObject *rhs)
 Updates stuff like pseudocosts before threads.
virtual void updateAfter (const OsiObject *rhs, const OsiObject *baseObject)
 Updates stuff like pseudocosts after threads finished.
void updateAfterMini (int numberDown, int numberDownInfeasible, double sumDown, int numberUp, int numberUpInfeasible, double sumUp)
 Updates stuff like pseudocosts after mini branch and bound.
virtual OsiSolverBranch * solverBranch () const
 Create an OsiSolverBranch object.
double downDynamicPseudoCost () const
 Down pseudo cost.
void setDownDynamicPseudoCost (double value)
 Set down pseudo cost.
double upDynamicPseudoCost () const
 Up pseudo cost.
void setUpDynamicPseudoCost (double value)
 Set up pseudo cost.
double upDownSeparator () const
 Up down separator.
void setUpDownSeparator (double value)
 Set up down separator.
double sumDownCost () const
 Down sum cost.
void setSumDownCost (double value)
 Set down sum cost.
void addToSumDownCost (double value)
 Add to down sum cost and set last and square.
double sumUpCost () const
 Up sum cost.
void setSumUpCost (double value)
 Set up sum cost.
void addToSumUpCost (double value)
 Add to up sum cost and set last and square.
double sumDownChange () const
 Down sum change.
void setSumDownChange (double value)
 Set down sum change.
void addToSumDownChange (double value)
 Add to down sum change.
double sumUpChange () const
 Up sum change.
void setSumUpChange (double value)
 Set up sum change.
void addToSumUpChange (double value)
 Add to up sum change and set last and square.
double sumDownDecrease () const
 Sum down decrease number infeasibilities from strong or actual.
void setSumDownDecrease (double value)
 Set sum down decrease number infeasibilities from strong or actual.
void addToSumDownDecrease (double value)
 Add to sum down decrease number infeasibilities from strong or actual.
double sumUpDecrease () const
 Sum up decrease number infeasibilities from strong or actual.
void setSumUpDecrease (double value)
 Set sum up decrease number infeasibilities from strong or actual.
void addToSumUpDecrease (double value)
 Add to sum up decrease number infeasibilities from strong or actual.
int numberTimesDown () const
 Down number times.
void setNumberTimesDown (int value)
 Set down number times.
void incrementNumberTimesDown ()
 Increment down number times.
int numberTimesUp () const
 Up number times.
void setNumberTimesUp (int value)
 Set up number times.
void incrementNumberTimesUp ()
 Increment up number times.
int numberTimesDownInfeasible () const
 Down number times infeasible.
void setNumberTimesDownInfeasible (int value)
 Set down number times infeasible.
void incrementNumberTimesDownInfeasible ()
 Increment down number times infeasible.
int numberTimesUpInfeasible () const
 Up number times infeasible.
void setNumberTimesUpInfeasible (int value)
 Set up number times infeasible.
void incrementNumberTimesUpInfeasible ()
 Increment up number times infeasible.
int numberBeforeTrust () const
 Number of times before trusted.
void setNumberBeforeTrust (int value)
 Set number of times before trusted.
void incrementNumberBeforeTrust ()
 Increment number of times before trusted.
virtual double upEstimate () const
 Return "up" estimate.
virtual double downEstimate () const
 Return "down" estimate (default 1.0e-5).
int method () const
 method - see below for details
void setMethod (int value)
 Set method.
void setDownInformation (double changeObjectiveDown, int changeInfeasibilityDown)
 Pass in information on a down branch.
void setUpInformation (double changeObjectiveUp, int changeInfeasibilityUp)
 Pass in information on a up branch.
void setProbingInformation (int fixedDown, int fixedUp)
 Pass in probing information.
void print (int type=0, double value=0.0) const
 Print - 0 -summary, 1 just before strong.
bool same (const CbcSimpleIntegerDynamicPseudoCost *obj) const
 Same - returns true if contents match(ish).

Protected Attributes

double downDynamicPseudoCost_
 data
double upDynamicPseudoCost_
 Up pseudo cost.
double upDownSeparator_
 Up/down separator If >0.0 then do first branch up if value-floor(value) >= this value.
double sumDownCost_
 Sum down cost from strong or actual.
double sumUpCost_
 Sum up cost from strong or actual.
double sumDownChange_
 Sum of all changes to x when going down.
double sumUpChange_
 Sum of all changes to x when going up.
double sumDownCostSquared_
 Sum down cost from strong or actual squared.
double sumUpCostSquared_
 Sum up cost from strong or actual squared.
double sumDownDecrease_
 Sum down decrease number infeasibilities from strong or actual.
double sumUpDecrease_
 Sum up decrease number infeasibilities from strong or actual.
double lastDownCost_
 Last down cost from strong (i.e. as computed by last strong).
double lastUpCost_
 Last up cost from strong (i.e. as computed by last strong).
int lastDownDecrease_
 Last down decrease number infeasibilities from strong (i.e. as computed by last strong).
int lastUpDecrease_
 Last up decrease number infeasibilities from strong (i.e. as computed by last strong).
int numberTimesDown_
 Number of times we have gone down.
int numberTimesUp_
 Number of times we have gone up.
int numberTimesDownInfeasible_
 Number of times we have been infeasible going down.
int numberTimesUpInfeasible_
 Number of times we have been infeasible going up.
int numberBeforeTrust_
 Number of branches before we trust.
int numberTimesDownLocalFixed_
 Number of local probing fixings going down.
int numberTimesUpLocalFixed_
 Number of local probing fixings going up.
double numberTimesDownTotalFixed_
 Number of total probing fixings going down.
double numberTimesUpTotalFixed_
 Number of total probing fixings going up.
int numberTimesProbingTotal_
 Number of times probing done.
int numberTimesInfeasible_
int method_
 Method - 0 - pseudo costs 1 - probing.

Detailed Description

Define a single integer class but with dynamic pseudo costs.

Based on work by Achterberg, Koch and Martin.

It is wild overkill but to keep design all twiddly things are in each. This could be used for fine tuning.

Definition at line 19 of file CbcBranchDynamic.hpp.


Constructor & Destructor Documentation

CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost (  ) 
CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost ( CbcModel model,
int  iColumn,
double  breakEven = 0.5 
)
CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost ( CbcModel model,
int  iColumn,
double  downDynamicPseudoCost,
double  upDynamicPseudoCost 
)
CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost ( CbcModel model,
int  dummy,
int  iColumn,
double  downDynamicPseudoCost,
double  upDynamicPseudoCost 
)
CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost ( const CbcSimpleIntegerDynamicPseudoCost  ) 
virtual CbcSimpleIntegerDynamicPseudoCost::~CbcSimpleIntegerDynamicPseudoCost (  )  [virtual]

Member Function Documentation

virtual CbcObject* CbcSimpleIntegerDynamicPseudoCost::clone (  )  const [virtual]

Clone.

Reimplemented from CbcSimpleInteger.

CbcSimpleIntegerDynamicPseudoCost& CbcSimpleIntegerDynamicPseudoCost::operator= ( const CbcSimpleIntegerDynamicPseudoCost rhs  ) 

Reimplemented from CbcSimpleInteger.

virtual double CbcSimpleIntegerDynamicPseudoCost::infeasibility ( int &  preferredWay  )  const [virtual]

Infeasibility - large is 0.5.

Reimplemented from CbcSimpleInteger.

virtual CbcBranchingObject* CbcSimpleIntegerDynamicPseudoCost::createBranch ( int  way  )  [virtual]

Creates a branching object.

Reimplemented from CbcSimpleInteger.

virtual double CbcSimpleIntegerDynamicPseudoCost::infeasibility ( const OsiSolverInterface *  solver,
const OsiBranchingInformation *  info,
int &  preferredWay 
) const [virtual]

Infeasibility - large is 0.5.

Reimplemented from CbcSimpleInteger.

virtual CbcBranchingObject* CbcSimpleIntegerDynamicPseudoCost::createBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info,
int  way 
) [virtual]

Create a branching object and indicate which way to branch first.

The branching object has to know how to create branches (fix variables, etc.)

Reimplemented from CbcSimpleInteger.

void CbcSimpleIntegerDynamicPseudoCost::fillCreateBranch ( CbcIntegerBranchingObject branching,
const OsiBranchingInformation *  info,
int  way 
)

Fills in a created branching object.

Reimplemented from CbcSimpleInteger.

virtual CbcObjectUpdateData CbcSimpleIntegerDynamicPseudoCost::createUpdateInformation ( const OsiSolverInterface *  solver,
const CbcNode node,
const CbcBranchingObject branchingObject 
) [virtual]

Pass in information on branch just done and create CbcObjectUpdateData instance.

If object does not need data then backward pointer will be NULL. Assumes can get information from solver

Reimplemented from CbcObject.

virtual void CbcSimpleIntegerDynamicPseudoCost::updateInformation ( const CbcObjectUpdateData data  )  [virtual]

Update object by CbcObjectUpdateData.

Reimplemented from CbcObject.

void CbcSimpleIntegerDynamicPseudoCost::copySome ( const CbcSimpleIntegerDynamicPseudoCost otherObject  ) 

Copy some information i.e. just variable stuff.

virtual void CbcSimpleIntegerDynamicPseudoCost::updateBefore ( const OsiObject *  rhs  )  [virtual]

Updates stuff like pseudocosts before threads.

virtual void CbcSimpleIntegerDynamicPseudoCost::updateAfter ( const OsiObject *  rhs,
const OsiObject *  baseObject 
) [virtual]

Updates stuff like pseudocosts after threads finished.

void CbcSimpleIntegerDynamicPseudoCost::updateAfterMini ( int  numberDown,
int  numberDownInfeasible,
double  sumDown,
int  numberUp,
int  numberUpInfeasible,
double  sumUp 
)

Updates stuff like pseudocosts after mini branch and bound.

virtual OsiSolverBranch* CbcSimpleIntegerDynamicPseudoCost::solverBranch (  )  const [virtual]

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

Reimplemented from CbcObject.

double CbcSimpleIntegerDynamicPseudoCost::downDynamicPseudoCost (  )  const [inline]

Down pseudo cost.

Definition at line 99 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setDownDynamicPseudoCost ( double  value  ) 

Set down pseudo cost.

double CbcSimpleIntegerDynamicPseudoCost::upDynamicPseudoCost (  )  const [inline]

Up pseudo cost.

Definition at line 105 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setUpDynamicPseudoCost ( double  value  ) 

Set up pseudo cost.

double CbcSimpleIntegerDynamicPseudoCost::upDownSeparator (  )  const [inline]

Up down separator.

Definition at line 111 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setUpDownSeparator ( double  value  )  [inline]

Set up down separator.

Definition at line 114 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownCost (  )  const [inline]

Down sum cost.

Definition at line 118 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumDownCost ( double  value  )  [inline]

Set down sum cost.

Definition at line 121 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumDownCost ( double  value  )  [inline]

Add to down sum cost and set last and square.

Definition at line 124 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpCost (  )  const [inline]

Up sum cost.

Definition at line 128 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumUpCost ( double  value  )  [inline]

Set up sum cost.

Definition at line 131 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumUpCost ( double  value  )  [inline]

Add to up sum cost and set last and square.

Definition at line 134 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownChange (  )  const [inline]

Down sum change.

Definition at line 138 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumDownChange ( double  value  )  [inline]

Set down sum change.

Definition at line 141 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumDownChange ( double  value  )  [inline]

Add to down sum change.

Definition at line 144 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpChange (  )  const [inline]

Up sum change.

Definition at line 148 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumUpChange ( double  value  )  [inline]

Set up sum change.

Definition at line 151 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumUpChange ( double  value  )  [inline]

Add to up sum change and set last and square.

Definition at line 154 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownDecrease (  )  const [inline]

Sum down decrease number infeasibilities from strong or actual.

Definition at line 158 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumDownDecrease ( double  value  )  [inline]

Set sum down decrease number infeasibilities from strong or actual.

Definition at line 161 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumDownDecrease ( double  value  )  [inline]

Add to sum down decrease number infeasibilities from strong or actual.

Definition at line 164 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpDecrease (  )  const [inline]

Sum up decrease number infeasibilities from strong or actual.

Definition at line 168 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setSumUpDecrease ( double  value  )  [inline]

Set sum up decrease number infeasibilities from strong or actual.

Definition at line 171 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::addToSumUpDecrease ( double  value  )  [inline]

Add to sum up decrease number infeasibilities from strong or actual.

Definition at line 174 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDown (  )  const [inline]

Down number times.

Definition at line 178 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setNumberTimesDown ( int  value  )  [inline]

Set down number times.

Definition at line 181 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDown (  )  [inline]

Increment down number times.

Definition at line 184 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUp (  )  const [inline]

Up number times.

Definition at line 188 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setNumberTimesUp ( int  value  )  [inline]

Set up number times.

Definition at line 191 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUp (  )  [inline]

Increment up number times.

Definition at line 194 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDownInfeasible (  )  const [inline]

Down number times infeasible.

Definition at line 198 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setNumberTimesDownInfeasible ( int  value  )  [inline]

Set down number times infeasible.

Definition at line 201 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDownInfeasible (  )  [inline]

Increment down number times infeasible.

Definition at line 204 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUpInfeasible (  )  const [inline]

Up number times infeasible.

Definition at line 208 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setNumberTimesUpInfeasible ( int  value  )  [inline]

Set up number times infeasible.

Definition at line 211 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUpInfeasible (  )  [inline]

Increment up number times infeasible.

Definition at line 214 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberBeforeTrust (  )  const [inline]

Number of times before trusted.

Definition at line 218 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setNumberBeforeTrust ( int  value  )  [inline]

Set number of times before trusted.

Definition at line 221 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberBeforeTrust (  )  [inline]

Increment number of times before trusted.

Definition at line 224 of file CbcBranchDynamic.hpp.

virtual double CbcSimpleIntegerDynamicPseudoCost::upEstimate (  )  const [virtual]

Return "up" estimate.

virtual double CbcSimpleIntegerDynamicPseudoCost::downEstimate (  )  const [virtual]

Return "down" estimate (default 1.0e-5).

int CbcSimpleIntegerDynamicPseudoCost::method (  )  const [inline]

method - see below for details

Definition at line 233 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setMethod ( int  value  )  [inline]

Set method.

Definition at line 236 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::setDownInformation ( double  changeObjectiveDown,
int  changeInfeasibilityDown 
)

Pass in information on a down branch.

void CbcSimpleIntegerDynamicPseudoCost::setUpInformation ( double  changeObjectiveUp,
int  changeInfeasibilityUp 
)

Pass in information on a up branch.

void CbcSimpleIntegerDynamicPseudoCost::setProbingInformation ( int  fixedDown,
int  fixedUp 
)

Pass in probing information.

void CbcSimpleIntegerDynamicPseudoCost::print ( int  type = 0,
double  value = 0.0 
) const

Print - 0 -summary, 1 just before strong.

bool CbcSimpleIntegerDynamicPseudoCost::same ( const CbcSimpleIntegerDynamicPseudoCost obj  )  const

Same - returns true if contents match(ish).


Member Data Documentation

data

Down pseudo cost

Definition at line 254 of file CbcBranchDynamic.hpp.

Up pseudo cost.

Definition at line 256 of file CbcBranchDynamic.hpp.

Up/down separator If >0.0 then do first branch up if value-floor(value) >= this value.

Definition at line 261 of file CbcBranchDynamic.hpp.

Sum down cost from strong or actual.

Definition at line 263 of file CbcBranchDynamic.hpp.

Sum up cost from strong or actual.

Definition at line 265 of file CbcBranchDynamic.hpp.

Sum of all changes to x when going down.

Definition at line 267 of file CbcBranchDynamic.hpp.

Sum of all changes to x when going up.

Definition at line 269 of file CbcBranchDynamic.hpp.

Sum down cost from strong or actual squared.

Definition at line 271 of file CbcBranchDynamic.hpp.

Sum up cost from strong or actual squared.

Definition at line 273 of file CbcBranchDynamic.hpp.

Sum down decrease number infeasibilities from strong or actual.

Definition at line 275 of file CbcBranchDynamic.hpp.

Sum up decrease number infeasibilities from strong or actual.

Definition at line 277 of file CbcBranchDynamic.hpp.

Last down cost from strong (i.e. as computed by last strong).

Definition at line 279 of file CbcBranchDynamic.hpp.

Last up cost from strong (i.e. as computed by last strong).

Definition at line 281 of file CbcBranchDynamic.hpp.

Last down decrease number infeasibilities from strong (i.e. as computed by last strong).

Definition at line 283 of file CbcBranchDynamic.hpp.

Last up decrease number infeasibilities from strong (i.e. as computed by last strong).

Definition at line 285 of file CbcBranchDynamic.hpp.

Number of times we have gone down.

Definition at line 287 of file CbcBranchDynamic.hpp.

Number of times we have gone up.

Definition at line 289 of file CbcBranchDynamic.hpp.

Number of times we have been infeasible going down.

Definition at line 291 of file CbcBranchDynamic.hpp.

Number of times we have been infeasible going up.

Definition at line 293 of file CbcBranchDynamic.hpp.

Number of branches before we trust.

Definition at line 295 of file CbcBranchDynamic.hpp.

Number of local probing fixings going down.

Definition at line 297 of file CbcBranchDynamic.hpp.

Number of local probing fixings going up.

Definition at line 299 of file CbcBranchDynamic.hpp.

Number of total probing fixings going down.

Definition at line 301 of file CbcBranchDynamic.hpp.

Number of total probing fixings going up.

Definition at line 303 of file CbcBranchDynamic.hpp.

Number of times probing done.

Definition at line 305 of file CbcBranchDynamic.hpp.

Definition at line 309 of file CbcBranchDynamic.hpp.

Method - 0 - pseudo costs 1 - probing.

Definition at line 315 of file CbcBranchDynamic.hpp.


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

Generated on Tue Nov 24 00:15:27 2009 by  doxygen 1.6.1