Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

ressource profile data structure

Functions

SCIP_EXPORT SCIP_RETCODE SCIPprofileCreate (SCIP_PROFILE **profile, int capacity)
 
SCIP_EXPORT void SCIPprofileFree (SCIP_PROFILE **profile)
 
SCIP_EXPORT void SCIPprofilePrint (SCIP_PROFILE *profile, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
 
SCIP_EXPORT int SCIPprofileGetCapacity (SCIP_PROFILE *profile)
 
SCIP_EXPORT int SCIPprofileGetNTimepoints (SCIP_PROFILE *profile)
 
SCIP_EXPORT int * SCIPprofileGetTimepoints (SCIP_PROFILE *profile)
 
SCIP_EXPORT int * SCIPprofileGetLoads (SCIP_PROFILE *profile)
 
SCIP_EXPORT int SCIPprofileGetTime (SCIP_PROFILE *profile, int pos)
 
SCIP_EXPORT int SCIPprofileGetLoad (SCIP_PROFILE *profile, int pos)
 
SCIP_EXPORT SCIP_Bool SCIPprofileFindLeft (SCIP_PROFILE *profile, int timepoint, int *pos)
 
SCIP_EXPORT SCIP_RETCODE SCIPprofileInsertCore (SCIP_PROFILE *profile, int left, int right, int height, int *pos, SCIP_Bool *infeasible)
 
SCIP_EXPORT SCIP_RETCODE SCIPprofileDeleteCore (SCIP_PROFILE *profile, int left, int right, int height)
 
SCIP_EXPORT int SCIPprofileGetEarliestFeasibleStart (SCIP_PROFILE *profile, int est, int lst, int duration, int height, SCIP_Bool *infeasible)
 
SCIP_EXPORT int SCIPprofileGetLatestFeasibleStart (SCIP_PROFILE *profile, int lb, int ub, int duration, int height, SCIP_Bool *infeasible)
 

Function Documentation

◆ SCIPprofileCreate()

SCIP_EXPORT SCIP_RETCODE SCIPprofileCreate ( SCIP_PROFILE **  profile,
int  capacity 
)

creates resource profile

Parameters
profilepointer to store the resource profile
capacityresource capacity

Definition at line 6657 of file misc.c.

References doProfileCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPprofileFree().

Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), performBackwardScheduling(), performForwardScheduling(), propagateCons(), propagateCumulativeCondition(), and SCIPrealHashCode().

◆ SCIPprofileFree()

SCIP_EXPORT void SCIPprofileFree ( SCIP_PROFILE **  profile)

◆ SCIPprofilePrint()

SCIP_EXPORT void SCIPprofilePrint ( SCIP_PROFILE profile,
SCIP_MESSAGEHDLR messagehdlr,
FILE *  file 
)

output of the given resource profile

Parameters
profileresource profile to output
messagehdlrmessage handler
fileoutput file (or NULL for standard output)

Definition at line 6687 of file misc.c.

References SCIP_Profile::capacity, and SCIPmessageFPrintInfo().

Referenced by computeEffectiveHorizonCumulativeCondition(), coretimesUpdateUb(), and SCIPrealHashCode().

◆ SCIPprofileGetCapacity()

SCIP_EXPORT int SCIPprofileGetCapacity ( SCIP_PROFILE profile)

returns the capacity of the resource profile

Parameters
profileresource profile to use

Definition at line 6709 of file misc.c.

References SCIP_Profile::capacity, and NULL.

Referenced by SCIPrealHashCode().

◆ SCIPprofileGetNTimepoints()

SCIP_EXPORT int SCIPprofileGetNTimepoints ( SCIP_PROFILE profile)

returns the number time points of the resource profile

Parameters
profileresource profile to use

Definition at line 6719 of file misc.c.

References SCIP_Profile::ntimepoints, and NULL.

Referenced by computeCoreEnergyAfter(), computeEffectiveHorizonCumulativeCondition(), coretimesUpdateLb(), coretimesUpdateUb(), propagateTimetable(), SCIPcomputeHmax(), SCIPcomputeHmin(), and SCIPrealHashCode().

◆ SCIPprofileGetTimepoints()

SCIP_EXPORT int* SCIPprofileGetTimepoints ( SCIP_PROFILE profile)

returns the time points of the resource profile

Parameters
profileresource profile to use

Definition at line 6729 of file misc.c.

References NULL, and SCIP_Profile::timepoints.

Referenced by computeEffectiveHorizonCumulativeCondition(), SCIPcomputeHmax(), SCIPcomputeHmin(), and SCIPrealHashCode().

◆ SCIPprofileGetLoads()

SCIP_EXPORT int* SCIPprofileGetLoads ( SCIP_PROFILE profile)

returns the loads of the resource profile

Parameters
profileresource profile to use

Definition at line 6739 of file misc.c.

References SCIP_Profile::loads, and NULL.

Referenced by computeEffectiveHorizonCumulativeCondition(), SCIPcomputeHmax(), SCIPcomputeHmin(), and SCIPrealHashCode().

◆ SCIPprofileGetTime()

SCIP_EXPORT int SCIPprofileGetTime ( SCIP_PROFILE profile,
int  pos 
)

