Purpose
The same activity can use different machines. The goal is to assign one machine to the activity such as to use the capacity in an optimal way, e.g. avoid bottlenecks.
PODL syntax and semantics
In the following example the activity A may use one of the machines: machine1, machine2 or machine3.
(activity :name A :duration 1 :produces ( resource-set :set-name A :role-name inventory :amount 1 ) :uses ( object :object-name machine1 :object-name machine2 :object-name machine3 :role-name machine :amount 1 ) )
Implementation
The fact that the Activity A uses a machine is expressed by means of a variable attached to activity A. This variable has the type ResourceRequestVariable. The domain of this variable can be any discreet set of symbols, each symbol representing a machine (resource).For instance, in the context of the previous example from the declaration:
:uses ( object :object-name machine1 :object-name machine2 :object-name machine3 :role-name machine :amount 1 )
a variable of type ResourceRequestVariable is generated. The domain of this variable is {machine1, machine2, machine3}.