Bonmin::OaDecompositionBase Class Reference

Base class for OA algorithms. More...

#include <BonOaDecBase.hpp>

Inheritance diagram for Bonmin::OaDecompositionBase:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OaDecompositionBase (OsiTMINLPInterface *nlp=NULL, OsiSolverInterface *si=NULL, CbcStrategy *strategy=NULL, double cbcCutoffIncrement_=1e-07, double cbcIntegerTolerance=1e-05, bool leaveSiUnchanged=0)
 Old usefull constructor.
 OaDecompositionBase (BabSetupBase &b, bool leaveSiUnchanged, bool reassignLpsolver)
 New usefull constructor.
 OaDecompositionBase (const OaDecompositionBase &copy)
 Copy constructor.
virtual ~OaDecompositionBase ()
 Destructor.
virtual void generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const
 Standard cut generation methods.
void assignNlpInterface (OsiTMINLPInterface *nlp)
 Assign an OsiTMINLPInterface.
void assignLpInterface (OsiSolverInterface *si)
 Assign an OsiTMINLPInterface.
bool reassignLpsolver ()
void setObjects (OsiObject **objects, int nObjects)
 Set objects.
void setLeaveSiUnchanged (bool yesno)
 Set whether to leave the solverinterface unchanged.
Parametersparameter ()
const Parametersparameter () const
void setLogLevel (int level)
void passInMessageHandler (CoinMessageHandler *handler)

Protected Member Functions

virtual double performOa (OsiCuts &cs, solverManip &nlpManip, solverManip &lpManip, SubMipSolver *&subMip, OsiBabSolver *babInfo, double &) const =0
 virtual method which performs the OA algorithm by modifying lp and nlp.
virtual bool doLocalSearch () const =0
 virutal method to decide if local search is performed
Protected helper functions
bool solveNlp (OsiBabSolver *babInfo, double cutoff) const
 Solve the nlp and do output return true if feasible.

Protected Attributes

Protected members
OsiTMINLPInterfacenlp_
 Pointer to nlp interface.
int nSolve_
 Number of nlp solved done.
OsiSolverInterface * lp_
 A linear solver.
OsiObject ** objects_
 Some objects the feasiblitiy of which to verify.
int nObjects_
 Number of objects.*/.
int nLocalSearch_
 number of local searches performed
CoinMessageHandler * handler_
 messages handler.
CoinMessages messages_
 Messages for OA.
bool leaveSiUnchanged_
 Wether or not we should remove cuts at the end of the procedure.
bool reassignLpsolver_
 Do we need to reassign the lp solver with Cbc.
double timeBegin_
 time of construction
Parameters parameters_
 Parameters.

Classes

struct  Parameters
 Parameters for algorithm. More...
class  solverManip
 Small class to manipulatee various things in an OsiSolverInterface and restore them. More...
class  SubMipSolver
 Small class to perform the solution of sub-mips. More...

Detailed Description

Base class for OA algorithms.

Definition at line 31 of file BonOaDecBase.hpp.


Constructor & Destructor Documentation

Bonmin::OaDecompositionBase::OaDecompositionBase ( OsiTMINLPInterface nlp = NULL,
OsiSolverInterface *  si = NULL,
CbcStrategy *  strategy = NULL,
double  cbcCutoffIncrement_ = 1e-07,
double  cbcIntegerTolerance = 1e-05,
bool  leaveSiUnchanged = 0 
)

Old usefull constructor.

Definition at line 33 of file BonOaDecBase.cpp.

Bonmin::OaDecompositionBase::OaDecompositionBase ( BabSetupBase b,
bool  leaveSiUnchanged,
bool  reassignLpsolver 
)

New usefull constructor.

Definition at line 63 of file BonOaDecBase.cpp.

References Bonmin::OaDecompositionBase::Parameters::addOnlyViolated_, Bonmin::OaDecompositionBase::Parameters::cbcCutoffIncrement_, Bonmin::OaDecompositionBase::Parameters::cbcIntegerTolerance_, Bonmin::OaDecompositionBase::Parameters::global_, handler_, Bonmin::OaDecompositionBase::Parameters::logFrequency_, messages_, Bonmin::BabSetupBase::options(), parameters_, setLogLevel(), Bonmin::OaDecompositionBase::Parameters::subMilpLogLevel_, and timeBegin_.

Bonmin::OaDecompositionBase::OaDecompositionBase ( const OaDecompositionBase copy  ) 

Copy constructor.

Definition at line 97 of file BonOaDecBase.cpp.

