关于“资源使用的替代方案”的问题:
解决这类问题最常用的模式是 对象池模式 最广为人知的例子可能是 线程池
我建议你实施一个 ResourcePool 有一个班级 int GetResource(ResourceType type, int durationInSeconds) 方法。 返回值指示给定的下一个资源的时间 ResourceType 将有空
ResourcePool
int GetResource(ResourceType type, int durationInSeconds)
ResourceType
您可能正在处理RCPSP(资源受限项目调度问题)。解决方案技术的范围从整数编程和约束编程到各种启发式。该技术取决于详细信息,例如计划范围,任务/作业如何使用/共享资源,您需要多快的解决方案计划等。
看到:
https://developers.google.com/optimization/scheduling/job_shop
http://www.laas.fr/files/ROC/2014-Presentations/MILP-RCPSP-PMS2014.pdf