12 #ifndef BonSubMipSolver_HPP
13 #define BonSubMipSolver_HPP
14 #include "IpSmartPtr.hpp"
17 class OsiSolverInterface;
18 class OsiClpSolverInterface;
19 class OsiCpxSolverInterface;
21 class CbcStrategyDefault;
23 #include "OsiCuts.hpp"
26 class RegisteredOptions;
84 double maxTime,
const OsiCuts & cs);
111 OsiSolverInterface *
solver();
bool ownClp_
say if owns copy of clp_.
void setStrategy(CbcStrategyDefault *strategy)
Assign a strategy.
int nodeCount_
number of nodes in last mip solved.
double * integerSolution_
Has an integer solution? then it is here.
double gap_tol_
setting for gap tolerance.
bool optimal_
Is optimality proven?
const double * getLastSolution()
get the solution found in last local search (return NULL if no solution).
A very simple class to provide a common interface for solving MIPs with Cplex and Cbc...
A class to have all elements necessary to setup a branch-and-bound.
MILP_solve_strategy milp_strat_
MILP search strategy.
void fint fint fint real fint real real real real real real real real real fint real fint * lp
OsiClpSolverInterface * clp_
If lp solver is clp (then have to use Cbc) (not owned).
void solve(double cutoff, int loglevel, double maxTime)
double lowBound_
lower bound obtained
OsiSolverInterface * solver()
bool optimal()
returns optimality status.
int iterationCount_
number of simplex iteration in last mip solved.
double lowBound()
Returns lower bound.
SubMipSolver(BabSetupBase &b, const std::string &prefix)
Constructor.
void find_good_sol(double cutoff, int loglevel, double maxTime)
update cutoff and perform a local search to a good solution.
int iterationCount()
Returns number of simplex iterations in last solve.
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register options for that Oa based cut generation method.
void optimize(double cutoff, int loglevel, double maxTime)
update cutoff and optimize MIP.
void setLpSolver(OsiSolverInterface *lp)
Assign lp solver.
CbcStrategyDefault * strategy_
Strategy for solving sub mips with cbc.
void optimize_with_lazy_constraints(double cutoff, int loglevel, double maxTime, const OsiCuts &cs)
update cutoff, put OA constraints in cs as lazy constraints and optimize MIP.
int nodeCount()
Returns number of nodes in last solve.
OsiCpxSolverInterface * cpx_
If mip solver is cpx this is it (owned).