CouenneChooseStrong Class Reference

#include <CouenneChooseStrong.hpp>

Inheritance diagram for CouenneChooseStrong:

Inheritance graph
[legend]
Collaboration diagram for CouenneChooseStrong:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CouenneChooseStrong (Bonmin::BabSetupBase &b, CouenneProblem *problem, JnlstPtr jnlst)
 Constructor from solver (so we can set up arrays etc).
 CouenneChooseStrong (const CouenneChooseStrong &)
 Copy constructor.
CouenneChooseStrongoperator= (const CouenneChooseStrong &rhs)
 Assignment operator.
virtual OsiChooseVariable * clone () const
 Clone.
virtual ~CouenneChooseStrong ()
 Destructor.
virtual int setupList (OsiBranchingInformation *info, bool initialize)
 Sets up strong list and clears all if initialize is true.
virtual int doStrongBranching (CouenneSolverInterface *solver, OsiBranchingInformation *info, int numberToDo, int returnCriterion)
 This is a utility function which does strong branching on a list of objects and stores the results in OsiHotInfo.objects.
virtual bool feasibleSolution (const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects)
 Returns true if solution looks feasible against given objects.
virtual int chooseVariable (OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
 choose object to branch based on earlier setup

Static Public Member Functions

static void registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Add list of options to be read from file.

Protected Attributes

CouenneProblemproblem_
 Pointer to the associated MINLP problem.
bool pseudoUpdateLP_
 should we update the pseudocost multiplier with the distance between the LP point and the solution of the resulting branches' LPs? If so, this only happens in strong branching
JnlstPtr jnlst_
 pointer to journalist for detailed information

Private Member Functions

 CouenneChooseStrong ()
 Default Constructor, forbidden for some reason.

Detailed Description

Definition at line 24 of file CouenneChooseStrong.hpp.


Constructor & Destructor Documentation

CouenneChooseStrong::CouenneChooseStrong ( Bonmin::BabSetupBase b,
CouenneProblem problem,
JnlstPtr  jnlst 
)

Constructor from solver (so we can set up arrays etc).

Definition at line 18 of file CouenneChooseStrong.cpp.

References Bonmin::BabSetupBase::options(), pseudoUpdateLP_, and s.

CouenneChooseStrong::CouenneChooseStrong ( const CouenneChooseStrong  ) 

Copy constructor.

Definition at line 31 of file CouenneChooseStrong.cpp.

CouenneChooseStrong::~CouenneChooseStrong (  )  [virtual]

Destructor.

Definition at line 39 of file CouenneChooseStrong.cpp.

CouenneChooseStrong::CouenneChooseStrong (  )  [private]

Default Constructor, forbidden for some reason.

Referenced by clone().


Member Function Documentation

CouenneChooseStrong & CouenneChooseStrong::operator= ( const CouenneChooseStrong rhs  ) 

Assignment operator.

Definition at line 51 of file CouenneChooseStrong.cpp.

References problem_.

OsiChooseVariable * CouenneChooseStrong::clone (  )  const [virtual]

Clone.

Reimplemented from Bonmin::BonChooseVariable.

Definition at line 44 of file CouenneChooseStrong.cpp.

References CouenneChooseStrong().

Referenced by doStrongBranching().

int CouenneChooseStrong::setupList ( OsiBranchingInformation *  info,
bool  initialize 
) [virtual]

Sets up strong list and clears all if initialize is true.

Returns number of infeasibilities.

Reimplemented from Bonmin::BonChooseVariable.

Definition at line 81 of file CouenneChooseStrong.cpp.

References J_BRANCHING(), jnlst_, and problem_.

int CouenneChooseStrong::doStrongBranching ( CouenneSolverInterface solver,
OsiBranchingInformation *  info,
int  numberToDo,
int  returnCriterion 
) [virtual]

This is a utility function which does strong branching on a list of objects and stores the results in OsiHotInfo.objects.

On entry the object sequence is stored in the OsiHotInfo object and maybe more. It returns - -1 - one branch was infeasible both ways 0 - all inspected - nothing can be fixed 1 - all inspected - some can be fixed (returnCriterion==0) 2 - may be returning early - one can be fixed (last one done) (returnCriterion==1) 3 - returning because max time

Definition at line 58 of file doStrongBranching.cpp.

References t_chg_bounds::CHANGED, clone(), COUENNE_EPS, COUENNE_INFINITY, distance(), J_BRANCHING(), jnlst_, CouenneProblem::Lb(), problem_, pseudoUpdateLP_, Bonmin::BonChooseVariable::results_, t_chg_bounds::setLower(), t_chg_bounds::setUpper(), CouenneProblem::Ub(), and Bonmin::BonChooseVariable::updateInformation().

bool CouenneChooseStrong::feasibleSolution ( const OsiBranchingInformation *  info,
const double *  solution,
int  numberObjects,
const OsiObject **  objects 
) [virtual]

Returns true if solution looks feasible against given objects.

Definition at line 140 of file CouenneChooseStrong.cpp.

References problem_.

int CouenneChooseStrong::chooseVariable ( OsiSolverInterface *  solver,
OsiBranchingInformation *  info,
bool  fixVariables 
) [virtual]

choose object to branch based on earlier setup

Reimplemented from Bonmin::BonChooseVariable.

Definition at line 62 of file CouenneChooseStrong.cpp.

References problem_.

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

Add list of options to be read from file.

Definition at line 112 of file CouenneChooseStrong.cpp.

Referenced by CouenneCutGenerator::registerOptions().


Member Data Documentation

CouenneProblem* CouenneChooseStrong::problem_ [protected]

Pointer to the associated MINLP problem.

Definition at line 84 of file CouenneChooseStrong.hpp.

Referenced by chooseVariable(), doStrongBranching(), feasibleSolution(), operator=(), and setupList().

bool CouenneChooseStrong::pseudoUpdateLP_ [protected]

should we update the pseudocost multiplier with the distance between the LP point and the solution of the resulting branches' LPs? If so, this only happens in strong branching

Definition at line 89 of file CouenneChooseStrong.hpp.

Referenced by CouenneChooseStrong(), and doStrongBranching().

JnlstPtr CouenneChooseStrong::jnlst_ [protected]

pointer to journalist for detailed information

Reimplemented from Bonmin::BonChooseVariable.

Definition at line 92 of file CouenneChooseStrong.hpp.

Referenced by doStrongBranching(), and setupList().


The documentation for this class was generated from the following files:
Generated on Mon Aug 3 03:07:12 2009 by  doxygen 1.4.7