Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | List of all members
CbcHeuristicDW Class Reference

This is unlike the other heuristics in that it is very very compute intensive. More...

#include <CbcHeuristicDW.hpp>

+ Inheritance diagram for CbcHeuristicDW:
+ Collaboration diagram for CbcHeuristicDW:

Public Member Functions

 CbcHeuristicDW ()
 
 CbcHeuristicDW (CbcModel &model, int keepContinuous=0)
 
 CbcHeuristicDW (CbcModel &model, int callBack(CbcHeuristicDW *currentHeuristic, CbcModel *thisModel, int whereFrom), int keepContinuous=0)
 
 CbcHeuristicDW (const CbcHeuristicDW &)
 
 ~CbcHeuristicDW ()
 
virtual CbcHeuristicclone () const
 Clone. More...
 
CbcHeuristicDWoperator= (const CbcHeuristicDW &rhs)
 Assignment operator. More...
 
virtual void generateCpp (FILE *fp)
 Create C++ lines to get to current state. More...
 
virtual void resetModel (CbcModel *model)
 Resets stuff if model changes. More...
 
virtual void setModel (CbcModel *model)
 update model (This is needed if cliques update matrix etc) More...
 
virtual int solution (double &objectiveValue, double *newSolution)
 returns 0 if no solution, 1 if valid solution. More...
 
int numberBlocks () const
 Return number of blocks <=0 - no usable structure. More...
 
void passInSolution (const double *solution)
 Pass in a solution. More...
 
void passInContinuousSolution (const double *solution)
 Pass in continuous solution. More...
 
void setProposalActions (int fullDWEverySoOften)
 DW Proposal actions fullDWEverySoOften - 0 - off k - every k times solution gets better. More...
 
double objectiveValueWhen (int whichDW) const
 Objective value when whichDw created. More...
 
int numberColumnsDW (int whichDW) const
 Number of columns in DW. More...
 
OsiSolverInterfacesolver () const
 Solver. More...
 
OsiSolverInterfaceDWModel (int whichDW) const
 DW model (user must delete) More...
 
double bestObjective () const
 Best objective value. More...
 
const double * bestSolution () const
 Best solution found so far. More...
 
const double * continuousSolution () const
 Continuous solution. More...
 
const double * fixedDj () const
 Reduced costs of fixed solution. More...
 
const double * objectiveDW () const
 Objective at which DW updated. More...
 
int numberDWTimes () const
 Number of times we have added to DW model. More...
 
const int * numberColumnsDW () const
 Number of columns in DW. More...
 
void setNumberPasses (int value)
 Set number of passes. More...
 
void setNumberBadPasses (int value)
 Set number of passes without better solution. More...
 
void setNumberNeeded (int value)
 Set number free integers needed (Base value) More...
 
int getNumberNeeded () const
 Get number free integers needed (Base value) More...
 
void setCurrentNumberNeeded (int value)
 Set number free integers needed (Current value) More...
 
int getCurrentNumberNeeded () const
 Get number free integers needed (Current value) More...
 
void setNumberNodes (int value)
 Set number nodes (could be done in callback) (Base value) More...
 
int getNumberNodes () const
 Get number nodes (could be done in callback) (Base value) More...
 
void setCurrentNumberNodes (int value)
 Set number nodes (could be done in callback) (Current value) More...
 
int getCurrentNumberNodes () const
 Get number nodes (could be done in callback) (Current value) More...
 
void setTargetObjective (double value)
 Set target objective. More...
 
void setHowOften (int value)
 Sets how often to do it. More...
 
const int * whichRowBlock () const
 Block for every row. More...
 
const int * whichColumnBlock () const
 Block for every column. More...
 
double * initialLower () const
 Initial Lower bounds. More...
 
double * initialUpper () const
 Initial Upper bounds. More...
 
int * intArrays () const
 Local integer arrays (each numberBlocks_ long) More...
 
double * doubleArrays () const
 Local double arrays (each numberBlocks_ long) More...
 
int phase () const
 Phase of solution. More...
 
int pass () const
 Pass number. More...
 
const int * columnsInBlock () const
 Which columns are in block. More...
 
const int * startColumnBlock () const
 Starts for columnsInBlock. More...
 
const int * intsInBlock () const
 Number of integer variables in each block. More...
 
double objectiveValue (const double *solution)
 Objective value (could also check validity) More...
 
- Public Member Functions inherited from CbcHeuristic
 CbcHeuristic ()
 
 CbcHeuristic (CbcModel &model)
 
 CbcHeuristic (const CbcHeuristic &)
 
virtual ~CbcHeuristic ()
 
CbcHeuristicoperator= (const CbcHeuristic &rhs)
 Assignment operator. More...
 
virtual int solution2 (double &, double *, OsiCuts &)
 returns 0 if no solution, 1 if valid solution, -1 if just returning an estimate of best possible solution with better objective value than one passed in Sets solution values if good, sets objective value (only if nonzero code) This is called at same time as cut generators - so can add cuts Default is do nothing More...
 
virtual void validate ()
 Validate model i.e. sets when_ to 0 if necessary (may be NULL) More...
 
void setWhen (int value)
 Sets "when" flag - 0 off, 1 at root, 2 other than root, 3 always. More...
 
int when () const
 Gets "when" flag - 0 off, 1 at root, 2 other than root, 3 always. More...
 
void setNumberNodes (int value)
 Sets number of nodes in subtree (default 200) More...
 
int numberNodes () const
 Gets number of nodes in a subtree (default 200) More...
 
void setSwitches (int value)
 Switches (does not apply equally to all heuristics) 1 bit - stop once allowable gap on objective reached 2 bit - always do given number of passes 4 bit - weaken cutoff by 5% every 50 passes? 8 bit - if has cutoff and suminf bobbling for 20 passes then first try halving distance to best possible then try keep halving distance to known cutoff 16 bit - needs new solution to run 1024 bit - stop all heuristics on max time. More...
 
int switches () const
 Switches (does not apply equally to all heuristics) 1 bit - stop once allowable gap on objective reached 2 bit - always do given number of passes 4 bit - weaken cutoff by 5% every 50 passes? 8 bit - if has cutoff and suminf bobbling for 20 passes then first try halving distance to best possible then try keep halving distance to known cutoff 16 bit - needs new solution to run 1024 bit - stop all heuristics on max time 65536 bit and above used for temporary communication. More...
 
bool exitNow (double bestObjective) const
 Whether to exit at once on gap. More...
 
void setFeasibilityPumpOptions (int value)
 Sets feasibility pump options (-1 is off) More...
 
int feasibilityPumpOptions () const
 Gets feasibility pump options (-1 is off) More...
 
void setModelOnly (CbcModel *model)
 Just set model - do not do anything else. More...
 
void setFractionSmall (double value)
 Sets fraction of new(rows+columns)/old(rows+columns) before doing small branch and bound (default 1.0) More...
 
double fractionSmall () const
 Gets fraction of new(rows+columns)/old(rows+columns) before doing small branch and bound (default 1.0) More...
 
int numberSolutionsFound () const
 Get how many solutions the heuristic thought it got. More...
 
void incrementNumberSolutionsFound ()
 Increment how many solutions the heuristic thought it got. More...
 
int smallBranchAndBound (OsiSolverInterface *solver, int numberNodes, double *newSolution, double &newSolutionValue, double cutoff, std::string name) const
 Do mini branch and bound - return 0 not finished - no solution 1 not finished - solution 2 finished - no solution 3 finished - solution (could add global cut if finished) -1 returned on size -2 time or user event. More...
 
void generateCpp (FILE *fp, const char *heuristic)
 Create C++ lines to get to current state - does work for base class. More...
 
virtual bool canDealWithOdd () const
 Returns true if can deal with "odd" problems e.g. sos type 2. More...
 
const char * heuristicName () const
 return name of heuristic More...
 
