Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods and files provided by the default primal heuristics of SCIP

A detailed description what a primal heuristic does and how to add a primal heuristic to SCIP can be found here.

Modules

 Inclusion methods
 methods to include specific primal heuristics into SCIP
 

Functions

SCIP_EXPORT SCIP_RETCODE SCIPapplyHeurDualval (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint)
 
SCIP_EXPORT SCIP_RETCODE SCIPheurPassIndicator (SCIP *scip, SCIP_HEUR *heur, int nindconss, SCIP_CONS **indconss, SCIP_Bool *solcand, SCIP_Real obj)
 
SCIP_EXPORT SCIP_RETCODE SCIPapplyProximity (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_Real minimprove, SCIP_Longint nnodes, SCIP_Longint nlpiters, SCIP_Longint *nusednodes, SCIP_Longint *nusedlpiters, SCIP_Bool freesubscip)
 
SCIP_EXPORT SCIP_RETCODE SCIPdeleteSubproblemProximity (SCIP *scip)
 
SCIP_EXPORT 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)
 
SCIP_EXPORT int SCIPreoptsolsGetNCheckedsols (SCIP *scip)
 
SCIP_EXPORT int SCIPreoptsolsGetNImprovingsols (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)
 
SCIP_EXPORT SCIP_RETCODE SCIPheurSyncPassSol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
SCIP_EXPORT SCIP_RETCODE SCIPheurPassSolTrySol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
SCIP_EXPORT SCIP_RETCODE SCIPheurPassSolAddSol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
SCIP_EXPORT SCIP_RETCODE SCIPcomputeCoverUndercover (SCIP *scip, int *coversize, SCIP_VAR **cover, SCIP_Real timelimit, SCIP_Real memorylimit, SCIP_Real objlimit, SCIP_Bool globalbounds, SCIP_Bool onlyconvexify, SCIP_Bool coverbd, char coveringobj, SCIP_Bool *success)
 
SCIP_EXPORT SCIP_RETCODE SCIPapplyZeroobj (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_Real minimprove, SCIP_Longint nnodes)
 

Files

file  heur_actconsdiving.h
 LP diving heuristic that chooses fixings w.r.t. the active constraints the variable appear in.
 
file  heur_adaptivediving.h
 diving heuristic that selects adaptively between the existing, public dive sets
 
file  heur_alns.h
 Adaptive large neighborhood search heuristic that orchestrates popular LNS heuristics.
 
file  heur_bound.h
 heuristic which fixes all integer variables to a bound (lower/upper) and solves the remaining LP
 
file  heur_clique.h
 LNS heuristic using a clique partition to restrict the search neighborhood.
 
file  heur_coefdiving.h
 LP diving heuristic that chooses fixings w.r.t. the matrix coefficients.
 
file  heur_completesol.h
 primal heuristic trying to complete given partial solutions
 
file  heur_conflictdiving.h
 LP diving heuristic that chooses fixings w.r.t. conflict locks.
 
file  heur_crossover.h
 LNS heuristic that tries to combine several feasible solutions.
 
file  heur_dins.h
 DINS primal heuristic.
 
file  heur_distributiondiving.h
 Diving heuristic that chooses fixings w.r.t. changes in the solution density after Pryor and Chinneck.
 
file  heur_dualval.h
 primal heuristic that uses dualvalues for successive switching variable values
 
file  heur_farkasdiving.h
 LP diving heuristic that tries to construct a Farkas-proof.
 
file  heur_feaspump.h
 Objective Feasibility Pump 2.0.
 
file  heur_fixandinfer.h
 fix-and-infer primal heuristic
 
file  heur_fracdiving.h
 LP diving heuristic that chooses fixings w.r.t. the fractionalities.
 
file  heur_gins.h
 LNS heuristic that tries to delimit the search region to a neighborhood in the constraint graph.
 
file  heur_guideddiving.h
 LP diving heuristic that chooses fixings in direction of incumbent solutions.
 
file  heur_indicator.h
 handle partial solutions for linear problems with indicators and otherwise continuous variables
 
file  heur_intdiving.h
 LP diving heuristic that fixes variables with integral LP value.
 
file  heur_intshifting.h
 LP rounding heuristic that tries to recover from intermediate infeasibilities, shifts integer variables, and solves a final LP to calculate feasible values for continuous variables.
 
file  heur_linesearchdiving.h
 LP diving heuristic that fixes variables with a large difference to their root solution.
 
