Overview | Group | Tree | Graph | Index | Concepts |
Description |
Transition Cost Defined with a Transition Parameter |
Transition Cost Defined with a Transition Cost Object |
A unary resource can only process one activity at a time, so all activities requiring the same unary resource must be chronologically ordered to find a solution. As a result, in any solution to a problem that includes a unary resource, each unary resource defines a directed path through all the activities requiring it.
Between each pair of consecutive activities, some cost may be incurred to switch the resource from processing the first activity to processing the second. These costs may be related to modifications to the resource that require manpower, material, and energy, such as adjusting or purging a machine.
In Scheduler, transition cost is defined as the cost between an activity and the activity that will execute next to it on a unary resource. In addition, Scheduler lets you define a setup cost for the activity that starts the usage of the resource, and a teardown cost for the activity that ends the usage of the resource.
Several transition costs (instances of IloTransitionCost
) can be created on a unary resource.
An instance of IloTransitionCost
associates a unary resource with either a transition parameter (instance of IloTransitionParam
)
or a user defined transition cost object (subclass of IloTransitionCostObject
).
Once a transition cost has been defined on a unary resource, the sum of the costs, the setup and teardown costs on the resource, and the cost of the next and previous transitions of a given activity can be accessed as instances of
IloNumVar
variables (see
Cost Types Figure).
A transition parameter (instance of IloTransitionParam
) is a square table describing
the transition between activities, with two arrays describing the activity setup and teardown values. Scheduler associates an integer transition type with each activity. The accessors are the functions IloActivity::getTransitionType
and IloActivity::setTransitionType
. They allow you to define instances of IloTransitionCost
from IloTransitionParam
,
where the arrays are indexed by the transition types of activities.
A transition cost object is a subclass of IloTransitionCostObject
defined with the macro ILOTRANSITIONCOSTOBJECT0
.
This macro makes it easy to define your own transition cost together with its extraction function in case a simple square table as the one provided by IloTransitionParam
is not sufficient.
This figure shows an example of setup, transition, and teardown costs.
See Also
IloTransitionCost, IloTransitionParam, IloTransitionCostObject, ILOTRANSITIONCOSTOBJECT0, IloUnaryResource.