10 #include "OsiSolverInterface.hpp" 11 #include "CoinHelperFunctions.hpp" 71 virtual bool fixes(
int ,
int ,
int ,
bool) {
return false;}
106 OsiSolverInterface * analyze(
const OsiSolverInterface & si,
int createSolver=0);
110 virtual bool fixes(
int variable,
int toValue,
int fixedVariable,
bool fixedToLower);
115 int fixColumns(OsiSolverInterface & si)
const;
117 int fixColumns(
int iColumn,
int value, OsiSolverInterface & si)
const;
121 void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
125 { convert();
return fixEntry_;}
128 { convert();
return toZero_;}
131 { convert();
return toOne_;}
134 {
return integerVariable_;}
140 {
return numberVariables_;}
143 {
return numberIntegers_;}
170 {
return cEntry.
fixes&0x7fffffff;}
172 { cEntry.
fixes = sequence|(cEntry.
fixes&0x80000000);}
174 {
return (cEntry.
fixes&0x80000000)!=0;}
176 { cEntry.
fixes = (oneFixes ? 0x80000000 : 0)|(cEntry.
fixes&0x7fffffff);}
int * toZero()
Starts of integer variable going to zero.
OsiRowCut ** strengthenRow
Replacement array.
virtual ~CglTreeInfo()
Destructor.
int options
Options 1 - treat costed integers as important 2 - switch off some stuff as variables semi-integer 4 ...
int * toOne()
Starts of integer variable going to one.
int level
The level of the search tree node.
int numberVariables() const
Number of variables.
virtual CglTreeInfo * clone() const
Clone.
bool oneFixesInCliqueEntry(const cliqueEntry &cEntry)
Stored Cut Generator Class.
Information about where the cut generator is invoked from.
int * toZero_
Starts of integer variable going to zero.
int numberIntegers_
Number of 0-1 variables.
int numberIntegers() const
Number of 0-1 variables.
int maximumEntries_
Maximum number in fixEntry_.
Derived class to pick up probing info.
int * backward_
Backward look up.
int formulation_rows
The number of rows in the original formulation.
int * backward() const
Backward look up.
int * integerVariable() const
List of 0-1 integer variables.
int numberEntries_
Number entries in fixingEntry_ (and fixEntry_) or -2 if correct style.
CglTreeInfo & operator=(const CglTreeInfo &rhs)
Assignment operator.
CglTreeInfo()
Default constructor.
cliqueEntry * fixEntry_
Entries for fixing variables.
int * integerVariable_
List of 0-1 integer variables.
void setSequenceInCliqueEntry(cliqueEntry &cEntry, int sequence)
int numberVariables_
Number of variables.
int pass
How many times the cut generator was already invoked in this search tree node.
bool inTree
Set true if in tree (to avoid ambiguity at first branch)
int * toOne_
Starts of integer variable going to one.
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 sequenceInCliqueEntry(const cliqueEntry &cEntry)
virtual bool fixes(int, int, int, bool)
Take action if cut generator can fix a variable (toValue -1 for down, +1 for up)
void setOneFixesInCliqueEntry(cliqueEntry &cEntry, bool oneFixes)
int * fixingEntry_
Entries for fixing variable when collecting.
cliqueEntry * fixEntries()
Entries for fixing variables.
CoinThreadRandom * randomNumberGenerator
Optional pointer to thread specific random number generator.