Scippy

SCIP

Solving Constraint Integer Programs

branch_relpscost.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2017 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 email to scip@zib.de. */
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/scip.h"
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 /** creates the reliable pseudo cost branching rule and includes it in SCIP
53  *
54  * @ingroup BranchingRuleIncludes
55  */
56 extern
58  SCIP* scip /**< SCIP data structure */
59  );
60 
61 /**@addtogroup BRANCHINGRULES
62  *
63  * @{
64  */
65 
66 /** execution reliability pseudo cost branching with the given branching candidates */
67 extern
69  SCIP* scip, /**< SCIP data structure */
70  SCIP_Bool allowaddcons, /**< is the branching rule allowed to add constraints to the current node
71  * in order to cut off the current solution instead of creating a branching? */
72  SCIP_VAR** branchcands, /**< branching candidates */
73  SCIP_Real* branchcandssol, /**< solution value for the branching candidates */
74  SCIP_Real* branchcandsfrac, /**< fractional part of the branching candidates */
75  int nbranchcands, /**< number of branching candidates */
76  SCIP_Bool executebranching, /**< perform a branching step after probing */
77  SCIP_RESULT* result /**< pointer to the result of the execution */
78  );
79 
80 /* @} */
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif
enum SCIP_Result SCIP_RESULT
Definition: type_result.h:52
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
#define SCIP_Bool
Definition: def.h:61
SCIP_RETCODE SCIPincludeBranchruleRelpscost(SCIP *scip)
#define SCIP_Real
Definition: def.h:135
SCIP_RETCODE SCIPexecRelpscostBranching(SCIP *scip, SCIP_Bool allowaddcons, SCIP_VAR **branchcands, SCIP_Real *branchcandssol, SCIP_Real *branchcandsfrac, int nbranchcands, SCIP_Bool executebranching, SCIP_RESULT *result)
SCIP callable library.