Go to the documentation of this file.
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;
129 void generateCuts(
const OsiSolverInterface &si, OsiCuts &cs,
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);
int * toOne_
Starts of integer variable going to one.
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 * toZero_
Starts of integer variable going to zero.
int * fixingEntry_
Entries for fixing variable when collecting.
void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info) const
Generate cuts from implications.
OsiRowCut ** strengthenRow
Replacement array.
int numberIntegers() const
Number of 0-1 variables.
int * backward() const
Backward look up.
Information about where the cut generator is invoked from.
virtual ~CglTreeInfo()
Destructor.
OsiSolverInterface * analyze(const OsiSolverInterface &si, int createSolver=0, int numberExtraCliques=0, const CoinBigIndex *starts=NULL, const CliqueEntry *entries=NULL, const char *type=NULL)
virtual CglTreeInfo * clone() const
Clone.
Stored Cut Generator Class.
CliqueEntry * fixEntry_
Entries for fixing variables.
int hasParent
nonzero if called from child of main model 1 if heuristic run 2 if doing full search
void setSequenceInCliqueEntry(CliqueEntry &cEntry, int sequence)
bool oneFixesInCliqueEntry(const CliqueEntry &cEntry)
OsiSolverInterface * parentSolver
parent solver
CglTreeInfo()
Default constructor.
int numberVariables() const
Number of variables.
virtual CglTreeInfo * clone() const
Clone.
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...
void convert()
Converts to ordered.
int numberIntegers_
Number of 0-1 variables.
int * integerVariable_
List of 0-1 integer variables.
CglTreeInfo & operator=(const CglTreeInfo &rhs)
Assignment operator.
int maximumEntries_
Maximum number in fixEntry_.
int * backward_
Backward look up.
int formulation_rows
The number of rows in the original formulation.
int numberVariables_
Number of variables.
int pass
How many times the cut generator was already invoked in this search tree node.
virtual ~CglTreeProbingInfo()
Destructor.
int * integerVariable() const
List of 0-1 integer variables.
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 numberEntries_
Number entries in fixingEntry_ (and fixEntry_) or -2 if correct style.
CglTreeProbingInfo & operator=(const CglTreeProbingInfo &rhs)
Assignment operator.
bool inTree
Set true if in tree (to avoid ambiguity at first branch)
int packDown()
Packs down entries.
int sequenceInCliqueEntry(const CliqueEntry &cEntry)
Derived class to pick up probing info.
int * toZero()
Starts of integer variable going to zero.
int * originalColumns
Original columns (if preprocessed)
CglTreeProbingInfo()
Default constructor.
int * toOne()
Starts of integer variable going to one.
CliqueEntry * fixEntries()
Entries for fixing variables.
int level
The level of the 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 fixColumns(OsiSolverInterface &si) const
Fix entries in a solver using implications.
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...
void setOneFixesInCliqueEntry(CliqueEntry &cEntry, bool oneFixes)