# Two simulated annealing-based heuristics for the job shop scheduling problem

## Abstract

In this paper, we present two simulated annealing-based algorithms for the classical, general job shop scheduling problem where the objective is to minimize the makespan. We consider sets of jobs consisting of tasks and sets of machines, which can handle at most one task at a time. To represent the problem, we employ the model of disjunctive graphs. Simulated annealing has been applied to this problem earlier, e.g., by Van Laarhoven et al., where the neighborhood function is based on reversing a single arc of a longest path of the underlying graph. In our approach, we analyze a neighborhood function which involves a non-uniform generation probability. To obtain the neighbors of a schedule, we reverse more than a single arc of longest paths and perform a control on the increase of the makespan. The selection of the arcs depends on the number of longest paths to which a particular arc belongs. Furthermore, we have designed two cooling schedules which employ a detailed analysis of the objective function. Depending on the specified neighborhood relation, the expected run-times can be either O(n2+ε) or O(n3+ε/m) for the first cooling schedule and O(n5/2+ε·m1/2) or O(n7/2+ε/m1/2) for the second cooling schedule, where n is the number of tasks, m the number of machines and ε represents O(ln ln n/ln n). Our computational experiments on small to large benchmark problems have shown that within short series of consecutive trials relatively stable results equal or close to optimal solutions are repeatedly obtained, including the well-known benchmark problems FT10 and LA38. We could improve five upper bounds for the YN1, YN4, SWV12, SWV13, and SWV15 benchmark problems, e.g., for SWV13 the gap between the lower and the former upper bound has been shortened by about 57%. In our approach we rely only on basic information about the given problem instance.