#include <BonEcpCuts.hpp>
Inheritance diagram for Bonmin::EcpCuts:
Public Member Functions | |
EcpCuts (OsiTMINLPInterface *nlp=NULL, int numRounds=1, double abs_violation_tol=1e-6, double rel_violation_tol=1000., double beta=-1.) | |
EcpCuts (BabSetupBase &b) | |
EcpCuts (const EcpCuts ©) | |
Copy constructor. | |
CglCutGenerator * | clone () const |
clone | |
virtual | ~EcpCuts () |
Destructor. | |
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const |
Standard cut generation methods. | |
double | doEcpRounds (OsiSolverInterface &si, bool leaveSiUnchanged, double *violation=NULL) |
void | setNumRounds (int value) |
void | setPropabilityFactor (double value) |
void | setAbsViolationTolerance (double value) |
void | setRelViolationTolerance (double value) |
Static Public Member Functions | |
static void | registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Register ecp cuts options. | |
Protected Member Functions | |
virtual double | performOa (OsiCuts &cs, solverManip &lpManip, SubMipSolver *&subMip, BabInfo *babInfo, double &cutoff, const CglTreeInfo &info) const |
virtual method which performs the OA algorithm by modifying lp and nlp. | |
virtual bool | doLocalSearch (BabInfo *babInfo) const |
virutal method to decide if local search is performed | |
Private Attributes | |
double | objValue_ |
Record obj value at final point of Ecp. | |
double | violation_ |
Record NLP infeasibility at final point of Ecp. | |
int | numRounds_ |
maximum number of iterations of generation. | |
double | abs_violation_tol_ |
absolute tolerance for NLP constraint violation to stop ECP rounds | |
double | rel_violation_tol_ |
relative tolerance for NLP constraint violation to stop ECP rounds | |
double | beta_ |
Factor for probability for skipping cuts. |
Definition at line 17 of file BonEcpCuts.hpp.
Bonmin::EcpCuts::EcpCuts | ( | OsiTMINLPInterface * | nlp = NULL , |
|
int | numRounds = 1 , |
|||
double | abs_violation_tol = 1e-6 , |
|||
double | rel_violation_tol = 1000. , |
|||
double | beta = -1. | |||
) | [inline] |
Bonmin::EcpCuts::EcpCuts | ( | BabSetupBase & | b | ) |
Definition at line 18 of file BonEcpCuts.cpp.
References abs_violation_tol_, Bonmin::OaDecompositionBase::assignLpInterface(), beta_, numRounds_, Bonmin::BabSetupBase::options(), Bonmin::BabSetupBase::prefix(), and rel_violation_tol_.
Bonmin::EcpCuts::EcpCuts | ( | const EcpCuts & | copy | ) | [inline] |
virtual Bonmin::EcpCuts::~EcpCuts | ( | ) | [inline, virtual] |
CglCutGenerator* Bonmin::EcpCuts::clone | ( | ) | const [inline] |
void Bonmin::EcpCuts::generateCuts | ( | const OsiSolverInterface & | si, | |
OsiCuts & | cs, | |||
const CglTreeInfo | info = CglTreeInfo() | |||
) | const [virtual] |
Standard cut generation methods.
Reimplemented from Bonmin::OaDecompositionBase.
Definition at line 46 of file BonEcpCuts.cpp.
References abs_violation_tol_, Bonmin::BabInfo::babPtr(), beta_, Bonmin::OsiTMINLPInterface::getObjValue(), Bonmin::OsiTMINLPInterface::getOuterApproximation(), infeasible, Bonmin::installCuts(), Bonmin::OaDecompositionBase::lp_, Bonmin::Bab::model(), Bonmin::OaDecompositionBase::nlp_, numRounds_, objValue_, Bonmin::OaDecompositionBase::parameter(), rel_violation_tol_, and violation_.
Referenced by doEcpRounds().
double Bonmin::EcpCuts::doEcpRounds | ( | OsiSolverInterface & | si, | |
bool | leaveSiUnchanged, | |||
double * | violation = NULL | |||
) |
Definition at line 29 of file BonEcpCuts.cpp.
References generateCuts(), Bonmin::OaDecompositionBase::leaveSiUnchanged_, Bonmin::OaDecompositionBase::lp_, objValue_, and violation_.
Referenced by Bonmin::LpBranchingSolver::solveFromHotStart().
void Bonmin::EcpCuts::setNumRounds | ( | int | value | ) | [inline] |
void Bonmin::EcpCuts::setPropabilityFactor | ( | double | value | ) | [inline] |
void Bonmin::EcpCuts::setAbsViolationTolerance | ( | double | value | ) | [inline] |
void Bonmin::EcpCuts::setRelViolationTolerance | ( | double | value | ) | [inline] |
void Bonmin::EcpCuts::registerOptions | ( | Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions | ) | [static] |
Register ecp cuts options.
Definition at line 146 of file BonEcpCuts.cpp.
References Bonmin::RegisteredOptions::BonminCategory, and e.
Referenced by Bonmin::BonminSetup::registerAllOptions().
virtual double Bonmin::EcpCuts::performOa | ( | OsiCuts & | cs, | |
solverManip & | lpManip, | |||
SubMipSolver *& | subMip, | |||
BabInfo * | babInfo, | |||
double & | cutoff, | |||
const CglTreeInfo & | info | |||
) | const [inline, protected, virtual] |
virtual method which performs the OA algorithm by modifying lp and nlp.
Definition at line 85 of file BonEcpCuts.hpp.
virtual bool Bonmin::EcpCuts::doLocalSearch | ( | BabInfo * | babInfo | ) | const [inline, protected, virtual] |
virutal method to decide if local search is performed
Implements Bonmin::OaDecompositionBase.
Definition at line 91 of file BonEcpCuts.hpp.
double Bonmin::EcpCuts::objValue_ [mutable, private] |
Record obj value at final point of Ecp.
Definition at line 97 of file BonEcpCuts.hpp.
Referenced by doEcpRounds(), and generateCuts().
double Bonmin::EcpCuts::violation_ [mutable, private] |
Record NLP infeasibility at final point of Ecp.
Definition at line 99 of file BonEcpCuts.hpp.
Referenced by doEcpRounds(), and generateCuts().
int Bonmin::EcpCuts::numRounds_ [private] |
maximum number of iterations of generation.
Definition at line 101 of file BonEcpCuts.hpp.
Referenced by EcpCuts(), generateCuts(), and setNumRounds().
double Bonmin::EcpCuts::abs_violation_tol_ [private] |
absolute tolerance for NLP constraint violation to stop ECP rounds
Definition at line 103 of file BonEcpCuts.hpp.
Referenced by EcpCuts(), generateCuts(), and setAbsViolationTolerance().
double Bonmin::EcpCuts::rel_violation_tol_ [private] |
relative tolerance for NLP constraint violation to stop ECP rounds
Definition at line 105 of file BonEcpCuts.hpp.
Referenced by EcpCuts(), generateCuts(), and setRelViolationTolerance().
double Bonmin::EcpCuts::beta_ [private] |
Factor for probability for skipping cuts.
Definition at line 107 of file BonEcpCuts.hpp.
Referenced by EcpCuts(), generateCuts(), and setPropabilityFactor().