Scippy

SCIP

Solving Constraint Integer Programs

heur_subnlp.c File Reference

Detailed Description

NLP local search primal heuristic using sub-SCIPs.

Author
Stefan Vigerske

Definition in file heur_subnlp.c.

#include <assert.h>
#include <string.h>
#include "scip/heur_subnlp.h"
#include "nlpi/nlpi.h"
#include "scip/cons_linear.h"
#include "scip/cons_varbound.h"
#include "scip/cons_logicor.h"
#include "scip/cons_setppc.h"
#include "scip/cons_knapsack.h"
#include "scip/cons_bounddisjunction.h"

Go to the source code of this file.

Macros

#define HEUR_NAME   "subnlp"
 
#define HEUR_DESC   "primal heuristic that performs a local search in an NLP after fixing integer variables and presolving"
 
#define HEUR_DISPCHAR   'q'
 
#define HEUR_PRIORITY   -2000000
 
#define HEUR_FREQ   1
 
#define HEUR_FREQOFS   0
 
#define HEUR_MAXDEPTH   -1
 
#define HEUR_TIMING   SCIP_HEURTIMING_AFTERNODE
 
#define HEUR_USESSUBSCIP   FALSE
 

Functions

static SCIP_Bool runHeuristic (SCIP *scip)
 
static SCIP_RETCODE createSubSCIP (SCIP *scip, SCIP_HEURDATA *heurdata)
 
static SCIP_RETCODE freeSubSCIP (SCIP *scip, SCIP_HEURDATA *heurdata)
 
static SCIP_DECL_EVENTEXEC (processVarEvent)
 
static SCIP_RETCODE addLinearConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_Bool addcombconss, SCIP_Bool addcontconss)
 
static SCIP_RETCODE addVarboundConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_Bool addcombconss, SCIP_Bool addcontconss)
 
static SCIP_RETCODE addLogicOrConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr)
 
static SCIP_RETCODE addSetppcConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr)
 
static SCIP_RETCODE addKnapsackConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr)
 
static SCIP_RETCODE addLinearConstraintsToNlp (SCIP *scip, SCIP_Bool addcombconss, SCIP_Bool addcontconss)
 
static SCIP_RETCODE createSolFromNLP (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL **sol)
 
static SCIP_RETCODE createSolFromSubScipSol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL **sol, SCIP_SOL *subsol)
 
static SCIP_RETCODE solveSubNLP (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint, SCIP_Longint itercontingent, SCIP_Real timelimit, SCIP_Longint *iterused, SCIP_Bool tighttolerances, SCIP_SOL *resultsol)
 
static SCIP_RETCODE forbidFixation (SCIP *scip, SCIP_HEURDATA *heurdata)
 
SCIP_RETCODE SCIPapplyHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint, SCIP_Longint itercontingent, SCIP_Real timelimit, SCIP_Real minimprove, SCIP_Longint *iterused)
 
SCIP_RETCODE SCIPresolveSolHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Longint itercontingent, SCIP_Real timelimit)
 
static SCIP_DECL_HEURCOPY (heurCopySubNlp)
 
static SCIP_DECL_HEURFREE (heurFreeSubNlp)
 
static SCIP_DECL_HEURINITSOL (heurInitsolSubNlp)
 
static SCIP_DECL_HEUREXITSOL (heurExitsolSubNlp)
 
static SCIP_DECL_HEUREXEC (heurExecSubNlp)
 
SCIP_RETCODE SCIPincludeHeurSubNlp (SCIP *scip)
 
SCIP_RETCODE SCIPaddLinearConsToNlpHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_Bool addcombconss, SCIP_Bool addcontconss)
 
SCIP_RETCODE SCIPupdateStartpointHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *solcand, SCIP_Real violation)
 
SCIPSCIPgetSubScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_VAR ** SCIPgetVarMappingScip2SubScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_VAR ** SCIPgetVarMappingSubScip2ScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_SOLSCIPgetStartCandidateHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 

