Detailed Description
Primal recombination heuristic for Steiner problems.
This file implements a recombination heuristic for Steiner problems, see "SCIP-Jack - A solver for STP and variants with parallelization extensions" by Gamrath, Koch, Maher, Rehfeldt and Shinano
Definition in file heur_rec.h.
Go to the source code of this file.
Functions | |
SCIP_RETCODE | SCIPStpHeurRecRun (SCIP *scip, STPSOLPOOL *pool, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, const GRAPH *graph, SCIP_VAR **vars, int *newsolindex, int runs, int nsols, SCIP_Bool restrictheur, SCIP_Bool *solfound) |
SCIP_RETCODE | SCIPStpIncludeHeurRec (SCIP *scip) |
SCIP_RETCODE | SCIPStpHeurRecExclude (SCIP *scip, const GRAPH *graph, const int *result, int *newresult, int *dnodemap, STP_Bool *stvertex, SCIP_Bool *success) |
Function Documentation
◆ SCIPStpHeurRecRun()
SCIP_RETCODE SCIPStpHeurRecRun | ( | SCIP * | scip, |
STPSOLPOOL * | pool, | ||
SCIP_HEUR * | heur, | ||
SCIP_HEURDATA * | heurdata, | ||
const GRAPH * | graph, | ||
SCIP_VAR ** | vars, | ||
int * | newsolindex, | ||
int | runs, | ||
int | nsols, | ||
SCIP_Bool | restrictheur, | ||
SCIP_Bool * | solfound | ||
) |
run REC heuristic
runs STP recombination heuristic
- Parameters
-
scip SCIP data structure pool STP solution pool or NULL heur heuristic or NULL heurdata heuristic data or NULL graph graph data vars variables or NULL newsolindex index of new solution runs number of runs nsols number of solutions in pool (SCIP or STP) restrictheur use restricted version of heuristic? solfound new solution found?
Definition at line 1455 of file heur_rec.c.
References BMScopyMemoryArray, buildsolgraph(), computeReducedProbSolution(), CYCLES_PER_RUN, GRAPH::edges, FALSE, FARAWAY, graph_free(), graph_pack(), graph_typeIsUndirected(), graph_valid(), initializeIncumbent(), GRAPH::knots, nnodes, NULL, poolAddSol(), REC_MAX_FAILS, reduce_exec(), reduce_solFree(), reduce_solInit(), retransformReducedProbSolution(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMessage, SCIPfindHeur(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPfreeMemoryArray, SCIPheurGetData(), SCIPisLT(), SCIPisStopped(), SCIPrandomGetInt(), SCIPStpHeurTMBuildTreeDc(), setHeurdataNUsedSols(), solstp_getObjBounded(), solstp_isValid(), solstp_prune(), STP_DCSTP, STP_DHCSTP, STP_REDUCTION_ADVANCED, STP_RMWCSP, GRAPH::stp_type, GRAPH::terms, and TRUE.
Referenced by computeSteinerTreeRedCosts(), computeSteinerTreeRedCostsPcMw(), and SCIP_DECL_HEUREXEC().
◆ SCIPStpIncludeHeurRec()
SCIP_RETCODE SCIPStpIncludeHeurRec | ( | SCIP * | scip | ) |
creates the rec primal heuristic and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 2161 of file heur_rec.c.
References DEFAULT_MAXFREQREC, DEFAULT_MAXNSOLS, DEFAULT_NTMRUNS, DEFAULT_NUSEDSOLS, DEFAULT_NWAITINGSOLS, DEFAULT_RANDSEED, FALSE, HEUR_DESC, HEUR_DISPCHAR, HEUR_FREQ, HEUR_FREQOFS, HEUR_MAXDEPTH, HEUR_NAME, HEUR_PRIORITY, HEUR_TIMING, HEUR_USESSUBSCIP, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPallocMemory, SCIPcreateRandom(), SCIPincludeHeurBasic(), SCIPsetHeurCopy(), SCIPsetHeurExit(), SCIPsetHeurExitsol(), SCIPsetHeurFree(), SCIPsetHeurInit(), SCIPsetHeurInitsol(), and TRUE.
Referenced by runShell(), SCIP_DECL_HEURCOPY(), and subscipSetupCallbacks().
◆ SCIPStpHeurRecExclude()
SCIP_RETCODE SCIPStpHeurRecExclude | ( | SCIP * | scip, |
const GRAPH * | graph, | ||
const int * | result, | ||
int * | newresult, | ||
int * | dnodemap, | ||
STP_Bool * | stvertex, | ||
SCIP_Bool * | success | ||
) |
heuristic to exclude vertices or edges from a given solution (and inserting other edges) to improve objective
- Parameters
-
scip SCIP data structure graph graph structure result edge solution array (UNKNOWN/CONNECT) newresult new edge solution array (UNKNOWN/CONNECT) dnodemap node array for internal use stvertex node array for internally marking solution vertices success solution improved?
Definition at line 1649 of file heur_rec.c.
References BMSclearMemoryArray, CONNECT, GRAPH::cost, EAT_FREE, GRAPH::edges, GRAPH::extended, FALSE, graph_edge_addSubgraph(), graph_edge_getAncestors(), graph_free(), graph_getFixedges(), graph_init(), graph_knot_add(), graph_path_exit(), graph_path_init(), graph_pc_finalizeSubgraph(), graph_pc_initSubgraph(), graph_pc_isPcMw(), graph_valid(), GRAPH::head, Is_pseudoTerm, Is_term, GRAPH::knots, marksolverts(), nnodes, GRAPH::norgmodelknots, NULL, GRAPH::oeat, GRAPH::orghead, GRAPH::orgtail, GRAPH::pcancestors, pcmode_fromheurdata, GRAPH::prize, reduce_exec(), reduce_solFree(), reduce_solInit(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPisLT(), SCIPisZero(), SCIPStpHeurTMRun(), solstp_getObjBounded(), solstp_isValid(), solstp_markPcancestors(), solstp_prune(), GRAPH::source, STP_MWCSP, GRAPH::stp_type, GRAPH::tail, GRAPH::term, and TRUE.
Referenced by computeSteinerTreeRedCostsPcMw().