|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 NULL, SCIP_BOUNDTYPE_LOWER, and SCIPhashmapGetImage(). 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 NULL, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal(). Referenced by 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 NULL, SCIP_Real, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), SCIPvarGetLbAtIndex(), SCIPvarGetLbLocal(), SCIPvarGetUbAtIndex(), SCIPvarGetUbLocal(), and TRUE. Referenced by 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, GenVBound::cutoffcoef, getCutoffboundGenVBound(), getGenVBoundsMinActivity(), GenVBound::ncoefs, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), and GenVBound::vars. Referenced by applyGenVBound().
allocate local and global startindices, startcomponents and startmap
Definition at line 416 of file prop_genvbounds.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPdebugMessage, and SCIPhashmapCreate(). Referenced by execGenVBounds().
free local and global startindices, startcomponents and startmap
Definition at line 455 of file prop_genvbounds.c. References NULL, SCIP_OKAY, SCIPdebugMessage, SCIPfreeMemoryArray, and SCIPhashmapFree(). Referenced by createConstraints(), and execGenVBounds().
Definition at line 498 of file prop_genvbounds.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPisNegative(), SCIPisZero(), and SCIPreallocMemoryArray. Referenced by execGenVBounds().
resets local starting data
Definition at line 546 of file prop_genvbounds.c. References NULL, SCIP_CALL, SCIP_OKAY, and SCIPhashmapRemoveAll(). Referenced by applyGenVBounds().
frees sorted components data
Definition at line 566 of file prop_genvbounds.c. References NULL, SCIP_OKAY, SCIPdebugMessage, and SCIPfreeMemoryArray. Referenced by createConstraints(), and execGenVBounds().
frees memory allocated for a generalized variable bound Definition at line 592 of file prop_genvbounds.c. References GenVBound::coefs, NULL, SCIP_OKAY, SCIPfreeMemory, SCIPfreeMemoryArray, and GenVBound::vars. Referenced by createConstraints().
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 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().
create initial conflict
Definition at line 831 of file prop_genvbounds.c. References 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().
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, getGenVBoundsBound(), GenVBound::index, GenVBound::ncoefs, NULL, 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, SCIPgetStage(), SCIPinferVarLbProp(), SCIPinferVarUbProp(), SCIPtightenVarLbGlobal(), SCIPtightenVarUbGlobal(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and GenVBound::var. Referenced by applyGenVBounds().
frees event data
Definition at line 1094 of file prop_genvbounds.c. References NULL, SCIP_OKAY, SCIPfreeMemory, and SCIPfreeMemoryArray. Referenced by freeAllEventData().
frees all eventdata stored
Definition at line 1117 of file prop_genvbounds.c. References freeEventData(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeMemoryArray, and SCIPhashmapFree(). Referenced by dropAndFreeEvents().
drops all events caught by genvbounds propagator and frees their data
Definition at line 1164 of file prop_genvbounds.c. References freeAllEventData(), NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPdebugMessage, and SCIPdropVarEvent(). Referenced by createConstraints(), and execGenVBounds().
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 1213 of file prop_genvbounds.c. References NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPallocMemoryArray, SCIPhashmapExists(), SCIPhashmapGetImage(), and SCIPhashmapInsert(). Referenced by addEventData().
adds an event to the event array lbevents (if boundtype == SCIP_BOUNDTYPE_LOWER) or ubevents (if boundtype == SCIP_BOUNDTYPE_UPPER)
Definition at line 1264 of file prop_genvbounds.c. References getEventData(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by setUpEvents().
Definition at line 1307 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, and GenVBound::vars. Referenced by 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 1431 of file prop_genvbounds.c. References GenVBound::coefs, GenVBound::index, GenVBound::ncoefs, NULL, 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().
apply propagation of generalized variable bounds
Definition at line 1580 of file prop_genvbounds.c. References applyGenVBound(), NULL, resetLocalStartingData(), SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPdebugMessage, SCIPgetDepth(), SCIPinProbing(), SCIPpropGetData(), and SCIPvarGetStatus(). Referenced by execGenVBounds().
initialize propagator data
Definition at line 1671 of file prop_genvbounds.c. References BMSclearMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPdebugMessage, SCIPgetNVars(), and SCIPhashmapCreate(). Referenced by SCIPgenVBoundAdd().
adds a new genvbound to genvboundstore array and sets a hashmap entry
Definition at line 1700 of file prop_genvbounds.c. References GenVBound::boundtype, getGenVBound(), GenVBound::index, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPhashmapInsert(), SCIPreallocMemoryArray, and GenVBound::var. Referenced by SCIPgenVBoundAdd().
runs propagation routine
Definition at line 1739 of file prop_genvbounds.c. References applyGenVBounds(), 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.
Definition at line 1818 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, SCIPhashmapFree(), SCIPinfinity(), SCIPmarkDoNotMultaggrVar(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), TRUE, GenVBound::var, and GenVBound::vars.
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 1949 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_INVALIDDATA, SCIP_OKAY, SCIPallocMemory, SCIPdebug, SCIPdebugMessage, SCIPduplicateMemoryArray, SCIPerrorMessage, SCIPfreeMemoryArray, SCIPgetTransObjoffset(), SCIPgetTransObjscale(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPpropGetData(), SCIPpropGetName(), SCIPreallocMemoryArray, GenVBound::var, and GenVBound::vars.
initialization method of propagator (called after problem was transformed) Definition at line 2100 of file prop_genvbounds.c.
presolving method of propagator Definition at line 2145 of file prop_genvbounds.c.
presolving initialization method of propagator (called when presolving is about to begin) Definition at line 2180 of file prop_genvbounds.c.
presolving deinitialization method of propagator (called after presolving has been finished) Definition at line 2208 of file prop_genvbounds.c.
execution method of propagator Definition at line 2282 of file prop_genvbounds.c.
propagation conflict resolving method of propagator Definition at line 2362 of file prop_genvbounds.c.
solving process deinitialization method of propagator (called before branch and bound process data is freed) Definition at line 2431 of file prop_genvbounds.c.
destructor of propagator to free user data (called when SCIP is exiting) Definition at line 2488 of file prop_genvbounds.c.
Definition at line 2511 of file prop_genvbounds.c.
creates the genvbounds propagator and includes it in SCIP
Definition at line 2594 of file prop_genvbounds.c. Referenced by SCIPincludeDefaultPlugins(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||