Detailed Description
primal heuristic interface for LP diving heuristics on the original variables
Definition in file heur_origdiving.c.
#include <assert.h>
#include <string.h>
#include "heur_origdiving.h"
#include "relax_gcg.h"
#include "gcg.h"
Go to the source code of this file.
Data Structures | |
struct | SCIP_HeurData |
Macros | |
#define | HEUR_TIMING SCIP_HEURTIMING_AFTERPLUNGE |
#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_OTHERDIRECTION TRUE |
#define | DEFAULT_BACKTRACK FALSE |
#define | DEFAULT_MAXDISCREPANCY 2 |
#define | DEFAULT_MAXDISCDEPTH 0 |
#define | MINLPITER 10000 |
Functions | |
static | SCIP_DECL_HEURFREE (heurFreeOrigdiving) |
static | SCIP_DECL_HEURINIT (heurInitOrigdiving) |
static | SCIP_DECL_HEURINITSOL (heurInitsolOrigdiving) |
static | SCIP_DECL_HEUREXITSOL (heurExitsolOrigdiving) |
static | SCIP_DECL_HEUREXIT (heurExitOrigdiving) |
static | SCIP_DECL_HEUREXEC (heurExecOrigdiving) |
GCG_DIVINGDATA * | GCGheurGetDivingDataOrig (SCIP_HEUR *heur) |
void | GCGheurSetDivingDataOrig (SCIP_HEUR *heur, GCG_DIVINGDATA *divingdata) |
SCIP_RETCODE | GCGincludeDivingHeurOrig (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 | SCIPincludeEventHdlrOrigdiving (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERPLUNGE |
Definition at line 44 of file heur_origdiving.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
Definition at line 45 of file heur_origdiving.c.
◆ DEFAULT_MINRELDEPTH
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 52 of file heur_origdiving.c.
◆ DEFAULT_MAXRELDEPTH
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 53 of file heur_origdiving.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_origdiving.c.
◆ DEFAULT_MAXLPITEROFS
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 55 of file heur_origdiving.c.
◆ DEFAULT_MAXPRICEROUNDS
#define DEFAULT_MAXPRICEROUNDS 0 |
maximal number of allowed pricing rounds (-1: no limit)
Definition at line 56 of file heur_origdiving.c.
◆ DEFAULT_USEFARKASONLY
#define DEFAULT_USEFARKASONLY FALSE |
perform pricing only if infeasibility is encountered
Definition at line 57 of file heur_origdiving.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_origdiving.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_origdiving.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_origdiving.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_origdiving.c.
◆ DEFAULT_OTHERDIRECTION
#define DEFAULT_OTHERDIRECTION TRUE |
try to branch the diving variable in the other direction in case of infeasibility
Definition at line 64 of file heur_origdiving.c.
◆ DEFAULT_BACKTRACK
#define DEFAULT_BACKTRACK FALSE |
single backtracking by choosing another variable in case of infeasibility
Definition at line 65 of file heur_origdiving.c.
◆ DEFAULT_MAXDISCREPANCY
#define DEFAULT_MAXDISCREPANCY 2 |
maximal discrepancy allowed in backtracking and limited discrepancy search
Definition at line 66 of file heur_origdiving.c.
◆ DEFAULT_MAXDISCDEPTH
#define DEFAULT_MAXDISCDEPTH 0 |
maximal depth until which a limited discrepancy search is performed
Definition at line 67 of file heur_origdiving.c.
◆ MINLPITER
#define MINLPITER 10000 |
minimal number of LP iterations allowed in each LP solving call
Definition at line 69 of file heur_origdiving.c.
Function Documentation
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 151 of file heur_origdiving.c.
◆ SCIP_DECL_HEURINIT()
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 177 of file heur_origdiving.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 207 of file heur_origdiving.c.
◆ SCIP_DECL_HEUREXITSOL()
|
static |
solving process deinitialization method of primal heuristic (called before branch and bound process data is freed)
Definition at line 248 of file heur_origdiving.c.
◆ SCIP_DECL_HEUREXIT()
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 271 of file heur_origdiving.c.
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 296 of file heur_origdiving.c.
References EVENTHDLR_NAME, GCGgetMasterprob(), GCGgetNPricingprobs(), GCGgetNRelPricingprobs(), GCGrelaxBacktrackProbing(), GCGrelaxEndProbing(), GCGrelaxNewProbingnodeMaster(), GCGrelaxNewProbingnodeOrig(), GCGrelaxPerformProbing(), GCGrelaxPerformProbingWithPricing(), GCGrelaxStartProbing(), and MINLPITER.
◆ GCGheurGetDivingDataOrig()
GCG_DIVINGDATA* GCGheurGetDivingDataOrig | ( | SCIP_HEUR * | heur | ) |
gets diving rule specific data of a diving heuristic
- Parameters
-
heur primal heuristic
Definition at line 1087 of file heur_origdiving.c.
Referenced by GCG_DECL_DIVINGEXIT(), GCG_DECL_DIVINGEXITEXEC(), GCG_DECL_DIVINGFREE(), GCG_DECL_DIVINGINIT(), GCG_DECL_DIVINGINITEXEC(), and GCG_DECL_DIVINGSELECTVAR().
◆ GCGheurSetDivingDataOrig()
void GCGheurSetDivingDataOrig | ( | 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 1103 of file heur_origdiving.c.
Referenced by GCG_DECL_DIVINGFREE().
◆ GCGincludeDivingHeurOrig()
SCIP_RETCODE GCGincludeDivingHeurOrig | ( | 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 an original 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 1120 of file heur_origdiving.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_OTHERDIRECTION, DEFAULT_USEFARKASONLY, EVENTHDLR_NAME, GCGgetMasterprob(), HEUR_TIMING, and HEUR_USESSUBSCIP.
Referenced by GCGincludeHeurGcgcoefdiving(), GCGincludeHeurGcgfracdiving(), GCGincludeHeurGcgguideddiving(), GCGincludeHeurGcglinesdiving(), GCGincludeHeurGcgpscostdiving(), and GCGincludeHeurGcgveclendiving().
◆ SCIPincludeEventHdlrOrigdiving()
SCIP_RETCODE SCIPincludeEventHdlrOrigdiving | ( | SCIP * | scip | ) |
creates event handler for origdiving event and includes it in the master problem
- Parameters
-
scip SCIP data structure
Definition at line 1280 of file heur_origdiving.c.
References EVENTHDLR_DESC, EVENTHDLR_NAME, and GCGgetMasterprob().
Referenced by SCIPincludeGcgPlugins().