Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

ressource profile data structure

Functions

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

Function Documentation

◆ SCIPprofileCreate()

SCIP_RETCODE SCIPprofileCreate ( SCIP_PROFILE **  profile,
int  capacity 
)

creates resource profile

Parameters
profilepointer to store the resource profile
capacityresource capacity

Definition at line 6667 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()

void SCIPprofileFree ( SCIP_PROFILE **  profile)

◆ SCIPprofilePrint()

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 6697 of file misc.c.

References SCIP_Profile::capacity, and SCIPmessageFPrintInfo().

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

◆ SCIPprofileGetCapacity()

int SCIPprofileGetCapacity ( SCIP_PROFILE profile)

returns the capacity of the resource profile

Parameters
profileresource profile to use

Definition at line 6719 of file misc.c.

References SCIP_Profile::capacity, and NULL.

Referenced by SCIPrealHashCode().

◆ SCIPprofileGetNTimepoints()

int SCIPprofileGetNTimepoints ( SCIP_PROFILE profile)

returns the number time points of the resource profile

Parameters
profileresource profile to use

Definition at line 6729 of file misc.c.

References SCIP_Profile::ntimepoints, and NULL.

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

◆ SCIPprofileGetTimepoints()

int* SCIPprofileGetTimepoints ( SCIP_PROFILE profile)

returns the time points of the resource profile

Parameters
profileresource profile to use

Definition at line 6739 of file misc.c.

References NULL, and SCIP_Profile::timepoints.

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

◆ SCIPprofileGetLoads()

int* SCIPprofileGetLoads ( SCIP_PROFILE profile)

returns the loads of the resource profile

Parameters
profileresource profile to use

Definition at line 6749 of file misc.c.

References SCIP_Profile::loads, and NULL.

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

◆ SCIPprofileGetTime()

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 6759 of file misc.c.

References NULL, and SCIP_Profile::timepoints.

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

◆ SCIPprofileGetLoad()

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 6771 of file misc.c.

References SCIP_Profile::loads, and NULL.

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

◆ SCIPprofileFindLeft()

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 6785 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_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 6932 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_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 6962 of file misc.c.

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

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

◆ SCIPprofileGetEarliestFeasibleStart()

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 7052 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()

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 7201 of file misc.c.

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

Referenced by profilesFindLatestFeasibleStart(), and SCIPrealHashCode().