cons_cumulative.c File Reference Detailed Descriptionconstraint handler for cumulative constraints Given:
The cumulative constraint ensures that for each point in time holds. Separation:
Propagation:
Definition in file cons_cumulative.c. #include <assert.h> #include <string.h> #include "tclique/tclique.h" #include "scip/cons_cumulative.h" #include "scip/cons_linking.h" #include "scip/cons_knapsack.h" #include "scip/scipdefplugins.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 58 of file cons_cumulative.c. Referenced by applyAlternativeBoundsFixing(), checkOverloadViaThetaTree(), computeEffectiveHorizon(), coretimesUpdateLb(), coretimesUpdateUb(), createCoreProfile(), findCumulativeConss(), findPrecedenceConss(), inferboundsEdgeFinding(), presolveConsEst(), presolveConsLct(), propagateLbTTEF(), propagateTimetable(), propagateTTEF(), propagateUbTTEF(), removeIrrelevantJobs(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSRESPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIPcreateConsCumulative(), SCIPgetCapacityCumulative(), SCIPgetDemandsCumulative(), SCIPgetDurationsCumulative(), SCIPgetHmaxCumulative(), SCIPgetHminCumulative(), SCIPgetNVarsCumulative(), SCIPgetVarsCumulative(), SCIPincludeConshdlrCumulative(), SCIPpropCumulativeCondition(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPsetSolveCumulative(), and SCIPsolveCumulative().
Definition at line 59 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
priority of the constraint handler for separation Definition at line 60 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
priority of the constraint handler for constraint enforcing Definition at line 61 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
priority of the constraint handler for checking feasibility Definition at line 62 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
frequency for separating cuts; zero means to separate only in the root node Definition at line 63 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
frequency for propagating domains; zero means only preprocessing propagation Definition at line 64 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only Definition at line 65 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
maximal number of presolving rounds the constraint handler participates in (-1: no limit) Definition at line 68 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should separation method be delayed, if other separators found cuts? Definition at line 69 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should propagation method be delayed, if other propagators found reductions? Definition at line 70 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should the constraint handler be skipped, if no constraints are available? Definition at line 71 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
Definition at line 73 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
Definition at line 74 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should the binary representation be used? Definition at line 86 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should cuts be added only locally? Definition at line 87 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should covering cuts be added? Definition at line 88 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should the cuts be created as knapsack constraints? Definition at line 89 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
shall old sepa algo be applied? Definition at line 90 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table (core-times) propagator be used to infer bounds? Definition at line 93 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should edge-finding be used to detect an overload? Definition at line 94 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should edge-finding be used to infer bounds? Definition at line 95 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should during edge-finding jobs be adusted which run on the border of the effective time horizon? Definition at line 96 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table edge-finding be used to detect an overload? Definition at line 97 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table edge-finding be used to infer bounds? Definition at line 98 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should dual presolving be applied? Definition at line 101 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should coeffisient tightening be applied? Definition at line 102 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should demands and capacity be normalized? Definition at line 103 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should pairwise constraint comparison be performed in presolving? Definition at line 104 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
extract disjunctive constraints? Definition at line 105 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
search for conflict set via maximal cliques to detect disjunctive constraints Definition at line 106 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
search for conflict set via maximal cliques to detect variable bound constraints Definition at line 107 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
number of branch-and-bound nodes to solve an independent cumulative constraint (-1: no limit) Definition at line 108 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should branching candidates be added to storage? Definition at line 111 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should bound widening be used during conflict analysis? Definition at line 114 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
Definition at line 123 of file cons_cumulative.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeConshdlrCumulative().
Definition at line 124 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative(). Typedef DocumentationDefinition at line 257 of file cons_cumulative.c.
Definition at line 274 of file cons_cumulative.c.
Definition at line 5630 of file cons_cumulative.c. Enumeration Type Documentation
Propagation rules Definition at line 251 of file cons_cumulative.c. Function Documentation
converts an integer into an inference information
Definition at line 278 of file cons_cumulative.c. References inferInfoToInt(). Referenced by propagateTTEF(), SCIP_DECL_CONSRESPROP(), and SCIPrespropCumulativeCondition().
converts an inference information into an int
Definition at line 291 of file cons_cumulative.c. References inferInfoGetProprule(). Referenced by coretimesUpdateLb(), coretimesUpdateUb(), inferboundsEdgeFinding(), intToInferInfo(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF(). returns the propagation rule stored in the inference information
Definition at line 300 of file cons_cumulative.c. References inferInfoGetData1(). Referenced by inferInfoToInt(), resolvePropagationCoretimes(), respropCumulativeCondition(), and SCIP_DECL_CONSRESPROP().
returns data field one of the inference information
Definition at line 309 of file cons_cumulative.c. References inferInfoGetData2(). Referenced by inferInfoGetProprule(), propagateTTEF(), resolvePropagationCoretimes(), and respropCumulativeCondition().
returns data field two of the inference information
Definition at line 318 of file cons_cumulative.c. References getInferInfo(). Referenced by inferInfoGetData1(), propagateTTEF(), resolvePropagationCoretimes(), and respropCumulativeCondition(). constructs an inference information out of a propagation rule, an earliest start and a latest completion time
Definition at line 328 of file cons_cumulative.c. References computeCoreWithInterval(). Referenced by coretimesUpdateLb(), coretimesUpdateUb(), inferboundsEdgeFinding(), inferInfoGetData2(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF().
compute the core of a job which lies in certain interval [begin, end)
Definition at line 363 of file cons_cumulative.c. References computeImpliedEst(), MAX, and MIN. Referenced by collectDataTTEF(), getInferInfo(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF().
returns the implied earliest start time
Definition at line 382 of file cons_cumulative.c. References computeImpliedLct(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconvertRealToInt(), SCIPdebugMessage, SCIPhashmapGetImage(), SCIPhashmapRemove(), SCIPisEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), and SCIPvarGetVlbVars(). Referenced by computeCoreWithInterval(), and SCIPcreateWorstCaseProfile().
returns the implied latest completion time
Definition at line 450 of file cons_cumulative.c. References collectBinaryVars(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconvertRealToInt(), SCIPdebugMessage, SCIPhashmapExists(), SCIPhashmapRemove(), SCIPisEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNVubs(), SCIPvarGetUbLocal(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), and SCIPvarGetVubVars(). Referenced by computeImpliedEst(), and SCIPcreateWorstCaseProfile().
collects all necessary binary variables to represent the jobs which can be active at time point of interest
Definition at line 514 of file cons_cumulative.c. References collectIntVars(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPexistsConsLinking(), SCIPgetBinvarsLinking(), SCIPgetConsLinking(), SCIPgetValsLinking(), SCIPreallocBufferArray, and SCIPvarGetUbGlobal(). Referenced by computeImpliedLct(), and createCapacityRestriction().
collect all integer variable which belong to jobs which can run at the point of interest
Definition at line 612 of file cons_cumulative.c. References createSortedEventpoints(), MIN, NULL, SCIP_OKAY, SCIPconvertRealToInt(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by collectBinaryVars(), and createCapacityRestrictionIntvars().
initialize the sorted event point arrays
Definition at line 686 of file cons_cumulative.c. References createSortedEventpointsSol(), NULL, SCIPconvertRealToInt(), SCIPsortIntInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal(). Referenced by collectIntVars(), consCapacityConstraintsFinder(), createSelectedSortedEventpointsSol(), and tightenCapacity().
initialize the sorted event point arrays w.r.t. the given primal solutions
Definition at line 734 of file cons_cumulative.c. References createSelectedSortedEventpointsSol(), NULL, SCIPconvertRealToInt(), SCIPgetSolVal(), and SCIPsortIntInt(). Referenced by computePeak(), and createSortedEventpoints().
initialize the sorted event point arrays
Definition at line 777 of file cons_cumulative.c. References createSortedEventpoints(), getActiveVar(), MAX, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetSolVal(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPsortIntInt(), SCIPstatisticPrintf, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by createSortedEventpointsSol(), and separateConsOnIntegerVariables().
gets the active variables together with the constant
Definition at line 1154 of file cons_cumulative.c. References computeTotalEnergy(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIPconvertRealToInt(), SCIPgetProbvarSum(), SCIPisZero(), SCIPvarGetStatus(), and SCIPvarIsActive(). Referenced by computeAlternativeBounds(), createSelectedSortedEventpointsSol(), varMayRoundDown(), and varMayRoundUp().
computes the total energy of all jobs
Definition at line 1199 of file cons_cumulative.c. References SCIP_DECL_SOLVECUMULATIVE(). Referenced by getActiveVar(), propagateLbTTEF(), and propagateUbTTEF().
solve single cumulative condition using SCIP and a single cumulative constraint Definition at line 1225 of file cons_cumulative.c. References conshdlrdataCreate(), FALSE, MAX, MIN, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_Longint, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PARAMEMPHASIS_CPSOLVER, SCIP_Real, SCIP_STATUS_BESTSOLLIMIT, SCIP_STATUS_GAPLIMIT, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_MEMLIMIT, SCIP_STATUS_NODELIMIT, SCIP_STATUS_OPTIMAL, SCIP_STATUS_RESTARTLIMIT, SCIP_STATUS_SOLLIMIT, SCIP_STATUS_STALLNODELIMIT, SCIP_STATUS_TIMELIMIT, SCIP_STATUS_TOTALNODELIMIT, SCIP_STATUS_UNBOUNDED, SCIP_STATUS_UNKNOWN, SCIP_STATUS_USERINTERRUPT, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPaddCoefKnapsack(), SCIPaddCoefSetppc(), SCIPaddCons(), SCIPaddVar(), SCIPallocMemoryArray, SCIPcreate(), SCIPcreateConsBasicCumulative(), SCIPcreateConsBasicKnapsack(), SCIPcreateConsBasicSetpart(), SCIPcreateProbBasic(), SCIPcreateVarBasic(), SCIPdebugMessage, SCIPerrorMessage, SCIPfree(), SCIPfreeMemoryArray, SCIPgetBestSol(), SCIPgetSolVal(), SCIPgetStatus(), SCIPincludeDefaultPlugins(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsetBoolParam(), SCIPsetEmphasis(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetRealParam(), SCIPsetSubscipsOff(), SCIPsnprintf(), SCIPsolve(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE. Referenced by computeTotalEnergy().
creates constaint handler data for cumulative constraint handler
Definition at line 1691 of file cons_cumulative.c. References conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory. Referenced by SCIP_DECL_SOLVECUMULATIVE(), and SCIPincludeConshdlrCumulative().
frees constraint handler data for logic or constraint handler
Definition at line 1736 of file cons_cumulative.c. References consdataCatchEvents(), NULL, and SCIPfreeMemory. Referenced by conshdlrdataCreate(), and SCIP_DECL_CONSFREE().
catches bound change events for all variables in transformed cumulative constraint
Definition at line 1757 of file cons_cumulative.c. References consdataDropEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, and SCIPcatchVarEvent(). Referenced by conshdlrdataFree(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsCumulative().
drops events for variable at given position
Definition at line 1781 of file cons_cumulative.c. References consdataDropAllEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, and SCIPdropVarEvent(). Referenced by consdataCatchEvents(), consdataDeletePos(), and consdataDropAllEvents().
drops bound change events for all variables in transformed linear constraint
Definition at line 1802 of file cons_cumulative.c. References consdataDropEvents(), initializeLocks(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by consdataDropEvents(), and SCIP_DECL_CONSDELETE().
initialize variable lock data structure
Definition at line 1824 of file cons_cumulative.c. References consdataCreate(). Referenced by consdataCreate(), consdataDropAllEvents(), and removeRedundantConss().
creates constraint data of cumulative constraint
Definition at line 1844 of file cons_cumulative.c. References consdataFreeRows(), FALSE, initializeLocks(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPdebugMessage, SCIPduplicateBlockMemoryArray, SCIPgetConsLinking(), SCIPgetTransformedVars(), SCIPisTransformed(), SCIPmarkDoNotMultaggrVar(), SCIPstatistic, and SCIPtransformConss(). Referenced by initializeLocks(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsCumulative().
releases LP rows of constraint data and frees rows array
Definition at line 1966 of file cons_cumulative.c. References consdataFree(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArrayNull, and SCIPreleaseRow(). Referenced by consdataCreate(), consdataFree(), and SCIP_DECL_CONSEXITSOL().
frees a cumulative constraint data
Definition at line 2017 of file cons_cumulative.c. References consdataFreeRows(), consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, and SCIPreleaseCons(). Referenced by consdataFreeRows(), and SCIP_DECL_CONSDELETE().
prints cumulative constraint to file stream
Definition at line 2066 of file cons_cumulative.c. References consdataDeletePos(), NULL, SCIPinfoMessage(), SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by consdataFree(), and SCIP_DECL_CONSPRINT().
deletes coefficient at given position from constraint data
Definition at line 2093 of file cons_cumulative.c. References consdataCollectLinkingCons(), consdataDropEvents(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPinProbing(), SCIPreleaseCons(), SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by consdataPrint(), presolveConsEffectiveHorizon(), removeIrrelevantJobs(), and removeOversizedJobs().
collect linking constraints for each integer variable
Definition at line 2163 of file cons_cumulative.c. References checkCumulativeCondition(), FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPallocBlockMemoryArray, SCIPcaptureCons(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPcreateConsLinking(), SCIPdebugMessage, SCIPexistsConsLinking(), SCIPgetConsLinking(), SCIPsnprintf(), SCIPvarGetName(), and TRUE. Referenced by consdataDeletePos(), createRelaxation(), and separateCoverCutsCons().
check for the given starting time variables with their demands and durations if the cumulative conditions for the given solution is satisfied
Definition at line 2230 of file cons_cumulative.c. References checkCons(), FALSE, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasIntegral(), SCIPprintCons(), SCIPsortIntInt(), SCIPvarGetName(), and TRUE. Referenced by checkCons(), consdataCollectLinkingCons(), and SCIPcheckCumulativeCondition().
check if the given constrait is valid; checks each starting point of a job whether the remaining capacity is at least zero or not. If not (*violated) is set to TRUE
Definition at line 2372 of file cons_cumulative.c. References checkCumulativeCondition(), NULL, resolvePropagationCoretimes(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage. Referenced by checkCumulativeCondition(), enforceSolution(), SCIP_DECL_CONSCHECK(), and SCIP_DECL_CONSENFOLP().
resolves the propagation of the core time algorithm
Definition at line 2408 of file cons_cumulative.c. References BMSclearMemoryArray, computeOverlap(), FALSE, inferInfoGetData1(), inferInfoGetData2(), inferInfoGetProprule(), MAX, MIN, NULL, PROPRULE_2_EDGEFINDING, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPgetStage(), SCIPinProbing(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPsortDownIntInt(), SCIPvarGetLbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), and TRUE. Referenced by analyseInfeasibelCoreInsertion(), checkCons(), and respropCumulativeCondition().
compute the minimum overlaps w.r.t. the duration of the job and the time window [begin,end)
Definition at line 2762 of file cons_cumulative.c. References analyzeEnergyRequirement(). Referenced by analyzeEnergyRequirement(), and resolvePropagationCoretimes().
an overload was detected due to the time-time edge-finding propagate; initialized conflict analysis, add an initial reason
Definition at line 2799 of file cons_cumulative.c. References computeOverlap(), FALSE, MIN, NULL, respropCumulativeCondition(), SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPsortDownIntIntInt(), SCIPvarGetLbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by computeOverlap(), propagateLbTTEF(), propagateTTEF(), propagateUbTTEF(), respropCumulativeCondition(), tightenLbTTEF(), and tightenUbTTEF().
resolve propagation w.r.t. the cumulative condition
Definition at line 3086 of file cons_cumulative.c. References analyzeEnergyRequirement(), applyAlternativeBoundsBranching(), FALSE, inferInfoGetData1(), inferInfoGetData2(), inferInfoGetProprule(), MAX, MIN, NULL, PROPRULE_1_CORETIMES, PROPRULE_2_EDGEFINDING, PROPRULE_3_TTEF, resolvePropagationCoretimes(), SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIPABORT, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPerrorMessage, SCIPvarGetLbAtIndex(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), and TRUE. Referenced by analyzeEnergyRequirement(), SCIP_DECL_CONSRESPROP(), and SCIPrespropCumulativeCondition().
apply all fixings which are given by the alternative bounds
Definition at line 3263 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbranchVarHole(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPisNegative(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetUbLocal(), subtractStartingJobDemands(), and TRUE. Referenced by propagateAllConss(), and respropCumulativeCondition().
remove the capacity requirments for all job which start at the curtime
Definition at line 3328 of file cons_cumulative.c. References addEndingJobDemands(), and NULL. Referenced by applyAlternativeBoundsBranching(), computePeak(), consCapacityConstraintsFinder(), separateConsOnIntegerVariables(), and tightenCapacity().
add the capacity requirments for all job which end at the curtime
Definition at line 3368 of file cons_cumulative.c. References computePeak(). Referenced by computePeak(), consCapacityConstraintsFinder(), separateConsOnIntegerVariables(), subtractStartingJobDemands(), and tightenCapacity().
computes a point in time when the capacity is exceeded returns hmax if this does not happen
Definition at line 3397 of file cons_cumulative.c. References addEndingJobDemands(), collectBranchingCands(), createSortedEventpointsSol(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, and subtractStartingJobDemands(). Referenced by addEndingJobDemands(), and collectBranchingCands().
checks all cumulative constraints for infeasibility and add branching candidates to storage
Definition at line 3482 of file cons_cumulative.c. References computePeak(), enforceSolution(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddExternBranchCand(), SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsIsActive(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPgetNVars(), SCIPgetSolVal(), SCIPhashtableCreate(), SCIPhashtableExists(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal(). Referenced by computePeak(), and enforceSolution().
enforcement pseudo or LP solution
Definition at line 3569 of file cons_cumulative.c. References branch(), checkCons(), collectBranchingCands(), FALSE, isConsIndependently(), NULL, SCIP_Bool, SCIP_CALL, SCIP_INFEASIBLE, and SCIP_OKAY. Referenced by collectBranchingCands(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFOPS(). check if cumulative constraint is independently of all other constraints
Definition at line 3621 of file cons_cumulative.c. References FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), solveIndependentCons(), and TRUE. Referenced by enforceSolution(), and solveIndependentCons().
in case the cumulative constraint is independent of every else, solve the cumulative problem and apply the fixings (dual reductions)
Definition at line 3660 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), FALSE, isConsIndependently(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelConsLocal(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNCheckConss(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetRealParam(), SCIPgetSolvingTime(), SCIPinProbing(), SCIPinRepropagation(), SCIPisInfinity(), SCIPsetBoolParam(), SCIPsetCharParam(), SCIPsetIntParam(), SCIPsetRealParam(), SCIPsolveCumulative(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and TRUE. Referenced by isConsIndependently(), and presolveCons().
start conflict analysis to analysis the core insertion which is infeasible
Definition at line 3875 of file cons_cumulative.c. References coretimesUpdateLb(), NULL, resolvePropagationCoretimes(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPdebugMessage, SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by coretimesUpdateLb(), createCoreProfile(), propagateTimetable(), and solveIndependentCons().
We are using the core resource profile which contains all core except the one of the start time variable which we want to propagate, to incease the earliest start time. This we are doing in steps of length at most the duration of the job. The reason for that is, that this makes it later easier to resolve this propagation during the conflict analysis
Definition at line 3931 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, coretimesUpdateUb(), getInferInfo(), inferInfoToInt(), MIN, NULL, PROPRULE_1_CORETIMES, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinferVarLbCons(), SCIPprofileFindLeft(), SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by analyseInfeasibelCoreInsertion(), and propagateTimetable().
We are using the core resource profile which contains all core except the one of the start time variable which we want to propagate, to decrease the latest start time. This we are doing in steps of length at most the duration of the job. The reason for that is, that this makes it later easier to resolve this propagation during the conflict analysis
Definition at line 4084 of file cons_cumulative.c. References computeCoreEngeryAfter(), CONSHDLR_NAME, getInferInfo(), inferInfoToInt(), MAX, NULL, PROPRULE_1_CORETIMES, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebug, SCIPdebugMessage, SCIPfindConshdlr(), SCIPgetMessagehdlr(), SCIPinferVarUbCons(), SCIPprofileFindLeft(), SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPprofilePrint(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by coretimesUpdateLb(), and propagateTimetable().
compute for the different earliest start and latest completion time the core energy of the corresponding time points
Definition at line 4218 of file cons_cumulative.c. References collectDataTTEF(), SCIP_OKAY, SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTime(). Referenced by coretimesUpdateUb(), and propagateTTEF().
collect earliest start times, latest completion time, and free energy contributions
Definition at line 4289 of file cons_cumulative.c. References computeCoreWithInterval(), MAX, MIN, SCIPconvertRealToInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and tightenLbTTEF(). Referenced by computeCoreEngeryAfter(), and propagateTTEF().
try to tighten the lower bound of the given variable
Definition at line 4357 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, PROPRULE_3_TTEF, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictUb(), SCIPconvertRealToInt(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetUbLocal(), tightenUbTTEF(), and TRUE. Referenced by collectDataTTEF(), and propagateLbTTEF().
try to tighten the upper bound of the given variable
Definition at line 4470 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, propagateUbTTEF(), PROPRULE_3_TTEF, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPconvertRealToInt(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and TRUE. Referenced by propagateUbTTEF(), and tightenLbTTEF().
propagate the upper bounds and "opportunistically" the lower bounds using the time-table edge-finding algorithm
Definition at line 4584 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), computeTotalEnergy(), CONSHDLR_NAME, getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, propagateLbTTEF(), PROPRULE_3_TTEF, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictUb(), SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), tightenUbTTEF(), and TRUE. Referenced by propagateTTEF(), and tightenUbTTEF().
propagate the lower bounds and "opportunistically" the upper bounds using the time-table edge-finding algorithm
Definition at line 4935 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), computeTotalEnergy(), CONSHDLR_NAME, getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, propagateTTEF(), PROPRULE_3_TTEF, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictUb(), SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), tightenLbTTEF(), and TRUE. Referenced by propagateTTEF(), and propagateUbTTEF().
checks whether the instance is infeasible due to a overload within a certain time frame using the idea of time-table edge-finding
Definition at line 5277 of file cons_cumulative.c. References analyzeEnergyRequirement(), collectDataTTEF(), computeCoreEngeryAfter(), CONSHDLR_NAME, inferInfoGetData1(), inferInfoGetData2(), intToInferInfo(), NULL, propagateLbTTEF(), propagateTimetable(), propagateUbTTEF(), SCIP_Bool, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPsortIntInt(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition(), and propagateLbTTEF().
a cumulative condition is not satisfied if its capacity is exceeded at a time where jobs cannot be shifted (core) anymore we build up a cumulative profile of all cores of jobs and try to improve bounds of all jobs; also known as time table propagator
Definition at line 5467 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, coretimesUpdateLb(), coretimesUpdateUb(), FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPprofileDeleteCore(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPprofileInsertCore(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition(), and propagateTTEF().
creates a node data structure
Definition at line 5634 of file cons_cumulative.c. References freeNodedata(), NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPallocBuffer, and TRUE. Referenced by checkOverloadViaThetaTree(), and insertThetanode().
frees a node data structure
Definition at line 5658 of file cons_cumulative.c. References NULL, SCIPfreeBuffer, and updateEnvelop(). Referenced by checkOverloadViaThetaTree(), and createNodedata().
update node data structure strating form the given node along the path to the root node
Definition at line 5671 of file cons_cumulative.c. References MAX, NULL, SCIP_OKAY, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPdebugMessage, and updateKeyOnTrace(). Referenced by deleteLambdaLeaf(), freeNodedata(), insertThetanode(), and moveNodeToLambda().
updates the key of the first parent on the trace which comes from left
Definition at line 5761 of file cons_cumulative.c. References deleteLambdaLeaf(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetParent(), SCIPbtnodeIsLeftchild(), and SCIPbtnodeIsRoot(). Referenced by deleteLambdaLeaf(), and updateEnvelop().
deletes the given node and updates all envelops
Definition at line 5793 of file cons_cumulative.c. References moveNodeToLambda(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbtnodeFree(), SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPbtnodeIsLeftchild(), SCIPbtnodeIsRightchild(), SCIPbtnodeIsRoot(), SCIPbtnodeSetLeftchild(), SCIPbtnodeSetParent(), SCIPbtnodeSetRightchild(), SCIPbtSetRoot(), SCIPdebugMessage, updateEnvelop(), and updateKeyOnTrace(). Referenced by inferboundsEdgeFinding(), and updateKeyOnTrace().
moves a node form the theta set into the lambda set and updates the envelops
Definition at line 5867 of file cons_cumulative.c. References FALSE, insertThetanode(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbtnodeGetData(), and updateEnvelop(). Referenced by deleteLambdaLeaf(), and inferboundsEdgeFinding().
inserts a node into the theta set and update the envelops
Definition at line 5903 of file cons_cumulative.c. References createNodedata(), findResponsibleLambdaLeafTraceEnergy(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPbtnodeCreate(), SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPbtnodeSetLeftchild(), SCIPbtnodeSetParent(), SCIPbtnodeSetRightchild(), SCIPbtSetRoot(), and updateEnvelop(). Referenced by checkOverloadViaThetaTree(), and moveNodeToLambda().
returns the leaf responsible for the lambda energy
Definition at line 6007 of file cons_cumulative.c. References findResponsibleLambdaLeafTraceEnvelop(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by findResponsibleLambdaLeafTraceEnvelop(), and insertThetanode().
returns the leaf responsible for the lambda envelop
Definition at line 6056 of file cons_cumulative.c. References collectThetaSubtree(), findResponsibleLambdaLeafTraceEnergy(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by findResponsibleLambdaLeafTraceEnergy(), and inferboundsEdgeFinding().
reports all elements from set theta to generate a conflicting set
Definition at line 6109 of file cons_cumulative.c. References MAX, MIN, NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPdebugMessage, SCIPvarGetName(), and traceThetaEnvelop(). Referenced by findResponsibleLambdaLeafTraceEnvelop(), traceLambdaEnergy(), traceLambdaEnvelop(), and traceThetaEnvelop().
collect the jobs (omega set) which are contribute to theta envelop from the theta set
Definition at line 6144 of file cons_cumulative.c. References collectThetaSubtree(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), and traceLambdaEnergy(). Referenced by collectThetaSubtree(), and traceLambdaEnvelop().
collect the jobs (omega set) which are contribute to lambda envelop from the theta set
Definition at line 6205 of file cons_cumulative.c. References collectThetaSubtree(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), and traceLambdaEnvelop(). Referenced by traceLambdaEnvelop(), and traceThetaEnvelop().
collect the jobs (omega set) which are contribute to lambda envelop from the theta set
Definition at line 6262 of file cons_cumulative.c. References collectThetaSubtree(), computeEnergyContribution(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), traceLambdaEnergy(), and traceThetaEnvelop(). Referenced by inferboundsEdgeFinding(), and traceLambdaEnergy().
compute the energy contribution by job which corresponds to the given leaf
Definition at line 6328 of file cons_cumulative.c. References NULL, SCIP_DECL_SORTPTRCOMP(), SCIPbtnodeGetData(), SCIPdebugMessage, SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal(). Referenced by analyzeConflictOverload(), and traceLambdaEnvelop().
comparison method for two node data w.r.t. the earliest start time Definition at line 6352 of file cons_cumulative.c. References SCIPbtnodeGetData(). Referenced by computeEnergyContribution().
comparison method for two node data w.r.t. the latest completion time Definition at line 6365 of file cons_cumulative.c. References analyzeConflictOverload().
an overload was detected; initialized conflict analysis, add an initial reason
Definition at line 6382 of file cons_cumulative.c. References computeEnergyContribution(), computeEstOmegaset(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPbtnodeGetData(), SCIPdebugMessage, SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPsortDownPtr(), SCIPswapInts(), and TRUE. Referenced by checkOverloadViaThetaTree(), inferboundsEdgeFinding(), and SCIP_DECL_SORTPTRCOMP().
computes a new latest starting time of the job in 'respleaf' due to the energy consumption and stores the responsible interval bounds in *est_omega and *lct_omega
Definition at line 6492 of file cons_cumulative.c. References inferboundsEdgeFinding(), NULL, SCIP_Real, and SCIPfeasCeil(). Referenced by analyzeConflictOverload(), and inferboundsEdgeFinding().
propagates start time using an edge finding algorithm which is based on binary trees (theta lambda trees)
Definition at line 6526 of file cons_cumulative.c. References analyzeConflictOverload(), checkOverloadViaThetaTree(), computeEstOmegaset(), CONSHDLR_NAME, deleteLambdaLeaf(), findResponsibleLambdaLeafTraceEnvelop(), getInferInfo(), inferInfoToInt(), moveNodeToLambda(), NULL, PROPRULE_2_EDGEFINDING, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPbtnodeGetData(), SCIPbtnodeIsLeaf(), SCIPbtnodeIsRoot(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), traceLambdaEnvelop(), and TRUE. Referenced by checkOverloadViaThetaTree(), and computeEstOmegaset().
checks whether the instance is infeasible due to a overload within a certain time frame using the idea of theta trees
Definition at line 6734 of file cons_cumulative.c. References analyzeConflictOverload(), CONSHDLR_NAME, createNodedata(), FALSE, freeNodedata(), inferboundsEdgeFinding(), insertThetanode(), MAX, NULL, propagateEdgeFinding(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPbtCreate(), SCIPbtFree(), SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPbtnodeCreate(), SCIPbtnodeGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPsortPtr(), SCIPstatistic, SCIPswapInts(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by inferboundsEdgeFinding(), and propagateEdgeFinding().
checks whether the instance is infeasible due to a overload within a certain time frame using the idea of theta trees
Definition at line 7037 of file cons_cumulative.c. References checkOverloadViaThetaTree(), consCheckRedundancy(), FALSE, SCIP_CALL, SCIP_OKAY, and TRUE. Referenced by checkOverloadViaThetaTree(), and propagateCumulativeCondition().
checks if the constraint is redundant; that is the case if its capacity can never be exceeded; therefore we check with respect to the lower and upper bounds of the integer start time variables the maximum capacity usage for all event points
Definition at line 7086 of file cons_cumulative.c. References createCoreProfile(), FALSE, MAX, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPfreeBufferArray, SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition(), and propagateEdgeFinding().
creates the worst case resource profile, that is, all jobs are inserted with the earliest start and latest completion time
Definition at line 7209 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, MAX, MIN, NULL, propagateCumulativeCondition(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPisFeasIntegral(), SCIPprofileGetTime(), SCIPprofileInsertCore(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by consCheckRedundancy(), and propagateCumulativeCondition().
propagate the cumulative condition
Definition at line 7300 of file cons_cumulative.c. References consCheckRedundancy(), createCoreProfile(), NULL, propagateCons(), propagateEdgeFinding(), propagateTimetable(), propagateTTEF(), SCIP_CALL, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_PRESOLTIMING_FAST, SCIP_PRESOLTIMING_MEDIUM, SCIPprofileCreate(), and SCIPprofileFree(). Referenced by createCoreProfile(), propagateCons(), and SCIPpropCumulativeCondition().
propagate the cumulative constraint
Definition at line 7369 of file cons_cumulative.c. References applyProbingVar(), FALSE, NULL, propagateCumulativeCondition(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPdelConsLocal(), SCIPgetDepth(), SCIPgetStage(), SCIPinProbing(), SCIPresetConsAge(), and TRUE. Referenced by propagateCumulativeCondition(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
it is dual feasible to remove the values {leftub+1, ..., rightlb-1} since SCIP current does not feature domain holes we use the probing mode to check if one of the two branches is infeasible. If this is the case the dual redundant can be realize as domain reduction. Otherwise we do nothing
Definition at line 7450 of file cons_cumulative.c. References FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPapplyProbingVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), TRUE, and varMayRoundDown(). Referenced by applyAlternativeBoundsFixing(), presolveConsEst(), presolveConsLct(), and propagateCons().
is it possible, to round variable down w.r.t. objective function
Definition at line 7548 of file cons_cumulative.c. References FALSE, getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIPisNegative(), SCIPisPositive(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsActive(), TRUE, and varMayRoundUp(). Referenced by applyAlternativeBoundsFixing(), applyProbingVar(), fixIntegerVariableLb(), and presolveConsEst().
is it possible, to round variable up w.r.t. objective function
Definition at line 7597 of file cons_cumulative.c. References computeAlternativeBounds(), FALSE, getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIPisNegative(), SCIPisPositive(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE. Referenced by applyAlternativeBoundsFixing(), fixIntegerVariableUb(), presolveConsLct(), and varMayRoundDown().
For each variable we compute an alternative lower and upper bounds. That is, if the variable is not fixed to its lower or upper bound the next reasonable lower or upper bound would be this alternative bound (implying that certain values are not of interest). An alternative bound for a particular is only valied if the cumulative constarints are the only one locking this variable in the corresponding direction.
Definition at line 7650 of file cons_cumulative.c. References applyAlternativeBoundsFixing(), SCIP_Profile::capacity, getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPcomputeHmax(), SCIPcomputeHmin(), SCIPconsGetData(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconvertRealToInt(), SCIPcreateWorstCaseProfile(), SCIPprofileCreate(), SCIPprofileFree(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal(). Referenced by propagateAllConss(), and varMayRoundUp().
apply all fixings which are given by the alternative bounds
Definition at line 7781 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, NULL, propagateAllConss(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbLocal(), varMayRoundDown(), and varMayRoundUp(). Referenced by computeAlternativeBounds(), and propagateAllConss().
propagate all constraints together
Definition at line 7935 of file cons_cumulative.c. References applyAlternativeBoundsBranching(), applyAlternativeBoundsFixing(), computeAlternativeBounds(), createCoverCutsTimepoint(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetVars(), SCIPinProbing(), and SCIPinRepropagation(). Referenced by applyAlternativeBoundsFixing(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
creates covering cuts for jobs violating resource constraints
Definition at line 8007 of file cons_cumulative.c. References createCoverCuts(), MIN, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconvertRealToInt(), SCIPcreateEmptyRowCons(), SCIPflushRowExtensions(), SCIPfreeBufferArray, SCIPgetBinvarsLinking(), SCIPgetValsLinking(), SCIPinfinity(), SCIPreallocBlockMemoryArray, SCIPsnprintf(), SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by createCoverCuts(), and propagateAllConss().
method to construct cover cuts for all points in time
Definition at line 8262 of file cons_cumulative.c. References createCapacityRestriction(), createCoverCutsTimepoint(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by createCoverCutsTimepoint(), and separateCoverCutsCons().
this method creates a row for time point curtime which insures the capacity restriction of the cumulative constraint
Definition at line 8404 of file cons_cumulative.c. References collectBinaryVars(), consCapacityConstraintsFinder(), FALSE, NULL, SCIP_CALL, SCIP_Longint, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCoefKnapsack(), SCIPaddCons(), SCIPaddVarToRow(), SCIPallocBlockMemoryArray, SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsRemovable(), SCIPcreateConsKnapsack(), SCIPcreateEmptyRowCons(), SCIPdebug, SCIPflushRowExtensions(), SCIPfreeBufferArrayNull, SCIPinfinity(), SCIPprintRow(), SCIPreallocBlockMemoryArray, SCIPreleaseCons(), SCIPsnprintf(), and TRUE. Referenced by consCapacityConstraintsFinder(), and createCoverCuts().
this method checks how many cumulatives can run at most at one time if this is greater than the capacity it creates row
Definition at line 8494 of file cons_cumulative.c. References addEndingJobDemands(), createCapacityRestriction(), createRelaxation(), createSortedEventpoints(), FALSE, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, and subtractStartingJobDemands(). Referenced by createCapacityRestriction(), and createRelaxation().
creates LP rows corresponding to cumulative constraint; therefore, check each point in time if the maximal needed capacity is larger than the capacity of the cumulative constraint
Definition at line 8625 of file cons_cumulative.c. References addRelaxation(), consCapacityConstraintsFinder(), consdataCollectLinkingCons(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsSeparated(), SCIPsetConsEnforced(), SCIPsetConsInitial(), and SCIPsetConsSeparated(). Referenced by addRelaxation(), consCapacityConstraintsFinder(), and separateConsBinaryRepresentation().
adds linear relaxation of cumulative constraint to the LP
Definition at line 8668 of file cons_cumulative.c. References createRelaxation(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddCut(), SCIPconsGetData(), SCIProwIsInLP(), and separateConsBinaryRepresentation(). Referenced by createRelaxation(), and SCIP_DECL_CONSINITLP().
checks constraint for violation, and adds it as a cut if possible
Definition at line 8702 of file cons_cumulative.c. References createRelaxation(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), separateCoverCutsCons(), and TRUE. Referenced by addRelaxation(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
checks constraint for violation, and adds it as a cut if possible
Definition at line 8774 of file cons_cumulative.c. References consdataCollectLinkingCons(), createCapacityRestrictionIntvars(), createCoverCuts(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIPinfinity(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), and TRUE. Referenced by SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), and separateConsBinaryRepresentation().
this method creates a row for time point
Definition at line 8890 of file cons_cumulative.c. References collectIntVars(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPaddVarToRow(), SCIPallocBufferArray, SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPdebug, SCIPflushRowExtensions(), SCIPfreeBufferArrayNull, SCIPinfinity(), SCIPprintRow(), SCIPreleaseRow(), SCIPsnprintf(), separateConsOnIntegerVariables(), and TRUE. Referenced by separateConsOnIntegerVariables(), and separateCoverCutsCons().
checks constraint for violation, and adds it as a cut if possible
Definition at line 8959 of file cons_cumulative.c. References addEndingJobDemands(), checkDemands(), createCapacityRestrictionIntvars(), createSelectedSortedEventpointsSol(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, subtractStartingJobDemands(), and TRUE. Referenced by createCapacityRestrictionIntvars(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL(). returns TRUE if all demands are smaller than the capacity of the cumulative constraint and if the total demand is correct
Definition at line 9067 of file cons_cumulative.c. References deleteTrivilCons(), FALSE, NULL, SCIPconsGetData(), and TRUE. Referenced by presolveCons(), SCIP_DECL_CONSPRESOL(), and separateConsOnIntegerVariables().
delete constraint if it consists of at most one job
Definition at line 9108 of file cons_cumulative.c. References NULL, removeIrrelevantJobs(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPdelCons(), and TRUE. Referenced by checkDemands(), and presolveCons().
remove jobs which have a duration or demand of zero (zero energy) or lay outside the efficient horizon [hmin, hmax); this is done in the SCIP_DECL_CONSINITPRE() callback
Definition at line 9150 of file cons_cumulative.c. References adjustOversizedJobBounds(), consdataDeletePos(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPstatistic, SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by deleteTrivilCons(), SCIP_DECL_CONSINITPRE(), and SCIP_DECL_CONSPRESOL().
adjust bounds of over sizeed job (the demand is larger than the capacity)
Definition at line 9214 of file cons_cumulative.c. References FALSE, NULL, removeOversizedJobs(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPconvertRealToInt(), SCIPcreateConsBounddisjunction(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPreleaseCons(), SCIPsnprintf(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE. Referenced by removeIrrelevantJobs(), and removeOversizedJobs().
try to removed over sizeed jobs (the demand is larger than the capacity)
Definition at line 9320 of file cons_cumulative.c. References adjustOversizedJobBounds(), consdataDeletePos(), fixIntegerVariableUb(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage. Referenced by adjustOversizedJobBounds(), and presolveCons().
fix integer variable to upper bound if the rounding locks and the object coefficient are in favor of that
Definition at line 9361 of file cons_cumulative.c. References FALSE, fixIntegerVariableLb(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfixVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and varMayRoundUp(). Referenced by presolveConsLct(), and removeOversizedJobs().
fix integer variable to lower bound if the rounding locks and the object coefficient are in favor of that
Definition at line 9413 of file cons_cumulative.c. References FALSE, normalizeCumulativeCondition(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfixVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), TRUE, and varMayRoundDown(). Referenced by fixIntegerVariableUb(), and presolveConsEst().
normalize cumulative condition
Definition at line 9460 of file cons_cumulative.c. References MAX, MIN, normalizeDemands(), SCIP_Longint, SCIP_OKAY, SCIPcalcGreComDiv(), and SCIPdebugMessage. Referenced by fixIntegerVariableLb(), normalizeDemands(), and SCIPnormalizeCumulativeCondition().
divides demands by their greatest common divisor and divides capacity by the same value, rounding down the result; in case the the smallest demands add up to more than the capacity we reductions all demands to one as well as the capacity since in that case none of the jobs can run in parallel
Definition at line 9535 of file cons_cumulative.c. References computeEffectiveHorizonCumulativeCondition(), FALSE, normalizeCumulativeCondition(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsModifiable(), and TRUE. Referenced by normalizeCumulativeCondition(), and presolveCons().
computes for the given cumulative condition the effective horizon
Definition at line 9572 of file cons_cumulative.c. References createConsCumulative(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcomputeHmax(), SCIPcomputeHmin(), SCIPcreateWorstCaseProfile(), SCIPdebug, SCIPgetMessagehdlr(), SCIPinRepropagation(), SCIPprofileCreate(), SCIPprofileFree(), SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), SCIPprofileGetTimepoints(), and SCIPprofilePrint(). Referenced by computeEffectiveHorizon(), normalizeDemands(), and SCIPsplitCumulativeCondition().
creates and adds a cumulative constraint
Definition at line 9652 of file cons_cumulative.c. References computeEffectiveHorizon(), SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPcreateConsCumulative(), SCIPreleaseCons(), SCIPsetHmaxCumulative(), and SCIPsetHminCumulative(). Referenced by computeEffectiveHorizon(), computeEffectiveHorizonCumulativeCondition(), and createDisjuctiveCons().
computes the effective horizon and checks if the constraint can be decompsed
Definition at line 9706 of file cons_cumulative.c. References computeEffectiveHorizonCumulativeCondition(), CONSHDLR_NAME, createConsCumulative(), NULL, presolveConsEst(), SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPdebugMessage, SCIPdelCons(), SCIPfindConshdlr(), SCIPsnprintf(), and SCIPstatistic. Referenced by createConsCumulative(), and presolveCons().
presolve cumulative condition w.r.t. the earlier start times (est) and the hmin of the effective horizon (1) If the latest completion time (lct) of a job is smaller or equal than hmin, the corresponding job can be removed form the constraint. This is the case since it cannot effect any assignment within the effective horizon (2) If the latest start time (lst) of a job is smaller or equal than hmin it follows that the this jobs can run before the effective horizon or it overlaps with the effective horizon such that hmin in included. Hence, the down-lock of the corresponding start time variable can be removed. (3) If the earlier completion time (ect) of a job is smaller or equal than hmin, the cumulative is the only one locking the corresponding variable down, and the objective coefficient of the start time variable is not negative, than the job can be dual fixed to its earlier start time (est). (4) If the earlier start time (est) of job is smaller than the hmin, the cumulative is the only one locking the corresponding variable down, and the objective coefficient of the start time variable is not negative, than removing the values {est+1,...,hmin} form variable domain is dual feasible. (5) If the earlier start time (est) of job is smaller than the smallest earlier completion times of all other jobs (lets denote this with minect), the cumulative is the only one locking the corresponding variable down, and the objective coefficient of the start time variable is not negative, than removing the values {est+1,...,minect-1} form variable domain is dual feasible.
Definition at line 9810 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, FALSE, fixIntegerVariableLb(), MAX, MIN, NULL, presolveConsLct(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetUbGlobal(), TRUE, and varMayRoundDown(). Referenced by computeEffectiveHorizon(), presolveConsEffectiveHorizon(), and SCIPpresolveCumulativeCondition().
presolve cumulative condition w.r.t. the latest completion times (lct) and the hmax of the effective horizon (1) If the earliest start time (est) of a job is larger or equal than hmax, the corresponding job can be removed form the constraint. This is the case since it cannot effect any assignment within the effective horizon (2) If the earliest completion time (ect) of a job is larger or equal than hmax it follows that the this jobs can run before the effective horizon or it overlaps with the effective horizon such that hmax in included. Hence, the up-lock of the corresponding start time variable can be removed. (3) If the latest start time (lst) of a job is larger or equal than hmax, the cumulative is the only one locking the corresponding variable up, and the objective coefficient of the start time variable is not positive, than the job can be dual fixed to its latest start time (lst). (4) If the latest completion time (lct) of job is larger than the hmax, the cumulative is the only one locking the corresponding variable up, and the objective coefficient of the start time variable is not positive, than removing the values {hmax - p_j, ..., lst-1} form variable domain is dual feasible (p_j is the processing time of the corresponding job). (5) If the latest completion time (lct) of job is smaller than the largerst latest start time of all other jobs (lets denote this with maxlst), the cumulative is the only one locking the corresponding variable up, and the objective coefficient of the start time variable is not positive, than removing the values {maxlst - p_j + 1, ..., lst-1} form variable domain is dual feasible (p_j is the processing time of the corresponding job).
Definition at line 10095 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, FALSE, fixIntegerVariableUb(), MAX, MIN, NULL, presolveConsEffectiveHorizon(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and varMayRoundUp(). Referenced by presolveConsEffectiveHorizon(), presolveConsEst(), and SCIPpresolveCumulativeCondition().
presolve cumulative constraint w.r.t. the boundary of the effective horizon
Definition at line 10347 of file cons_cumulative.c. References BMSclearMemoryArray, collectDemands(), consdataDeletePos(), FALSE, NULL, presolveConsEst(), presolveConsLct(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconvertRealToInt(), SCIPfreeBufferArray, SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE. Referenced by presolveCons(), and presolveConsLct().
stores all demands which are smaller than the capacity of those jobs that are running at 'curtime'
Definition at line 10428 of file cons_cumulative.c. References getHighestCapacityUsage(), NULL, SCIP_OKAY, SCIPconvertRealToInt(), and SCIPvarGetUbGlobal(). Referenced by getHighestCapacityUsage(), and presolveConsEffectiveHorizon().
this method creates a row for time point curtime which insures the capacity restriction of the cumulative constraint
Definition at line 10487 of file cons_cumulative.c. References collectDemands(), NULL, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconvertRealToInt(), SCIPfreeBufferArray, SCIPisFeasIntegral(), SCIPsolveKnapsackExactly(), and tightenCapacity(). Referenced by collectDemands(), and tightenCapacity().
try to tighten the capacity – using DP for knapsack, we find the maximum possible capacity usage – neglects hmin and hmax, such that it is also able to check solutions globally
Definition at line 10548 of file cons_cumulative.c. References addEndingJobDemands(), createSortedEventpoints(), FALSE, getHighestCapacityUsage(), MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPdebugPrintf, SCIPfreeBufferArray, subtractStartingJobDemands(), and tightenCoefs(). Referenced by getHighestCapacityUsage(), and presolveCons().
tries to change coefficients: demand_j < cap && all other parallel jobs in conflict ==> set demand_j := cap
Definition at line 10692 of file cons_cumulative.c. References createDisjuctiveCons(), FALSE, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVar(), SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetName(), SCIPconvertRealToInt(), SCIPcreateVar(), SCIPdebugMessage, SCIPlockVarCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsInitial(), SCIPvarIsRemovable(), and TRUE. Referenced by presolveCons(), and tightenCapacity().
creare a disjunctive constraint which contains all jobs which cannot run in parallel
Definition at line 10895 of file cons_cumulative.c. References createConsCumulative(), FALSE, MIN, NULL, presolveCons(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPfreeBufferArray, and TRUE. Referenced by SCIP_DECL_CONSPRESOL(), and tightenCoefs().
presolve given constraint
Definition at line 10978 of file cons_cumulative.c. References checkDemands(), computeEffectiveHorizon(), deleteTrivilCons(), normalizeDemands(), presolveConsEffectiveHorizon(), removeOversizedJobs(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIPallowDualReds(), SCIPconsIsDeleted(), solveIndependentCons(), TCLIQUE_GETNNODES(), tightenCapacity(), and tightenCoefs(). Referenced by createDisjuctiveCons(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
gets number of nodes in the graph Definition at line 11083 of file cons_cumulative.c. References NULL, and TCLIQUE_GETWEIGHTS(). Referenced by presolveCons().
gets weight of nodes in the graph Definition at line 11092 of file cons_cumulative.c. References NULL, and TCLIQUE_ISEDGE(). Referenced by TCLIQUE_GETNNODES().
returns, whether the edge (node1, node2) is in the graph Definition at line 11101 of file cons_cumulative.c. References FALSE, NULL, TCLIQUE_SELECTADJNODES(), and TRUE. Referenced by TCLIQUE_GETWEIGHTS().
selects all nodes from a given set of nodes which are adjacent to a given node and returns the number of selected nodes Definition at line 11122 of file cons_cumulative.c. References NULL, and TCLIQUE_NEWSOL(). Referenced by TCLIQUE_ISEDGE().
generates cuts using a clique found by algorithm for maximum weight clique and decides whether to stop generating cliques with the algorithm for maximum weight clique Definition at line 11156 of file cons_cumulative.c. References impliesVlbPrecedenceCondition(), NULL, SCIP_Bool, SCIPdebugMessage, and SCIPinfoMessage(). Referenced by TCLIQUE_SELECTADJNODES().
print the tclique graph analyzes if the given variable lower bound condition implies a precedence condition w.r.t. given duration for the job corresponding to variable bound variable (vlbvar) variable lower bound is given as: var >= vlbcoef * vlbvar + vlbconst
Definition at line 11194 of file cons_cumulative.c. References FALSE, impliesVubPrecedenceCondition(), SCIP_Bool, SCIP_Real, SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by impliesVubPrecedenceCondition(), projectVbd(), and TCLIQUE_NEWSOL().
analyzes if the given variable upper bound condition implies a precedence condition w.r.t. given duration for the job corresponding to variable which is bounded (var) variable upper bound is given as: var <= vubcoef * vubvar + vubconst
Definition at line 11249 of file cons_cumulative.c. References getNodeIdx(), impliesVlbPrecedenceCondition(), and SCIP_Real. Referenced by impliesVlbPrecedenceCondition(), and projectVbd().
get the corresponding index of the given variables; this in case of an active variable the problem index and for others an index larger than the number if active variables
Definition at line 11271 of file cons_cumulative.c. References BMSclearMemoryArray, projectVbd(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPreallocBufferArray, and SCIPvarGetProbindex(). Referenced by constraintNonOverlappingGraph(), impliesVubPrecedenceCondition(), initializeDurations(), and projectVbd().
use the variables bounds of SCIP to projected variables bound graph into a precedence garph Let d be the (assumed) duration of variable x and consider a variable bound of the form b * x + c <= y. This variable bounds implies a precedence condition x -> y (meaning job y starts after job x is finished) if: (i) b = 1 and c >= d (ii) b > 1 and lb(x) >= (d - c)/(b - 1) (iii) b < 1 and ub(x) >= (d - c)/(b - 1)
Definition at line 11362 of file cons_cumulative.c. References getNodeIdx(), impliesVlbPrecedenceCondition(), impliesVubPrecedenceCondition(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPgetNVars(), SCIPgetVars(), SCIPisLE(), SCIPvarGetLbLocal(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), SCIPvarGetVubVars(), transitiveClosure(), and TRUE. Referenced by constructIncompatibilityGraph(), and getNodeIdx().
compute the transitive closer of the given graph and the number of in and out arcs
Definition at line 11457 of file cons_cumulative.c. References constraintNonOverlappingGraph(), and TRUE. Referenced by constructIncompatibilityGraph(), and projectVbd().
constructs a non-overlapping graph w.r.t. given durations and available cumulative constraints
Definition at line 11489 of file cons_cumulative.c. References constructIncompatibilityGraph(), getNodeIdx(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by constructIncompatibilityGraph(), and transitiveClosure().
constructs a conflict set graph (undirected) which contains for each job a node and edge if the corresponding pair of jobs cannot run in parallel
Definition at line 11585 of file cons_cumulative.c. References constraintNonOverlappingGraph(), createCumulativeCons(), NULL, projectVbd(), SCIP_CALL, SCIP_OKAY, and transitiveClosure(). Referenced by constraintNonOverlappingGraph(), and detectRedundantConss().
create cumulative constraint from conflict set
Definition at line 11609 of file cons_cumulative.c. References FALSE, findCumulativeConss(), SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsCumulative(), SCIPfreeBufferArray, SCIPreleaseCons(), SCIPsortInt(), and TRUE. Referenced by constructIncompatibilityGraph(), and findCumulativeConss().
search for cumulative constrainst
Definition at line 11655 of file cons_cumulative.c. References CONSHDLR_NAME, createCumulativeCons(), createPrecedenceCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetNRuns(), SCIPhashtableCreate(), SCIPhashtableExists(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPisStopped(), SCIPsnprintf(), SCIPstatistic, SCIPvarGetName(), and tcliqueMaxClique(). Referenced by createCumulativeCons(), and detectRedundantConss().
create precedence constraint (as variable bound constraint
Definition at line 11783 of file cons_cumulative.c. References computeMinDistance(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsVarbound(), SCIPdebugPrintCons, SCIPinfinity(), SCIPreleaseCons(), and TRUE. Referenced by computeMinDistance(), findCumulativeConss(), and strengthenVarbounds().
compute a minimum distance between the start times of the two given jobs and post it as variable bound constraint
Definition at line 11808 of file cons_cumulative.c. References BMSclearMemoryArray, createPrecedenceCons(), findPrecedenceConss(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPallocBufferArray, SCIPconvertRealToInt(), SCIPfreeBufferArray, SCIPgetNRuns(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and tcliqueMaxClique(). Referenced by createPrecedenceCons(), and findPrecedenceConss().
search for precedence constraints for each arc of the transitive closure of the precedence graph, we are computing a minimum distance between the corresponding two jobs
Definition at line 11909 of file cons_cumulative.c. References computeMinDistance(), CONSHDLR_NAME, initializeDurations(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPisStopped(), and SCIPstatistic. Referenced by computeMinDistance(), and detectRedundantConss().
initialize the assumed durations for each variable
Definition at line 11977 of file cons_cumulative.c. References createTcliqueGraph(), getNodeIdx(), MAX, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData(). Referenced by detectRedundantConss(), and findPrecedenceConss().
create tclique graph
Definition at line 12021 of file cons_cumulative.c. References BMSclearMemoryArray, freeTcliqueGraph(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBuffer, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPduplicateBufferArray, SCIPgetNVars(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapInsert(), and SCIPvarGetProbindex(). Referenced by detectRedundantConss(), and initializeDurations().
frees the tclique graph
Definition at line 12102 of file cons_cumulative.c. References detectRedundantConss(), SCIPfreeBuffer, SCIPfreeBufferArray, and SCIPhashmapFree(). Referenced by createTcliqueGraph(), and detectRedundantConss().
construct an incompatibility graph and search for precedence constraints (variables bounds) and unary cumulative constrains (disjunctive constraint)
Definition at line 12131 of file cons_cumulative.c. References consdataCalcSignature(), constructIncompatibilityGraph(), createTcliqueGraph(), findCumulativeConss(), findPrecedenceConss(), freeTcliqueGraph(), initializeDurations(), SCIP_CALL, and SCIP_OKAY. Referenced by freeTcliqueGraph(), and SCIP_DECL_CONSPRESOL().
compute the constraint signature which is used to detect constraints which contain potentially the same set of variables
Definition at line 12170 of file cons_cumulative.c. References SCIP_DECL_SORTINDCOMP(), SCIPvarGetIndex(), and TRUE. Referenced by detectRedundantConss(), and removeRedundantConss().
index comparison method of linear constraints: compares two indices of the variable set in the linear constraint Definition at line 12194 of file cons_cumulative.c. References NULL, removeRedundantConss(), and SCIPvarCompare(). Referenced by consdataCalcSignature().
run a pairwise comparison
Definition at line 12207 of file cons_cumulative.c. References consdataCalcSignature(), initializeLocks(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsIsChecked(), SCIPdelCons(), SCIPfreeBufferArray, SCIPsort(), SCIPswapPointers(), SCIPupdateConsFlags(), SCIPvarCompare(), strengthenVarbounds(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_SORTINDCOMP().
strengthen the variable bounds using the cumulative condition
Definition at line 12347 of file cons_cumulative.c. References createPrecedenceCons(), NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarVlb(), SCIPconsGetData(), SCIPconvertRealToInt(), SCIPdebugMessage, SCIPgetNRuns(), SCIPisEQ(), SCIPisStopped(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), and TRUE. Referenced by removeRedundantConss(), and SCIP_DECL_CONSPRESOL().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 12451 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPfindConshdlr(), SCIPincludeConshdlrCumulative(), SCIPstatistic, and TRUE. Referenced by strengthenVarbounds().
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 12469 of file cons_cumulative.c. References CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_DECL_CONSINITPRE(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconshdlrSetData(), and SCIPstatisticPrintf. Referenced by SCIP_DECL_CONSHDLRCOPY().
presolving initialization method of constraint handler (called when presolving is about to begin) Definition at line 12502 of file cons_cumulative.c. References FALSE, NULL, removeIrrelevantJobs(), SCIP_CALL, SCIP_DECL_CONSEXITPRE, SCIP_DECL_CONSEXITSOL(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPstatisticPrintf, and SCIPvisualizeConsCumulative(). Referenced by SCIP_DECL_CONSFREE().
presolving deinitialization method of constraint handler (called after presolving has been finished) solving process deinitialization method of constraint handler (called before branch and bound process data is freed) Definition at line 12564 of file cons_cumulative.c. References consdataFreeRows(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconsGetData(), and SCIPconshdlrGetName(). Referenced by SCIP_DECL_CONSINITPRE().
frees specific constraint data Definition at line 12587 of file cons_cumulative.c. References consdataDropAllEvents(), consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPvarIsTransformed(). Referenced by SCIP_DECL_CONSEXITSOL().
transforms constraint data into data belonging to the transformed problem Definition at line 12613 of file cons_cumulative.c. References consdataCatchEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_DECL_CONSINITLP(), SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMessage, and SCIPgetStage(). Referenced by SCIP_DECL_CONSDELETE().
LP initialization method of constraint handler Definition at line 12655 of file cons_cumulative.c. References addRelaxation(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsInitial(), SCIPdebugMessage, and SCIPrestartSolve(). Referenced by SCIP_DECL_CONSTRANS().
separation method of constraint handler for LP solutions Definition at line 12690 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetDepth(), separateConsBinaryRepresentation(), separateConsOnIntegerVariables(), separateCoverCutsCons(), and TRUE. Referenced by SCIP_DECL_CONSINITLP().
separation method of constraint handler for arbitrary primal solutions Definition at line 12758 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetDepth(), separateConsBinaryRepresentation(), separateConsOnIntegerVariables(), separateCoverCutsCons(), and TRUE. Referenced by SCIP_DECL_CONSSEPALP().
constraint enforcing method of constraint handler for LP solutions Definition at line 12822 of file cons_cumulative.c. References checkCons(), CONSHDLR_NAME, enforceSolution(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateConsBinaryRepresentation(). Referenced by SCIP_DECL_CONSSEPASOL().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 12908 of file cons_cumulative.c. References CONSHDLR_NAME, enforceSolution(), NULL, SCIP_CALL, SCIP_DECL_CONSCHECK(), SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSENFOLP().
feasibility check method of constraint handler for integral solutions Definition at line 12937 of file cons_cumulative.c. References checkCons(), CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSENFOPS().
domain propagation method of constraint handler Definition at line 12966 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, presolveCons(), propagateAllConss(), propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_PRESOLTIMING_ALWAYS, SCIP_REDUCEDDOM, SCIPallowDualReds(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPgetDepth(), and TRUE. Referenced by SCIP_DECL_CONSCHECK().
presolving method of constraint handler Definition at line 13053 of file cons_cumulative.c. References checkDemands(), CONSHDLR_NAME, createDisjuctiveCons(), detectRedundantConss(), FALSE, NULL, presolveCons(), propagateAllConss(), propagateCons(), removeIrrelevantJobs(), removeRedundantConss(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSRESPROP(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_PRESOLTIMING_FAST, SCIP_PRESOLTIMING_MEDIUM, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPallowDualReds(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPgetNRuns(), strengthenVarbounds(), and TRUE. Referenced by SCIP_DECL_CONSPROP().
propagation conflict resolving method of constraint handler Definition at line 13175 of file cons_cumulative.c. References CONSHDLR_NAME, inferInfoGetProprule(), intToInferInfo(), NULL, respropCumulativeCondition(), SCIP_CALL, SCIP_DECL_CONSLOCK(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetHmaxCumulative(), SCIPgetHminCumulative(), and SCIPvarGetName(). Referenced by SCIP_DECL_CONSPRESOL().
variable rounding lock method of constraint handler Definition at line 13209 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSRESPROP().
constraint display method of constraint handler Definition at line 13249 of file cons_cumulative.c. References consdataPrint(), NULL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, and SCIPconsGetData(). Referenced by SCIP_DECL_CONSLOCK().
constraint copying method of constraint handler Definition at line 13262 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsCumulative(), SCIPfreeBufferArray, SCIPgetVarCopy(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), and TRUE. Referenced by SCIP_DECL_CONSPRINT().
constraint parsing method of constraint handler Definition at line 13328 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsCumulative(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPparseVarName(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPstrCopySection(), SCIPstrToRealValue(), SCIPvarGetName(), and TRUE. Referenced by SCIP_DECL_CONSCOPY().
constraint method of constraint handler which returns the variables (if possible) Definition at line 13423 of file cons_cumulative.c. References BMScopyMemoryArray, FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE. Referenced by SCIP_DECL_CONSPARSE().
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 13445 of file cons_cumulative.c. References NULL, SCIP_DECL_EVENTEXEC(), SCIP_OKAY, SCIPconsGetData(), and TRUE. Referenced by SCIP_DECL_CONSGETVARS().
execution method of event handler Definition at line 13468 of file cons_cumulative.c. References EVENTHDLR_NAME, FALSE, NULL, SCIP_OKAY, SCIPeventhdlrGetName(), and SCIPincludeConshdlrCumulative(). Referenced by SCIP_DECL_CONSGETNVARS().
creates the handler for cumulative constraints and includes it in SCIP
Definition at line 13499 of file cons_cumulative.c. References CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PRESOLTIMING, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, conshdlrdataCreate(), DEFAULT_COEFTIGHTENING, DEFAULT_CUTSASCONSS, DEFAULT_DETECTDISJUNCTIVE, DEFAULT_DETECTVARBOUNDS, DEFAULT_DISJUNCTIVE, DEFAULT_DUALPRESOLVE, DEFAULT_EFCHECK, DEFAULT_EFINFER, DEFAULT_FILLBRANCHCANDS, DEFAULT_LOCALCUTS, DEFAULT_MAXNODES, DEFAULT_NORMALIZE, DEFAULT_PRESOLPAIRWISE, DEFAULT_SEPAOLD, DEFAULT_TTEFCHECK, DEFAULT_TTEFINFER, DEFAULT_TTINFER, DEFAULT_USEADJUSTEDJOBS, DEFAULT_USEBDWIDENING, DEFAULT_USEBINVARS, DEFAULT_USECOVERCUTS, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_LONGINT_MAX, SCIP_OKAY, SCIPaddBoolParam(), SCIPaddLongintParam(), SCIPcreateConsCumulative(), SCIPincludeConshdlrBasic(), SCIPincludeEventhdlrBasic(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrExitsol(), SCIPsetConshdlrFree(), SCIPsetConshdlrGetNVars(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrInitpre(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), SCIPsetConshdlrTrans(), and TRUE. Referenced by SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_EVENTEXEC(), and SCIPincludeDefaultPlugins().
creates and captures a cumulative constraint
Definition at line 13629 of file cons_cumulative.c. References consdataCatchEvents(), consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STAGE_PROBLEM, SCIPconshdlrGetData(), SCIPcreateCons(), SCIPcreateConsBasicCumulative(), SCIPdebugMessage, SCIPerrorMessage, SCIPfindConshdlr(), and SCIPgetStage(). Referenced by CREATE_CONSTRAINT(), createConsCumulative(), createCumulativeCons(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), SCIPcreateConsBasicCumulative(), and SCIPincludeConshdlrCumulative().
creates and captures a cumulative constraint in its most basic version, i. e., all constraint flags are set to their basic value as explained for the method SCIPcreateConsCumulative(); all flags can be set via SCIPsetConsFLAGNAME-methods in scip.h
Definition at line 13711 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsCumulative(), SCIPsetHminCumulative(), and TRUE. Referenced by SCIP_DECL_SOLVECUMULATIVE(), and SCIPcreateConsCumulative().
set the left bound of the time axis to be considered (including hmin)
Definition at line 13731 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetHminCumulative(). Referenced by createConsCumulative(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), SCIP_DECL_SOLVECUMULATIVE(), and SCIPcreateConsBasicCumulative(). returns the left bound of the time axis to be considered
Definition at line 13755 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPsetHmaxCumulative(). Referenced by SCIP_DECL_CONSRESPROP(), and SCIPsetHminCumulative().
set the right bound of the time axis to be considered (not including hmax)
Definition at line 13775 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetHmaxCumulative(). Referenced by createConsCumulative(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), SCIP_DECL_SOLVECUMULATIVE(), and SCIPgetHminCumulative(). returns the right bound of the time axis to be considered
Definition at line 13799 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetVarsCumulative(). Referenced by SCIP_DECL_CONSRESPROP(), and SCIPsetHmaxCumulative(). returns the activities of the cumulative constraint
Definition at line 13819 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetNVarsCumulative(). Referenced by SCIPgetHmaxCumulative(), and writeFzn(). returns the activities of the cumulative constraint
Definition at line 13840 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetCapacityCumulative(). Referenced by SCIPgetVarsCumulative(), and writeFzn(). returns the capacity of the cumulative constraint
Definition at line 13861 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetDurationsCumulative(). Referenced by SCIPgetNVarsCumulative(), and writeFzn(). returns the durations of the cumulative constraint
Definition at line 13882 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetDemandsCumulative(). Referenced by SCIPgetCapacityCumulative(), and writeFzn(). returns the demands of the cumulative constraint
Definition at line 13903 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPcheckCumulativeCondition(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by SCIPgetDurationsCumulative(), and writeFzn().
check for the given starting time variables with their demands and durations if the cumulative conditions for the given solution is satisfied
Definition at line 13926 of file cons_cumulative.c. References checkCumulativeCondition(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPnormalizeCumulativeCondition(). Referenced by SCIPgetDemandsCumulative().
normalize cumulative condition
Definition at line 13951 of file cons_cumulative.c. References normalizeCumulativeCondition(), SCIP_CALL, SCIP_OKAY, and SCIPsplitCumulativeCondition(). Referenced by SCIPcheckCumulativeCondition().
searches for a time point within the cumulative condition were the cumulative condition can be split
Definition at line 13969 of file cons_cumulative.c. References computeEffectiveHorizonCumulativeCondition(), SCIP_CALL, SCIP_OKAY, and SCIPpresolveCumulativeCondition(). Referenced by SCIPnormalizeCumulativeCondition().
presolve cumulative condition w.r.t. effective horizon by detecting irrelevant variables
Definition at line 13988 of file cons_cumulative.c. References presolveConsEst(), presolveConsLct(), SCIP_CALL, SCIP_OKAY, and SCIPpropCumulativeCondition(). Referenced by SCIPsplitCumulativeCondition().
propagate the given cumulative condition
Definition at line 14019 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, propagateCumulativeCondition(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPerrorMessage, SCIPfindConshdlr(), and SCIPrespropCumulativeCondition(). Referenced by SCIPpresolveCumulativeCondition().
resolve propagation w.r.t. the cumulative condition
Definition at line 14068 of file cons_cumulative.c. References intToInferInfo(), respropCumulativeCondition(), SCIP_CALL, SCIP_OKAY, SCIPvisualizeConsCumulative(), and TRUE. Referenced by SCIPpropCumulativeCondition().
this method visualizes the cumulative structure in GML format
Definition at line 14093 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, SCIPgmlWriteArc(), SCIPgmlWriteClosing(), SCIPgmlWriteNode(), SCIPgmlWriteOpening(), SCIPhashtableCreate(), SCIPhashtableExists(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPprintSysError(), SCIPsetSolveCumulative(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetUbGlobal(), SCIPvarGetVlbVars(), SCIPvarGetVubVars(), and TRUE. Referenced by SCIP_DECL_CONSINITPRE(), and SCIPrespropCumulativeCondition().
sets method to solve an individual cumulative condition
Definition at line 14194 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPerrorMessage, SCIPfindConshdlr(), and SCIPsolveCumulative(). Referenced by SCIPvisualizeConsCumulative().
solves given cumulative condition as independent sub problem
Definition at line 14224 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPcreateWorstCaseProfile(), SCIPerrorMessage, SCIPfindConshdlr(), and TRUE. Referenced by SCIPsetSolveCumulative(), and solveIndependentCons().
creates the worst case resource profile, that is, all jobs are inserted with the earliest start and latest completion time
Definition at line 14280 of file cons_cumulative.c. References computeImpliedEst(), computeImpliedLct(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcomputeHmin(), SCIPconvertRealToInt(), SCIPfreeBufferArray, SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapInsert(), SCIPprofileInsertCore(), SCIPsortDownIntInt(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), and SCIPsolveCumulative().
computes w.r.t. the given worst case resource profile the first time point where the given capacity can be violated
Definition at line 14359 of file cons_cumulative.c. References SCIPcomputeHmax(), SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTimepoints(). Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), and SCIPcreateWorstCaseProfile().
computes w.r.t. the given worst case resource profile the first time point where the given capacity is satisfied for sure
Definition at line 14389 of file cons_cumulative.c. References SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTimepoints(). Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), and SCIPcomputeHmin(). |