Elsevier

Applied Soft Computing

Volume 12, Issue 9, September 2012, Pages 2781-2789
Applied Soft Computing

Evolving priority scheduling heuristics with genetic programming

https://doi.org/10.1016/j.asoc.2012.03.065Get rights and content

Abstract

This paper investigates the use of genetic programming in automated synthesis of scheduling heuristics for an arbitrary performance measure. Genetic programming is used to evolve the priority function, which determines the priority values of certain system elements (jobs, machines). The priority function is used within an appropriate meta-algorithm for a given environment, which forms the priority scheduling heuristic. The evolved solutions are compared with existing scheduling heuristics and found to perform similarly to or better than existing algorithms. We intend to show that this approach is particularly useful for combinations of scheduling environments and performance measures for which no adequate scheduling algorithms exist.

Highlights

► A genetic programming approach for creation of scheduling heuristics is described. ► Scheduling procedure consists of meta-algorithm and priority function. ► Application to a number of scheduling problems and a performance analysis. ► The results suggest efficiency and flexibility in various scheduling environments.

Introduction

Scheduling is a decision-making process concerned with allocating scarce resources to tasks over given time periods, aiming to optimize one or more objectives (performance measures) [1]. Scheduling problems are usually modeled based on a quantitative mathematical approach. The scheduling environment includes the resource set (the amount and the type of each resource), and the nature of the tasks. A model may contain one or more machines available in unit amounts or in parallel. Tasks may be described by their resource requirement, duration, and the start and due times. Precedence restrictions that may exist among the tasks and other processing characteristics and constraints are also considered as parts of task modeling. The manufacturing vocabulary is usually employed, as early developments in the scheduling field were related to the problems arising in manufacturing. Hence, resources are usually called machines and tasks are referred to as jobs.

Decision-making goals are modeled as objective functions. The objective to be minimized is a function of the completion times for the jobs. For example, the objective could be to minimize the completion time of the last job or the number of jobs completed after their respective due dates.

A solution to a scheduling problem includes resolving allocation and sequencing issues: which resource should be allocated to perform each task, and when each task should be performed. There are cases when scheduling is narrowed down to pure allocation resolution, and in other cases scheduling is purely sequencing. Depending on the model, the solution usually involves developing, applying and evaluating combinatorial methods, simulation techniques and heuristic approaches.

The combinatorial nature of most scheduling problems allows using search-based and enumerative techniques [2], including genetic algorithms, branch and bound, simulated annealing. These methods usually offer good quality solutions, but at the cost of a large amount of computational time required by a solution algorithm. Furthermore, search-based techniques are not applicable in dynamic or uncertain conditions, which may require frequent schedule modification or reaction to changing system requirements (i.e. resource failures or job parameter changes). Scheduling with simple but fast heuristic algorithms that directly build schedules (not searching the solution space) is therefore highly effective, and the only feasible solution, in many instances.

Due to the inherent problem complexity and variability, many scheduling systems employ such heuristic scheduling methods. Among the available heuristic algorithms, the question arises of which heuristic to use in a particular environment, given different performance criteria and user requirements. The problem of selecting the appropriate scheduling policy is an active research area [2], [3], and considerable effort is needed to choose or develop the algorithm best suited to the scheduling problem at hand. Recent approaches addressing this issue include inferring fuzzy rules to assign the appropriate scheduling strategy for parallel jobs on identical machines [4] and building a fuzzy rule base for a hypothetical manufacturing system [5]. Considering the vast variety of environments that may be encountered, an effective solution to this problem may be provided using machine learning, particularly genetic programming, to create problem-specific scheduling algorithms.

Genetic programming (GP) is rarely employed in scheduling [6], [7], mainly because it is unpractical to use it to search the space of potential solutions (i.e. schedules). It is, however, suitable for searching the space of algorithms that provide solution to the scheduling problem. Previous work in this area includes evolving scheduling policies for the single machine unweighted tardiness problem [8], [9], [10] and single machine scheduling subject to breakdowns [11]. Classic job shop tardiness scheduling is also addressed [12], [13], as well as airplane scheduling in air traffic control [14], [15]. In most cases, the authors observe performance comparable to human-made algorithms. The scheduling procedure is however defined only implicitly for a given scheduling environment, which leaves space for misunderstandings and affects reproducibility. Moreover, the scheduling paradigm is mostly reduced to list scheduling, where job ordering is determined only at the beginning of the process, which reduces the space of usable heuristics.

