Alternate resources (mechanisms) for activities

Ioan Popescu

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}.