These advantages are exemplied by a scheduling workbench called Oz Scheduler [13]. This workbench makes use of dierent OR algorithms for propagation a

Similar documents
or X::3#6 X::4#10 [] Y::1000#1050 end

Two Problems - Two Solutions: One System - ECLiPSe. Mark Wallace and Andre Veron. April 1993

A technique for adding range restrictions to. August 30, Abstract. In a generalized searching problem, a set S of n colored geometric objects

Modelling Combinatorial Problems for CLP(FD+R) Henk Vandecasteele. Department of Computer Science, K. U. Leuven

Scheduling a Major College Basketball Conference Revisited

A Two-stage approach for an optimum solution of the car assembly scheduling problem. Part 2. CLP solution and real-world example

Rearrangement of DNA fragments: a branch-and-cut algorithm Abstract. In this paper we consider a problem that arises in the process of reconstruction

A Hybrid Algorithm for Compiling Equality. Constraints and its Implementation. Department of Computer and Information Science

proc {Produce State Out} local State2 Out2 in State2 = State + 1 Out = State Out2 {Produce State2 Out2}

Localization in Graphs. Richardson, TX Azriel Rosenfeld. Center for Automation Research. College Park, MD

Outline. A Puzzle Example. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING

Online algorithms for clustering problems

3 No-Wait Job Shops with Variable Processing Times

Programming Constraint Inference Engines

instruction fetch memory interface signal unit priority manager instruction decode stack register sets address PC2 PC3 PC4 instructions extern signals

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data

Oz A Programming Language for Multi-Agent Systems*

Hardware Implementation of GA.

More information about DFKI Oz, the documentation, and the system can be obtained.

MODELLING AND SOLVING SCHEDULING PROBLEMS USING CONSTRAINT PROGRAMMING

Andrew Davenport and Edward Tsang. fdaveat,edwardgessex.ac.uk. mostly soluble problems and regions of overconstrained, mostly insoluble problems as

Maple on the Intel Paragon. Laurent Bernardin. Institut fur Wissenschaftliches Rechnen. ETH Zurich, Switzerland.

An Improved Upper Bound for the Sum-free Subset Constant

Modelling and Solving Fleet Assignment in a. Flexible Environment. Hani El Sakkout. IC-Parc, Imperial College, London SW7 2AZ.

The Definition of Kernel Oz

This paper focuses on temporally dense round robin tournaments (abbreviated. Table 1 shows a RR for n = 5 and r = 1. The integral value in row t

Branch-and-Bound Algorithms for Constrained Paths and Path Pairs and Their Application to Transparent WDM Networks

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster

SORT INFERENCE \coregular" signatures, they derive an algorithm for computing a most general typing for expressions e which is only slightly more comp

Combining Complementary Scheduling Approaches into an Enhanced Modular Software

Validating Plans with Durative Actions via Integrating Boolean and Numerical Constraints

Greedy Algorithms. T. M. Murali. January 28, Interval Scheduling Interval Partitioning Minimising Lateness

Constraint Programming. Marco Kuhlmann & Guido Tack Lecture 1

An Ecient Approximation Algorithm for the. File Redistribution Scheduling Problem in. Fully Connected Networks. Abstract

Job-shop scheduling with limited capacity buffers

The goal of this paper is to develop models and methods that use complementary

Hyperplane Ranking in. Simple Genetic Algorithms. D. Whitley, K. Mathias, and L. Pyeatt. Department of Computer Science. Colorado State University

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines

A Hybrid Constraint Programming Approach to Nurse Rostering Problem

Abstract. are shared by a number of processes which operate in a totally asynchronous and

Constraint-Based Scheduling: An Introduction for Newcomers

General Methods and Search Algorithms

A new approach to the Interactive Resolution of Configuration Problems in Virtual Environments

2 The Service Provision Problem The formulation given here can also be found in Tomasgard et al. [6]. That paper also details the background of the mo

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS

GIFT: A Generic Interface for reusing Filtering Algorithms

Stefan WAGNER *, Michael AFFENZELLER * HEURISTICLAB GRID A FLEXIBLE AND EXTENSIBLE ENVIRONMENT 1. INTRODUCTION

Encapsulated Search and Constraint Programming in Oz

Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX)

