It’s the age-old question: Which is better, man or machine? When it comes to scheduling, the answer is both!
A few years ago, a research group looked at problems that could best be solved by combining tasks between people and machines. It turns out that people are very good at scheduling small problems because they can keep track of soft constraints like:
But when the problem gets larger and several activities share resources, people quickly get overwhelmed by the complexity and–not surprisingly–the computers came out on top.
Computers are able to handle large amounts of data; evaluate constraints and enumerate possibilities; calculate metrics that “score” the possibilities; find alternatives that are too intricate or complicated for people to recognize quickly; and they can try multiple solutions in the time it takes a person to generate just one feasible possibility.
On the other hand, computer-based scheduling applications with mathematical approaches such as linear programming, and enumerative approaches (like integer programming, branch and bound, tabu search, or dynamic programming) have met limited success in real-life scenarios as well. And programs that try to imitate natural processes (like genetic-programming, simulated annealing and neural networks) haven’t produced realistically useful applications either.
A good scheduling application takes advantage of the strengths of man and machine: the human analyst who understands the environment and the computer that can take in large amounts of data and spell out the possible solutions.
Find a scheduling solution that doesn’t bury decision making deep inside an algorithm where it is beyond the human scheduler’s control. I might have an idea where you can find one.