prop_genvbounds.c File Reference Detailed Descriptiongeneralized variable bounds propagator Definition in file prop_genvbounds.c. #include <assert.h> #include <string.h> #include "scip/prop_genvbounds.h" #include "scip/debug.h" #include "scip/cons_linear.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 37 of file prop_genvbounds.c. Referenced by SCIPgenVBoundAdd().
Definition at line 38 of file prop_genvbounds.c.
Definition at line 39 of file prop_genvbounds.c.
propagator priority Definition at line 40 of file prop_genvbounds.c.
propagator frequency Definition at line 41 of file prop_genvbounds.c.
should propagation method be delayed, if other propagators found reductions? Definition at line 42 of file prop_genvbounds.c.
priority of the presolving method (>= 0: before, < 0: after constraint handlers); combined with presolvers Definition at line 45 of file prop_genvbounds.c.
Definition at line 48 of file prop_genvbounds.c.
maximal number of presolving rounds the presolver participates in (-1: no limit) Definition at line 49 of file prop_genvbounds.c.
apply global propagation? Definition at line 52 of file prop_genvbounds.c.
apply genvbounds in root node if no new incumbent was found? Definition at line 53 of file prop_genvbounds.c.
sort genvbounds and wait for bound change events? (otherwise all genvbounds are applied in each node) Definition at line 54 of file prop_genvbounds.c.
should genvbounds be transformed to (linear) constraints? Definition at line 57 of file prop_genvbounds.c.
Definition at line 59 of file prop_genvbounds.c.
Definition at line 60 of file prop_genvbounds.c. Typedef DocumentationDefinition at line 81 of file prop_genvbounds.c. Function Documentationreturns correct cutoff bound value
Definition at line 143 of file prop_genvbounds.c. Referenced by createConstraints(), getGenVBoundsBound(), and resolveGenVBoundPropagation().
returns corresponding genvbound in genvboundstore if there is one, NULL otherwise
Definition at line 164 of file prop_genvbounds.c. References GenVBound::boundtype, GenVBound::coefs, GenVBound::constant, GenVBound::cutoffcoef, FALSE, getGenVBoundsMinActivity(), GenVBound::ncoefs, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_Real, SCIPdebugPrintf, SCIPhashmapGetImage(), SCIPisZero(), SCIPvarGetName(), TRUE, GenVBound::var, and GenVBound::vars. Referenced by addNewGenVBound(), and SCIPgenVBoundAdd().
calculates the minactivity of a linear combination of variables stored in an array
Definition at line 231 of file prop_genvbounds.c. References GenVBound::coefs, getGenVBoundsMinActivityConflict(), NULL, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and GenVBound::vars. Referenced by getGenVBound(), and getGenVBoundsBound().
calculates the minactivity of a linear combination of variables stored in the current conflict set
Definition at line 272 of file prop_genvbounds.c. References getGenVBoundsBound(), NULL, SCIP_Bool, SCIP_Real, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), SCIPvarGetLbAtIndex(), SCIPvarGetLbLocal(), SCIPvarGetUbAtIndex(), SCIPvarGetUbLocal(), and TRUE. Referenced by getGenVBoundsMinActivity(), and resolveGenVBoundPropagation(). returns a valid bound given by a generalized variable bound
Definition at line 334 of file prop_genvbounds.c. References GenVBound::boundtype, GenVBound::coefs, GenVBound::constant, createStartingData(), GenVBound::cutoffcoef, getCutoffboundGenVBound(), getGenVBoundsMinActivity(), GenVBound::ncoefs, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPdebugCheckLbGlobal, SCIPdebugCheckUbGlobal, SCIPdebugGetSolVal, SCIPgetSolTransObj(), SCIPgetTransObjoffset(), SCIPgetTransObjscale(), SCIPinfinity(), SCIPisInfinity(), GenVBound::var, and GenVBound::vars. Referenced by applyGenVBound(), and getGenVBoundsMinActivityConflict().
allocate local and global startindices, startcomponents and startmap
Definition at line 416 of file prop_genvbounds.c. References freeStartingData(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPdebugMessage, and SCIPhashmapCreate(). Referenced by execGenVBounds(), and getGenVBoundsBound().
free local and global startindices, startcomponents and startmap
Definition at line 455 of file prop_genvbounds.c. References fillGlobalStartingData(), NULL, SCIP_OKAY, SCIPdebugMessage, SCIPfreeMemoryArray, and SCIPhashmapFree(). Referenced by createConstraints(), createStartingData(), and execGenVBounds().
Definition at line 498 of file prop_genvbounds.c. References NULL, resetLocalStartingData(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPisNegative(), SCIPisZero(), and SCIPreallocMemoryArray. Referenced by execGenVBounds(), and freeStartingData().
resets local starting data
Definition at line 546 of file prop_genvbounds.c. References freeComponentsData(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPhashmapRemoveAll(). Referenced by applyGenVBounds(), and fillGlobalStartingData().
frees sorted components data
Definition at line 566 of file prop_genvbounds.c. References freeGenVBound(), NULL, SCIP_OKAY, SCIPdebugMessage, and SCIPfreeMemoryArray. Referenced by createConstraints(), execGenVBounds(), and resetLocalStartingData().
frees memory allocated for a generalized variable bound Definition at line 592 of file prop_genvbounds.c. References GenVBound::coefs, NULL, resolveGenVBoundPropagation(), SCIP_OKAY, SCIPfreeMemory, SCIPfreeMemoryArray, and GenVBound::vars. Referenced by createConstraints(), and freeComponentsData().
resolves propagation of lower bound on +/- left-hand side variable of a generalized variable bound
Definition at line 612 of file prop_genvbounds.c. References analyzeGenVBoundConflict(), GenVBound::boundtype, GenVBound::coefs, GenVBound::constant, GenVBound::cutoffcoef, FALSE, getCutoffboundGenVBound(), getGenVBoundsMinActivityConflict(), MAX, GenVBound::ncoefs, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPdebugMessage, SCIPfeasCeil(), SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPisPositive(), SCIPisZero(), SCIPvarGetLbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), TRUE, GenVBound::var, and GenVBound::vars. Referenced by analyzeGenVBoundConflict(), and freeGenVBound().
create initial conflict
Definition at line 831 of file prop_genvbounds.c. References applyGenVBound(), GenVBound::boundtype, MAX, NULL, REALABS, resolveGenVBoundPropagation(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPanalyzeConflict(), SCIPdebugMessage, SCIPfeastol(), SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPisGE(), SCIPisLE(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and GenVBound::var. Referenced by applyGenVBound(), and resolveGenVBoundPropagation().
apply propagation for one generalized variable bound; also if the left-hand side variable is locally fixed, we compute the right-hand side minactivity to possibly detect infeasibility
Definition at line 963 of file prop_genvbounds.c. References analyzeGenVBoundConflict(), GenVBound::boundtype, FALSE, freeEventData(), getGenVBoundsBound(), GenVBound::index, GenVBound::ncoefs, NULL, REALABS, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_STAGE_PRESOLVING, SCIP_SUCCESS, SCIP_VARSTATUS_MULTAGGR, SCIPdebugMessage, SCIPdebugPrintf, SCIPgetStage(), SCIPinferVarLbProp(), SCIPinferVarUbProp(), SCIPisInfinity(), SCIPtightenVarLbGlobal(), SCIPtightenVarUbGlobal(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and GenVBound::var. Referenced by analyzeGenVBoundConflict(), and applyGenVBounds().
frees event data
Definition at line 1097 of file prop_genvbounds.c. References freeAllEventData(), NULL, SCIP_OKAY, SCIPfreeMemory, and SCIPfreeMemoryArray. Referenced by applyGenVBound(), and freeAllEventData().
frees all eventdata stored
Definition at line 1120 of file prop_genvbounds.c. References dropAndFreeEvents(), freeEventData(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeMemoryArray, and SCIPhashmapFree(). Referenced by dropAndFreeEvents(), and freeEventData().
drops all events caught by genvbounds propagator and frees their data
Definition at line 1167 of file prop_genvbounds.c. References freeAllEventData(), getEventData(), NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPdebugMessage, SCIPdropVarEvent(), and GenVBound::var. Referenced by createConstraints(), execGenVBounds(), and freeAllEventData().
returns the corresponding event data entry in the corresponding array, if there is one; if not: allocates a new event data entry, stores it in the array and returns its adress
Definition at line 1216 of file prop_genvbounds.c. References addEventData(), NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsert(), and GenVBound::var. Referenced by addEventData(), and dropAndFreeEvents().
adds an event to the event array lbevents (if boundtype == SCIP_BOUNDTYPE_LOWER) or ubevents (if boundtype == SCIP_BOUNDTYPE_UPPER)
Definition at line 1267 of file prop_genvbounds.c. References getEventData(), NULL, SCIP_CALL, SCIP_OKAY, and setUpEvents(). Referenced by getEventData(), and setUpEvents().
Definition at line 1310 of file prop_genvbounds.c. References addEventData(), GenVBound::coefs, GenVBound::ncoefs, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPallocMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcatchVarEvent(), SCIPdebugMessage, SCIPgetNFixedVars(), SCIPgetNVars(), SCIPhashmapCreate(), SCIPisPositive(), SCIPreallocMemoryArray, sortGenVBounds(), and GenVBound::vars. Referenced by addEventData(), and execGenVBounds().
performs a topological sort on genvboundstore array The genvbounds graph is defined as follows: Given two genvbounds (genvbound1) c1 * x_i1 >= RHS1 and (genvbound2) c2 * x_i2 >= RHS2, there is an arc from genvbound1 to genvbound2 iff c1 = +1 and x_i1 appears with positive coefficient in RHS2 or c1 = -1 and x_i1 appears with negative coefficient in RHS2; in this case, a bound change of x_i1 deduced from genvbound1 improves genvbound2's minactivity in RHS2. The method computes the strongly connected components and sorts them topologically. The order of the nodes in an strongly connected component is arbitrary.
Definition at line 1434 of file prop_genvbounds.c. References applyGenVBounds(), GenVBound::coefs, GenVBound::index, GenVBound::ncoefs, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPdebugMessage, SCIPdigraphAddArc(), SCIPdigraphComputeDirectedComponents(), SCIPdigraphComputeUndirectedComponents(), SCIPdigraphCreate(), SCIPdigraphFree(), SCIPdigraphGetComponent(), SCIPdigraphGetNComponents(), SCIPdigraphGetNNodes(), SCIPdigraphTopoSortComponents(), SCIPfreeMemoryArray, SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPisNegative(), SCIPisPositive(), TRUE, and GenVBound::vars. Referenced by execGenVBounds(), and setUpEvents().
apply propagation of generalized variable bounds
Definition at line 1583 of file prop_genvbounds.c. References applyGenVBound(), initPropdata(), NULL, resetLocalStartingData(), SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPdebugMessage, SCIPgetDepth(), SCIPinProbing(), SCIPpropGetData(), and SCIPvarGetStatus(). Referenced by execGenVBounds(), and sortGenVBounds().
initialize propagator data
Definition at line 1674 of file prop_genvbounds.c. References addNewGenVBound(), BMSclearMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPdebugMessage, SCIPgetNVars(), and SCIPhashmapCreate(). Referenced by applyGenVBounds(), and SCIPgenVBoundAdd().
adds a new genvbound to genvboundstore array and sets a hashmap entry
Definition at line 1703 of file prop_genvbounds.c. References execGenVBounds(), getGenVBound(), NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPhashmapInsert(), and SCIPreallocMemoryArray. Referenced by initPropdata(), and SCIPgenVBoundAdd().
runs propagation routine
Definition at line 1742 of file prop_genvbounds.c. References applyGenVBounds(), createConstraints(), createStartingData(), dropAndFreeEvents(), FALSE, fillGlobalStartingData(), freeComponentsData(), freeStartingData(), NULL, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPdebugMessage, SCIPgetCurrentNode(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPinProbing(), SCIPisFeasLT(), setUpEvents(), sortGenVBounds(), and TRUE. Referenced by addNewGenVBound().
Definition at line 1821 of file prop_genvbounds.c. References GenVBound::boundtype, GenVBound::coefs, GenVBound::constant, GenVBound::cutoffcoef, dropAndFreeEvents(), FALSE, freeComponentsData(), freeGenVBound(), freeStartingData(), getCutoffboundGenVBound(), GenVBound::index, GenVBound::ncoefs, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPaddVarLocks(), SCIPallocBufferArray, SCIPcreateConsLinear(), SCIPcreateVarBasic(), SCIPdebugMessage, SCIPdebugPrintf, SCIPfreeBufferArray, SCIPfreeMemoryArray, SCIPgenVBoundAdd(), SCIPhashmapFree(), SCIPinfinity(), SCIPmarkDoNotMultaggrVar(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), TRUE, GenVBound::var, and GenVBound::vars. Referenced by execGenVBounds().
adds a generalized variable bound to the genvbounds propagator; if there is already a genvbound for the bound "boundtype" of variable "var", it will be replaced
Definition at line 1952 of file prop_genvbounds.c. References addNewGenVBound(), GenVBound::boundtype, GenVBound::coefs, GenVBound::constant, GenVBound::cutoffcoef, FALSE, getGenVBound(), initPropdata(), GenVBound::ncoefs, NULL, PROP_NAME, SCIP_Bool, SCIP_CALL, SCIP_DECL_PROPINIT(), SCIP_INVALIDDATA, SCIP_OKAY, SCIPallocMemory, SCIPdebug, SCIPdebugMessage, SCIPduplicateMemoryArray, SCIPerrorMessage, SCIPfreeMemoryArray, SCIPgetTransObjoffset(), SCIPgetTransObjscale(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPpropGetData(), SCIPpropGetName(), SCIPreallocMemoryArray, GenVBound::var, and GenVBound::vars. Referenced by createConstraints().
initialization method of propagator (called after problem was transformed) Definition at line 2103 of file prop_genvbounds.c. Referenced by SCIPgenVBoundAdd().
presolving method of propagator Definition at line 2148 of file prop_genvbounds.c.
presolving initialization method of propagator (called when presolving is about to begin) Definition at line 2183 of file prop_genvbounds.c.
presolving deinitialization method of propagator (called after presolving has been finished) Definition at line 2211 of file prop_genvbounds.c.
execution method of propagator Definition at line 2290 of file prop_genvbounds.c.
propagation conflict resolving method of propagator Definition at line 2370 of file prop_genvbounds.c.
solving process deinitialization method of propagator (called before branch and bound process data is freed) Definition at line 2439 of file prop_genvbounds.c.
destructor of propagator to free user data (called when SCIP is exiting) Definition at line 2496 of file prop_genvbounds.c.
Definition at line 2519 of file prop_genvbounds.c.
creates the genvbounds propagator and includes it in SCIP
Definition at line 2602 of file prop_genvbounds.c. Referenced by SCIPincludeDefaultPlugins(). |