returns the time point for given position of the resource profile

Parameters
profileresource profile to use
posposition

Definition at line 6749 of file misc.c.

References NULL, and SCIP_Profile::timepoints.

Referenced by computeCoreEnergyAfter(), coretimesUpdateLb(), coretimesUpdateUb(), createCoreProfile(), propagateTimetable(), and SCIPrealHashCode().

◆ SCIPprofileGetLoad()

SCIP_EXPORT int SCIPprofileGetLoad ( SCIP_PROFILE profile,
int  pos 
)

returns the loads of the resource profile at the given position

Parameters
profileresource profile
posposition

Definition at line 6761 of file misc.c.

References SCIP_Profile::loads, and NULL.

Referenced by computeCoreEnergyAfter(), coretimesUpdateLb(), coretimesUpdateUb(), and SCIPrealHashCode().

◆ SCIPprofileFindLeft()

SCIP_EXPORT SCIP_Bool SCIPprofileFindLeft ( SCIP_PROFILE profile,
int  timepoint,
int *  pos 
)

returns if the given time point exists in the resource profile and stores the position of the given time point if it exists; otherwise the position of the next smaller existing time point is stored

Parameters
profileresource profile to search
timepointtime point to search for
pospointer to store the position

Definition at line 6775 of file misc.c.

References FALSE, SCIP_Profile::ntimepoints, NULL, SCIPsortedvecFindInt(), SCIP_Profile::timepoints, and TRUE.

Referenced by coretimesUpdateLb(), coretimesUpdateUb(), profileInsertTimepoint(), SCIPprofileDeleteCore(), SCIPprofileGetEarliestFeasibleStart(), SCIPprofileGetLatestFeasibleStart(), and SCIPrealHashCode().

◆ SCIPprofileInsertCore()

SCIP_EXPORT SCIP_RETCODE SCIPprofileInsertCore ( SCIP_PROFILE profile,
int  left,
int  right,
int  demand,
int *  pos,
SCIP_Bool infeasible 
)

insert a core into resource profile; if the core is non-empty the resource profile will be updated otherwise nothing happens

Parameters
profileresource profile
leftleft side of the core
rightright side of the core
demanddemand of the core
pospointer to store the first position were it gets infeasible
infeasiblepointer to store if the core does not fit due to capacity

Definition at line 6922 of file misc.c.

References FALSE, NULL, profileUpdate(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.

Referenced by createCoreProfile(), profilesInsertJob(), propagateCons(), propagateTimetable(), SCIPcreateWorstCaseProfile(), and SCIPrealHashCode().

◆ SCIPprofileDeleteCore()

SCIP_EXPORT SCIP_RETCODE SCIPprofileDeleteCore ( SCIP_PROFILE profile,
int  left,
int  right,
int  demand 
)

subtracts the height from the resource profile during core time

subtracts the demand from the resource profile during core time

Parameters
profileresource profile to use
leftleft side of the core
rightright side of the core
demanddemand of the core

Definition at line 6952 of file misc.c.

References profileUpdate(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPprofileFindLeft().

Referenced by propagateCons(), propagateTimetable(), and SCIPrealHashCode().

◆ SCIPprofileGetEarliestFeasibleStart()

SCIP_EXPORT int SCIPprofileGetEarliestFeasibleStart ( SCIP_PROFILE profile,
int  est,
int  lst,
int  duration,
int  demand,
SCIP_Bool infeasible 
)

return the earliest possible starting point within the time interval [lb,ub] for a given core (given by its height and duration)

return the earliest possible starting point within the time interval [lb,ub] for a given core (given by its demand and duration)

Parameters
profileresource profile to use
estearliest starting time of the given core
lstlatest starting time of the given core
durationduration of the core
demanddemand of the core
infeasiblepointer store if the corer cannot be inserted

Definition at line 7042 of file misc.c.

References FALSE, SCIP_Profile::loads, SCIP_Profile::ntimepoints, NULL, profileFindFeasibleStart(), SCIP_Bool, SCIPdebugMessage, and SCIPprofileFindLeft().

Referenced by profilesFindEarliestFeasibleStart(), and SCIPrealHashCode().

◆ SCIPprofileGetLatestFeasibleStart()

SCIP_EXPORT int SCIPprofileGetLatestFeasibleStart ( SCIP_PROFILE profile,
int  est,
int  lst,
int  duration,
int  demand,
SCIP_Bool infeasible 
)

return the latest possible starting point within the time interval [lb,ub] for a given core (given by its height and duration)

return the latest possible starting point within the time interval [lb,ub] for a given core (given by its demand and duration)

Parameters
profileresource profile to use
estearliest possible start point
lstlatest possible start point
durationduration of the core
demanddemand of the core
infeasiblepointer store if the core cannot be inserted

Definition at line 7191 of file misc.c.

References FALSE, SCIP_Profile::loads, SCIP_Profile::ntimepoints, NULL, profileFindDownFeasibleStart(), SCIP_Bool, SCIPdebugMessage, and SCIPprofileFindLeft().

Referenced by profilesFindLatestFeasibleStart(), and SCIPrealHashCode().