General Purpose Procedures Applied to Scheduling Contents Constructive approach 1. Dispatching Rules Local search 1. Simulated Annealing 2. Tabu-Search 3. Genetic Algorithms 1 Literature 1. Operations Scheduling with Applications in Manufacturing and Services, Michael Pinedo and Xiuli Chao, McGraw Hill, 2000, Chapter 3.1 and 3.2. or Scheduling, Theory, Algorithms, and Systems, Second Addition, Michael Pinedo, Prentice Hall, 2002, Chapter 14.1 2. Modern Heuristic Techniques for Combinatorial Problems, (Ed) C.Reeves 1995, McGraw-Hill. Chapter 2.2.1. 2 Constructive procedures: 1. Dispatching Rules 2. Composite Dispatching Rules 3. Dynamic Programming 4. Integer Programming 5. Branch and Bound 6. Beam Search Local Search 1. Simulated Annealing 2. Tabu-Search 3. Genetic Algorithms Heuristic technique is a method which seeks good (i.e. near-optimal solutions) at a reasonable cost without being able to guarantee optimality. 3 Dispatching Rules A dispatching rule prioritises all the jobs that are waiting for processing on a machine. Classification • Static: not time-dependent • Dynamic: time dependent • Local: uses information about the queue where the job is waiting or machine where the job is queued • Global: uses information about other machines (e.g. processing time of the jobs on the next machine on its route, or the current queue length 4 Rule Service in random order SIRO Earliest release date first ERD Data Objectives ease of implementation rj Earliest due date first EDD Minimum slack first max(dj-pj-t, 0) Weighted shortest processing time first WSPT wj / pj Longest processing time first LPT Shortest setup time first SST Least flexible job first LFJ Critical path CP Largest number of sucessors LNS Shortest queue at the next machine SQNO dj dj, pj minimise variation of the waiting times of jobs at a machine minimise lateness minimise due date related objectives minimise weighted sum of completion times wj, pj pj sjk load balancing over parallel machines makespan Mj pj, precedence pj, precedence makespan makespan makespan machine idleness 5 Local Search Step. 1. Initialisation k=0 Select a starting solution S0S Record the current best-known solution by setting Sbest = S0 and best_cost = F(Sbest) Step 2. Choice and Update Choose a Solution Sk+1N(Sk) If the choice criteria cannot be satisfied by any member of N(Sk), then the algorithm stops if F(Sk+1) < best_cost then Sbest = Sk+1 and best_cost = F(Sk+1) Step 3. Termination If termination conditions apply then the algorithm stops else k = k+1 and go to Step 2. 6 • Global Optimum: better than all other solutions • Local Optimum: better than all solutions in a certain neighbourhood 7 1. 2. 3. 4. Schedule representation Neighbourhood design Search process Acceptance-rejection criterion 1. Schedule representation Nonpreemptive single machine schedule • permutation of n jobs Nonpreemptive job shop schedule • m consecutive strings, each representing a permutation of n operations on a machine 8 2. Neighbourhood design Single machine: • adjacent pairwise interchange • take an arbitrary job in the schedule and insert it in another positions Job shop: • interchange a pair of adjacent operations on the critical path of the schedule • one-step look-back interchange 9 • current schedule machine h (h, l) (h, k) (i, j) machine i (i, k) • schedule after interchange of (i, j) and (i, k) machine h (h, l) (h, k) (i, k) machine i (i, j) • schedule after interchange of (h, l) and (h, k) machine h machine i (h, k) (h, l) (i, k) (i, j) 10 3. Search process • select schedules randomly • select first schedules that appear promising for example, swap jobs that affect the objective the most 4. Acceptance-rejection criterion probabilistic: simulated annealing deterministic: tabu-search 11