Overview | Group | Tree | Graph | Index | Concepts |
IloCapResource
is the root class for capacity
resources, that is, resources that are defined to have a limited integer
capacity over time. In Scheduler, there are five classes of capacity
resources:
Theoretical and Maximal Capacity
The theoretical capacity of a capacity resource is a bound (that is, a limit) on the amount of capacity that can be available at any point in time. The maximal capacity is the capacity that can be used in practice at a particular point in time or over a particular interval of time. The maximal capacity typically varies over time (a resource maximal capacity profile), while the theoretical capacity is an intrinsic property of the resource. The maximal capacity can never exceed the theoretical capacity. The theoretical capacity can be infinite.
The theoretical capacity can be set by the member function
IloCapResource::setCapacity
. The maximal level is set by the
member functions setCapacityMax
, setEnergyMax
,
setLevelMax
of the classes
IloDiscreteResource
,
IloDiscreteEnergy
,
IloReservoir
or
IloContinuousReservoir
.
Resources as Data Members
An instance of the class IloCapResource
may be a data member
of another “external” object. In such a case, it may be useful
to find the external object from the instance of
IloCapResource
. The inherited member functions
IloExtractable::getObject
and IloExtractable::setObject
are provided to manage such an inverse link.
Parameter Classes
Initial occupation: (class IloNumToNumStepFunction
or IloNumToNumSegmentFunction
This parameter describes the initial occupation of the capacity resource
over time (see the following section, Initial
Occupation). The parameter class IloNumToNumStepFunction
is the capacity resource of an
instance of
IloDiscreteEnergy
,
IloDiscreteResource
, or
IloReservoir
.
IloNumToNumSegmentFunction
is the capacity resource of an
instance of IloContinuousReservoir
. It is
directly modified by the member function
IloCapResource::setInitialOccupation
.
IloNumToNumStepFunction
and IloNumToNumSegmentFunction
are 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.
Initial Occupation
A resource may already be occupied by some activities before solving a scheduling problem. This initial occupation can be set up without having to declare the corresponding activities.
That facility is intended to help in solving a problem by iteratively adding a new set of activities to schedule or in improving a solution by rescheduling a subset of the activities.
The initial occupation parameter is defined with an instance of the
IloNumToNumSegmentFunction
class if the
capacity resource is a continuous reservoir, and with an instance of the
IloNumToNumStepFunction
class otherwise.
IloNumToNumStepFunction
and IloNumToNumSegmentFunction
are documented in the
IBM ILOG Concert Technology Reference Manual.
For instances of IloDiscreteResource
and
IloDiscreteEnergy
, the initial level is zero
outside the definition domain of the function.
For instances of IloReservoir
or
IloContinuousReservoir
, if the definition
domain of the function intersects the capacity enforcement intervals defined
on the invoking reservoir (see IloResource::setCapacityEnforcementIntervalsParam
), the
initial level is given by the function on the defined enforcement intervals,
and by zero elsewhere. That is, the initial level of the reservoir is
ignored. If the definition domain of the function does not intersect the
temporal interval of the time table, the initial level of the reservoir is
used as usual.
See Also:
IloAltResSet, IloEnforcementLevel, IloResource, IloResourceConstraint
Constructor Summary | |
---|---|
public | IloCapResource() |
public | IloCapResource(IloCapResourceI * impl) |
Method Summary | |
---|---|
public void | addMaxTextureIgnoreInterval(const IloIntervalList list) |
public void | addMaxTextureIgnoreInterval(IloNum start, IloNum end) |
public void | addMaxTextureIgnoreIntervalOnDuration(IloNum start, IloNum duration) |
public void | addMaxTexturePeriodicIgnoreInterval(IloNum start, IloNum duration, IloNum period, IloNum end) |
public void | addMinTextureIgnoreInterval(const IloIntervalList list) |
public void | addMinTextureIgnoreInterval(IloNum start, IloNum end) |
public void | addMinTextureIgnoreIntervalOnDuration(IloNum start, IloNum duration) |
public void | addMinTexturePeriodicIgnoreInterval(IloNum start, IloNum duration, IloNum period, IloNum end) |
public void | emptyMaxTextureIgnoreIntervals() |
public void | emptyMinTextureIgnoreIntervals() |
public IloNum | getCapacity() const |
public IloCapResourceI * | getImpl() const |
public IloNum | getInitialOccupation(IloNum time) const |
public IloNum | getInitialOccupationMax(IloNum timeMin, IloNum timeMax) const |
public IloNum | getInitialOccupationMin(IloNum timeMin, IloNum timeMax) const |
public IloBool | hasInitialOccupation() const |
public IloBool | hasMaxTextureMeasurement() const |
public IloBool | hasMinTextureMeasurement() const |
public void | removeMaxTextureIgnoreInterval(const IloIntervalList list) |
public void | removeMaxTextureIgnoreInterval(IloNum start, IloNum end) |
public void | removeMaxTextureIgnoreIntervalOnDuration(IloNum start, IloNum duration) |
public void | removeMaxTexturePeriodicIgnoreInterval(IloNum start, IloNum duration, IloNum period, IloNum end) |
public void | removeMinTextureIgnoreInterval(const IloIntervalList list) |
public void | removeMinTextureIgnoreInterval(IloNum start, IloNum end) |
public void | removeMinTextureIgnoreIntervalOnDuration(IloNum start, IloNum duration) |
public void | removeMinTexturePeriodicIgnoreInterval(IloNum start, IloNum duration, IloNum period, IloNum end) |
public void | setCapacity(IloNum capacity) const |
public void | setInitialOccupation(IloNum timeMin, IloNum occ1, IloNum timeMax, IloNum occ2) const |
public void | setInitialOccupation(IloNum timeMin, IloNum timeMax, IloNum occ) const |
public void | setInitialOccupationParam(const IloNumToNumSegmentFunction tfp) const |
public void | setInitialOccupationParam(const IloNumToNumStepFunction tfp) const |
public void | setMaxTextureHeuristicBeta(IloNum b) |
public void | setMaxTextureParam(const IloTextureParam param) const |
public void | setMaxTextureRandomGenerator(IloRandom r) |
public void | setMinTextureHeuristicBeta(IloNum b) |
public void | setMinTextureParam(const IloTextureParam param) const |
public void | setMinTextureRandomGenerator(IloRandom r) |
public void | unsetMaxTextureRandomGenerator() |
public void | unsetMinTextureRandomGenerator() |
Constructor Detail |
---|
Method Detail |
---|
This member function adds an interval list to the list of intervals that are ignored by the texture measurement on the maximum capacity constraint of the invoking resource. The new interval is merged with existing intervals that it overlaps, if any.
This member function adds an interval to the list of intervals that are
ignored by the texture measurement on the maximum capacity constraint of the
invoking resource. The ignored interval is [start, end)
. The
new interval is merged with existing intervals that it overlaps, if any.
This member function adds an interval to the list of intervals that are
ignored by the texture measurement on the maximum capacity constraint of the
resource. The ignored interval is [start,
start+duration)
. The new interval is merged with existing
intervals that it overlaps, if any.
This member function adds a set of intervals to the list of intervals
that are ignored by the texture measurement on the maximum capacity
constraint of the invoking resource. For every i >= 0
such
that start + i * period < end
, an interval of[start +
i * period, start + duration + i * period)
is added. Adding a new
interval that overlaps with an already existing interval results in the
merging of the intervals.
This member function adds an interval list to the list of intervals that are ignored by the texture measurement on the minimum capacity constraint of the invoking resource. The new interval is merged with existing intervals that it overlaps, if any.
This member function adds an interval to the list of intervals that are
ignored by the texture measurement on the minimum capacity constraint of the
invoking resource. The ignored interval is [start, end)
. The
new interval is merged with existing intervals that it overlaps, if any.
This member function adds an interval to the list of intervals that are
ignored by the texture measurement on the minimum capacity constraint of the
resource. The ignored interval is [start,
start+duration)
. The new interval is merged with existing
intervals that it overlaps, if any.
This member function adds a set of intervals to the list of intervals
that are ignored by the texture measurement on the minimum capacity
constraint of the invoking resource. For every i >= 0
such
that start + i * period < end
, an interval of[start +
i * period, start + duration + i * period)
is added. Adding a new
interval that overlaps with an already existing interval results in the
merging of the intervals.
This member function removes all the intervals from the ignored intervals of the texture measurement on the maximum capacity constraint of the invoking resource.
This member function removes all the intervals from the ignored intervals of the texture measurement on the minimum capacity constraint
This member function returns the theoretical capacity of the invoking resource.
Returns the initial occupation at time
.
Initial Occupation
A resource may already be occupied by some activities before solving a scheduling problem. This initial occupation can be set up without having to declare the corresponding activities.
That facility is intended to help in solving a problem by iteratively adding a new set of activities to schedule or in improving a solution by rescheduling a subset of the activities.
The initial occupation parameter is defined with an instance of the
IloNumToNumSegmentFunction
class if the
capacity resource is a continuous reservoir, and with an instance of the
IloNumToNumStepFunction
class otherwise.
IloNumToNumStepFunction
and IloNumToNumSegmentFunction
are documented in the Concert Technology Reference Manual.
For instances of IloDiscreteResource
and
IloDiscreteEnergy
, the initial level is zero
outside the definition domain of the function.
For instances of IloReservoir
or
IloContinuousReservoir
, if the definition
domain of the function intersects the capacity enforcement intervals defined
on the invoking reservoir (see IloResource::setCapacityEnforcementIntervalsParam
), the
initial level is given by the function on the defined enforcement intervals,
and by zero elsewhere. That is, the initial level of the reservoir is
ignored. If the definition domain of the function does not intersect the
temporal interval of the time table, the initial level of the reservoir is
used as usual.
Returns the maximum level of the initial occupation function on the
interval [timeMin, timeMax)
.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
Returns the minimum level of the initial occupation function on the
interval [timeMin, timeMax)
.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
This member function returns IloTrue
if an initial
occupation has been set up on the invoking resource. Otherwise, it returns
IloFalse
.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
This member function returns IloTrue
if a texture
measurement will be created at extraction time on the maximum capacity
constraint of the invoking resource. Otherwise, IloFalse
is
returned.
This member function returns IloTrue
if a texture
measurement will be created at extraction time on the minimum capacity
constraint of the invoking resource. Otherwise, IloFalse
is
returned.
This member function removes all intervals ignored by the texture measurement on the invoking resource during the intervals in list.
This member function removes all intervals ignored by the texture
measurement on the maximum capacity constraint of the invoking resource
between start
and end
. If start
is
inside an existing interval [start1, end1)
, that is,
start1 < start < end1
, this results in the ignored
interval [start1, start)
. If end
is inside an
interval [start2, end2)
this results in an ignored interval
[end, end2)
.
This member function removes all ignored intervals on the texture
measurement on the maximum capacity constraint of the invoking resource
between start
and start
+
duration
.
This member function removes ignored intervals from the texture
measurement on the maximum capacity constraint of the invoking resource.
More precisely, for every i >= 0
such that start + i *
period < end
, this function removes all intervals
betweenstart + i * period
and start + duration + i
*period
.
This member function removes all intervals ignored by the texture measurement on the minimum capacity constraint of the invoking resource during the intervals in list.
This member function removes all intervals ignored by the texture
measurement on the minimum capacity constraint of the invoking resource
between start
and end
. If start
is
inside an existing interval [start1, end1)
, that is,
start1 < start < end1
, this results in the ignored
interval [start1, start)
. If end
is inside an
interval [start2, end2)
this results in an ignored interval
[end, end2)
.
This member function removes all ignored intervals on the texture
measurement on the minimum capacity constraint of the invoking resource
between start
and start
+
duration
.
This member function removes ignored intervals from the texture
measurement on the minimum capacity constraint of the invoking resource.
More precisely, for every i >= 0
such that start + i *
period < end
, this function removes all intervals
betweenstart + i * period
and start + duration + i
*period
.
This member function sets capacity
as the new theoretical
capacity of the invoking resource.
Sets the initial occupation on the interval [timeMin,
timeMax)
to be equal to occ1
at timeMin
, to
be equal to occ2
at timeMax
and to be linear
between these two time points. This function should be called only if the
invoking capacity resource is a continuous reservoir.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
Sets the initial occupation on the interval [timeMin,
timeMax)
to be equal to occ
.
See IloCapResource::getInitialOccupation
) for
more information about initial occupation.
This member function sets the piecewise linear function tfp
as the initial level of the invoking resource. An exception is thrown if the
invoking resource is not a continuous reservoir.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
This member function sets the argument tfp
as the initial
level of the invoking resource.
See IloCapResource::getInitialOccupation
for
more information about initial occupation.
This member function sets the beta value to be used with the random
number generator for the texture measurement on the maximum constraint of
the invoking resource. If no random number generator is used, this function
does nothing. For details on the use of the beta argument, see
IlcResourceTexture::setRandomGenerator
.
This member function sets the texture parameter
on maximum capacity constraints to param
. Modeling objects that are created will
point to this instance, which can thus be shared between several
objects.
This member function sets the random number generator that will be used in choosing the critical time point for the texture measurement on the maximum constraint of the invoking resource. By default, no random number generator is used.
This member function sets the beta value to be used with the random
number generator for the texture measurement on the minimum constraint of
the invoking resource. If no random number generator is used, this function
does nothing. For details on the use of the beta argument, see
IlcResourceTexture::setRandomGenerator
.
This member function sets the texture parameter
on minimum capacity constraints to param
. Modeling objects that are created will
point to this instance, which can thus be shared between several
objects.
This member function sets the random number generator that will be used in choosing the critical time point for the texture measurement on the minimum constraint of the invoking resource. By default, no random number generator is used.
This member function removes the random number generator from the maximum capacity constraint, meaning that no random numbers will be used in choosing the critical time point in the texture measurement.
This member function removes the random number generator from the minimum capacity constraint, meaning that no random numbers will be used in choosing the critical time point in the texture measurement.