14#ifndef MINOTAURSIMPLEXQUADCUTGEN_H
15#define MINOTAURSIMPLEXQUADCUTGEN_H
27typedef Relaxation* RelaxationPtr;
33 const double* colLower;
34 const double* colUpper;
35 const double* rowLower;
36 const double* rowUpper;
38 const double* origTab;
65 return depth < cut.depth;
69 return depth > cut.depth;
73typedef std::map<int, std::pair<double, double>> SlackBound;
75typedef std::vector<SimplexCutPtr> SimplexCutVector;
90 void disableFactorization();
93 bool doCutting(
double curlb);
97 ConstraintVector& added);
100 void preprocessSimplexTab();
102 void writeStats(std::ostream& out)
const;
110 std::vector<int> bounds_;
128 static const std::string me_;
146 double minChangeFrac_;
160 std::map<int, int> basicInd_;
163 std::vector<int> nbOrig_;
169 std::vector<int> nbSlack_;
187 void addCutsToRel_(SimplexCutVector cuts,
RelaxationPtr rel,
const double* x,
188 UInt& ncuts, ConstraintVector& added);
191 void calcDepth_(SimplexCutVector cuts,
const double* x);
197 void getBasicInfo_();
202 void getSlackBounds_();
205 void getTermBounds_(
double coef,
double vlb,
double vub,
double& lb,
208 void relaxConsBNB_(SimplexCutVector& cuts,
ConstraintPtr c,
const double* x,
211 int relaxTermBNB_(
double coef,
bool lower,
double bl,
double bu,
double nl,
212 double nu,
double& cb,
double& cn,
double& cnst,
215 void slackSubstitute_(
int slackInd,
double coef, std::map<int, double>& row,
220 double* coefs,
double& cutConst,
bool under);
222 void sortVariables_();
Get information about a constraint in a given Problem.
Define the Environment class.
Declare the class LPEngine for solving LPs and getting solution.
Declare the base class Modification.
Declare important 'types' used in Minotaur.
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
Definition: Environment.h:28
Definition: LPEngine.h:29
Definition: Relaxation.h:53
Definition: SimplexQuadCutGen.h:78
Definition: Solution.h:30
Definition: Variable.h:31
Definition: ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
Definition: SimplexQuadCutGen.h:44
Definition: SimplexQuadCutGen.h:51
A structure to store info from the simplex tableau.
Definition: SimplexQuadCutGen.h:30