Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution. More...
#include <CbcBranchCut.hpp>
Public Member Functions | |
CbcBranchToFixLots () | |
CbcBranchToFixLots (CbcModel *model, double djTolerance, double fractionFixed, int depth, int numberClean=0, const char *mark=NULL, bool alwaysCreate=false) | |
Useful constructor - passed reduced cost tolerance and fraction we would like fixed. | |
CbcBranchToFixLots (const CbcBranchToFixLots &) | |
virtual CbcObject * | clone () const |
Clone. | |
CbcBranchToFixLots & | operator= (const CbcBranchToFixLots &rhs) |
Assignment operator. | |
~CbcBranchToFixLots () | |
int | shallWe () const |
Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both. | |
virtual double | infeasibility (int &preferredWay) const |
Infeasibility - large is 0.5. | |
virtual CbcBranchingObject * | createBranch (int way) |
Creates a branching object. | |
Protected Attributes | |
double | djTolerance_ |
data | |
double | fractionFixed_ |
We only need to make sure this fraction fixed. | |
char * | mark_ |
Never fix ones marked here. | |
CoinPackedMatrix | matrixByRow_ |
Matrix by row. | |
int | depth_ |
Do if depth multiple of this. | |
int | numberClean_ |
number of ==1 rows which need to be clean | |
bool | alwaysCreate_ |
If true then always create branch. |
Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution.
a) On reduced cost b) When enough ==1 or <=1 rows have been satisfied (not fixed - satisfied)
Definition at line 198 of file CbcBranchCut.hpp.
CbcBranchToFixLots::CbcBranchToFixLots | ( | ) |
CbcBranchToFixLots::CbcBranchToFixLots | ( | CbcModel * | model, | |
double | djTolerance, | |||
double | fractionFixed, | |||
int | depth, | |||
int | numberClean = 0 , |
|||
const char * | mark = NULL , |
|||
bool | alwaysCreate = false | |||
) |
Useful constructor - passed reduced cost tolerance and fraction we would like fixed.
Also depth level to do at. Also passed number of 1 rows which when clean triggers fix Always does if all 1 rows cleaned up and number>0 or if fraction columns reached Also whether to create branch if can't reach fraction.
CbcBranchToFixLots::CbcBranchToFixLots | ( | const CbcBranchToFixLots & | ) |
CbcBranchToFixLots::~CbcBranchToFixLots | ( | ) |
virtual CbcObject* CbcBranchToFixLots::clone | ( | ) | const [virtual] |
Clone.
Reimplemented from CbcBranchCut.
CbcBranchToFixLots& CbcBranchToFixLots::operator= | ( | const CbcBranchToFixLots & | rhs | ) |
Assignment operator.
Reimplemented from CbcBranchCut.
int CbcBranchToFixLots::shallWe | ( | ) | const |
Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both.
virtual double CbcBranchToFixLots::infeasibility | ( | int & | preferredWay | ) | const [virtual] |
Infeasibility - large is 0.5.
Reimplemented from CbcBranchCut.
virtual CbcBranchingObject* CbcBranchToFixLots::createBranch | ( | int | way | ) | [virtual] |
Creates a branching object.
Reimplemented from CbcBranchCut.
double CbcBranchToFixLots::djTolerance_ [protected] |
data
Reduced cost tolerance i.e. dj has to be >= this before fixed
Definition at line 247 of file CbcBranchCut.hpp.
double CbcBranchToFixLots::fractionFixed_ [protected] |
We only need to make sure this fraction fixed.
Definition at line 249 of file CbcBranchCut.hpp.
char* CbcBranchToFixLots::mark_ [protected] |
Never fix ones marked here.
Definition at line 251 of file CbcBranchCut.hpp.
CoinPackedMatrix CbcBranchToFixLots::matrixByRow_ [protected] |
Matrix by row.
Definition at line 253 of file CbcBranchCut.hpp.
int CbcBranchToFixLots::depth_ [protected] |
Do if depth multiple of this.
Definition at line 255 of file CbcBranchCut.hpp.
int CbcBranchToFixLots::numberClean_ [protected] |
number of ==1 rows which need to be clean
Definition at line 257 of file CbcBranchCut.hpp.
bool CbcBranchToFixLots::alwaysCreate_ [protected] |
If true then always create branch.
Definition at line 259 of file CbcBranchCut.hpp.