I lack the math foundation to solve this problem so please help! An engineer has 3 robot workers. He must pick 2 out of 3 robots and set up their parameters for the task below. The task: The Warehouse is the starting point, one robot will go to Farm A and one robot will go to Farm B to collect potato and return to the Warehouse. Each robot has different parameters, Work Speed and Movement Speed the Engineer need to set the numbers himself and Work Cycle (robot's battery) is fixed. Robot 1: 75 to 80 Work Speed; 2.5 to 3 Movement Speed; 35 Work Cycles Robot 2: 85 to 100 Work Speed; 3 to 3.5 Movement Speed; 23 Work Cycles Robot 3: 115 to 120 Work Speed; 5 to 5.5 Movement Speed; 15 Work Cycles Farm A Work Load: 200 Farm B Work Load: 150 Time taken to finish collect potato is calculated as such: Work Load/robot's Work Speed = Tick(s) (Round up to the nearest whole numbers) 1 Tick = 600 seconds E.g.: 200 Work Load/ 85 Work Speed = 2.352 = 2 Ticks = 600*2 = 1200 seconds 200 Work Load/ 120 Work Speed = 1.667 = 2 Ticks = 1200 seconds Warehouse to Farm A = 346 distance Warehouse to Farm B = 1826 distance Total travel time is calculated as such: Distance*2/robot's Movement Speed (in seconds) Total amount of time taken to finish a Work Cycle = Time to collect potato + Travel time Edit There is 1 more parameter that I forgot to mention. Robot's battery. Each robot can only work for a fixed amount of time before it needs to recharge for 30 mins. 1 Work Cycle = Warehouse to Farm to Warehouse How should the Engineer pick the robot and set up the parameter to reach the maximum amount of Work Cycle per day? To expand the question further, I'm trying to come up with a general solution (like a formula/algorithm?) for this scenario and beyond. What if there are x number of farms at different distance and y number of robots with different parameters? Thank you!