All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 67 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should separation method be delayed, if other separators found cuts? Definition at line 68 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should propagation method be delayed, if other propagators found reductions? Definition at line 69 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should presolving method be delayed, if other presolvers 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().
should the binary representation be used? Definition at line 85 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should cuts be added only locally? Definition at line 86 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should covering cuts be added? Definition at line 87 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should the cuts be created as knapsack constraints? Definition at line 88 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
shall old sepa algo be applied? Definition at line 89 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table (core-times) propagator be used to infer bounds? Definition at line 92 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should edge-finding be used to detect an overload? Definition at line 93 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should edge-finding be used to infer bounds? Definition at line 94 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 95 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table edge-finding be used to detect an overload? Definition at line 96 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should time-table edge-finding be used to infer bounds? Definition at line 97 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should dual presolving be applied? Definition at line 100 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should coeffisient tightening be applied? Definition at line 101 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should demands and capacity be normalized? Definition at line 102 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should pairwise constraint comparison be performed in presolving? Definition at line 103 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
extract disjunctive constraints? Definition at line 104 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
search for conflict set via maximal cliques to detect disjunctive constraints Definition at line 105 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
search for conflict set via maximal cliques to detect variable bound constraints Definition at line 106 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 107 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should branching candidates be added to storage? Definition at line 110 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
should bound widening be used during conflict analysis? Definition at line 113 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative().
Definition at line 122 of file cons_cumulative.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeConshdlrCumulative().
Definition at line 123 of file cons_cumulative.c. Referenced by SCIPincludeConshdlrCumulative(). Typedef DocumentationDefinition at line 255 of file cons_cumulative.c.
Definition at line 272 of file cons_cumulative.c.
Definition at line 5622 of file cons_cumulative.c. Enumeration Type Documentation
Propagation rules
Definition at line 249 of file cons_cumulative.c. Function Documentation
converts an integer into an inference information
Definition at line 276 of file cons_cumulative.c. Referenced by propagateTTEF(), SCIP_DECL_CONSRESPROP(), and SCIPrespropCumulativeCondition().
converts an inference information into an int
Definition at line 289 of file cons_cumulative.c. Referenced by coretimesUpdateLb(), coretimesUpdateUb(), inferboundsEdgeFinding(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF(). returns the propagation rule stored in the inference information
Definition at line 298 of file cons_cumulative.c. Referenced by respropCumulativeCondition(), and SCIP_DECL_CONSRESPROP().
returns data field one of the inference information
Definition at line 307 of file cons_cumulative.c. Referenced by propagateTTEF(), and respropCumulativeCondition().
returns data field two of the inference information
Definition at line 316 of file cons_cumulative.c. Referenced by propagateTTEF(), and respropCumulativeCondition(). constructs an inference information out of a propagation rule, an earliest start and a latest completion time
Definition at line 326 of file cons_cumulative.c. Referenced by coretimesUpdateLb(), coretimesUpdateUb(), inferboundsEdgeFinding(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF(). converts the given double bound which is integral to an int; in optimized mode the function gets inlined for performance; in debug mode we check some additional conditions
Definition at line 362 of file cons_cumulative.c. References SCIP_Real, SCIPisFeasEQ(), and SCIPisFeasIntegral(). Referenced by adjustOversizedJobBounds(), analyzeEnergyRequirement(), applyAlternativeBoundsBranching(), applyAlternativeBoundsFixing(), checkCumulativeCondition(), checkOverloadViaThetaTree(), collectBinaryVars(), collectBranchingCands(), collectDataTTEF(), collectDemands(), collectIntVars(), computeAlternativeBounds(), computeImpliedEst(), computeImpliedLct(), computeMinDistance(), consCheckRedundancy(), constraintNonOverlappingGraph(), coretimesUpdateLb(), coretimesUpdateUb(), createCoreProfile(), createCoverCuts(), createCoverCutsTimepoint(), createSelectedSortedEventpointsSol(), createSortedEventpoints(), createSortedEventpointsSol(), getActiveVar(), getHighestCapacityUsage(), presolveConsEffectiveHorizon(), presolveConsEst(), presolveConsLct(), propagateLbTTEF(), propagateTimetable(), propagateTTEF(), propagateUbTTEF(), removeIrrelevantJobs(), resolvePropagationCoretimes(), respropCumulativeCondition(), SCIPcreateWorstCaseProfile(), strengthVarbaounds(), tightenCoefs(), tightenLbTTEF(), and tightenUbTTEF().
compute the core of a job which lies in certain interval [begin, end)
Definition at line 377 of file cons_cumulative.c. Referenced by collectDataTTEF(), propagateLbTTEF(), propagateUbTTEF(), tightenLbTTEF(), and tightenUbTTEF().
returns the implied earliest start time
Definition at line 397 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPhashmapGetImage(), SCIPhashmapRemove(), SCIPisEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), and SCIPvarGetVlbVars(). Referenced by SCIPcreateWorstCaseProfile().
returns the implied latest completion time
Definition at line 465 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPhashmapExists(), SCIPhashmapRemove(), SCIPisEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNVubs(), SCIPvarGetUbLocal(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), and SCIPvarGetVubVars(). Referenced by SCIPcreateWorstCaseProfile().
collects all necessary binary variables to represent the jobs which can be active at time point of interest
Definition at line 529 of file cons_cumulative.c. References convertBoundToInt(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPexistsConsLinking(), SCIPgetBinvarsLinking(), SCIPgetConsLinking(), SCIPgetValsLinking(), SCIPreallocBufferArray, and SCIPvarGetUbGlobal(). Referenced by createCapacityRestriction().
collect all integer variable which belong to jobs which can run at the point of interest
Definition at line 627 of file cons_cumulative.c. References convertBoundToInt(), MIN, NULL, SCIP_OKAY, SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by createCapacityRestrictionIntvars().
initialize the sorted event point arrays
Definition at line 701 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIPsortIntInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal(). Referenced by consCapacityConstraintsFinder(), and tightenCapacity().
initialize the sorted event point arrays w.r.t. the given primal solutions
Definition at line 749 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIPgetSolVal(), and SCIPsortIntInt(). Referenced by computePeak().
initialize the sorted event point arrays
Definition at line 792 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIPdebugMessage, SCIPgetSolVal(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal(). Referenced by separateConsOnIntegerVariables().
gets the active variables together with the constant
Definition at line 1169 of file cons_cumulative.c. References convertBoundToInt(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIPgetProbvarSum(), SCIPisZero(), SCIPvarGetStatus(), and SCIPvarIsActive(). Referenced by computeAlternativeBounds(), varMayRoundDown(), and varMayRoundUp().
computes the total energy of all jobs
Definition at line 1214 of file cons_cumulative.c. Referenced by propagateLbTTEF(), and propagateUbTTEF().
solve single cumulative condition using SCIP and a single cumulative constraint Definition at line 1240 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, 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_SOLLIMIT, SCIP_STATUS_STALLNODELIMIT, SCIP_STATUS_TIMELIMIT, SCIP_STATUS_TOTALNODELIMIT, SCIP_STATUS_UNBOUNDED, SCIP_STATUS_UNKNOWN, SCIP_STATUS_USERINTERRUPT, SCIP_VARTYPE_INTEGER, SCIPaddCons(), SCIPaddVar(), SCIPallocMemoryArray, SCIPcreate(), SCIPcreateConsBasicCumulative(), SCIPcreateProbBasic(), SCIPcreateVarBasic(), SCIPdebugMessage, SCIPerrorMessage, SCIPfree(), SCIPfreeMemoryArray, SCIPgetBestSol(), SCIPgetSolVal(), SCIPgetStatus(), SCIPincludeDefaultPlugins(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsetBoolParam(), SCIPsetEmphasis(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetRealParam(), SCIPsnprintf(), SCIPsolve(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.
creates constaint handler data for cumulative constraint handler
Definition at line 1700 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory. Referenced by SCIPincludeConshdlrCumulative().
frees constraint handler data for logic or constraint handler
Definition at line 1745 of file cons_cumulative.c. References NULL, and SCIPfreeMemory. Referenced by SCIP_DECL_CONSFREE().
catches bound change events for all variables in transformed cumulative constraint
Definition at line 1766 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, and SCIPcatchVarEvent(). Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsCumulative().
drops events for variable at given position
Definition at line 1790 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, and SCIPdropVarEvent(). Referenced by consdataDeletePos(), and consdataDropAllEvents().
drops bound change events for all variables in transformed linear constraint
Definition at line 1811 of file cons_cumulative.c. References consdataDropEvents(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by SCIP_DECL_CONSDELETE().
initialize variable lock data structure
Definition at line 1833 of file cons_cumulative.c. Referenced by consdataCreate(), and removeRedundantConss().
creates constraint data of cumulative constraint
Definition at line 1853 of file cons_cumulative.c. References FALSE, initializeLocks(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPdebugMessage, SCIPduplicateBlockMemoryArray, SCIPgetConsLinking(), SCIPgetTransformedVars(), SCIPisTransformed(), SCIPmarkDoNotMultaggrVar(), SCIPstatistic, and SCIPtransformConss(). Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsCumulative().
releases LP rows of constraint data and frees rows array
Definition at line 1975 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArrayNull, and SCIPreleaseRow(). Referenced by consdataFree(), and SCIP_DECL_CONSEXITSOL().
frees a cumulative constraint data
Definition at line 2026 of file cons_cumulative.c. References consdataFreeRows(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, and SCIPreleaseCons(). Referenced by SCIP_DECL_CONSDELETE().
prints cumulative constraint to file stream
Definition at line 2075 of file cons_cumulative.c. References NULL, SCIPinfoMessage(), SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_CONSPRINT().
deletes coefficient at given position from constraint data
Definition at line 2102 of file cons_cumulative.c. References consdataDropEvents(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPinProbing(), SCIPreleaseCons(), SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by presolveConsEffectiveHorizon(), removeIrrelevantJobs(), and removeOversizedJobs().
collect linking constraints for each integer variable
Definition at line 2172 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPallocBlockMemoryArray, SCIPcaptureCons(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPcreateConsLinking(), SCIPdebugMessage, SCIPexistsConsLinking(), SCIPgetConsLinking(), SCIPsnprintf(), SCIPvarGetName(), and TRUE. Referenced by 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 2239 of file cons_cumulative.c. References convertBoundToInt(), FALSE, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasIntegral(), SCIPprintCons(), SCIPsortIntInt(), SCIPvarGetName(), and TRUE. Referenced by checkCons(), 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 2381 of file cons_cumulative.c. References checkCumulativeCondition(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage. Referenced by enforceSolution(), SCIP_DECL_CONSCHECK(), and SCIP_DECL_CONSENFOLP().
resolves the propagation of the core time algorithm
Definition at line 2417 of file cons_cumulative.c. References BMSclearMemoryArray, convertBoundToInt(), FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPgetStage(), SCIPinProbing(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPsortDownIntInt(), SCIPvarGetLbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), SCIPvarGetUbGlobal(), and TRUE. Referenced by analyseInfeasibelCoreInsertion(), and respropCumulativeCondition().
compute the minimum overlaps w.r.t. the duration of the job and the time window [begin,end)
Definition at line 2771 of file cons_cumulative.c. Referenced by analyzeEnergyRequirement().
an overload was detected due to the time-time edge-finding propagate; initialized conflict analysis, add an initial reason
Definition at line 2808 of file cons_cumulative.c. References computeOverlap(), convertBoundToInt(), FALSE, MIN, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPsortDownIntIntInt(), SCIPvarGetLbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateLbTTEF(), propagateTTEF(), propagateUbTTEF(), respropCumulativeCondition(), tightenLbTTEF(), and tightenUbTTEF().
resolve propagation w.r.t. the cumulative condition
Definition at line 3095 of file cons_cumulative.c. References analyzeEnergyRequirement(), convertBoundToInt(), 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(), SCIPdebugMessage, SCIPerrorMessage, SCIPvarGetLbAtIndex(), SCIPvarGetName(), SCIPvarGetUbAtIndex(), and TRUE. Referenced by SCIP_DECL_CONSRESPROP(), and SCIPrespropCumulativeCondition().
apply all fixings which are given by the alternative bounds
Definition at line 3255 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbranchVarHole(), SCIPdebugMessage, SCIPisNegative(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateAllConss().
remove the capacity requirments for all job which start at the curtime
Definition at line 3320 of file cons_cumulative.c. References NULL. Referenced by computePeak(), consCapacityConstraintsFinder(), separateConsOnIntegerVariables(), and tightenCapacity().
add the capacity requirments for all job which end at the curtime
Definition at line 3360 of file cons_cumulative.c. Referenced by computePeak(), consCapacityConstraintsFinder(), separateConsOnIntegerVariables(), and tightenCapacity().
computes a point in time when the capacity is exceeded returns hmax if this does not happen
Definition at line 3389 of file cons_cumulative.c. References addEndingJobDemands(), createSortedEventpointsSol(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, and subtractStartingJobDemands(). Referenced by collectBranchingCands().
checks all cumulative constraints for infeasibility and add branching candidates to storage
Definition at line 3474 of file cons_cumulative.c. References computePeak(), convertBoundToInt(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddExternBranchCand(), SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsIsActive(), SCIPdebugMessage, SCIPgetNVars(), SCIPgetSolVal(), SCIPhashtableCreate(), SCIPhashtableExists(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal(). Referenced by enforceSolution().
enforcement pseudo or LP solution
Definition at line 3561 of file cons_cumulative.c. References checkCons(), collectBranchingCands(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INFEASIBLE, and SCIP_OKAY. Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFOPS(). check if cumulative constraint is independently of all other constraints
Definition at line 3613 of file cons_cumulative.c. References FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), and TRUE. Referenced by solveIndependentCons().
in case the cumulative constraint is independent of every else, solve the cumulative problem and apply the fixings (dual reductions)
Definition at line 3652 of file cons_cumulative.c. References 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 presolveCons().
start conflict analysis to analysis the core insertion which is infeasible
Definition at line 3867 of file cons_cumulative.c. References NULL, resolvePropagationCoretimes(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPdebugMessage, SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by coretimesUpdateLb(), createCoreProfile(), 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 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 3923 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, convertBoundToInt(), getInferInfo(), inferInfoToInt(), MIN, NULL, PROPRULE_1_CORETIMES, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinferVarLbCons(), SCIPprofileFindLeft(), SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by 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 4076 of file cons_cumulative.c. References CONSHDLR_NAME, convertBoundToInt(), getInferInfo(), inferInfoToInt(), MAX, NULL, PROPRULE_1_CORETIMES, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconshdlrGetData(), SCIPdebug, SCIPdebugMessage, SCIPfindConshdlr(), SCIPgetMessagehdlr(), SCIPinferVarUbCons(), SCIPprofileFindLeft(), SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPprofilePrint(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateTimetable().
compute for the different earliest start and latest completion time the core energy of the corresponding time points
Definition at line 4210 of file cons_cumulative.c. References SCIP_OKAY, SCIPprofileGetLoad(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTime(). Referenced by propagateTTEF().
collect earliest start times, latest completion time, and free energy contributions
Definition at line 4281 of file cons_cumulative.c. References computeCoreWithInterval(), convertBoundToInt(), MAX, MIN, SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by propagateTTEF().
try to tighten the lower bound of the given variable
Definition at line 4349 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), convertBoundToInt(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, PROPRULE_3_TTEF, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictUb(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateLbTTEF().
try to tighten the upper bound of the given variable
Definition at line 4462 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), convertBoundToInt(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, PROPRULE_3_TTEF, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and TRUE. Referenced by propagateUbTTEF().
propagate the upper bounds and "opportunistically" the lower bounds using the time-table edge-finding algorithm
Definition at line 4576 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), computeTotalEnergy(), CONSHDLR_NAME, convertBoundToInt(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, PROPRULE_3_TTEF, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictUb(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), tightenUbTTEF(), and TRUE. Referenced by propagateTTEF().
propagate the lower bounds and "opportunistically" the upper bounds using the time-table edge-finding algorithm
Definition at line 4927 of file cons_cumulative.c. References analyzeEnergyRequirement(), computeCoreWithInterval(), computeTotalEnergy(), CONSHDLR_NAME, convertBoundToInt(), getInferInfo(), inferInfoToInt(), MAX, MIN, NULL, PROPRULE_3_TTEF, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPaddConflictUb(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), tightenLbTTEF(), and TRUE. Referenced by propagateTTEF().
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 5269 of file cons_cumulative.c. References analyzeEnergyRequirement(), collectDataTTEF(), computeCoreEngeryAfter(), CONSHDLR_NAME, convertBoundToInt(), inferInfoGetData1(), inferInfoGetData2(), intToInferInfo(), NULL, propagateLbTTEF(), propagateUbTTEF(), SCIP_Bool, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPsortIntInt(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition().
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 5459 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, convertBoundToInt(), coretimesUpdateLb(), coretimesUpdateUb(), FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPprofileDeleteCore(), SCIPprofileGetNTimepoints(), SCIPprofileGetTime(), SCIPprofileInsertCore(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition().
creates a node data structure
Definition at line 5626 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPallocBuffer, and TRUE. Referenced by checkOverloadViaThetaTree(), and insertThetanode().
frees a node data structure
Definition at line 5650 of file cons_cumulative.c. References NULL, and SCIPfreeBuffer. Referenced by checkOverloadViaThetaTree().
update node data structure strating form the given node along the path to the root node
Definition at line 5663 of file cons_cumulative.c. References MAX, NULL, SCIP_OKAY, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), and SCIPdebugMessage. Referenced by deleteLambdaLeaf(), insertThetanode(), and moveNodeToLambda().
updates the key of the first parent on the trace which comes from left
Definition at line 5753 of file cons_cumulative.c. References NULL, SCIPbtnodeGetData(), SCIPbtnodeGetParent(), SCIPbtnodeIsLeftchild(), and SCIPbtnodeIsRoot(). Referenced by deleteLambdaLeaf().
deletes the given node and updates all envelops
Definition at line 5785 of file cons_cumulative.c. References 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().
moves a node form the theta set into the lambda set and updates the envelops
Definition at line 5859 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPbtnodeGetData(), and updateEnvelop(). Referenced by inferboundsEdgeFinding().
inserts a node into the theta set and update the envelops
Definition at line 5895 of file cons_cumulative.c. References createNodedata(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPbtnodeCreate(), SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPbtnodeSetLeftchild(), SCIPbtnodeSetParent(), SCIPbtnodeSetRightchild(), SCIPbtSetRoot(), and updateEnvelop(). Referenced by checkOverloadViaThetaTree().
returns the leaf responsible for the lambda energy
Definition at line 5999 of file cons_cumulative.c. References NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by findResponsibleLambdaLeafTraceEnvelop().
returns the leaf responsible for the lambda envelop
Definition at line 6048 of file cons_cumulative.c. References findResponsibleLambdaLeafTraceEnergy(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by inferboundsEdgeFinding().
reports all elements from set theta to generate a conflicting set
Definition at line 6101 of file cons_cumulative.c. References MAX, MIN, NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), SCIPdebugMessage, and SCIPvarGetName(). Referenced by traceLambdaEnergy(), traceLambdaEnvelop(), and traceThetaEnvelop().
collect the jobs (omega set) which are contribute to theta envelop from the theta set
Definition at line 6136 of file cons_cumulative.c. References collectThetaSubtree(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by traceLambdaEnvelop().
collect the jobs (omega set) which are contribute to lambda envelop from the theta set
Definition at line 6197 of file cons_cumulative.c. References collectThetaSubtree(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), and SCIPbtnodeIsLeaf(). Referenced by traceLambdaEnvelop().
collect the jobs (omega set) which are contribute to lambda envelop from the theta set
Definition at line 6254 of file cons_cumulative.c. References collectThetaSubtree(), NULL, SCIPbtnodeGetData(), SCIPbtnodeGetLeftchild(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsLeaf(), traceLambdaEnergy(), and traceThetaEnvelop(). Referenced by inferboundsEdgeFinding().
compute the energy contribution by job which corresponds to the given leaf
Definition at line 6320 of file cons_cumulative.c. References NULL, SCIPbtnodeGetData(), SCIPdebugMessage, SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal(). Referenced by analyzeConflictOverload().
comparison method for two node datas w.r.t. the earliest start time Definition at line 6344 of file cons_cumulative.c. References SCIPbtnodeGetData().
comparison method for two node datas w.r.t. the latest completion time Definition at line 6357 of file cons_cumulative.c.
an overload was detected; initialized conflict analysis, add an initial reason
Definition at line 6374 of file cons_cumulative.c. References computeEnergyContribution(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPbtnodeGetData(), SCIPdebugMessage, SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPsortDownPtr(), SCIPswapInts(), and TRUE. Referenced by checkOverloadViaThetaTree(), and inferboundsEdgeFinding().
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 6484 of file cons_cumulative.c. References NULL, SCIP_Real, and SCIPfeasCeil(). Referenced by inferboundsEdgeFinding().
propagates start time using an edge finding algorithm which is based on binary trees (theta lambda trees)
Definition at line 6518 of file cons_cumulative.c. References analyzeConflictOverload(), 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().
checks whether the instance is infeasible due to a overload within a certain time frame using the idea of theta trees
Definition at line 6726 of file cons_cumulative.c. References analyzeConflictOverload(), CONSHDLR_NAME, convertBoundToInt(), createNodedata(), FALSE, freeNodedata(), inferboundsEdgeFinding(), insertThetanode(), MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPbtCreate(), SCIPbtFree(), SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPbtnodeCreate(), SCIPbtnodeGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPsortPtr(), SCIPstatistic, SCIPswapInts(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by 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 7029 of file cons_cumulative.c. References checkOverloadViaThetaTree(), FALSE, SCIP_CALL, SCIP_OKAY, and TRUE. Referenced by 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 7078 of file cons_cumulative.c. References convertBoundToInt(), FALSE, MAX, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition().
creates the worst case resource profile, that is, all jobs are inserted with the earliest start and latest completion time
Definition at line 7201 of file cons_cumulative.c. References analyseInfeasibelCoreInsertion(), CONSHDLR_NAME, convertBoundToInt(), MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPisFeasIntegral(), SCIPprofileGetTime(), SCIPprofileInsertCore(), SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by propagateCumulativeCondition().
propagate the cumulative condition
Definition at line 7292 of file cons_cumulative.c. References consCheckRedundancy(), createCoreProfile(), FALSE, NULL, propagateEdgeFinding(), propagateTimetable(), propagateTTEF(), SCIP_CALL, SCIP_OKAY, SCIPprofileCreate(), and SCIPprofileFree(). Referenced by propagateCons(), and SCIPpropCumulativeCondition().
propagate the cumulative constraint
Definition at line 7352 of file cons_cumulative.c. References 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 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 7432 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(), and TRUE. Referenced by applyAlternativeBoundsFixing(), presolveConsEst(), and presolveConsLct().
is it possible, to round variable down w.r.t. objective function
Definition at line 7530 of file cons_cumulative.c. References FALSE, getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIPisNegative(), SCIPisPositive(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE. Referenced by applyAlternativeBoundsFixing(), fixIntegerVariableLb(), and presolveConsEst().
is it possible, to round variable up w.r.t. objective function
Definition at line 7579 of file cons_cumulative.c. References FALSE, getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIPisNegative(), SCIPisPositive(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE. Referenced by applyAlternativeBoundsFixing(), fixIntegerVariableUb(), and presolveConsLct().
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 7632 of file cons_cumulative.c. References SCIP_Profile::capacity, convertBoundToInt(), getActiveVar(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPcomputeHmax(), SCIPcomputeHmin(), SCIPconsGetData(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPcreateWorstCaseProfile(), SCIPprofileCreate(), SCIPprofileFree(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal(). Referenced by propagateAllConss().
apply all fixings which are given by the alternative bounds
Definition at line 7763 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, convertBoundToInt(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPvarGetLbLocal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbLocal(), varMayRoundDown(), and varMayRoundUp(). Referenced by propagateAllConss().
propagate all constraints together
Definition at line 7917 of file cons_cumulative.c. References applyAlternativeBoundsBranching(), applyAlternativeBoundsFixing(), computeAlternativeBounds(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetVars(), SCIPinProbing(), and SCIPinRepropagation(). Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
creates covering cuts for jobs violating resource constraints
Definition at line 7989 of file cons_cumulative.c. References convertBoundToInt(), MIN, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPcreateEmptyRowCons(), SCIPflushRowExtensions(), SCIPfreeBufferArray, SCIPgetBinvarsLinking(), SCIPgetValsLinking(), SCIPinfinity(), SCIPreallocBlockMemoryArray, SCIPsnprintf(), SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by createCoverCuts().
method to construct cover cuts for all points in time
Definition at line 8244 of file cons_cumulative.c. References convertBoundToInt(), createCoverCutsTimepoint(), MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPsortIntInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by separateCoverCutsCons().
this method creates a row for time point curtime which insures the capacity restriction of the cumulative constraint
Definition at line 8386 of file cons_cumulative.c. References collectBinaryVars(), 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().
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 8476 of file cons_cumulative.c. References addEndingJobDemands(), createCapacityRestriction(), createSortedEventpoints(), FALSE, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, and subtractStartingJobDemands(). Referenced by 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 8607 of file cons_cumulative.c. References consCapacityConstraintsFinder(), consdataCollectLinkingCons(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsSeparated(), SCIPsetConsEnforced(), SCIPsetConsInitial(), and SCIPsetConsSeparated(). Referenced by addRelaxation(), and separateConsBinaryRepresentation().
adds linear relaxation of cumulative constraint to the LP
Definition at line 8650 of file cons_cumulative.c. References createRelaxation(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddCut(), SCIPconsGetData(), and SCIProwIsInLP(). Referenced by SCIP_DECL_CONSINITLP().
checks constraint for violation, and adds it as a cut if possible
Definition at line 8684 of file cons_cumulative.c. References createRelaxation(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), and TRUE. Referenced by 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 8756 of file cons_cumulative.c. References consdataCollectLinkingCons(), 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(), and SCIP_DECL_CONSSEPASOL().
this method creates a row for time point
Definition at line 8872 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(), and TRUE. Referenced by separateConsOnIntegerVariables().
checks constraint for violation, and adds it as a cut if possible
Definition at line 8941 of file cons_cumulative.c. References addEndingJobDemands(), createCapacityRestrictionIntvars(), createSelectedSortedEventpointsSol(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, subtractStartingJobDemands(), and TRUE. Referenced by 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 9049 of file cons_cumulative.c. References FALSE, NULL, SCIPconsGetData(), and TRUE. Referenced by presolveCons(), and SCIP_DECL_CONSPRESOL().
delete constraint if it consists of at most one job
Definition at line 9090 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPdelCons(), and TRUE. Referenced by 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 9132 of file cons_cumulative.c. References consdataDeletePos(), CONSHDLR_NAME, convertBoundToInt(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPstatistic, SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_CONSINITPRE(), and SCIP_DECL_CONSPRESOL().
adjust bounds of over sizeed job (the demand is larger than the capacity)
Definition at line 9196 of file cons_cumulative.c. References convertBoundToInt(), FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsBounddisjunction(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPreleaseCons(), SCIPsnprintf(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE. Referenced by removeOversizedJobs().
try to removed over sizeed jobs (the demand is larger than the capacity)
Definition at line 9302 of file cons_cumulative.c. References adjustOversizedJobBounds(), consdataDeletePos(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage. Referenced by presolveCons().
fix integer variable to upper bound if the rounding locks and the object coefficient are in favor of that
Definition at line 9343 of file cons_cumulative.c. References FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfixVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and varMayRoundUp(). Referenced by presolveConsLct().
fix integer variable to lower bound if the rounding locks and the object coefficient are in favor of that
Definition at line 9395 of file cons_cumulative.c. References FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPfixVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), TRUE, and varMayRoundDown(). Referenced by presolveConsEst().
normalize cumulative condition
Definition at line 9442 of file cons_cumulative.c. References MAX, MIN, SCIP_Longint, SCIP_OKAY, SCIPcalcGreComDiv(), and SCIPdebugMessage. Referenced by 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 9517 of file cons_cumulative.c. References FALSE, normalizeCumulativeCondition(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsModifiable(), and TRUE. Referenced by presolveCons().
computes for the given cumulative condition the effective horizon
Definition at line 9554 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPcomputeHmax(), SCIPcomputeHmin(), SCIPcreateWorstCaseProfile(), SCIPdebug, SCIPgetMessagehdlr(), SCIPinRepropagation(), SCIPprofileCreate(), SCIPprofileFree(), SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), SCIPprofileGetTimepoints(), and SCIPprofilePrint(). Referenced by computeEffectiveHorizon(), and SCIPsplitCumulativeCondition().
creates and adds a cumulative constraint
Definition at line 9634 of file cons_cumulative.c. References SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPcreateConsCumulative(), SCIPreleaseCons(), SCIPsetHmaxCumulative(), and SCIPsetHminCumulative(). Referenced by computeEffectiveHorizon(), and createDisjuctiveCons().
computes the effective horizon and checks if the constraint can be decompsed
Definition at line 9688 of file cons_cumulative.c. References computeEffectiveHorizonCumulativeCondition(), CONSHDLR_NAME, createConsCumulative(), NULL, 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 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 9792 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, convertBoundToInt(), FALSE, fixIntegerVariableLb(), MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetUbGlobal(), TRUE, and varMayRoundDown(). Referenced by 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 10077 of file cons_cumulative.c. References applyProbingVar(), CONSHDLR_NAME, convertBoundToInt(), FALSE, fixIntegerVariableUb(), MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfixVar(), SCIPfreeBufferArray, SCIPstatistic, SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and varMayRoundUp(). Referenced by presolveConsEffectiveHorizon(), and SCIPpresolveCumulativeCondition().
presolve cumulative constraint w.r.t. the boundary of the effective horizon
Definition at line 10329 of file cons_cumulative.c. References BMSclearMemoryArray, consdataDeletePos(), convertBoundToInt(), FALSE, NULL, presolveConsEst(), presolveConsLct(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE. Referenced by presolveCons().
stores all demands which are smaller than the capacity of those jobs that are running at 'curtime'
Definition at line 10410 of file cons_cumulative.c. References convertBoundToInt(), NULL, SCIP_OKAY, and SCIPvarGetUbGlobal(). Referenced by getHighestCapacityUsage().
this method creates a row for time point curtime which insures the capacity restriction of the cumulative constraint
Definition at line 10469 of file cons_cumulative.c. References collectDemands(), convertBoundToInt(), NULL, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPisFeasIntegral(), and SCIPsolveKnapsackExactly(). Referenced by 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 10530 of file cons_cumulative.c. References addEndingJobDemands(), createSortedEventpoints(), FALSE, getHighestCapacityUsage(), MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPdebugPrintf, SCIPfreeBufferArray, and subtractStartingJobDemands(). Referenced by presolveCons().
tries to change coefficients: demand_j < cap && all other parallel jobs in conflict ==> set demand_j := cap
Definition at line 10674 of file cons_cumulative.c. References convertBoundToInt(), FALSE, MIN, NULL, SCIP_Bool, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by presolveCons().
creare a disjunctive constraint which contains all jobs which cannot run in parallel
Definition at line 10877 of file cons_cumulative.c. References createConsCumulative(), FALSE, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPfreeBufferArray, and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
presolve given constraint
Definition at line 10960 of file cons_cumulative.c. References checkDemands(), computeEffectiveHorizon(), deleteTrivilCons(), normalizeDemands(), presolveConsEffectiveHorizon(), removeOversizedJobs(), SCIP_CALL, SCIP_OKAY, SCIPconsIsDeleted(), solveIndependentCons(), tightenCapacity(), and tightenCoefs(). Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
gets number of nodes in the graph Definition at line 11061 of file cons_cumulative.c. References NULL.
gets weight of nodes in the graph Definition at line 11070 of file cons_cumulative.c. References NULL.
returns, whether the edge (node1, node2) is in the graph Definition at line 11079 of file cons_cumulative.c.
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 11100 of file cons_cumulative.c. References NULL.
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 11134 of file cons_cumulative.c. References SCIPdebugMessage.
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 11172 of file cons_cumulative.c. References FALSE, SCIP_Real, SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by impliesVubPrecedenceCondition(), and projectVbd().
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 11227 of file cons_cumulative.c. References impliesVlbPrecedenceCondition(), and SCIP_Real. Referenced by 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 11249 of file cons_cumulative.c. References BMSclearMemoryArray, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPreallocBufferArray, and SCIPvarGetProbindex(). Referenced by constraintNonOverlappingGraph(), 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 11339 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(), and TRUE. Referenced by constructIncompatibilityGraph().
compute the transitive closer of the given graph and the number of in and out arcs
Definition at line 11434 of file cons_cumulative.c. References TRUE. Referenced by constructIncompatibilityGraph().
constructs a non-overlapping graph w.r.t. given durations and available cumulative constraints
Definition at line 11466 of file cons_cumulative.c. References convertBoundToInt(), getNodeIdx(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by constructIncompatibilityGraph().
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 11562 of file cons_cumulative.c. References constraintNonOverlappingGraph(), NULL, projectVbd(), SCIP_CALL, SCIP_OKAY, and transitiveClosure(). Referenced by detectRedundantConss().
create cumulative constraint from conflict set
Definition at line 11586 of file cons_cumulative.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsCumulative(), SCIPfreeBufferArray, SCIPreleaseCons(), SCIPsortInt(), and TRUE. Referenced by findCumulativeConss().
search for cumulative constrainst
Definition at line 11632 of file cons_cumulative.c. References CONSHDLR_NAME, createCumulativeCons(), 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 detectRedundantConss().
create precedence constraint (as variable bound constraint
Definition at line 11760 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsVarbound(), SCIPdebugPrintCons, SCIPinfinity(), SCIPreleaseCons(), and TRUE. Referenced by computeMinDistance(), and strengthVarbaounds().
compute a minimum distance between the start times of the two given jobs and post it as variable bound constraint
Definition at line 11785 of file cons_cumulative.c. References BMSclearMemoryArray, convertBoundToInt(), createPrecedenceCons(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetNRuns(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and tcliqueMaxClique(). Referenced by 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 11886 of file cons_cumulative.c. References computeMinDistance(), CONSHDLR_NAME, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPisStopped(), and SCIPstatistic. Referenced by detectRedundantConss().
initialize the assumed durations for each variable
Definition at line 11954 of file cons_cumulative.c. References getNodeIdx(), MAX, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData(). Referenced by detectRedundantConss().
create tclique graph
Definition at line 11998 of file cons_cumulative.c. References BMSclearMemoryArray, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBuffer, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPduplicateBufferArray, SCIPgetNVars(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapInsert(), and SCIPvarGetProbindex(). Referenced by detectRedundantConss().
frees the tclique graph
Definition at line 12079 of file cons_cumulative.c. References SCIPfreeBuffer, SCIPfreeBufferArray, and SCIPhashmapFree(). Referenced by detectRedundantConss().
construct an incompatibility graph and search for precedence constraints (variables bounds) and unary cumulative constrains (disjunctive constraint)
Definition at line 12108 of file cons_cumulative.c. References constructIncompatibilityGraph(), createTcliqueGraph(), findCumulativeConss(), findPrecedenceConss(), freeTcliqueGraph(), initializeDurations(), SCIP_CALL, and SCIP_OKAY. Referenced by SCIP_DECL_CONSPRESOL().
compute the constraint signature which is used to detect constraints which contain potentially the same set of variables
Definition at line 12147 of file cons_cumulative.c. References SCIPvarGetIndex(), and TRUE. Referenced by removeRedundantConss().
index comparison method of linear constraints: compares two indices of the variable set in the linear constraint Definition at line 12171 of file cons_cumulative.c. References NULL, and SCIPvarCompare().
run a pairwise comparison
Definition at line 12184 of file cons_cumulative.c. References consdataCalcSignature(), initializeLocks(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsIsChecked(), SCIPdelCons(), SCIPfreeBufferArray, SCIPsort(), SCIPswapPointers(), SCIPupdateConsFlags(), SCIPvarCompare(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
strength the variable bounds using the cumulative condition
Definition at line 12324 of file cons_cumulative.c. References convertBoundToInt(), createPrecedenceCons(), NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarVlb(), SCIPconsGetData(), SCIPdebugMessage, SCIPgetNRuns(), SCIPisEQ(), SCIPisStopped(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 12428 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPfindConshdlr(), SCIPincludeConshdlrCumulative(), SCIPstatistic, and TRUE.
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 12446 of file cons_cumulative.c. References CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconshdlrSetData(), and SCIPstatisticPrintf.
presolving initialization method of constraint handler (called when presolving is about to begin) Definition at line 12479 of file cons_cumulative.c. References removeIrrelevantJobs(), SCIP_CALL, and SCIP_OKAY.
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 12535 of file cons_cumulative.c. References consdataFreeRows(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPconshdlrGetName().
frees specific constraint data Definition at line 12558 of file cons_cumulative.c. References consdataDropAllEvents(), consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPvarIsTransformed().
transforms constraint data into data belonging to the transformed problem Definition at line 12584 of file cons_cumulative.c. References consdataCatchEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMessage, and SCIPgetStage().
LP initialization method of constraint handler Definition at line 12626 of file cons_cumulative.c. References addRelaxation(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsInitial(), SCIPdebugMessage, and SCIPrestartSolve().
separation method of constraint handler for LP solutions Definition at line 12661 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetDepth(), separateConsBinaryRepresentation(), separateConsOnIntegerVariables(), separateCoverCutsCons(), and TRUE.
separation method of constraint handler for arbitrary primal solutions Definition at line 12729 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetDepth(), separateConsBinaryRepresentation(), separateConsOnIntegerVariables(), separateCoverCutsCons(), and TRUE.
constraint enforcing method of constraint handler for LP solutions Definition at line 12793 of file cons_cumulative.c. References checkCons(), CONSHDLR_NAME, enforceSolution(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateConsBinaryRepresentation().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 12879 of file cons_cumulative.c. References CONSHDLR_NAME, enforceSolution(), NULL, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPdebugMessage.
feasibility check method of constraint handler for integral solutions Definition at line 12908 of file cons_cumulative.c. References checkCons(), CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetName(), and SCIPdebugMessage.
domain propagation method of constraint handler Definition at line 12937 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, presolveCons(), propagateAllConss(), propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPgetDepth(), and TRUE.
presolving method of constraint handler Definition at line 13024 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_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPgetNRuns(), and strengthVarbaounds().
propagation conflict resolving method of constraint handler Definition at line 13138 of file cons_cumulative.c. References CONSHDLR_NAME, inferInfoGetProprule(), intToInferInfo(), NULL, respropCumulativeCondition(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetHmaxCumulative(), SCIPgetHminCumulative(), and SCIPvarGetName().
variable rounding lock method of constraint handler Definition at line 13172 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconsGetName(), and SCIPdebugMessage.
constraint display method of constraint handler Definition at line 13212 of file cons_cumulative.c. References consdataPrint(), NULL, SCIP_OKAY, and SCIPconsGetData().
constraint copying method of constraint handler Definition at line 13225 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsCumulative(), SCIPfreeBufferArray, SCIPgetVarCopy(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), and TRUE.
constraint parsing method of constraint handler Definition at line 13291 of file cons_cumulative.c. References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsCumulative(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPparseVarName(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPstrCopySection(), SCIPstrToRealValue(), SCIPvarGetName(), and TRUE.
constraint method of constraint handler which returns the variables (if possible) Definition at line 13386 of file cons_cumulative.c. References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 13408 of file cons_cumulative.c. References NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
execution method of event handler Definition at line 13431 of file cons_cumulative.c. References EVENTHDLR_NAME, FALSE, NULL, SCIP_OKAY, and SCIPeventhdlrGetName().
creates the handler for cumulative constraints and includes it in SCIP
Definition at line 13462 of file cons_cumulative.c. References CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPRESOL, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, 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(), 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(), and SCIPincludeDefaultPlugins().
creates and captures a cumulative constraint
Definition at line 13592 of file cons_cumulative.c. References consdataCatchEvents(), consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STAGE_PROBLEM, SCIPconshdlrGetData(), SCIPcreateCons(), SCIPdebugMessage, SCIPerrorMessage, SCIPfindConshdlr(), and SCIPgetStage(). Referenced by CREATE_CONSTRAINT(), createConsCumulative(), createCumulativeCons(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), and SCIPcreateConsBasicCumulative().
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 13674 of file cons_cumulative.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsCumulative(), and TRUE. Referenced by SCIP_DECL_SOLVECUMULATIVE().
set the left bound of the time axis to be considered (including hmin)
Definition at line 13694 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by createConsCumulative(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), and SCIP_DECL_SOLVECUMULATIVE(). returns the left bound of the time axis to be considered
Definition at line 13718 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by SCIP_DECL_CONSRESPROP().
set the right bound of the time axis to be considered (not including hmax)
Definition at line 13738 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by createConsCumulative(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), and SCIP_DECL_SOLVECUMULATIVE(). returns the right bound of the time axis to be considered
Definition at line 13762 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by SCIP_DECL_CONSRESPROP(). returns the activities of the cumulative constraint
Definition at line 13782 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by writeFzn(). returns the activities of the cumulative constraint
Definition at line 13803 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by writeFzn(). returns the capacity of the cumulative constraint
Definition at line 13824 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by writeFzn(). returns the durations of the cumulative constraint
Definition at line 13845 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by writeFzn(). returns the demands of the cumulative constraint
Definition at line 13866 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by 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 13889 of file cons_cumulative.c. References checkCumulativeCondition(), NULL, SCIP_CALL, and SCIP_OKAY.
normalize cumulative condition
Definition at line 13914 of file cons_cumulative.c. References normalizeCumulativeCondition(), SCIP_CALL, and SCIP_OKAY.
searches for a time point within the cumulative condition were the cumulative condition can be split
Definition at line 13932 of file cons_cumulative.c. References computeEffectiveHorizonCumulativeCondition(), SCIP_CALL, and SCIP_OKAY.
presolve cumulative condition w.r.t. effective horizon by detecting irrelevant variables
Definition at line 13951 of file cons_cumulative.c. References presolveConsEst(), presolveConsLct(), SCIP_CALL, and SCIP_OKAY.
propagate the given cumulative condition
Definition at line 13982 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, propagateCumulativeCondition(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPerrorMessage, and SCIPfindConshdlr().
resolve propagation w.r.t. the cumulative condition
Definition at line 14030 of file cons_cumulative.c. References intToInferInfo(), respropCumulativeCondition(), SCIP_CALL, SCIP_OKAY, and TRUE.
this method visualizes the cumulative structure in GML format
Definition at line 14055 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(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetUbGlobal(), SCIPvarGetVlbVars(), SCIPvarGetVubVars(), and TRUE.
sets method to solve an individual cumulative condition
Definition at line 14156 of file cons_cumulative.c. References CONSHDLR_NAME, NULL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPerrorMessage, and SCIPfindConshdlr().
solves given cumulative condition as independent sub problem
Definition at line 14186 of file cons_cumulative.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPconshdlrGetData(), SCIPerrorMessage, SCIPfindConshdlr(), and TRUE. Referenced by solveIndependentCons().
creates the worst case resource profile, that is, all jobs are inserted with the earliest start and latest completion time
Definition at line 14242 of file cons_cumulative.c. References computeImpliedEst(), computeImpliedLct(), convertBoundToInt(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPfreeBufferArray, SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapInsert(), SCIPprofileInsertCore(), SCIPsortDownIntInt(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by computeAlternativeBounds(), and computeEffectiveHorizonCumulativeCondition().
computes w.r.t. the given worst case resource profile the first time point where the given capacity can be violated
Definition at line 14321 of file cons_cumulative.c. References SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTimepoints(). Referenced by computeAlternativeBounds(), and computeEffectiveHorizonCumulativeCondition().
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 14351 of file cons_cumulative.c. References SCIPprofileGetLoads(), SCIPprofileGetNTimepoints(), and SCIPprofileGetTimepoints(). Referenced by computeAlternativeBounds(), and computeEffectiveHorizonCumulativeCondition(). |