#include <BonLpBranchingSolver.hpp>
Inheritance diagram for Bonmin::LpBranchingSolver:
Public Member Functions | |
LpBranchingSolver (OsiTMINLPInterface *solver) | |
Constructor from solver (so we can set up arrays etc). | |
LpBranchingSolver (const LpBranchingSolver &) | |
Copy constructor. | |
LpBranchingSolver & | operator= (const LpBranchingSolver &rhs) |
Assignment operator. | |
virtual | ~LpBranchingSolver () |
Destructor. | |
virtual void | markHotStart (OsiTMINLPInterface *tminlp_interface) |
Called to initialize solver before a bunch of strong branching solves. | |
virtual TNLPSolver::ReturnStatus | solveFromHotStart (OsiTMINLPInterface *tminlp_interface) |
Called to solve the current TMINLP (with changed bound information). | |
virtual void | unmarkHotStart (OsiTMINLPInterface *tminlp_interface) |
Called after all strong branching solves in a node. | |
void | setMaxCuttingPlaneIter (int num) |
Static Public Member Functions | |
static void | registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Private Types | |
Basis = 0 | |
Clone | |
clone problem | |
enum | WarmStartMethod { Basis = 0, Clone } |
Private Member Functions | |
LpBranchingSolver () | |
Default Constructor. | |
Private Attributes | |
OsiSolverInterface * | lin_ |
Linear solver. | |
CoinWarmStart * | warm_ |
Warm start object for linear solver. | |
EcpCuts * | ecp_ |
Ecp cut generate. | |
int | maxCuttingPlaneIterations_ |
Number of maximal ECP cuts. | |
double | abs_ecp_tol_ |
absolute tolerance for ECP cuts | |
double | rel_ecp_tol_ |
relative tolerance for ECP cuts | |
WarmStartMethod | warm_start_mode_ |
Way problems are warm started. |
Definition at line 15 of file BonLpBranchingSolver.hpp.
enum Bonmin::LpBranchingSolver::WarmStartMethod [private] |
Bonmin::LpBranchingSolver::LpBranchingSolver | ( | OsiTMINLPInterface * | solver | ) |
Constructor from solver (so we can set up arrays etc).
Definition at line 15 of file BonLpBranchingSolver.cpp.
References abs_ecp_tol_, maxCuttingPlaneIterations_, rel_ecp_tol_, Bonmin::OsiTMINLPInterface::solver(), and warm_start_mode_.
Bonmin::LpBranchingSolver::LpBranchingSolver | ( | const LpBranchingSolver & | ) |
Bonmin::LpBranchingSolver::~LpBranchingSolver | ( | ) | [virtual] |
Bonmin::LpBranchingSolver::LpBranchingSolver | ( | ) | [private] |
Default Constructor.
LpBranchingSolver & Bonmin::LpBranchingSolver::operator= | ( | const LpBranchingSolver & | rhs | ) |
Assignment operator.
Definition at line 46 of file BonLpBranchingSolver.cpp.
References abs_ecp_tol_, ecp_, lin_, maxCuttingPlaneIterations_, Bonmin::StrongBranchingSolver::operator=(), rel_ecp_tol_, warm_, and warm_start_mode_.
void Bonmin::LpBranchingSolver::markHotStart | ( | OsiTMINLPInterface * | tminlp_interface | ) | [virtual] |
Called to initialize solver before a bunch of strong branching solves.
Implements Bonmin::StrongBranchingSolver.
Definition at line 73 of file BonLpBranchingSolver.cpp.
References abs_ecp_tol_, ecp_, Bonmin::OsiTMINLPInterface::extractLinearRelaxation(), Bonmin::OsiTMINLPInterface::getDblParam(), lin_, maxCuttingPlaneIterations_, rel_ecp_tol_, and warm_.
TNLPSolver::ReturnStatus Bonmin::LpBranchingSolver::solveFromHotStart | ( | OsiTMINLPInterface * | tminlp_interface | ) | [virtual] |
Called to solve the current TMINLP (with changed bound information).
Implements Bonmin::StrongBranchingSolver.
Definition at line 102 of file BonLpBranchingSolver.cpp.
References Basis, Clone, Bonmin::EcpCuts::doEcpRounds(), e, ecp_, Bonmin::OsiTMINLPInterface::getColLower(), Bonmin::OsiTMINLPInterface::getColUpper(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::TNLPSolver::iterationLimit, lin_, maxCuttingPlaneIterations_, Bonmin::OsiTMINLPInterface::problem(), Bonmin::TNLPSolver::provenInfeasible, Bonmin::TMINLP2TNLP::set_obj_value(), Bonmin::TMINLP2TNLP::Set_x_sol(), Bonmin::TNLPSolver::solvedOptimal, warm_, and warm_start_mode_.
void Bonmin::LpBranchingSolver::unmarkHotStart | ( | OsiTMINLPInterface * | tminlp_interface | ) | [virtual] |
Called after all strong branching solves in a node.
Implements Bonmin::StrongBranchingSolver.
Definition at line 90 of file BonLpBranchingSolver.cpp.
void Bonmin::LpBranchingSolver::setMaxCuttingPlaneIter | ( | int | num | ) | [inline] |
void Bonmin::LpBranchingSolver::registerOptions | ( | Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions | ) | [static] |
Definition at line 207 of file BonLpBranchingSolver.cpp.
References Bonmin::RegisteredOptions::BonminCategory, and e.
Referenced by Bonmin::BabSetupBase::registerAllOptions().
OsiSolverInterface* Bonmin::LpBranchingSolver::lin_ [private] |
Linear solver.
Definition at line 54 of file BonLpBranchingSolver.hpp.
Referenced by markHotStart(), operator=(), solveFromHotStart(), unmarkHotStart(), and ~LpBranchingSolver().
CoinWarmStart* Bonmin::LpBranchingSolver::warm_ [private] |
Warm start object for linear solver.
Definition at line 57 of file BonLpBranchingSolver.hpp.
Referenced by markHotStart(), operator=(), solveFromHotStart(), unmarkHotStart(), and ~LpBranchingSolver().
EcpCuts* Bonmin::LpBranchingSolver::ecp_ [private] |
Ecp cut generate.
Definition at line 60 of file BonLpBranchingSolver.hpp.
Referenced by markHotStart(), operator=(), solveFromHotStart(), unmarkHotStart(), and ~LpBranchingSolver().
int Bonmin::LpBranchingSolver::maxCuttingPlaneIterations_ [private] |
Number of maximal ECP cuts.
Definition at line 63 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), markHotStart(), operator=(), setMaxCuttingPlaneIter(), and solveFromHotStart().
double Bonmin::LpBranchingSolver::abs_ecp_tol_ [private] |
absolute tolerance for ECP cuts
Definition at line 66 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), markHotStart(), and operator=().
double Bonmin::LpBranchingSolver::rel_ecp_tol_ [private] |
relative tolerance for ECP cuts
Definition at line 69 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), markHotStart(), and operator=().
Way problems are warm started.
Definition at line 77 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), operator=(), and solveFromHotStart().