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_Longint SCIPdivesetGetNSols (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 351 of file heur.c.

References SCIP_Diveset::name.

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

◆ SCIPdivesetGetMinRelDepth()

SCIP_Real SCIPdivesetGetMinRelDepth ( SCIP_DIVESET diveset)

get the minimum relative depth of the diving settings

Parameters
divesetdiving settings

Definition at line 361 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 369 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 377 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 385 of file heur.c.

References SCIP_Diveset::ncalls.

Referenced by SCIPperformGenericDivingAlgorithm(), and SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetNSolutionCalls()

int SCIPdivesetGetNSolutionCalls ( SCIP_DIVESET diveset)

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

Parameters
divesetdiving settings

Definition at line 395 of file heur.c.

References SCIP_Diveset::nsolcalls.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetMinDepth()

int SCIPdivesetGetMinDepth ( SCIP_DIVESET diveset)

get the minimum depth reached by this dive set

Parameters
divesetdiving settings

Definition at line 405 of file heur.c.

References SCIP_Diveset::mindepth.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetMaxDepth()

int SCIPdivesetGetMaxDepth ( SCIP_DIVESET diveset)

get the maximum depth reached by this dive set

Parameters
divesetdiving settings

Definition at line 415 of file heur.c.

References SCIP_Diveset::maxdepth.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetAvgDepth()

SCIP_Real SCIPdivesetGetAvgDepth ( SCIP_DIVESET diveset)

get the average depth this dive set reached during execution

Parameters
divesetdiving settings

Definition at line 425 of file heur.c.

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

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetMinSolutionDepth()

int SCIPdivesetGetMinSolutionDepth ( SCIP_DIVESET diveset)

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

Parameters
divesetdiving settings

Definition at line 435 of file heur.c.

References SCIP_Diveset::minsoldepth.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetMaxSolutionDepth()

int SCIPdivesetGetMaxSolutionDepth ( SCIP_DIVESET diveset)

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

Parameters
divesetdiving settings

Definition at line 445 of file heur.c.

References SCIP_Diveset::maxsoldepth.

Referenced by SCIPprintHeuristicStatistics().

◆ 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 455 of file heur.c.

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

Referenced by SCIPprintHeuristicStatistics().

◆ 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 465 of file heur.c.

References SCIP_Diveset::nlpiterations.

Referenced by SCIPperformGenericDivingAlgorithm(), SCIPprintHeuristicStatistics(), 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 475 of file heur.c.

References SCIP_Diveset::totalnnodes.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetNBacktracks()

SCIP_Longint SCIPdivesetGetNBacktracks ( SCIP_DIVESET diveset)

get the total number of backtracks performed by this dive set

Parameters
divesetdiving settings

Definition at line 485 of file heur.c.

References SCIP_Diveset::totalnbacktracks.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetNSols()

SCIP_Longint SCIPdivesetGetNSols ( SCIP_DIVESET diveset)

get the total number of solutions (leaf and rounded solutions) found by the dive set

Parameters
divesetdiving settings

Definition at line 495 of file heur.c.

References SCIP_Diveset::nsolsfound.

Referenced by SCIPprintHeuristicStatistics().

◆ SCIPdivesetGetMaxLPIterQuot()

SCIP_Real SCIPdivesetGetMaxLPIterQuot ( SCIP_DIVESET diveset)

get the maximum LP iterations quotient of the diving settings

Parameters
divesetdiving settings

Definition at line 506 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 514 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 522 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 530 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 537 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 545 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 553 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 561 of file heur.c.

References SCIP_Diveset::lpsolvefreq.

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 582 of file heur.c.

References SCIP_Diveset::lpresolvedomchgquot.

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 594 of file heur.c.

References 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 604 of file heur.c.

References SCIP_Diveset::divetypemask.

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 571 of file heur.c.

References 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 8521 of file scip.c.

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

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