1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file struct_history.h 17 * @ingroup INTERNALAPI 18 * @brief datastructures for branching and inference history 19 * @author Tobias Achterberg 20 */ 21 22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 23 24 #ifndef __SCIP_STRUCT_HISTORY_H__ 25 #define __SCIP_STRUCT_HISTORY_H__ 26 27 28 #include "scip/def.h" 29 #include "scip/type_history.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /** branching and inference history information for single variable independent of the domain value */ 36 struct SCIP_History 37 { 38 SCIP_Real pscostcount[2]; /**< nr of (partial) summands in down/upwards pseudo costs (may be fractional) */ 39 SCIP_Real pscostweightedmean[2]; /**< weighted mean of (partial) pseudo cost values for down/upwards branching */ 40 SCIP_Real pscostvariance[2]; /**< weighted variance of (partial) pseudo cost history for down/upwards branching */ 41 SCIP_Real vsids[2]; /**< degree of how often the variable was reason for a conflict */ 42 SCIP_Real conflengthsum[2]; /**< overall length of all active conflicts for which the variable gave reason */ 43 SCIP_Real inferencesum[2]; /**< degree of how often branching on the variable lead to inference of another bound */ 44 SCIP_Real cutoffsum[2]; /**< degree of how often branching on the variable lead to an infeasible sub problem */ 45 SCIP_Real ratio; /**< Most recently computed value of the unpowered ratio (phi^l) in the Treemodel rules */ 46 SCIP_Real balance; /**< Most recently value of r/l used to compute a ratio in the Treemodel rules */ 47 SCIP_Bool ratiovalid; /**< Whether the ratio value is valid for the Treemodel rules */ 48 SCIP_Longint nactiveconflicts[2];/**< number of active conflicts for which the variable gave reason */ 49 SCIP_Longint nbranchings[2]; /**< nr of times, the variable changed its bounds due to branching */ 50 SCIP_Longint branchdepthsum[2]; /**< sum of depth levels, at which the branching bound changes took place */ 51 }; 52 53 /** branching and inference history information for single variable dependent on the domain value */ 54 struct SCIP_ValueHistory 55 { 56 SCIP_HISTORY** histories; /**< branching and inference history information for individual domain values */ 57 SCIP_Real* values; /**< (sorted) array containing the domain values */ 58 int nvalues; /**< number of different domain values */ 59 int sizevalues; /**< size of the both arrays */ 60 }; 61 62 #ifdef __cplusplus 63 } 64 #endif 65 66 #endif 67