In this paper, we structure the scheduling algorithm in two components: a meta-algorithm, which uses priority values to perform scheduling, and a priority function, which defines priorities for different system elements. The priority function is evolved for a given scheduling environment using genetic programming, while the meta-algorithm is defined manually. This allows creating of various heuristics tailored to an arbitrary scheduling environment.

To illustrate this methodology, we address the problems in single machine and job shop scheduling environments, combined with several real-world properties that complicate the application of existing heuristics. The properties include job weights, dynamic job arrivals, precedence constraints, sequence dependent setup times and combinations of those. Other problems (not covered here) were also investigated, such as multiple proportional machine scheduling [16], dynamic identification of bottleneck resources [17] and resource constrained project scheduling [18].

The remainder of this paper is organized as follows: Section 2 describes the approach in more detail, and Sections 3 Single machine scheduling, 4 Job shop scheduling show its application on the single machine and job shop problems, respectively. Section 5 covers the choice of relevant parameters. Section 6 discusses the results, followed by a brief conclusion.

Section snippets

Priority scheduling with genetic programming

A natural representation of the solution to a scheduling problem is a sequence of jobs to be performed on each machine. This sequence presents only a solution to the specific problem instance, i.e. a given set of jobs that need to be scheduled. For a different set of jobs (different initial conditions), a new solution must be found. With genetic programming, we can produce an algorithm that will be used to generate schedules for all possible problem instances in a scheduling environment.

Problem statement

In a single machine environment, n jobs are processed on a single resource. In a static problem, each job is available at time zero, whereas in a dynamic problem, each job j has a release date rj. The processing time of the job is pj and its due date is dj. The relative importance of a job, which may indicate the amount of penalty associated with delaying the job past its due date, is denoted with its weight wj, which we assume is given for each job.

In this environment, the non-trivial

Problem statement

Job shop scheduling includes running n jobs on m machines, where each job has m operations and each operation is to be processed on a specific machine (a more general model involves an arbitrary number of operations for any job). The duration of one operation of job j on machine i is denoted by pij. Every machine and job is considered available for processing from the beginning. The operations of each job must be completed in a specific sequence, which differs from job to job.

Although the jobs

Genetic programming parameters

In this section we present a brief exploration of the influence that GP parameters have on the efficiency of the proposed approach and justify the choice of parameter values in the previous sections. The most important parameters in our view are those that influence the ability of GP to generalize over unseen problem instances. Among the possible choices, we identify the stopping criteria, learning set size, maximum tree depth and population size, which are commonly recognized as the most

Discussion

It can be observed that GP can outperform other heuristics for an arbitrary scheduling objective. On the other hand, it is not likely that a single heuristic, either existing or evolved, will dominate more than one criterion. This is particularly true in the presented GP system that is guided by a single fitness function. If a scheduler with good overall performance is desired, it may be advisable to use an existing heuristic; if we want to maximize efficiency for a single objective, then the

Conclusion

This paper shows how genetic programming can be used to build scheduling algorithms for a specific environment with arbitrary scheduling performance measures. The scheduling heuristic is composed of two parts: a meta-algorithm, which is defined manually, and a priority function, which is evolved using GP. An evolved GP priority rule, in the form of a priority function, could be implemented into other scheduling systems or used by practitioners in the field without additional software (as some

References (32)

  • E. Hart et al.

    Evolutionary scheduling: a review

    Genetic Programming and Evolvable Machines

    (2005)
  • C. Dimopoulos et al.

    A genetic programming heuristic for the one-machine total tardiness problem

  • T.P. Adams

    Creation of simple, deadline, and priority scheduling algorithms using genetic programming

  • W.-J. Yin et al.

    Learning single-machine scheduling heuristics subject to machine breakdowns with genetic programming

  • B.L. Atlan et al.

    Learning distributed reactive strategies by genetic programming for the general job shop problem

  • K. Miyashita

    Job-shop scheduling with gp

  • Cited by (61)

    View all citing articles on Scopus
    View full text