methods and files provided by the default separators of SCIP
A detailed description what a separator does and how to add a separator to SCIP can be found here.
Modules | |
Inclusion methods | |
methods to include specific separators into SCIP | |
Functions | |
SCIP_RETCODE | SCIPsetBasePointClosecuts (SCIP *scip, SCIP_SOL *sol) |
SCIP_RETCODE | SCIPcutGenerationHeuristicCmir (SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_Real *varsolvals, int maxtestdelta, SCIP_Real *rowweights, SCIP_Real maxweight, int *weightinds, int nweightinds, int rowlensum, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Bool fixintegralrhs, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Bool trynegscaling, SCIP_Bool cutremovable, const char *cutclassname, SCIP_Bool *cutoff, int *ncuts, SCIP_Real *delta, SCIP_Bool *deltavalid) |
Files | |
file | sepa_cgmip.h |
Chvatal-Gomory cuts computed via a sub-MIP. | |
file | sepa_clique.h |
clique separator | |
file | sepa_closecuts.h |
closecuts meta separator | |
file | sepa_cmir.h |
complemented mixed integer rounding cuts separator (Marchand's version) | |
file | sepa_convexproj.h |
convexproj separator | |
file | sepa_disjunctive.h |
disjunctive cut separator | |
file | sepa_eccuts.h |
edge concave cut separator | |
file | sepa_flowcover.h |
flowcover separator | |
file | sepa_gauge.h |
gauge separator | |
file | sepa_gomory.h |
Gomory MIR Cuts. | |
file | sepa_impliedbounds.h |
implied bounds separator | |
file | sepa_intobj.h |
integer objective value separator | |
file | sepa_mcf.h |
multi-commodity-flow network cut separator | |
file | sepa_oddcycle.h |
oddcycle separator | |
file | sepa_rapidlearning.h |
rapidlearning separator | |
file | sepa_strongcg.h |
Strong CG Cuts (Letchford & Lodi) | |
file | sepa_zerohalf.h |
{0,1/2}-cuts separator | |
file | sepa_gmi.h |
Gomory Mixed-Integer Cuts. | |
SCIP_RETCODE SCIPsetBasePointClosecuts | ( | SCIP * | scip, |
SCIP_SOL * | sol | ||
) |
sets point to be used as base point for computing the point to be separated
The point is only stored if separation of relative interior points is used. The solution is copied.
scip | SCIP data structure |
sol | base point solution |
Definition at line 462 of file sepa_closecuts.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateSolCopy(), SCIPerrorMessage, SCIPfindSepa(), SCIPfreeSol(), SCIPsepaGetData(), SCIPsepaGetName(), SEPA_NAME, and TRUE.
SCIP_RETCODE SCIPcutGenerationHeuristicCmir | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_SOL * | sol, | ||
SCIP_Real * | varsolvals, | ||
int | maxtestdelta, | ||
SCIP_Real * | rowweights, | ||
SCIP_Real | maxweight, | ||
int * | weightinds, | ||
int | nweightinds, | ||
int | rowlensum, | ||
SCIP_Real | boundswitch, | ||
SCIP_Bool | usevbds, | ||
SCIP_Bool | allowlocal, | ||
SCIP_Bool | fixintegralrhs, | ||
int | maxmksetcoefs, | ||
SCIP_Real | maxweightrange, | ||
SCIP_Real | minfrac, | ||
SCIP_Real | maxfrac, | ||
SCIP_Bool | trynegscaling, | ||
SCIP_Bool | cutremovable, | ||
const char * | cutclassname, | ||
SCIP_Bool * | cutoff, | ||
int * | ncuts, | ||
SCIP_Real * | delta, | ||
SCIP_Bool * | deltavalid | ||
) |
Performs the cut generation heuristic of the c-MIR separation algorithm, i.e., tries to generate a c-MIR cut which is valid for the mixed knapsack set corresponding to the current aggregated constraint. Cuts will only be added here if no pointer to store best scaling factor delta is given.
scip | SCIP data structure |
sepa | separator |
sol | the solution that should be separated, or NULL for LP solution |
varsolvals | LP solution value of all variables in LP |
maxtestdelta | maximal number of different deltas to try (-1: unlimited) |
rowweights | weight of rows in aggregated row |
maxweight | largest magnitude of weights; set to -1.0 if sparsity information is unknown |
weightinds | sparsity pattern of weights; size nrowinds; NULL if sparsity info is unknown |
nweightinds | number of nonzeros in weights; -1 if rowinds is NULL |
rowlensum | total number of non-zeros in used rows (row associated with nonzero weight coefficient); -1 if unknown |
boundswitch | fraction of domain up to which lower bound is used in transformation |
usevbds | should variable bounds be used in bound transformation? |
allowlocal | should local information allowed to be used, resulting in a local cut? |
fixintegralrhs | should complementation tried to be adjusted such that rhs gets fractional? |
maxmksetcoefs | maximal number of nonzeros allowed in aggregated base inequality |
maxweightrange | maximal valid range max(|weights|)/min(|weights|) of row weights |
minfrac | minimal fractionality of rhs to produce MIR cut for |
maxfrac | maximal fractionality of rhs to produce MIR cut for |
trynegscaling | should negative values also be tested in scaling? |
cutremovable | should the cut be removed from the LP due to aging or cleanup? |
cutclassname | name of cut class to use for row names |
cutoff | whether a cutoff has been detected |
ncuts | pointer to count the number of generated cuts |
delta | pointer to store best delta found; NULL, if cut should be added here |
deltavalid | pointer to store whether best delta value is valid or NULL |
Definition at line 428 of file sepa_cmir.c.
References addCut(), FALSE, MAX, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPallocBufferArray, SCIPcalcMIR(), SCIPfreeBufferArray, SCIPgetNContVars(), SCIPgetNVars(), SCIPgetVars(), SCIPisEfficacious(), SCIPisEQ(), SCIPisFeasZero(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), TRUE, tryDelta(), and varIsContinuous().
Referenced by aggregation(), createZerohalfCutFromZerohalfWeightvector(), and tryDelta().