Resource Allocation Alternative Approaches - Gnorion/BizVR GitHub Wiki

Resource Allocation Alternative Approaches

We want a decision model that can allocate tasks to resources based on matching the task requirement to the resource capability. As part of this process we’ll want to calculate the total cost of each possible assignment of resource to task. The total cost of an assignment will be the task duration * the resource cost. The problem is complicated by the fact that our resources can be:

  1. Humans (costPerHour=baseCostPerHour + additionalCostPerHour)
  2. Equipment (costPerHour=fuelCostPerHour + maintenanceCostPerHour)
  3. Robots (costPerHour=baseCostPerHour+ fuelCostPerHour + maintenanceCostPerHour)

And since these different kinds of resource have different attributes associated with them how do we model the vocabulary and write appropriate rules.

There are four approaches discussed here:

// concrete resources need to extend ResourceSet and implement the function cost // concrete tasks need to extend TaskSet and implement the function duration // also isCompatible needs to be implemented to cover all possible resources and tasks // isAvailable and isUnassigned also need to be implemented in the concrete objects