file  heur_localbranching.h
 Local branching heuristic according to Fischetti and Lodi.
 
file  heur_locks.h
 locks primal heuristic
 
file  heur_lpface.h
 LNS heuristic that tries to compute integral solution on optimal LP face.
 
file  heur_mpec.h
 mpec primal heuristic
 
file  heur_multistart.h
 multistart heuristic for convex and nonconvex MINLPs
 
file  heur_mutation.h
 LNS heuristic that tries to randomly mutate the incumbent solution.
 
file  heur_nlpdiving.h
 NLP diving heuristic that chooses fixings w.r.t. the fractionalities.
 
file  heur_objpscostdiving.h
 LP diving heuristic that changes variable's objective value instead of bounds, using pseudo cost values as guide.
 
file  heur_octane.h
 octane primal heuristic based on Balas, Ceria, Dawande, Margot, and Pataki
 
file  heur_ofins.h
 OFINS - Objective Function Induced Neighborhood Search - a primal heuristic for reoptimization.
 
file  heur_oneopt.h
 Improvement heuristic that alters single variable values.
 
file  heur_padm.h
 PADM primal heuristic based on ideas published in the paper "A Decomposition Heuristic for Mixed-Integer Supply Chain Problems" by Martin Schmidt, Lars Schewe, and Dieter Weninger.
 
file  heur_proximity.h
 improvement heuristic which uses an auxiliary objective instead of the original objective function which is itself added as a constraint to a sub-SCIP instance. The heuristic was presented by Matteo Fischetti and Michele Monaci
 
file  heur_pscostdiving.h
 LP diving heuristic that chooses fixings w.r.t. the pseudo cost values.
 
file  heur_randrounding.h
 randomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree
 
file  heur_rens.h
 LNS heuristic that finds the optimal rounding to a given point.
 
file  heur_reoptsols.h
 reoptsols primal heuristic
 
file  heur_repair.h
 repair primal heuristic
 
file  heur_rins.h
 LNS heuristic that combines the incumbent with the LP optimum.
 
file  heur_rootsoldiving.h
 LP diving heuristic that changes variables' objective values using root LP solution as guide.
 
file  heur_rounding.h
 LP rounding heuristic that tries to recover from intermediate infeasibilities.
 
file  heur_shiftandpropagate.h
 preroot heuristic that alternatingly fixes variables and propagates domains
 
file  heur_shifting.h
 LP rounding heuristic that tries to recover from intermediate infeasibilities and shifts continuous variables.
 
file  heur_simplerounding.h
 Simple and fast LP rounding heuristic.
 
file  heur_subnlp.h
 NLP local search primal heuristic using sub-SCIPs.
 
file  heur_sync.h
 primal heuristic that adds given solutions
 
file  heur_trivial.h
 trivial primal heuristic
 
file  heur_trivialnegation.h
 trivialnegation primal heuristic
 
file  heur_trustregion.h
 Large neighborhood search heuristic for Benders' decomposition based on trust region methods.
 
file  heur_trysol.h
 primal heuristic that tries a given solution
 
file  heur_twoopt.h
 Primal heuristic to improve incumbent solution by flipping pairs of variables.
 
file  heur_undercover.h
 Undercover primal heuristic for MINLPs.
 
file  heur_vbounds.h
 LNS heuristic uses the variable lower and upper bounds to determine the search neighborhood.
 
file  heur_veclendiving.h
 LP diving heuristic that rounds variables with long column vectors.
 
file  heur_zeroobj.h
 heuristic that tries to solve the problem without objective. In Gurobi, this heuristic is known as "Hail Mary"
 
file  heur_zirounding.h
 ZI Round primal heuristic.
 
file  heur_cycgreedy.h
 Greedy primal heuristic. States are assigned to clusters iteratively. At each iteration all possible assignments are computed and the one with the best change in objective value is selected.
 
file  heur_cyckerlin.h
 Improvement heuristic that trades bin-variables between clusters.
 
file  heur_fuzzyround.h
 primal heuristic that constructs a feasible solution from the lp-relaxation. Round only on the state-variables (binvars) and then reconstruct the rest of the variables accordingly.
 
file  heur_redsize.h
 primal heuristic that solves the problem with a sparser matrix as a submip
 
file  heur_ascendprune.h
 reduction and dual-cost based primal heuristic for Steiner problems
 
file  heur_prune.h
 reduction-based primal heuristic for Steiner problems
 