Macro Definition Documentation

#define HEUR_DESC   "primal heuristic that performs a local search in an NLP after fixing integer variables and presolving"

Definition at line 38 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_DISPCHAR   'q'

Definition at line 39 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_PRIORITY   -2000000

Definition at line 40 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_FREQ   1

Definition at line 41 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_FREQOFS   0

Definition at line 42 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_MAXDEPTH   -1

Definition at line 43 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

#define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance? we set this to FALSE because we want this heuristic to also run within other heuristics

Definition at line 45 of file heur_subnlp.c.

Referenced by SCIPincludeHeurSubNlp().

Function Documentation

static SCIP_Bool runHeuristic ( SCIP scip)
static

indicates whether the heuristic should be running, i.e., whether we expect something nonlinear after fixing all discrete variables

Parameters
scipSCIP data structure

Definition at line 97 of file heur_subnlp.c.

References FALSE, NULL, SCIPgetNNlpis(), SCIPhasNLPContinuousNonlinearity(), SCIPisNLPConstructed(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_HEURINITSOL().

static SCIP_RETCODE freeSubSCIP ( SCIP scip,
SCIP_HEURDATA heurdata 
)
static
static SCIP_DECL_EVENTEXEC ( processVarEvent  )
static
static SCIP_RETCODE addLinearConstraints ( SCIP scip,
SCIP_CONSHDLR conshdlr,
SCIP_Bool  addcombconss,
SCIP_Bool  addcontconss 
)
static

adds linear constraints from a SCIP instance to its NLP

Parameters
scipSCIP data structure
conshdlrconstraint handler for linear constraints
addcombconsswhether to add combinatorial linear constraints to NLP
addcontconsswhether to add continuous linear constraints to NLP

Definition at line 443 of file heur_subnlp.c.

References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPaddNlRow(), SCIPconsGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetNActiveConss(), SCIPconsIsChecked(), SCIPconsIsEnabled(), SCIPcreateNlRow(), SCIPgetLhsLinear(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPisRelLE(), SCIPreleaseNlRow(), SCIPvarGetType(), and TRUE.

Referenced by addLinearConstraintsToNlp().

static SCIP_RETCODE addVarboundConstraints ( SCIP scip,
SCIP_CONSHDLR conshdlr,
SCIP_Bool  addcombconss,
SCIP_Bool  addcontconss 
)
static

adds variable bound constraints from a SCIP instance to its NLP

Parameters
scipSCIP data structure
conshdlrconstraint handler for linear constraints
addcombconsswhether to add combinatorial linear constraints to NLP
addcontconsswhether to add continuous linear constraints to NLP

Definition at line 515 of file heur_subnlp.c.

References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddNlRow(), SCIPconsGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetNActiveConss(), SCIPconsIsChecked(), SCIPconsIsEnabled(), SCIPcreateNlRow(), SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPreleaseNlRow(), and SCIPvarGetType().

Referenced by addLinearConstraintsToNlp().

static SCIP_RETCODE addLogicOrConstraints ( SCIP scip,
SCIP_CONSHDLR conshdlr 
)
static
static SCIP_RETCODE addLinearConstraintsToNlp ( SCIP scip,
SCIP_Bool  addcombconss,
SCIP_Bool  addcontconss 
)
static

adds combinatorial and/or continuous variants of linear constraints from a SCIP instance to its NLP

Parameters
scipSCIP data structure
addcombconsswhether to add combinatorial linear constraints to NLP
addcontconsswhether to add continuous linear constraints to NLP

Definition at line 799 of file heur_subnlp.c.

References addKnapsackConstraints(), addLinearConstraints(), addLogicOrConstraints(), addSetppcConstraints(), addVarboundConstraints(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPfindConshdlr().

Referenced by SCIPaddLinearConsToNlpHeurSubNlp(), and solveSubNLP().

static SCIP_RETCODE createSolFromNLP ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL **  sol 
)
static
Parameters
scipSCIP data structure
heurheuristic data structure
solbuffer to store solution value; if pointing to NULL, then a new solution is created, otherwise values in the given one are overwritten

Definition at line 850 of file heur_subnlp.c.

References NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPcreateSol(), SCIPgetNOrigVars(), SCIPgetOrigVars(), SCIPheurGetData(), SCIPsetSolVal(), SCIPvarGetNLPSol(), and SCIPvarIsActive().

Referenced by solveSubNLP().

static SCIP_RETCODE createSolFromSubScipSol ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL **  sol,
SCIP_SOL subsol 
)
static
Parameters
scipSCIP data structure
heurheuristic data structure
solbuffer to store solution value; if pointing to NULL, then a new solution is created, otherwise values in the given one are overwritten
subsolsolution of sub-SCIP

Definition at line 896 of file heur_subnlp.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateSol(), SCIPgetNOrigVars(), SCIPgetOrigVars(), SCIPgetSolVal(), SCIPheurGetData(), SCIPsetSolVal(), and SCIPvarIsActive().

Referenced by solveSubNLP().

static SCIP_RETCODE solveSubNLP ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_SOL refpoint,
SCIP_Longint  itercontingent,
SCIP_Real  timelimit,
SCIP_Longint iterused,
SCIP_Bool  tighttolerances,
SCIP_SOL resultsol 
)
static
Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultbuffer to store result, DIDNOTFIND, FOUNDSOL, or CUTOFF
refpointpoint to take fixation of discrete variables from, and startpoint for NLP solver; if NULL, then LP solution is used
itercontingentiteration limit for NLP solver, or -1 for default of NLP heuristic
timelimittime limit for NLP solver
iterusedbuffer to store number of iterations used by NLP solver, or NULL if not of interest
tighttoleranceswhether to use tight feasibility tolerances and reduce presolve
resultsola solution where to store found solution values, if any, or NULL if to try adding to SCIP

Definition at line 933 of file heur_subnlp.c.

References addLinearConstraintsToNlp(), createSolFromNLP(), createSolFromSubScipSol(), FALSE, freeSubSCIP(), MAX, MIN, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_ERROR, SCIP_FOUNDSOL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPTERMSTAT_MEMERR, SCIP_OKAY, SCIP_PARAMSETTING_DEFAULT, SCIP_PARAMSETTING_FAST, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIP_STAGE_SOLVED, SCIP_STATUS_BESTSOLLIMIT, SCIP_STATUS_GAPLIMIT, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_MEMLIMIT, SCIP_STATUS_NODELIMIT, SCIP_STATUS_OPTIMAL, SCIP_STATUS_SOLLIMIT, SCIP_STATUS_STALLNODELIMIT, SCIP_STATUS_TIMELIMIT, SCIP_STATUS_TOTALNODELIMIT, SCIP_STATUS_UNBOUNDED, SCIP_STATUS_USERINTERRUPT, SCIP_VERBLEVEL_MINIMAL, SCIPABORT, SCIPallocBufferArray, SCIPcheckSol(), SCIPdebugMessage, SCIPepsilon(), SCIPerrorMessage, SCIPfeastol(), SCIPfreeBufferArray, SCIPfreeSol(), SCIPfreeTransform(), SCIPgetNLPObjval(), SCIPgetNLPSolstat(), SCIPgetNLPStatistics(), SCIPgetNLPTermstat(), SCIPgetNLPVars(), SCIPgetNNLPVars(), SCIPgetNSols(), SCIPgetNVars(), SCIPgetObjlimit(), SCIPgetProbName(), SCIPgetRealParam(), SCIPgetSols(), SCIPgetSolVal(), SCIPgetStage(), SCIPgetStatus(), SCIPheurGetData(), SCIPisLE(), SCIPisNLPConstructed(), SCIPisParamFixed(), SCIPnlpStatisticsGetNIterations(), SCIPnlpStatisticsGetTotalTime(), SCIPpresolve(), SCIPpressedCtrlC(), SCIPresetParam(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetNLPInitialGuess(), SCIPsetNLPIntPar(), SCIPsetNLPRealPar(), SCIPsetNLPStringPar(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsolve(), SCIPsolveNLP(), SCIPtransformProb(), SCIPtrySol(), SCIPtrySolFree(), SCIPvarGetLbGlobal(), SCIPvarGetOrigvarSum(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPverbMessage(), SCIPwarningMessage(), and TRUE.

Referenced by SCIPapplyHeurSubNlp(), and SCIPresolveSolHeurSubNlp().

SCIP_RETCODE SCIPapplyHeurSubNlp ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_SOL refpoint,
SCIP_Longint  itercontingent,
SCIP_Real  timelimit,
SCIP_Real  minimprove,
SCIP_Longint iterused 
)

main procedure of the subNLP heuristic

Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultpointer to store result of: did not run, solution found, no solution found, or fixing is infeasible (cutoff)
refpointpoint to take fixation of discrete variables from, and startpoint for NLP solver; if NULL, then LP solution is used
itercontingentiteration limit for NLP solver, or -1 for default of NLP heuristic
timelimittime limit for NLP solver
minimprovedesired minimal relative improvement in objective function value
iterusedbuffer to store number of iterations used by NLP solver, or NULL if not of interest

Definition at line 1517 of file heur_subnlp.c.

References createSubSCIP(), FALSE, forbidFixation(), freeSubSCIP(), MAX, MIN, NULL, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPchgVarLbGlobal(), SCIPchgVarUbGlobal(), SCIPdebugMessage, SCIPfloor(), SCIPgetLowerbound(), SCIPgetLPSolstat(), SCIPgetNActivePricers(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNSols(), SCIPgetOrigVarsData(), SCIPgetSolVal(), SCIPgetStage(), SCIPgetUpperbound(), SCIPheurGetData(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPisTransformed(), SCIPsetObjlimit(), SCIPsumepsilon(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), and solveSubNLP().

Referenced by SCIP_DECL_HEUREXEC(), and SCIPapplyUndercover().

SCIP_RETCODE SCIPresolveSolHeurSubNlp ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL sol,
SCIP_Bool success,
SCIP_Longint  itercontingent,
SCIP_Real  timelimit 
)

for a given solution, resolves the corresponding subNLP and updates solution values for continuous variables, if NLP solution is feasible in original problem

Parameters
sciporiginal SCIP data structure
heurheuristic data structure
solsolution for which to solve NLP, and where to store resolved solution values
successbuffer where to store whether a feasible solution was found
itercontingentiteration limit for NLP solver, or -1 for default of NLP heuristic
timelimittime limit for NLP solver

Definition at line 1712 of file heur_subnlp.c.

References createSubSCIP(), FALSE, freeSubSCIP(), MAX, MIN, NULL, REALABS, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPchgVarLbGlobal(), SCIPchgVarUbGlobal(), SCIPdebugMessage, SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetObjsense(), SCIPgetOrigVarsData(), SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPgetStage(), SCIPheurGetData(), SCIPisEQ(), SCIPisFeasIntegral(), SCIPisTransformed(), SCIPround(), SCIPsetObjlimit(), SCIPtransformObj(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), solveSubNLP(), and TRUE.

static SCIP_DECL_HEURCOPY ( heurCopySubNlp  )
static

copy method for primal heuristic plugins (called when SCIP copies plugins)

Definition at line 1875 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurSubNlp().

static SCIP_DECL_HEURFREE ( heurFreeSubNlp  )
static

destructor of primal heuristic to free user data (called when SCIP is exiting)

Definition at line 1889 of file heur_subnlp.c.

References NULL, SCIP_OKAY, SCIPfreeMemory, and SCIPheurGetData().

static SCIP_DECL_HEURINITSOL ( heurInitsolSubNlp  )
static

solving process initialization method of primal heuristic (called when branch and bound process is about to begin)

Definition at line 1909 of file heur_subnlp.c.

References createSubSCIP(), HEUR_TIMING, NULL, runHeuristic(), SCIP_CALL, SCIP_HEURTIMING_DURINGLPLOOP, SCIP_OKAY, SCIPheurGetData(), SCIPheurGetFreq(), SCIPheurGetFreqofs(), and SCIPheurSetTimingmask().

static SCIP_DECL_HEUREXITSOL ( heurExitsolSubNlp  )
static

solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)

Definition at line 1943 of file heur_subnlp.c.

References FALSE, freeSubSCIP(), HEUR_TIMING, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeSol(), SCIPheurGetData(), and SCIPheurSetTimingmask().

SCIP_RETCODE SCIPaddLinearConsToNlpHeurSubNlp ( SCIP scip,
SCIP_HEUR heur,
SCIP_Bool  addcombconss,
SCIP_Bool  addcontconss 
)

adds all known linear constraint to the NLP, if initialized and not done already This function is temporary and will hopefully become obsolete in the near future.

Parameters
sciporiginal SCIP data structure
heurheuristic data structure
addcombconsswhether to add combinatorial linear constraints, i.e., linear constraints that involve only discrete variables
addcontconsswhether to add continuous linear constraints, i.e., linear constraints that involve not only discrete variables

Definition at line 2224 of file heur_subnlp.c.

References addLinearConstraintsToNlp(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetData(), and SCIPheurGetName().

Referenced by SCIP_DECL_CONSSEPALP(), and SCIP_DECL_HEURINITSOL().

SCIP_RETCODE SCIPupdateStartpointHeurSubNlp ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL solcand,
SCIP_Real  violation 
)

updates the starting point for the NLP heuristic

Is called by a constraint handler that handles nonlinear constraints when a check on feasibility of a solution fails.

Parameters
scipSCIP data structure
heurNLP heuristic
solcandsolution candidate
violationconstraint violation of solution candidate

Definition at line 2258 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPcreateSolCopy(), SCIPdebugMessage, SCIPfreeSol(), SCIPgetSolTransObj(), SCIPgetStage(), SCIPheurGetData(), SCIPheurGetName(), SCIPisGT(), SCIPisPositive(), SCIPisRelGT(), SCIPsolGetHeur(), and SCIPunlinkSol().

Referenced by SCIP_DECL_CONSCHECK().

SCIP* SCIPgetSubScipHeurSubNlp ( SCIP scip,
SCIP_HEUR heur 
)

gets sub-SCIP used by NLP heuristic, or NULL if none

Parameters
sciporiginal SCIP data structure
heurheuristic data structure

Definition at line 2308 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIPheurGetData(), and SCIPheurGetName().

SCIP_VAR** SCIPgetVarMappingScip2SubScipHeurSubNlp ( SCIP scip,
SCIP_HEUR heur 
)

gets mapping of SCIP variables to sub-SCIP variables

Parameters
sciporiginal SCIP data structure
heurheuristic data structure

Definition at line 2325 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIPheurGetData(), and SCIPheurGetName().

SCIP_VAR** SCIPgetVarMappingSubScip2ScipHeurSubNlp ( SCIP scip,
SCIP_HEUR heur 
)

gets mapping of sub-SCIP variables to SCIP variables

Parameters
sciporiginal SCIP data structure
heurheuristic data structure

Definition at line 2342 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIPheurGetData(), and SCIPheurGetName().

SCIP_SOL* SCIPgetStartCandidateHeurSubNlp ( SCIP scip,
SCIP_HEUR heur 
)

gets startpoint candidate to be used in next call to NLP heuristic, or NULL if none

Parameters
sciporiginal SCIP data structure
heurheuristic data structure

Definition at line 2359 of file heur_subnlp.c.

References HEUR_NAME, NULL, SCIPheurGetData(), and SCIPheurGetName().