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
presol_dualagg.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 email to scip@zib.de. */
13
/* */
14
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16
/**@file presol_dualagg.h
17
* @ingroup PRESOLVERS
18
* @brief aggregate variables by dual arguments
19
* @author Dieter Weninger
20
*
21
* This presolver looks for variables which could not be handled by
22
* duality fixing because of one up-/downlock.
23
* If the constraint which delivers the up-/downlock has
24
* a specific structure, we can aggregate the corresponding variable.
25
*
26
* In more detail (for a minimization problem and the case of only one uplock):
27
*
28
* Given a variable \f$x_i\f$ with \f$c_i \leq 0\f$ and only one up lock (originating from a constraint c),
29
* we are looking for a binary variable \f$x_j\f$ such that:
30
* 1. if \f$x_j = 0\f$, constraint c can only be fulfilled for \f$x_i = lb_i\f$, and
31
* 2. if \f$x_j = 1\f$, constraint c becomes redundant and \f$x_i\f$ can be dual-fixed to its upper bound \f$ub_i\f$
32
* (or vice versa). Then we can perform the following aggregation: \f$x_i = lb_i + x_j (ub_i - lb_i)\f$.
33
*
34
* Similar arguments apply for the case of only one down lock and \f$c_i \geq 0\f$.
35
*/
36
37
/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
38
39
#ifndef __SCIP_PRESOL_DUALAGG_H__
40
#define __SCIP_PRESOL_DUALAGG_H__
41
42
43
#include "
scip/scip.h
"
44
45
#ifdef __cplusplus
46
extern
"C"
{
47
#endif
48
49
/** creates the dualagg presolver and includes it in SCIP
50
*
51
* @ingroup PresolverIncludes
52
*/
53
extern
54
SCIP_RETCODE
SCIPincludePresolDualagg
(
55
SCIP
*
scip
/**< SCIP data structure */
56
);
57
58
#ifdef __cplusplus
59
}
60
#endif
61
62
#endif
Scip
Definition:
struct_scip.h:58
SCIP_RETCODE
enum SCIP_Retcode SCIP_RETCODE
Definition:
type_retcode.h:53
SCIPincludePresolDualagg
SCIP_RETCODE SCIPincludePresolDualagg(SCIP *scip)
Definition:
presol_dualagg.c:591
scip
Definition:
objbranchrule.h:33
scip.h
SCIP callable library.