Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

reliable pseudo costs branching rule

Author
Tobias Achterberg
Timo Berthold
Gerald Gamrath
Marc Pfetsch

Definition in file branch_relpscost.c.

#include "blockmemshell/memory.h"
#include "scip/branch_relpscost.h"
#include "scip/treemodel.h"
#include "scip/cons_and.h"
#include "scip/pub_branch.h"
#include "scip/pub_cons.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_sol.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_cons.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_nlp.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_randnumgen.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include "scip/prop_symmetry.h"
#include "scip/symmetry.h"
#include <string.h>

Go to the source code of this file.

Macros

#define BRANCHRULE_NAME   "relpscost"
 
#define BRANCHRULE_DESC   "reliability branching on pseudo cost values"
 
#define BRANCHRULE_PRIORITY   10000
 
#define BRANCHRULE_MAXDEPTH   -1
 
#define BRANCHRULE_MAXBOUNDDIST   1.0
 
#define DEFAULT_CONFLICTWEIGHT   0.01
 
#define DEFAULT_CONFLENGTHWEIGHT   0.0
 
#define DEFAULT_INFERENCEWEIGHT   0.0001
 
#define DEFAULT_CUTOFFWEIGHT   0.0001
 
#define DEFAULT_GMIAVGEFFWEIGHT   0.0
 
#define DEFAULT_GMILASTEFFWEIGHT   0.00001
 
#define DEFAULT_PSCOSTWEIGHT   1.0
 
#define DEFAULT_NLSCOREWEIGHT   0.1
 
#define DEFAULT_MINRELIABLE   1.0
 
#define DEFAULT_MAXRELIABLE   5.0
 
#define DEFAULT_SBITERQUOT   0.5
 
#define DEFAULT_SBITEROFS   100000
 
#define DEFAULT_MAXLOOKAHEAD   9
 
#define DEFAULT_INITCAND   100
 
#define DEFAULT_INITITER   0
 
#define DEFAULT_MAXBDCHGS   5
 
#define DEFAULT_MAXPROPROUNDS   -2
 
#define DEFAULT_PROBINGBOUNDS   TRUE
 
#define DEFAULT_USERELERRORFORRELIABILITY   FALSE
 
#define DEFAULT_LOWERRORTOL   0.05
 
#define DEFAULT_HIGHERRORTOL   1.0
 
#define DEFAULT_USEHYPTESTFORRELIABILITY   FALSE
 
#define DEFAULT_USEDYNAMICCONFIDENCE   FALSE
 
#define DEFAULT_STORESEMIINITCOSTS   FALSE
 
#define DEFAULT_USESBLOCALINFO   FALSE
 
#define DEFAULT_CONFIDENCELEVEL   2
 
#define DEFAULT_SKIPBADINITCANDS   TRUE
 
#define DEFAULT_STARTRANDSEED   5
 
#define DEFAULT_RANDINITORDER   FALSE
 
#define DEFAULT_USESMALLWEIGHTSITLIM   FALSE
 
#define DEFAULT_DYNAMICWEIGHTS   TRUE
 
#define DEFAULT_DEGENERACYAWARE   1
 
#define DEFAULT_FILTERCANDSSYM   FALSE
 
#define DEFAULT_TRANSSYMPSCOST   FALSE
 

Functions

static SCIP_RETCODE initOrbits (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata)
 
static SCIP_RETCODE filterSymmetricVariables (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata, SCIP_VAR **origbranchcands, SCIP_Real *origbranchcandssol, SCIP_Real *origbranchcandsfrac, int norigbranchcands, SCIP_VAR **branchcands, SCIP_Real *branchcandssol, SCIP_Real *branchcandsfrac, int *branchorbitidx, int *nbranchcands)
 
static SCIP_RETCODE SCIPupdateVarPseudocostSymmetric (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata, SCIP_VAR *branchvar, int *branchorbitidx, int branchvaridx, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
 
static SCIP_RETCODE binvarGetActiveProbindex (SCIP *scip, SCIP_VAR *var, int *probindex)
 
static SCIP_RETCODE countNonlinearities (SCIP *scip, int *nlcount, int nlcountsize, int *nlcountmax)
 
static SCIP_RETCODE branchruledataEnsureNlcount (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata)
 
static SCIP_Real calcNlscore (SCIP *scip, int *nlcount, int nlcountmax, int probindex)
 
static SCIP_Real calcScore (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata, SCIP_Real conflictscore, SCIP_Real avgconflictscore, SCIP_Real conflengthscore, SCIP_Real avgconflengthscore, SCIP_Real inferencescore, SCIP_Real avginferencescore, SCIP_Real cutoffscore, SCIP_Real avgcutoffscore, SCIP_Real gmieffscore, SCIP_Real lastgmieffscore, SCIP_Real pscostscore, SCIP_Real avgpscostscore, SCIP_Real nlscore, SCIP_Real frac, SCIP_Real degeneracyfactor)
 
static SCIP_RETCODE addBdchg (SCIP *scip, int **bdchginds, SCIP_BOUNDTYPE **bdchgtypes, SCIP_Real **bdchgbounds, int *nbdchgs, int ind, SCIP_BOUNDTYPE type, SCIP_Real bound)
 
static void freeBdchgs (SCIP *scip, int **bdchginds, SCIP_BOUNDTYPE **bdchgtypes, SCIP_Real **bdchgbounds, int *nbdchgs)
 
static SCIP_RETCODE applyBdchgs (SCIP *scip, SCIP_VAR **vars, int *bdchginds, SCIP_BOUNDTYPE *bdchgtypes, SCIP_Real *bdchgbounds, int nbdchgs, SCIP_RESULT *result)
 
static SCIP_RETCODE execRelpscost (SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_VAR **branchcands, SCIP_Real *branchcandssol, SCIP_Real *branchcandsfrac, int *branchorbitidx, int nbranchcands, SCIP_Bool executebranch, SCIP_RESULT *result)
 
static SCIP_DECL_BRANCHCOPY (branchCopyRelpscost)
 
static SCIP_DECL_BRANCHFREE (branchFreeRelpscost)
 
static SCIP_DECL_BRANCHINITSOL (branchInitsolRelpscost)
 
static SCIP_DECL_BRANCHEXITSOL (branchExitsolRelpscost)
 
static SCIP_DECL_BRANCHEXECLP (branchExeclpRelpscost)
 
SCIP_RETCODE SCIPincludeBranchruleRelpscost (SCIP *scip)
 
SCIP_RETCODE SCIPexecRelpscostBranching (SCIP *scip, SCIP_VAR **branchcands, SCIP_Real *branchcandssol, SCIP_Real *branchcandsfrac, int nbranchcands, SCIP_Bool executebranching, SCIP_RESULT *result)
 

Macro Definition Documentation

◆ BRANCHRULE_NAME

#define BRANCHRULE_NAME   "relpscost"

Definition at line 66 of file branch_relpscost.c.

Referenced by applyBdchgs(), and SCIPexecRelpscostBranching().

◆ BRANCHRULE_DESC

#define BRANCHRULE_DESC   "reliability branching on pseudo cost values"

Definition at line 67 of file branch_relpscost.c.

◆ BRANCHRULE_PRIORITY

#define BRANCHRULE_PRIORITY   10000

Definition at line 68 of file branch_relpscost.c.

◆ BRANCHRULE_MAXDEPTH

#define BRANCHRULE_MAXDEPTH   -1

Definition at line 69 of file branch_relpscost.c.

◆ BRANCHRULE_MAXBOUNDDIST

#define BRANCHRULE_MAXBOUNDDIST   1.0

Definition at line 70 of file branch_relpscost.c.

◆ DEFAULT_CONFLICTWEIGHT

#define DEFAULT_CONFLICTWEIGHT   0.01

weight in score calculations for conflict score

Definition at line 72 of file branch_relpscost.c.

◆ DEFAULT_CONFLENGTHWEIGHT

#define DEFAULT_CONFLENGTHWEIGHT   0.0

weight in score calculations for conflict length score

Definition at line 73 of file branch_relpscost.c.

◆ DEFAULT_INFERENCEWEIGHT

#define DEFAULT_INFERENCEWEIGHT   0.0001

weight in score calculations for inference score

Definition at line 74 of file branch_relpscost.c.

◆ DEFAULT_CUTOFFWEIGHT

#define DEFAULT_CUTOFFWEIGHT   0.0001

weight in score calculations for cutoff score

Definition at line 75 of file branch_relpscost.c.

◆ DEFAULT_GMIAVGEFFWEIGHT

#define DEFAULT_GMIAVGEFFWEIGHT   0.0

weight in score calculations of average GMI cut normed efficacies

Definition at line 76 of file branch_relpscost.c.

◆ DEFAULT_GMILASTEFFWEIGHT

#define DEFAULT_GMILASTEFFWEIGHT   0.00001

weight in score calculations of last GMI cut normed efficacy

Definition at line 77 of file branch_relpscost.c.

◆ DEFAULT_PSCOSTWEIGHT

#define DEFAULT_PSCOSTWEIGHT   1.0

weight in score calculations for pseudo cost score

Definition at line 78 of file branch_relpscost.c.

◆ DEFAULT_NLSCOREWEIGHT

#define DEFAULT_NLSCOREWEIGHT   0.1

weight in score calculations for nlcount score

Definition at line 79 of file branch_relpscost.c.

◆ DEFAULT_MINRELIABLE

#define DEFAULT_MINRELIABLE   1.0

minimal value for minimum pseudo cost size to regard pseudo cost value as reliable

Definition at line 80 of file branch_relpscost.c.

◆ DEFAULT_MAXRELIABLE

#define DEFAULT_MAXRELIABLE   5.0

maximal value for minimum pseudo cost size to regard pseudo cost value as reliable

Definition at line 81 of file branch_relpscost.c.

◆ DEFAULT_SBITERQUOT

#define DEFAULT_SBITERQUOT   0.5

maximal fraction of strong branching LP iterations compared to normal iterations

Definition at line 82 of file branch_relpscost.c.

◆ DEFAULT_SBITEROFS

#define DEFAULT_SBITEROFS   100000

additional number of allowed strong branching LP iterations

Definition at line 83 of file branch_relpscost.c.

◆ DEFAULT_MAXLOOKAHEAD

#define DEFAULT_MAXLOOKAHEAD   9

maximal number of further variables evaluated without better score

Definition at line 84 of file branch_relpscost.c.

◆ DEFAULT_INITCAND

#define DEFAULT_INITCAND   100

maximal number of candidates initialized with strong branching per node

Definition at line 85 of file branch_relpscost.c.

◆ DEFAULT_INITITER

#define DEFAULT_INITITER   0

iteration limit for strong branching initialization of pseudo cost entries (0: auto)

Definition at line 86 of file branch_relpscost.c.

◆ DEFAULT_MAXBDCHGS

#define DEFAULT_MAXBDCHGS   5

maximal number of bound tightenings before the node is reevaluated (-1: unlimited)

Definition at line 87 of file branch_relpscost.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 88 of file branch_relpscost.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 91 of file branch_relpscost.c.

◆ DEFAULT_USERELERRORFORRELIABILITY

#define DEFAULT_USERELERRORFORRELIABILITY   FALSE

should reliability be based on relative errors?

Definition at line 94 of file branch_relpscost.c.

◆ DEFAULT_LOWERRORTOL

#define DEFAULT_LOWERRORTOL   0.05

lowest tolerance beneath which relative errors are reliable

Definition at line 95 of file branch_relpscost.c.

◆ DEFAULT_HIGHERRORTOL

#define DEFAULT_HIGHERRORTOL   1.0

highest tolerance beneath which relative errors are reliable

Definition at line 96 of file branch_relpscost.c.

◆ DEFAULT_USEHYPTESTFORRELIABILITY

#define DEFAULT_USEHYPTESTFORRELIABILITY   FALSE

should the strong branching decision be based on a hypothesis test?

Definition at line 97 of file branch_relpscost.c.

◆ DEFAULT_USEDYNAMICCONFIDENCE

#define DEFAULT_USEDYNAMICCONFIDENCE   FALSE

should the confidence level be adjusted dynamically?

Definition at line 98 of file branch_relpscost.c.

◆ DEFAULT_STORESEMIINITCOSTS

#define DEFAULT_STORESEMIINITCOSTS   FALSE

should strong branching result be considered for pseudo costs if the other direction was infeasible?

Definition at line 99 of file branch_relpscost.c.

◆ DEFAULT_USESBLOCALINFO

#define DEFAULT_USESBLOCALINFO   FALSE

should the scoring function use only local cutoff and inference information obtained for strong branching candidates?

Definition at line 100 of file branch_relpscost.c.

◆ DEFAULT_CONFIDENCELEVEL

#define DEFAULT_CONFIDENCELEVEL   2

The confidence level for statistical methods, between 0 (Min) and 4 (Max).

Definition at line 101 of file branch_relpscost.c.

◆ DEFAULT_SKIPBADINITCANDS

#define DEFAULT_SKIPBADINITCANDS   TRUE

should branching rule skip candidates that have a low probability to be better than the best strong-branching or pseudo-candidate?

Definition at line 102 of file branch_relpscost.c.

◆ DEFAULT_STARTRANDSEED

#define DEFAULT_STARTRANDSEED   5

start random seed for random number generation

Definition at line 105 of file branch_relpscost.c.

◆ DEFAULT_RANDINITORDER

#define DEFAULT_RANDINITORDER   FALSE

should slight perturbation of scores be used to break ties in the prior scores?

Definition at line 106 of file branch_relpscost.c.

◆ DEFAULT_USESMALLWEIGHTSITLIM

#define DEFAULT_USESMALLWEIGHTSITLIM   FALSE

should smaller weights be used for pseudo cost updates after hitting the LP iteration limit?

Definition at line 107 of file branch_relpscost.c.

◆ DEFAULT_DYNAMICWEIGHTS

#define DEFAULT_DYNAMICWEIGHTS   TRUE

should the weights of the branching rule be adjusted dynamically during solving based infeasible and objective leaf counters?

Definition at line 108 of file branch_relpscost.c.

◆ DEFAULT_DEGENERACYAWARE

#define DEFAULT_DEGENERACYAWARE   1

should degeneracy be taken into account to update weights and skip strong branching? (0: off, 1: after root, 2: always)

Definition at line 111 of file branch_relpscost.c.

◆ DEFAULT_FILTERCANDSSYM

#define DEFAULT_FILTERCANDSSYM   FALSE

Use symmetry to filter branching candidates?

Definition at line 114 of file branch_relpscost.c.

◆ DEFAULT_TRANSSYMPSCOST

#define DEFAULT_TRANSSYMPSCOST   FALSE

Transfer pscost information to symmetric variables if filtering is performed?

Definition at line 115 of file branch_relpscost.c.

Function Documentation

◆ initOrbits()

static SCIP_RETCODE initOrbits ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata 
)
static

