Go to the documentation of this file.
10 #ifndef COUENNEITERATIVEROUNDING_HPP
11 #define COUENNEITERATIVEROUNDING_HPP
76 int solution(
double & objectiveValue,
double * newSolution);
80 maxRoundingIter_ = value;
85 maxFirPoints_ = value;
95 maxTimeFirstCall_ = value;
141 int maxRoundingIter_;
147 double maxTimeFirstCall_;
160 double* colLowerNlp_;
161 double* colUpperNlp_;
181 inline bool areEqual(
double a,
double b){
186 int feasibilityIR(
double& objectiveValue,
double* newSolution);
189 int improvementIR(
double& objectiveValue,
double* newSolution,
190 const double* startingSolution);
197 int computeIntAtBound(
const double* x);
202 int computeIntAtBound(
const double* x,
double& avgBoundSize);
205 void writeLB(
OsiRowCut&
cut,
const double* x,
char sense,
double rhs);
209 std::vector<int>& previousBranches);
CouenneIterativeRounding()
Default constructor.
general include file for different compilers
CouenneIterativeRounding & operator=(const CouenneIterativeRounding &rhs)
Assignment operator.
void setMaxTimeFirstCall(double value)
Set maximum CPU time for the heuristic at the root node only.
void resetModel(CbcModel *model)
Does nothing.
int solution(double &objectiveValue, double *newSolution)
Run heuristic, return 1 if a better solution than the one passed is found and 0 otherwise.
void setCouenneProblem(CouenneProblem *couenne)
Set the couenne problem to use.
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions >)
initialize options to be read later
void setBaseLbRhs(int value)
Set the base value for the rhs of the local branching constraint in the I-IR heuristic.
void setAggressiveness(int value)
Set aggressiveness of heuristic.
void setMaxTime(double value)
Set maximum CPU time for the heuristic at each node.
An iterative rounding heuristic, tailored for nonconvex MINLPs.
void setMaxFirPoints(int value)
Set maximum number of points that we try to round in F-IR.
void setMaxRoundingIter(int value)
Set maximum number of iterations for each rounding phase.
void setNlp(Bonmin::OsiTMINLPInterface *nlp, OsiSolverInterface *cinlp)
Set the minlp solver.
virtual ~CouenneIterativeRounding()
Destructor.
void setOmega(double value)
Set the value for omega, the multiplicative factor for the minimum log-barrier parameter mu used by F...
Class for MINLP problems with symbolic information.
virtual CbcHeuristic * clone() const
Clone.