I have been tasked with improving my company's rudimentary scheduling process and making it more data driven, efficient, and streamlined. As it stands, we currently simply sum per month, total hours needed for projects & compare this value to possible work hours * number of employees. We compare these results and determine if we need to bring on more help or not.
I would like to be a lot more precise in this process and so I began looking into optimization with resources such as the Stable Marriage Problem. Eventually, I stumbled onto Genetic Algorithms and Simulated Annealing from the Job-Shop Problem, because I believe my problem ends up being a little more complex than a multi-match marriage problem, but I could be wrong.
My basic problem is set up as an optimization task with many limiting criteria.
Workers: John, Jane, Dale, etc.
They all can have multiple roles too (John can be a Manager or a Laborer)
Projects: Project A, Project B, Project C, etc.
Projects have start and end dates.
Ideally, I have sub-start and end dates for different phases of the projects that I would like to limit with, but overall start/end date will do. These sub-dates include hours required for each role type (Manager 8 hours, Laborer 20 hours, etc.)
Hours: No more than 45 hours per employee.
My question is do I actually need to utilize GA or Simulated Annealing or is there a simpler process. Also, I haven't been able to find any pseudocode for either of these processes in R.
Thanks for any and all help and I'm happy to clarify for anyone if more details are necessary!