initialize orbits

Parameters
scipSCIP data structure
branchruledatabranching rule data

Definition at line 184 of file branch_relpscost.c.

References filterSymmetricVariables(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPcomputeOrbitsComponentsSym(), SCIPgetNVars(), SCIPgetSymmetry(), and TRUE.

◆ filterSymmetricVariables()

static SCIP_RETCODE filterSymmetricVariables ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata,
SCIP_VAR **  origbranchcands,
SCIP_Real origbranchcandssol,
SCIP_Real origbranchcandsfrac,
int  norigbranchcands,
SCIP_VAR **  branchcands,
SCIP_Real branchcandssol,
SCIP_Real branchcandsfrac,
int *  branchorbitidx,
int *  nbranchcands 
)
static

filter out symmetric variables from branching variables

Parameters
scipSCIP data structure
branchruledatabranching rule data
origbranchcandsoriginal branching candidates
origbranchcandssoloriginal solution value for the branching candidates
origbranchcandsfracoriginal fractional part of the branching candidates
norigbranchcandsoriginal number of branching candidates
branchcandsbranching candidates
branchcandssolsolution value for the branching candidates
branchcandsfracfractional part of the branching candidates
branchorbitidxarray of indices of orbit of branching candidates
nbranchcandspointer to store number of branching candidates

