Detailed Description
vanilla full strong LP branching rule
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_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 54 of file branch_vanillafullstrong.c.
◆ BRANCHRULE_DESC
#define BRANCHRULE_DESC "vanilla full strong branching" |
Definition at line 55 of file branch_vanillafullstrong.c.
◆ BRANCHRULE_PRIORITY
#define BRANCHRULE_PRIORITY -2000 |
Definition at line 56 of file branch_vanillafullstrong.c.
◆ BRANCHRULE_MAXDEPTH
#define BRANCHRULE_MAXDEPTH -1 |
Definition at line 57 of file branch_vanillafullstrong.c.
◆ BRANCHRULE_MAXBOUNDDIST
#define BRANCHRULE_MAXBOUNDDIST 1.0 |
Definition at line 58 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 61 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 63 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 65 of file branch_vanillafullstrong.c.
◆ DEFAULT_COLLECTSCORES
#define DEFAULT_COLLECTSCORES FALSE |
should strong branching scores be collected ?
Definition at line 66 of file branch_vanillafullstrong.c.
◆ DEFAULT_DONOTBRANCH
#define DEFAULT_DONOTBRANCH FALSE |
should branching be done ?
Definition at line 67 of file branch_vanillafullstrong.c.
Function Documentation
◆ runVanillaStrongBranching()
|
static |
selects a variable from a set of candidates by strong branching
- Parameters
-
scip SCIP data structure cands branching candidates ncands number of branching candidates npriocands number of branching candidates with highest priority scoreall should strong branching scores be computed for all candidates, or can we early stop when a node is detected infeasible ? idempotent should strong branching side-effects be prevented (e.g., domain changes, stat updates etc.) ? scores candidate scores bestcand best candidate for branching bestdown objective value of the down branch for bestcand bestup objective value of the up branch for bestcand bestscore score for bestcand bestdownvalid is bestdown a valid dual bound for the down branch? bestupvalid is bestup a valid dual bound for the up branch? provedbound proved dual bound for current subtree
Definition at line 97 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(), SCIPisExactSolve(), SCIPisFeasIntegral(), SCIPisGE(), SCIPisStopped(), SCIPprintDisplayLine(), SCIPstartStrongbranch(), SCIPupdateVarPseudocost(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPverbMessage(), and TRUE.
Referenced by SCIP_DECL_BRANCHEXECLP().
◆ SCIP_DECL_BRANCHCOPY()
|
static |
copy method for branchrule plugins (called when SCIP copies plugins)
Definition at line 295 of file branch_vanillafullstrong.c.
References BRANCHRULE_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetName(), and SCIPincludeBranchruleVanillafullstrong().
◆ SCIP_DECL_BRANCHFREE()
|
static |
destructor of branching rule to free user data (called when SCIP is exiting)
Definition at line 309 of file branch_vanillafullstrong.c.
References NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryNull.
◆ SCIP_DECL_BRANCHINIT()
|
static |
initialization method of branching rule (called after problem was transformed)
Definition at line 324 of file branch_vanillafullstrong.c.
References NULL, SCIP_OKAY, and SCIPbranchruleGetData().
◆ SCIP_DECL_BRANCHEXIT()
|
static |
deinitialization method of branching rule (called before transformed problem is freed)
Definition at line 341 of file branch_vanillafullstrong.c.
References NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryArrayNull.
◆ SCIP_DECL_BRANCHEXECLP()
|
static |
branching execution method
Definition at line 369 of file branch_vanillafullstrong.c.
References BRANCHRULE_NAME, NULL, runVanillaStrongBranching(), SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIPallColsInLP(), SCIPallocBlockMemoryArray, SCIPbranchruleGetData(), SCIPbranchruleGetName(), SCIPbranchVarVal(), SCIPdebugMsg, SCIPfreeBlockMemoryArrayNull, SCIPgetCutoffbound(), SCIPgetLPBranchCands(), SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPgetPseudoBranchCands(), SCIPisExactSolve(), SCIPisGE(), SCIPisLT(), SCIPnodeGetLowerbound(), SCIPupdateLocalLowerbound(), SCIPupdateNodeLowerbound(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), and SCIPvarGetUbLocal().
◆ 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
-
scip SCIP data structure cands pointer to store candidate variables; or NULL candscores pointer to store candidate scores; or NULL ncands pointer to store number of candidates; or NULL npriocands pointer to store number of priority candidates; or NULL bestcand pointer to store best branching candidate; or NULL
Definition at line 581 of file branch_vanillafullstrong.c.
References BRANCHRULE_NAME, NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfindBranchrule().