Toggle navigation
SCIP Optimization Suite
SCIP
SoPlex
ZIMPL
UG
GCG
Documentation
SCIP 9.2.0
SCIP 8.1.0
SCIP 7.0.3
SCIP 6.0.2
SCIP 5.0.1
SCIP 4.0.1
SCIP 3.2.1
SCIP
Solving Constraint Integer Programs
branch_pscost.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_pscost.h
17
* @ingroup BRANCHINGRULES
18
* @brief pseudo costs branching rule
19
* @author Tobias Achterberg
20
*
21
* The pseudo costs branching rule selects the branching variable with respect to the so-called pseudo costs
22
* of the variables. Pseudo costs measure the average gain per unit in the objective function when the variable
23
* was branched on upwards or downwards, resp. The required information is updated at every node of
24
* the solving process.
25
*
26
* The selected variable maximizes the expected gain of the dual bound in the created subtree.
27
*
28
* For a more mathematical description and a comparison between the pseudo costs branching rule
29
* and other branching rules in SCIP, we refer to
30
*
31
* @par
32
* Tobias Achterberg@n
33
* Constraint Integer Programming@n
34
* PhD Thesis, Technische Universität Berlin, 2007@n
35
*/
36
37
/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
38
39
#ifndef __SCIP_BRANCH_PSCOST_H__
40
#define __SCIP_BRANCH_PSCOST_H__
41
42
43
#include "
scip/scip.h
"
44
45
#ifdef __cplusplus
46
extern
"C"
{
47
#endif
48
49
/** creates the pseudo cost branching rule and includes it in SCIP
50
*
51
* @ingroup BranchingRuleIncludes
52
*/
53
extern
54
SCIP_RETCODE
SCIPincludeBranchrulePscost
(
55
SCIP
*
scip
/**< SCIP data structure */
56
);
57
58
/**@addtogroup BRANCHINGRULES
59
*
60
* @{
61
*/
62
63
/** selects a branching variable, due to pseudo cost, from the given candidate array and returns this variable together
64
* with a branching point */
65
extern
66
SCIP_RETCODE
SCIPselectBranchVarPscost
(
67
SCIP
*
scip
,
/**< SCIP data structure */
68
SCIP_VAR
** branchcands,
/**< branching candidates */
69
SCIP_Real
* branchcandssol,
/**< solution value for the branching candidates */
70
SCIP_Real
* branchcandsscore,
/**< array of candidate scores */
71
int
nbranchcands,
/**< number of branching candidates */
72
SCIP_VAR
** var,
/**< pointer to store the variable to branch on, or NULL if none */
73
SCIP_Real
* brpoint
/**< pointer to store the branching point for the branching variable, will be fractional for a discrete variable */
74
);
75
76
/* @} */
77
78
#ifdef __cplusplus
79
}
80
#endif
81
82
#endif
Scip
Definition:
struct_scip.h:58
SCIP_Var
Definition:
struct_var.h:197
SCIP_RETCODE
enum SCIP_Retcode SCIP_RETCODE
Definition:
type_retcode.h:53
SCIPselectBranchVarPscost
SCIP_RETCODE SCIPselectBranchVarPscost(SCIP *scip, SCIP_VAR **branchcands, SCIP_Real *branchcandssol, SCIP_Real *branchcandsscore, int nbranchcands, SCIP_VAR **var, SCIP_Real *brpoint)
Definition:
branch_pscost.c:806
SCIP_Real
#define SCIP_Real
Definition:
def.h:135
SCIPincludeBranchrulePscost
SCIP_RETCODE SCIPincludeBranchrulePscost(SCIP *scip)
Definition:
branch_pscost.c:745
scip
Definition:
objbranchrule.h:33
scip.h
SCIP callable library.