Intelligent, real-time scheduling for FMS

Constraint Programming

2 J. Karvo et al. / Blocking of dynamic multicast connections Figure 1. Point to point (top) vs. point to multipoint, or multicast connections (bottom

size, runs an existing induction algorithm on the rst subset to obtain a rst set of rules, and then processes each of the remaining data subsets at a

Allowing Cycle-Stealing Direct Memory Access I/O. Concurrent with Hard-Real-Time Programs

1 Overview, Models of Computation, Brent s Theorem

coordinates ([6]); it turns out that this language is also useful for ecient scanning of the relevant part of the backtracking tree. The idea of learn

OCL Support in MOF Repositories

Constraint Solving CLFD: Architecture Constraint Propagation Search Interface & Results Conclusion CLFD

The Architecture of a System for the Indexing of Images by. Content

On the Space-Time Trade-off in Solving Constraint Satisfaction Problems*

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation

On the Complexity of Interval-Based Constraint. Networks. September 19, Abstract

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines

3.4 Data-Centric workflow

Dierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes

The element the node represents End-of-Path marker e The sons T

3 Concurrency and dataow synchronization Mozart provides lightweight threads and dataow synchronization. These help the programmer structure his or he

A. Atamturk. G.L. Nemhauser. M.W.P. Savelsbergh. Georgia Institute of Technology. School of Industrial and Systems Engineering.

2 Keywords Backtracking Algorithms, Constraint Satisfaction Problem, Distributed Articial Intelligence, Iterative Improvement Algorithm, Multiagent Sy

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable).

Abstract formula. Net formula

User Interface. Global planner. Local planner. sensors. actuators

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Eulerian disjoint paths problem in grid graphs is NP-complete

Vertex-Colouring Edge-Weightings

such internal data dependencies can be formally specied. A possible approach to specify

Abstract Relaxed balancing of search trees was introduced with the aim of speeding up the updates and allowing a high degree of concurrency. In a rela

Discrete Optimization. Lecture Notes 2

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

Title of Publication: Encyclopedia of Cognitive Science. Article title: Constraint Satisfaction. Article code: 26. Authors: Rina Dechter

N. Hitschfeld. Blanco Encalada 2120, Santiago, CHILE.

Fast algorithms for max independent set

