10 #include "OsiSolverInterface.hpp"
11 #include "CoinHelperFunctions.hpp"
79 virtual bool fixes(
int,
int,
int,
bool) {
return false; }
112 OsiSolverInterface *
analyze(
const OsiSolverInterface &si,
int createSolver = 0,
113 int numberExtraCliques = 0,
const CoinBigIndex *starts = NULL,
114 const CliqueEntry *entries = NULL,
const char *type = NULL);
118 virtual bool fixes(
int variable,
int toValue,
int fixedVariable,
bool fixedToLower);
125 int fixColumns(
int iColumn,
int value, OsiSolverInterface &si)
const;
198 return cEntry.
fixes & 0x7fffffff;
202 cEntry.
fixes = sequence | (cEntry.
fixes & 0x80000000);
206 return (cEntry.
fixes & 0x80000000) != 0;
210 cEntry.
fixes = (oneFixes ? 0x80000000 : 0) | (cEntry.
fixes & 0x7fffffff);
bool oneFixesInCliqueEntry(const CliqueEntry &cEntry)
int sequenceInCliqueEntry(const CliqueEntry &cEntry)
void setSequenceInCliqueEntry(CliqueEntry &cEntry, int sequence)
void setOneFixesInCliqueEntry(CliqueEntry &cEntry, bool oneFixes)
Stored Cut Generator Class.
Information about where the cut generator is invoked from.
int level
The level of the search tree node.
int pass
How many times the cut generator was already invoked in this search tree node.
CoinThreadRandom * randomNumberGenerator
Optional pointer to thread specific random number generator.
CglTreeInfo(const CglTreeInfo &)
Copy constructor.
bool inTree
Set true if in tree (to avoid ambiguity at first branch)
OsiRowCut ** strengthenRow
Replacement array.
int * originalColumns
Original columns (if preprocessed)
int options
Options 1 - treat costed integers as important 2 - switch off some stuff as variables semi-integer 4 ...
OsiSolverInterface * parentSolver
parent solver
virtual CglTreeInfo * clone() const
Clone.
CglTreeInfo & operator=(const CglTreeInfo &rhs)
Assignment operator.
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...
virtual ~CglTreeInfo()
Destructor.
virtual bool fixes(int, int, int, bool)
Take action if cut generator can fix a variable (toValue -1 for down, +1 for up)
CglTreeInfo()
Default constructor.
int hasParent
nonzero if called from child of main model 1 if heuristic run 2 if doing full search
int formulation_rows
The number of rows in the original formulation.
CglTreeProbingInfo & operator=(const CglTreeProbingInfo &rhs)
Assignment operator.
void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info) const
Generate cuts from implications.
int numberEntries_
Number entries in fixingEntry_ (and fixEntry_) or -2 if correct style.
int maximumEntries_
Maximum number in fixEntry_.
int packDown()
Packs down entries.
void convert()
Converts to ordered.
int * backward_
Backward look up.
OsiSolverInterface * analyze(const OsiSolverInterface &si, int createSolver=0, int numberExtraCliques=0, const CoinBigIndex *starts=NULL, const CliqueEntry *entries=NULL, const char *type=NULL)
int fixColumns(OsiSolverInterface &si) const
Fix entries in a solver using implications.
int * fixingEntry_
Entries for fixing variable when collecting.
int * toOne_
Starts of integer variable going to one.
virtual ~CglTreeProbingInfo()
Destructor.
int numberIntegers_
Number of 0-1 variables.
virtual CglTreeInfo * clone() const
Clone.
int * backward() const
Backward look up.
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 * integerVariable() const
List of 0-1 integer variables.
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 * toOne()
Starts of integer variable going to one.
int * integerVariable_
List of 0-1 integer variables.
int * toZero_
Starts of integer variable going to zero.
CglTreeProbingInfo(const CglTreeProbingInfo &)
Copy constructor.
int fixColumns(int iColumn, int value, OsiSolverInterface &si) const
Fix entries in a solver using implications for one variable.
int numberIntegers() const
Number of 0-1 variables.
int * toZero()
Starts of integer variable going to zero.
CliqueEntry * fixEntries()
Entries for fixing variables.
int numberVariables_
Number of variables.
int numberVariables() const
Number of variables.
CglTreeProbingInfo(const OsiSolverInterface *model)
Constructor from model.
CliqueEntry * fixEntry_
Entries for fixing variables.
CglTreeProbingInfo()
Default constructor.
Derived class to pick up probing info.