References handler_.

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

Destructor.

Definition at line 130 of file BonOaDecBase.cpp.

References handler_.


Member Function Documentation

void Bonmin::OaDecompositionBase::generateCuts ( const OsiSolverInterface &  si,
OsiCuts &  cs,
const CglTreeInfo  info = CglTreeInfo() 
) const [virtual]

Standard cut generation methods.

Reimplemented in Bonmin::EcpCuts.

Definition at line 618 of file BonOaDecBase.cpp.

References Bonmin::OaDecompositionBase::Parameters::cbcIntegerTolerance_, Bonmin::OaDecompositionBase::solverManip::cloneOther(), doLocalSearch(), Bonmin::OaDecompositionBase::solverManip::integerFeasible(), leaveSiUnchanged_, lp_, nlp_, nObjects_, objects_, parameters_, performOa(), Bonmin::OaDecompositionBase::solverManip::restore(), Bonmin::OaDecompositionBase::solverManip::setIntegerTolerance(), Bonmin::OaDecompositionBase::solverManip::setObjects(), and Bonmin::OaDecompositionBase::Parameters::strategy().

void Bonmin::OaDecompositionBase::assignNlpInterface ( OsiTMINLPInterface nlp  )  [inline]

Assign an OsiTMINLPInterface.

Definition at line 238 of file BonOaDecBase.hpp.

References nlp_.

void Bonmin::OaDecompositionBase::assignLpInterface ( OsiSolverInterface *  si  )  [inline]

Assign an OsiTMINLPInterface.

Definition at line 244 of file BonOaDecBase.hpp.

References lp_.

Referenced by Bonmin::EcpCuts::EcpCuts(), and Bonmin::OACutGenerator2::OACutGenerator2().

bool Bonmin::OaDecompositionBase::reassignLpsolver (  )  [inline]

Definition at line 249 of file BonOaDecBase.hpp.

References reassignLpsolver_.

void Bonmin::OaDecompositionBase::setObjects ( OsiObject **  objects,
int  nObjects 
) [inline]

Set objects.

Definition at line 254 of file BonOaDecBase.hpp.

References nObjects_, and objects_.

void Bonmin::OaDecompositionBase::setLeaveSiUnchanged ( bool  yesno  )  [inline]

Set whether to leave the solverinterface unchanged.

Definition at line 260 of file BonOaDecBase.hpp.

References leaveSiUnchanged_.

Parameters& Bonmin::OaDecompositionBase::parameter (  )  [inline]

Definition at line 318 of file BonOaDecBase.hpp.

References parameters_.

Referenced by Bonmin::EcpCuts::generateCuts(), Bonmin::OACutGenerator2::OACutGenerator2(), Bonmin::OaFeasibilityChecker::performOa(), Bonmin::OACutGenerator2::performOa(), and signal_handler().

const Parameters& Bonmin::OaDecompositionBase::parameter (  )  const [inline]

Definition at line 323 of file BonOaDecBase.hpp.

References parameters_.

void Bonmin::OaDecompositionBase::setLogLevel ( int  level  )  [inline]

Definition at line 328 of file BonOaDecBase.hpp.

References handler_.

Referenced by OaDecompositionBase().

void Bonmin::OaDecompositionBase::passInMessageHandler ( CoinMessageHandler *  handler  ) 

Definition at line 392 of file BonOaDecBase.cpp.

References handler_.

Referenced by Bonmin::BonminSetup::initializeBHyb().

bool Bonmin::OaDecompositionBase::solveNlp ( OsiBabSolver *  babInfo,
double  cutoff 
) const [protected]

Solve the nlp and do output return true if feasible.

Returns:
true if feasible

Definition at line 723 of file BonOaDecBase.cpp.

