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 branch_relpscost.h 17 * @ingroup BRANCHINGRULES 18 * @brief reliable pseudo costs branching rule 19 * @author Tobias Achterberg 20 * 21 * The reliable pseudo costs branching rule uses the notion of pseudo costs to measure the expected 22 * gain in the dual bound when branching on a particular variable. 23 * The pseudo cost information is collected during the branch-and-bound search in the same manner as for 24 * the pseudo costs branching rule. 25 * 26 * The reliable pseudo costs branching rule, however, uses a limited number of look-ahead LP-iterations 27 * at the beginning of the search in order to obtain better pseudo cost estimates and make branching decisions in a 28 * sense more "reliable" at an early stage of the search, 29 * at the price of a higher computational cost at the beginning of the search. 30 * 31 * For a more mathematical description and a comparison between the reliable pseudo costs rule and other branching rules 32 * in SCIP, we refer to 33 * 34 * @par 35 * Tobias Achterberg@n 36 * Constraint Integer Programming@n 37 * PhD Thesis, Technische Universität Berlin, 2007@n 38 */ 39 40 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 41 42 #ifndef __SCIP_BRANCH_RELPSCOST_H__ 43 #define __SCIP_BRANCH_RELPSCOST_H__ 44 45 46 #include "scip/def.h" 47 #include "scip/type_result.h" 48 #include "scip/type_retcode.h" 49 #include "scip/type_scip.h" 50 #include "scip/type_var.h" 51 52 #ifdef __cplusplus 53 extern "C" { 54 #endif 55 56 /** creates the reliable pseudo cost branching rule and includes it in SCIP 57 * 58 * @ingroup BranchingRuleIncludes 59 */ 60 SCIP_EXPORT 61 SCIP_RETCODE SCIPincludeBranchruleRelpscost( 62 SCIP* scip /**< SCIP data structure */ 63 ); 64 65 /**@addtogroup BRANCHINGRULES 66 * 67 * @{ 68 */ 69 70 /** execution reliability pseudo cost branching with the given branching candidates */ 71 SCIP_EXPORT 72 SCIP_RETCODE SCIPexecRelpscostBranching( 73 SCIP* scip, /**< SCIP data structure */ 74 SCIP_VAR** branchcands, /**< branching candidates */ 75 SCIP_Real* branchcandssol, /**< solution value for the branching candidates */ 76 SCIP_Real* branchcandsfrac, /**< fractional part of the branching candidates */ 77 int nbranchcands, /**< number of branching candidates */ 78 SCIP_Bool executebranching, /**< perform a branching step after probing */ 79 SCIP_RESULT* result /**< pointer to the result of the execution */ 80 ); 81 82 /** @} */ 83 84 #ifdef __cplusplus 85 } 86 #endif 87 88 #endif 89