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...
|
| |
|
| 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.
| Couenne::CouenneDisjCuts::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 |
|
) |
| |
| Couenne::CouenneDisjCuts::~CouenneDisjCuts |
( |
| ) |
|
| void Couenne::CouenneDisjCuts::generateCuts |
( |
const OsiSolverInterface & |
, |
|
|
OsiCuts & |
, |
|
|
const CglTreeInfo |
= CglTreeInfo() |
|
) |
| const |
| static void Couenne::CouenneDisjCuts::registerOptions |
( |
Ipopt::SmartPtr< Bonmin::RegisteredOptions > |
roptions | ) |
|
|
static |
Add list of options to be read from file.
| int Couenne::CouenneDisjCuts::getDisjunctions |
( |
std::vector< std::pair< OsiCuts *, OsiCuts * > > & |
disjunctions, |
|
|
OsiSolverInterface & |
si, |
|
|
OsiCuts & |
cs, |
|
|
const CglTreeInfo & |
info |
|
) |
| const |
| int Couenne::CouenneDisjCuts::separateWithDisjunction |
( |
OsiCuts * |
cuts, |
|
|
OsiSolverInterface & |
si, |
|
|
OsiCuts & |
cs, |
|
|
const CglTreeInfo & |
info |
|
) |
| const |
separate couenne cuts on both sides of single disjunction
| int Couenne::CouenneDisjCuts::generateDisjCuts |
( |
std::vector< std::pair< OsiCuts *, OsiCuts * > > & |
disjs, |
|
|
OsiSolverInterface & |
si, |
|
|
OsiCuts & |
cs, |
|
|
const CglTreeInfo & |
info |
|
) |
| const |
generate one disjunctive cut from one CGLP
| int Couenne::CouenneDisjCuts::checkDisjSide |
( |
OsiSolverInterface & |
si, |
|
|
OsiCuts * |
cuts |
|
) |
| const |
check if (column!) cuts compatible with solver interface
| int Couenne::CouenneDisjCuts::getBoxUnion |
( |
OsiSolverInterface & |
si, |
|
|
OsiCuts * |
left, |
|
|
OsiCuts * |
right, |
|
|
CoinPackedVector & |
lower, |
|
|
CoinPackedVector & |
upper |
|
) |
| const |
compute smallest box containing both left and right boxes.
| OsiCuts* Couenne::CouenneDisjCuts::getSingleDisjunction |
( |
OsiSolverInterface & |
si | ) |
const |
|
protected |
create single osicolcut disjunction
| void Couenne::CouenneDisjCuts::mergeBoxes |
( |
int |
dir, |
|
|
CoinPackedVector & |
left, |
|
|
CoinPackedVector & |
right, |
|
|
CoinPackedVector |
merged |
|
) |
| const |
|
protected |
utility to merge vectors into one
| void Couenne::CouenneDisjCuts::applyColCuts |
( |
OsiSolverInterface & |
si, |
|
|
OsiCuts * |
cuts |
|
) |
| const |
|
protected |
| void Couenne::CouenneDisjCuts::applyColCuts |
( |
OsiSolverInterface & |
si, |
|
|
OsiColCut * |
cut |
|
) |
| const |
|
protected |
our own applyColCut, single cut
| void Couenne::CouenneDisjCuts::OsiSI2MatrVec |
( |
CoinPackedMatrix & |
M, |
|
|
CoinPackedVector & |
r, |
|
|
OsiSolverInterface & |
si |
|
) |
| const |
|
protected |
| 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)
| int Couenne::CouenneDisjCuts::nrootcuts_ |
|
mutableprotected |
| int Couenne::CouenneDisjCuts::ntotalcuts_ |
|
mutableprotected |
| double Couenne::CouenneDisjCuts::septime_ |
|
mutableprotected |
| double Couenne::CouenneDisjCuts::objValue_ |
|
mutableprotected |
| Bonmin::OsiTMINLPInterface* Couenne::CouenneDisjCuts::minlp_ |
|
protected |
| OsiChooseVariable* Couenne::CouenneDisjCuts::branchingMethod_ |
|
protected |
Branching scheme (if strong, we can use SB candidates)
Definition at line 58 of file CouenneDisjCuts.hpp.
| bool Couenne::CouenneDisjCuts::isBranchingStrong_ |
|
protected |
Is branchMethod_ referred to a strong branching scheme?
Definition at line 61 of file CouenneDisjCuts.hpp.
| JnlstPtr Couenne::CouenneDisjCuts::jnlst_ |
|
protected |
| int Couenne::CouenneDisjCuts::numDisjunctions_ |
|
mutableprotected |
| 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.
| int Couenne::CouenneDisjCuts::initDisjNumber_ |
|
protected |
| int Couenne::CouenneDisjCuts::depthLevelling_ |
|
protected |
Depth of the BB tree where start decreasing number of objects.
Definition at line 76 of file CouenneDisjCuts.hpp.
| int Couenne::CouenneDisjCuts::depthStopSeparate_ |
|
protected |
| bool Couenne::CouenneDisjCuts::activeRows_ |
|
protected |
| bool Couenne::CouenneDisjCuts::activeCols_ |
|
protected |
| bool Couenne::CouenneDisjCuts::addPreviousCut_ |
|
protected |
| double Couenne::CouenneDisjCuts::cpuTime_ |
|
protected |
The documentation for this class was generated from the following file: