This project is an automatic scheduler of patrols and/or shifts, which assigns people to their daily assignments in a fair manner, while taking into consideration complex constraints.
- Uses a complex non-linear optimization algorithm (Nonlinear Programming) to achieve optimal assignments!
- Allows defining the shifts, their times, the hours at which each person is available (if at all), amount of people needed for each shift, and definition of night shifts.
- Allows defining constraints of infeasible assignments, such as minimum rest time between two shifts, restrictions two night shifts within two nights for the same person, etc.
- Assigns shifts with consideration of previous shift assignments (history), to keep fairness.
- Applies a degree of randomness, in order to avoid bias towards certain individuals.