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:
- Humans (costPerHour=baseCostPerHour + additionalCostPerHour)
- Equipment (costPerHour=fuelCostPerHour + maintenanceCostPerHour)
- 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:
- Resource Allocation Flat Data Model Standard Decision Tables
- Resource Allocation Flat Data Model Using Functions and Methods
- Resource Allocation Inheritance and Polymorphism Model
- Resource Allocation Functional Model
// 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