Drools Planner for open source employee rostering
While investigating automated employee scheduling for a friend I found it hard to locate a framework to use. There is a lot of information in the academic literature about rostering algorithms and also there are quite a few commercial solutions, but it was hard to find something I could use right away.
Eventually I came across Drools Planner and I was quickly able to come up with a working prototype. Drools Planner comes with some solid search algorithms, currently tabu search and simulated annealing.
The Drools rules engine is used for calculating the "score" of a particular solution. Drools has an advantage over a hand-coded scoring algorithm; it is able to calculate a score delta based on only the parts of the solution that have changed.
There are a lot of great examples to get you started. Check out the video of nurse rostering for a quick overview.