8 #include "OsiSolverInterface.hpp"
9 #include "CoinHelperFunctions.hpp"
66 virtual bool fixes(
int ,
int ,
int ,
bool) {
return false;}
101 OsiSolverInterface *
analyze(
const OsiSolverInterface & si,
int createSolver=0);
105 virtual bool fixes(
int variable,
int toValue,
int fixedVariable,
bool fixedToLower);
110 int fixColumns(OsiSolverInterface & si)
const;
112 int fixColumns(
int iColumn,
int value, OsiSolverInterface & si)
const;
116 void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
165 {
return cEntry.
fixes&0x7fffffff;}
167 { cEntry.
fixes = sequence|(cEntry.
fixes&0x80000000);}
169 {
return (cEntry.
fixes&0x80000000)!=0;}
171 { cEntry.
fixes = (oneFixes ? 0x80000000 : 0)|(cEntry.
fixes&0x7fffffff);}
virtual bool fixes(int variable, int toValue, int fixedVariable, bool fixedToLower)
Take action if cut generator can fix a variable (toValue -1 for down, +1 for up) Returns true if stil...
int * integerVariable_
List of 0-1 integer variables.
cliqueEntry * fixEntry_
Entries for fixing variables.
virtual CglTreeInfo * clone() const
Clone.
cliqueEntry * fixEntries() const
Entries for fixing variables.
void setOneFixesInCliqueEntry(cliqueEntry &cEntry, bool oneFixes)
bool inTree
Set true if in tree (to avoid ambiguity at first branch)
int sequenceInCliqueEntry(const cliqueEntry &cEntry)
int numberVariables() const
Number of variables.
OsiSolverInterface * analyze(const OsiSolverInterface &si, int createSolver=0)
OsiRowCut ** strengthenRow
Replacement array.
virtual int initializeFixing(const OsiSolverInterface *)
Initalizes fixing arrays etc - returns >0 if we want to save info 0 if we don't and -1 if is to be us...
int * toOne() const
Starts of integer variable going to one.
bool oneFixesInCliqueEntry(const cliqueEntry &cEntry)
int packDown()
Packs down entries.
CglTreeInfo & operator=(const CglTreeInfo &rhs)
Assignment operator.
int level
The level of the search tree node.
int numberIntegers() const
Number of 0-1 variables.
int * backward() const
Backward look up.
int * toOne_
Starts of integer variable going to one.
void convert() const
Converts to ordered.
CglTreeProbingInfo()
Default constructor.
Derived class to pick up probing info.
void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info) const
Generate cuts from implications.
int numberIntegers_
Number of 0-1 variables.
int formulation_rows
The number of rows in the original formulation.
virtual ~CglTreeInfo()
Destructor.
CglTreeInfo()
Default constructor.
int options
Options 1 - treat costed integers as important 2 - switch off some stuff as variables semi-integer 4 ...
CoinThreadRandom * randomNumberGenerator
Optional pointer to thread specific random number generator.
int fixColumns(OsiSolverInterface &si) const
Fix entries in a solver using implications.
virtual ~CglTreeProbingInfo()
Destructor.
virtual CglTreeInfo * clone() const
Clone.
int * toZero_
Starts of integer variable going to zero.
int maximumEntries_
Maximum number in fixEntry_.
Stored Cut Generator Class.
int * fixingEntry_
Entries for fixing variable when collecting.
Information about where the cut generator is invoked from.
virtual int initializeFixing(const OsiSolverInterface *model)
Initalizes fixing arrays etc - returns >0 if we want to save info 0 if we don't and -1 if is to be us...
int * backward_
Backward look up.
int numberVariables_
Number of variables.
int pass
How many times the cut generator was already invoked in this search tree node.
virtual bool fixes(int, int, int, bool)
Take action if cut generator can fix a variable (toValue -1 for down, +1 for up)
int * toZero() const
Starts of integer variable going to zero.
int * integerVariable() const
List of 0-1 integer variables.
int numberEntries_
Number entries in fixingEntry_ (and fixEntry_) or -2 if correct style.
CglTreeProbingInfo & operator=(const CglTreeProbingInfo &rhs)
Assignment operator.
void setSequenceInCliqueEntry(cliqueEntry &cEntry, int sequence)