Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

NLP local search primal heuristic using sub-SCIPs.

Author
Stefan Vigerske

This heuristic applies a NLP local search to a nonlinear CIP after fixing all discrete variables. That is, the CIP is copied, all discrete variables are fixed, presolving is applied, and if the resulting CIP has a nonlinear relaxation, then it is tried to solve this relaxation by an NLP solver. The heuristic only runs if continuous nonlinearities are present (SCIPhasNLPContinuousNonlinearity()).

Fixing values for discrete values are either taken from a solution of the LP relaxation which satisfies all integrality constraints, or are provided by SCIPupdateStartpointHeurSubNlp().

This heuristic is orthogonal to the undercover heuristic (heur_undercover.h), which fixes variables in a nonlinear CIP in a way that a (possibly mixed-integer) linear subproblem is obtained.

Definition in file heur_subnlp.h.

#include "scip/def.h"
#include "scip/type_heur.h"
#include "scip/type_result.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_sol.h"
#include "scip/type_var.h"

Go to the source code of this file.

Functions

SCIP_EXPORT SCIP_RETCODE SCIPincludeHeurSubNlp (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPupdateStartpointHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *solcand, SCIP_Real violation)
 
SCIP_EXPORT 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_SOL *resultsol)
 
SCIP_EXPORT SCIP_RETCODE SCIPresolveSolHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Longint itercontingent, SCIP_Real timelimit)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddLinearConsToNlpHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_Bool addcombconss, SCIP_Bool addcontconss)
 
SCIP_EXPORT SCIPSCIPgetSubScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_EXPORT SCIP_VAR ** SCIPgetVarMappingScip2SubScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_EXPORT SCIP_VAR ** SCIPgetVarMappingSubScip2ScipHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_EXPORT SCIP_SOLSCIPgetStartCandidateHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)