C++ wrapper for Benders' decomposition plugins.
This class defines the interface for the Benders' decomposition framework implemented in C++. Note that there are pure virtual functions (these have to be implemented). These functions are: benders_exec(), benders_createsub(), benders_getvar().
Definition at line 56 of file objbenders.h.
C++ wrapper for Benders' decomposition plugins. More...
#include <objbenders.h>
Public Member Functions | |
ObjBenders (SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool cutlp, SCIP_Bool cutpseudo, SCIP_Bool cutrelax, SCIP_Bool shareauxvars) | |
ObjBenders (const ObjBenders &o) | |
ObjBenders (ObjBenders &&o) | |
virtual | ~ObjBenders () |
ObjBenders & | operator= (const ObjBenders &o)=delete |
ObjBenders & | operator= (ObjBenders &&o)=delete |
virtual | SCIP_DECL_BENDERSCOPY (scip_copy) |
virtual | SCIP_DECL_BENDERSFREE (scip_free) |
virtual | SCIP_DECL_BENDERSINIT (scip_init) |
virtual | SCIP_DECL_BENDERSEXIT (scip_exit) |
virtual | SCIP_DECL_BENDERSINITPRE (scip_initpre) |
virtual | SCIP_DECL_BENDERSEXITPRE (scip_exitpre) |
virtual | SCIP_DECL_BENDERSINITSOL (scip_initsol) |
virtual | SCIP_DECL_BENDERSEXITSOL (scip_exitsol) |
virtual | SCIP_DECL_BENDERSCREATESUB (scip_createsub)=0 |
virtual | SCIP_DECL_BENDERSPRESUBSOLVE (scip_presubsolve) |
virtual | SCIP_DECL_BENDERSSOLVESUBCONVEX (scip_solvesubconvex) |
virtual | SCIP_DECL_BENDERSSOLVESUB (scip_solvesub) |
virtual | SCIP_DECL_BENDERSPOSTSOLVE (scip_postsolve) |
virtual | SCIP_DECL_BENDERSFREESUB (scip_freesub) |
virtual | SCIP_DECL_BENDERSGETVAR (scip_getvar)=0 |
Public Member Functions inherited from scip::ObjCloneable | |
virtual | ~ObjCloneable () |
ObjCloneable & | operator= (const ObjCloneable &o)=delete |
ObjCloneable & | operator= (ObjCloneable &&o)=delete |
virtual | SCIP_DECL_OBJCLONEABLECLONE (ObjCloneable *clone) |
virtual | SCIP_DECL_OBJCLONEABLEISCLONEABLE (iscloneable) |
Data Fields | |
SCIP * | scip_ |
char * | scip_name_ |
char * | scip_desc_ |
const int | scip_priority_ |
const SCIP_Bool | scip_cutlp_ |
const SCIP_Bool | scip_cutpseudo_ |
const SCIP_Bool | scip_cutrelax_ |
const SCIP_Bool | scip_shareauxvars_ |
|
inline |
default constructor
scip | SCIP data structure |
name | name of Benders' decomposition |
desc | description of Benders' decomposition |
priority | priority of the Benders' decomposition |
cutlp | should Benders' cuts be generated for LP solutions |
cutpseudo | should Benders' cuts be generated for pseudo solutions |
cutrelax | should Benders' cuts be generated for relaxation solutions |
shareauxvars | should this Benders' use the highest priority Benders' aux vars |
Definition at line 86 of file objbenders.h.
References scip_, SCIP_Bool, SCIP_CALL_ABORT, scip_cutlp_, scip_cutpseudo_, scip_cutrelax_, scip_desc_, scip_name_, scip_priority_, scip_shareauxvars_, and SCIPduplicateMemoryArray.
Referenced by ObjBenders(), ObjBenders(), operator=(), and operator=().
|
inline |
copy constructor
Definition at line 111 of file objbenders.h.
References ObjBenders(), scip_, scip_cutlp_, scip_cutpseudo_, scip_cutrelax_, scip_desc_, scip_name_, scip_priority_, and scip_shareauxvars_.
|
inline |
move constructor
Definition at line 118 of file objbenders.h.
References ObjBenders(), scip_, scip_cutlp_, scip_cutpseudo_, scip_cutrelax_, scip_desc_, scip_name_, scip_priority_, and scip_shareauxvars_.
|
inlinevirtual |
destructor
Definition at line 133 of file objbenders.h.
References scip_, scip_desc_, scip_name_, and SCIPfreeMemoryArray.
|
delete |
assignment of polymorphic classes causes slicing and is therefore disabled.
References ObjBenders().
|
delete |
assignment of polymorphic classes causes slicing and is therefore disabled.
References ObjBenders().
|
inlinevirtual |
copy method for benders plugins (called when SCIP copies plugins)
Definition at line 151 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
destructor of variable benders to free user data (called when SCIP is exiting)
Definition at line 160 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
initialization method of variable benders (called after problem was transformed and benders is active)
Definition at line 169 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
deinitialization method of variable benders (called before transformed problem is freed and benders is active)
Definition at line 178 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
presolving initialization method of constraint handler (called when presolving is about to begin)
Definition at line 187 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 196 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
solving process initialization method of variable benders (called when branch and bound process is about to begin)
Definition at line 205 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
solving process deinitialization method of variable benders (called before branch and bound process data is freed)
Definition at line 214 of file objbenders.h.
References SCIP_OKAY.
|
pure virtual |
the method for creating the Benders' decomposition subproblem. This method is called during the initialisation stage (after the master problem was transformed)
|
inlinevirtual |
called before the subproblem solving loop for Benders' decomposition. The pre subproblem solve function gives the user an oppportunity to perform any global set up for the Benders' decomposition.
Definition at line 231 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
the solving method for a single convex Benders' decomposition subproblem. The solving methods are separated so that they can be called in parallel.
Definition at line 241 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
the solving method for a single Benders' decomposition subproblem. The solving methods are separated so that they can be called in parallel.
Definition at line 251 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
the post-solve method for Benders' decomposition. The post-solve method is called after the subproblems have been solved but before they are freed.
Definition at line 260 of file objbenders.h.
References SCIP_OKAY.
|
inlinevirtual |
frees the subproblem so that it can be resolved in the next iteration. In the SCIP case, this involves freeing the transformed problem using SCIPfreeTransform()
Definition at line 270 of file objbenders.h.
References SCIP_OKAY.
|
pure virtual |
the variable mapping from the subproblem to the master problem.
SCIP* scip::ObjBenders::scip_ |
SCIP data structure
Definition at line 62 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), SCIPfindObjBenderscut(), SCIPincludeObjBenders(), and ~ObjBenders().
char* scip::ObjBenders::scip_name_ |
name of the Benders' decomposition
Definition at line 65 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), SCIPfindObjBenderscut(), SCIPincludeObjBenders(), SCIPincludeObjBenderscut(), and ~ObjBenders().
char* scip::ObjBenders::scip_desc_ |
description of the Benders' decomposition
Definition at line 68 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), SCIPincludeObjBenders(), and ~ObjBenders().
const int scip::ObjBenders::scip_priority_ |
the priority of the Benders' decomposition
Definition at line 71 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), and SCIPincludeObjBenders().
const SCIP_Bool scip::ObjBenders::scip_cutlp_ |
should cuts be generated from the LP solution
Definition at line 74 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), and SCIPincludeObjBenders().
const SCIP_Bool scip::ObjBenders::scip_cutpseudo_ |
should cuts be generated from the pseudo solution
Definition at line 77 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), and SCIPincludeObjBenders().
const SCIP_Bool scip::ObjBenders::scip_cutrelax_ |
should cuts be generated from the relaxation solution
Definition at line 80 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), and SCIPincludeObjBenders().
const SCIP_Bool scip::ObjBenders::scip_shareauxvars_ |
should this Benders' decomposition share the auxiliary variables from the highest priority Benders?
Definition at line 83 of file objbenders.h.
Referenced by ObjBenders(), ObjBenders(), ObjBenders(), and SCIPincludeObjBenders().