CONSTRAINT PROGRAMMING IN SCHEDULING Algorithm 2 : Jackson ’

Elastic scheduling with alternative resources and precedence constraints is described in this paper. Each activity has defined a time window, in which the whole activity must be processed. The goal is to find a schedule minimizing costs on resources. First a special case of the problem is introduced, which deals only with one resource in the schedule. After that a model with more resources is introduced, where each activity has assigned exactly one resource. For this problem no polynomial algorithm is known. Finally a constraint satisfaction optimization model for alternative resources is described. This model uses constraint programming techniques such as edge finding and alternative resources modeling. Introduction Scheduling deals with allocation of activities in the time under limited resources. Scheduling problems coming from practice may be very complex and in many cases no algorithm, that can find an optimal solution in a reasonable time is known. To solve such problems heuristic algorithms such as hill climbing, random walk, simulated annealing, etc are used. These techniques begin usually with a randomly generated solution and iteratively try to find better solution lying in a neighborhood of the current solution. Another approach can be using constraint programming taking advantage of consistency techniques [Dechter, 2003]. These consistency techniques reduce the search space of the problem by active using of constraints in order to skip parts of search space, where no feasible solution can occur. Results describing constrained based scheduling are shown in [Baptiste, Le Pape, Nuijten, 2001]. Solution for the problem discussed in this paper will use consistency techniques. The problem described in this article came from a software company, where a project management software similar to Microsoft Project is being developed. This software will be used for one-off projects scheduling office workers, constructions, etc. These resources are usually humans, that are relatively substitutable. The goal is to allocate resources to activities with the lowest possible costs on resources. Terms used in this article and a problem definition will be introduced first. Then an algorithm solving the relaxed problem will be shown. Finally an approach using constraint satisfaction will be presented. Preliminaries Scheduling terms In scheduling concept of resources is used. Resources are units processing the activities. Disjunctive and cumulative resources are distinguished. In the disjunctive scheduling, each resource can process no more than one activity at a time. It follows, that the resource capacity is either 1 (resource is fully allocated to the activity) or 0 (resource is not allocated to the activity) in disjunctive scheduling. In the cumulative scheduling, each resource can process more activities simultaneously. Maximum capacity of the resource Rk will be denoted as cap(Rk). In some cases the resource processing an activity i is not given exactly, but a set of alternative resources Si is defined, from which exactly one resource must be chosen. This resource will be denoted as res(i). An activity is usually some task to be processed by some resource. A time window 〈ri, di〉 177 WDS'08 Proceedings of Contributed Papers, Part I, 177–185, 2008. ISBN 978-80-7378-065-4 © MATFYZPRESS