Detailed Description
LNS heuristic that combines the incumbent with the LP optimum.
Definition in file heur_gcgrins.c.
#include <assert.h>
#include <string.h>
#include "heur_gcgrins.h"
#include "gcg.h"
#include "scip/scipdefplugins.h"
#include "scip/cons_linear.h"
Go to the source code of this file.
Data Structures | |
struct | SCIP_HeurData |
Macros | |
#define | HEUR_NAME "gcgrins" |
#define | HEUR_DESC "relaxation induced neighborhood search by Danna, Rothberg, and Le Pape" |
#define | HEUR_DISPCHAR 'N' |
#define | HEUR_PRIORITY -1101000 |
#define | HEUR_FREQ 20 |
#define | HEUR_FREQOFS 5 |
#define | HEUR_MAXDEPTH -1 |
#define | HEUR_TIMING SCIP_HEURTIMING_AFTERNODE |
#define | HEUR_USESSUBSCIP TRUE |
#define | DEFAULT_NODESOFS 500 |
#define | DEFAULT_MAXNODES 5000 |
#define | DEFAULT_MINNODES 500 |
#define | DEFAULT_MINIMPROVE 0.01 |
#define | DEFAULT_MINFIXINGRATE 0.0 |
#define | DEFAULT_NODESQUOT 0.1 |
#define | DEFAULT_NWAITINGNODES 200 |
#define | DEFAULT_USELPROWS FALSE |
#define | DEFAULT_COPYCUTS TRUE |
Functions | |
static SCIP_RETCODE | createSubproblem (SCIP *scip, SCIP *subscip, SCIP_VAR **subvars, SCIP_Real minfixingrate, SCIP_Bool uselprows, SCIP_Real *intfixingrate, SCIP_Real *zerofixingrate, SCIP_Bool *success) |
static SCIP_RETCODE | createNewSol (SCIP *scip, SCIP *subscip, SCIP_VAR **subvars, SCIP_HEUR *heur, SCIP_SOL *subsol, SCIP_Bool *success) |
static | SCIP_DECL_HEURFREE (heurFreeGcgrins) |
static | SCIP_DECL_HEURINIT (heurInitGcgrins) |
static | SCIP_DECL_HEUREXEC (heurExecGcgrins) |
SCIP_RETCODE | SCIPincludeHeurGcgrins (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_NAME
#define HEUR_NAME "gcgrins" |
Definition at line 45 of file heur_gcgrins.c.
◆ HEUR_DESC
#define HEUR_DESC "relaxation induced neighborhood search by Danna, Rothberg, and Le Pape" |
Definition at line 46 of file heur_gcgrins.c.
◆ HEUR_DISPCHAR
#define HEUR_DISPCHAR 'N' |
Definition at line 47 of file heur_gcgrins.c.
◆ HEUR_PRIORITY
#define HEUR_PRIORITY -1101000 |
Definition at line 48 of file heur_gcgrins.c.
◆ HEUR_FREQ
#define HEUR_FREQ 20 |
Definition at line 49 of file heur_gcgrins.c.
◆ HEUR_FREQOFS
#define HEUR_FREQOFS 5 |
Definition at line 50 of file heur_gcgrins.c.
◆ HEUR_MAXDEPTH
#define HEUR_MAXDEPTH -1 |
Definition at line 51 of file heur_gcgrins.c.
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERNODE |
Definition at line 52 of file heur_gcgrins.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP TRUE |
does the heuristic use a secondary SCIP instance?
Definition at line 53 of file heur_gcgrins.c.
◆ DEFAULT_NODESOFS
#define DEFAULT_NODESOFS 500 |
number of nodes added to the contingent of the total nodes
Definition at line 55 of file heur_gcgrins.c.
◆ DEFAULT_MAXNODES
#define DEFAULT_MAXNODES 5000 |
maximum number of nodes to regard in the subproblem
Definition at line 56 of file heur_gcgrins.c.
◆ DEFAULT_MINNODES
#define DEFAULT_MINNODES 500 |
minimum number of nodes to regard in the subproblem
Definition at line 57 of file heur_gcgrins.c.
◆ DEFAULT_MINIMPROVE
#define DEFAULT_MINIMPROVE 0.01 |
factor by which RINS should at least improve the incumbent
Definition at line 58 of file heur_gcgrins.c.
◆ DEFAULT_MINFIXINGRATE
#define DEFAULT_MINFIXINGRATE 0.0 |
minimum percentage of integer variables that have to be fixed
Definition at line 59 of file heur_gcgrins.c.
◆ DEFAULT_NODESQUOT
#define DEFAULT_NODESQUOT 0.1 |
subproblem nodes in relation to nodes of the original problem
Definition at line 60 of file heur_gcgrins.c.
◆ DEFAULT_NWAITINGNODES
#define DEFAULT_NWAITINGNODES 200 |
number of nodes without incumbent change that heuristic should wait
Definition at line 61 of file heur_gcgrins.c.
◆ DEFAULT_USELPROWS
#define DEFAULT_USELPROWS FALSE |
should subproblem be created out of the rows in the LP rows, otherwise, the copy constructors of the constraints handlers are used
Definition at line 62 of file heur_gcgrins.c.
◆ DEFAULT_COPYCUTS
#define DEFAULT_COPYCUTS TRUE |
if DEFAULT_USELPROWS is FALSE, then should all active cuts from the cutpool of the original scip be copied to constraints of the subscip
Definition at line 64 of file heur_gcgrins.c.
Function Documentation
◆ createSubproblem()
|
static |
creates a subproblem for subscip by fixing a number of variables
- Parameters
-
scip original SCIP data structure subscip SCIP data structure for the subproblem subvars the variables of the subproblem minfixingrate percentage of integer variables that have to be fixed uselprows should subproblem be created out of the rows in the LP rows? intfixingrate percentage of integers that get actually fixed zerofixingrate percentage of variables fixed to zero success pointer to store whether the problem was created successfully
Definition at line 106 of file heur_gcgrins.c.
Referenced by SCIP_DECL_HEUREXEC().
◆ createNewSol()
|
static |
creates a new solution for the original problem by copying the solution of the subproblem
- Parameters
-
scip original SCIP data structure subscip SCIP structure of the subproblem subvars the variables of the subproblem heur RINS heuristic structure subsol solution of the subproblem success used to store whether new solution was found or not
Definition at line 243 of file heur_gcgrins.c.
Referenced by SCIP_DECL_HEUREXEC().
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 311 of file heur_gcgrins.c.
◆ SCIP_DECL_HEURINIT()
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 332 of file heur_gcgrins.c.
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 416 of file heur_gcgrins.c.
References createNewSol(), createSubproblem(), and GCGgetMasterprob().
◆ SCIPincludeHeurGcgrins()
SCIP_RETCODE SCIPincludeHeurGcgrins | ( | SCIP * | scip | ) |
creates the GCG RINS primal heuristic and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 739 of file heur_gcgrins.c.
References DEFAULT_COPYCUTS, DEFAULT_MAXNODES, DEFAULT_MINFIXINGRATE, DEFAULT_MINIMPROVE, DEFAULT_MINNODES, DEFAULT_NODESOFS, DEFAULT_NODESQUOT, DEFAULT_NWAITINGNODES, DEFAULT_USELPROWS, HEUR_DESC, HEUR_DISPCHAR, HEUR_FREQ, HEUR_FREQOFS, HEUR_MAXDEPTH, HEUR_NAME, HEUR_PRIORITY, HEUR_TIMING, and HEUR_USESSUBSCIP.
Referenced by SCIPincludeGcgPlugins().