Scippy

SCIP

Solving Constraint Integer Programs

Resource Profile

Detailed Description

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

SCIP_RETCODE SCIPprofileCreate ( SCIP_PROFILE **  profile,
int  capacity 
)

creates resource profile

Parameters
profilepointer to store the resource profile
capacityresource capacity

Definition at line 4965 of file misc.c.

References BMSallocMemory, BMSallocMemoryArray, NULL, SCIP_ALLOC, and SCIP_OKAY.

Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), and propagateCumulativeCondition().

void SCIPprofileFree ( SCIP_PROFILE **  profile)

frees given resource profile

Parameters
profilepointer to the resource profile

Definition at line 4989 of file misc.c.

References BMSfreeMemory, BMSfreeMemoryArray, and NULL.

Referenced by computeAlternativeBounds(), computeEffectiveHorizonCumulativeCondition(), and propagateCumulativeCondition().

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

References SCIP_Profile::capacity, SCIP_Profile::loads, SCIP_Profile::ntimepoints, SCIPmessageFPrintInfo(), and SCIP_Profile::timepoints.

Referenced by computeEffectiveHorizonCumulativeCondition(), and coretimesUpdateUb().

int SCIPprofileGetCapacity ( SCIP_PROFILE profile)

returns the capacity of the resource profile

Parameters
profileresource profile to use

Definition at line 5025 of file misc.c.

References SCIP_Profile::capacity, and NULL.

int SCIPprofileGetNTimepoints ( SCIP_PROFILE profile)

returns the number time points of the resource profile

Parameters
profileresource profile to use

Definition at line 5035 of file misc.c.

References SCIP_Profile::ntimepoints, and NULL.

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

int* SCIPprofileGetTimepoints ( SCIP_PROFILE profile)

returns the time points of the resource profile

Parameters
profileresource profile to use

Definition at line 5045 of file misc.c.

References NULL, and SCIP_Profile::timepoints.

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

int* SCIPprofileGetLoads ( SCIP_PROFILE profile)

returns the loads of the resource profile

Parameters
profileresource profile to use

Definition at line 5055 of file misc.c.

References SCIP_Profile::loads, and NULL.

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

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

References NULL, and SCIP_Profile::timepoints.

Referenced by computeCoreEngeryAfter(), coretimesUpdateLb(), coretimesUpdateUb(), createCoreProfile(), and propagateTimetable().

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

References SCIP_Profile::loads, and NULL.

Referenced by computeCoreEngeryAfter(), coretimesUpdateLb(), and coretimesUpdateUb().

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

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

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

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

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

Referenced by createCoreProfile(), propagateTimetable(), and SCIPcreateWorstCaseProfile().

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

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

Referenced by propagateTimetable().

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

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

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

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