There are n machines and m jobs. Each job contains exactly n operations. i-th operation of the job must be executed on the i-th machine. No machine can perform more than one operation simultaneously. For each operation of each job, execution time is specified.
Operations within one job must be performed in the specified order. The first operation gets executed on the first machine, then (as the first operation is finished) the second operation on the second machine, and so until the n-th operation. Jobs can be executed in any order, however. Problem definition implies that this job order is exactly the same for each machine. The problem is to determine the optimal such arrangement, i.e. the one with the shortest possible total job execution timespan.
The problem is NP-complete for n > 2, which renders it almost impossible to find an optimal solution for large n. Various heuristics are employed, including the Cuckoo Search algorithm - as we did in Posh Wolf. A major flow shop test case collection is prof. Éric Taillard's collection. We use its test cases as samples in our system.