file  heur_slackprune.h
 dual-ascent and reduction based primal heuristic for Steiner problems
 
file  heur_listscheduling.c
 scheduling specific primal heuristic which is based on bidirectional serial generation scheme.
 
file  heur_optcumulative.h
 heuristic for cumulative scheduling with optional activities
 

Function Documentation

◆ SCIPapplyHeurDualval()

SCIP_EXPORT SCIP_RETCODE SCIPapplyHeurDualval ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_SOL refpoint 
)

main procedure of the dualval 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; if NULL, then LP solution is used

Definition at line 2021 of file heur_dualval.c.

References addLinearConstraintsToNlp(), bound, computeRanks(), createSolFromNLP(), createSubSCIP(), FALSE, fixDiscreteVars(), freeMemory(), MAX, maximalslack(), NULL, REALABS, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_NLPPAR_VERBLEVEL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_OPTIMAL, SCIP_VERBLEVEL_HIGH, SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPapplyHeurDualval(), SCIPchgRhsLinear(), SCIPchgVarLbGlobal(), SCIPchgVarUbGlobal(), SCIPconsGetHdlr(), SCIPdebugMsg, SCIPfindConshdlr(), SCIPfreeBlockMemoryArray, SCIPfreeBufferArray, SCIPfreeSol(), SCIPfreeTransform(), SCIPgetBestSol(), SCIPgetGap(), SCIPgetNLPBranchCands(), SCIPgetNLPSolstat(), SCIPgetNLPVars(), SCIPgetNNlpis(), SCIPgetNNLPVars(), SCIPgetNOrigConss(), SCIPgetNPseudoBranchCands(), SCIPgetOrigConss(), SCIPgetOrigVars(), SCIPgetOrigVarsData(), SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPgetStatus(), SCIPgetTransformedCons(), SCIPgetUpperbound(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPhashmapRemove(), SCIPhashmapRemoveAll(), SCIPheurGetData(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFeasLE(), SCIPisGE(), SCIPisInfinity(), SCIPisNLPConstructed(), SCIPisTransformed(), SCIPnlrowGetDualsol(), SCIPpresolve(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetNLPInitialGuess(), SCIPsetNLPIntPar(), SCIPsetSolVal(), SCIPsolve(), SCIPsolveNLP(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetOrigvarSum(), SCIPvarGetTransVar(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarIsNegated(), SCIPverbMessage(), storeSolution(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC(), and SCIPapplyHeurDualval().

◆ SCIPheurPassIndicator()

SCIP_EXPORT SCIP_RETCODE SCIPheurPassIndicator ( SCIP scip,
SCIP_HEUR heur,
int  nindconss,
SCIP_CONS **  indconss,
SCIP_Bool solcand,
SCIP_Real  obj 
)

pass partial solution for indicator variables to heuristic

Parameters
scipSCIP data structure
heurindicator heuristic
nindconssnumber of indicator constraints
indconssindicator constraints
solcandvalues for indicator variables in partial solution
objobjective of solution

Definition at line 587 of file heur_indicator.c.

References BMScopyMemoryArray, HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPduplicateBlockMemoryArray, SCIPfreeBlockMemoryArray, SCIPheurGetData(), and SCIPheurGetName().

Referenced by extendToCover().

◆ SCIPapplyProximity()

SCIP_EXPORT SCIP_RETCODE SCIPapplyProximity ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_Real  minimprove,
SCIP_Longint  nnodes,
SCIP_Longint  nlpiters,
SCIP_Longint nusednodes,
SCIP_Longint nusedlpiters,
SCIP_Bool  freesubscip 
)

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

Note
the method can be applied in an iterative way, keeping the same subscip in between. If the freesubscip parameter is set to FALSE, the heuristic will keep the subscip data structures. Always set this parameter to TRUE, or call SCIPdeleteSubproblemProximity() afterwards

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

Note
The method can be applied in an iterative way, keeping the same subscip in between. If the freesubscip parameter is set to FALSE, the heuristic will keep the subscip data structures. Always set this parameter to TRUE, or call SCIPdeleteSubproblemProximity() afterwards.
Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultresult data structure
minimprovefactor by which proximity should at least improve the incumbent
nnodesnode limit for the subproblem
nlpitersLP iteration limit for the subproblem
nusednodespointer to store number of used nodes in subscip
nusedlpiterspointer to store number of used LP iterations in subscip
freesubscipshould the created sub-MIP be freed at the end of the method?

Definition at line 669 of file heur_proximity.c.

References createNewSol(), deleteSubproblem(), EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, HEUR_NAME, MAX, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_CALL_ABORT, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_NODESOLVED, SCIP_FOUNDSOL, SCIP_Longint, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIPaddCoefLinear(), SCIPaddCons(), SCIPallocBlockMemoryArray, SCIPblkmem(), SCIPcatchEvent(), SCIPcheckCopyLimits(), SCIPchgRhsLinear(), SCIPchgVarLbGlobal(), SCIPchgVarObj(), SCIPchgVarUbGlobal(), SCIPcopyLargeNeighborhoodSearch(), SCIPcopyLimits(), SCIPcreate(), SCIPcreateConsBasicLinear(), SCIPdebug, SCIPdebugMsg, SCIPdropEvent(), SCIPerrorMessage, SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeastol(), SCIPfindEventhdlr(), SCIPfreeTransform(), SCIPgetBestSol(), SCIPgetGap(), SCIPgetLowerbound(), SCIPgetNBinVars(), SCIPgetNFixedVars(), SCIPgetNLPIterations(), SCIPgetNNodes(), SCIPgetNRootLPIterations(), SCIPgetNSols(), SCIPgetNSolsFound(), SCIPgetPresolvingTime(), SCIPgetPrimalbound(), SCIPgetRhsLinear(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetSolvingTime(), SCIPgetVarsData(), SCIPhashmapCreate(), SCIPhashmapGetImage(), SCIPheurGetData(), SCIPheurGetName(), SCIPincludeEventhdlrBasic(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasIntegral(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisObjIntegral(), SCIPisZero(), SCIPpresolve(), SCIPprintStatistics(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsolGetHeur(), SCIPsolGetIndex(), SCIPsolGetNodenum(), SCIPsolIsOriginal(), SCIPsolve(), SCIPstatisticMessage, SCIPtransformProb(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), setupSubproblem(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPdeleteSubproblemProximity()

SCIP_EXPORT SCIP_RETCODE SCIPdeleteSubproblemProximity ( SCIP scip)

frees the sub-MIP created by proximity

Parameters
scipSCIP data structure

Definition at line 642 of file heur_proximity.c.

References deleteSubproblem(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfindHeur(), and SCIPheurGetData().

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPapplyRens()

SCIP_EXPORT 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 RNS heuristic, creates and solves a sub-SCIP

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 611 of file heur_rens.c.

References computeFixingrate(), NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcheckCopyLimits(), SCIPcreate(), SCIPfree(), SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPstatisticPrintf, and setupAndSolveSubscip().

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPreoptsolsGetNCheckedsols()

SCIP_EXPORT int SCIPreoptsolsGetNCheckedsols ( SCIP scip)

Definition at line 302 of file heur_reoptsols.c.

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

◆ SCIPreoptsolsGetNImprovingsols()

SCIP_EXPORT int SCIPreoptsolsGetNImprovingsols ( SCIP scip)

Definition at line 321 of file heur_reoptsols.c.

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

◆ SCIPupdateStartpointHeurSubNlp()

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

updates the starting point for the NLP heuristic

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

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 2501 of file heur_subnlp.c.

References HEUR_NAME, NULL, runHeuristic(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPcreateSolCopy(), SCIPdebugMsg, SCIPfreeSol(), SCIPgetSolHeur(), SCIPgetSolTransObj(), SCIPgetStage(), SCIPheurGetData(), SCIPheurGetFreq(), SCIPheurGetName(), SCIPisPositive(), SCIPisRelGT(), SCIPsolGetHeur(), SCIPsolSetHeur(), and SCIPunlinkSol().

Referenced by SCIP_DECL_CONSCHECK().

◆ SCIPapplyHeurSubNlp()

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 
)

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
resultsola solution where to store found solution values, if any, or NULL if to try adding to SCIP

Definition at line 1750 of file heur_subnlp.c.

References createSubSCIP(), FALSE, forbidFixation(), freeSubSCIP(), MAX, NULL, REALABS, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPchgVarLbGlobal(), SCIPchgVarUbGlobal(), SCIPdebugMsg, 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 heurExec(), SCIP_DECL_HEUREXEC(), SCIPapplyUndercover(), and solveNLP().

◆ SCIPresolveSolHeurSubNlp()

SCIP_EXPORT 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 1948 of file heur_subnlp.c.

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

◆ SCIPaddLinearConsToNlpHeurSubNlp()

SCIP_EXPORT 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 2467 of file heur_subnlp.c.

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

Referenced by SCIP_DECL_CONSSEPALP().

◆ SCIPgetSubScipHeurSubNlp()

SCIP_EXPORT 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 2556 of file heur_subnlp.c.

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

◆ SCIPgetVarMappingScip2SubScipHeurSubNlp()

SCIP_EXPORT 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 2574 of file heur_subnlp.c.

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

◆ SCIPgetVarMappingSubScip2ScipHeurSubNlp()

SCIP_EXPORT 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 2592 of file heur_subnlp.c.

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

◆ SCIPgetStartCandidateHeurSubNlp()

SCIP_EXPORT 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 2610 of file heur_subnlp.c.

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

◆ SCIPheurSyncPassSol()

SCIP_EXPORT SCIP_RETCODE SCIPheurSyncPassSol ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL sol 
)

pass solution to sync heuristic

Parameters
scipSCIP data structure
heursync heuristic
solsolution to be passed

Definition at line 181 of file heur_sync.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPfreeSol(), SCIPgetSolTransObj(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurSetFreq(), and SCIPsolSetHeur().

Referenced by SCIPaddConcurrentSol().

◆ SCIPheurPassSolTrySol()

SCIP_EXPORT SCIP_RETCODE SCIPheurPassSolTrySol ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL sol 
)

◆ SCIPheurPassSolAddSol()

SCIP_EXPORT SCIP_RETCODE SCIPheurPassSolAddSol ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL sol 
)

pass solution to trysol heuristic which just gets added (without checking feasibility

Parameters
scipSCIP data structure
heurtrysol heuristic
solsolution to be passed

Definition at line 284 of file heur_trysol.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OBJSENSE_MAXIMIZE, SCIP_OKAY, SCIPcreateSolCopy(), SCIPdebugMsg, SCIPfreeSol(), SCIPgetObjsense(), SCIPgetSolOrigObj(), SCIPheurGetData(), SCIPheurGetName(), SCIPisGT(), SCIPisLT(), SCIPsolSetHeur(), and SCIPunlinkSol().

Referenced by checkSystemGF2(), and constructValidSolution().

◆ SCIPcomputeCoverUndercover()

SCIP_EXPORT SCIP_RETCODE SCIPcomputeCoverUndercover ( SCIP scip,
int *  coversize,
SCIP_VAR **  cover,
SCIP_Real  timelimit,
SCIP_Real  memorylimit,
SCIP_Real  objlimit,
SCIP_Bool  globalbounds,
SCIP_Bool  onlyconvexify,
SCIP_Bool  coverbd,
char  coveringobj,
SCIP_Bool success 
)

computes a minimal set of covering variables

Parameters
scipSCIP data structure
coversizebuffer for the size of the computed cover
coverpointer to store the variables (of the original SCIP) in the computed cover (should be ready to hold SCIPgetNVars(scip) entries)
timelimittime limit
memorylimitmemory limit
objlimitobjective limit: upper bound on coversize
globalboundsshould global bounds on variables be used instead of local bounds at focus node?
onlyconvexifyshould we only fix/dom.red. variables creating nonconvexity?
coverbdshould bounddisjunction constraints be covered (or just copied)?
coveringobjobjective function of the covering problem ('b'ranching status, influenced nonlinear 'c'onstraints/'t'erms, 'd'omain size, 'l'ocks, 'm'in of up/down locks, 'u'nit penalties, constraint 'v'iolation)
successfeasible cover found?

Definition at line 3628 of file heur_undercover.c.

References computeCoverUndercover(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreate(), and SCIPfree().

Referenced by computeCoverUndercover().

◆ SCIPapplyZeroobj()

SCIP_EXPORT SCIP_RETCODE SCIPapplyZeroobj ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_Real  minimprove,
SCIP_Longint  nnodes 
)

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

Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultresult data structure
minimprovefactor by which zeroobj should at least improve the incumbent
nnodesnode limit for the subproblem

Definition at line 506 of file heur_zeroobj.c.

References NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPcheckCopyLimits(), SCIPcreate(), SCIPfree(), SCIPgetDepth(), SCIPgetNSolsFound(), SCIPheurGetData(), SCIPheurGetNCalls(), and setupAndSolveSubscip().

Referenced by SCIP_DECL_HEUREXEC().