void setHeuristicName (const char *name)
 set name of heuristic More...
 
void setSeed (int value)
 Set random number generator seed. More...
 
int getSeed () const
 Get random number generator seed. More...
 
void setDecayFactor (double value)
 Sets decay factor (for howOften) on failure. More...
 
void setInputSolution (const double *solution, double objValue)
 Set input solution. More...
 
void setWhereFrom (int value)
 
int whereFrom () const
 
void setShallowDepth (int value)
 Upto this depth we call the tree shallow and the heuristic can be called multiple times. More...
 
void setHowOftenShallow (int value)
 How often to invoke the heuristics in the shallow part of the tree. More...
 
void setMinDistanceToRun (int value)
 How "far" should this node be from every other where the heuristic was run in order to allow the heuristic to run in this node, too. More...
 
virtual bool shouldHeurRun (int whereFrom)
 Check whether the heuristic should run at all 0 - before cuts at root node (or from doHeuristics) 1 - during cuts at root 2 - after root node cuts 3 - after cuts at other nodes 4 - during cuts at other nodes 8 added if previous heuristic in loop found solution. More...
 
bool shouldHeurRun_randomChoice ()
 Check whether the heuristic should run this time. More...
 
void debugNodes ()
 
void printDistanceToNodes ()
 
int numRuns () const
 how many times the heuristic has actually run More...
 
int numCouldRun () const
 How many times the heuristic could run. More...
 
bool isHeuristicInteger (const OsiSolverInterface *solver, int iColumn)
 Is it integer for heuristics? More...
 
OsiSolverInterfacecloneBut (int type)
 Clone, but ... More...
 

Protected Types

typedef int(* heuristicCallBack )(CbcHeuristicDW *, CbcModel *, int)
 

Protected Attributes

double targetObjective_
 Target objective. More...
 
double bestObjective_
 Best objective value. More...
 
double lastObjective_
 Objective value last time. More...
 