Definition at line 243 of file branch_relpscost.c.

References NULL, SCIP_OKAY, SCIPdebugMsg, SCIPhashmapGetImageInt(), and SCIPupdateVarPseudocostSymmetric().

Referenced by initOrbits().

◆ SCIPupdateVarPseudocostSymmetric()

static SCIP_RETCODE SCIPupdateVarPseudocostSymmetric ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata,
SCIP_VAR branchvar,
int *  branchorbitidx,
int  branchvaridx,
SCIP_Real  solvaldelta,
SCIP_Real  objdelta,
SCIP_Real  weight 
)
static

updates the pseudo costs of the given variable and all its symmetric variables

Parameters
scipSCIP data structure
branchruledatabranching rule data
branchvarbranching variable candidate
branchorbitidxarray of orbit indices
branchvaridxindex of variable in branchorbitidx
solvaldeltadifference of variable's new LP value - old LP value
objdeltadifference of new LP's objective value - old LP's objective value
weightweight in (0,1] of this update in pseudo cost sum

Definition at line 326 of file branch_relpscost.c.

References binvarGetActiveProbindex(), NULL, SCIP_CALL, SCIP_OKAY, SCIPupdateVarPseudocost(), and SCIPvarIsActive().

Referenced by execRelpscost(), and filterSymmetricVariables().

