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().