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) |
#define SEPA_NAME "rapidlearning" |
Definition at line 44 of file sepa_rapidlearning.c.
#define SEPA_DESC "rapid learning heuristic and separator" |
Definition at line 45 of file sepa_rapidlearning.c.
#define SEPA_PRIORITY -1200000 |
Definition at line 46 of file sepa_rapidlearning.c.
#define SEPA_FREQ 5 |
Definition at line 47 of file sepa_rapidlearning.c.
#define SEPA_MAXBOUNDDIST 1.0 |
Definition at line 48 of file sepa_rapidlearning.c.
#define SEPA_USESSUBSCIP TRUE |
does the separator use a secondary SCIP instance?
Definition at line 49 of file sepa_rapidlearning.c.
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 50 of file sepa_rapidlearning.c.
#define DEFAULT_APPLYCONFLICTS TRUE |
should the found conflicts be applied in the original SCIP?
Definition at line 52 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#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 53 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#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.
Referenced by SCIPincludeSepaRapidlearning().
#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.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_APPLYPRIMALSOL TRUE |
should the incumbent solution be copied to the original SCIP?
Definition at line 58 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_APPLYSOLVED TRUE |
should a solved status be copied to the original SCIP?
Definition at line 59 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKEXEC TRUE |
check whether rapid learning should be executed
Definition at line 61 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKDEGANERACY TRUE |
should local LP degeneracy be checked?
Definition at line 62 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKDUALBOUND FALSE |
should the progress on the dual bound be checked?
Definition at line 63 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKLEAVES FALSE |
should the ratio of leaves proven to be infeasible and exceeding the cutoff bound be checked?
Definition at line 64 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKOBJ FALSE |
should the local objection function be checked?
Definition at line 66 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CHECKNSOLS TRUE |
should the number of solutions found so far be checked?
Definition at line 67 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_MINDEGENERACY 0.7 |
minimal degeneracy threshold to allow local rapid learning
Definition at line 68 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#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.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_MINVARCONSRATIO 2.0 |
minimal ratio of unfixed variables in relation to basis size to allow local rapid learning
Definition at line 70 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#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 72 of file sepa_rapidlearning.c.
#define DEFAULT_MAXNVARS 10000 |
maximum problem size (variables) for which rapid learning will be called
Definition at line 75 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_MAXNCONSS 10000 |
maximum problem size (constraints) for which rapid learning will be called
Definition at line 76 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_MAXCALLS 100 |
maximum number of overall calls
Definition at line 77 of file sepa_rapidlearning.c.
#define DEFAULT_MINNODES 500 |
minimum number of nodes considered in rapid learning run
Definition at line 79 of file sepa_rapidlearning.c.
#define DEFAULT_MAXNODES 5000 |
maximum number of nodes considered in rapid learning run
Definition at line 80 of file sepa_rapidlearning.c.
#define DEFAULT_CONTVARS FALSE |
should rapid learning be applied when there are continuous variables?
Definition at line 82 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_CONTVARSQUOT 0.3 |
maximal portion of continuous variables to apply rapid learning
Definition at line 83 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#define DEFAULT_LPITERQUOT 0.2 |
maximal fraction of LP iterations compared to node LP iterations
Definition at line 84 of file sepa_rapidlearning.c.
Referenced by SCIPincludeSepaRapidlearning().
#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 85 of file sepa_rapidlearning.c.
|
static |
copy method for separator plugins (called when SCIP copies plugins)
Definition at line 133 of file sepa_rapidlearning.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaRapidlearning(), SCIPsepaGetName(), and SEPA_NAME.
|
static |
destructor of separator to free user data (called when SCIP is exiting)
Definition at line 147 of file sepa_rapidlearning.c.
References assert(), NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), SEPA_NAME, and sepadata.
|
static |
setup and solve sub-SCIP
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 assert(), c, cutoff, FALSE, i, MAX, MIN, nbinvars, nintvars, NULL, nvars, result, 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(), sepadata, TRUE, valid, and vars.
Referenced by SCIP_DECL_SEPAEXECLP().
|
static |
returns whether rapid learning is allowed to run locally
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 assert(), FALSE, i, 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(), sepadata, TRUE, and vars.
Referenced by SCIP_DECL_SEPAEXECLP().
|
static |
LP solution separation method of separator
Definition at line 812 of file sepa_rapidlearning.c.
References assert(), checkExec(), i, NULL, obj, result, 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(), sepadata, setupAndSolveSubscipRapidlearning(), and vars.