objbenders.h
Go to the documentation of this file.
30 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
49 * This class defines the interface for the Benders' decomposition framework implemented in C++. Note that there
50 * are pure virtual functions (these have to be implemented). These functions are: benders_exec(), benders_createsub(),
83 /** should this Benders' decomposition share the auxiliary variables from the highest priority Benders? */
113 : ObjBenders(o.scip_, o.scip_name_, o.scip_desc_, o.scip_priority_, o.scip_cutlp_, o.scip_cutpseudo_,
166 /** initialization method of variable benders (called after problem was transformed and benders is active)
175 /** deinitialization method of variable benders (called before transformed problem is freed and benders is active)
184 /** presolving initialization method of constraint handler (called when presolving is about to begin)
193 /** presolving deinitialization method of constraint handler (called after presolving has been finished)
202 /** solving process initialization method of variable benders (called when branch and bound process is about to begin)
211 /** solving process deinitialization method of variable benders (called before branch and bound process data is freed)
220 /** the method for creating the Benders' decomposition subproblem. This method is called during the initialisation stage
227 /** called before the subproblem solving loop for Benders' decomposition. The pre subproblem solve function gives the
237 /** the solving method for a single convex Benders' decomposition subproblem. The solving methods are separated so
247 /** the solving method for a single Benders' decomposition subproblem. The solving methods are separated so that they
257 /** the post-solve method for Benders' decomposition. The post-solve method is called after the subproblems have
266 /** frees the subproblem so that it can be resolved in the next iteration. In the SCIP case, this involves freeing the
288 /** creates the Benders' decomposition for the given Benders' decomposition object and includes it in SCIP
312 SCIP_Bool deleteobject /**< should the Benders' decomposition object be deleted when benders is freed? */
virtual SCIP_DECL_BENDERSCOPY(scip_copy)
Definition: objbenders.h:152
virtual SCIP_DECL_BENDERSCREATESUB(scip_createsub)=0
virtual SCIP_DECL_BENDERSINIT(scip_init)
Definition: objbenders.h:170
virtual SCIP_DECL_BENDERSPRESUBSOLVE(scip_presubsolve)
Definition: objbenders.h:232
#define SCIPduplicateMemoryArray(scip, ptr, source, num)
Definition: scip_mem.h:76
Definition: struct_scip.h:68
virtual SCIP_DECL_BENDERSSOLVESUB(scip_solvesub)
Definition: objbenders.h:252
virtual SCIP_DECL_BENDERSFREESUB(scip_freesub)
Definition: objbenders.h:271
scip::ObjBenders * SCIPfindObjBenders(SCIP *scip, const char *name)
Definition: objbenders.cpp:373
virtual SCIP_DECL_BENDERSINITPRE(scip_initpre)
Definition: objbenders.h:188
virtual SCIP_DECL_BENDERSEXIT(scip_exit)
Definition: objbenders.h:179
ObjBenders & operator=(const ObjBenders &o)=delete
definition of base class for all clonable classes
Definition: struct_benders.h:57
SCIP_RETCODE SCIPincludeObjBenders(SCIP *scip, scip::ObjBenders *objbenders, SCIP_Bool deleteobject)
Definition: objbenders.cpp:344
virtual SCIP_DECL_BENDERSEXITSOL(scip_exitsol)
Definition: objbenders.h:215
Definition: type_retcode.h:42
virtual SCIP_DECL_BENDERSGETVAR(scip_getvar)=0
virtual SCIP_DECL_BENDERSPOSTSOLVE(scip_postsolve)
Definition: objbenders.h:261
ObjBenders(SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool cutlp, SCIP_Bool cutpseudo, SCIP_Bool cutrelax, SCIP_Bool shareauxvars)
Definition: objbenders.h:87
virtual SCIP_DECL_BENDERSEXITPRE(scip_exitpre)
Definition: objbenders.h:197
virtual SCIP_DECL_BENDERSSOLVESUBCONVEX(scip_solvesubconvex)
Definition: objbenders.h:242
scip::ObjBenders * SCIPgetObjBenders(SCIP *scip, SCIP_BENDERS *benders)
Definition: objbenders.cpp:392
virtual SCIP_DECL_BENDERSINITSOL(scip_initsol)
Definition: objbenders.h:206
Definition: objbenders.h:43
virtual SCIP_DECL_BENDERSFREE(scip_free)
Definition: objbenders.h:161
SCIP callable library.