methods for dive sets to control the generic diving algorithm
const char * SCIPdivesetGetName | ( | SCIP_DIVESET * | diveset | ) |
get the name of the dive set
diveset | diving settings |
Definition at line 445 of file heur.c.
References assert(), diveset, SCIP_Diveset::name, and NULL.
Referenced by executeDivingHeuristic(), findAndStoreDivesets(), includeDivingHeurs(), printDivingHeurStatistics(), SCIPperformGenericDivingAlgorithm(), SCIPprintHeuristicStatistics(), and solveLP().
SCIP_Real SCIPdivesetGetMinRelDepth | ( | SCIP_DIVESET * | diveset | ) |
get the minimum relative depth of the diving settings
diveset | diving settings |
Definition at line 455 of file heur.c.
References diveset, and SCIP_Diveset::minreldepth.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Real SCIPdivesetGetMaxRelDepth | ( | SCIP_DIVESET * | diveset | ) |
get the maximum relative depth of the diving settings
diveset | diving settings |
Definition at line 463 of file heur.c.
References diveset, and SCIP_Diveset::maxreldepth.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Longint SCIPdivesetGetSolSuccess | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the number of successful runs of the diving settings
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 471 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nbestsolsfound, SCIP_DivesetStats::nsolsfound, and NULL.
Referenced by divesetGetSelectionScore().
int SCIPdivesetGetNCalls | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the number of calls to this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 485 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::ncalls, and NULL.
Referenced by divesetGetSelectionScore(), getDivesetIterLimit(), and SCIPprintHeuristicStatistics().
int SCIPdivesetGetNSolutionCalls | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the number of calls successfully terminated at a feasible leaf node
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 498 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nsolcalls, and NULL.
Referenced by SCIPprintHeuristicStatistics().
int SCIPdivesetGetMinDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the minimum depth reached by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 511 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::mindepth, and NULL.
Referenced by SCIPprintHeuristicStatistics().
int SCIPdivesetGetMaxDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the maximum depth reached by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 524 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::maxdepth, and NULL.
Referenced by SCIPprintHeuristicStatistics().
SCIP_Real SCIPdivesetGetAvgDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the average depth this dive set reached during execution
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 537 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::ncalls, NULL, SCIP_Real, and SCIP_DivesetStats::totaldepth.
Referenced by divesetGetSelectionScore(), and SCIPprintHeuristicStatistics().
int SCIPdivesetGetMinSolutionDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the minimum depth at which this dive set found a solution
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 550 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::minsoldepth, and NULL.
Referenced by SCIPprintHeuristicStatistics().
int SCIPdivesetGetMaxSolutionDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the maximum depth at which this dive set found a solution
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 563 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::maxsoldepth, and NULL.
Referenced by SCIPprintHeuristicStatistics().
SCIP_Real SCIPdivesetGetAvgSolutionDepth | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the average depth at which this dive set found a solution
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 576 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nsolcalls, NULL, SCIP_Real, and SCIP_DivesetStats::totalsoldepth.
Referenced by SCIPprintHeuristicStatistics().
SCIP_Longint SCIPdivesetGetNLPIterations | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the total number of LP iterations used by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 589 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nlpiterations, and NULL.
Referenced by divesetGetSelectionScore(), getDivesetIterLimit(), getLPIterlimit(), SCIPperformGenericDivingAlgorithm(), SCIPprintHeuristicStatistics(), and solveLP().
SCIP_Longint SCIPdivesetGetNProbingNodes | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the total number of probing nodes used by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 602 of file heur.c.
References assert(), diveset, divesetGetStats(), i, NULL, and SCIP_DivesetStats::totalnnodes.
Referenced by divesetGetSelectionScore(), executeDivingHeuristic(), and SCIPprintHeuristicStatistics().
SCIP_Longint SCIPdivesetGetNBacktracks | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the total number of backtracks performed by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 615 of file heur.c.
References assert(), diveset, divesetGetStats(), i, NULL, and SCIP_DivesetStats::totalnbacktracks.
Referenced by divesetGetSelectionScore(), executeDivingHeuristic(), and SCIPprintHeuristicStatistics().
SCIP_Longint SCIPdivesetGetNConflicts | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the total number of conflicts found by this dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 628 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nconflictsfound, and NULL.
Referenced by divesetGetSelectionScore(), executeDivingHeuristic(), and SCIPprintHeuristicStatistics().
SCIP_Longint SCIPdivesetGetNSols | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVECONTEXT | divecontext ) |
get the total number of solutions (leaf and rounded solutions) found by the dive set
diveset | diving settings |
divecontext | context for diving statistics |
Definition at line 641 of file heur.c.
References assert(), diveset, divesetGetStats(), i, SCIP_DivesetStats::nsolsfound, and NULL.
Referenced by divesetGetSelectionScore(), executeDivingHeuristic(), getDivesetIterLimit(), SCIP_DECL_HEUREXEC(), and SCIPprintHeuristicStatistics().
SCIP_Real SCIPdivesetGetMaxLPIterQuot | ( | SCIP_DIVESET * | diveset | ) |
get the maximum LP iterations quotient of the diving settings
diveset | diving settings |
Definition at line 655 of file heur.c.
References diveset, and SCIP_Diveset::maxlpiterquot.
Referenced by getDivesetIterLimit().
int SCIPdivesetGetMaxLPIterOffset | ( | SCIP_DIVESET * | diveset | ) |
get the maximum LP iterations offset of the diving settings
diveset | diving settings |
Definition at line 663 of file heur.c.
References diveset, and SCIP_Diveset::maxlpiterofs.
Referenced by getDivesetIterLimit().
SCIP_Real SCIPdivesetGetUbQuotNoSol | ( | SCIP_DIVESET * | diveset | ) |
get the maximum upper bound quotient parameter of the diving settings if no solution is available
diveset | diving settings |
Definition at line 671 of file heur.c.
References diveset, and SCIP_Diveset::maxdiveubquotnosol.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Real SCIPdivesetGetAvgQuotNoSol | ( | SCIP_DIVESET * | diveset | ) |
get the average quotient parameter of the diving settings if no solution is available
diveset | diving settings |
Definition at line 679 of file heur.c.
References diveset, and SCIP_Diveset::maxdiveavgquotnosol.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Real SCIPdivesetGetUbQuot | ( | SCIP_DIVESET * | diveset | ) |
get the maximum upper bound quotient parameter of the diving settings if an incumbent solution exists
diveset | diving settings |
Definition at line 686 of file heur.c.
References diveset, and SCIP_Diveset::maxdiveubquot.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Real SCIPdivesetGetAvgQuot | ( | SCIP_DIVESET * | diveset | ) |
get the average upper bound quotient parameter of the diving settings if an incumbent solution exists
diveset | diving settings |
Definition at line 694 of file heur.c.
References diveset, and SCIP_Diveset::maxdiveavgquot.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Bool SCIPdivesetUseBacktrack | ( | SCIP_DIVESET * | diveset | ) |
should backtracking be applied?
diveset | diving settings |
Definition at line 702 of file heur.c.
References SCIP_Diveset::backtrack, and diveset.
Referenced by SCIPperformGenericDivingAlgorithm().
int SCIPdivesetGetLPSolveFreq | ( | SCIP_DIVESET * | diveset | ) |
returns the LP solve frequency for diving LPs (0: dynamically based on number of intermediate domain reductions)
diveset | diving settings |
Definition at line 710 of file heur.c.
References assert(), diveset, SCIP_Diveset::lpsolvefreq, and NULL.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Real SCIPdivesetGetLPResolveDomChgQuot | ( | SCIP_DIVESET * | diveset | ) |
returns the domain reduction quotient for triggering an immediate resolve of the diving LP (0.0: always resolve)
diveset | diving settings |
Definition at line 731 of file heur.c.
References assert(), diveset, SCIP_Diveset::lpresolvedomchgquot, and NULL.
Referenced by SCIPperformGenericDivingAlgorithm().
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?
diveset | diving settings |
Definition at line 743 of file heur.c.
References assert(), diveset, NULL, and SCIP_Diveset::onlylpbranchcands.
Referenced by SCIPperformGenericDivingAlgorithm().
SCIP_Bool SCIPdivesetSupportsType | ( | SCIP_DIVESET * | diveset, |
SCIP_DIVETYPE | divetype ) |
returns TRUE if dive set supports diving of the specified type
diveset | diving settings |
divetype | bit mask that represents the supported dive types by this dive set |
Definition at line 753 of file heur.c.
References assert(), diveset, SCIP_Diveset::divetypemask, i, and NULL.
Referenced by getDiveBdChgsSOS1conflictgraph(), and getDiveBdChgsSOS1constraints().
SCIP_RANDNUMGEN * SCIPdivesetGetRandnumgen | ( | SCIP_DIVESET * | diveset | ) |
returns the random number generator of this diveset
for tie-breaking
diveset | diving settings |
Definition at line 720 of file heur.c.
References assert(), diveset, NULL, and SCIP_Diveset::randnumgen.
Referenced by getScoreOfFarkasDiving(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), and SCIP_DECL_DIVESETGETSCORE().
SCIP_Bool SCIPdivesetIsPublic | ( | SCIP_DIVESET * | diveset | ) |
is this dive set publicly available (ie., can be used by other primal heuristics?)
diveset | diving settings |
Definition at line 764 of file heur.c.
References assert(), diveset, SCIP_Diveset::ispublic, and NULL.
Referenced by findAndStoreDivesets(), and includeDivingHeurs().
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 | ispublic, | ||
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()
scip
is in one of the following stages:
scip | SCIP data structure |
diveset | pointer to created diving heuristic settings, or NULL if not needed |
heur | primal heuristic to which the diveset belongs |
name | name for the diveset, or NULL if the name of the heuristic should be used |
minreldepth | minimal relative depth to start diving |
maxreldepth | maximal relative depth to start diving |
maxlpiterquot | maximal fraction of diving LP iterations compared to node LP iterations |
maxdiveubquot | maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit) |
maxdiveavgquot | maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit) |
maxdiveubquotnosol | maximal UBQUOT when no solution was found yet (0.0: no limit) |
maxdiveavgquotnosol | maximal AVGQUOT when no solution was found yet (0.0: no limit) |
lpresolvedomchgquot | percentage of immediate domain changes during probing to trigger LP resolve |
lpsolvefreq | LP solve frequency for (0: only if enough domain reductions are found by propagation) |
maxlpiterofs | additional number of allowed LP iterations |
initialseed | initial seed for random number generation |
backtrack | use one level of backtracking if infeasibility is encountered? |
onlylpbranchcands | should only LP branching candidates be considered instead of the slower but more general constraint handler diving variable selection? |
ispublic | is this dive set publicly available (ie., can be used by other primal heuristics?) |
specificsos1score | should SOS1 variables be scored by the diving heuristics specific score function; otherwise use the score function of the SOS1 constraint handler |
Definition at line 318 of file scip_heur.c.
References assert(), diveset, FALSE, i, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPdivesetCreate(), and TRUE.
Referenced by SCIPincludeHeurActconsdiving(), SCIPincludeHeurCoefdiving(), SCIPincludeHeurConflictdiving(), SCIPincludeHeurDistributiondiving(), SCIPincludeHeurFarkasdiving(), SCIPincludeHeurFracdiving(), SCIPincludeHeurGuideddiving(), SCIPincludeHeurIndicatordiving(), SCIPincludeHeurLinesearchdiving(), SCIPincludeHeurPscostdiving(), and SCIPincludeHeurVeclendiving().
SCIP_RETCODE SCIPisDivesetAvailable | ( | SCIP * | scip, |
SCIP_DIVESET * | diveset, | ||
SCIP_Bool * | available ) |
check specific preconditions for diving, e.g., if an incumbent solution is available
scip | SCIP data structure |
diveset | diving heuristic settings |
available | pointer to store if the diving can run at the current solving stage |
Definition at line 363 of file scip_heur.c.
References assert(), diveset, i, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdivesetIsAvailable().
Referenced by selectDiving().