Bonmin::LpBranchingSolver Class Reference

Implementation of BonChooseVariable for curvature-based braching. More...

#include <BonLpBranchingSolver.hpp>

Inheritance diagram for Bonmin::LpBranchingSolver:

Inheritance graph
[legend]
Collaboration diagram for Bonmin::LpBranchingSolver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LpBranchingSolver (BabSetupBase *b)
 Constructor from setup.
 LpBranchingSolver (const LpBranchingSolver &)
 Copy constructor.
LpBranchingSolveroperator= (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.
EcpCutsecp_
 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.

Detailed Description

Implementation of BonChooseVariable for curvature-based braching.

Definition at line 15 of file BonLpBranchingSolver.hpp.


Member Enumeration Documentation

enum Bonmin::LpBranchingSolver::WarmStartMethod [private]

Enumerator:
Basis 
Clone  clone problem

Definition at line 71 of file BonLpBranchingSolver.hpp.


Constructor & Destructor Documentation

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  ) 

Copy constructor.

Definition at line 41 of file BonLpBranchingSolver.cpp.

Bonmin::LpBranchingSolver::~LpBranchingSolver (  )  [virtual]

Destructor.

Definition at line 72 of file BonLpBranchingSolver.cpp.

References ecp_, lin_, and warm_.

Bonmin::LpBranchingSolver::LpBranchingSolver (  )  [private]

Default Constructor.


Member Function Documentation

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.

References ecp_, lin_, and warm_.

void Bonmin::LpBranchingSolver::setMaxCuttingPlaneIter ( int  num  )  [inline]

Definition at line 41 of file BonLpBranchingSolver.hpp.

References maxCuttingPlaneIterations_.

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().


Member Data Documentation

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=().

WarmStartMethod Bonmin::LpBranchingSolver::warm_start_mode_ [private]

Way problems are warm started.

Definition at line 76 of file BonLpBranchingSolver.hpp.

Referenced by LpBranchingSolver(), operator=(), and solveFromHotStart().


The documentation for this class was generated from the following files:
Generated on Thu Nov 10 03:13:39 2011 by  doxygen 1.4.7