Cut Generator for linear convexifications.
More...
#include <CouenneDisjCuts.hpp>
|
| CouenneDisjCuts (Bonmin::OsiTMINLPInterface *minlp=NULL, Bonmin::BabSetupBase *base=NULL, CouenneCutGenerator *cg=NULL, OsiChooseVariable *bcv=NULL, bool is_strong=false, JnlstPtr journalist=NULL, const Ipopt::SmartPtr< Ipopt::OptionsList > options=NULL) |
| constructor More...
|
|
| CouenneDisjCuts (const CouenneDisjCuts &) |
| copy constructor More...
|
|
| ~CouenneDisjCuts () |
| destructor More...
|
|
CouenneDisjCuts * | clone () const |
| clone method (necessary for the abstract CglCutGenerator class) More...
|
|
CouenneCutGenerator * | couenneCG () const |
| return pointer to symbolic problem More...
|
|
void | generateCuts (const OsiSolverInterface &, OsiCuts &, const CglTreeInfo=CglTreeInfo()) const |
| the main CglCutGenerator More...
|
|
ConstJnlstPtr | Jnlst () const |
| Provide Journalist. More...
|
|
int | getDisjunctions (std::vector< std::pair< OsiCuts *, OsiCuts * > > &disjunctions, OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo &info) const |
| get all disjunctions More...
|
|
int | separateWithDisjunction (OsiCuts *cuts, OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo &info) const |
| separate couenne cuts on both sides of single disjunction More...
|
|
int | generateDisjCuts (std::vector< std::pair< OsiCuts *, OsiCuts * > > &disjs, OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo &info) const |
| generate one disjunctive cut from one CGLP More...
|
|
int | checkDisjSide (OsiSolverInterface &si, OsiCuts *cuts) const |
| check if (column!) cuts compatible with solver interface More...
|
|
int | getBoxUnion (OsiSolverInterface &si, OsiCuts *left, OsiCuts *right, CoinPackedVector &lower, CoinPackedVector &upper) const |
| compute smallest box containing both left and right boxes. More...
|
|
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())=0 |
|
| CglCutGenerator () |
|
| CglCutGenerator (const CglCutGenerator &) |
|
CglCutGenerator & | operator= (const CglCutGenerator &rhs) |
|
virtual | ~CglCutGenerator () |
|
virtual std::string | generateCpp (FILE *) |
|
virtual void | refreshSolver (OsiSolverInterface *) |
|
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())=0 |
|
| CglCutGenerator () |
|
| CglCutGenerator (const CglCutGenerator &) |
|
CglCutGenerator & | operator= (const CglCutGenerator &rhs) |
|
virtual | ~CglCutGenerator () |
|
virtual std::string | generateCpp (FILE *) |
|
virtual void | refreshSolver (OsiSolverInterface *) |
|
int | getAggressiveness () const |
|
void | setAggressiveness (int value) |
|
void | setGlobalCuts (bool trueOrFalse) |
|
bool | canDoGlobalCuts () const |
|
virtual bool | mayGenerateRowCutsInTree () const |
|
virtual bool | needsOptimalBasis () const |
|
virtual int | maximumLengthOfCutInTree () const |
|
|
OsiCuts * | getSingleDisjunction (OsiSolverInterface &si) const |
| create single osicolcut disjunction More...
|
|
void | mergeBoxes (int dir, CoinPackedVector &left, CoinPackedVector &right, CoinPackedVector merged) const |
| utility to merge vectors into one More...
|
|
void | applyColCuts (OsiSolverInterface &si, OsiCuts *cuts) const |
| our own applyColCuts More...
|
|
void | applyColCuts (OsiSolverInterface &si, OsiColCut *cut) const |
| our own applyColCut, single cut More...
|
|
void | OsiSI2MatrVec (CoinPackedMatrix &M, CoinPackedVector &r, OsiSolverInterface &si) const |
|
int | OsiCuts2MatrVec (OsiSolverInterface *cglp, OsiCuts *cuts, int displRow, int displRhs) const |
| add CGLP columns to solver interface; return number of columns added (for later removal) More...
|
|
Cut Generator for linear convexifications.
Definition at line 34 of file CouenneDisjCuts.hpp.
◆ CouenneDisjCuts() [1/2]
◆ CouenneDisjCuts() [2/2]
◆ ~CouenneDisjCuts()
Couenne::CouenneDisjCuts::~CouenneDisjCuts |
( |
| ) |
|
◆ clone()
◆ couenneCG()
◆ generateCuts()
◆ registerOptions()
Add list of options to be read from file.
◆ Jnlst()
◆ getDisjunctions()
◆ separateWithDisjunction()
separate couenne cuts on both sides of single disjunction
◆ generateDisjCuts()
generate one disjunctive cut from one CGLP
◆ checkDisjSide()
check if (column!) cuts compatible with solver interface
◆ getBoxUnion()
compute smallest box containing both left and right boxes.
◆ getSingleDisjunction()
create single osicolcut disjunction
◆ mergeBoxes()
utility to merge vectors into one
◆ applyColCuts() [1/2]
◆ applyColCuts() [2/2]
our own applyColCut, single cut
◆ OsiSI2MatrVec()
◆ OsiCuts2MatrVec()
int Couenne::CouenneDisjCuts::OsiCuts2MatrVec |
( |
OsiSolverInterface * |
cglp, |
|
|
OsiCuts * |
cuts, |
|
|
int |
displRow, |
|
|
int |
displRhs |
|
) |
| const |
|
protected |
add CGLP columns to solver interface; return number of columns added (for later removal)
◆ couenneCG_
pointer to symbolic repr. of constraint, variables, and bounds
Definition at line 39 of file CouenneDisjCuts.hpp.
◆ nrootcuts_
int Couenne::CouenneDisjCuts::nrootcuts_ |
|
mutableprotected |
◆ ntotalcuts_
int Couenne::CouenneDisjCuts::ntotalcuts_ |
|
mutableprotected |
◆ septime_
double Couenne::CouenneDisjCuts::septime_ |
|
mutableprotected |
◆ objValue_
double Couenne::CouenneDisjCuts::objValue_ |
|
mutableprotected |
◆ minlp_
◆ branchingMethod_
Branching scheme (if strong, we can use SB candidates)
Definition at line 58 of file CouenneDisjCuts.hpp.
◆ isBranchingStrong_
bool Couenne::CouenneDisjCuts::isBranchingStrong_ |
|
protected |
Is branchMethod_ referred to a strong branching scheme?
Definition at line 61 of file CouenneDisjCuts.hpp.
◆ jnlst_
JnlstPtr Couenne::CouenneDisjCuts::jnlst_ |
|
protected |
◆ numDisjunctions_
int Couenne::CouenneDisjCuts::numDisjunctions_ |
|
mutableprotected |
◆ initDisjPercentage_
double Couenne::CouenneDisjCuts::initDisjPercentage_ |
|
protected |
Initial percentage of objects to use for generating cuts, in [0,1].
Definition at line 70 of file CouenneDisjCuts.hpp.
◆ initDisjNumber_
int Couenne::CouenneDisjCuts::initDisjNumber_ |
|
protected |
◆ depthLevelling_
int Couenne::CouenneDisjCuts::depthLevelling_ |
|
protected |
Depth of the BB tree where start decreasing number of objects.
Definition at line 76 of file CouenneDisjCuts.hpp.
◆ depthStopSeparate_
int Couenne::CouenneDisjCuts::depthStopSeparate_ |
|
protected |
◆ activeRows_
bool Couenne::CouenneDisjCuts::activeRows_ |
|
protected |
◆ activeCols_
bool Couenne::CouenneDisjCuts::activeCols_ |
|
protected |
◆ addPreviousCut_
bool Couenne::CouenneDisjCuts::addPreviousCut_ |
|
protected |
◆ cpuTime_
double Couenne::CouenneDisjCuts::cpuTime_ |
|
protected |
The documentation for this class was generated from the following file: