Detailed Description
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) |
Macro Definition Documentation
◆ HEUR_NAME
#define HEUR_NAME "bound" |
Definition at line 59 of file heur_bound.c.
◆ HEUR_DESC
#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.
◆ HEUR_DISPCHAR
#define HEUR_DISPCHAR SCIP_HEURDISPCHAR_PROP |
Definition at line 61 of file heur_bound.c.
◆ HEUR_PRIORITY
#define HEUR_PRIORITY -1107000 |
Definition at line 62 of file heur_bound.c.
◆ HEUR_FREQ
#define HEUR_FREQ -1 |
Definition at line 63 of file heur_bound.c.
◆ HEUR_FREQOFS
#define HEUR_FREQOFS 0 |
Definition at line 64 of file heur_bound.c.
◆ HEUR_MAXDEPTH
#define HEUR_MAXDEPTH -1 |
Definition at line 65 of file heur_bound.c.
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_BEFORENODE |
Definition at line 66 of file heur_bound.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 67 of file heur_bound.c.
◆ DEFAULT_ONLYWITHOUTSOL
#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.
◆ DEFAULT_MAXPROPROUNDS
#define DEFAULT_MAXPROPROUNDS 0 /* maximum number of propagation rounds during probing */ |
Definition at line 70 of file heur_bound.c.
◆ DEFAULT_BOUND
#define DEFAULT_BOUND 'l' |
to which bound should integer variables be fixed?
Definition at line 71 of file heur_bound.c.
Function Documentation
◆ applyBoundHeur()
|
static |
main procedure of the bound heuristic
- Parameters
-
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 FALSE, HEUR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_FOUNDSOL, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_IMPLINT, SCIP_VERBLEVEL_FULL, SCIPbacktrackProbing(), SCIPcreateSol(), SCIPdebugMsg, SCIPendProbing(), SCIPfixVarProbing(), SCIPfreeSol(), SCIPgetLPSolstat(), SCIPgetNLPCols(), SCIPgetNLPIterations(), SCIPgetNPseudoBranchCands(), SCIPgetNUnfixedLPCols(), SCIPgetProbingDepth(), SCIPgetSolOrigObj(), SCIPgetSolvingTime(), SCIPgetVarsData(), SCIPisInfinity(), SCIPisLPSolBasic(), SCIPlinkLPSol(), SCIPpropagateProbing(), SCIProundSol(), SCIPsnprintfProbingStats(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPtrySol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPverbMessage(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_HEUREXEC().
◆ SCIP_DECL_HEURCOPY()
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 301 of file heur_bound.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurBound().
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 315 of file heur_bound.c.
References NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), and SCIPheurSetData().
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 330 of file heur_bound.c.
References applyBoundHeur(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPconstructLP(), SCIPcutoffNode(), SCIPdebugMsg, SCIPflushLP(), SCIPgetBestSol(), SCIPgetCurrentNode(), SCIPgetNPseudoBranchCands(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPisLPConstructed(), SCIPisStopped(), SCIPnodeGetNumber(), and TRUE.