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 demand, int *pos, SCIP_Bool *infeasible)
     
    SCIP_RETCODE SCIPprofileDeleteCore (SCIP_PROFILE *profile, int left, int right, int demand)
     
    int SCIPprofileGetEarliestFeasibleStart (SCIP_PROFILE *profile, int est, int lst, int duration, int demand, SCIP_Bool *infeasible)
     
    int SCIPprofileGetLatestFeasibleStart (SCIP_PROFILE *profile, int est, int lst, int duration, int demand, 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 6832 of file misc.c.

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

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

    ◆ SCIPprofileFree()

    void SCIPprofileFree ( SCIP_PROFILE **  profile)

    frees given resource profile

    Parameters
    profilepointer to the resource profile

    Definition at line 6846 of file misc.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, and NULL.

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

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

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

    Referenced by computeEffectiveHorizonCumulativeCondition(), and coretimesUpdateUb().

    ◆ SCIPprofileGetCapacity()

    int SCIPprofileGetCapacity ( SCIP_PROFILE profile)

    returns the capacity of the resource profile

    Parameters
    profileresource profile to use

    Definition at line 6884 of file misc.c.

    References SCIP_Profile::capacity, and NULL.

    ◆ SCIPprofileGetNTimepoints()

    int SCIPprofileGetNTimepoints ( SCIP_PROFILE profile)

    returns the number time points of the resource profile

    Parameters
    profileresource profile to use

    Definition at line 6894 of file misc.c.

    References SCIP_Profile::ntimepoints, and NULL.

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

    ◆ SCIPprofileGetTimepoints()

    int * SCIPprofileGetTimepoints ( SCIP_PROFILE profile)

    returns the time points of the resource profile

    Parameters
    profileresource profile to use

    Definition at line 6904 of file misc.c.

    References NULL, and SCIP_Profile::timepoints.

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

    ◆ SCIPprofileGetLoads()

    int * SCIPprofileGetLoads ( SCIP_PROFILE profile)

    returns the loads of the resource profile

    Parameters
    profileresource profile to use

    Definition at line 6914 of file misc.c.

    References SCIP_Profile::loads, and NULL.

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

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

    References NULL, and SCIP_Profile::timepoints.

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

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

    References SCIP_Profile::loads, and NULL.

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

    ◆ 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 6950 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().

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

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

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

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

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

    Referenced by propagateCons(), and propagateTimetable().

    ◆ 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 7217 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.

    Referenced by profilesFindEarliestFeasibleStart().

    ◆ 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 7366 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.

    Referenced by profilesFindLatestFeasibleStart().