type definitions for primal heuristics
This file defines the interface for primal heuristics implemented in C.
Definition in file type_heur.h.
#include "scip/def.h"
#include "scip/type_scip.h"
#include "scip/type_result.h"
#include "scip/type_timing.h"
#include "scip/type_var.h"
Go to the source code of this file.
Macros | |
#define | SCIP_DIVETYPE_NONE 0x000u |
#define | SCIP_DIVETYPE_INTEGRALITY 0x001u |
#define | SCIP_DIVETYPE_SOS1VARIABLE 0x002u |
#define | SCIP_HEURDISPCHAR_LNS 'L' |
#define | SCIP_HEURDISPCHAR_DIVING 'd' |
#define | SCIP_HEURDISPCHAR_ITERATIVE 'i' |
#define | SCIP_HEURDISPCHAR_OBJDIVING 'o' |
#define | SCIP_HEURDISPCHAR_PROP 'p' |
#define | SCIP_HEURDISPCHAR_ROUNDING 'r' |
#define | SCIP_HEURDISPCHAR_TRIVIAL 't' |
#define | SCIP_DECL_HEURCOPY(x) |
#define | SCIP_DECL_HEURFREE(x) |
#define | SCIP_DECL_HEURINIT(x) |
#define | SCIP_DECL_HEUREXIT(x) |
#define | SCIP_DECL_HEURINITSOL(x) |
#define | SCIP_DECL_HEUREXITSOL(x) |
#define | SCIP_DECL_HEUREXEC(x) |
#define | SCIP_DECL_DIVESETGETSCORE(x) |
#define | SCIP_DECL_DIVESETAVAILABLE(x) |
#define SCIP_DIVETYPE_NONE 0x000u |
represents different methods for a dive set to explore the next children no method specified
Definition at line 59 of file type_heur.h.
#define SCIP_DIVETYPE_INTEGRALITY 0x001u |
use branching on a variable by shrinking the domain in the child nodes
Definition at line 60 of file type_heur.h.
Referenced by getScore(), SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), and selectNextDiving().
#define SCIP_DIVETYPE_SOS1VARIABLE 0x002u |
branch on a variable solution value by exploiting special-ordered set conflict structure
Definition at line 61 of file type_heur.h.
Referenced by getDiveBdChgsSOS1conflictgraph(), getDiveBdChgsSOS1constraints(), getScore(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_DIVESETGETSCORE(), and SCIP_DECL_DIVESETGETSCORE().
#define SCIP_HEURDISPCHAR_LNS 'L' |
commonly used display characters indicating special classes of primal heuristics a 'L'arge Neighborhood or other local search heuristic
Definition at line 83 of file type_heur.h.
#define SCIP_HEURDISPCHAR_DIVING 'd' |
a 'd'iving heuristic that dives down an auxiliary branch-and-bound path
Definition at line 84 of file type_heur.h.
#define SCIP_HEURDISPCHAR_ITERATIVE 'i' |
an iterative improvement heuristic such as 1-opt or 2-opt
Definition at line 85 of file type_heur.h.
#define SCIP_HEURDISPCHAR_OBJDIVING 'o' |
an 'o'bjective diving or feasibility pump heuristic
Definition at line 86 of file type_heur.h.
#define SCIP_HEURDISPCHAR_PROP 'p' |
a 'p'ropagation heuristic, often applied before branch-and-bound starts
Definition at line 87 of file type_heur.h.
#define SCIP_HEURDISPCHAR_ROUNDING 'r' |
a 'r'ounding heuristic that iteratively tries to round an LP or relaxation solution
Definition at line 88 of file type_heur.h.
#define SCIP_HEURDISPCHAR_TRIVIAL 't' |
a 't'rivial or helper heuristic, usually applied before branch-and-bound starts
Definition at line 89 of file type_heur.h.
#define SCIP_DECL_HEURCOPY | ( | x | ) |
copy method for heuristic plugins (called when SCIP copies plugins)
input:
Definition at line 97 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetCopy(), SCIPincludeHeur(), and SCIPsetHeurCopy().
#define SCIP_DECL_HEURFREE | ( | x | ) |
destructor of primal heuristic to free user data (called when SCIP is exiting)
input:
Definition at line 105 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetFree(), SCIPincludeHeur(), and SCIPsetHeurFree().
#define SCIP_DECL_HEURINIT | ( | x | ) |
initialization method of primal heuristic (called after problem was transformed)
input:
Definition at line 113 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetInit(), SCIPincludeHeur(), and SCIPsetHeurInit().
#define SCIP_DECL_HEUREXIT | ( | x | ) |
deinitialization method of primal heuristic (called before transformed problem is freed)
input:
Definition at line 121 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetExit(), SCIPincludeHeur(), and SCIPsetHeurExit().
#define SCIP_DECL_HEURINITSOL | ( | x | ) |
solving process initialization method of primal heuristic (called when branch and bound process is about to begin)
This method is called when the presolving was finished and the branch and bound process is about to begin. The primal heuristic may use this call to initialize its branch and bound specific data.
input:
Definition at line 132 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetInitsol(), SCIPincludeHeur(), and SCIPsetHeurInitsol().
#define SCIP_DECL_HEUREXITSOL | ( | x | ) |
solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)
This method is called before the branch and bound process is freed. The primal heuristic should use this call to clean up its branch and bound data.
input:
Definition at line 143 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPheurSetExitsol(), SCIPincludeHeur(), and SCIPsetHeurExitsol().
#define SCIP_DECL_HEUREXEC | ( | x | ) |
execution method of primal heuristic
Searches for feasible primal solutions. The method is called in the node processing loop.
input:
possible return values for *result:
Definition at line 163 of file type_heur.h.
Referenced by doHeurCreate(), SCIPheurCreate(), SCIPincludeHeur(), and SCIPincludeHeurBasic().
#define SCIP_DECL_DIVESETGETSCORE | ( | x | ) |
calculate score and preferred rounding direction for the candidate variable; the best candidate maximizes the score
input:
returns SCIP_OKAY if everything worked, otherwise, a suitable error code
Definition at line 184 of file type_heur.h.
#define SCIP_DECL_DIVESETAVAILABLE | ( | x | ) |
optional callback to check preconditions for diving, e.g., if an incumbent solution is available
input:
output:
returns SCIP_OKAY if everything worked, otherwise, a suitable error code
Definition at line 199 of file type_heur.h.
typedef unsigned int SCIP_DIVETYPE |
Definition at line 63 of file type_heur.h.
typedef enum SCIP_DiveContext SCIP_DIVECONTEXT |
Definition at line 73 of file type_heur.h.
primal heuristic
Definition at line 76 of file type_heur.h.
typedef struct SCIP_HeurData SCIP_HEURDATA |
locally defined primal heuristic data
Definition at line 77 of file type_heur.h.
typedef struct SCIP_Diveset SCIP_DIVESET |
common parameters for all diving heuristics
Definition at line 78 of file type_heur.h.
typedef struct SCIP_VGraph SCIP_VGRAPH |
variable graph data structure to determine breadth-first distances between variables
Definition at line 79 of file type_heur.h.
enum SCIP_DiveContext |
context for diving statistics
Definition at line 66 of file type_heur.h.