I would like to develop an agent to provide resources to multiple machines simultaneously. The overall resources are limited. The agent should distribute the resources in such a way that the machines finish their task as early as possible and switch to standby mode, i.e. the agent returns with each prediction which machines get how many resources. Additionally, the total resources per time interval should be used up as much as possible. Furthermore, a machine has a consumption interval. Resources below the consumption interval are ignored and resources that exceed the consumption interval are reduced to the maximum possible absorption.
Can anyone guide me on how to design such an agent and what topics I can research further?