internal methods for branching and inference history
Definition in file history.h.
#include "scip/def.h"#include "blockmemshell/memory.h"#include "scip/type_retcode.h"#include "scip/type_set.h"#include "scip/type_history.h"Go to the source code of this file.
| SCIP_RETCODE SCIPhistoryCreate | ( | SCIP_HISTORY ** | history, |
| BMS_BLKMEM * | blkmem ) |
creates an empty history entry
| history | pointer to store branching and inference history |
| blkmem | block memory |
Definition at line 51 of file history.c.
References assert(), BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPhistoryReset().
Referenced by SCIPreoptUpdateVarHistory(), SCIPstatCreate(), SCIPvaluehistoryFind(), and varCreate().
| void SCIPhistoryFree | ( | SCIP_HISTORY ** | history, |
| BMS_BLKMEM * | blkmem ) |
frees a history entry
| history | pointer to branching and inference history |
| blkmem | block memory |
Definition at line 66 of file history.c.
References assert(), BMSfreeBlockMemory, and NULL.
Referenced by SCIPreoptFree(), SCIPstatFree(), SCIPvaluehistoryFree(), and varFree().
| void SCIPhistoryReset | ( | SCIP_HISTORY * | history | ) |
resets history entry to zero
| history | branching and inference history |
Definition at line 78 of file history.c.
References SCIP_History::ancpscostcount, SCIP_History::ancpscostweightedmean, assert(), SCIP_History::balance, SCIP_History::branchdepthsum, SCIP_History::conflengthsum, SCIP_History::cutoffsum, FALSE, SCIP_History::gmieff, SCIP_History::gmieffsum, SCIP_History::inferencesum, SCIP_History::nactiveconflicts, SCIP_History::nbranchings, SCIP_History::ngmi, NULL, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_History::pscostweightedmean, SCIP_History::ratio, SCIP_History::ratiovalid, and SCIP_History::vsids.
Referenced by SCIPhistoryCreate(), SCIPreoptUpdateVarHistory(), SCIPstatReset(), SCIPstatResetCurrentRun(), SCIPvarAggregate(), SCIPvarAggregateExact(), SCIPvarFix(), SCIPvarFixExact(), and SCIPvarInitSolve().
| void SCIPhistoryUnite | ( | SCIP_HISTORY * | history, |
| SCIP_HISTORY * | addhistory, | ||
| SCIP_Bool | switcheddirs ) |
unites two history entries by adding the values of the second one to the first one
| history | branching and inference history |
| addhistory | history values to add to history |
| switcheddirs | should the history entries be united with switched directories |
Definition at line 117 of file history.c.
References SCIP_History::ancpscostcount, SCIP_History::ancpscostweightedmean, assert(), SCIP_History::branchdepthsum, SCIP_History::conflengthsum, SCIP_History::cutoffsum, i, SCIP_History::inferencesum, MAX, SCIP_History::nactiveconflicts, SCIP_History::nbranchings, NULL, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_History::pscostweightedmean, SCIP_Bool, SCIP_Real, and SCIP_History::vsids.
Referenced by SCIPreoptUpdateVarHistory(), SCIPvarAggregate(), SCIPvarAggregateExact(), SCIPvarMergeHistories(), SCIPvarSetHistory(), and SCIPvarTransform().
| void SCIPhistoryUpdatePseudocost | ( | SCIP_HISTORY * | history, |
| SCIP_SET * | set, | ||
| SCIP_Real | solvaldelta, | ||
| SCIP_Real | objdelta, | ||
| SCIP_Real | weight ) |
updates the pseudo costs for a change of "solvaldelta" in the variable's LP solution value and a change of "objdelta" in the LP's objective value
| history | branching and inference history |
| set | global SCIP settings |
| solvaldelta | difference of variable's new LP value - old LP value |
| objdelta | difference of new LP's objective value - old LP's objective value |
| weight | weight of this update in pseudo cost sum (added to pscostcount) |
Definition at line 191 of file history.c.
References assert(), eps, MAX, NULL, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_History::pscostweightedmean, REALABS, SCIP_Real, SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetPseudocostdelta(), and SCIPsetPseudocosteps().
Referenced by SCIPvarUpdatePseudocost().
| void SCIPhistoryUpdateAncPseudocost | ( | SCIP_HISTORY * | history, |
| SCIP_SET * | set, | ||
| SCIP_Real | solvaldelta, | ||
| SCIP_Real | objdelta, | ||
| SCIP_Real | weight ) |
updates the ancestral pseudo costs for a change of "solvaldelta" in the variable's LP solution value and a change of "objdelta" in the LP's objective value
| history | branching and inference history |
| set | global SCIP settings |
| solvaldelta | difference of variable's new LP value - old LP value |
| objdelta | difference of new LP's objective value - old LP's objective value |
| weight | weight of this update in discounted pseudo cost sum (added to pscostcount) |
Definition at line 255 of file history.c.
References SCIP_History::ancpscostcount, SCIP_History::ancpscostweightedmean, assert(), eps, MAX, NULL, REALABS, SCIP_Real, SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetPseudocostdelta(), and SCIPsetPseudocosteps().
Referenced by SCIPvarUpdateAncPseudocost().
| SCIP_BRANCHDIR SCIPbranchdirOpposite | ( | SCIP_BRANCHDIR | dir | ) |
returns the opposite direction of the given branching direction
| dir | branching direction |
Definition at line 520 of file history.c.
References SCIP_BRANCHDIR_AUTO, SCIP_BRANCHDIR_DOWNWARDS, and SCIP_BRANCHDIR_UPWARDS.
Referenced by SCIPvarAggregate(), SCIPvarAggregateExact(), SCIPvarChgBranchDirection(), SCIPvarGetAncPseudocostCountCurrentRun(), SCIPvarGetAvgBranchdepth(), SCIPvarGetAvgConflictlength(), SCIPvarGetAvgConflictlengthCurrentRun(), SCIPvarGetAvgCutoffs(), SCIPvarGetAvgCutoffsCurrentRun(), SCIPvarGetAvgInferences(), SCIPvarGetAvgInferencesCurrentRun(), SCIPvarGetCutoffSum(), SCIPvarGetCutoffSumCurrentRun(), SCIPvarGetInferenceSum(), SCIPvarGetInferenceSumCurrentRun(), SCIPvarGetNActiveConflicts(), SCIPvarGetNActiveConflictsCurrentRun(), SCIPvarGetNBranchings(), SCIPvarGetNBranchingsCurrentRun(), SCIPvarGetPseudocostCount(), SCIPvarGetPseudocostCountCurrentRun(), SCIPvarGetPseudocostVariance(), SCIPvarGetVSIDS_rec(), SCIPvarGetVSIDSCurrentRun(), SCIPvarIncCutoffSum(), SCIPvarIncInferenceSum(), SCIPvarIncNActiveConflicts(), SCIPvarIncNBranchings(), SCIPvarIncVSIDS(), SCIPvarMultiaggregate(), SCIPvarMultiaggregateExact(), SCIPvarNegate(), and varProcessChgBranchDirection().
| SCIP_Real SCIPhistoryGetPseudocost | ( | SCIP_HISTORY * | history, |
| SCIP_Real | solvaldelta ) |
returns the expected dual gain for moving the corresponding variable by "solvaldelta"
| history | branching and inference history |
| solvaldelta | difference of variable's new LP value - old LP value |
Definition at line 529 of file history.c.
References assert(), NULL, SCIP_History::pscostcount, SCIP_History::pscostweightedmean, and SCIP_Real.
Referenced by SCIPgetAvgDPseudocostScore(), SCIPgetAvgPseudocost(), SCIPgetAvgPseudocostCurrentRun(), SCIPgetAvgPseudocostScore(), SCIPgetAvgPseudocostScoreCurrentRun(), SCIPprintBranchingStatistics(), SCIPvarGetPseudocost(), and SCIPvarGetPseudocostCurrentRun().
| SCIP_Real SCIPhistoryGetAncPseudocost | ( | SCIP_HISTORY * | history, |
| SCIP_Real | solvaldelta ) |
returns the expected ancestral dual gain for moving the corresponding variable by "solvaldelta"
| history | branching and inference history |
| solvaldelta | difference of variable's new LP value - old LP value |
Definition at line 543 of file history.c.
References SCIP_History::ancpscostcount, SCIP_History::ancpscostweightedmean, assert(), NULL, and SCIP_Real.
Referenced by SCIPgetAvgDPseudocostScore(), and SCIPvarGetAncPseudocost().
| SCIP_Real SCIPhistoryGetPseudocostVariance | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | direction ) |
returns the variance of pseudo costs about the mean.
| history | branching and inference history |
| direction | direction of variable: 1 for upwards history, 0 for downwards history |
Definition at line 557 of file history.c.
References assert(), NULL, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPgetPseudocostVariance(), SCIPprintBranchingStatistics(), and SCIPvarGetPseudocostVariance().
| SCIP_Real SCIPhistoryGetPseudocostCount | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns the (possible fractional) number of (partial) pseudo cost updates performed on this pseudo cost entry in the given branching direction
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 581 of file history.c.
References assert(), NULL, SCIP_History::pscostcount, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPgetAvgPseudocostCount(), SCIPgetAvgPseudocostCountCurrentRun(), SCIPgetPseudocostCount(), SCIPprintBranchingStatistics(), SCIPvarGetPseudocost(), SCIPvarGetPseudocostCount(), SCIPvarGetPseudocostCountCurrentRun(), and SCIPvarGetPseudocostCurrentRun().
| SCIP_Real SCIPhistoryGetAncPseudocostCount | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns the (possible fractional) number of (partial) ancestral pseudo cost updates performed on this pseudo cost entry in the given branching direction
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 596 of file history.c.
References SCIP_History::ancpscostcount, assert(), NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPvarGetAncPseudocost(), and SCIPvarGetAncPseudocostCountCurrentRun().
| SCIP_Bool SCIPhistoryIsPseudocostEmpty | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns whether the pseudo cost entry is empty in the given branching direction (whether no value was added yet)
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 609 of file history.c.
References assert(), NULL, SCIP_History::pscostcount, SCIP_Bool, SCIP_BRANCHDIR_DOWNWARDS, and SCIP_BRANCHDIR_UPWARDS.
| SCIP_Bool SCIPhistoryIsAncPseudocostEmpty | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns whether the ancestral pseudo cost entry is empty in the given branching direction (whether no value was added yet)
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 622 of file history.c.
References SCIP_History::ancpscostcount, assert(), NULL, SCIP_Bool, SCIP_BRANCHDIR_DOWNWARDS, and SCIP_BRANCHDIR_UPWARDS.
| void SCIPhistoryIncVSIDS | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir, | ||
| SCIP_Real | weight ) |
increases the conflict score of the history entry by the given weight
| history | branching and inference history |
| dir | branching direction |
| weight | weight of this update in conflict score |
Definition at line 635 of file history.c.
References assert(), NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_Real, and SCIP_History::vsids.
Referenced by incVSIDS(), incVSIDS(), and SCIPvarIncVSIDS().
| void SCIPhistoryScaleVSIDS | ( | SCIP_HISTORY * | history, |
| SCIP_Real | scalar ) |
scales the conflict score values with the given scalar
| history | branching and inference history |
| scalar | scalar to multiply the conflict scores with |
Definition at line 649 of file history.c.
References assert(), NULL, SCIP_Real, and SCIP_History::vsids.
Referenced by SCIPconflictInit(), SCIPvaluehistoryScaleVSIDS(), and SCIPvarScaleVSIDS().
| void SCIPhistoryIncNActiveConflicts | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir, | ||
| SCIP_Real | length ) |
increases the number of active conflicts by one and the overall length of the history entry by the given weight
| history | branching and inference history |
| dir | branching direction |
| length | length of the conflict |
Definition at line 674 of file history.c.
References assert(), SCIP_History::conflengthsum, SCIP_History::nactiveconflicts, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPvarIncNActiveConflicts(), updateStatistics(), and updateStatistics().
| SCIP_Longint SCIPhistoryGetNActiveConflicts | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
gets the number of active conflicts of the history entry
| history | branching and inference history |
| dir | branching direction |
Definition at line 690 of file history.c.
References assert(), SCIP_History::nactiveconflicts, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Longint.
Referenced by SCIPvarGetNActiveConflicts(), and SCIPvarGetNActiveConflictsCurrentRun().
| void SCIPhistoryIncNBranchings | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir, | ||
| int | depth ) |
increases the number of branchings counter
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
| depth | depth at which the bound change took place |
Definition at line 716 of file history.c.
References assert(), SCIP_History::branchdepthsum, depth, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, and SCIP_BRANCHDIR_UPWARDS.
Referenced by SCIPreoptMergeVarHistory(), and SCIPvarIncNBranchings().
| void SCIPhistoryIncInferenceSum | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir, | ||
| SCIP_Real | weight ) |
increases the number of inferences counter
increases the number of inferences counter by a certain value
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
| weight | weight of this update in inference score |
Definition at line 732 of file history.c.
References assert(), SCIP_History::inferencesum, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPreoptMergeVarHistory(), and SCIPvarIncInferenceSum().
| void SCIPhistoryIncCutoffSum | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir, | ||
| SCIP_Real | weight ) |
increases the number of cutoffs counter
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
| weight | weight of this update in cutoff score |
Definition at line 748 of file history.c.
References assert(), SCIP_History::cutoffsum, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPreoptMergeVarHistory(), and SCIPvarIncCutoffSum().
| SCIP_Longint SCIPhistoryGetNBranchings | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
get number of branchings counter
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 764 of file history.c.
References assert(), SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Longint.
Referenced by SCIPcollectBranchingStatistics(), SCIPprintBranchingStatistics(), SCIPvarGetAvgCutoffs(), SCIPvarGetAvgCutoffsCurrentRun(), SCIPvarGetAvgInferences(), SCIPvarGetAvgInferencesCurrentRun(), SCIPvarGetNBranchings(), and SCIPvarGetNBranchingsCurrentRun().
| SCIP_Real SCIPhistoryGetAvgInferences | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns the average number of inferences per branching
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 790 of file history.c.
References assert(), SCIP_History::inferencesum, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPgetAvgInferences(), SCIPgetAvgInferenceScore(), SCIPgetAvgInferenceScoreCurrentRun(), SCIPgetAvgInferencesCurrentRun(), SCIPgetVarAvgInferenceCutoffScore(), SCIPgetVarAvgInferenceCutoffScoreCurrentRun(), SCIPreoptMergeVarHistory(), SCIPvarGetAvgInferences(), and SCIPvarGetAvgInferencesCurrentRun().
| SCIP_Real SCIPhistoryGetAvgCutoffs | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns the average number of cutoffs per branching
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 816 of file history.c.
References assert(), SCIP_History::cutoffsum, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPgetAvgCutoffs(), SCIPgetAvgCutoffScore(), SCIPgetAvgCutoffScoreCurrentRun(), SCIPgetAvgCutoffsCurrentRun(), SCIPreoptMergeVarHistory(), SCIPvarGetAvgCutoffs(), and SCIPvarGetAvgCutoffsCurrentRun().
| SCIP_Real SCIPhistoryGetAvgBranchdepth | ( | SCIP_HISTORY * | history, |
| SCIP_BRANCHDIR | dir ) |
returns the average depth of bound changes due to branching
| history | branching and inference history |
| dir | branching direction (downwards, or upwards) |
Definition at line 829 of file history.c.
References assert(), SCIP_History::branchdepthsum, SCIP_History::nbranchings, NULL, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, and SCIP_Real.
Referenced by SCIPvarGetAvgBranchdepth(), and SCIPvarGetAvgBranchdepthCurrentRun().
| SCIP_Bool SCIPhistoryIsRatioValid | ( | SCIP_HISTORY * | history | ) |
returns true if the given history contains a valid ratio
| history | branching and inference history |
Definition at line 842 of file history.c.
References assert(), NULL, SCIP_History::ratiovalid, and SCIP_Bool.
Referenced by computeVarRatio().
| SCIP_Real SCIPhistoryGetLastRatio | ( | SCIP_HISTORY * | history | ) |
returns the most recent ratio computed given the variable history
| history | branching and inference history |
Definition at line 852 of file history.c.
References assert(), NULL, SCIP_History::ratio, SCIP_History::ratiovalid, and SCIP_Real.
Referenced by computeVarRatio().
| SCIP_Real SCIPhistoryGetLastBalance | ( | SCIP_HISTORY * | history | ) |
returns the most recent value of r/l used to compute this variable's ratio
| history | branching and inference history |
Definition at line 863 of file history.c.
References assert(), SCIP_History::balance, NULL, SCIP_History::ratiovalid, and SCIP_Real.
Referenced by computeVarRatio().
| SCIP_Real SCIPhistoryGetAvgGMIeff | ( | SCIP_HISTORY * | history | ) |
returns the average efficacy value for the GMI cut produced by this variable
| history | branching and inference history |
Definition at line 874 of file history.c.
References assert(), SCIP_History::gmieffsum, SCIP_History::ngmi, NULL, and SCIP_Real.
Referenced by SCIPgetAvgGMIeff(), and SCIPvarGetAvgGMIScore().
| void SCIPhistoryIncGMIeffSum | ( | SCIP_HISTORY * | history, |
| SCIP_Real | gmieff ) |
increases the average efficacy value for the GMI cut produced by this variable
| history | branching and inference history |
| gmieff | normalized efficacy value of a cut which will increase gmieff |
Definition at line 884 of file history.c.
References assert(), SCIP_History::gmieffsum, SCIP_History::ngmi, NULL, and SCIP_Real.
Referenced by SCIPincAvgGMIeff(), and SCIPvarIncGMIeffSum().
| SCIP_Real SCIPhistoryGetLastGMIeff | ( | SCIP_HISTORY * | history | ) |
returns the most recent efficacy value for the GMI cut produced by this variable
| history | branching and inference history |
Definition at line 897 of file history.c.
References assert(), SCIP_History::gmieff, NULL, and SCIP_Real.
Referenced by SCIPvarGetLastGMIScore().
| void SCIPhistorySetLastGMIeff | ( | SCIP_HISTORY * | history, |
| SCIP_Real | gmieff ) |
sets the new most recent efficacy value for the GMI cut produced by this variable
| history | branching and inference history |
| gmieff | Efficacy of GMI cut produced from simplex tableau row of this var |
Definition at line 907 of file history.c.
References assert(), SCIP_History::gmieff, NULL, and SCIP_Real.
Referenced by SCIPvarSetLastGMIScore().
| void SCIPhistorySetRatioHistory | ( | SCIP_HISTORY * | history, |
| SCIP_Bool | valid, | ||
| SCIP_Real | ratio, | ||
| SCIP_Real | balance ) |
sets the ratio history for a particular variable
| history | branching and inference history |
| valid | True iff the ratio computed is valid |
| ratio | Ratio of the characteristic polynomial with gains (1, rightgain/leftgain) |
| balance | The value of rightgain/leftgain |
Definition at line 918 of file history.c.
References assert(), SCIP_History::balance, NULL, SCIP_History::ratio, SCIP_History::ratiovalid, SCIP_Bool, SCIP_Real, and valid.
Referenced by computeVarRatio().