Scippy

SCIP

Solving Constraint Integer Programs

heur_rens.h File Reference

Detailed Description

LNS heuristic that finds the optimal rounding to a given point.

Author
Timo Berthold

RENS is a large neighborhood search start heuristic, i.e., unlike other LNS heuristics, it does not need a known feasible solution. It solves a sub-SCIP that is created by fixing variables which take an integral value in a given LP or NLP solution. For the remaining integer variables, the bounds get tightened to the two nearest integral values.

Definition in file heur_rens.h.

#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPincludeHeurRens (SCIP *scip)
 
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)
 

Function Documentation

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 
)

main procedure of the RENS heuristic, creates and solves a sub-SCIP

Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultresult data structure
minfixingrateminimum percentage of integer variables that have to be fixed
minimprovefactor by which RENS should at least improve the incumbent
maxnodesmaximum number of nodes for the subproblem
nstallnodesnumber of stalling nodes for the subproblem
startsolsolution used for fixing values ('l'p relaxation, 'n'lp relaxation)
binaryboundsshould general integers get binary bounds [floor(.),ceil(.)]?
uselprowsshould subproblem be created out of the rows in the LP rows?

Definition at line 405 of file heur_rens.c.

References computeFixingrate(), createNewSol(), createSubproblem(), EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, HEUR_NAME, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_LPSOLVED, SCIP_FOUNDSOL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcatchEvent(), SCIPcopy(), SCIPcopyCuts(), SCIPcopyVars(), SCIPcreate(), SCIPcreateProb(), SCIPdebug, SCIPdebugMessage, SCIPdropEvent(), SCIPerrorMessage, SCIPfindBranchrule(), SCIPfindConshdlr(), SCIPfindNodesel(), SCIPfree(), SCIPfreeBufferArray, SCIPgetBestSol(), SCIPgetLowerbound(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNConss(), SCIPgetNNodes(), SCIPgetNOrigVars(), SCIPgetNSols(), SCIPgetNVars(), SCIPgetPrimalbound(), SCIPgetProbName(), SCIPgetRealParam(), SCIPgetSols(), SCIPgetSolvingTime(), SCIPgetUpperbound(), SCIPgetVarsData(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPheurGetData(), SCIPincludeDefaultPlugins(), SCIPincludeEventhdlrBasic(), SCIPinfinity(), SCIPisInfinity(), SCIPisParamFixed(), SCIPmergeVariableStatistics(), SCIPpresolve(), SCIPprintStatistics(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetObjlimit(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPsnprintf(), SCIPsolGetNodenum(), SCIPsolve(), SCIPstatisticPrintf, SCIPsumepsilon(), SCIPtransformProb(), SCIPwarningMessage(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC().