Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    public methods for Benders decomposition

    Author
    Tobias Achterberg
    Timo Berthold
    Gerald Gamrath
    Leona Gottwald
    Stefan Heinz
    Gregor Hendel
    Thorsten Koch
    Alexander Martin
    Marc Pfetsch
    Michael Winkler
    Kati Wolter

    Definition in file scip_benders.c.

    #include "scip/benderscut.h"
    #include "scip/benders.h"
    #include "scip/cons_linear.h"
    #include "scip/debug.h"
    #include "scip/dcmp.h"
    #include "scip/pub_benders.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/scip.h"
    #include "scip/scip_message.h"
    #include "scip/set.h"
    #include "scip/struct_mem.h"
    #include "scip/struct_scip.h"
    #include "scip/struct_set.h"

    Go to the source code of this file.

    Functions

    SCIP_RETCODE SCIPincludeBenders (SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool cutlp, SCIP_Bool cutpseudo, SCIP_Bool cutrelax, SCIP_Bool shareauxvars, 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_BENDERSCREATESUB((*benderscreatesub)), SCIP_DECL_BENDERSPRESUBSOLVE((*benderspresubsolve)), SCIP_DECL_BENDERSSOLVESUBCONVEX((*benderssolvesubconvex)), SCIP_DECL_BENDERSSOLVESUB((*benderssolvesub)), SCIP_DECL_BENDERSPOSTSOLVE((*benderspostsolve)), SCIP_DECL_BENDERSFREESUB((*bendersfreesub)), SCIP_BENDERSDATA *bendersdata)
     
    SCIP_RETCODE SCIPincludeBendersBasic (SCIP *scip, SCIP_BENDERS **bendersptr, const char *name, const char *desc, int priority, SCIP_Bool cutlp, SCIP_Bool cutpseudo, SCIP_Bool cutrelax, SCIP_Bool shareauxvars, SCIP_DECL_BENDERSGETVAR((*bendersgetvar)), SCIP_DECL_BENDERSCREATESUB((*benderscreatesub)), SCIP_BENDERSDATA *bendersdata)
     
    SCIP_RETCODE SCIPsetBendersCopy (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSCOPY((*benderscopy)))
     
    SCIP_RETCODE SCIPsetBendersFree (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSFREE((*bendersfree)))
     
    SCIP_RETCODE SCIPsetBendersInit (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSINIT((*bendersinit)))
     
    SCIP_RETCODE SCIPsetBendersExit (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSEXIT((*bendersexit)))
     
    SCIP_RETCODE SCIPsetBendersInitpre (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSINITPRE((*bendersinitpre)))
     
    SCIP_RETCODE SCIPsetBendersExitpre (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSEXITPRE((*bendersexitpre)))
     
    SCIP_RETCODE SCIPsetBendersInitsol (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSINITSOL((*bendersinitsol)))
     
    SCIP_RETCODE SCIPsetBendersExitsol (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSEXITSOL((*bendersexitsol)))
     
    SCIP_RETCODE SCIPsetBendersPresubsolve (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSPRESUBSOLVE((*benderspresubsolve)))
     
    SCIP_RETCODE SCIPsetBendersSolveAndFreesub (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSSOLVESUBCONVEX((*benderssolvesubconvex)), SCIP_DECL_BENDERSSOLVESUB((*benderssolvesub)), SCIP_DECL_BENDERSFREESUB((*bendersfreesub)))
     
    SCIP_RETCODE SCIPsetBendersPostsolve (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_BENDERSPOSTSOLVE((*benderspostsolve)))
     
    SCIP_RETCODE SCIPsetBendersSubproblemComp (SCIP *scip, SCIP_BENDERS *benders, SCIP_DECL_SORTPTRCOMP((*benderssubcomp)))
     
    SCIP_BENDERSSCIPfindBenders (SCIP *scip, const char *name)
     
    SCIP_BENDERS ** SCIPgetBenders (SCIP *scip)
     
    int SCIPgetNBenders (SCIP *scip)
     
    int SCIPgetNActiveBenders (SCIP *scip)
     
    SCIP_RETCODE SCIPactivateBenders (SCIP *scip, SCIP_BENDERS *benders, int nsubproblems)
     
    SCIP_RETCODE SCIPdeactivateBenders (SCIP *scip, SCIP_BENDERS *benders)
     
    void SCIPsetBendersPriority (SCIP *scip, SCIP_BENDERS *benders, int priority)
     
    SCIP_RETCODE SCIPsetBendersObjectiveType (SCIP *scip, SCIP_BENDERS *benders, SCIP_BENDERSOBJTYPE objectivetype)
     
    SCIP_RETCODE SCIPsolveBendersSubproblems (SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, SCIP_RESULT *result, SCIP_Bool *infeasible, SCIP_Bool *auxviol, SCIP_BENDERSENFOTYPE type, SCIP_Bool checkint)
     
    SCIP_RETCODE SCIPgetBendersMasterVar (SCIP *scip, SCIP_BENDERS *benders, SCIP_VAR *var, SCIP_VAR **mappedvar)
     
    SCIP_RETCODE SCIPgetBendersSubproblemVar (SCIP *scip, SCIP_BENDERS *benders, SCIP_VAR *var, SCIP_VAR **mappedvar, int probnumber)
     
    int SCIPgetBendersNSubproblems (SCIP *scip, SCIP_BENDERS *benders)
     
    SCIP_RETCODE SCIPaddBendersSubproblem (SCIP *scip, SCIP_BENDERS *benders, SCIP *subproblem)
     
    SCIP_RETCODE SCIPsetupBendersSubproblem (SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_BENDERSENFOTYPE type)
     
    SCIP_RETCODE SCIPsolveBendersSubproblem (SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_Bool *infeasible, SCIP_Bool solvecip, SCIP_Real *objective)
     
    SCIP_RETCODE SCIPfreeBendersSubproblem (SCIP *scip, SCIP_BENDERS *benders, int probnumber)
     
    SCIP_RETCODE SCIPcheckBendersSubproblemOptimality (SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_Bool *optimal)
     
    SCIP_Real SCIPgetBendersAuxiliaryVarVal (SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber)
     
    SCIP_RETCODE SCIPcomputeBendersSubproblemLowerbound (SCIP *scip, SCIP_BENDERS *benders, int probnumber, SCIP_Real *lowerbound, SCIP_Bool *infeasible)
     
    SCIP_RETCODE SCIPmergeBendersSubproblemIntoMaster (SCIP *scip, SCIP_BENDERS *benders, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, int probnumber)
     
    SCIP_RETCODE SCIPincludeBenderscut (SCIP *scip, SCIP_BENDERS *benders, const char *name, const char *desc, int priority, SCIP_Bool islpcut, SCIP_DECL_BENDERSCUTCOPY((*benderscutcopy)), SCIP_DECL_BENDERSCUTFREE((*benderscutfree)), SCIP_DECL_BENDERSCUTINIT((*benderscutinit)), SCIP_DECL_BENDERSCUTEXIT((*benderscutexit)), SCIP_DECL_BENDERSCUTINITSOL((*benderscutinitsol)), SCIP_DECL_BENDERSCUTEXITSOL((*benderscutexitsol)), SCIP_DECL_BENDERSCUTEXEC((*benderscutexec)), SCIP_BENDERSCUTDATA *benderscutdata)
     
    SCIP_RETCODE SCIPincludeBenderscutBasic (SCIP *scip, SCIP_BENDERS *benders, SCIP_BENDERSCUT **benderscutptr, const char *name, const char *desc, int priority, SCIP_Bool islpcut, SCIP_DECL_BENDERSCUTEXEC((*benderscutexec)), SCIP_BENDERSCUTDATA *benderscutdata)
     
    SCIP_RETCODE SCIPsetBenderscutCopy (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTCOPY((*benderscutcopy)))
     
    SCIP_RETCODE SCIPsetBenderscutFree (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTFREE((*benderscutfree)))
     
    SCIP_RETCODE SCIPsetBenderscutInit (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTINIT((*benderscutinit)))
     
    SCIP_RETCODE SCIPsetBenderscutExit (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTEXIT((*benderscutexit)))
     
    SCIP_RETCODE SCIPsetBenderscutInitsol (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTINITSOL((*benderscutinitsol)))
     
    SCIP_RETCODE SCIPsetBenderscutExitsol (SCIP *scip, SCIP_BENDERSCUT *benderscut, SCIP_DECL_BENDERSCUTEXITSOL((*benderscutexitsol)))
     
    SCIP_RETCODE SCIPsetBenderscutPriority (SCIP *scip, SCIP_BENDERSCUT *benderscut, int priority)
     
    SCIP_RETCODE SCIPstoreBendersCut (SCIP *scip, SCIP_BENDERS *benders, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, int nvars)
     
    static SCIP_RETCODE createAndApplyStoredBendersCut (SCIP *scip, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, int nvars, int consindex)
     
    SCIP_RETCODE SCIPapplyBendersStoredCuts (SCIP *scip, SCIP_BENDERS *benders)
     

    Function Documentation

    ◆ createAndApplyStoredBendersCut()

    static SCIP_RETCODE createAndApplyStoredBendersCut ( SCIP scip,
    SCIP_VAR **  vars,
    SCIP_Real vals,
    SCIP_Real  lhs,
    SCIP_Real  rhs,
    int  nvars,
    int  consindex 
    )
    static

    creates a constraint in the input SCIP instance that corresponds to the given vars and vals arrays

    Parameters
    scipthe SCIP data structure
    varsthe variables from the source constraint
    valsthe coefficients of the variables in the source constriant
    lhsthe LHS of the source constraint
    rhsthe RHS of the source constraint
    nvarsthe number of variables in the source constraint
    consindexthe store index for the constraint

    Definition at line 1367 of file scip_benders.c.

    References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPcreateConsBasicLinear(), SCIPreleaseCons(), SCIPsetConsRemovable(), SCIPsnprintf(), and TRUE.

    Referenced by SCIPapplyBendersStoredCuts().