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