#include <BonLpBranchingSolver.hpp>
Inheritance diagram for Bonmin::LpBranchingSolver:
Public Member Functions | |
LpBranchingSolver (BabSetupBase *b) | |
Constructor from setup. | |
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 | ( | BabSetupBase * | b | ) |
Constructor from setup.
Definition at line 15 of file BonLpBranchingSolver.cpp.
References abs_ecp_tol_, maxCuttingPlaneIterations_, Bonmin::BabSetupBase::nonlinearSolver(), Bonmin::OsiTMINLPInterface::prefix(), 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 53 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 80 of file BonLpBranchingSolver.cpp.
References Bonmin::OsiTMINLPInterface::extractLinearRelaxation(), Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getDblParam(), lin_, 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 110 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 98 of file BonLpBranchingSolver.cpp.
void Bonmin::LpBranchingSolver::setMaxCuttingPlaneIter | ( | int | num | ) | [inline] |
void Bonmin::LpBranchingSolver::registerOptions | ( | Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions | ) | [static] |
Definition at line 215 of file BonLpBranchingSolver.cpp.
References e, and Bonmin::RegisteredOptions::UndocumentedCategory.
Referenced by Bonmin::BabSetupBase::registerAllOptions().
OsiSolverInterface* Bonmin::LpBranchingSolver::lin_ [private] |
Linear solver.
Definition at line 53 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 56 of file BonLpBranchingSolver.hpp.
Referenced by markHotStart(), operator=(), solveFromHotStart(), unmarkHotStart(), and ~LpBranchingSolver().
EcpCuts* Bonmin::LpBranchingSolver::ecp_ [private] |
Ecp cut generate.
Definition at line 59 of file BonLpBranchingSolver.hpp.
Referenced by operator=(), solveFromHotStart(), unmarkHotStart(), and ~LpBranchingSolver().
int Bonmin::LpBranchingSolver::maxCuttingPlaneIterations_ [private] |
Number of maximal ECP cuts.
Definition at line 62 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), operator=(), setMaxCuttingPlaneIter(), and solveFromHotStart().
double Bonmin::LpBranchingSolver::abs_ecp_tol_ [private] |
absolute tolerance for ECP cuts
Definition at line 65 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), and operator=().
double Bonmin::LpBranchingSolver::rel_ecp_tol_ [private] |
relative tolerance for ECP cuts
Definition at line 68 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), and operator=().
Way problems are warm started.
Definition at line 76 of file BonLpBranchingSolver.hpp.
Referenced by LpBranchingSolver(), operator=(), and solveFromHotStart().