Detailed Description
dual-ascent and reduction based primal heuristic for Steiner problems
This file implements a dual-ascent and reduction based heuristic for Steiner problems. It is based on an approach described in T. Polzin's "Algorithms for the Steiner problem in networks".
Definition in file heur_slackprune.h.
Go to the source code of this file.
Functions | |
SCIP_RETCODE | SCIPStpIncludeHeurSlackPrune (SCIP *scip) |
SCIP_RETCODE | SCIPStpHeurSlackPruneRun (SCIP *scip, SCIP_VAR **vars, GRAPH *g, int *soledge, SCIP_Bool *success, SCIP_Bool initialreduce, SCIP_Bool fullreduce) |
Function Documentation
◆ SCIPStpIncludeHeurSlackPrune()
SCIP_RETCODE SCIPStpIncludeHeurSlackPrune | ( | SCIP * | scip | ) |
creates the slack prune primal heuristic and includes it in SCIP
creates the slackprune primal heuristic and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 730 of file heur_slackprune.c.
References DEFAULT_SLACKPRUNE_MAXFREQ, 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(), SCIPallocMemory, SCIPincludeHeurBasic(), SCIPsetHeurCopy(), SCIPsetHeurExitsol(), SCIPsetHeurFree(), SCIPsetHeurInit(), and SCIPsetHeurInitsol().
Referenced by runShell(), SCIP_DECL_HEURCOPY(), and subscipSetupCallbacks().
◆ SCIPStpHeurSlackPruneRun()
SCIP_RETCODE SCIPStpHeurSlackPruneRun | ( | SCIP * | scip, |
SCIP_VAR ** | vars, | ||
GRAPH * | g, | ||
int * | soledge, | ||
SCIP_Bool * | success, | ||
SCIP_Bool | initialreduce, | ||
SCIP_Bool | fullreduce | ||
) |
execute slack-and-prune heuristic on given graph
- Parameters
-
scip SCIP data structure vars problem variables or NULL g graph data structure soledge array to 1. provide and 2. return primal solution success feasible solution found? initialreduce try to reduce graph initially? fullreduce use full reduction techniques?
Definition at line 532 of file heur_slackprune.c.
References BMScopyMemoryArray, CONNECT, FALSE, getRedBound(), graph_copy(), graph_edge_del(), graph_free(), graph_get_nEdges(), graph_get_nNodes(), graph_get_nVET(), graph_initHistory(), graph_path_exit(), graph_path_init(), graph_pc_edgeIsExtended(), graph_pc_isPcMw(), graph_valid(), GRAPH::head, GRAPH::knots, nnodes, GRAPH::norgmodelknots, NULL, reduce_daSlackPrune(), reduce_unconnected(), reduceExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPisLE(), SCIPprobdataGetOffset(), SCIPStpHeurLocalRun(), SCIPStpHeurPruneUpdateSols(), SCIPvarGetUbLocal(), setMinMaxElims(), SLACKPRUNE_MAXREDROUNDS, solstp_getObj(), solstp_getObjBounded(), solstp_isValid(), STP_GSTP, STP_OARSMT, STP_RSMT, STP_SPG, GRAPH::stp_type, GRAPH::tail, TRUE, and UNKNOWN.
Referenced by computeSteinerTreeRedCosts(), createInitialCuts(), and SCIP_DECL_HEUREXEC().