FRAMES NO FRAMES

Class IloContinuousReservoir

Definition file: ilsched/ilocontreservoir.h
Include file: <ilsched/iloscheduler.h>

An instance of the class IloContinuousReservoir represents a resource which activities can either fill or empty. The process is continuous and linear between the start and the end of the activity. If the duration of the activity is null, the filling (or emptying) process is instantaneous (so not continuous). The continuous reservoir cannot be emptied if it is already empty and, if a maximal capacity is defined, then this maximal capacity, or level, will never be exceeded.

When the model of your problem represents an ongoing process, you may be faced with the fact that a reservoir level already exists. You can simply pass an initial level like that to the constructor of IloContinuousReservoir or use the IloContinuousReservoir::setInitialLevel member function.

The maximum and minimum levels of a continuous reservoir can vary over time. You can define them by using member functions of IloContinuousReservoir.

Parameter classes

Minimal and maximal capacity: (class IloNumToNumSegmentFunction)

These parameters describe the minimal and maximal levels over time. They are directly modified by the member functions IloContinuousReservoir::setLevelMin and IloContinuousReservoir::setLevelMax. The class IloNumToNumSegmentFunction is documented in the IBM ILOG Concert Technology Reference Manual.

Refer to Scheduler Overview for more information on how to share parameters among resources, and how the direct modification of parameters through the resource API may affect them.

See Also:

Constructor Summary
public IloContinuousReservoir()
public IloContinuousReservoir(IloContinuousReservoirI * impl)
public IloContinuousReservoir(const IloEnv env, IloNum capacity=IloMaxCapacityReservoir, IloNum initialLevel=0, const char * name=0)
Method Summary
public IloContinuousReservoirI *getImpl() const
public IloNumgetInitialLevel() const
public IloNumgetLevelMax(IloNum time) const
public IloNumgetLevelMaxMax(IloNum timeMin, IloNum timeMax) const
public IloNumgetLevelMaxMin(IloNum timeMin, IloNum timeMax) const
public IloNumgetLevelMin(IloNum time) const
public IloNumgetLevelMinMax(IloNum timeMin, IloNum timeMax) const
public IloNumgetLevelMinMin(IloNum timeMin, IloNum timeMax) const
public voidsetInitialLevel(IloNum level) const
public voidsetLevelMax(IloNum timeMin, IloNum timeMax, IloNum level) const
public voidsetLevelMaxParam(const IloNumToNumSegmentFunction tfp) const
public voidsetLevelMin(IloNum timeMin, IloNum timeMax, IloNum level) const
public voidsetLevelMinParam(const IloNumToNumSegmentFunction tfp) const
Inherited Methods from IloCapResource
addMaxTextureIgnoreInterval, addMaxTextureIgnoreInterval, addMaxTextureIgnoreIntervalOnDuration, addMaxTexturePeriodicIgnoreInterval, addMinTextureIgnoreInterval, addMinTextureIgnoreInterval, addMinTextureIgnoreIntervalOnDuration, addMinTexturePeriodicIgnoreInterval, emptyMaxTextureIgnoreIntervals, emptyMinTextureIgnoreIntervals, getCapacity, getImpl, getInitialOccupation, getInitialOccupationMax, getInitialOccupationMin, hasInitialOccupation, hasMaxTextureMeasurement, hasMinTextureMeasurement, removeMaxTextureIgnoreInterval, removeMaxTextureIgnoreInterval, removeMaxTextureIgnoreIntervalOnDuration, removeMaxTexturePeriodicIgnoreInterval, removeMinTextureIgnoreInterval, removeMinTextureIgnoreInterval, removeMinTextureIgnoreIntervalOnDuration, removeMinTexturePeriodicIgnoreInterval, setCapacity, setInitialOccupation, setInitialOccupation, setInitialOccupationParam, setInitialOccupationParam, setMaxTextureHeuristicBeta, setMaxTextureParam, setMaxTextureRandomGenerator, setMinTextureHeuristicBeta, setMinTextureParam, setMinTextureRandomGenerator, unsetMaxTextureRandomGenerator, unsetMinTextureRandomGenerator
Inherited Methods from IloResource
addCapacityEnforcementInterval, addTransitionTimeEnforcementInterval, areCalendarConstraintsIgnored, areCapacityConstraintsIgnored, arePrecedenceConstraintsIgnored, areSequenceConstraintsIgnored, areTransitionTimeConstraintsIgnored, getCalendar, getCalendarEnforcement, getCapacityEnforcement, getDurationEnforcement, getImpl, getPrecedenceEnforcement, getSequenceEnforcement, getTransitionTimeEnforcement, hasCalendar, ignoreCalendarConstraints, ignoreCapacityConstraints, ignorePrecedenceConstraints, ignoreSequenceConstraints, ignoreTransitionTimeConstraints, isCapacityResource, isContinuousReservoir, isDiscreteEnergy, isDiscreteResource, isKeptOpen, isReservoir, isStateResource, isUnaryResource, keepOpen, removeCapacityEnforcementInterval, removeTransitionTimeEnforcementInterval, setCalendar, setCalendarEnforcement, setCapacityEnforcement, setCapacityEnforcementIntervalsParam, setDurationEnforcement, setPrecedenceEnforcement, setResourceParam, setSequenceEnforcement, setTransitionTimeEnforcement, setTransitionTimeEnforcementIntervalsParam
Constructor Detail

IloContinuousReservoir

public IloContinuousReservoir()
This constructor creates an instance that is empty, that is, one whose handle pointer is null. You must assign it a value before you access it. Any attempt to access it before assignment leads to undefined behaviour.

IloContinuousReservoir

public IloContinuousReservoir(IloContinuousReservoirI * impl)
This constructor creates an instance of the handle class from the pointer to an instance of the implementation class.

IloContinuousReservoir

public IloContinuousReservoir(const IloEnv env, IloNum capacity=IloMaxCapacityReservoir, IloNum initialLevel=0, const char * name=0)

This constructor creates a new instance of IloContinuousReservoir and adds it to the set of resources managed in the given environment. The capacity argument expresses the capacity of the new reservoir. The capacity may be consumed by certain activities and produced by others. The argument initialLevel defines an initial amount in the reservoir at the time origin of the schedule environment. By default, the continuous reservoir is assumed to be empty at the time origin; that is, the initial level is 0 (zero). If the argument name is defined, it is assigned as the name of the newly created continuous reservoir.


Method Detail

getImpl

public IloContinuousReservoirI * getImpl() const
This member function returns a pointer to the implementation object of the invoking handle.

getInitialLevel

public IloNum getInitialLevel() const

This member function returns the initial level of the continuous reservoir; that is, the initial level that was passed to the continuous reservoir constructor.


getLevelMax

public IloNum getLevelMax(IloNum time) const

This member function returns the maximal level of the invoking continuous reservoir at the given time.


getLevelMaxMax

public IloNum getLevelMaxMax(IloNum timeMin, IloNum timeMax) const

This member function returns the maximal value of the level of the invoking continuous reservoir over the interval [timeMin, timeMax) (that is, the maximal value over the interval [timeMin, timeMax) of the maximal reservoir level).


getLevelMaxMin

public IloNum getLevelMaxMin(IloNum timeMin, IloNum timeMax) const

This member function returns the maximal value of the minimal level of the invoking continuous reservoir over the interval [timeMin timeMax).


getLevelMin

public IloNum getLevelMin(IloNum time) const

This member function returns the minimal level of the invoking continuous reservoir at the given time.


getLevelMinMax

public IloNum getLevelMinMax(IloNum timeMin, IloNum timeMax) const

This member function returns the minimal value over the interval [timeMin, timeMax) of the maximal level of the invoking continuous reservoir.


getLevelMinMin

public IloNum getLevelMinMin(IloNum timeMin, IloNum timeMax) const

This member function returns the minimal level of the invoking continuous reservoir throughout the interval [timeMin, timeMax) (that is, the minimal value over the interval [timeMin, timeMax) of the minimal reservoir level).


setInitialLevel

public void setInitialLevel(IloNum level) const

This member function sets the initial level of the invoking continuous reservoir.


setLevelMax

public void setLevelMax(IloNum timeMin, IloNum timeMax, IloNum level) const

This member function states that the level of the continuous reservoir can be at most level throughout the time interval [timeMin, timeMax). An instance of IloException is thrown if the timetable of the invoking continuous reservoir does not cover the complete interval indicated by [timeMin, timeMax). The continuous reservoir must be closed in order to propagate constraints.


setLevelMaxParam

public void setLevelMaxParam(const IloNumToNumSegmentFunction tfp) const

This member function sets the maximal level of the continuous reservoir over time to be the function defined in tfp.


setLevelMin

public void setLevelMin(IloNum timeMin, IloNum timeMax, IloNum level) const

This member function states that the level of the continuous reservoir must be at least level at each integer time point of the interval [timeMin, timeMax). An instance of IloException is thrown if the timetable of the invoking continuous reservoir does not cover the complete interval indicated by [timeMin, timeMax). The continuous reservoir must be closed in order to propagate constraints.


setLevelMinParam

public void setLevelMinParam(const IloNumToNumSegmentFunction tfp) const

This member function sets the minimal level of the continuous reservoir over time to be the function defined in tfp.