heuristicCallBack functionPointer_
 Call back whereFrom - 0 - after blocks found but before data setup 1 - after blocks sorted but before used 2 - just before normal branch and bound 3 - after DW has been updated 4 - if better solution found 5 - every time a block might be used next few for adjustment of nNeeded etc 6 - complete search done - no solution 7 - stopped on nodes - no improvement 8 - improving (same as 4 but after nNeeded changed Pointers to local data given by following pointers. More...
 
int * intArray_
 Local integer arrays (each numberBlocks_ long) More...
 
double * doubleArray_
 Local double arrays (each numberBlocks_ long) More...
 
OsiSolverInterfacesolver_
 Base solver. More...
 
OsiSolverInterfacedwSolver_
 DW solver. More...
 
double * bestSolution_
 Best solution found so far. More...
 
double * continuousSolution_
 Continuous solution. More...
 
double * fixedDj_
 Reduced costs of fixed solution. More...
 
double * saveLower_
 Original lower bounds. More...
 
double * saveUpper_
 Original Upper bounds. More...
 
double * random_
 random numbers for master rows More...
 
double * weights_
 Weights for each proposal. More...
 
double * objectiveDW_
 Objective at which DW updated. More...
 
int * numberColumnsDW_
 Number of columns in each DW. More...
 
int * whichRowBlock_
 Block for every row. More...
 
int * whichColumnBlock_
 Block for every column. More...
 
int * dwBlock_
 Block number for each proposal. More...
 
int * backwardRow_
 Points back to master rows. More...
 
int * rowsInBlock_
 Which rows are in blocke. More...
 
int * columnsInBlock_
 Which columns are in block. More...
 
int * startRowBlock_
 Starts for rowsInBlock. More...
 
int * startColumnBlock_
 Starts for columnsInBlock. More...
 
int * intsInBlock_
 Number of integer variables in each block. More...
 
unsigned int * fingerPrint_
 Bits set for 1 integers in each block. More...
 
unsigned short * affinity_
 Affinity each block has for other (will be triangular?) More...
 
int fullDWEverySoOften_
 DW Proposal actions fullDWEverySoOften - 0 - off k - every k times solution gets better. More...
 
int numberPasses_
 Number of passes. More...
 
int howOften_
 How often to do (code can change) More...
 
int maximumDW_
 Current maximum number of DW proposals. More...
 
int numberDW_
 Number of DW proposals. More...
 
int numberDWTimes_
 Number of times we have added to DW model. More...
 
int sizeFingerPrint_
 Number of unsigned ints needed for each block of fingerPrint. More...
 
int numberMasterColumns_
 Number of columns in master. More...
 
int numberMasterRows_
 Number of rows in master. More...
 
int numberBlocks_
 Number of blocks. More...
 
int keepContinuous_
 Action on decomposition - 1 keep continuous, 0 don't. More...
 
int phase_
 Phase of solution. More...
 
int pass_
 Pass number. More...
 
int nNeededBase_
 Base number of integers needed. More...
 
int nNodesBase_
 Base number of nodes needed. More...
 
int nNeeded_
 Base number of integers needed. More...
 
int nNodes_
 Base number of nodes needed. More...
 
int numberBadPasses_
 Number of passes without better solution. More...
 
int solveState_
 
- Protected Attributes inherited from CbcHeuristic
CbcModelmodel_
 Model. More...
 
int when_
 When flag - 0 off, 1 at root, 2 other than root, 3 always. More...
 
int numberNodes_
 Number of nodes in any sub tree. More...
 
int feasibilityPumpOptions_
 Feasibility pump options , -1 is off >=0 for feasibility pump itself -2 quick proximity search -3 longer proximity search. More...
 
double fractionSmall_
 Fraction of new(rows+columns)/old(rows+columns) before doing small branch and bound. More...
 
CoinThreadRandom randomNumberGenerator_
 Thread specific random number generator. More...
 
std::string heuristicName_
 Name for printing. More...
 
int howOften_
 How often to do (code can change) More...
 
double decayFactor_
 How much to increase how often. More...
 
int switches_
 Switches (does not apply equally to all heuristics) 1 bit - stop once allowable gap on objective reached 2 bit - always do given number of passes 4 bit - weaken cutoff by 5% every 50 passes? 8 bit - if has cutoff and suminf bobbling for 20 passes then first try halving distance to best possible then try keep halving distance to known cutoff 16 bit - needs new solution to run 1024 bit - stop all heuristics on max time. More...
 
int whereFrom_
 
int shallowDepth_
 Upto this depth we call the tree shallow and the heuristic can be called multiple times. More...
 
int howOftenShallow_
 How often to invoke the heuristics in the shallow part of the tree. More...
 
int numInvocationsInShallow_
 How many invocations happened within the same node when in a shallow part of the tree. More...
 
int numInvocationsInDeep_
 How many invocations happened when in the deep part of the tree. More...
 
int lastRunDeep_
 After how many deep invocations was the heuristic run last time. More...
 
int numRuns_
 how many times the heuristic has actually run More...
 
int minDistanceToRun_
 How "far" should this node be from every other where the heuristic was run in order to allow the heuristic to run in this node, too. More...
 
CbcHeuristicNodeList runNodes_
 The description of the nodes where this heuristic has been applied. More...
 
int numCouldRun_
 How many times the heuristic could run. More...
 
int numberSolutionsFound_
 How many solutions the heuristic thought it got. More...
 
int numberNodesDone_
 How many nodes the heuristic did this go. More...
 
double * inputSolution_
 

Private Member Functions

void gutsOfCopy (const CbcHeuristicDW &rhs)
 Guts of copy. More...
 
void gutsOfDelete ()
 Guts of delete. More...
 
void setDefaults ()
 Set default values. More...
 
void findStructure ()
 Find structure. More...
 
void setupDWStructures ()
 Set up DW structure. More...
 
int addDW (const double *solution, int numberBlocksUsed, const int *whichBlocks)
 Add DW proposals. More...
 

Detailed Description

This is unlike the other heuristics in that it is very very compute intensive.

It tries to find a DW structure and use that

Definition at line 16 of file CbcHeuristicDW.hpp.

Member Typedef Documentation

typedef int(* CbcHeuristicDW::heuristicCallBack)(CbcHeuristicDW *, CbcModel *, int)
protected

Definition at line 256 of file CbcHeuristicDW.hpp.

Constructor & Destructor Documentation

CbcHeuristicDW::CbcHeuristicDW ( )
CbcHeuristicDW::CbcHeuristicDW ( CbcModel model,
int  keepContinuous = 0 
)
CbcHeuristicDW::CbcHeuristicDW ( CbcModel model,
int   callBackCbcHeuristicDW *currentHeuristic, CbcModel *thisModel, int whereFrom,
int  keepContinuous = 0 
)
CbcHeuristicDW::CbcHeuristicDW ( const CbcHeuristicDW )
CbcHeuristicDW::~CbcHeuristicDW ( )

Member Function Documentation

virtual CbcHeuristic* CbcHeuristicDW::clone ( ) const
virtual

Clone.

Implements CbcHeuristic.

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

Assignment operator.

virtual void CbcHeuristicDW::generateCpp ( FILE *  fp)
virtual

Create C++ lines to get to current state.

Reimplemented from CbcHeuristic.

virtual void CbcHeuristicDW::resetModel ( CbcModel model)
virtual

Resets stuff if model changes.

Implements CbcHeuristic.

virtual void CbcHeuristicDW::setModel ( CbcModel model)
virtual

update model (This is needed if cliques update matrix etc)

Reimplemented from CbcHeuristic.

virtual int CbcHeuristicDW::solution ( double &  objectiveValue,
double *  newSolution 
)
virtual

returns 0 if no solution, 1 if valid solution.

Sets solution values if good, sets objective value (only if good) This does Relaxation Induced Neighborhood Search

Implements CbcHeuristic.

int CbcHeuristicDW::numberBlocks ( ) const
inline

Return number of blocks <=0 - no usable structure.

Definition at line 62 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::passInSolution ( const double *  solution)

Pass in a solution.

void CbcHeuristicDW::passInContinuousSolution ( const double *  solution)

Pass in continuous solution.

void CbcHeuristicDW::setProposalActions ( int  fullDWEverySoOften)

DW Proposal actions fullDWEverySoOften - 0 - off k - every k times solution gets better.

double CbcHeuristicDW::objectiveValueWhen ( int  whichDW) const

Objective value when whichDw created.

int CbcHeuristicDW::numberColumnsDW ( int  whichDW) const

Number of columns in DW.

OsiSolverInterface* CbcHeuristicDW::solver ( ) const
inline

Solver.

Definition at line 81 of file CbcHeuristicDW.hpp.

OsiSolverInterface* CbcHeuristicDW::DWModel ( int  whichDW) const

DW model (user must delete)

double CbcHeuristicDW::bestObjective ( ) const
inline

Best objective value.

Definition at line 88 of file CbcHeuristicDW.hpp.

const double* CbcHeuristicDW::bestSolution ( ) const
inline

Best solution found so far.

Definition at line 93 of file CbcHeuristicDW.hpp.

const double* CbcHeuristicDW::continuousSolution ( ) const
inline

Continuous solution.

Definition at line 98 of file CbcHeuristicDW.hpp.

const double* CbcHeuristicDW::fixedDj ( ) const
inline

Reduced costs of fixed solution.

Definition at line 103 of file CbcHeuristicDW.hpp.

const double* CbcHeuristicDW::objectiveDW ( ) const
inline

Objective at which DW updated.

Definition at line 108 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberDWTimes ( ) const
inline

Number of times we have added to DW model.

Definition at line 113 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::numberColumnsDW ( ) const
inline

Number of columns in DW.

Definition at line 118 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setNumberPasses ( int  value)
inline

Set number of passes.

Definition at line 123 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setNumberBadPasses ( int  value)
inline

Set number of passes without better solution.

Definition at line 128 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setNumberNeeded ( int  value)
inline

Set number free integers needed (Base value)

Definition at line 133 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::getNumberNeeded ( ) const
inline

Get number free integers needed (Base value)

Definition at line 138 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setCurrentNumberNeeded ( int  value)
inline

Set number free integers needed (Current value)

Definition at line 143 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::getCurrentNumberNeeded ( ) const
inline

Get number free integers needed (Current value)

Definition at line 148 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setNumberNodes ( int  value)
inline

Set number nodes (could be done in callback) (Base value)

Definition at line 153 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::getNumberNodes ( ) const
inline

Get number nodes (could be done in callback) (Base value)

Definition at line 158 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setCurrentNumberNodes ( int  value)
inline

Set number nodes (could be done in callback) (Current value)

Definition at line 163 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::getCurrentNumberNodes ( ) const
inline

Get number nodes (could be done in callback) (Current value)

Definition at line 168 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setTargetObjective ( double  value)
inline

Set target objective.

Definition at line 173 of file CbcHeuristicDW.hpp.

void CbcHeuristicDW::setHowOften ( int  value)
inline

Sets how often to do it.

Definition at line 178 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::whichRowBlock ( ) const
inline

Block for every row.

Definition at line 183 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::whichColumnBlock ( ) const
inline

Block for every column.

Definition at line 188 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::initialLower ( ) const
inline

Initial Lower bounds.

Definition at line 193 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::initialUpper ( ) const
inline

Initial Upper bounds.

Definition at line 198 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::intArrays ( ) const
inline

Local integer arrays (each numberBlocks_ long)

Definition at line 203 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::doubleArrays ( ) const
inline

Local double arrays (each numberBlocks_ long)

Definition at line 208 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::phase ( ) const
inline

Phase of solution.

Definition at line 213 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::pass ( ) const
inline

Pass number.

Definition at line 218 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::columnsInBlock ( ) const
inline

Which columns are in block.

Definition at line 223 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::startColumnBlock ( ) const
inline

Starts for columnsInBlock.

Definition at line 228 of file CbcHeuristicDW.hpp.

const int* CbcHeuristicDW::intsInBlock ( ) const
inline

Number of integer variables in each block.

Definition at line 233 of file CbcHeuristicDW.hpp.

double CbcHeuristicDW::objectiveValue ( const double *  solution)

Objective value (could also check validity)

void CbcHeuristicDW::gutsOfCopy ( const CbcHeuristicDW rhs)
private

Guts of copy.

void CbcHeuristicDW::gutsOfDelete ( )
private

Guts of delete.

void CbcHeuristicDW::setDefaults ( )
private

Set default values.

void CbcHeuristicDW::findStructure ( )
private

Find structure.

void CbcHeuristicDW::setupDWStructures ( )
private

Set up DW structure.

int CbcHeuristicDW::addDW ( const double *  solution,
int  numberBlocksUsed,
const int *  whichBlocks 
)
private

Add DW proposals.

Member Data Documentation

double CbcHeuristicDW::targetObjective_
protected

Target objective.

Definition at line 259 of file CbcHeuristicDW.hpp.

double CbcHeuristicDW::bestObjective_
protected

Best objective value.

Definition at line 261 of file CbcHeuristicDW.hpp.

double CbcHeuristicDW::lastObjective_
protected

Objective value last time.

Definition at line 263 of file CbcHeuristicDW.hpp.

heuristicCallBack CbcHeuristicDW::functionPointer_
protected

Call back whereFrom - 0 - after blocks found but before data setup 1 - after blocks sorted but before used 2 - just before normal branch and bound 3 - after DW has been updated 4 - if better solution found 5 - every time a block might be used next few for adjustment of nNeeded etc 6 - complete search done - no solution 7 - stopped on nodes - no improvement 8 - improving (same as 4 but after nNeeded changed Pointers to local data given by following pointers.

Definition at line 278 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::intArray_
protected

Local integer arrays (each numberBlocks_ long)

Definition at line 280 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::doubleArray_
protected

Local double arrays (each numberBlocks_ long)

Definition at line 282 of file CbcHeuristicDW.hpp.

OsiSolverInterface* CbcHeuristicDW::solver_
protected

Base solver.

Definition at line 284 of file CbcHeuristicDW.hpp.

OsiSolverInterface* CbcHeuristicDW::dwSolver_
protected

DW solver.

Definition at line 286 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::bestSolution_
protected

Best solution found so far.

Definition at line 288 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::continuousSolution_
protected

Continuous solution.

Definition at line 290 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::fixedDj_
protected

Reduced costs of fixed solution.

Definition at line 292 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::saveLower_
protected

Original lower bounds.

Definition at line 294 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::saveUpper_
protected

Original Upper bounds.

Definition at line 296 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::random_
protected

random numbers for master rows

Definition at line 298 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::weights_
protected

Weights for each proposal.

Definition at line 300 of file CbcHeuristicDW.hpp.

double* CbcHeuristicDW::objectiveDW_
protected

Objective at which DW updated.

Definition at line 302 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::numberColumnsDW_
protected

Number of columns in each DW.

Definition at line 304 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::whichRowBlock_
protected

Block for every row.

Definition at line 306 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::whichColumnBlock_
protected

Block for every column.

Definition at line 308 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::dwBlock_
protected

Block number for each proposal.

Definition at line 310 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::backwardRow_
protected

Points back to master rows.

Definition at line 312 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::rowsInBlock_
protected

Which rows are in blocke.

Definition at line 314 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::columnsInBlock_
protected

Which columns are in block.

Definition at line 316 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::startRowBlock_
protected

Starts for rowsInBlock.

Definition at line 318 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::startColumnBlock_
protected

Starts for columnsInBlock.

Definition at line 320 of file CbcHeuristicDW.hpp.

int* CbcHeuristicDW::intsInBlock_
protected

Number of integer variables in each block.

Definition at line 322 of file CbcHeuristicDW.hpp.

unsigned int* CbcHeuristicDW::fingerPrint_
protected

Bits set for 1 integers in each block.

Definition at line 324 of file CbcHeuristicDW.hpp.

unsigned short* CbcHeuristicDW::affinity_
protected

Affinity each block has for other (will be triangular?)

Definition at line 326 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::fullDWEverySoOften_
protected

DW Proposal actions fullDWEverySoOften - 0 - off k - every k times solution gets better.

Definition at line 332 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberPasses_
protected

Number of passes.

Definition at line 334 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::howOften_
protected

How often to do (code can change)

Definition at line 336 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::maximumDW_
protected

Current maximum number of DW proposals.

Definition at line 338 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberDW_
protected

Number of DW proposals.

Definition at line 340 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberDWTimes_
protected

Number of times we have added to DW model.

Definition at line 342 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::sizeFingerPrint_
protected

Number of unsigned ints needed for each block of fingerPrint.

Definition at line 344 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberMasterColumns_
protected

Number of columns in master.

Definition at line 346 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberMasterRows_
protected

Number of rows in master.

Definition at line 348 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberBlocks_
protected

Number of blocks.

Definition at line 350 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::keepContinuous_
protected

Action on decomposition - 1 keep continuous, 0 don't.

Definition at line 352 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::phase_
protected

Phase of solution.

Definition at line 354 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::pass_
protected

Pass number.

Definition at line 356 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::nNeededBase_
protected

Base number of integers needed.

Definition at line 358 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::nNodesBase_
protected

Base number of nodes needed.

Definition at line 360 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::nNeeded_
protected

Base number of integers needed.

Definition at line 362 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::nNodes_
protected

Base number of nodes needed.

Definition at line 364 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::numberBadPasses_
protected

Number of passes without better solution.

Definition at line 366 of file CbcHeuristicDW.hpp.

int CbcHeuristicDW::solveState_
protected

Definition at line 368 of file CbcHeuristicDW.hpp.


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