Flow Shop Scheduling

Flow Shop Scheduling

This model implements different algorithms to solve a scheduling issue in a Flow-Shop. This algorithms are:

  1. Random allocation: No real logic, just process jobs based in a random sequence.
  2. Sorting ascending cycle time of jobs: Jobs are processed following an ascending order based on its expected total cycle time.
  3. Sorting descending cycle time of jobs: Jobs are processed following a descending order based on its expected total cycle time.
  4. NEH: Named after its authors Nawaz, Enscore and Ham is one of the most efficient algorithms for flow-shop scheduling. It is based on the iterative allocation of jobs by choosing the lowest makespan at each step (see link).
  5. Multi-Stage sequencing (Johnson Modified): Developed by Modrák and Pandian (see link) which is an adaptation of the Johnson algorithm (1954) which is a very effective allocation method for 2 machines and n jobs. The algorithm group the m machines in two groups and divide the jobs to form similar processing times. Then it applies the traditional Johnson method to find the best allocation.

The model also allows to add variability. The intention with this, is to use this variability factor to affect the real processing time which will require the scheduling to change. In a further stage, I'd like to use a more elaborate method to reverse the allocation in order to find the best scheduling even when variability or any other unexpected event arrives (e.g. machine failure, change on the jobs priority, etc.).

The following video is a demonstration of the model in use:

You can download the model source here.