12 class CoinWarmStartBasis;
16 const std::string mpdDir );
34 virtual void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
40 const CoinPackedMatrix & columnCopy,
41 const CoinPackedMatrix & rowCopy,
42 const double * colsol,
43 const double * colLower,
const double * colUpper,
44 const double * rowLower,
const double * rowUpper,
46 const CoinWarmStartBasis* warm,
52 const CoinPackedMatrix & columnCopy,
53 const double * colsol,
54 const double * colLower,
const double * colUpper,
55 const double * rowLower,
const double * rowUpper,
57 const CoinWarmStartBasis* warm,
70 {
return originalSolver_;}
76 {
return gomoryType_;}
130 { alternateFactorization_= (yes) ? 1 : 0;}
133 {
return (alternateFactorization_!=0);}
175 double conditionNumberMultiplier_;
177 double largestFactorMultiplier_;
179 OsiSolverInterface * originalSolver_;
185 int dynamicLimitInTree_;
187 int numberTimesStalled_;
189 int alternateFactorization_;
202 const std::string mpdDir );
double getAway() const
Get away.
virtual std::string generateCpp(FILE *fp)
Create C++ lines to get to current state.
void passInOriginalSolver(OsiSolverInterface *solver)
Pass in a copy of original solver (clone it)
int getLimitAtRoot() const
Get at root.
Information about where the cut generator is invoked from.
friend void CglGomoryUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglGomory class.
CglGomory()
Default constructor.
void setAway(double value)
Set away.
OsiSolverInterface * originalSolver() const
Returns original solver.
bool alternativeFactorization() const
Get whether alternative factorization being used.
void useAlternativeFactorization(bool yes=true)
Set/unset alternative factorization.
virtual CglCutGenerator * clone() const
Clone.
double getLargestFactorMultiplier() const
Get LargestFactorMultiplier.
void setLimitAtRoot(int limit)
Set at root (if <normal then use normal)
double getConditionNumberMultiplier() const
Get ConditionNumberMultiplier.
void setLimit(int limit)
Set.
Gomory Cut Generator Class.
virtual ~CglGomory()
Destructor.
Cut Generator Base Class.
double getAwayAtRoot() const
Get away at root.
virtual void refreshSolver(OsiSolverInterface *solver)
This can be used to refresh any inforamtion.
void setLargestFactorMultiplier(double value)
Set LargestFactorMultiplier.
virtual int maximumLengthOfCutInTree() const
Return maximum length of cut in tree.
int gomoryType() const
Return type.
CglGomory & operator=(const CglGomory &rhs)
Assignment operator.
void setGomoryType(int type)
Set type - 0 normal, 1 add original matrix one, 2 replace.
void setAwayAtRoot(double value)
Set away at root.
virtual bool needsOptimalBasis() const
Return true if needs optimal basis to do cuts (will return true)
void setConditionNumberMultiplier(double value)
Set ConditionNumberMultiplier.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate Mixed Integer Gomory cuts for the model of the solver interface, si.