The machines can be identical, of different speeds, or specialized to only processing specific jobs. Each job has a single task. In the general flow shop model, there are a series of machines numbered 1,2,3 m. Each job has exactly m tasks. The first task of every job is done on machine 1, second task on machine 2 and so on.
Every job goes through all m machines in a unidirectional order.
However, the processing time each task spends on a machine varies depending on the job that the task belongs to. In cases where not every job has m tasks, the processing times of the tasks that don't exist are zero. Each task on a machine is indicated by a set of three indices, i, the job that the task belongs to, j, the number of the task itself, and k, the machine that this particular task needs to use. The flow of the tasks in a job does not have to be unidirectional. Each job may also use a machine more than once.