◆ binvarGetActiveProbindex()

static SCIP_RETCODE binvarGetActiveProbindex ( SCIP scip,
SCIP_VAR var,
int *  probindex 
)
static

! [SnippetCodeStyleStaticAsserts] return probindex of variable or corresponding active variable (if negated or aggregated) or -1 (if multiaggregated)

! [SnippetCodeStyleStaticAsserts]

Parameters
scipSCIP data structure
varbinary variable
probindexbuffer to store probindex

Definition at line 388 of file branch_relpscost.c.

References countNonlinearities(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_FIXED, SCIPgetBinvarRepresentative(), SCIPvarGetNegationVar(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarIsActive(), SCIPvarIsBinary(), and SCIPvarIsNegated().

Referenced by countNonlinearities(), and SCIPupdateVarPseudocostSymmetric().

◆ countNonlinearities()

static SCIP_RETCODE countNonlinearities ( SCIP scip,
int *  nlcount,
int  nlcountsize,
int *  nlcountmax 
)
static

! [SnippetCodeStyleDeclaration] counts number of nonlinear constraints in which each variable appears

! [SnippetCodeStyleDeclaration]

! [SnippetCodeStyleIfFor]

! [SnippetCodeStyleIfFor]

Parameters
scipSCIP data structure
nlcountpointer to array for storing count values
nlcountsizebuffer for storing length of nlcount array
nlcountmaxbuffer for storing maximum value in nlcount array

Definition at line 426 of file branch_relpscost.c.

References binvarGetActiveProbindex(), BMSclearMemoryArray, branchruledataEnsureNlcount(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_FIXED, SCIPconshdlrGetConss(), SCIPconshdlrGetNActiveConss(), SCIPfindConshdlr(), SCIPgetNLPVarsNonlinearity(), SCIPgetNNLPVars(), SCIPgetNVarsAnd(), SCIPgetResultantAnd(), SCIPgetVarsAnd(), SCIPgetVarsData(), SCIPisNLPConstructed(), and SCIPvarGetStatus().

Referenced by binvarGetActiveProbindex(), and branchruledataEnsureNlcount().

◆ branchruledataEnsureNlcount()

static SCIP_RETCODE branchruledataEnsureNlcount ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata 
)
static
Parameters
scipSCIP data structure
branchruledatabranching rule data

Definition at line 516 of file branch_relpscost.c.

References BMSclearMemoryArray, calcNlscore(), countNonlinearities(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBlockMemoryArray, SCIPfreeBlockMemoryArrayNull, SCIPgetNVars(), and SCIPreallocBlockMemoryArray.

Referenced by countNonlinearities(), and execRelpscost().

◆ calcNlscore()

static SCIP_Real calcNlscore ( SCIP scip,
int *  nlcount,
int  nlcountmax,
int  probindex 
)
static

calculates nlscore value between 0 and 1

Parameters
scipSCIP data structure
nlcountarray to store count values
nlcountmaxmaximum value in nlcount array
probindexindex of branching candidate

Definition at line 563 of file branch_relpscost.c.

References calcScore(), NULL, SCIP_Real, and SCIPgetNVars().

Referenced by branchruledataEnsureNlcount(), and execRelpscost().

◆ calcScore()

static SCIP_Real calcScore ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata,
SCIP_Real  conflictscore,
SCIP_Real  avgconflictscore,
SCIP_Real  conflengthscore,
SCIP_Real  avgconflengthscore,
SCIP_Real  inferencescore,
SCIP_Real  avginferencescore,
SCIP_Real  cutoffscore,
SCIP_Real  avgcutoffscore,
SCIP_Real  gmieffscore,
SCIP_Real  lastgmieffscore,
SCIP_Real  pscostscore,
SCIP_Real  avgpscostscore,
SCIP_Real  nlscore,
SCIP_Real  frac,
SCIP_Real  degeneracyfactor 
)
static

calculates an overall score value for the given individual score values

Parameters
scipSCIP data structure
branchruledatabranching rule data
conflictscoreconflict score of current variable
avgconflictscoreaverage conflict score
conflengthscoreconflict length score of current variable
avgconflengthscoreaverage conflict length score
inferencescoreinference score of current variable
avginferencescoreaverage inference score
cutoffscorecutoff score of current variable
avgcutoffscoreaverage cutoff score
gmieffscorenormalized-eff of avg GMI cuts from row when var was frac and basic
lastgmieffscorelast normalized gmieffscore when var was frac and basic
pscostscorepscost score of current variable
avgpscostscoreaverage pscost score
nlscorenonlinear score of current variable between 0 and 1
fracfractional value of variable in current solution
degeneracyfactorfactor to apply because of degeneracy

Definition at line 590 of file branch_relpscost.c.

References addBdchg(), MIN, NULL, SCIP_Real, SCIPfeastol(), SCIPgetNInfeasibleLeaves(), and SCIPgetNObjlimLeaves().

Referenced by calcNlscore(), and execRelpscost().

◆ addBdchg()

static SCIP_RETCODE addBdchg ( SCIP scip,
int **  bdchginds,
SCIP_BOUNDTYPE **  bdchgtypes,
SCIP_Real **  bdchgbounds,
int *  nbdchgs,
int  ind,
SCIP_BOUNDTYPE  type,
SCIP_Real  bound 
)
static

adds given index and direction to bound change arrays

Parameters
scipSCIP data structure
bdchgindspointer to bound change index array
bdchgtypespointer to bound change types array
bdchgboundspointer to bound change new bounds array
nbdchgspointer to number of bound changes
indindex to store in bound change index array
typetype of the bound change to store in bound change type array
boundnew bound to store in bound change new bounds array

Definition at line 642 of file branch_relpscost.c.

References bound, freeBdchgs(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPreallocBufferArray.

Referenced by calcScore(), and execRelpscost().

◆ freeBdchgs()

static void freeBdchgs ( SCIP scip,
int **  bdchginds,
SCIP_BOUNDTYPE **  bdchgtypes,
SCIP_Real **  bdchgbounds,
int *  nbdchgs 
)
static

frees bound change arrays

Parameters
scipSCIP data structure
bdchgindspointer to bound change index array
bdchgtypespointer to bound change types array
bdchgboundspointer to bound change new bounds array
nbdchgspointer to number of bound changes

Definition at line 675 of file branch_relpscost.c.

References applyBdchgs(), NULL, and SCIPfreeBufferArrayNull.

Referenced by addBdchg(), and execRelpscost().

◆ applyBdchgs()

static SCIP_RETCODE applyBdchgs ( SCIP scip,
SCIP_VAR **  vars,
int *  bdchginds,
SCIP_BOUNDTYPE bdchgtypes,
SCIP_Real bdchgbounds,
int  nbdchgs,
SCIP_RESULT result 
)
static

applies bound changes stored in bound change arrays

Parameters
scipSCIP data structure
varsproblem variables
bdchgindsbound change index array
bdchgtypesbound change types array
bdchgboundsbound change new bound array
nbdchgsnumber of bound changes
resultresult pointer

Definition at line 696 of file branch_relpscost.c.

References BRANCHRULE_NAME, execRelpscost(), NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIPbranchruleGetData(), SCIPdebugMsg, SCIPfindBranchrule(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.

Referenced by execRelpscost(), and freeBdchgs().

◆ execRelpscost()

static SCIP_RETCODE execRelpscost ( SCIP scip,
SCIP_BRANCHRULE branchrule,
SCIP_VAR **  branchcands,
SCIP_Real branchcandssol,
SCIP_Real branchcandsfrac,
int *  branchorbitidx,
int  nbranchcands,
SCIP_Bool  executebranch,
SCIP_RESULT result 
)
static

execute reliability pseudo cost branching

Parameters
scipSCIP data structure
branchrulebranching rule
branchcandsbranching candidates
branchcandssolsolution value for the branching candidates
branchcandsfracfractional part of the branching candidates
branchorbitidxindices of orbit (or NULL)
nbranchcandsnumber of branching candidates
executebranchexecute a branching step or run probing only
resultpointer to the result of the execution

Definition at line 773 of file branch_relpscost.c.

References addBdchg(), applyBdchgs(), branchruledataEnsureNlcount(), calcNlscore(), calcScore(), FALSE, freeBdchgs(), MAX, MIN, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_BRANCHED, SCIP_CALL, SCIP_CONFIDENCELEVEL_HIGH, SCIP_CONFIDENCELEVEL_LOW, SCIP_CONFIDENCELEVEL_MAX, SCIP_CONFIDENCELEVEL_MEDIUM, SCIP_CONFIDENCELEVEL_MIN, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DECL_BRANCHCOPY(), SCIP_DIDNOTRUN, SCIP_INVALID, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_UNUSED, SCIP_VERBLEVEL_HIGH, SCIPallColsInLP(), SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPbranchruleGetData(), SCIPbranchVarVal(), SCIPdebug, SCIPdebugMsg, SCIPendStrongbranch(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeasFrac(), SCIPfreeBlockMemoryArray, SCIPfreeBufferArray, SCIPgetAvgConflictlengthScore(), SCIPgetAvgConflictScore(), SCIPgetAvgCutoffScore(), SCIPgetAvgInferenceScore(), SCIPgetAvgPseudocostScore(), SCIPgetBestSol(), SCIPgetBranchScore(), SCIPgetCurrentNode(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetLastStrongbranchLPSolStat(), SCIPgetLPDualDegeneracy(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetNDualResolveLPIterations(), SCIPgetNDualResolveLPs(), SCIPgetNNodeInitLPIterations(), SCIPgetNNodeInitLPs(), SCIPgetNNodeLPIterations(), SCIPgetNNodes(), SCIPgetNodeLowerbound(), SCIPgetNRootStrongbranchLPIterations(), SCIPgetNStrongbranchLPIterations(), SCIPgetNVars(), SCIPgetRealParam(), SCIPgetVarAvgCutoffScore(), SCIPgetVarAvgGMIScore(), SCIPgetVarAvgInferenceScore(), SCIPgetVarConflictlengthScore(), SCIPgetVarConflictScore(), SCIPgetVarLastGMIScore(), SCIPgetVarPseudocostCountCurrentRun(), SCIPgetVarPseudocostCurrentRun(), SCIPgetVarPseudocostScore(), SCIPgetVarPseudocostScoreCurrentRun(), SCIPgetVarPseudocostVal(), SCIPgetVars(), SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchLast(), SCIPgetVarStrongbranchNode(), SCIPgetVarStrongbranchWithPropagation(), SCIPhasCurrentNodeLP(), SCIPinfinity(), SCIPisExactSolve(), SCIPisFeasIntegral(), SCIPisGE(), SCIPisGT(), SCIPisLPSolBasic(), SCIPisLT(), SCIPisStopped(), SCIPisSumGE(), SCIPisSumGT(), SCIPisVarPscostRelerrorReliable(), SCIPisZero(), SCIPnodeGetLowerbound(), SCIPpscostThresholdProbabilityTest(), SCIPrandomGetReal(), SCIPsignificantVarPscostDifference(), SCIPsolGetIndex(), SCIPstartStrongbranch(), SCIPtreemodelIsEnabled(), SCIPtreemodelSelectCandidate(), SCIPupdateNodeLowerbound(), SCIPupdateVarPseudocostSymmetric(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), SCIPverbMessage(), and TRUE.

Referenced by applyBdchgs(), and SCIPexecRelpscostBranching().

◆ SCIP_DECL_BRANCHCOPY()

static SCIP_DECL_BRANCHCOPY ( branchCopyRelpscost  )
static

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

Definition at line 1907 of file branch_relpscost.c.

Referenced by execRelpscost().

◆ SCIP_DECL_BRANCHFREE()

static SCIP_DECL_BRANCHFREE ( branchFreeRelpscost  )
static

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

Definition at line 1921 of file branch_relpscost.c.

◆ SCIP_DECL_BRANCHINITSOL()

static SCIP_DECL_BRANCHINITSOL ( branchInitsolRelpscost  )
static

solving process initialization method of branching rule (called when branch and bound process is about to begin)

Definition at line 1939 of file branch_relpscost.c.

◆ SCIP_DECL_BRANCHEXITSOL()

static SCIP_DECL_BRANCHEXITSOL ( branchExitsolRelpscost  )
static

solving process deinitialization method of branching rule (called before branch and bound process data is freed)

Definition at line 1960 of file branch_relpscost.c.

◆ SCIP_DECL_BRANCHEXECLP()

static SCIP_DECL_BRANCHEXECLP ( branchExeclpRelpscost  )
static

branching execution method for fractional LP solutions

Definition at line 1987 of file branch_relpscost.c.