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
heur_rens.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 heur_rens.h
17
* @ingroup PRIMALHEURISTICS
18
* @brief LNS heuristic that finds the optimal rounding to a given point
19
* @author Timo Berthold
20
*
21
* RENS is a large neighborhood search start heuristic, i.e., unlike other LNS heuristics, it does not need a known
22
* feasible solution. It solves a sub-SCIP that is created by fixing variables which take an integral value in a given
23
* LP or NLP solution. For the remaining integer variables, the bounds get tightened to the two nearest integral values.
24
*/
25
26
/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
27
28
#ifndef __SCIP_HEUR_RENS_H__
29
#define __SCIP_HEUR_RENS_H__
30
31
#include "
scip/scip.h
"
32
33
#ifdef __cplusplus
34
extern
"C"
{
35
#endif
36
37
/** creates RENS primal heuristic and includes it in SCIP
38
*
39
* @ingroup PrimalHeuristicIncludes
40
*/
41
extern
42
SCIP_RETCODE
SCIPincludeHeurRens
(
43
SCIP
*
scip
/**< SCIP data structure */
44
);
45
46
/**@addtogroup PRIMALHEURISTICS
47
*
48
* @{
49
*/
50
51
/** main procedure of the RNS heuristic, creates and solves a sub-SCIP */
52
extern
53
SCIP_RETCODE
SCIPapplyRens
(
54
SCIP
*
scip
,
/**< original SCIP data structure */
55
SCIP_HEUR
* heur,
/**< heuristic data structure */
56
SCIP_RESULT
* result,
/**< result data structure */
57
SCIP_Real
minfixingrate,
/**< minimum percentage of integer variables that have to be fixed */
58
SCIP_Real
minimprove,
/**< factor by which RENS should at least improve the incumbent */
59
SCIP_Longint
maxnodes,
/**< maximum number of nodes for the subproblem */
60
SCIP_Longint
nstallnodes,
/**< number of stalling nodes for the subproblem */
61
char
startsol,
/**< solution used for fixing values ('l'p relaxation, 'n'lp relaxation) */
62
SCIP_Bool
binarybounds,
/**< should general integers get binary bounds [floor(.),ceil(.)]? */
63
SCIP_Bool
uselprows
/**< should subproblem be created out of the rows in the LP rows? */
64
);
65
66
/* @} */
67
68
#ifdef __cplusplus
69
}
70
#endif
71
72
#endif
SCIP_RESULT
enum SCIP_Result SCIP_RESULT
Definition:
type_result.h:52
Scip
Definition:
struct_scip.h:58
SCIPapplyRens
SCIP_RETCODE SCIPapplyRens(SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_Real minfixingrate, SCIP_Real minimprove, SCIP_Longint maxnodes, SCIP_Longint nstallnodes, char startsol, SCIP_Bool binarybounds, SCIP_Bool uselprows)
Definition:
heur_rens.c:362
SCIP_RETCODE
enum SCIP_Retcode SCIP_RETCODE
Definition:
type_retcode.h:53
SCIPincludeHeurRens
SCIP_RETCODE SCIPincludeHeurRens(SCIP *scip)
Definition:
heur_rens.c:808
SCIP_Heur
Definition:
struct_heur.h:79
SCIP_Bool
#define SCIP_Bool
Definition:
def.h:61
SCIP_Real
#define SCIP_Real
Definition:
def.h:135
SCIP_Longint
#define SCIP_Longint
Definition:
def.h:120
scip
Definition:
objbranchrule.h:33
scip.h
SCIP callable library.