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-2018 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 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/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 extern
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 extern
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
enum SCIP_Result SCIP_RESULT
Definition: type_result.h:52
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
type definitions for return codes for SCIP methods
type definitions for SCIP&#39;s main datastructure
type definitions for problem variables
#define SCIP_Bool
Definition: def.h:62
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)
#define SCIP_Real
Definition: def.h:150
result codes for SCIP callback methods
common defines and data types used in all packages of SCIP