Nearly all practical scheduling problems can be described in terms of the job-shop scheduling problem, in which L jobs are to be processed by M machines. Each job will have a set of constraints on the order in which machines can be used; moreover the processing time on each machine is specified for each job. The job-shop scheduling problem consists in finding a sequence of jobs on each machine in order to minimise a given objective function. In the case here considered, it is the minimization of the makespan.