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.
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 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 CglTreeInfo * clone() const
Clone.
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.
CglTreeInfo & operator=(const CglTreeInfo &rhs)
Assignment operator.
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.
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.
int fixColumns(OsiSolverInterface &si) const
Fix entries in a solver using implications.
CliqueEntry * fixEntries()
Entries for fixing variables.
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.
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 * toZero()
Starts of integer variable going to zero.
OsiSolverInterface * analyze(const OsiSolverInterface &si, int createSolver=0, int numberExtraCliques=0, const CoinBigIndex *starts=NULL, const CliqueEntry *entries=NULL, const char *type=NULL)
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.
CglTreeProbingInfo & operator=(const CglTreeProbingInfo &rhs)
Assignment operator.
int numberVariables_
Number of variables.
int numberVariables() const
Number of variables.
int * backward() const
Backward look up.
CglTreeProbingInfo(const OsiSolverInterface *model)
Constructor from model.
CliqueEntry * fixEntry_
Entries for fixing variables.
int * toOne()
Starts of integer variable going to one.
CglTreeProbingInfo()
Default constructor.
Derived class to pick up probing info.