Detailed Description
Benders' decomposition data
Definition at line 38 of file struct_benders.h.
#include <struct_benders.h>
Public Member Functions | |
SCIP_DECL_BENDERSCOPY ((*benderscopy)) | |
SCIP_DECL_BENDERSFREE ((*bendersfree)) | |
SCIP_DECL_BENDERSINIT ((*bendersinit)) | |
SCIP_DECL_BENDERSEXIT ((*bendersexit)) | |
SCIP_DECL_BENDERSINITPRE ((*bendersinitpre)) | |
SCIP_DECL_BENDERSEXITPRE ((*bendersexitpre)) | |
SCIP_DECL_BENDERSINITSOL ((*bendersinitsol)) | |
SCIP_DECL_BENDERSEXITSOL ((*bendersexitsol)) | |
SCIP_DECL_BENDERSGETVAR ((*bendersgetvar)) | |
SCIP_DECL_BENDERSPRESUBSOLVE ((*benderspresubsolve)) | |
SCIP_DECL_BENDERSCREATESUB ((*benderscreatesub)) | |
SCIP_DECL_BENDERSSOLVESUBCONVEX ((*benderssolvesubconvex)) | |
SCIP_DECL_BENDERSSOLVESUB ((*benderssolvesub)) | |
SCIP_DECL_BENDERSPOSTSOLVE ((*benderspostsolve)) | |
SCIP_DECL_BENDERSFREESUB ((*bendersfreesub)) | |
Member Function Documentation
◆ SCIP_DECL_BENDERSCOPY()
SCIP_Benders::SCIP_DECL_BENDERSCOPY | ( | * | benderscopy | ) |
copy method of Benders' decomposition or NULL if you don't want to copy your plugin into sub-SCIPs
◆ SCIP_DECL_BENDERSFREE()
SCIP_Benders::SCIP_DECL_BENDERSFREE | ( | * | bendersfree | ) |
destructor of Benders' decomposition
◆ SCIP_DECL_BENDERSINIT()
SCIP_Benders::SCIP_DECL_BENDERSINIT | ( | * | bendersinit | ) |
initialize Benders' decomposition
◆ SCIP_DECL_BENDERSEXIT()
SCIP_Benders::SCIP_DECL_BENDERSEXIT | ( | * | bendersexit | ) |
deinitialize Benders' decomposition
◆ SCIP_DECL_BENDERSINITPRE()
SCIP_Benders::SCIP_DECL_BENDERSINITPRE | ( | * | bendersinitpre | ) |
presolving initialization method for Benders' decomposition
◆ SCIP_DECL_BENDERSEXITPRE()
SCIP_Benders::SCIP_DECL_BENDERSEXITPRE | ( | * | bendersexitpre | ) |
presolving deinitialization method for Benders' decomposition
◆ SCIP_DECL_BENDERSINITSOL()
SCIP_Benders::SCIP_DECL_BENDERSINITSOL | ( | * | bendersinitsol | ) |
solving process initialization method of Benders' decomposition
◆ SCIP_DECL_BENDERSEXITSOL()
SCIP_Benders::SCIP_DECL_BENDERSEXITSOL | ( | * | bendersexitsol | ) |
solving process deinitialization method of Benders' decomposition
◆ SCIP_DECL_BENDERSGETVAR()
SCIP_Benders::SCIP_DECL_BENDERSGETVAR | ( | * | bendersgetvar | ) |
returns the corresponding variable from the master or subproblem
◆ SCIP_DECL_BENDERSPRESUBSOLVE()
SCIP_Benders::SCIP_DECL_BENDERSPRESUBSOLVE | ( | * | benderspresubsolve | ) |
called prior to the subproblem solving loop
◆ SCIP_DECL_BENDERSCREATESUB()
SCIP_Benders::SCIP_DECL_BENDERSCREATESUB | ( | * | benderscreatesub | ) |
creates the Benders' decomposition subproblems
◆ SCIP_DECL_BENDERSSOLVESUBCONVEX()
SCIP_Benders::SCIP_DECL_BENDERSSOLVESUBCONVEX | ( | * | benderssolvesubconvex | ) |
the solving method for convex Benders' decomposition subproblems
◆ SCIP_DECL_BENDERSSOLVESUB()
SCIP_Benders::SCIP_DECL_BENDERSSOLVESUB | ( | * | benderssolvesub | ) |
the solving method for the Benders' decomposition subproblems
◆ SCIP_DECL_BENDERSPOSTSOLVE()
SCIP_Benders::SCIP_DECL_BENDERSPOSTSOLVE | ( | * | benderspostsolve | ) |
called after the subproblems are solved.
◆ SCIP_DECL_BENDERSFREESUB()
SCIP_Benders::SCIP_DECL_BENDERSFREESUB | ( | * | bendersfreesub | ) |
the freeing method for the Benders' decomposition subproblems
Field Documentation
◆ name
char* SCIP_Benders::name |
name of Benders' decomposition
Definition at line 40 of file struct_benders.h.
Referenced by executeUserDefinedSolvesub(), SCIPbendersExec(), SCIPbendersExit(), SCIPbendersGetName(), SCIPbendersInit(), and SCIPbendersSetSubproblemIsIndependent().
◆ desc
char* SCIP_Benders::desc |
description of Benders' decomposition
Definition at line 41 of file struct_benders.h.
Referenced by SCIPbendersGetDesc().
◆ bendersdata
SCIP_BENDERSDATA* SCIP_Benders::bendersdata |
Benders' decomposition local data
Definition at line 57 of file struct_benders.h.
Referenced by SCIPbendersGetData(), and SCIPbendersSetData().
◆ setuptime
SCIP_CLOCK* SCIP_Benders::setuptime |
time spend for setting up this Benders' decomposition for the next stages
Definition at line 58 of file struct_benders.h.
Referenced by SCIPbendersEnableOrDisableClocks(), SCIPbendersExit(), SCIPbendersExitpre(), SCIPbendersExitsol(), SCIPbendersGetSetupTime(), SCIPbendersInit(), SCIPbendersInitpre(), and SCIPbendersInitsol().
◆ bendersclock
SCIP_CLOCK* SCIP_Benders::bendersclock |
Benders' decomposition execution time
Definition at line 59 of file struct_benders.h.
Referenced by SCIPbendersEnableOrDisableClocks(), SCIPbendersExec(), SCIPbendersGetTime(), and SCIPbendersInit().
◆ priority
int SCIP_Benders::priority |
priority of the Benders' decomposition
Definition at line 60 of file struct_benders.h.
Referenced by SCIPbendersGetPriority(), and SCIPbendersSetPriority().
◆ ncalls
int SCIP_Benders::ncalls |
number of times, this Benders' decomposition was called
Definition at line 61 of file struct_benders.h.
Referenced by numSubproblemsToCheck(), SCIPbendersExec(), SCIPbendersGetNCalls(), and SCIPbendersInit().
◆ ncutsfound
int SCIP_Benders::ncutsfound |
number of cuts found by the Benders' decomposition
Definition at line 62 of file struct_benders.h.
Referenced by generateBendersCuts(), SCIPbendersGetNCutsFound(), and SCIPbendersInit().
◆ ntransferred
int SCIP_Benders::ntransferred |
number of cuts transferred from sub SCIP to the master SCIP
Definition at line 63 of file struct_benders.h.
Referenced by createAndAddTransferredCut(), SCIPbendersGetNTransferredCuts(), and SCIPbendersInit().
◆ active
SCIP_Bool SCIP_Benders::active |
is the Benders' decomposition active?
Definition at line 64 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), and SCIPbendersIsActive().
◆ initialized
SCIP_Bool SCIP_Benders::initialized |
is Benders' decomposition initialized?
Definition at line 65 of file struct_benders.h.
Referenced by SCIPbendersExit(), SCIPbendersInit(), and SCIPbendersIsInitialized().
◆ cutlp
SCIP_Bool SCIP_Benders::cutlp |
should Benders' cuts be generated for LP solutions?
Definition at line 66 of file struct_benders.h.
Referenced by SCIPbendersCutLP().
◆ cutpseudo
SCIP_Bool SCIP_Benders::cutpseudo |
should Benders' cuts be generated for pseudo solutions?
Definition at line 67 of file struct_benders.h.
Referenced by SCIPbendersCutPseudo().
◆ cutrelax
SCIP_Bool SCIP_Benders::cutrelax |
should Benders' cuts be generated for relaxation solutions?
Definition at line 68 of file struct_benders.h.
Referenced by SCIPbendersCutRelaxation().
◆ shareauxvars
SCIP_Bool SCIP_Benders::shareauxvars |
should this Benders' share the highest priority Benders' auxiliary vars
Definition at line 69 of file struct_benders.h.
Referenced by SCIPbendersShareAuxVars().
◆ transfercuts
SCIP_Bool SCIP_Benders::transfercuts |
should Benders' cuts generated in LNS heuristics be transferred to the main SCIP instance?
Definition at line 72 of file struct_benders.h.
Referenced by transferBendersCuts().
◆ lnscheck
SCIP_Bool SCIP_Benders::lnscheck |
should Benders' decomposition be used in LNS heuristics?
Definition at line 73 of file struct_benders.h.
Referenced by SCIPbendersExec(), and SCIPbendersOnlyCheckConvexRelax().
◆ lnsmaxdepth
int SCIP_Benders::lnsmaxdepth |
maximum depth at which the LNS check is performed
Definition at line 74 of file struct_benders.h.
Referenced by SCIPbendersExec().
◆ cutsasconss
SCIP_Bool SCIP_Benders::cutsasconss |
should the transferred cuts be added as constraints?
Definition at line 75 of file struct_benders.h.
Referenced by createAndAddTransferredCut().
◆ subprobfrac
SCIP_Real SCIP_Benders::subprobfrac |
fraction of subproblems that are solved in each iteration
Definition at line 76 of file struct_benders.h.
Referenced by numSubproblemsToCheck().
◆ updateauxvarbound
SCIP_Bool SCIP_Benders::updateauxvarbound |
should the auxiliary variable lower bound be updated by solving the subproblem?
Definition at line 77 of file struct_benders.h.
Referenced by SCIPbendersExec().
◆ sourcescip
SCIP* SCIP_Benders::sourcescip |
the source scip from when the Benders' was copied
Definition at line 80 of file struct_benders.h.
Referenced by SCIPbendersExec(), and SCIPbendersExit().
◆ iscopy
SCIP_Bool SCIP_Benders::iscopy |
is the Benders' decomposition struct a copy
Definition at line 81 of file struct_benders.h.
Referenced by createMasterVarMapping(), createSubproblems(), SCIPbendersExec(), SCIPbendersExit(), SCIPbendersInitpre(), and SCIPbendersOnlyCheckConvexRelax().
◆ mastervarsmap
SCIP_HASHMAP* SCIP_Benders::mastervarsmap |
hash map for the master variables from the subscip to the master
Definition at line 82 of file struct_benders.h.
Referenced by createAndAddTransferredCut(), createMasterVarMapping(), and releaseVarMappingHashmapVars().
◆ subproblems
SCIP** SCIP_Benders::subproblems |
the Benders' decomposition subproblems
Definition at line 85 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersAddSubproblem(), SCIPbendersDeactivate(), SCIPbendersRemoveSubproblems(), and SCIPbendersSubproblem().
◆ auxiliaryvars
SCIP_VAR** SCIP_Benders::auxiliaryvars |
the auxiliary variables for the Benders' optimality cuts
Definition at line 86 of file struct_benders.h.
Referenced by addAuxiliaryVariablesToMaster(), assignAuxiliaryVariables(), SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersExit(), SCIPbendersGetAuxiliaryVar(), and SCIPbendersGetAuxiliaryVars().
◆ subprobobjval
SCIP_Real* SCIP_Benders::subprobobjval |
the objective value of the subproblem in the current iteration
Definition at line 87 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersGetSubproblemObjval(), and SCIPbendersSetSubproblemObjval().
◆ bestsubprobobjval
SCIP_Real* SCIP_Benders::bestsubprobobjval |
the best objective value of the subproblem
Definition at line 88 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), and SCIPbendersSetSubproblemObjval().
◆ subproblowerbound
SCIP_Real* SCIP_Benders::subproblowerbound |
a lower bound on the subproblem - used for the integer cuts
Definition at line 89 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersGetSubproblemLowerbound(), and SCIPbendersUpdateSubproblemLowerbound().
◆ naddedsubprobs
int SCIP_Benders::naddedsubprobs |
subproblems added to the Benders' decomposition data
Definition at line 90 of file struct_benders.h.
Referenced by SCIPbendersAddSubproblem(), and SCIPbendersRemoveSubproblems().
◆ nsubproblems
int SCIP_Benders::nsubproblems |
number of subproblems
Definition at line 91 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersAddSubproblem(), SCIPbendersGetNSubproblems(), and SCIPbendersSetSubproblemIsConvex().
◆ subprobisconvex
SCIP_Bool* SCIP_Benders::subprobisconvex |
is the subproblem convex? This implies that the dual sol can be used for cuts
Definition at line 92 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersSetSubproblemIsConvex(), and SCIPbendersSubproblemIsConvex().
◆ nconvexsubprobs
int SCIP_Benders::nconvexsubprobs |
the number of subproblems that are convex
Definition at line 93 of file struct_benders.h.
Referenced by SCIPbendersGetNConvexSubproblems(), and SCIPbendersSetSubproblemIsConvex().
◆ subprobscreated
SCIP_Bool SCIP_Benders::subprobscreated |
have the subproblems been created for this Benders' decomposition. This flag is used when retransforming the problem.
Definition at line 94 of file struct_benders.h.
Referenced by createSubproblems().
◆ mastervarscont
SCIP_Bool* SCIP_Benders::mastervarscont |
flag to indicate that the master problem variable have been converted to continuous variables.
Definition at line 96 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersGetMastervarsCont(), and SCIPbendersSetMastervarsCont().
◆ subprobsetup
SCIP_Bool* SCIP_Benders::subprobsetup |
flag to indicate whether the subproblem has been set up.
Definition at line 98 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersSetSubproblemIsSetup(), and SCIPbendersSubproblemIsSetup().
◆ indepsubprob
SCIP_Bool* SCIP_Benders::indepsubprob |
flag to indicate if a subproblem is independent of the master prob
Definition at line 99 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersSetSubproblemIsIndependent(), and SCIPbendersSubproblemIsIndependent().
◆ subprobenabled
SCIP_Bool* SCIP_Benders::subprobenabled |
flag to indicate whether the subproblem is enabled
Definition at line 100 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersDeactivate(), SCIPbendersSetSubproblemEnabled(), and SCIPbendersSubproblemIsEnabled().
◆ nactivesubprobs
int SCIP_Benders::nactivesubprobs |
the number of active subproblems
Definition at line 101 of file struct_benders.h.
Referenced by SCIPbendersActivate(), SCIPbendersSetSubproblemEnabled(), and SCIPbendersSetSubproblemIsIndependent().
◆ firstchecked
int SCIP_Benders::firstchecked |
the subproblem index first checked in the current iteration
Definition at line 102 of file struct_benders.h.
Referenced by generateBendersCuts(), SCIPbendersExec(), and solveBendersSubproblems().
◆ lastchecked
int SCIP_Benders::lastchecked |
the subproblem index last checked in the current iteration
Definition at line 103 of file struct_benders.h.
Referenced by SCIPbendersExec(), and solveBendersSubproblems().
◆ npseudosols
int SCIP_Benders::npseudosols |
the number of pseudo solutions checked since the last generated cut
Definition at line 106 of file struct_benders.h.
Referenced by SCIPbendersExec().
◆ benderscuts
SCIP_BENDERSCUT** SCIP_Benders::benderscuts |
the available Benders' cut algorithms
Definition at line 109 of file struct_benders.h.
Referenced by SCIPbendersCopyInclude(), SCIPbendersExit(), SCIPbendersExitsol(), SCIPbendersGetBenderscuts(), SCIPbendersIncludeBenderscut(), SCIPbendersInit(), SCIPbendersInitsol(), SCIPbendersSortBenderscuts(), SCIPbendersSortBenderscutsName(), SCIPfindBenderscut(), and transferBendersCuts().
◆ nbenderscuts
int SCIP_Benders::nbenderscuts |
the number of Benders' cut algorithms
Definition at line 110 of file struct_benders.h.
Referenced by SCIPbendersCopyInclude(), SCIPbendersExit(), SCIPbendersExitsol(), SCIPbendersGetBenderscuts(), SCIPbendersGetNBenderscuts(), SCIPbendersIncludeBenderscut(), SCIPbendersInit(), SCIPbendersInitsol(), SCIPbendersSortBenderscuts(), SCIPbendersSortBenderscutsName(), SCIPfindBenderscut(), and transferBendersCuts().
◆ benderscutssize
int SCIP_Benders::benderscutssize |
the size of the Benders' cuts algorithms array
Definition at line 111 of file struct_benders.h.
Referenced by SCIPbendersIncludeBenderscut().
◆ benderscutssorted
SCIP_Bool SCIP_Benders::benderscutssorted |
are the Benders' cuts algorithms sorted by priority
Definition at line 112 of file struct_benders.h.
Referenced by SCIPbendersGetBenderscuts(), SCIPbendersIncludeBenderscut(), SCIPbendersSetBenderscutPriority(), SCIPbendersSetBenderscutsSorted(), SCIPbendersSortBenderscuts(), and SCIPbendersSortBenderscutsName().
◆ benderscutsnamessorted
SCIP_Bool SCIP_Benders::benderscutsnamessorted |
are the Benders' cuts algorithms sorted by name
Definition at line 113 of file struct_benders.h.
Referenced by SCIPbendersGetBenderscuts(), SCIPbendersSetBenderscutsSorted(), SCIPbendersSortBenderscuts(), and SCIPbendersSortBenderscutsName().