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-2015 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 extern
55  SCIP* scip /**< SCIP data structure */
56  );
57 
58 /** execution reliability pseudo cost branching with the given branching candidates */
59 extern
61  SCIP* scip, /**< SCIP data structure */
62  SCIP_Bool allowaddcons, /**< is the branching rule allowed to add constraints to the current node
63  * in order to cut off the current solution instead of creating a branching? */
64  SCIP_VAR** branchcands, /**< branching candidates */
65  SCIP_Real* branchcandssol, /**< solution value for the branching candidates */
66  SCIP_Real* branchcandsfrac, /**< fractional part of the branching candidates */
67  int nbranchcands, /**< number of branching candidates */
68  SCIP_Bool executebranching, /**< perform a branching step after probing */
69  SCIP_RESULT* result /**< pointer to the result of the execution */
70  );
71 
72 #ifdef __cplusplus
73 }
74 #endif
75 
76 #endif
enum SCIP_Result SCIP_RESULT
Definition: type_result.h:51
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)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
struct Scip SCIP
Definition: type_scip.h:30
#define SCIP_Bool
Definition: def.h:50
struct SCIP_Var SCIP_VAR
Definition: type_var.h:95
SCIP_RETCODE SCIPincludeBranchruleRelpscost(SCIP *scip)
#define SCIP_Real
Definition: def.h:124
SCIP callable library.