Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    vanilla full strong LP branching rule

    Author
    Tobias Achterberg
    Maxime Gasse

    Definition in file branch_vanillafullstrong.c.

    #include "blockmemshell/memory.h"
    #include "scip/branch_vanillafullstrong.h"
    #include "scip/pub_branch.h"
    #include "scip/pub_message.h"
    #include "scip/pub_tree.h"
    #include "scip/pub_var.h"
    #include "scip/scip_branch.h"
    #include "scip/scip_exact.h"
    #include "scip/scip_general.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_param.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_solvingstats.h"
    #include "scip/scip_tree.h"
    #include "scip/scip_var.h"
    #include <string.h>

    Go to the source code of this file.

    Macros

    #define BRANCHRULE_NAME   "vanillafullstrong"
     
    #define BRANCHRULE_DESC   "vanilla full strong branching"
     
    #define BRANCHRULE_PRIORITY   -2000
     
    #define BRANCHRULE_MAXDEPTH   -1
     
    #define BRANCHRULE_MAXBOUNDDIST   1.0
     
    #define DEFAULT_INTEGRALCANDS   FALSE
     
    #define DEFAULT_SCOREALL   FALSE
     
    #define DEFAULT_IDEMPOTENT   FALSE
     
    #define DEFAULT_COLLECTSCORES   FALSE
     
    #define DEFAULT_DONOTBRANCH   FALSE
     

    Functions

    static SCIP_RETCODE runVanillaStrongBranching (SCIP *scip, SCIP_VAR **cands, int ncands, int npriocands, SCIP_Bool scoreall, SCIP_Bool idempotent, SCIP_Real *scores, int *bestcand, SCIP_Real *bestdown, SCIP_Real *bestup, SCIP_Real *bestscore, SCIP_Bool *bestdownvalid, SCIP_Bool *bestupvalid, SCIP_Real *provedbound)
     
    static SCIP_DECL_BRANCHCOPY (branchCopyVanillafullstrong)
     
    static SCIP_DECL_BRANCHFREE (branchFreeVanillafullstrong)
     
    static SCIP_DECL_BRANCHINIT (branchInitVanillafullstrong)
     
    static SCIP_DECL_BRANCHEXIT (branchExitVanillafullstrong)
     
    static SCIP_DECL_BRANCHEXECLP (branchExeclpVanillafullstrong)
     
    SCIP_RETCODE SCIPincludeBranchruleVanillafullstrong (SCIP *scip)
     
    SCIP_RETCODE SCIPgetVanillafullstrongData (SCIP *scip, SCIP_VAR ***cands, SCIP_Real **candscores, int *ncands, int *npriocands, int *bestcand)
     

    Macro Definition Documentation

    ◆ BRANCHRULE_NAME

    #define BRANCHRULE_NAME   "vanillafullstrong"

    Definition at line 55 of file branch_vanillafullstrong.c.

    ◆ BRANCHRULE_DESC

    #define BRANCHRULE_DESC   "vanilla full strong branching"

    Definition at line 56 of file branch_vanillafullstrong.c.

    ◆ BRANCHRULE_PRIORITY

    #define BRANCHRULE_PRIORITY   -2000

    Definition at line 57 of file branch_vanillafullstrong.c.

    ◆ BRANCHRULE_MAXDEPTH

    #define BRANCHRULE_MAXDEPTH   -1

    Definition at line 58 of file branch_vanillafullstrong.c.

    ◆ BRANCHRULE_MAXBOUNDDIST

    #define BRANCHRULE_MAXBOUNDDIST   1.0

    Definition at line 59 of file branch_vanillafullstrong.c.

    ◆ DEFAULT_INTEGRALCANDS

    #define DEFAULT_INTEGRALCANDS   FALSE

    should integral variables in the current LP solution be considered as branching candidates ?

    Definition at line 62 of file branch_vanillafullstrong.c.

    ◆ DEFAULT_SCOREALL

    #define DEFAULT_SCOREALL   FALSE

    should strong branching scores be computed for all candidates, or can we early stop when a variable has infinite score ?

    Definition at line 64 of file branch_vanillafullstrong.c.

    ◆ DEFAULT_IDEMPOTENT

    #define DEFAULT_IDEMPOTENT   FALSE

    should strong branching side-effects be prevented (e.g., domain changes, stat updates etc.) ?

    Definition at line 66 of file branch_vanillafullstrong.c.

    ◆ DEFAULT_COLLECTSCORES

    #define DEFAULT_COLLECTSCORES   FALSE

    should strong branching scores be collected ?

    Definition at line 67 of file branch_vanillafullstrong.c.

    ◆ DEFAULT_DONOTBRANCH

    #define DEFAULT_DONOTBRANCH   FALSE

    should branching be done ?

    Definition at line 68 of file branch_vanillafullstrong.c.

    Function Documentation

    ◆ runVanillaStrongBranching()

    static SCIP_RETCODE runVanillaStrongBranching ( SCIP scip,
    SCIP_VAR **  cands,
    int  ncands,
    int  npriocands,
    SCIP_Bool  scoreall,
    SCIP_Bool  idempotent,
    SCIP_Real scores,
    int *  bestcand,
    SCIP_Real bestdown,
    SCIP_Real bestup,
    SCIP_Real bestscore,
    SCIP_Bool bestdownvalid,
    SCIP_Bool bestupvalid,
    SCIP_Real provedbound 
    )
    static

    selects a variable from a set of candidates by strong branching

    Parameters
    scipSCIP data structure
    candsbranching candidates
    ncandsnumber of branching candidates
    npriocandsnumber of branching candidates with highest priority
    scoreallshould strong branching scores be computed for all candidates, or can we early stop when a node is detected infeasible ?
    idempotentshould strong branching side-effects be prevented (e.g., domain changes, stat updates etc.) ?
    scorescandidate scores
    bestcandbest candidate for branching
    bestdownobjective value of the down branch for bestcand
    bestupobjective value of the up branch for bestcand
    bestscorescore for bestcand
    bestdownvalidis bestdown a valid dual bound for the down branch?
    bestupvalidis bestup a valid dual bound for the up branch?
    provedboundproved dual bound for current subtree

    Definition at line 98 of file branch_vanillafullstrong.c.

    References FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_HIGH, SCIPallColsInLP(), SCIPdebugMsg, SCIPendStrongbranch(), SCIPfrac(), SCIPgetBranchScoreMultiple(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetNNodes(), SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPinfinity(), SCIPisExact(), SCIPisFeasIntegral(), SCIPisGE(), SCIPisStopped(), SCIPprintDisplayLine(), SCIPstartStrongbranch(), SCIPupdateVarPseudocost(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPverbMessage(), and TRUE.

    Referenced by SCIP_DECL_BRANCHEXECLP().

    ◆ SCIP_DECL_BRANCHCOPY()

    static SCIP_DECL_BRANCHCOPY ( branchCopyVanillafullstrong  )
    static

    copy method for branchrule plugins (called when SCIP copies plugins)

    Definition at line 296 of file branch_vanillafullstrong.c.

    References BRANCHRULE_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetName(), and SCIPincludeBranchruleVanillafullstrong().

    ◆ SCIP_DECL_BRANCHFREE()

    static SCIP_DECL_BRANCHFREE ( branchFreeVanillafullstrong  )
    static

    destructor of branching rule to free user data (called when SCIP is exiting)

    Definition at line 310 of file branch_vanillafullstrong.c.

    References NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryNull.

    ◆ SCIP_DECL_BRANCHINIT()

    static SCIP_DECL_BRANCHINIT ( branchInitVanillafullstrong  )
    static

    initialization method of branching rule (called after problem was transformed)

    Definition at line 325 of file branch_vanillafullstrong.c.

    References NULL, SCIP_OKAY, and SCIPbranchruleGetData().

    ◆ SCIP_DECL_BRANCHEXIT()

    static SCIP_DECL_BRANCHEXIT ( branchExitVanillafullstrong  )
    static

    deinitialization method of branching rule (called before transformed problem is freed)

    Definition at line 342 of file branch_vanillafullstrong.c.

    References NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryArrayNull.

    ◆ SCIP_DECL_BRANCHEXECLP()

    ◆ SCIPgetVanillafullstrongData()

    SCIP_RETCODE SCIPgetVanillafullstrongData ( SCIP scip,
    SCIP_VAR ***  cands,
    SCIP_Real **  candscores,
    int *  ncands,
    int *  npriocands,
    int *  bestcand 
    )

    recovers candidate variables and their scores from last vanilla full strong branching call

    Parameters
    scipSCIP data structure
    candspointer to store candidate variables; or NULL
    candscorespointer to store candidate scores; or NULL
    ncandspointer to store number of candidates; or NULL
    npriocandspointer to store number of priority candidates; or NULL
    bestcandpointer to store best branching candidate; or NULL

    Definition at line 582 of file branch_vanillafullstrong.c.

    References BRANCHRULE_NAME, NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfindBranchrule().