Overview | Group | Tree | Graph | Index | Concepts |
Overview |
Scheduling Object Classes |
Parameter Classes |
Model Parsing Object Classes |
Parameter Design Pattern |
The Scheduler Model is composed of three main families of classes:
These class families are described in the following sections.
Scheduling Object classes represent the core classes of the model. They allow representation of activities, temporal constraints, resources or resource requirements, and transition times and transition costs on resources. The following figure shows all the Scheduling Object classes.
IBM® ILOG® Scheduler Object Classes
Parameter classes represent characteristics or behaviors that can be attached to a scheduling object. For example, a scheduling object like a resource may have a maximal capacity that varies with time, or there may be breaks during which activities executing on that resource may be suspended. As another example, an activity may have different behaviors in response to resource capacity or breaks, or may require transition times if it follows certain other activities. Parameter classes represent these various characteristics.
Parameter classes have the following properties:
Each parameter class has a default value, which can be directly modified. The parameters and scheduling objects are related in a specified pattern. See Parameter Design Pattern for more information.
Parameter classes can be classified according to the scheduling object classes to which they are attached -- either resources or activities. A third type of parameter, Generic Parameters, may represent different types of characteristics. For example, both the maximal and minimal capacity profiles of a capacity resource are represented by a parameter class describing a numeric step function. Generic parameters do not have any inherent semantics. They get particular semantics only when they are attached to a Scheduling Object.
The following is a complete list of Parameter classes.
Resource Parameter
Resource Basic Parameter: IloResourceParam
Activity Parameters
Activity Basic Parameter: IloActivityBasicParam
Activity Constraints Parameter: IloActivityConstraintsParam
Activity Break Parameter: IloActivityBreakParam
Activity Overlap Parameter: IloActivityOverlapParam
Generic Parameters
IloNumToNumStepFunction
, IloNumToNumSegmentFunction
,
IloNumToAnySetStepFunction
and
IloIntervalList
are documented in the extensions section
of the IBM ILOG Concert Technology Reference Manual.
Time Interval List: IloIntervalList
Transition Cost: IloTransitionParam
Numeric Step Function: IloNumToNumStepFunction
Numeric Piecewise Linear Function: IloNumToNumSegmentFunction
Set Step Function: IloNumToAnySetStepFunction
Scheduler Overview Figure gives an overview of the links between Scheduling Objects and Parameters.
Parameters can also be categorized according to their function. We distinguish three categories of parameters:
IloEnforcementLevel
.
The exact semantics of each value must be defined by the scheduler. Those levels represent a
scale of effort that the scheduler will spend at enforcing the corresponding type of constraints.Following is a brief description of each parameter class.
Scheduling Object: IloResource
Category: Relaxation and Enforcement parameter
This parameter specifies if various resource characteristics must be enforced and how much effort must be spent by the scheduler to enforce them. It states, for example, if the break list, resource usage, precedence relations between activities requiring the resource, sequencing relations between activities requiring the resource, and/or transition times are to be enforced, and with how much effort.
Scheduling Object: IloActivity
Category: Description parameter
This parameter describes:
Scheduling Object: IloActivity
Category: Relaxation parameter
This parameter allows relaxing the following types of constraints related with an activity:
Scheduling Object: IloActivity
Category: Description parameter
This parameter describes the behavior of the activity with respect to breaks. In particular:
Scheduling Object: IloActivity
Category: Description parameter
This parameter describes if and how an activity may overlap a break.
IloIntervalList
Scheduling Object: Generic Parameter (used by the class IloResource
)
Category: Description parameter
This parameter represents a list of time intervals associated with a numerical type. It is used to represent:
IloIntervalList
is documented in the extensions section of
the IBM ILOG Concert Technology Reference Manual.
Scheduling Object: Generic Parameter (used by classes IloTransitionCost
and IloTransitionTime
)
Category: Description parameter
This parameter represents a numerical table. It is used to represent:
IloNumToNumStepFunction
Scheduling Object: Generic Parameter (used by class IloCapResource)
Category: Description parameter
This parameter represents the numeric step function
This parameter is used to represent the minimal [min] and maximal [max] capacity profile of a capacity resource and its initial occupation.
IloNumToNumStepFunction
is documented in the extensions section of
the IBM ILOG Concert Technology Reference Manual.
IloNumToNumSegmentFunction
Scheduling Object: Generic Parameter (used by class IloContinuousReservoir
)
Category: Description parameter
This parameter represents the numeric piecewise linear function
This parameter is used to represent the minimal [min] and maximal [max] level profile of a continuous reservoir and its initial occupation.
IloNumToNumSegmentFunction
is documented in the extensions
section of the IBM ILOG Concert Technology Reference Manual.
IloNumToAnySetStepFunction
Scheduling Object: Generic Parameter (used by class IloStateResource
)
Category: Description parameter
This parameter represents the set step function:
where
and
A
is the set of all possible values of type
IloAny
.
This parameter is used to represent the possible states of the resource for each time interval. (Identified as [max] in Scheduler Overview Figure.)
IloNumToAnySetStepFunction
is documented in the extensions
section of the IBM ILOG Concert Technology Reference Manual.
This figure shows an overview of the links between scheduling objects and parameters in the Scheduler Model.
These classes are used to parse some objects or parameters of the model. The following is the exhaustive list of Model Parsing Object classes.
These classes are all documented in the extensions section of the IBM ILOG Concert Technology Reference Manual.
IloIntervalListCursor
IloNumToNumStepFunctionCursor
IloNumToNumSegmentFunctionCursor
IloNumToAnySetStepFunctionCursor
Let
schedclass
be a Scheduling Object class (for example, IloResource
). Let
xxxParam
be a class that represents the characteristics
xxx
of the instances of the class
schedclass
. For example, let
xxxParam
be the break list of an instance of IloResource
; in that case,
xxxParam
is an IloIntervalList
.
For simplification, we suppose that
xxx
consists of one data member that can be accessed by the accessor
getxxxValue()
,
and modified with the member function
setxxxValue(Value)
.
The handle class of parameters is defined as follows:
class xxxParam : { public: xxxParam(const IloEnv&, ...); Value getxxxValue() const; void setxxxValue(Value) const; void reset(); };
The function
reset
allows resetting the parameter to its absolute default value. Instances of parameters
xxxParam
may be shared between several scheduling objects. (For example, several instances of IloResource
may share the same break list represented as an instance of IloIntervalList
).
Thus, changing or resetting the value of an instance of a parameter
will affect all the scheduling objects that share this parameter.
An instance of each class of parameter is stored in the scheduler environment (class IloSchedulerEnv
).
By default, all the Scheduling Objects built in that environment will share this parameter instance,
unless the local API of those objects is used (see below). This instance can be accessed as follows:
class IloSchedulerEnv { public: xxxParam getxxxParam() const; void setxxxParam(const xxxParam& param); };
The functions
getxxxParam
and
setxxxParam
on the scheduler environment do
not
copy the parameter. The function
setxxxParam
is used to set a new
xxxParam
as default for all the scheduling objects that will be created later on the environment.
This function will detach the previous instance of
xxxParam
from the environment but it will not detach this previous instance from the scheduling objects
it was already attached to. The function
getxxxParam
can be used only to modify the value of the default parameter with
schedEnv.getxxxParam().setxxxValue(Value)
.
The class
schedclass
of scheduling objects provides an API to modify the characteristics
xxx
that are stored in an instance of
xxxParam
.
class SCHEDCLASS { public: SCHEDCLASS(const IloEnv&, ...); void setxxxValue(Value); Value getxxxValue() const; void setxxxParam(const xxxParam& param); };
The function
setxxxParam
is used to set a new
xxxParam
for the scheduling object. This function
does not copy the parameter. When the function
setxxxValue(Value)
is called on the scheduling object
schedclass
, if the parameter
xxxParam
is shared between different objects,
a local copy is created and the function is applied to this local copy. The rationale is that the local API of
a scheduling object must not modify the parameters that are set for other scheduling objects
through shared parameters.
See Also