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