References Bonmin::FEASIBLE_NLP, Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getIterationCount(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::OsiTMINLPInterface::getObjValue(), handler_, Bonmin::INFEASIBLE_NLP, Bonmin::OsiTMINLPInterface::isAbandoned(), Bonmin::OsiTMINLPInterface::isIterationLimitReached(), Bonmin::OsiTMINLPInterface::isProvenOptimal(), messages_, nlp_, nSolve_, Bonmin::OsiTMINLPInterface::resolve(), timeBegin_, and Bonmin::UPDATE_UB.

Referenced by Bonmin::OaFeasibilityChecker::performOa(), and Bonmin::OACutGenerator2::performOa().

virtual double Bonmin::OaDecompositionBase::performOa ( OsiCuts &  cs,
solverManip nlpManip,
solverManip lpManip,
SubMipSolver *&  subMip,
OsiBabSolver *  babInfo,
double &   
) const [protected, pure virtual]

virtual method which performs the OA algorithm by modifying lp and nlp.

Referenced by generateCuts().

virtual bool Bonmin::OaDecompositionBase::doLocalSearch (  )  const [protected, pure virtual]

virutal method to decide if local search is performed

Implemented in Bonmin::EcpCuts, Bonmin::OACutGenerator2, and Bonmin::OaFeasibilityChecker.

Referenced by generateCuts().


Member Data Documentation

OsiTMINLPInterface* Bonmin::OaDecompositionBase::nlp_ [mutable, protected]

Pointer to nlp interface.

Definition at line 352 of file BonOaDecBase.hpp.

Referenced by assignNlpInterface(), generateCuts(), Bonmin::EcpCuts::generateCuts(), Bonmin::OaFeasibilityChecker::performOa(), Bonmin::OACutGenerator2::performOa(), and solveNlp().

int Bonmin::OaDecompositionBase::nSolve_ [mutable, protected]

Number of nlp solved done.

Definition at line 354 of file BonOaDecBase.hpp.

Referenced by solveNlp().

OsiSolverInterface* Bonmin::OaDecompositionBase::lp_ [mutable, protected]

A linear solver.

Definition at line 356 of file BonOaDecBase.hpp.

Referenced by assignLpInterface(), Bonmin::OaDecompositionBase::solverManip::cloneOther(), Bonmin::EcpCuts::doEcpRounds(), generateCuts(), and Bonmin::EcpCuts::generateCuts().

OsiObject* * Bonmin::OaDecompositionBase::objects_ [protected]

Some objects the feasiblitiy of which to verify.

Definition at line 358 of file BonOaDecBase.hpp.

Referenced by generateCuts(), and setObjects().

int Bonmin::OaDecompositionBase::nObjects_ [protected]

Number of objects.*/.

Definition at line 360 of file BonOaDecBase.hpp.

Referenced by generateCuts(), and setObjects().

int Bonmin::OaDecompositionBase::nLocalSearch_ [mutable, protected]

number of local searches performed

Definition at line 362 of file BonOaDecBase.hpp.

Referenced by Bonmin::OACutGenerator2::doLocalSearch(), and Bonmin::OACutGenerator2::performOa().

CoinMessageHandler* Bonmin::OaDecompositionBase::handler_ [protected]

messages handler.

Definition at line 364 of file BonOaDecBase.hpp.

Referenced by OaDecompositionBase(), passInMessageHandler(), Bonmin::OACutGenerator2::performOa(), setLogLevel(), solveNlp(), and ~OaDecompositionBase().

CoinMessages Bonmin::OaDecompositionBase::messages_ [protected]

Messages for OA.

Definition at line 366 of file BonOaDecBase.hpp.

Referenced by OaDecompositionBase(), Bonmin::OACutGenerator2::performOa(), and solveNlp().

bool Bonmin::OaDecompositionBase::leaveSiUnchanged_ [protected]

Wether or not we should remove cuts at the end of the procedure.

Definition at line 368 of file BonOaDecBase.hpp.

Referenced by Bonmin::EcpCuts::doEcpRounds(), generateCuts(), and setLeaveSiUnchanged().

bool Bonmin::OaDecompositionBase::reassignLpsolver_ [protected]

Do we need to reassign the lp solver with Cbc.

Definition at line 370 of file BonOaDecBase.hpp.

Referenced by reassignLpsolver().

double Bonmin::OaDecompositionBase::timeBegin_ [protected]

time of construction

Definition at line 372 of file BonOaDecBase.hpp.

Referenced by Bonmin::OACutGenerator2::doLocalSearch(), OaDecompositionBase(), Bonmin::OACutGenerator2::performOa(), and solveNlp().

Parameters Bonmin::OaDecompositionBase::parameters_ [protected]

Parameters.

Definition at line 375 of file BonOaDecBase.hpp.

Referenced by Bonmin::OACutGenerator2::doLocalSearch(), generateCuts(), Bonmin::OACutGenerator2::OACutGenerator2(), OaDecompositionBase(), parameter(), Bonmin::OaFeasibilityChecker::performOa(), Bonmin::OACutGenerator2::performOa(), Bonmin::OaFeasibilityChecker::setStrategy(), and Bonmin::OACutGenerator2::setStrategy().


The documentation for this class was generated from the following files:
Generated on Tue Sep 30 03:03:02 2008 by  doxygen 1.4.7