This is a real world problem, which due to some specific aspects of it I am having a hard time finding relevant literature for it.
I am looking for either an algorithm, or a pointer to relevant paper(s) describing a solution. I'm assuming one was already published, but I am just fumbling with my search terms.
Problem statement: I have many sites across town in which IoT hardware is deployed. Every day, a team of engineers need to service some subset of these sites. The time which an engineer would need to spend in a site to service it is a constant determined by today's schedule, and is not dependent of the engineer.
All engineers must start at the depot at the start of the day, and return to it at the end of the day, but for any given day, the number of engineers vary, and the number of hours any one engineer is rostered for might also vary.
How do I assign ordered lists of sites to different engineers in order to minimise the total time spent outside of the depo?
To put formally: if I have a graph with weighted edges, and weighted vertices, and a list of
N max weights, how do I find
N loops, all containing a specific vertex
v_0, and each uniquely corresponding to a specific max weight, and not exceeding it, such that each vertex other than
v_0 is visited exactly once, and the total weight across all loops is minimised (where the weight of the loop is defined as the total weight of all edges, and vertices which are part of it)?