Detailed Descriptiondisjunctive cut separator We separate disjunctive cuts for two term disjunctions of the form . They can be generated directly from the simplex tableau. For further information, we refer to Cut coefficients belonging to integer variables can be strengthened by the 'monoidal cut strengthening' procedure, see Definition in file sepa_disjunctive.c. #include <assert.h> #include <string.h> #include <ctype.h> #include "scip/sepa_disjunctive.h" #include "scip/cons_sos1.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 41 of file sepa_disjunctive.c. Referenced by SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAFREE(), and SCIPincludeSepaDisjunctive().
Definition at line 42 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
priority for separation Definition at line 43 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
frequency for separating cuts; zero means to separate only in the root node Definition at line 44 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal relative distance from the current node's dual bound to primal bound compared to best node's dual bound for applying separation. Definition at line 45 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
does the separator use a secondary SCIP instance? Definition at line 48 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
should separation method be delayed, if other separators found cuts? Definition at line 49 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal rank of a cut that could not be scaled to integral coefficients (-1: unlimited) Definition at line 51 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal rank of a cut that could be scaled to integral coefficients (-1: unlimited) Definition at line 52 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal valid range max(|weights|)/min(|weights|) of row weights Definition at line 53 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
strengthen cut if integer variables are present Definition at line 54 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
node depth of separating cuts (-1: no limit) Definition at line 56 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal number of separation rounds in a branching node (-1: no limit) Definition at line 57 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal number of separation rounds in the root node (-1: no limit) Definition at line 58 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal number of cuts investigated per iteration in a branching node Definition at line 59 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
maximal number of cuts investigated per iteration in the root node Definition at line 60 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive().
delay separation if number of conflict graph edges is larger than predefined value (-1: no limit) Definition at line 61 of file sepa_disjunctive.c. Referenced by SCIPincludeSepaDisjunctive(). Function Documentation
gets rank of variable corresponding to row of
Definition at line 84 of file sepa_disjunctive.c. References getSimplexCoefficients(), NULL, REALABS, SCIP_Real, SCIPisGT(), and SCIProwGetRank(). Referenced by SCIP_DECL_SEPAEXECLP().
gets the nonbasic coefficients of a simplex row
Definition at line 130 of file sepa_disjunctive.c. References generateDisjCutSOS1(), NULL, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_OKAY, SCIPcolGetBasisStatus(), SCIPgetRowLPActivity(), SCIPisFeasZero(), SCIProwGetBasisStatus(), SCIProwGetLhs(), and SCIProwGetRhs(). Referenced by getVarRank(), and SCIP_DECL_SEPAEXECLP().
computes a disjunctive cut inequality based on two simplex taubleau rows
Definition at line 187 of file sepa_disjunctive.c. References FALSE, MAX, MIN, NULL, REALABS, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_CALL, SCIP_DECL_SEPACOPY(), SCIP_Longint, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPceil(), SCIPcolGetBasisStatus(), SCIPcolGetLb(), SCIPcolGetLPPos(), SCIPcolGetUb(), SCIPcolGetVar(), SCIPcolIsIntegral(), SCIPcreateEmptyRowSepa(), SCIPepsilon(), SCIPfloor(), SCIPflushRowExtensions(), SCIPgetDepth(), SCIPgetMaxDepth(), SCIPgetNLPs(), SCIPgetRowLPActivity(), SCIPinfinity(), SCIPisFeasLE(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisNegative(), SCIPmakeRowIntegral(), SCIProwGetBasisStatus(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetLhs(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIProwIsInLP(), SCIPsepaGetName(), SCIPsnprintf(), SCIPsumepsilon(), and TRUE. Referenced by getSimplexCoefficients(), and SCIP_DECL_SEPAEXECLP().
copy method for separator plugins (called when SCIP copies plugins) Definition at line 430 of file sepa_disjunctive.c. References NULL, SCIP_CALL, SCIP_DECL_SEPAFREE(), SCIP_OKAY, SCIPincludeSepaDisjunctive(), SCIPsepaGetName(), and SEPA_NAME. Referenced by generateDisjCutSOS1().
destructor of separator to free user data (called when SCIP is exiting) Definition at line 445 of file sepa_disjunctive.c. References NULL, SCIP_DECL_SEPAEXITSOL(), SCIP_OKAY, SCIPfreeMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), and SEPA_NAME. Referenced by SCIP_DECL_SEPACOPY().
solving process initialization method of separator Definition at line 465 of file sepa_disjunctive.c. References NULL, SCIP_DECL_SEPAEXECLP(), SCIP_OKAY, SCIPfindConshdlr(), and SCIPsepaGetData(). Referenced by SCIP_DECL_SEPAFREE().
LP solution separation method for disjunctive cuts Definition at line 480 of file sepa_disjunctive.c. References FALSE, generateDisjCutSOS1(), getSimplexCoefficients(), getVarRank(), MAX, MIN, NULL, REALABS, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPaddCut(), SCIPallocBufferArray, SCIPceil(), SCIPcolGetBasisStatus(), SCIPcolGetLb(), SCIPcolGetLPPos(), SCIPcolGetPrimsol(), SCIPcolGetUb(), SCIPconshdlrGetNConss(), SCIPdebug, SCIPdebugMessage, SCIPdigraphGetNArcs(), SCIPdigraphGetNSuccessors(), SCIPdigraphGetSuccessors(), SCIPfreeBufferArrayNull, SCIPgetConflictgraphSOS1(), SCIPgetDepth(), SCIPgetLPBasisInd(), SCIPgetLPBInvARow(), SCIPgetLPBInvRow(), SCIPgetLPColsData(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNCutsFound(), SCIPgetNSOS1Vars(), SCIPgetSolVal(), SCIPincludeSepaDisjunctive(), SCIPisCutEfficacious(), SCIPisFeasGT(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisLPSolBasic(), SCIPisStopped(), SCIPnodeGetVarSOS1(), SCIPprintRow(), SCIPreleaseRow(), SCIProwChgRank(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetNNonz(), SCIProwGetVals(), SCIProwIsInLP(), SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaGetNCallsAtNode(), SCIPsepaWasLPDelayed(), SCIPsortDownRealInt(), SCIPvarGetCol(), SCIPvarIsActive(), SEPA_NAME, and TRUE. Referenced by SCIP_DECL_SEPAEXITSOL().
creates the disjunctive cut separator and includes it in SCIP
Definition at line 862 of file sepa_disjunctive.c. References DEFAULT_MAXCONFSDELAY, DEFAULT_MAXDEPTH, DEFAULT_MAXINVCUTS, DEFAULT_MAXINVCUTSROOT, DEFAULT_MAXRANK, DEFAULT_MAXRANKINTEGRAL, DEFAULT_MAXROUNDS, DEFAULT_MAXROUNDSROOT, DEFAULT_MAXWEIGHTRANGE, DEFAULT_STRENGTHEN, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_REAL_MAX, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPincludeSepaBasic(), SCIPsetSepaCopy(), SCIPsetSepaFree(), SCIPsetSepaInitsol(), SEPA_DELAY, SEPA_DESC, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_NAME, SEPA_PRIORITY, SEPA_USESSUBSCIP, and TRUE. Referenced by SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAEXECLP(), and SCIPincludeDefaultPlugins(). |