Detailed Description
rapidlearning separator
Definition in file sepa_rapidlearning.c.
#include <assert.h>
#include <string.h>
#include "scip/sepa_rapidlearning.h"
#include "scip/scipdefplugins.h"
#include "scip/heuristics.h"
#include "scip/pub_var.h"
Go to the source code of this file.
Functions | |
static | SCIP_DECL_SEPACOPY (sepaCopyRapidlearning) |
static | SCIP_DECL_SEPAFREE (sepaFreeRapidlearning) |
static SCIP_RETCODE | setupAndSolveSubscipRapidlearning (SCIP *scip, SCIP *subscip, SCIP_SEPADATA *sepadata, int randseed, SCIP_Bool global, SCIP_RESULT *result) |
static SCIP_RETCODE | checkExec (SCIP *scip, SCIP_SEPADATA *sepadata, SCIP_Bool *run) |
static | SCIP_DECL_SEPAEXECLP (sepaExeclpRapidlearning) |
SCIP_RETCODE | SCIPincludeSepaRapidlearning (SCIP *scip) |
Macro Definition Documentation
◆ SEPA_NAME
#define SEPA_NAME "rapidlearning" |
Definition at line 44 of file sepa_rapidlearning.c.
◆ SEPA_DESC
#define SEPA_DESC "rapid learning heuristic and separator" |
Definition at line 45 of file sepa_rapidlearning.c.
◆ SEPA_PRIORITY
#define SEPA_PRIORITY -1200000 |
Definition at line 46 of file sepa_rapidlearning.c.
◆ SEPA_FREQ
#define SEPA_FREQ 5 |
Definition at line 47 of file sepa_rapidlearning.c.
◆ SEPA_MAXBOUNDDIST
#define SEPA_MAXBOUNDDIST 1.0 |
Definition at line 48 of file sepa_rapidlearning.c.
◆ SEPA_USESSUBSCIP
#define SEPA_USESSUBSCIP TRUE |
does the separator use a secondary SCIP instance?
Definition at line 49 of file sepa_rapidlearning.c.
◆ SEPA_DELAY
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 50 of file sepa_rapidlearning.c.
◆ DEFAULT_APPLYCONFLICTS
#define DEFAULT_APPLYCONFLICTS TRUE |
should the found conflicts be applied in the original SCIP?
Definition at line 52 of file sepa_rapidlearning.c.
◆ DEFAULT_APPLYBDCHGS
#define DEFAULT_APPLYBDCHGS TRUE |
should the found global bound deductions be applied in the original SCIP? apply only if conflicts and incumbent solution will be copied too
Definition at line 55 of file sepa_rapidlearning.c.
◆ DEFAULT_APPLYINFERVALS
#define DEFAULT_APPLYINFERVALS TRUE |
should the inference values be used as initialization in the original SCIP?
Definition at line 56 of file sepa_rapidlearning.c.
◆ DEFAULT_REDUCEDINFER
#define DEFAULT_REDUCEDINFER FALSE |
should the inference values only be used when rapid learning found other reductions?
Definition at line 57 of file sepa_rapidlearning.c.
◆ DEFAULT_APPLYPRIMALSOL
#define DEFAULT_APPLYPRIMALSOL TRUE |
should the incumbent solution be copied to the original SCIP?
Definition at line 58 of file sepa_rapidlearning.c.
◆ DEFAULT_APPLYSOLVED
#define DEFAULT_APPLYSOLVED TRUE |
should a solved status be copied to the original SCIP?
Definition at line 59 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKEXEC
#define DEFAULT_CHECKEXEC TRUE |
check whether rapid learning should be executed
Definition at line 61 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKDEGANERACY
#define DEFAULT_CHECKDEGANERACY TRUE |
should local LP degeneracy be checked?
Definition at line 62 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKDUALBOUND
#define DEFAULT_CHECKDUALBOUND FALSE |
should the progress on the dual bound be checked?
Definition at line 63 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKLEAVES
#define DEFAULT_CHECKLEAVES FALSE |
should the ratio of leaves proven to be infeasible and exceeding the cutoff bound be checked?
Definition at line 65 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKOBJ
#define DEFAULT_CHECKOBJ FALSE |
should the local objection function be checked?
Definition at line 66 of file sepa_rapidlearning.c.
◆ DEFAULT_CHECKNSOLS
#define DEFAULT_CHECKNSOLS TRUE |
should the number of solutions found so far be checked?
Definition at line 67 of file sepa_rapidlearning.c.
◆ DEFAULT_MINDEGENERACY
#define DEFAULT_MINDEGENERACY 0.7 |
minimal degeneracy threshold to allow local rapid learning
Definition at line 68 of file sepa_rapidlearning.c.
◆ DEFAULT_MININFLPRATIO
#define DEFAULT_MININFLPRATIO 10.0 |
minimal threshold of inf/obj leaves to allow local rapid learning
Definition at line 69 of file sepa_rapidlearning.c.
◆ DEFAULT_MINVARCONSRATIO
#define DEFAULT_MINVARCONSRATIO 2.0 |
minimal ratio of unfixed variables in relation to basis size to allow local rapid learning
Definition at line 71 of file sepa_rapidlearning.c.
◆ DEFAULT_NWAITINGNODES
#define DEFAULT_NWAITINGNODES 100L |
number of nodes that should be processed before rapid learning is executed locally based on the progress of the dualbound
Definition at line 73 of file sepa_rapidlearning.c.
◆ DEFAULT_MAXNVARS
#define DEFAULT_MAXNVARS 10000 |
maximum problem size (variables) for which rapid learning will be called
Definition at line 75 of file sepa_rapidlearning.c.
◆ DEFAULT_MAXNCONSS
#define DEFAULT_MAXNCONSS 10000 |
maximum problem size (constraints) for which rapid learning will be called
Definition at line 76 of file sepa_rapidlearning.c.
◆ DEFAULT_MAXCALLS
#define DEFAULT_MAXCALLS 100 |
maximum number of overall calls
Definition at line 77 of file sepa_rapidlearning.c.
◆ DEFAULT_MINNODES
#define DEFAULT_MINNODES 500 |
minimum number of nodes considered in rapid learning run
Definition at line 79 of file sepa_rapidlearning.c.
◆ DEFAULT_MAXNODES
#define DEFAULT_MAXNODES 5000 |
maximum number of nodes considered in rapid learning run
Definition at line 80 of file sepa_rapidlearning.c.
◆ DEFAULT_CONTVARS
#define DEFAULT_CONTVARS FALSE |
should rapid learning be applied when there are continuous variables?
Definition at line 82 of file sepa_rapidlearning.c.
◆ DEFAULT_CONTVARSQUOT
#define DEFAULT_CONTVARSQUOT 0.3 |
maximal portion of continuous variables to apply rapid learning
Definition at line 83 of file sepa_rapidlearning.c.
◆ DEFAULT_LPITERQUOT
#define DEFAULT_LPITERQUOT 0.2 |
maximal fraction of LP iterations compared to node LP iterations
Definition at line 84 of file sepa_rapidlearning.c.
◆ DEFAULT_COPYCUTS
#define DEFAULT_COPYCUTS TRUE |
should all active cuts from the cutpool of the original scip be copied to constraints of the subscip
Definition at line 86 of file sepa_rapidlearning.c.
Function Documentation
◆ SCIP_DECL_SEPACOPY()
|
static |
copy method for separator plugins (called when SCIP copies plugins)
Definition at line 133 of file sepa_rapidlearning.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaRapidlearning(), SCIPsepaGetName(), and SEPA_NAME.
◆ SCIP_DECL_SEPAFREE()
|
static |
destructor of separator to free user data (called when SCIP is exiting)
Definition at line 147 of file sepa_rapidlearning.c.
References NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), and SEPA_NAME.
◆ setupAndSolveSubscipRapidlearning()
|
static |
setup and solve sub-SCIP
- Parameters
-
scip SCIP data structure subscip subSCIP data structure sepadata separator data randseed global seed shift used in the sub-SCIP global should rapid learning run on the global problem? result result pointer
Definition at line 167 of file sepa_rapidlearning.c.
References FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_CALL_ABORT, SCIP_CONFTYPE_UNKNOWN, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_INVALIDCALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIP_PARAMEMPHASIS_CPSOLVER, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_Real, SCIP_REDUCEDDOM, SCIP_STAGE_SOLVED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_OPTIMAL, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPaddConflict(), SCIPallocBufferArray, SCIPallowStrongDualReds(), SCIPblkmem(), SCIPchgVarType(), SCIPconsGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetNConss(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPcopyConsCompression(), SCIPcopyCuts(), SCIPcopyLimits(), SCIPdebugMsg, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetConsCopy(), SCIPgetCurrentNode(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetEffectiveRootDepth(), SCIPgetIntParam(), SCIPgetNConflictConssApplied(), SCIPgetNConflictConssFound(), SCIPgetNLPIterations(), SCIPgetNLPs(), SCIPgetNRootboundChgs(), SCIPgetNSols(), SCIPgetSolOrigObj(), SCIPgetSols(), SCIPgetStage(), SCIPgetStatus(), SCIPgetUpperbound(), SCIPgetVarAvgConflictlength(), SCIPgetVarAvgInferences(), SCIPgetVarsData(), SCIPgetVarVSIDS(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPinitVarBranchStats(), SCIPisEQ(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisLE(), SCIPisParamFixed(), SCIPpresolve(), SCIPprintStatistics(), SCIPretransformObj(), SCIPsetBoolParam(), SCIPsetEmphasis(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetObjlimit(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPsolve(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtransformProb(), SCIPtranslateSubSol(), SCIPtrySolFree(), SCIPunfixParam(), SCIPupdateLocalDualbound(), SCIPvarGetLbGlobal(), SCIPvarGetTransVar(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_SEPAEXECLP().
◆ checkExec()
|
static |
returns whether rapid learning is allowed to run locally
- Parameters
-
scip SCIP data structure sepadata separator's private data run pointer to store whether rapid learning is allowed to run
Definition at line 690 of file sepa_rapidlearning.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMsg, SCIPgetLocalLowerbound(), SCIPgetLowerboundRoot(), SCIPgetLPDualDegeneracy(), SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPgetNInfeasibleLeaves(), SCIPgetNIntVars(), SCIPgetNNodes(), SCIPgetNObjlimLeaves(), SCIPgetNObjVars(), SCIPgetNSolsFound(), SCIPgetVars(), SCIPisEQ(), SCIPisInfinity(), SCIPisLE(), SCIPisZero(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), and TRUE.
Referenced by SCIP_DECL_SEPAEXECLP().
◆ SCIP_DECL_SEPAEXECLP()
|
static |
LP solution separation method of separator
Definition at line 812 of file sepa_rapidlearning.c.
References checkExec(), NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIPcheckCopyLimits(), SCIPcreate(), SCIPdebugMsg, SCIPfree(), SCIPgetDepth(), SCIPgetEffectiveRootDepth(), SCIPgetNActivePricers(), SCIPgetNBinVars(), SCIPgetNConss(), SCIPgetNContVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPgetNVars(), SCIPgetVars(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisStopped(), SCIPsepaGetData(), SCIPsepaGetFreq(), SCIPsepaGetNCalls(), SCIPsepaGetNCallsAtNode(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and setupAndSolveSubscipRapidlearning().