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 getAwayAtRoot() const
Get away at root.
virtual CglCutGenerator * clone() const
Clone.
double getAway() const
Get away.
virtual bool needsOptimalBasis() const
Return true if needs optimal basis to do cuts (will return true)
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)
OsiSolverInterface * originalSolver() const
Returns original solver.
int getLimitAtRoot() const
Get at root.
Information about where the cut generator is invoked from.
bool alternativeFactorization() const
Get whether alternative factorization being used.
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.
void useAlternativeFactorization(bool yes=true)
Set/unset alternative factorization.
void setLimitAtRoot(int limit)
Set at root (if <normal then use normal)
virtual int maximumLengthOfCutInTree() const
Return maximum length of cut in tree.
void setLimit(int limit)
Set.
Gomory Cut Generator Class.
double getConditionNumberMultiplier() const
Get ConditionNumberMultiplier.
virtual ~CglGomory()
Destructor.
Cut Generator Base Class.
virtual void refreshSolver(OsiSolverInterface *solver)
This can be used to refresh any inforamtion.
double getLargestFactorMultiplier() const
Get LargestFactorMultiplier.
void setLargestFactorMultiplier(double value)
Set LargestFactorMultiplier.
int getLimit() const
Get.
CglGomory & operator=(const CglGomory &rhs)
Assignment operator.
int gomoryType() const
Return type.
void setGomoryType(int type)
Set type - 0 normal, 1 add original matrix one, 2 replace.
void setAwayAtRoot(double value)
Set away at root.
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.