Scippy

SCIP

Solving Constraint Integer Programs

sepa_cmir.h File Reference

Detailed Description

complemented mixed integer rounding cuts separator (Marchand's version)

Author
Kati Wolter
Tobias Achterberg

Definition in file sepa_cmir.h.

#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPcutGenerationHeuristicCmir (SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_Real *varsolvals, int maxtestdelta, SCIP_Real *rowweights, 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)
 
SCIP_RETCODE SCIPincludeSepaCmir (SCIP *scip)
 

Function Documentation

SCIP_RETCODE SCIPcutGenerationHeuristicCmir ( SCIP scip,
SCIP_SEPA sepa,
SCIP_SOL sol,
SCIP_Real varsolvals,
int  maxtestdelta,
SCIP_Real rowweights,
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.

Parameters
scipSCIP data structure
sepaseparator
solthe solution that should be separated, or NULL for LP solution
varsolvalsLP solution value of all variables in LP
maxtestdeltamaximal number of different deltas to try (-1: unlimited)
rowweightsweight of rows in aggregated row
boundswitchfraction of domain up to which lower bound is used in transformation
usevbdsshould variable bounds be used in bound transformation?
allowlocalshould local information allowed to be used, resulting in a local cut?
fixintegralrhsshould complementation tried to be adjusted such that rhs gets fractional?
maxmksetcoefsmaximal number of nonzeros allowed in aggregated base inequality
maxweightrangemaximal valid range max(|weights|)/min(|weights|) of row weights
minfracminimal fractionality of rhs to produce MIR cut for
maxfracmaximal fractionality of rhs to produce MIR cut for
trynegscalingshould negative values also be tested in scaling?
cutremovableshould the cut be removed from the LP due to aging or cleanup?
cutclassnamename of cut class to use for row names
cutoffwhether a cutoff has been detected
ncutspointer to count the number of generated cuts
deltapointer to store best delta found; NULL, if cut should be added here
deltavalidpointer to store whether best delta value is valid or NULL

Definition at line 421 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, and tryDelta().

Referenced by aggregation(), and createZerohalfCutFromZerohalfWeightvector().