Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    full strong LP branching rule

    Author
    Tobias Achterberg
    Gerald Gamrath

    Definition in file branch_fullstrong.c.

    #include "blockmemshell/memory.h"
    #include "scip/branch_fullstrong.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   "fullstrong"
     
    #define BRANCHRULE_DESC   "full strong branching"
     
    #define BRANCHRULE_PRIORITY   0
     
    #define BRANCHRULE_MAXDEPTH   -1
     
    #define BRANCHRULE_MAXBOUNDDIST   1.0
     
    #define DEFAULT_REEVALAGE   10LL
     
    #define DEFAULT_MAXPROPROUNDS   -2
     
    #define DEFAULT_PROBINGBOUNDS   TRUE
     
    #define DEFAULT_FORCESTRONGBRANCH   FALSE
     

    Functions

    static SCIP_DECL_BRANCHCOPY (branchCopyFullstrong)
     
    static SCIP_DECL_BRANCHFREE (branchFreeFullstrong)
     
    static SCIP_DECL_BRANCHINIT (branchInitFullstrong)
     
    static SCIP_DECL_BRANCHEXIT (branchExitFullstrong)
     
    SCIP_RETCODE SCIPselectVarStrongBranching (SCIP *scip, SCIP_VAR **lpcands, SCIP_Real *lpcandssol, SCIP_Real *lpcandsfrac, SCIP_Bool *skipdown, SCIP_Bool *skipup, int nlpcands, int npriolpcands, int ncomplete, int *start, int maxproprounds, SCIP_Bool probingbounds, SCIP_Bool forcestrongbranch, int *bestcand, SCIP_Real *bestdown, SCIP_Real *bestup, SCIP_Real *bestscore, SCIP_Bool *bestdownvalid, SCIP_Bool *bestupvalid, SCIP_Real *provedbound, SCIP_RESULT *result)
     
    static SCIP_DECL_BRANCHEXECLP (branchExeclpFullstrong)
     
    SCIP_RETCODE SCIPincludeBranchruleFullstrong (SCIP *scip)
     

    Macro Definition Documentation

    ◆ BRANCHRULE_NAME

    #define BRANCHRULE_NAME   "fullstrong"

    Definition at line 55 of file branch_fullstrong.c.

    ◆ BRANCHRULE_DESC

    #define BRANCHRULE_DESC   "full strong branching"

    Definition at line 56 of file branch_fullstrong.c.

    ◆ BRANCHRULE_PRIORITY

    #define BRANCHRULE_PRIORITY   0

    Definition at line 57 of file branch_fullstrong.c.

    ◆ BRANCHRULE_MAXDEPTH

    #define BRANCHRULE_MAXDEPTH   -1

    Definition at line 58 of file branch_fullstrong.c.

    ◆ BRANCHRULE_MAXBOUNDDIST

    #define BRANCHRULE_MAXBOUNDDIST   1.0

    Definition at line 59 of file branch_fullstrong.c.

    ◆ DEFAULT_REEVALAGE

    #define DEFAULT_REEVALAGE   10LL

    number of intermediate LPs solved to trigger reevaluation of strong branching value for a variable that was already evaluated at the current node

    Definition at line 62 of file branch_fullstrong.c.

    ◆ DEFAULT_MAXPROPROUNDS

    #define DEFAULT_MAXPROPROUNDS   -2

    maximum number of propagation rounds to be performed during strong branching before solving the LP (-1: no limit, -2: parameter settings)

    Definition at line 64 of file branch_fullstrong.c.

    ◆ DEFAULT_PROBINGBOUNDS

    #define DEFAULT_PROBINGBOUNDS   TRUE

    should valid bounds be identified in a probing-like fashion during strong branching (only with propagation)?

    Definition at line 66 of file branch_fullstrong.c.

    ◆ DEFAULT_FORCESTRONGBRANCH

    #define DEFAULT_FORCESTRONGBRANCH   FALSE

    should strong branching be applied even if there is just a single candidate?

    Definition at line 67 of file branch_fullstrong.c.

    Function Documentation

    ◆ SCIP_DECL_BRANCHCOPY()

    static SCIP_DECL_BRANCHCOPY ( branchCopyFullstrong  )
    static

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

    Definition at line 93 of file branch_fullstrong.c.

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

    ◆ SCIP_DECL_BRANCHFREE()

    static SCIP_DECL_BRANCHFREE ( branchFreeFullstrong  )
    static

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

    Definition at line 107 of file branch_fullstrong.c.

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

    ◆ SCIP_DECL_BRANCHINIT()

    static SCIP_DECL_BRANCHINIT ( branchInitFullstrong  )
    static

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

    Definition at line 127 of file branch_fullstrong.c.

    References NULL, SCIP_OKAY, and SCIPbranchruleGetData().

    ◆ SCIP_DECL_BRANCHEXIT()

    static SCIP_DECL_BRANCHEXIT ( branchExitFullstrong  )
    static

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

    Definition at line 142 of file branch_fullstrong.c.

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

    ◆ SCIP_DECL_BRANCHEXECLP()