heuristic which fixes all integer variables to a bound (lower/upper) and solves the remaining LP
Definition in file heur_bound.c.
#include "scip/heur_bound.h"
#include "scip/pub_heur.h"
#include "scip/pub_message.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_general.h"
#include "scip/scip_heur.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_probing.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_timing.h"
#include "scip/scip_tree.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "bound" |
#define | HEUR_DESC "heuristic which fixes all integer variables to a bound and solves the remaining LP" |
#define | HEUR_DISPCHAR SCIP_HEURDISPCHAR_PROP |
#define | HEUR_PRIORITY -1107000 |
#define | HEUR_FREQ -1 |
#define | HEUR_FREQOFS 0 |
#define | HEUR_MAXDEPTH -1 |
#define | HEUR_TIMING SCIP_HEURTIMING_BEFORENODE |
#define | HEUR_USESSUBSCIP FALSE |
#define | DEFAULT_ONLYWITHOUTSOL TRUE |
#define | DEFAULT_MAXPROPROUNDS 0 /* maximum number of propagation rounds during probing */ |
#define | DEFAULT_BOUND 'l' |
Functions | |
static SCIP_RETCODE | applyBoundHeur (SCIP *scip, SCIP_HEUR *heur, SCIP_HEURDATA *heurdata, SCIP_Bool lower, SCIP_RESULT *result) |
static | SCIP_DECL_HEURCOPY (heurCopyBound) |
static | SCIP_DECL_HEURFREE (heurFreeBound) |
static | SCIP_DECL_HEUREXEC (heurExecBound) |
SCIP_RETCODE | SCIPincludeHeurBound (SCIP *scip) |
#define HEUR_NAME "bound" |
Definition at line 59 of file heur_bound.c.
#define HEUR_DESC "heuristic which fixes all integer variables to a bound and solves the remaining LP" |
Definition at line 60 of file heur_bound.c.
#define HEUR_DISPCHAR SCIP_HEURDISPCHAR_PROP |
Definition at line 61 of file heur_bound.c.
#define HEUR_PRIORITY -1107000 |
Definition at line 62 of file heur_bound.c.
#define HEUR_FREQ -1 |
Definition at line 63 of file heur_bound.c.
#define HEUR_FREQOFS 0 |
Definition at line 64 of file heur_bound.c.
#define HEUR_MAXDEPTH -1 |
Definition at line 65 of file heur_bound.c.
#define HEUR_TIMING SCIP_HEURTIMING_BEFORENODE |
Definition at line 66 of file heur_bound.c.
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 67 of file heur_bound.c.
#define DEFAULT_ONLYWITHOUTSOL TRUE |
Should heuristic only be executed if no primal solution was found, yet?
Definition at line 69 of file heur_bound.c.
Referenced by SCIPincludeHeurBound(), SCIPincludeHeurShiftandpropagate(), and SCIPincludeHeurZeroobj().
#define DEFAULT_MAXPROPROUNDS 0 /* maximum number of propagation rounds during probing */ |
Definition at line 70 of file heur_bound.c.
#define DEFAULT_BOUND 'l' |
to which bound should integer variables be fixed?
Definition at line 71 of file heur_bound.c.
Referenced by SCIPincludeHeurBound().
|
static |
main procedure of the bound heuristic
scip | original SCIP data structure |
heur | heuristic |
heurdata | heuristic data structure |
lower | should integer variables be fixed to their lower bound? |
result | pointer to store the result |
Definition at line 92 of file heur_bound.c.
References assert(), FALSE, HEUR_NAME, heurdata, lperror, nbinvars, nintvars, NULL, nvars, result, SCIP_Bool, SCIP_CALL, SCIP_FOUNDSOL, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_IMPLINT, SCIP_VERBLEVEL_FULL, SCIPcreateSol(), SCIPdebugMsg, SCIPendProbing(), SCIPfixVarProbing(), SCIPfreeSol(), SCIPgetLPSolstat(), SCIPgetNLPCols(), SCIPgetNLPIterations(), SCIPgetNPseudoBranchCands(), SCIPgetNUnfixedLPCols(), SCIPgetSolOrigObj(), SCIPgetSolvingTime(), SCIPgetVarsData(), SCIPisInfinity(), SCIPisLPSolBasic(), SCIPlinkLPSol(), SCIPpropagateProbing(), SCIProundSol(), SCIPsnprintfProbingStats(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPtrySol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPverbMessage(), SCIPwarningMessage(), TRUE, var, and vars.
Referenced by SCIP_DECL_HEUREXEC().
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 287 of file heur_bound.c.
References assert(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurBound().
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 301 of file heur_bound.c.
References heurdata, NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), and SCIPheurSetData().
|
static |
execution method of primal heuristic
Definition at line 316 of file heur_bound.c.
References applyBoundHeur(), assert(), cutoff, FALSE, heurdata, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPconstructLP(), SCIPcutoffNode(), SCIPdebugMsg, SCIPflushLP(), SCIPgetBestSol(), SCIPgetCurrentNode(), SCIPgetNPseudoBranchCands(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPisLPConstructed(), SCIPisStopped(), SCIPnodeGetNumber(), and TRUE.