Blog - scheduling

Blog - scheduling

Rotating Workforce Scheduling in MiniZinc

26 min read
Constraint programming MiniZinc models scheduling

Workforce scheduling is a classical optimization problem. Improved schedules can be better both for the workers and for the business, but are often surprisingly hard to find. One common variant of scheduling is called Rotating Workforce Scheduling (shortened as RWS), and is sometimes called cyclic scheduling. In RWS, a weekly schedule is created for a group of workers covering the projected needs. Each worker will rotate through the schedule, working all different weeks.

Solving RWS is a challenging problem, both for manual and automatic approaches. This post will describe developing a reasonably realistic variant of finding an RWS schedule using MiniZinc. Starting with the basic structure and then adding more and more typical requirements to get realistic schedules.

The Work Task Variation Problem

8 min read
research programming scheduling optimization constraint programming

The paper The Work Task Variation Problem by Mikael Z. Lagerkvist and Magnus Rattfeldt was presented at the 31st International Conference on Principles and Practice of Constraint Programming (CP 2025) in Glasgow, Scotland. This post summarizes the paper and provides some context.

The paper is available on my research page and the benchmark instances and MiniZinc model are available on GitHub.