LP diving heuristic that rounds variables with long column vectors.
Definition in file heur_veclendiving.c.
#include "scip/heuristics.h"#include "scip/heur_veclendiving.h"#include "scip/pub_heur.h"#include "scip/pub_lp.h"#include "scip/pub_message.h"#include "scip/pub_var.h"#include "scip/scip_heur.h"#include "scip/scip_mem.h"#include "scip/scip_numerics.h"#include "scip/scip_prob.h"#include "scip/scip_sol.h"#include <string.h>Go to the source code of this file.
Macros | |
| #define | HEUR_NAME "veclendiving" |
| #define | HEUR_DESC "LP diving heuristic that rounds variables with long column vectors" |
| #define | HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
| #define | HEUR_PRIORITY -1003100 |
| #define | HEUR_FREQ 10 |
| #define | HEUR_FREQOFS 4 |
| #define | HEUR_MAXDEPTH -1 |
| #define | HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
| #define | HEUR_USESSUBSCIP FALSE |
| #define | DIVESET_DIVETYPES SCIP_DIVETYPE_INTEGRALITY |
| #define | DIVESET_ISPUBLIC TRUE |
| #define | DEFAULT_MINRELDEPTH 0.0 |
| #define | DEFAULT_MAXRELDEPTH 1.0 |
| #define | DEFAULT_MAXLPITERQUOT 0.05 |
| #define | DEFAULT_MAXLPITEROFS 1000 |
| #define | DEFAULT_MAXDIVEUBQUOT 0.8 |
| #define | DEFAULT_MAXDIVEAVGQUOT 0.0 |
| #define | DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
| #define | DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
| #define | DEFAULT_BACKTRACK TRUE |
| #define | DEFAULT_LPRESOLVEDOMCHGQUOT 0.15 |
| #define | DEFAULT_LPSOLVEFREQ 0 |
| #define | DEFAULT_ONLYLPBRANCHCANDS FALSE |
| #define | DEFAULT_RANDSEED 113 |
| #define | divesetAvailableVeclendiving NULL |
Functions | |
| static | SCIP_DECL_HEURCOPY (heurCopyVeclendiving) |
| static | assert (heur !=NULL) |
| assert (strcmp(SCIPheurGetName(heur), HEUR_NAME)==0) | |
| assert (scip !=NULL) | |
| assert (heurdata !=NULL) | |
| SCIPfreeBlockMemory (scip, &heurdata) | |
| SCIPheurSetData (heur, NULL) | |
| SCIPcreateSol (scip, &heurdata->sol, heur)) | |
| SCIPfreeSol (scip, &heurdata->sol)) | |
| assert (SCIPheurGetNDivesets(heur) > 0) | |
| assert (SCIPheurGetDivesets(heur) !=NULL) | |
| assert (diveset !=NULL) | |
| if (SCIPgetNBinVars(scip)+SCIPgetNIntVars(scip)==0) | |
| SCIP_RETCODE | SCIPincludeHeurVeclendiving (SCIP *scip) |
Variables | |
| heurdata = SCIPheurGetData(heur) | |
| return | SCIP_OKAY |
| static SCIP_DIVESET * | diveset |
| * | result = SCIP_DIDNOTRUN |
| #define HEUR_NAME "veclendiving" |
Definition at line 46 of file heur_veclendiving.c.
| #define HEUR_DESC "LP diving heuristic that rounds variables with long column vectors" |
Definition at line 47 of file heur_veclendiving.c.
| #define HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
Definition at line 48 of file heur_veclendiving.c.
| #define HEUR_PRIORITY -1003100 |
Definition at line 49 of file heur_veclendiving.c.
| #define HEUR_FREQ 10 |
Definition at line 50 of file heur_veclendiving.c.
| #define HEUR_FREQOFS 4 |
Definition at line 51 of file heur_veclendiving.c.
| #define HEUR_MAXDEPTH -1 |
Definition at line 52 of file heur_veclendiving.c.
| #define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 53 of file heur_veclendiving.c.
| #define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 54 of file heur_veclendiving.c.
| #define DIVESET_DIVETYPES SCIP_DIVETYPE_INTEGRALITY |
bit mask that represents all supported dive types
Definition at line 55 of file heur_veclendiving.c.
| #define DIVESET_ISPUBLIC TRUE |
is this dive set publicly available (ie., can be used by other primal heuristics?)
Definition at line 56 of file heur_veclendiving.c.
| #define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 63 of file heur_veclendiving.c.
| #define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 64 of file heur_veclendiving.c.
| #define DEFAULT_MAXLPITERQUOT 0.05 |
maximal fraction of diving LP iterations compared to node LP iterations
Definition at line 65 of file heur_veclendiving.c.
| #define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 66 of file heur_veclendiving.c.
| #define DEFAULT_MAXDIVEUBQUOT 0.8 |
maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 67 of file heur_veclendiving.c.
| #define DEFAULT_MAXDIVEAVGQUOT 0.0 |
maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 69 of file heur_veclendiving.c.
| #define DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
maximal UBQUOT when no solution was found yet (0.0: no limit)
Definition at line 71 of file heur_veclendiving.c.
| #define DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
maximal AVGQUOT when no solution was found yet (0.0: no limit)
Definition at line 72 of file heur_veclendiving.c.
| #define DEFAULT_BACKTRACK TRUE |
use one level of backtracking if infeasibility is encountered?
Definition at line 73 of file heur_veclendiving.c.
| #define DEFAULT_LPRESOLVEDOMCHGQUOT 0.15 |
percentage of immediate domain changes during probing to trigger LP resolve
Definition at line 74 of file heur_veclendiving.c.
| #define DEFAULT_LPSOLVEFREQ 0 |
LP solve frequency for diving heuristics
Definition at line 75 of file heur_veclendiving.c.
| #define DEFAULT_ONLYLPBRANCHCANDS FALSE |
should only LP branching candidates be considered instead of the slower but more general constraint handler diving variable selection?
Definition at line 76 of file heur_veclendiving.c.
| #define DEFAULT_RANDSEED 113 |
initial seed for random number generation
Definition at line 78 of file heur_veclendiving.c.
| #define divesetAvailableVeclendiving NULL |
Definition at line 219 of file heur_veclendiving.c.
Referenced by SCIPincludeHeurVeclendiving().
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 97 of file heur_veclendiving.c.
References assert(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurVeclendiving().
| assert | ( | heur ! | = NULL | ) |
| assert | ( | strcmp(SCIPheurGetName(heur), HEUR_NAME) | = =0 | ) |
References HEUR_NAME.
| SCIPfreeBlockMemory | ( | scip | , |
| & | heurdata ) |
References heurdata.
| assert | ( | SCIPheurGetNDivesets(heur) | , |
| 0 | ) |
| assert | ( | SCIPheurGetDivesets(heur) ! | = NULL | ) |
| if | ( | SCIPgetNBinVars(scip)+SCIPgetNIntVars(scip) | = = 0 | ) |
calculate score and preferred rounding direction for the candidate variable
Definition at line 186 of file heur_veclendiving.c.
References diveset, heurdata, result, SCIP_DIVECONTEXT_SINGLE, and SCIP_OKAY.
| heurdata = SCIPheurGetData(heur) |
Definition at line 120 of file heur_veclendiving.c.
| return SCIP_OKAY |
Definition at line 126 of file heur_veclendiving.c.
| diveset |
execution method of primal heuristic
Definition at line 175 of file heur_veclendiving.c.
| * result = SCIP_DIDNOTRUN |
Definition at line 183 of file heur_veclendiving.c.