Scippy

SCIP

Solving Constraint Integer Programs

sepa_cmir.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 sepa_cmir.h
17  * @ingroup SEPARATORS
18  * @brief complemented mixed integer rounding cuts separator (Marchand's version)
19  * @author Kati Wolter
20  * @author Tobias Achterberg
21  */
22 
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
24 
25 #ifndef __SCIP_SEPA_CMIR_H__
26 #define __SCIP_SEPA_CMIR_H__
27 
28 
29 #include "scip/scip.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /**@addtogroup SEPARATORS
36  *
37  * @{
38  */
39 
40 /** Performs the cut generation heuristic of the c-MIR separation algorithm, i.e., tries to generate a c-MIR cut which is
41  * valid for the mixed knapsack set corresponding to the current aggregated constraint. Cuts will only be added here if
42  * no pointer to store best scaling factor delta is given.
43  */
44 extern
46  SCIP* scip, /**< SCIP data structure */
47  SCIP_SEPA* sepa, /**< separator */
48  SCIP_SOL* sol, /**< the solution that should be separated, or NULL for LP solution */
49  SCIP_Real* varsolvals, /**< LP solution value of all variables in LP */
50  int maxtestdelta, /**< maximal number of different deltas to try (-1: unlimited) */
51  SCIP_Real* rowweights, /**< weight of rows in aggregated row */
52  SCIP_Real maxweight, /**< largest magnitude of weights; set to -1.0 if sparsity information is
53  * unknown */
54  int* weightinds, /**< sparsity pattern of weights; size nrowinds; NULL if sparsity info is
55  * unknown */
56  int nweightinds, /**< number of nonzeros in weights; -1 if rowinds is NULL */
57  int rowlensum, /**< total number of non-zeros in used rows (row associated with nonzero weight coefficient); -1 if unknown */
58  SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
59  SCIP_Bool usevbds, /**< should variable bounds be used in bound transformation? */
60  SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
61  SCIP_Bool fixintegralrhs, /**< should complementation tried to be adjusted such that rhs gets fractional? */
62  int maxmksetcoefs, /**< maximal number of nonzeros allowed in aggregated base inequality */
63  SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
64  SCIP_Real minfrac, /**< minimal fractionality of rhs to produce MIR cut for */
65  SCIP_Real maxfrac, /**< maximal fractionality of rhs to produce MIR cut for */
66  SCIP_Bool trynegscaling, /**< should negative values also be tested in scaling? */
67  SCIP_Bool cutremovable, /**< should the cut be removed from the LP due to aging or cleanup? */
68  const char* cutclassname, /**< name of cut class to use for row names */
69  SCIP_Bool* cutoff, /**< whether a cutoff has been detected */
70  int* ncuts, /**< pointer to count the number of generated cuts */
71  SCIP_Real* delta, /**< pointer to store best delta found; NULL, if cut should be added here */
72  SCIP_Bool* deltavalid /**< pointer to store whether best delta value is valid or NULL */
73  );
74 
75 /* @} */
76 
77 /** creates the cmir separator and includes it in SCIP
78  *
79  * @ingroup SeparatorIncludes
80  */
81 extern
83  SCIP* scip /**< SCIP data structure */
84  );
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif
SCIP_RETCODE SCIPincludeSepaCmir(SCIP *scip)
Definition: sepa_cmir.c:1609
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
#define SCIP_Bool
Definition: def.h:61
SCIP_RETCODE SCIPcutGenerationHeuristicCmir(SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_Real *varsolvals, int maxtestdelta, SCIP_Real *rowweights, SCIP_Real maxweight, int *weightinds, int nweightinds, int rowlensum, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Bool fixintegralrhs, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Bool trynegscaling, SCIP_Bool cutremovable, const char *cutclassname, SCIP_Bool *cutoff, int *ncuts, SCIP_Real *delta, SCIP_Bool *deltavalid)
Definition: sepa_cmir.c:428
#define SCIP_Real
Definition: def.h:135
SCIP callable library.