Is there an algorithm to schedule tasks according to the resource availability? i.e. Andrew can only work on Tasks A, B, C; Betty only Tasks D, E and Cathy only Tasks F, G, H, I. All tasks A to I have different duration and dependency relationships with each other. The objective of the algorithm is to minimize the total project duration given these constraints.
I have tried to search for resource-based scheduling and all of them are basically resource-leveling classroom examples i.e. the objective is to keep the number of resources consistent throughout the project, assuming all resources are homogeneous/equal/inter-changeable, which is definitely not the case in reality.
If there is such an algorithm, can you please point me to the correct search terms or names of existing applications that can already do this?