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 sequence, int iColumn, double breakEven=0.5)
 CbcSimpleIntegerDynamicPseudoCost (CbcModel *model, int sequence, int iColumn, double downDynamicPseudoCost, double upDynamicPseudoCost)
 CbcSimpleIntegerDynamicPseudoCost (const CbcSimpleIntegerDynamicPseudoCost &)
virtual CbcObjectclone () const
 Clone.
CbcSimpleIntegerDynamicPseudoCostoperator= (const CbcSimpleIntegerDynamicPseudoCost &rhs)
 ~CbcSimpleIntegerDynamicPseudoCost ()
virtual double infeasibility (int &preferredWay) const
 Infeasibility - large is 0.5.
virtual CbcBranchingObjectcreateBranch (int way)
 Creates a branching object.
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 print (int type=0, double value=0.0) const
 Print - 0 -summary, 1 just before strong.

Protected Attributes

double downDynamicPseudoCost_
 Down pseudo cost.
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 method_
 Method - ??

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  sequence,
int  iColumn,
double  breakEven = 0.5 
)

CbcSimpleIntegerDynamicPseudoCost::CbcSimpleIntegerDynamicPseudoCost ( CbcModel model,
int  sequence,
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  ) 

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 OsiSolverBranch* CbcSimpleIntegerDynamicPseudoCost::solverBranch (  )  const [virtual]

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

Reimplemented from CbcSimpleInteger.

double CbcSimpleIntegerDynamicPseudoCost::downDynamicPseudoCost (  )  const [inline]

Down pseudo cost.

Definition at line 58 of file CbcBranchDynamic.hpp.

References downDynamicPseudoCost_.

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

Set down pseudo cost.

Definition at line 61 of file CbcBranchDynamic.hpp.

References downDynamicPseudoCost_.

double CbcSimpleIntegerDynamicPseudoCost::upDynamicPseudoCost (  )  const [inline]

Up pseudo cost.

Definition at line 65 of file CbcBranchDynamic.hpp.

References upDynamicPseudoCost_.

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

Set up pseudo cost.

Definition at line 68 of file CbcBranchDynamic.hpp.

References upDynamicPseudoCost_.

double CbcSimpleIntegerDynamicPseudoCost::upDownSeparator (  )  const [inline]

Up down separator.

Definition at line 72 of file CbcBranchDynamic.hpp.

References upDownSeparator_.

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

Set up down separator.

Definition at line 75 of file CbcBranchDynamic.hpp.

References upDownSeparator_.

double CbcSimpleIntegerDynamicPseudoCost::sumDownCost (  )  const [inline]

Down sum cost.

Definition at line 79 of file CbcBranchDynamic.hpp.

References sumDownCost_.

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

Set down sum cost.

Definition at line 82 of file CbcBranchDynamic.hpp.

References sumDownCost_.

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

Add to down sum cost and set last and square.

Definition at line 85 of file CbcBranchDynamic.hpp.

References lastDownCost_, sumDownCost_, and sumDownCostSquared_.

double CbcSimpleIntegerDynamicPseudoCost::sumUpCost (  )  const [inline]

Up sum cost.

Definition at line 89 of file CbcBranchDynamic.hpp.

References sumUpCost_.

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

Set up sum cost.

Definition at line 92 of file CbcBranchDynamic.hpp.

References sumUpCost_.

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

Add to up sum cost and set last and square.

Definition at line 95 of file CbcBranchDynamic.hpp.

References lastUpCost_, sumUpCost_, and sumUpCostSquared_.

double CbcSimpleIntegerDynamicPseudoCost::sumDownChange (  )  const [inline]

Down sum change.

Definition at line 99 of file CbcBranchDynamic.hpp.

References sumDownChange_.

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

Set down sum change.

Definition at line 102 of file CbcBranchDynamic.hpp.

References sumDownChange_.

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

Add to down sum change.

Definition at line 105 of file CbcBranchDynamic.hpp.

References sumDownChange_.

double CbcSimpleIntegerDynamicPseudoCost::sumUpChange (  )  const [inline]

Up sum change.

Definition at line 109 of file CbcBranchDynamic.hpp.

References sumUpChange_.

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

Set up sum change.

Definition at line 112 of file CbcBranchDynamic.hpp.

References sumUpChange_.

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

Add to up sum change and set last and square.

Definition at line 115 of file CbcBranchDynamic.hpp.

