CbcSimpleIntegerDynamicPseudoCost Class Reference

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

#include <CbcBranchDynamic.hpp>

Inheritance diagram for CbcSimpleIntegerDynamicPseudoCost:
Inheritance graph
[legend]
Collaboration diagram for CbcSimpleIntegerDynamicPseudoCost:
Collaboration graph
[legend]

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)
 Assignment operator.
 ~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.
virtual OsiSolverBranchsolverBranch () 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.
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  ) 
CbcSimpleIntegerDynamicPseudoCost::~CbcSimpleIntegerDynamicPseudoCost (  ) 

Member Function Documentation

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

Clone.

Reimplemented from CbcSimpleInteger.

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

Assignment operator.

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.

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 96 of file CbcBranchDynamic.hpp.

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

Set down pseudo cost.

Definition at line 99 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::upDynamicPseudoCost (  )  const [inline]

Up pseudo cost.

Definition at line 103 of file CbcBranchDynamic.hpp.

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

Set up pseudo cost.

Definition at line 106 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::upDownSeparator (  )  const [inline]

Up down separator.

Definition at line 110 of file CbcBranchDynamic.hpp.

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

Set up down separator.

Definition at line 113 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownCost (  )  const [inline]

Down sum cost.

Definition at line 117 of file CbcBranchDynamic.hpp.

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

Set down sum cost.

Definition at line 120 of file CbcBranchDynamic.hpp.

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

Add to down sum cost and set last and square.

Definition at line 123 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpCost (  )  const [inline]

Up sum cost.

Definition at line 127 of file CbcBranchDynamic.hpp.

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

Set up sum cost.

Definition at line 130 of file CbcBranchDynamic.hpp.

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

Add to up sum cost and set last and square.

Definition at line 133 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownChange (  )  const [inline]

Down sum change.

Definition at line 137 of file CbcBranchDynamic.hpp.

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

Set down sum change.

Definition at line 140 of file CbcBranchDynamic.hpp.

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

Add to down sum change.

Definition at line 143 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpChange (  )  const [inline]

Up sum change.

Definition at line 147 of file CbcBranchDynamic.hpp.

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

Set up sum change.

Definition at line 150 of file CbcBranchDynamic.hpp.

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

Add to up sum change and set last and square.

Definition at line 153 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumDownDecrease (  )  const [inline]

Sum down decrease number infeasibilities from strong or actual.

Definition at line 157 of file CbcBranchDynamic.hpp.

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

Set sum down decrease number infeasibilities from strong or actual.

Definition at line 160 of file CbcBranchDynamic.hpp.

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

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

Definition at line 163 of file CbcBranchDynamic.hpp.

double CbcSimpleIntegerDynamicPseudoCost::sumUpDecrease (  )  const [inline]

Sum up decrease number infeasibilities from strong or actual.

Definition at line 167 of file CbcBranchDynamic.hpp.

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

Set sum up decrease number infeasibilities from strong or actual.

Definition at line 170 of file CbcBranchDynamic.hpp.

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

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

Definition at line 173 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDown (  )  const [inline]

Down number times.

Definition at line 177 of file CbcBranchDynamic.hpp.

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

Set down number times.

Definition at line 180 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDown (  )  [inline]

Increment down number times.

Definition at line 183 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUp (  )  const [inline]

Up number times.

Definition at line 187 of file CbcBranchDynamic.hpp.

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

Set up number times.

Definition at line 190 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUp (  )  [inline]

Increment up number times.

Definition at line 193 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDownInfeasible (  )  const [inline]

Down number times infeasible.

Definition at line 197 of file CbcBranchDynamic.hpp.

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

Set down number times infeasible.

Definition at line 200 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDownInfeasible (  )  [inline]

Increment down number times infeasible.

Definition at line 203 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUpInfeasible (  )  const [inline]

Up number times infeasible.

Definition at line 207 of file CbcBranchDynamic.hpp.

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

Set up number times infeasible.

Definition at line 210 of file CbcBranchDynamic.hpp.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUpInfeasible (  )  [inline]

Increment up number times infeasible.

Definition at line 213 of file CbcBranchDynamic.hpp.

int CbcSimpleIntegerDynamicPseudoCost::numberBeforeTrust (  )  const [inline]

Number of times before trusted.

Definition at line 217 of file CbcBranchDynamic.hpp.

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

Set number of times before trusted.

Definition at line 220 of file CbcBranchDynamic.hpp.

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

Return "up" estimate.

Reimplemented from OsiObject.

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

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

Reimplemented from OsiObject.

int CbcSimpleIntegerDynamicPseudoCost::method (  )  const [inline]

method - see below for details

Definition at line 229 of file CbcBranchDynamic.hpp.

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

Set method.

Definition at line 232 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 250 of file CbcBranchDynamic.hpp.

Up pseudo cost.

Definition at line 252 of file CbcBranchDynamic.hpp.

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

Definition at line 257 of file CbcBranchDynamic.hpp.

Sum down cost from strong or actual.

Definition at line 259 of file CbcBranchDynamic.hpp.

Sum up cost from strong or actual.

Definition at line 261 of file CbcBranchDynamic.hpp.

Sum of all changes to x when going down.

Definition at line 263 of file CbcBranchDynamic.hpp.

Sum of all changes to x when going up.

Definition at line 265 of file CbcBranchDynamic.hpp.

Sum down cost from strong or actual squared.

Definition at line 267 of file CbcBranchDynamic.hpp.

Sum up cost from strong or actual squared.

Definition at line 269 of file CbcBranchDynamic.hpp.

Sum down decrease number infeasibilities from strong or actual.

Definition at line 271 of file CbcBranchDynamic.hpp.

Sum up decrease number infeasibilities from strong or actual.

Definition at line 273 of file CbcBranchDynamic.hpp.

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

Definition at line 275 of file CbcBranchDynamic.hpp.

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

Definition at line 277 of file CbcBranchDynamic.hpp.

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

Definition at line 279 of file CbcBranchDynamic.hpp.

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

Definition at line 281 of file CbcBranchDynamic.hpp.

Number of times we have gone down.

Definition at line 283 of file CbcBranchDynamic.hpp.

Number of times we have gone up.

Definition at line 285 of file CbcBranchDynamic.hpp.

Number of times we have been infeasible going down.

Definition at line 287 of file CbcBranchDynamic.hpp.

Number of times we have been infeasible going up.

Definition at line 289 of file CbcBranchDynamic.hpp.

Number of branches before we trust.

Definition at line 291 of file CbcBranchDynamic.hpp.

Number of local probing fixings going down.

Definition at line 293 of file CbcBranchDynamic.hpp.

Number of local probing fixings going up.

Definition at line 295 of file CbcBranchDynamic.hpp.

Number of total probing fixings going down.

Definition at line 297 of file CbcBranchDynamic.hpp.

Number of total probing fixings going up.

Definition at line 299 of file CbcBranchDynamic.hpp.

Number of times probing done.

Definition at line 301 of file CbcBranchDynamic.hpp.

Definition at line 305 of file CbcBranchDynamic.hpp.

Method - 0 - pseudo costs 1 - probing.

Definition at line 311 of file CbcBranchDynamic.hpp.


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

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1