| Forum | GitHub | Maps | Blog

Crew Scheduling and Linking


Hi Folks,

I am checking out the jsprit library for a problem I am trying to solve for my client. I want to attempt to explain/define the problem and confirm my understanding of the jsprit library with respect to it.

Problem Statement: Each train operated by the company needs a driver. More specific, every train activity included
in the days list of activities needs to be performed by an employee and therefore we call these
activities crew requirements. Most often such an activity will be driving passengers from location
A to location B, but it can also consist of parking the train in a shunting yard or delivering the
train for maintenance. A sequence of these crew requirements in a single day is what we call a
shift. Such a shift includes break moments and pass rides to the locations required to
execute the crew requirements. The objective of the train crew scheduling problem is to find a
selection of shifts of minimum cost that covers all crew requirements and fulfills the operational

  1. Labor Rules: Minimum and maximum shift length, Starting and ending at the same location, Planning breaks(Periodic rest) during the shift, Minimum and maximum duration between breaks, mandatory break(HQ rest).
  2. List of Round Trips: A list of Round Trips is given with relevant information.

To Find:

  1. Crew Schedule(linking the round trips) for daily trains such that all labor rules are followed.
  2. Crew Schedule(linking the round trips) for Weekly trains such that all labor rules are followed.
  3. Least no of Crew required?
  4. What if I add another Crew Member?

As I understood from Traveling salesman problem can be modelled by defining a vehicle routing problem with either a vehicle that has a sufficiently high capacity or services that have a capacity-demand of 0.

Can this problem be solved using jsprit sufficiently?