References sumUpChange_.

double CbcSimpleIntegerDynamicPseudoCost::sumDownDecrease (  )  const [inline]

Sum down decrease number infeasibilities from strong or actual.

Definition at line 119 of file CbcBranchDynamic.hpp.

References sumDownDecrease_.

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

Set sum down decrease number infeasibilities from strong or actual.

Definition at line 122 of file CbcBranchDynamic.hpp.

References sumDownDecrease_.

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

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

Definition at line 125 of file CbcBranchDynamic.hpp.

References lastDownDecrease_, and sumDownDecrease_.

double CbcSimpleIntegerDynamicPseudoCost::sumUpDecrease (  )  const [inline]

Sum up decrease number infeasibilities from strong or actual.

Definition at line 129 of file CbcBranchDynamic.hpp.

References sumUpDecrease_.

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

Set sum up decrease number infeasibilities from strong or actual.

Definition at line 132 of file CbcBranchDynamic.hpp.

References sumUpDecrease_.

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

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

Definition at line 135 of file CbcBranchDynamic.hpp.

References lastUpDecrease_, and sumUpDecrease_.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDown (  )  const [inline]

Down number times.

Definition at line 139 of file CbcBranchDynamic.hpp.

References numberTimesDown_.

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

Set down number times.

Definition at line 142 of file CbcBranchDynamic.hpp.

References numberTimesDown_.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDown (  )  [inline]

Increment down number times.

Definition at line 145 of file CbcBranchDynamic.hpp.

References numberTimesDown_.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUp (  )  const [inline]

Up number times.

Definition at line 149 of file CbcBranchDynamic.hpp.

References numberTimesUp_.

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

Set up number times.

Definition at line 152 of file CbcBranchDynamic.hpp.

References numberTimesUp_.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUp (  )  [inline]

Increment up number times.

Definition at line 155 of file CbcBranchDynamic.hpp.

References numberTimesUp_.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDownInfeasible (  )  const [inline]

Down number times infeasible.

Definition at line 159 of file CbcBranchDynamic.hpp.

References numberTimesDownInfeasible_.

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

Set down number times infeasible.

Definition at line 162 of file CbcBranchDynamic.hpp.

References numberTimesDownInfeasible_.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesDownInfeasible (  )  [inline]

Increment down number times infeasible.

Definition at line 165 of file CbcBranchDynamic.hpp.

References numberTimesDownInfeasible_.

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUpInfeasible (  )  const [inline]

Up number times infeasible.

Definition at line 169 of file CbcBranchDynamic.hpp.

References numberTimesUpInfeasible_.

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

Set up number times infeasible.

Definition at line 172 of file CbcBranchDynamic.hpp.

References numberTimesUpInfeasible_.

void CbcSimpleIntegerDynamicPseudoCost::incrementNumberTimesUpInfeasible (  )  [inline]

Increment up number times infeasible.

Definition at line 175 of file CbcBranchDynamic.hpp.

References numberTimesUpInfeasible_.

int CbcSimpleIntegerDynamicPseudoCost::numberBeforeTrust (  )  const [inline]

Number of times before trusted.

Definition at line 179 of file CbcBranchDynamic.hpp.

References numberBeforeTrust_.

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

Set number of times before trusted.

Definition at line 182 of file CbcBranchDynamic.hpp.

References numberBeforeTrust_.

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

Return "up" estimate.

Reimplemented from CbcObject.

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

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

Reimplemented from CbcObject.

int CbcSimpleIntegerDynamicPseudoCost::method (  )  const [inline]

method - see below for details

Definition at line 191 of file CbcBranchDynamic.hpp.

References method_.

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

Set method.

Definition at line 194 of file CbcBranchDynamic.hpp.

References method_.

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::print ( int  type = 0,
double  value = 0.0 
) const

Print - 0 -summary, 1 just before strong.


Member Data Documentation

double CbcSimpleIntegerDynamicPseudoCost::downDynamicPseudoCost_ [protected]

Down pseudo cost.

Definition at line 208 of file CbcBranchDynamic.hpp.

Referenced by downDynamicPseudoCost(), and setDownDynamicPseudoCost().

double CbcSimpleIntegerDynamicPseudoCost::upDynamicPseudoCost_ [protected]

Up pseudo cost.

Definition at line 210 of file CbcBranchDynamic.hpp.

