#include <BonOaDecBase.hpp>
Inheritance diagram for Bonmin::OaDecompositionBase:
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 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. | |
Parameters & | parameter () |
const Parameters & | parameter () 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 | |
OsiTMINLPInterface * | nlp_ |
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... |
Definition at line 31 of file BonOaDecBase.hpp.
Bonmin::OaDecompositionBase::OaDecompositionBase | ( | OsiTMINLPInterface * | nlp = NULL , |
|
OsiSolverInterface * | si = NULL , |
|||
CbcStrategy * | strategy = NULL , |
|||
double | cbcCutoffIncrement_ = 1e-07 , |
|||
double | cbcIntegerTolerance = 1e-05 , |
|||
bool | leaveSiUnchanged = 0 | |||
) |
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 | ) |
Bonmin::OaDecompositionBase::~OaDecompositionBase | ( | ) | [virtual] |
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] |
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] |
void Bonmin::OaDecompositionBase::setObjects | ( | OsiObject ** | objects, | |
int | nObjects | |||
) | [inline] |
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] |
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.
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().
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] |
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().