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_RETCODE SCIPapplyHeurDualval (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint)
 
SCIP_RETCODE SCIPheurPassIndicator (SCIP *scip, SCIP_HEUR *heur, int nindconss, SCIP_CONS **indconss, SCIP_Bool *solcand, SCIP_Real obj)
 
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_RETCODE SCIPdeleteSubproblemProximity (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)
 
int SCIPreoptsolsGetNCheckedsols (SCIP *scip)
 
int SCIPreoptsolsGetNImprovingsols (SCIP *scip)
 
SCIP_RETCODE SCIPapplyHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_SOL *refpoint, SCIP_SOL *resultsol)
 
SCIP_RETCODE SCIPupdateStartpointHeurSubNlp (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *solcand, SCIP_Real violation)
 
SCIP_SOLSCIPgetStartCandidateHeurSubNlp (SCIP *scip, SCIP_HEUR *heur)
 
SCIP_RETCODE SCIPheurSyncPassSol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
SCIP_RETCODE SCIPheurPassSolTrySol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
SCIP_RETCODE SCIPheurPassSolAddSol (SCIP *scip, SCIP_HEUR *heur, SCIP_SOL *sol)
 
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 coverand, SCIP_Bool coverbd, SCIP_Bool coverind, SCIP_Bool covernl, char coveringobj, SCIP_Bool *success)
 
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_dps.h
 dynamic partition search
 
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_indicatordiving.h
 LP diving heuristic that fixes indicator variables controlling semicontinuous 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.
 
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_scheduler.h
 Adaptive heuristic to schedule LNS and diving heuristics.
 
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_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_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 2020 of file heur_dualval.c.

References addLinearConstraintsToNlp(), bound, computeRanks(), createSolFromNLP(), createSubSCIP(), FALSE, fixDiscreteVars(), freeMemory(), MAX, maximalslack(), MIN, NULL, REALABS, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, 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(), SCIPsetSolVal(), SCIPsolve(), SCIPsolveNLP, SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetOrigvarSum(), SCIPvarGetTransVar(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarIsNegated(), SCIPverbMessage(), storeSolution(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC(), and SCIPapplyHeurDualval().

◆ SCIPheurPassIndicator()

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 596 of file heur_indicator.c.

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

Referenced by extendToCover().

◆ SCIPapplyProximity()

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 667 of file heur_proximity.c.

References createNewSol(), deleteSubproblem(), EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, HEUR_NAME, MAX, MIN, nnodes, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_CALL_ABORT, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_NODESOLVED, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LONGINT_FORMAT, 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_RETCODE SCIPdeleteSubproblemProximity ( SCIP scip)

frees the sub-MIP created by proximity

Parameters
scipSCIP data structure

Definition at line 640 of file heur_proximity.c.

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

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPapplyRens()

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

◆ SCIPreoptsolsGetNCheckedsols()

int SCIPreoptsolsGetNCheckedsols ( SCIP scip)

Definition at line 311 of file heur_reoptsols.c.

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

◆ SCIPreoptsolsGetNImprovingsols()

int SCIPreoptsolsGetNImprovingsols ( SCIP scip)

Definition at line 330 of file heur_reoptsols.c.

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

◆ SCIPapplyHeurSubNlp()

SCIP_RETCODE SCIPapplyHeurSubNlp ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_SOL refpoint,
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
resultsola solution where to store found solution values, if any, or NULL if to try adding to SCIP

Definition at line 1768 of file heur_subnlp.c.

References createSubSCIP(), FALSE, forbidFixation(), freeSubSCIP(), MAX, MIN, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPdebugMsg, SCIPfreeTransform(), SCIPgetLPSolstat(), SCIPgetNActivePricers(), SCIPgetNSols(), SCIPgetOrigVarsData(), SCIPgetSolVal(), SCIPgetStage(), SCIPgetUpperbound(), SCIPheurGetData(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPisTransformed(), SCIPround(), SCIPsetObjlimit(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPtransformProb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), solveSubNLP(), and TRUE.

Referenced by heurExec(), SCIP_DECL_HEUREXEC(), SCIPapplyUndercover(), and solveNLP().

◆ SCIPupdateStartpointHeurSubNlp()

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

References HEUR_NAME, NULL, runHeuristic(), SCIP_Bool, 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().

◆ SCIPgetStartCandidateHeurSubNlp()

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

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

◆ SCIPheurSyncPassSol()

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 190 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_RETCODE SCIPheurPassSolTrySol ( SCIP scip,
SCIP_HEUR heur,
SCIP_SOL sol 
)

◆ SCIPheurPassSolAddSol()

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 293 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_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  coverand,
SCIP_Bool  coverbd,
SCIP_Bool  coverind,
SCIP_Bool  covernl,
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?
coverandshould and constraints be covered (or just copied)?
coverbdshould bounddisjunction constraints be covered (or just copied)?
coverindshould indicator constraints be covered (or just copied)?
covernlshould nonlinear 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 3353 of file heur_undercover.c.

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

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPapplyZeroobj()

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 504 of file heur_zeroobj.c.

References nnodes, 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().