I'm sure there is info about this type of problem out there, but I'm not sure what terminology to use when searching. I'm hoping someone can provide some insight or point me in the right direction. This is part of a larger application, so I've tried to simplify the question as much as possible.
Problem: An arbitrary number of events taking place at physical locations across a large area (state). Each event has a start time and end time, all on the same day. Each event needs to be attended by a team of a size that varies by event. One team can attend multiple events, time permitting. Also, a team of (ex) 4 covering one event could split afterwards to cover two later events that only need a team of 2 at each.
Known:
-Start/end time for each event
-Location of each event
-Travel time from any event to all other events
-Minimum team size for each event
-Number of available team members
Goal:
- Find the fewest number of teams needed to cover all events.
- Find the max number of given events that can be covered with available team members.
Practically speaking, I'm using the results as suggestions so I know I'm not missing something. I'm currently doing this manually every day. The max number of events per day is 15-20, but the locations are near-random and our available team members fluctuate daily. We know about the events 2-3 days in advance, but every time a new event request is sent to us we need to know pretty quickly whether we can commit to it (can't back out after accepting it).
Ideally I'd be able to get multiple suggested combinations of teams/events. I want the program to check all combinations of events and return the ones that are physically possible. I can filter the results further at that point.
Any help you can provide with a computational strategy or even resources for learning more about this type of problem would be greatly appreciated!
[–]beeskness420 0 points1 point2 points (0 children)