Detailed Description
primal heuristic interface for LP diving heuristics on the master variables
Definition in file heur_masterdiving.c.
#include <assert.h>
#include <string.h>
#include "heur_masterdiving.h"
#include "pricer_gcg.h"
#include "relax_gcg.h"
Go to the source code of this file.
Data Structures | |
struct | SCIP_HeurData |
Macros | |
#define | HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
#define | HEUR_USESSUBSCIP FALSE |
#define | DEFAULT_MINRELDEPTH 0.0 |
#define | DEFAULT_MAXRELDEPTH 1.0 |
#define | DEFAULT_MAXLPITERQUOT 0.05 |
#define | DEFAULT_MAXLPITEROFS 1000 |
#define | DEFAULT_MAXPRICEROUNDS 0 |
#define | DEFAULT_USEFARKASONLY FALSE |
#define | DEFAULT_MAXDIVEUBQUOT 0.8 |
#define | DEFAULT_MAXDIVEAVGQUOT 0.0 |
#define | DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
#define | DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
#define | DEFAULT_BACKTRACK FALSE |
#define | DEFAULT_MAXDISCREPANCY 2 |
#define | DEFAULT_MAXDISCDEPTH 0 |
#define | MINLPITER 10000 |
Functions | |
static | SCIP_DECL_HEURFREE (heurFreeMasterdiving) |
static | SCIP_DECL_HEURINIT (heurInitMasterdiving) |
static | SCIP_DECL_HEUREXIT (heurExitMasterdiving) |
static | SCIP_DECL_HEURINITSOL (heurInitsolMasterdiving) |
static | SCIP_DECL_HEUREXITSOL (heurExitsolMasterdiving) |
static | SCIP_DECL_HEUREXEC (heurExecMasterdiving) |
GCG_DIVINGDATA * | GCGheurGetDivingDataMaster (SCIP_HEUR *heur) |
void | GCGheurSetDivingDataMaster (SCIP_HEUR *heur, GCG_DIVINGDATA *divingdata) |
SCIP_RETCODE | GCGincludeDivingHeurMaster (SCIP *scip, SCIP_HEUR **heur, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, GCG_DECL_DIVINGFREE((*divingfree)), GCG_DECL_DIVINGINIT((*divinginit)), GCG_DECL_DIVINGEXIT((*divingexit)), GCG_DECL_DIVINGINITSOL((*divinginitsol)), GCG_DECL_DIVINGEXITSOL((*divingexitsol)), GCG_DECL_DIVINGINITEXEC((*divinginitexec)), GCG_DECL_DIVINGEXITEXEC((*divingexitexec)), GCG_DECL_DIVINGSELECTVAR((*divingselectvar)), GCG_DIVINGDATA *divingdata) |
SCIP_RETCODE | SCIPincludeEventHdlrMasterdiving (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 44 of file heur_masterdiving.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 45 of file heur_masterdiving.c.
◆ DEFAULT_MINRELDEPTH
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 52 of file heur_masterdiving.c.
◆ DEFAULT_MAXRELDEPTH
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 53 of file heur_masterdiving.c.
◆ DEFAULT_MAXLPITERQUOT
#define DEFAULT_MAXLPITERQUOT 0.05 |
maximal fraction of diving LP iterations compared to node LP iterations
Definition at line 54 of file heur_masterdiving.c.
◆ DEFAULT_MAXLPITEROFS
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 55 of file heur_masterdiving.c.
◆ DEFAULT_MAXPRICEROUNDS
#define DEFAULT_MAXPRICEROUNDS 0 |
maximal number of allowed pricing rounds (-1: no limit)
Definition at line 56 of file heur_masterdiving.c.
◆ DEFAULT_USEFARKASONLY
#define DEFAULT_USEFARKASONLY FALSE |
perform pricing only if infeasibility is encountered
Definition at line 57 of file heur_masterdiving.c.
◆ DEFAULT_MAXDIVEUBQUOT
#define DEFAULT_MAXDIVEUBQUOT 0.8 |
maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 58 of file heur_masterdiving.c.
◆ DEFAULT_MAXDIVEAVGQUOT
#define DEFAULT_MAXDIVEAVGQUOT 0.0 |
maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 60 of file heur_masterdiving.c.
◆ DEFAULT_MAXDIVEUBQUOTNOSOL
#define DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
maximal UBQUOT when no solution was found yet (0.0: no limit)
Definition at line 62 of file heur_masterdiving.c.
◆ DEFAULT_MAXDIVEAVGQUOTNOSOL
#define DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
maximal AVGQUOT when no solution was found yet (0.0: no limit)
Definition at line 63 of file heur_masterdiving.c.
◆ DEFAULT_BACKTRACK
#define DEFAULT_BACKTRACK FALSE |
single backtracking by choosing another variable in case of infeasibility
Definition at line 64 of file heur_masterdiving.c.
◆ DEFAULT_MAXDISCREPANCY
#define DEFAULT_MAXDISCREPANCY 2 |
maximal discrepancy allowed in backtracking and limited discrepancy search
Definition at line 65 of file heur_masterdiving.c.
◆ DEFAULT_MAXDISCDEPTH
#define DEFAULT_MAXDISCDEPTH 0 |
maximal depth until which a limited discrepancy search is performed
Definition at line 66 of file heur_masterdiving.c.
◆ MINLPITER
#define MINLPITER 10000 |
minimal number of LP iterations allowed in each LP solving call
Definition at line 68 of file heur_masterdiving.c.
Function Documentation
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 150 of file heur_masterdiving.c.
◆ SCIP_DECL_HEURINIT()
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 176 of file heur_masterdiving.c.
◆ SCIP_DECL_HEUREXIT()
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 205 of file heur_masterdiving.c.
◆ SCIP_DECL_HEURINITSOL()
|
static |
solving process initialization method of primal heuristic (called when branch and bound process is about to begin)
Definition at line 230 of file heur_masterdiving.c.
◆ SCIP_DECL_HEUREXITSOL()
|
static |
solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)
Definition at line 271 of file heur_masterdiving.c.
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 294 of file heur_masterdiving.c.
References EVENTHDLR_NAME, GCGmasterGetOrigprob(), GCGrelaxIsOrigSolFeasible(), and MINLPITER.
◆ GCGheurGetDivingDataMaster()
GCG_DIVINGDATA* GCGheurGetDivingDataMaster | ( | SCIP_HEUR * | heur | ) |
gets diving rule specific data of a diving heuristic
- Parameters
-
heur primal heuristic
Definition at line 975 of file heur_masterdiving.c.
◆ GCGheurSetDivingDataMaster()
void GCGheurSetDivingDataMaster | ( | SCIP_HEUR * | heur, |
GCG_DIVINGDATA * | divingdata | ||
) |
sets diving rule specific data of a diving heuristic
- Parameters
-
heur primal heuristic divingdata diving rule specific data
Definition at line 991 of file heur_masterdiving.c.
◆ GCGincludeDivingHeurMaster()
SCIP_RETCODE GCGincludeDivingHeurMaster | ( | SCIP * | scip, |
SCIP_HEUR ** | heur, | ||
const char * | name, | ||
const char * | desc, | ||
char | dispchar, | ||
int | priority, | ||
int | freq, | ||
int | freqofs, | ||
int | maxdepth, | ||
GCG_DECL_DIVINGFREE((*divingfree)) | , | ||
GCG_DECL_DIVINGINIT((*divinginit)) | , | ||
GCG_DECL_DIVINGEXIT((*divingexit)) | , | ||
GCG_DECL_DIVINGINITSOL((*divinginitsol)) | , | ||
GCG_DECL_DIVINGEXITSOL((*divingexitsol)) | , | ||
GCG_DECL_DIVINGINITEXEC((*divinginitexec)) | , | ||
GCG_DECL_DIVINGEXITEXEC((*divingexitexec)) | , | ||
GCG_DECL_DIVINGSELECTVAR((*divingselectvar)) | , | ||
GCG_DIVINGDATA * | divingdata | ||
) |
creates a master diving heuristic and includes it in GCG
- Parameters
-
scip SCIP data structure heur pointer to diving heuristic name name of primal heuristic desc description of primal heuristic dispchar display character of primal heuristic priority priority of the primal heuristic freq frequency for calling primal heuristic freqofs frequency offset for calling primal heuristic maxdepth maximal depth level to call heuristic at (-1: no limit) divingdata diving rule specific data (or NULL)
Definition at line 1008 of file heur_masterdiving.c.
References DEFAULT_BACKTRACK, DEFAULT_MAXDISCDEPTH, DEFAULT_MAXDISCREPANCY, DEFAULT_MAXDIVEAVGQUOT, DEFAULT_MAXDIVEAVGQUOTNOSOL, DEFAULT_MAXDIVEUBQUOT, DEFAULT_MAXDIVEUBQUOTNOSOL, DEFAULT_MAXLPITEROFS, DEFAULT_MAXLPITERQUOT, DEFAULT_MAXPRICEROUNDS, DEFAULT_MAXRELDEPTH, DEFAULT_MINRELDEPTH, DEFAULT_USEFARKASONLY, EVENTHDLR_NAME, HEUR_TIMING, and HEUR_USESSUBSCIP.
Referenced by GCGincludeHeurMastercoefdiving(), GCGincludeHeurMasterfracdiving(), GCGincludeHeurMasterlinesdiving(), and GCGincludeHeurMastervecldiving().
◆ SCIPincludeEventHdlrMasterdiving()
SCIP_RETCODE SCIPincludeEventHdlrMasterdiving | ( | SCIP * | scip | ) |
creates event handler for masterdiving event
- Parameters
-
scip SCIP data structure
Definition at line 1158 of file heur_masterdiving.c.
References EVENTHDLR_DESC, and EVENTHDLR_NAME.
Referenced by GCGincludeMasterPlugins().