Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for dive sets to control the generic diving algorithm

Functions

const char * SCIPdivesetGetName (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetMinRelDepth (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetMaxRelDepth (SCIP_DIVESET *diveset)
 
SCIP_Longint SCIPdivesetGetSolSuccess (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetNCalls (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetNSolutionCalls (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetMinDepth (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetMaxDepth (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetAvgDepth (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetMinSolutionDepth (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetMaxSolutionDepth (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetAvgSolutionDepth (SCIP_DIVESET *diveset)
 
SCIP_Longint SCIPdivesetGetNLPIterations (SCIP_DIVESET *diveset)
 
SCIP_Longint SCIPdivesetGetNProbingNodes (SCIP_DIVESET *diveset)
 
SCIP_Longint SCIPdivesetGetNBacktracks (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetMaxLPIterQuot (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetMaxLPIterOffset (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetUbQuotNoSol (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetAvgQuotNoSol (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetUbQuot (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetAvgQuot (SCIP_DIVESET *diveset)
 
SCIP_Bool SCIPdivesetUseBacktrack (SCIP_DIVESET *diveset)
 
int SCIPdivesetGetLPSolveFreq (SCIP_DIVESET *diveset)
 
SCIP_Real SCIPdivesetGetLPResolveDomChgQuot (SCIP_DIVESET *diveset)
 
SCIP_Bool SCIPdivesetUseOnlyLPBranchcands (SCIP_DIVESET *diveset)
 
SCIP_Bool SCIPdivesetSupportsType (SCIP_DIVESET *diveset, SCIP_DIVETYPE divetype)
 
SCIP_RANDNUMGENSCIPdivesetGetRandnumgen (SCIP_DIVESET *diveset)
 
SCIP_RETCODE SCIPcreateDiveset (SCIP *scip, SCIP_DIVESET **diveset, SCIP_HEUR *heur, const char *name, SCIP_Real minreldepth, SCIP_Real maxreldepth, SCIP_Real maxlpiterquot, SCIP_Real maxdiveubquot, SCIP_Real maxdiveavgquot, SCIP_Real maxdiveubquotnosol, SCIP_Real maxdiveavgquotnosol, SCIP_Real lpresolvedomchgquot, int lpsolvefreq, int maxlpiterofs, unsigned int initialseed, SCIP_Bool backtrack, SCIP_Bool onlylpbranchcands, SCIP_Bool specificsos1score, SCIP_DECL_DIVESETGETSCORE((*divesetgetscore)))
 

Function Documentation

◆ SCIPdivesetGetName()

const char* SCIPdivesetGetName ( SCIP_DIVESET diveset)

get the name of the dive set

Parameters
divesetdiving settings

Definition at line 348 of file heur.c.

References SCIP_Diveset::name, and NULL.

Referenced by printHeuristicStatistics(), SCIPperformGenericDivingAlgorithm(), and solveLP().

◆ SCIPdivesetGetMinRelDepth()

SCIP_Real SCIPdivesetGetMinRelDepth ( SCIP_DIVESET diveset)

get the minimum relative depth of the diving settings

Parameters
divesetdiving settings

Definition at line 358 of file heur.c.

References SCIP_Diveset::minreldepth.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetMaxRelDepth()

SCIP_Real SCIPdivesetGetMaxRelDepth ( SCIP_DIVESET diveset)

get the maximum relative depth of the diving settings

Parameters
divesetdiving settings

Definition at line 366 of file heur.c.

References SCIP_Diveset::maxreldepth.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetSolSuccess()

SCIP_Longint SCIPdivesetGetSolSuccess ( SCIP_DIVESET diveset)

get the number of successful runs of the diving settings

Parameters
divesetdiving settings

Definition at line 374 of file heur.c.

References SCIP_Diveset::nbestsolsfound, and SCIP_Diveset::nsolsfound.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetNCalls()

int SCIPdivesetGetNCalls ( SCIP_DIVESET diveset)

get the number of calls to this dive set

Parameters
divesetdiving settings

Definition at line 382 of file heur.c.

References SCIP_Diveset::ncalls, and NULL.

Referenced by printHeuristicStatistics(), and SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetNSolutionCalls()

int SCIPdivesetGetNSolutionCalls ( SCIP_DIVESET diveset)

get the number of calls successfully terminated at a feasible leaf node

Parameters
divesetdiving settings

Definition at line 392 of file heur.c.

References SCIP_Diveset::nsolcalls, and NULL.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetMinDepth()

int SCIPdivesetGetMinDepth ( SCIP_DIVESET diveset)

get the minimum depth reached by this dive set

Parameters
divesetdiving settings

Definition at line 402 of file heur.c.

References SCIP_Diveset::mindepth, and NULL.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetMaxDepth()

int SCIPdivesetGetMaxDepth ( SCIP_DIVESET diveset)

get the maximum depth reached by this dive set

Parameters
divesetdiving settings

Definition at line 412 of file heur.c.

References SCIP_Diveset::maxdepth, and NULL.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetAvgDepth()

SCIP_Real SCIPdivesetGetAvgDepth ( SCIP_DIVESET diveset)

get the average depth this dive set reached during execution

Parameters
divesetdiving settings

Definition at line 422 of file heur.c.

References SCIP_Diveset::ncalls, NULL, SCIP_Real, and SCIP_Diveset::totaldepth.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetMinSolutionDepth()

int SCIPdivesetGetMinSolutionDepth ( SCIP_DIVESET diveset)

get the minimum depth at which this dive set found a solution

Parameters
divesetdiving settings

Definition at line 432 of file heur.c.

References SCIP_Diveset::minsoldepth, and NULL.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetMaxSolutionDepth()

int SCIPdivesetGetMaxSolutionDepth ( SCIP_DIVESET diveset)

get the maximum depth at which this dive set found a solution

Parameters
divesetdiving settings

Definition at line 442 of file heur.c.

References SCIP_Diveset::maxsoldepth, and NULL.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetAvgSolutionDepth()

SCIP_Real SCIPdivesetGetAvgSolutionDepth ( SCIP_DIVESET diveset)

get the average depth at which this dive set found a solution

Parameters
divesetdiving settings

Definition at line 452 of file heur.c.

References SCIP_Diveset::nsolcalls, NULL, SCIP_Real, and SCIP_Diveset::totalsoldepth.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetNLPIterations()

SCIP_Longint SCIPdivesetGetNLPIterations ( SCIP_DIVESET diveset)

get the total number of LP iterations used by this dive set

Parameters
divesetdiving settings

Definition at line 462 of file heur.c.

References SCIP_Diveset::nlpiterations, and NULL.

Referenced by printHeuristicStatistics(), SCIPperformGenericDivingAlgorithm(), and solveLP().

◆ SCIPdivesetGetNProbingNodes()

SCIP_Longint SCIPdivesetGetNProbingNodes ( SCIP_DIVESET diveset)

get the total number of probing nodes used by this dive set

Parameters
divesetdiving settings

Definition at line 472 of file heur.c.

References NULL, and SCIP_Diveset::totalnnodes.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetNBacktracks()

SCIP_Longint SCIPdivesetGetNBacktracks ( SCIP_DIVESET diveset)

get the total number of backtracks performed by this dive set

Parameters
divesetdiving settings

Definition at line 482 of file heur.c.

References NULL, and SCIP_Diveset::totalnbacktracks.

Referenced by printHeuristicStatistics().

◆ SCIPdivesetGetMaxLPIterQuot()

SCIP_Real SCIPdivesetGetMaxLPIterQuot ( SCIP_DIVESET diveset)

get the maximum LP iterations quotient of the diving settings

Parameters
divesetdiving settings

Definition at line 492 of file heur.c.

References SCIP_Diveset::maxlpiterquot.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetMaxLPIterOffset()

int SCIPdivesetGetMaxLPIterOffset ( SCIP_DIVESET diveset)

get the maximum LP iterations offset of the diving settings

Parameters
divesetdiving settings

Definition at line 500 of file heur.c.

References SCIP_Diveset::maxlpiterofs.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetUbQuotNoSol()

SCIP_Real SCIPdivesetGetUbQuotNoSol ( SCIP_DIVESET diveset)

get the maximum upper bound quotient parameter of the diving settings if no solution is available

Parameters
divesetdiving settings

Definition at line 508 of file heur.c.

References SCIP_Diveset::maxdiveubquotnosol.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetAvgQuotNoSol()

SCIP_Real SCIPdivesetGetAvgQuotNoSol ( SCIP_DIVESET diveset)

get the average quotient parameter of the diving settings if no solution is available

Parameters
divesetdiving settings

Definition at line 516 of file heur.c.

References SCIP_Diveset::maxdiveavgquotnosol.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetUbQuot()

SCIP_Real SCIPdivesetGetUbQuot ( SCIP_DIVESET diveset)

get the maximum upper bound quotient parameter of the diving settings if an incumbent solution exists

Parameters
divesetdiving settings

Definition at line 523 of file heur.c.

References SCIP_Diveset::maxdiveubquot.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetAvgQuot()

SCIP_Real SCIPdivesetGetAvgQuot ( SCIP_DIVESET diveset)

get the average upper bound quotient parameter of the diving settings if an incumbent solution exists

Parameters
divesetdiving settings

Definition at line 531 of file heur.c.

References SCIP_Diveset::maxdiveavgquot.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetUseBacktrack()

SCIP_Bool SCIPdivesetUseBacktrack ( SCIP_DIVESET diveset)

should backtracking be applied?

Parameters
divesetdiving settings

Definition at line 539 of file heur.c.

References SCIP_Diveset::backtrack.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetLPSolveFreq()

int SCIPdivesetGetLPSolveFreq ( SCIP_DIVESET diveset)

returns the LP solve frequency for diving LPs (0: dynamically based on number of intermediate domain reductions)

Parameters
divesetdiving settings

Definition at line 547 of file heur.c.

References SCIP_Diveset::lpsolvefreq, and NULL.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetGetLPResolveDomChgQuot()

SCIP_Real SCIPdivesetGetLPResolveDomChgQuot ( SCIP_DIVESET diveset)

returns the domain reduction quotient for triggering an immediate resolve of the diving LP (0.0: always resolve)

Parameters
divesetdiving settings

Definition at line 568 of file heur.c.

References SCIP_Diveset::lpresolvedomchgquot, and NULL.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetUseOnlyLPBranchcands()

SCIP_Bool SCIPdivesetUseOnlyLPBranchcands ( SCIP_DIVESET diveset)

should only LP branching candidates be considered instead of the slower but more general constraint handler diving variable selection?

Parameters
divesetdiving settings

Definition at line 580 of file heur.c.

References NULL, and SCIP_Diveset::onlylpbranchcands.

Referenced by SCIPperformGenericDivingAlgorithm().

◆ SCIPdivesetSupportsType()

SCIP_Bool SCIPdivesetSupportsType ( SCIP_DIVESET diveset,
SCIP_DIVETYPE  divetype 
)

returns TRUE if dive set supports diving of the specified type

Parameters
divesetdiving settings
divetypebit mask that represents the supported dive types by this dive set

Definition at line 590 of file heur.c.

References SCIP_Diveset::divetypemask, and NULL.

Referenced by getDiveBdChgsSOS1conflictgraph(), and getDiveBdChgsSOS1constraints().

◆ SCIPdivesetGetRandnumgen()

SCIP_RANDNUMGEN* SCIPdivesetGetRandnumgen ( SCIP_DIVESET diveset)

returns the random number generator of this diveset for tie-breaking

Parameters
divesetdiving settings

Definition at line 557 of file heur.c.

References NULL, and SCIP_Diveset::randnumgen.

Referenced by SCIP_DECL_DIVESETGETSCORE().

◆ SCIPcreateDiveset()

SCIP_RETCODE SCIPcreateDiveset ( SCIP scip,
SCIP_DIVESET **  diveset,
SCIP_HEUR heur,
const char *  name,
SCIP_Real  minreldepth,
SCIP_Real  maxreldepth,
SCIP_Real  maxlpiterquot,
SCIP_Real  maxdiveubquot,
SCIP_Real  maxdiveavgquot,
SCIP_Real  maxdiveubquotnosol,
SCIP_Real  maxdiveavgquotnosol,
SCIP_Real  lpresolvedomchgquot,
int  lpsolvefreq,
int  maxlpiterofs,
unsigned int  initialseed,
SCIP_Bool  backtrack,
SCIP_Bool  onlylpbranchcands,
SCIP_Bool  specificsos1score,
SCIP_DECL_DIVESETGETSCORE((*divesetgetscore))   
)

create a diving set associated with a primal heuristic. The primal heuristic needs to be included before this method can be called. The diveset is installed in the array of divesets of the heuristic and can be retrieved later by accessing SCIPheurGetDivesets()

Returns
SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
divesetpointer to created diving heuristic settings, or NULL if not needed
heurprimal heuristic to which the diveset belongs
namename for the diveset, or NULL if the name of the heuristic should be used
minreldepthminimal relative depth to start diving
maxreldepthmaximal relative depth to start diving
maxlpiterquotmaximal fraction of diving LP iterations compared to node LP iterations
maxdiveubquotmaximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)
maxdiveavgquotmaximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)
maxdiveubquotnosolmaximal UBQUOT when no solution was found yet (0.0: no limit)
maxdiveavgquotnosolmaximal AVGQUOT when no solution was found yet (0.0: no limit)
lpresolvedomchgquotpercentage of immediate domain changes during probing to trigger LP resolve
lpsolvefreqLP solve frequency for (0: only if enough domain reductions are found by propagation)
maxlpiterofsadditional number of allowed LP iterations
initialseedinitial seed for random number generation
backtrackuse one level of backtracking if infeasibility is encountered?
onlylpbranchcandsshould only LP branching candidates be considered instead of the slower but more general constraint handler diving variable selection?
specificsos1scoreshould SOS1 variables be scored by the diving heuristics specific score function; otherwise use the score function of the SOS1 constraint handler

Definition at line 8471 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_OKAY, SCIPdivesetCreate(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludeHeurActconsdiving(), SCIPincludeHeurCoefdiving(), SCIPincludeHeurFracdiving(), SCIPincludeHeurGuideddiving(), SCIPincludeHeurLinesearchdiving(), SCIPincludeHeurPscostdiving(), and SCIPincludeHeurVeclendiving().