Journal of Global Optimization, 10, 1{40 (1997) A Discrete Lagrangian-Based Global-Search. Method for Solving Satisability Problems *

Packing Chromatic Number of Distance Graphs

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a

Constraint Satisfaction

Notes on Binary Dumbbell Trees

time using O( n log n ) processors on the EREW PRAM. Thus, our algorithm improves on the previous results, either in time complexity or in the model o

Revised version, February 1991, appeared in Information Processing Letters 38 (1991), 123{127 COMPUTING THE MINIMUM HAUSDORFF DISTANCE BETWEEN

Active Motion Detection and Object Tracking. Joachim Denzler and Dietrich W.R.Paulus.

Applying Model Intelligence Frameworks for Deployment Problem in Real-Time and Embedded Systems

Marc Wennink. Department of Mathematics and Computing Science. Eindhoven University of Technology. The Netherlands. Martin Savelsbergh

Technical Memo TM-01-01

Integrating decision management with UML modeling concepts and tools

n-ary constraints are provided by many constraint programming languages and libraries. There are two main approaches to deal with n-ary CSPs. The rst

On Computing the Minimal Labels in Time. Point Algebra Networks. IRST { Istituto per la Ricerca Scientica e Tecnologica. I Povo, Trento Italy

MULTIMEDIA PROCESSING ON MANY-CORE TECHNOLOGIES USING DISTRIBUTED MULTIMEDIA MIDDLEWARE

The driving motivation behind the design of the Janus framework is to provide application-oriented, easy-to-use and ecient abstractions for the above

Cooperative Planning of Independent Agents. through Prototype Evaluation. E.-E. Doberkat W. Hasselbring C. Pahl. University ofdortmund

Creating Meaningful Training Data for Dicult Job Shop Scheduling Instances for Ordinal Regression

Transcription:

Constraint-Based Scheduling in Oz Jorg Wurtz, DFKI GmbH, Saarbrucken Abstract It is discussed, how scheduling problems can be solved in the concurrent constraint programming language Oz. Oz is the rst high-level constraint language, which oers an interface to invent new constraints in an ecient way using C++. Its multi-paradigm features including programmable search are unique in the eld of constraint programming. Through the interface, algorithms from Operations Research and related elds can be incorporated. The algorithms can be combined through encapsulation into constraints and can communicate via shared variables. This is exemplied by the integration of new techniques based on edge-nding for job-shop and multi-capacitated scheduling. The viability of Oz as a platform for problem solving is also exemplied by a graphical scheduling workbench. The performance for job-shop problems is comparable to state-of-the-art scheduling tools. 1 Introduction Since many years, Operations Research (OR) is successfull in solving application problems. Often, tailored algorithms are developped, which tackle the problem under investigation very eciently. But diculties may arise, if the tailored algorithm has to be adapted to changes of the problem formulation. The special-purpose program may have to be restated in a time-consuming way. On the other hand, constraint programming was invented with the aim to combine declarativeness and expressiveness with eciency [7]. This works well for several application domains like scheduling, conguration, or resource allocation. But for larger and especially hard problems, the used constraint-techniques were not sucient. Hence, techniques from OR were incorporated into constraint systems, pioneered by CHIP [4]. Changes of the problem formulation can be modeled by stating dierent constraints. But CHIP lacks exibility to allow the user to invent new kinds of constraints. We propose Oz [11, 12] as a platform to integrate algorithms from OR to achieve an amalgamation of a high-level constraint language with ecient OR techniques. Oz is a concurrent constraint language providing for functional, object-oriented, and constraint programming. The unique advantages of Oz, which can be oered to the OR community are: Expressiveness. Dierent language paradigms allow a natural and high-level modelling of the problem. Concurrent constraints provide for rapid testing of dierent models. Programmable Search. Besides predened search strategies like depth-rst one solution search or branch & bound, the user can program his own strategies [10]. Search is completely separated from the reduction of the search space achieved by constraint propagation. Modularity. Through the encapsulation of dierent algorithms into constraints, they can be combined and interact in one environment. In combination with search and objects, collaborating problem solvers can be programmed. Openness. Through the use of a C++ interface [9], new constraints can be implemented eciently by the programmer and used like any Oz procedure.

These advantages are exemplied by a scheduling workbench called Oz Scheduler [13]. This workbench makes use of dierent OR algorithms for propagation and branching, which we have implemented for job-shop scheduling. The user can freely combine dierent search strategies and constraint algorithms. The performance is comparable to state-of-the-art special-purpose tools for scheduling. We show the integration of a new technique based on so-called edge-nding techniques [2] into constraints for job-shop and multi-capacitated scheduling. But also techniques coming from linear programming or graph algorithms may be integrated. The paper is structured as follows. In Section 2, constraint programming in Oz is introduced. Section 3 explains how scheduling problems can be solved in Oz. In Section 4, the performance is evaluated for job-shop problems. The paper concludes with an overview on related work. 2 Constraint Programming in Oz This paper deals with constraints on nite sets of nonnegative integers, so-called nite domains, in the constraint programming language Oz. For a more thorough treatment see [10, 5]. A basic constraint takes the form x = n, x = y or x 2 D, where n is a nonnegative integer and D is a nite domain. The basic constraints reside in the constraint store. Oz provides ecient algorithms to decide satisability and implication for basic constraints. For more expressive constraints, like x + y = z, deciding their satisability is not computationally tractable. Such nonbasic constraints are not contained in the constraint store but store propagator propagator are imposed by propagators. A propagator is a computational agent that tries to narrow the domains of the variables occurring in the corresponding constraint. This narrowing is called constraint propagation. As an example, assume a store containing X; Y; Z 2 f1; : : : ; 10g. The propagator for X + Y < Z narrows the domains to X; Y 2 f1; : : : ; 8g and Z 2 f3; : : : ; 10g (since the other values cannot satisfy the constraint). Adding the constraint Z = 5 causes the propagator to strengthen the store to X; Y 2 f1; : : : ; 3g and Z = 5. Imposing X = 3 lets the propagator narrow the domain of Y to one. Propagators `communicate' via shared variables in the store. If a propagator narrows a domain, further propagators may be triggered, which may narrow further domains, triggering propagators and so on. This takes place until a xed point is reached. Constraint propagation is completely independent from the particular implementation of a propagator. The constraint language serves as the glue to connect all the propagators and their algorithms. Constraint propagation is usually incomplete (for the sake of eciency). Hence, to obtain a solution for a set of constraints S, we have to choose a (not necessarily basic) constraint C and solve both S [ fcg and S [ f:cg; we distribute S with C at the current choice-point. The second alternative S [ f:cg is solved if the rst alternative leads to an inconsistent store (backtracking). We say that a failure has occurred, if constraint propagation leads to an inconsistent store. Note that distribution takes place only if propagation has reached a xed point. In the example above we have rst distributed with Z = 5 and then with X = 3. Thus, solving a constraint problem consists in a sequence of interleaved propagation and distribution steps. In Oz, distribution strategies like rst fail (choose the variable rst with the currently smallest domain) but also more elaborated strategies can be programmed by the user. Additionally, Oz oers programmable search [10]. Besides search for one or all solutions and branch&bound, resource limited search (limited number of time or failures) or local optimization techniques can be programmed; both used in the Oz Scheduler. The search tree for a solution can be visualized by the Oz Explorer. While propagators can be developed and tested in Oz itself, a more ecient implementation is available through a C++ interface, which allows the ecient usage of destructive datastructures [9]. The interface provides for high-level abstractions to free the programmer from tedious work like

triggering propagators etc. For the programmer it is transparent whether a propagator is provided as an Oz procedure or as a builtin through the interface. Thus, a constraint problem can be solved by the combination of three orthogonal concepts: Propagators, distribution and search. Because in Oz these concepts are completely independent from each other, the implementation of problem solvers is so convenient. 3 Scheduling in Oz We consider job-shop problems rst. An nxm job-shop problem consists of n jobs and m resources. Each job consists of m tasks to be scheduled on dierent resources. The tasks in a job are linearly ordered. The resources have unary capacity and no preemption is allowed. A job-shop problem is characterized by two kinds of constraints: precedence and resource constraints. The solution of a scheduling problem consists in an assignment of start times to tasks that is consistent with all constraints. Usually, one is also interested in the optimal solution, minimizing the overall length of the schedule. A task can be modeled by its duration and a nite domain for its start time. A precedence constraint like that A with duration d(a) must precede B is stated as A + d(a) B: A resource constraint states that two tasks A and B on the same resource must not overlap in time, i.e, A + d(a) B _ B + d(b) A. This can be modeled in Oz by so-called reied constraints: C 1 = (A + d(a) B) ^ C 2 = (B + d(b) A) ^ C 1 + C 2 = 1: Here, the validity of e.g. A + d(a) B is reected into the 0/1 valued variable C 1. But the resulting `local' reasoning is too weak to solve hard problems. Thus, a technique called edge-nding was invented in [2]. We explain it in terms of constraint propagation. Let S be an arbitrary set of tasks to be scheduled on the same resource and T 2 S. Let S 0 be S without T. Then, T must be last, if it cannot be scheduled before all tasks in S 0 and not between two tasks in S 0. Let s(t ), c(t ), and d(t ) be the earliest possible start time, the latest possible completion time, and the duration of T, respectively. Let s(s 0 ), c(s 0 ), and d(s 0 ) be the earliest possible start time, the latest possible completion time and the sum of durations of tasks in S 0. Then, if c(s 0 )? s(s 0 ) < d(s); T cannot be between two tasks of S 0, and if c(s 0 )? s(t ) < d(s); T cannot be scheduled before all tasks in S 0. Hence, T must be last and the start time can be narrowed correspondingly, i.e., T s(s 0 ) + d(s 0 ). Analogous rules hold for the detection that a task must be rst. Several approaches dier in the amount of further propagation and the selection of the task sets S to consider [1, 2, 3, 6, 8]. We integrated a kind of edge-nding in a propagator, which bases on an algorithm suggested in [8] for proving lower bounds of job-shop problems. The algorithm (quadratic complexity) computes so-called ascending sets of tasks. For tasks not in these sets, edge-nding rules are applied. By construction, this algorithm avoids some useless edge-nding tests. To improve the algorithm, it is checked for all pairs of tasks, whether one can be scheduled before the other (essentially adopting the reied approach above). One of the advantages of this algorithm is that it can be generalized for multi-capacitated resources (see below). For distribution (or branching as it is often called in OR), we implemented several strategies from OR and Articial Intelligence. The best results for proving optimality were obtained by a simplied algorithm of [3], where we avoid the maintenance of cumbersome datastructures. In contrast to

[3], we use the distribution strategy also to add dynamically new propagators (because we can detect tasks, which must be scheduled rst or last in a task subset). One surprising observation is that this strategy (providing a very simple form of edge-nding) in combination with a propagator comprising only the propagation of the reied approach above, was sucient to solve hard scheduling benchmarks (see Section 4). To nd the optimal solution quickly, we used repair and shue techniques for local optimization (see e.g. [1]), while the edge-nding propagators are also stated for propagation. For this it was very convenient and inevitable to use programmable search in Oz and high-level abstractions. Furthermore, we implemented a propagator for multi-capacitated scheduling, where the resources may have a capacity greater than one and the tasks may consume more than one resource unit. To this aim, we generalized our edge-nding algorithm. Essentially, instead of computing the overall duration of a task set, we make use of the amount of resource usage. Let cap be the resoure capacity, u(t ) the resource usage of a task T, and a(s) = P T 2S d(t ) u(t ). If T cannot be between two tasks of S 0, and if (c(s 0 )? s(s 0 )) cap < a(s 0 ) + d(t) u(t); (c(s 0 )? s(t)) cap < a(s 0 ) + d(t) u(t); T cannot be scheduled before all tasks in S 0. Let rest = a(s 0 )? (c(s 0 )? s(s 0 )) (cap? u(t)). If rest > 0, then T can be narrowed with T s(s 0 ) + brest=u(t )c. Moreover, for each task a time interval is computed, where the task occupies the resource in any case (if the latest start time is smaller than the earliest completion time). These intervals are used to disallow time intervals for tasks, which would exceed the available resource capacity. Note that this kind of propagator can also be used for geometrical reasoning (modeling rectangles for furniture layout, for example). If a problem requires further constraints like that tasks must have a particular distance, this can be accomodated by constraint programming very easily. The propagators using edge-nding can be stated as before, and one only adds the new propagators. 4 Evaluation In this section we evaluate the performance of Oz for 10x10 job-shop problem instances of [1] in Table 1. For all problems the optimal solution (starting with no information) has to be found and the optimality has to be proved. Problem denotes the problem instance in [1], Fails the number of failures for the overall search (including the proof of optimality), CPU the corresponding runtime in seconds on a Sparc20/70 MHz workstation, and Fails(pr) and CPU(pr) the number of failures and the time needed for the proof of optimality only. The column Reied indicates that reied constraints were used for the resource constraints 1, while Edge-Finding indicates that edge-nding was used. The results on the same problems for Ilog Schedule and Claire (see Section 5) are shown in Table 2 (BT denotes the number of backtracks; Ilog used an IBM RS6000 workstation and for Claire a Sparc10/40 MHz was used). In [1], the proof of optimality for all problems took more than 650 000 nodes in the search tree. Thus, the Oz Scheduler outperforms this approach by more than one order of magnitude. This shows that Oz is comparable to state-of-the-art scheduling tools like Ilog Schedule[6]. 1 Except for nding the upper bound for problem ORB1 and ORB3, where edge-nding was used, because in this phase, reied constraints produced a too bad schedule length.

Reied Edge-Finding Problem Fails CPU Fails(pr) CPU(pr) Fails CPU Fails(pr) CPU(pr) MT10 5838 169 3983 94 4117 157 2564 81 ABZ5 4295 130 2160 52 3455 138 1597 52 ABZ6 1737 64 239 5 1508 71 200 6 La19 3798 112 1756 40 3331 138 1371 45 La20 4793 129 3247 78 6496 228 1943 57 ORB1 20164 554 16252 399 14242 521 11775 388 ORB2 2813 86 766 17 2421 99 596 19 ORB3 42327 1071 39405 952 34422 1121 28232 850 ORB4 6180 172 1939 45 3722 140 1340 38 ORB5 3987 114 1499 40 3468 138 1155 40 Table 1: Results on 10x10 job-shop problems for the Oz Scheduler Ilog Schedule Claire Problem BT CPU BT CPU BT CPU (pr) (pr) (pr) (pr) MT10 13 684 236 4 735 67 1 575 80 ABZ5 19 303 282 4 519 61 1 350 61 ABZ6 6 227 101 312 5 217? La19 18 102 270 6 561 91 1 361 48 La20 40 597 497 20 626 227 2 120 67 ORB1 22 725 407 6 261 108 7 265 315 ORB2 31 490 507 14 123 229 487 23 ORB3 36 729 606 22 138 343 7 500 320 ORB4 13 751 214 1 916 24 1 215 53 ORB5 12 648 211 2 658 37 904 43 Table 2: Results for Ilog and Claire 5 Related Work In this section we shortly compare the relation to other constraint systems. CHIP[4] also provides for means to solve scheduling problems, but is not open to implement new propagators. It heavily relies on its Prolog implementation. Claire[3] is a language compiling to C++ code, which provides very good scheduling results. Its disadvantage is that it does not provide a rich programming environment. Ilog Schedule[6] is a C++ library dedicated to scheduling. We claim that the exclusive use of C++ makes programming often more complicated than if one uses a high-level language like Oz (oering comparable performance gures). Remark The documentation of the DFKI Oz system is available from the programming systems lab of DFKI through anonymous ftp from ps-ftp.dfki.uni-sb.de or through WWW from http://ps-www.dfki.uni-sb.de/oz/. References [1] D. Applegate and W. Cook. A computational study of the job-shop scheduling problem. Operations Research Society of America, Journal on Computing, 3(2):149{156, 1991.

[2] J. Carlier and E. Pinson. An algorithm for solving the job-shop problem. Management Science, 35(2):164{176, 1989. [3] Y. Caseau and F. Laburthe. Improved CLP scheduling with task intervals. In Proceedings of the International Conference on Logic Programming, pages 369{383, 1994. [4] M. Dincbas, P. Van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Berthier. The constraint logic programming language CHIP. In Proceedings of the International Conference on Fifth Generation Computer Systems FGCS-88, pages 693{702, Tokyo, Japan, December 1988. [5] M. Henz and J. Wurtz. Constraint-based time tabling { a case study. Journal of Applied Articial Intelligence, 10(5), October 1996. To appear. [6] Ilog, URL: http://www.ilog.com. Ilog Schedule 2.0, User Manual, 1995. [7] J. Jaar and M. Maher. Constraint logic programming - a survey. Journal of Logic Programming, 19/20:503{582, 1994. [8] P. Martin and D.B. Shmoys. A new approach to computing optimal schedules for the job shop scheduling problem. International Conference on Integer Programming and Combinatorial Optimization, Vancouver, 1996. [9] T. Muller and J. Wurtz. Interfacing propagators with a concurrent constraint language. In JICSLP96 Post-conference workshop and Compulog Net Meeting on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, pages 195{206, 1996. xv. [10] C. Schulte, G. Smolka, and J. Wurtz. Encapsulated search and constraint programming in Oz. In A.H. Borning, editor, Second Workshop on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, vol. 874, pages 134{150, Orcas Island, Washington, USA, 2-4 May 1994. Springer Verlag. [11] G. Smolka. The Oz programming model. In Jan van Leeuwen, editor, Computer Science Today, Lecture Notes in Computer Science, vol. 1000, pages 324{343. Springer-Verlag, Berlin, 1995. [12] G. Smolka and R. Treinen, editors. DFKI Oz Documentation Series. Deutsches Forschungszentrum fur Kunstliche Intelligenz GmbH, Stuhlsatzenhausweg 3, 66123 Saarbrucken, Germany, 1995. [13] J. Wurtz. Oz Scheduler: A workbench for scheduling problems. In IEEE International Conference on Tools with Articial Intelligence (ICTAI'96), 1996. To appear.