11 #ifndef COUENNECHOOSESTRONG_HPP
12 #define COUENNECHOOSESTRONG_HPP
21 template <
class T>
class CouenneSolverInterface;
62 int numberToDo,
int returnCriterion);
66 const double * solution,
97 OsiObject **
object,
const int iObject,
const double prec);
100 bool saveBestCand(
OsiObject **
object,
const int iObject,
102 const double upEstimate,
103 const double downEstimate,
105 double &bestVal2,
int &bestIndex,
CouenneProblem * problem_
Pointer to the associated MINLP problem.
CouenneChooseStrong & operator=(const CouenneChooseStrong &rhs)
Assignment operator.
JnlstPtr jnlst_
pointer to journalist for detailed information
bool estimateProduct_
Normally, a convex combination of the min/max lower bounds' estimates is taken to select a branching ...
CouenneChooseStrong(const CouenneChooseStrong &)
Copy constructor.
virtual ~CouenneChooseStrong()
Destructor.
int gutsOfSetupList(OsiBranchingInformation *info, bool initialize)
CouenneChooseStrong(Bonmin::BabSetupBase &b, CouenneProblem *problem, JnlstPtr jnlst)
Constructor from solver (so we can set up arrays etc)
virtual int doStrongBranching(OsiSolverInterface *OsiSolver, OsiBranchingInformation *info, int numberToDo, int returnCriterion)
This is a utility function which does strong branching on a list of objects and stores the results in...
int simulateBranch(OsiObject *Object, OsiBranchingInformation *info, OsiBranchingObject *branch, OsiSolverInterface *solver, Bonmin::HotInfo *result, int direction)
does one side of the branching
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
double branchtime_
total time spent in strong branching
virtual int chooseVariable(OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
choose object to branch based on earlier setup
bool pseudoUpdateLP_
should we update the pseudocost multiplier with the distance between the LP point and the solution of...
virtual bool feasibleSolution(const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects)
Returns true if solution looks feasible against given objects.
virtual OsiChooseVariable * clone() const
Clone.
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Add list of options to be read from file.
Class for MINLP problems with symbolic information.
general include file for different compilers