Scippy

SCIP

Solving Constraint Integer Programs

List scheduling heuristic

The heuristic performs a serial SGS (schedule generation scheme), see Kolisch and Hartmann 2006. Therefore, the jobs are considered in a topological order (e.g., sorted by their earliest start) and are scheduled according to that order as early as possible respecting the precedence and resource constraints.

The serial generation scheme is extended to bidirectional SGS; see Li and Willis 1992. The first obtained schedule is the so-called forward schedule. Then, all jobs are sorted in non-increasing order of their completion times in the forward schedule. According to that ordering, a backward schedule is created by scheduling all jobs as late as possible again with respect to precedence and resource constraints. It gets clear from the way the algorithm works, that if a feasible forward schedule has been found, a feasible backward schedule can be obtained, since no job needs to be scheduled earlier as in the forward schedule. Recreating a forward schedule by sorting the jobs according to their start times in the backward schedule leads to a makespan not larger than the one in the first forward schedule.

References

  1. Rainer Kolisch and Sönke Hartmann. Experimental investigation of heuristics for resource-constrained project scheduling: An update. European Journal of Operational Research, 174(1):23–37, 2006.
  2. K.Y. Li and R.J. Willis. An iterative scheduling technique for resource-constrained project scheduling. European Journal of Operational Research, 56(3):370–379, 1992.