Referenced by setUpDynamicPseudoCost(), and upDynamicPseudoCost().

double CbcSimpleIntegerDynamicPseudoCost::upDownSeparator_ [protected]

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

Definition at line 215 of file CbcBranchDynamic.hpp.

Referenced by setUpDownSeparator(), and upDownSeparator().

double CbcSimpleIntegerDynamicPseudoCost::sumDownCost_ [protected]

Sum down cost from strong or actual.

Definition at line 217 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownCost(), setSumDownCost(), and sumDownCost().

double CbcSimpleIntegerDynamicPseudoCost::sumUpCost_ [protected]

Sum up cost from strong or actual.

Definition at line 219 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpCost(), setSumUpCost(), and sumUpCost().

double CbcSimpleIntegerDynamicPseudoCost::sumDownChange_ [protected]

Sum of all changes to x when going down.

Definition at line 221 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownChange(), setSumDownChange(), and sumDownChange().

double CbcSimpleIntegerDynamicPseudoCost::sumUpChange_ [protected]

Sum of all changes to x when going up.

Definition at line 223 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpChange(), setSumUpChange(), and sumUpChange().

double CbcSimpleIntegerDynamicPseudoCost::sumDownCostSquared_ [protected]

Sum down cost from strong or actual squared.

Definition at line 225 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownCost().

double CbcSimpleIntegerDynamicPseudoCost::sumUpCostSquared_ [protected]

Sum up cost from strong or actual squared.

Definition at line 227 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpCost().

double CbcSimpleIntegerDynamicPseudoCost::sumDownDecrease_ [protected]

Sum down decrease number infeasibilities from strong or actual.

Definition at line 229 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownDecrease(), setSumDownDecrease(), and sumDownDecrease().

double CbcSimpleIntegerDynamicPseudoCost::sumUpDecrease_ [protected]

Sum up decrease number infeasibilities from strong or actual.

Definition at line 231 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpDecrease(), setSumUpDecrease(), and sumUpDecrease().

double CbcSimpleIntegerDynamicPseudoCost::lastDownCost_ [protected]

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

Definition at line 233 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownCost().

double CbcSimpleIntegerDynamicPseudoCost::lastUpCost_ [protected]

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

Definition at line 235 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpCost().

int CbcSimpleIntegerDynamicPseudoCost::lastDownDecrease_ [protected]

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

Definition at line 237 of file CbcBranchDynamic.hpp.

Referenced by addToSumDownDecrease().

int CbcSimpleIntegerDynamicPseudoCost::lastUpDecrease_ [protected]

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

Definition at line 239 of file CbcBranchDynamic.hpp.

Referenced by addToSumUpDecrease().

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDown_ [protected]

Number of times we have gone down.

Definition at line 241 of file CbcBranchDynamic.hpp.

Referenced by incrementNumberTimesDown(), numberTimesDown(), and setNumberTimesDown().

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUp_ [protected]

Number of times we have gone up.

Definition at line 243 of file CbcBranchDynamic.hpp.

Referenced by incrementNumberTimesUp(), numberTimesUp(), and setNumberTimesUp().

int CbcSimpleIntegerDynamicPseudoCost::numberTimesDownInfeasible_ [protected]

Number of times we have been infeasible going down.

Definition at line 245 of file CbcBranchDynamic.hpp.

Referenced by incrementNumberTimesDownInfeasible(), numberTimesDownInfeasible(), and setNumberTimesDownInfeasible().

int CbcSimpleIntegerDynamicPseudoCost::numberTimesUpInfeasible_ [protected]

Number of times we have been infeasible going up.

Definition at line 247 of file CbcBranchDynamic.hpp.

Referenced by incrementNumberTimesUpInfeasible(), numberTimesUpInfeasible(), and setNumberTimesUpInfeasible().

int CbcSimpleIntegerDynamicPseudoCost::numberBeforeTrust_ [protected]

Number of branches before we trust.

Definition at line 249 of file CbcBranchDynamic.hpp.

Referenced by numberBeforeTrust(), and setNumberBeforeTrust().

int CbcSimpleIntegerDynamicPseudoCost::method_ [protected]

Method - ??

Definition at line 253 of file CbcBranchDynamic.hpp.

Referenced by method(), and setMethod().


The documentation for this class was generated from the following file:
Generated on Thu May 15 22:00:07 2008 by  doxygen 1.4.7