Bonmin::SubMipSolver Class Reference

A very simple class to provide a common interface for solving MIPs with Cplex and Cbc. More...

#include <BonSubMipSolver.hpp>

List of all members.

Public Types

enum  MILP_solve_strategy { FindGoodSolution, GetOptimum }

Public Member Functions

 SubMipSolver (BabSetupBase &b, const std::string &prefix)
 Constructor.
 SubMipSolver (const SubMipSolver &copy)
 Copy Constructor.
 ~SubMipSolver ()
void setLpSolver (OsiSolverInterface *lp)
 Assign lp solver.
void setStrategy (CbcStrategyDefault *strategy)
 Assign a strategy.
const double * getLastSolution ()
 get the solution found in last local search (return NULL if no solution).
double getLowerBound ()
void solve (double cutoff, int loglevel, double maxTime)
void find_good_sol (double cutoff, int loglevel, double maxTime)
 update cutoff and perform a local search to a good solution.
void optimize (double cutoff, int loglevel, double maxTime)
 update cutoff and optimize MIP.
double lowBound ()
 Returns lower bound.
bool optimal ()
 returns optimality status.
int nodeCount ()
 Returns number of nodes in last solve.
int iterationCount ()
 Returns number of simplex iterations in last solve.
OsiSolverInterface * solver ()

Static Public Member Functions

static void registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Register options for that Oa based cut generation method.

Private Attributes

OsiClpSolverInterface * clp_
 If lp solver is clp (then have to use Cbc) (not owned).
OsiCpxSolverInterface * cpx_
 If mip solver is cpx this is it (owned).
double lowBound_
 lower bound obtained
bool optimal_
 Is optimality proven?
double * integerSolution_
 Has an integer solution? then it is here.
CbcStrategyDefault * strategy_
 Strategy for solving sub mips with cbc.
int nodeCount_
 number of nodes in last mip solved.
int iterationCount_
 number of simplex iteration in last mip solved.
MILP_solve_strategy milp_strat_
 MILP search strategy.
double gap_tol_
 setting for gap tolerance.
bool ownClp_
 say if owns copy of clp_.

Detailed Description

A very simple class to provide a common interface for solving MIPs with Cplex and Cbc.

Definition at line 27 of file BonSubMipSolver.hpp.


Member Enumeration Documentation

Enumerator:
FindGoodSolution 
GetOptimum 

Definition at line 30 of file BonSubMipSolver.hpp.


Constructor & Destructor Documentation

Bonmin::SubMipSolver::SubMipSolver ( BabSetupBase b,
const std::string &  prefix 
)

Constructor.

Definition at line 37 of file BonSubMipSolver.cpp.

Bonmin::SubMipSolver::SubMipSolver ( const SubMipSolver copy  ) 

Copy Constructor.

Definition at line 90 of file BonSubMipSolver.cpp.

Bonmin::SubMipSolver::~SubMipSolver (  ) 

Definition at line 120 of file BonSubMipSolver.cpp.


Member Function Documentation

void Bonmin::SubMipSolver::setLpSolver ( OsiSolverInterface *  lp  ) 

Assign lp solver.

Definition at line 132 of file BonSubMipSolver.cpp.

void Bonmin::SubMipSolver::setStrategy ( CbcStrategyDefault *  strategy  ) 

Assign a strategy.

Definition at line 413 of file BonSubMipSolver.cpp.

const double* Bonmin::SubMipSolver::getLastSolution (  )  [inline]

get the solution found in last local search (return NULL if no solution).

Definition at line 48 of file BonSubMipSolver.hpp.

double Bonmin::SubMipSolver::getLowerBound (  )  [inline]

Definition at line 53 of file BonSubMipSolver.hpp.

void Bonmin::SubMipSolver::solve ( double  cutoff,
int  loglevel,
double  maxTime 
) [inline]

Definition at line 58 of file BonSubMipSolver.hpp.

void Bonmin::SubMipSolver::find_good_sol ( double  cutoff,
int  loglevel,
double  maxTime 
)

update cutoff and perform a local search to a good solution.

Definition at line 177 of file BonSubMipSolver.cpp.

void Bonmin::SubMipSolver::optimize ( double  cutoff,
int  loglevel,
double  maxTime 
)

update cutoff and optimize MIP.

Definition at line 313 of file BonSubMipSolver.cpp.

double Bonmin::SubMipSolver::lowBound (  )  [inline]

Returns lower bound.

Definition at line 80 of file BonSubMipSolver.hpp.

bool Bonmin::SubMipSolver::optimal (  )  [inline]

returns optimality status.

Definition at line 86 of file BonSubMipSolver.hpp.

int Bonmin::SubMipSolver::nodeCount (  )  [inline]

Returns number of nodes in last solve.

Definition at line 92 of file BonSubMipSolver.hpp.

int Bonmin::SubMipSolver::iterationCount (  )  [inline]

Returns number of simplex iterations in last solve.

Definition at line 98 of file BonSubMipSolver.hpp.

OsiSolverInterface * Bonmin::SubMipSolver::solver (  ) 

Definition at line 165 of file BonSubMipSolver.cpp.

void Bonmin::SubMipSolver::registerOptions ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions  )  [static]

Register options for that Oa based cut generation method.

Register options.

Definition at line 422 of file BonSubMipSolver.cpp.


Member Data Documentation

OsiClpSolverInterface* Bonmin::SubMipSolver::clp_ [private]

If lp solver is clp (then have to use Cbc) (not owned).

Definition at line 110 of file BonSubMipSolver.hpp.

OsiCpxSolverInterface* Bonmin::SubMipSolver::cpx_ [private]

If mip solver is cpx this is it (owned).

Definition at line 112 of file BonSubMipSolver.hpp.

lower bound obtained

Definition at line 114 of file BonSubMipSolver.hpp.

Is optimality proven?

Definition at line 116 of file BonSubMipSolver.hpp.

Has an integer solution? then it is here.

Definition at line 118 of file BonSubMipSolver.hpp.

CbcStrategyDefault* Bonmin::SubMipSolver::strategy_ [private]

Strategy for solving sub mips with cbc.

Definition at line 120 of file BonSubMipSolver.hpp.

number of nodes in last mip solved.

Definition at line 122 of file BonSubMipSolver.hpp.

number of simplex iteration in last mip solved.

Definition at line 124 of file BonSubMipSolver.hpp.

MILP search strategy.

Definition at line 126 of file BonSubMipSolver.hpp.

setting for gap tolerance.

Definition at line 128 of file BonSubMipSolver.hpp.

say if owns copy of clp_.

Definition at line 130 of file BonSubMipSolver.hpp.


The documentation for this class was generated from the following files:

Generated on 16 Feb 2012 by  doxygen 1.6.1