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: