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) |
#define BRANCHRULE_NAME "vanillafullstrong" |
Definition at line 54 of file branch_vanillafullstrong.c.
#define BRANCHRULE_DESC "vanilla full strong branching" |
Definition at line 55 of file branch_vanillafullstrong.c.
#define BRANCHRULE_PRIORITY -2000 |
Definition at line 56 of file branch_vanillafullstrong.c.
#define BRANCHRULE_MAXDEPTH -1 |
Definition at line 57 of file branch_vanillafullstrong.c.
#define BRANCHRULE_MAXBOUNDDIST 1.0 |
Definition at line 58 of file branch_vanillafullstrong.c.
#define DEFAULT_INTEGRALCANDS FALSE |
should integral variables in the current LP solution be considered as branching candidates ?
Definition at line 60 of file branch_vanillafullstrong.c.
Referenced by SCIPincludeBranchruleVanillafullstrong().
#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 62 of file branch_vanillafullstrong.c.
Referenced by SCIPincludeBranchruleVanillafullstrong().
#define DEFAULT_IDEMPOTENT FALSE |
should strong branching side-effects be prevented (e.g., domain changes, stat updates etc.) ?
Definition at line 64 of file branch_vanillafullstrong.c.
Referenced by SCIPincludeBranchruleVanillafullstrong().
#define DEFAULT_COLLECTSCORES FALSE |
should strong branching scores be collected ?
Definition at line 66 of file branch_vanillafullstrong.c.
Referenced by SCIPincludeBranchruleVanillafullstrong().
#define DEFAULT_DONOTBRANCH FALSE |
should branching be done ?
Definition at line 67 of file branch_vanillafullstrong.c.
Referenced by SCIPincludeBranchruleVanillafullstrong().
|
static |
selects a variable from a set of candidates by strong branching
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 assert(), bestcand, c, FALSE, lperror, 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(), TRUE, and var.
Referenced by SCIP_DECL_BRANCHEXECLP().
|
static |
copy method for branchrule plugins (called when SCIP copies plugins)
Definition at line 295 of file branch_vanillafullstrong.c.
References assert(), BRANCHRULE_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetName(), and SCIPincludeBranchruleVanillafullstrong().
|
static |
destructor of branching rule to free user data (called when SCIP is exiting)
Definition at line 309 of file branch_vanillafullstrong.c.
References assert(), NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryNull.
|
static |
initialization method of branching rule (called after problem was transformed)
Definition at line 324 of file branch_vanillafullstrong.c.
References assert(), NULL, SCIP_OKAY, and SCIPbranchruleGetData().
|
static |
deinitialization method of branching rule (called before transformed problem is freed)
Definition at line 341 of file branch_vanillafullstrong.c.
References assert(), NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeBlockMemoryArrayNull.
|
static |
branching execution method
Definition at line 369 of file branch_vanillafullstrong.c.
References assert(), BRANCHRULE_NAME, i, NULL, result, 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(), SCIPvarGetUbLocal(), and var.
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
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 assert(), bestcand, BRANCHRULE_NAME, NULL, SCIP_OKAY, SCIP_Real, SCIPbranchruleGetData(), and SCIPfindBranchrule().