14
PRODUCTION AND OPERATIONS MANAGEMENT Vol. 4, No. 2, SprinS 1995 Printed in U.S.A. A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY* THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH Graduate School of Industrial Administration, Carnegie Mellon University, Pittsburgh, Pennsylvania 152 13, USA We give a tutorial on bottleneck dynamics. Bottleneck dynamics is a scheduling framework that uses approximate dual resource prices to make decentralized decisions. The basic idea is to establish a price for a resource as a function of the set of jobs that need to be processed by the resource. Tasks are then sequenced according to a cost/benefit ratio. Starting with one resource sequencing problems, we describe how priorities for jobs can be developed and how they translate into resource prices. We then describe how resource prices can be approximated in a multiresource situation and how lead times which are critical for these approximations can be accurately com- puted. We also describe a number of studies that have shown bottleneck dynamics to be an effective approach in several different problem areas. (BOTTLENECK DYNAMICS; SCHEDULING MODELS; BENEFIT/COST RATIO; SEQUENCING; RESOURCE PRICING METHODS) 1. Introduction 1.1. Overview Large scheduling models are much more difficult to solve than, say, typical large ag- gregate planning models. Such problems are convex, which gives them a number of major advantages: 1. Hill-climbing techniques such as neighborhood search converge (relatively quickly) to the global optimum; 2. Optimal dual prices exist, providing sensitivity analysis; 3. Dual prices can be used to decompose the problem into sub-problems, which can be solved; 4. These prices can be determined exactly by iteration. Of course, scheduling problems are not convex. They often have many local optima, and dual prices usually do not exist. However, the intuition that supports bottleneck dynamics is that in many large shops where no individual activities dominate, the structure is “close I to convex.” This suggests the following: 1. Hill-climbing techniques should work quite well, especially when combined with extended search methods (tabu search, simulated annealing, and beam search); * Received June 1994; revision received December 1994; accepted February 1995. 94 1059-1478/95/0402/094$1.25 Copyright 0 1995, Production and Operations Management Society

A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

Embed Size (px)

Citation preview

Page 1: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

PRODUCTION AND OPERATIONS MANAGEMENT Vol. 4, No. 2, SprinS 1995

Printed in U.S.A.

A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY*

THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH Graduate School of Industrial Administration, Carnegie Mellon University,

Pittsburgh, Pennsylvania 152 13, USA

We give a tutorial on bottleneck dynamics. Bottleneck dynamics is a scheduling framework that uses approximate dual resource prices to make decentralized decisions. The basic idea is to establish a price for a resource as a function of the set of jobs that need to be processed by the resource. Tasks are then sequenced according to a cost/benefit ratio. Starting with one resource sequencing problems, we describe how priorities for jobs can be developed and how they translate into resource prices. We then describe how resource prices can be approximated in a multiresource situation and how lead times which are critical for these approximations can be accurately com- puted. We also describe a number of studies that have shown bottleneck dynamics to be an effective approach in several different problem areas. (BOTTLENECK DYNAMICS; SCHEDULING MODELS; BENEFIT/COST RATIO; SEQUENCING; RESOURCE PRICING METHODS)

1. Introduction

1.1. Overview

Large scheduling models are much more difficult to solve than, say, typical large ag- gregate planning models. Such problems are convex, which gives them a number of major advantages:

1. Hill-climbing techniques such as neighborhood search converge (relatively quickly) to the global optimum;

2. Optimal dual prices exist, providing sensitivity analysis; 3. Dual prices can be used to decompose the problem into sub-problems, which can

be solved; 4. These prices can be determined exactly by iteration.

Of course, scheduling problems are not convex. They often have many local optima, and dual prices usually do not exist. However, the intuition that supports bottleneck dynamics is that in many large shops where no individual activities dominate, the structure is “close

I to convex.” This suggests the following: 1. Hill-climbing techniques should work quite well, especially when combined with

extended search methods (tabu search, simulated annealing, and beam search);

* Received June 1994; revision received December 1994; accepted February 1995. 94

1059-1478/95/0402/094$1.25 Copyright 0 1995, Production and Operations Management Society

Page 2: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 95

2. Approximate dual prices (delay costs) are meaningful, providing some sensitivity analysis;

3. Dual prices can be used to fashion a broad variety of heuristics, including transfer pricing between sub-modules;

4. These approximate prices can be improved (up to a point) by iteration. It is important to support/validate this intuition by an extensive amount of work which includes the following:

1. Developing one or more ways to robustly estimate static/dynamic heuristic prices easily and accurately;

2. Given prices, developing procedures for solving a number of different kinds of shop building blocks, and for integrating them together;

3. Demonstrating by extensive computational testing, and shop floor validation that some price estimation methods and solution procedures work well.

By now, a great deal of this validating methodology and testing has been completed. This work was presented rather completely in Morton and Pentico (1993), as part of a broader text in heuristic scheduling systems. Our purpose here is to

l Give an overview of the basic bottleneck dynamics methodology; l Review methods for estimating lead times and resource prices; and l Summarize results for various types of shop units, including integration procedures.

1.2. Introduction to Bottleneck Dynamics

1.2.1. The Big Picture. Basically, bottleneck dynamics estimates an approximate dual price (delay cost) for delaying each activity in a shop by estimating the resulting delay of delivery in the final job of which it is a part. This in turn requires estimating the lead time from the current activity to the final operation in order to estimate the urgency of the job. Bottleneck dynamics also estimates an approximate dual price (delay cost) at any given point in time for delaying any possible resource in a shop. The basic method for doing this is to add up the delay costs for all activities already using or waiting for the resource, or that will arrive before the resource is next idle (that is, all remaining activities in the current busy period). The resulting price R(t) is not an accounting price for the machine. Rather, it is an estimate of the opportunity cost of taking time on the machine in terms of other jobs that would be delayed.

Trading off the cost of delaying the waiting activities versus the cost of using the resources allows calculating, for example, which activity has the highest benefit/cost ratio for being scheduled next at a resource (sequencing choice) or which resource should be chosen to do an activity to minimize the sum of resource and activity delay costs (routing choice). Thus these prices in effect allow decomposition of a large problem so that global decisions may be replaced by local decisions made in the context of dispatch simulation. Decision types that can be handled include sequencing, routing, release and other timing issues, lot sizing, and batching. 1.2.2. Estimating Activity Prices (Delay Costs). Suppose each job in the shop has a due date, and there is customer dissatisfaction depending on the lateness (or any regular objective) and the job importance. Suppose the objective is to minimize the sum of dissatisfaction for all customers (we could handle other cases). Then, if a certain activity is estimated to have a given lead time to finish, this yields a current expected lateness. If this activity is expedited by say, a day, then the reduction in lateness, and thus the reduction in customer dissatisfaction can be estimated. This gives an estimate of the activity price or delay cost. The difficult issue here is to estimate the lead time, which depends on shop sequencing decisions not yet made. Some of the methods used for estimating lead times are as follows:

1. Fixed multiple of total remaining process time, 2. Lead time iteration (simulate several times, updating lead times),

Page 3: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

96 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

3. Regression on historical shop data, and 4. Human judgment.

We will discuss these methods in greater detail later. 1.2.3. Estimating Resource Prices. As stated above, resource prices depend on summing all the activity delay prices in the busy period of the resource. Thus, we need estimates of the activity prices, for the current busy period. Unfortunately, this means we must also estimate the busy period. In addition, we often need to estimate prices at some future point in time, requiring activity prices and busy periods in the future. Fortunately, ex- perimental results show that the accuracy of bottleneck dynamics heuristics is not unduly sensitive to how accurate the prices are. Thus, a number of different methods turn out to give good results, such as

1. Myopic: Set current machine price = 1, other machines price = 0. 2. Bottleneck: Set bottleneck machine price = 1, other machines price = 0. 3. Static queuing: Estimate busy period by static queuing analysis. 4. Dynamic queuing: Estimate busy period by dynamic queuing analysis. 5. Exhaustive search: Try different prices. 6. Price iteration: Simulate several times, updating prices each time.

1.2.4. Making Sequencing Decisions. The basic method for choosing the next activity on a resource is as follows:

1. Prioritize in order of decreasing benefit/cost ratio, 2. For due date-based criteria, the benefit is the importance of the job discounted by

a slack factor for closeness to due date. 3. The cost is the remaining resource expediting cost for the job of which the activity

is a part of, times the interest rate (for moving forward in time). 4. The remaining resource expediting cost is the sum of costs on each remaining

resource the job has to be processed on. The cost on a given resource is its price times the usage for the activity on the resource.

Note that for myopic prices (which value only the current machine), this simply reduces to delay cost divided by the activity processing time on the current resource. For rules that focus primarily on bottlenecks, this reduces instead to delay costs divided by future activity time on the bottleneck machine downstream. We shall refer to Morton ( 1994) for discussions on using bottleneck dynamics for other decisions as job release, routing, lot sizing, sequence-dependent setups, etc.

1.3. Summary of the Paper In Section 2, a survey of the literature is presented. This survey has four parts. First

we discuss the dispatch approach to scheduling versus the reservation approach. Next we discuss the “costing and pricing” literature, which forms the basis for the resource pricing ideas used in bottleneck dynamics. Next we discuss the history of bottleneck methods, including OPT and the shifting bottleneck method. Finally, we discuss the history of bottleneck dynamics itself.

Section 3 first describes the bottleneck dynamics methodology with the assumption that prices and lead times are known. A few illustrative examples of the kind of heuristics that may be derived are provided. Next, we discuss a number of different methods for estimating lead times and prices. The basic iterative procedure for solving full problems is also discussed.

In Section 4, we very briefly summarize a selection of studies that have used the ideas described in this paper. Section 4.1 describes studies that use lead time iteration to compute lead times in both flow shops and job shops and compare them to other methods. Section 4.2 describes a study that compares myopic policies with other dispatch policies. The study also shows how the myopic policy is enhanced by using lead time iteration and then further enhanced by using bottleneck dynamics. In section 4.3 we describe a study

Page 4: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 97

that uses bottleneck dynamics ideas to strategically insert idleness in job shops. The study shows that the combination of inserted idleness with bottleneck dynamics can reduce the error of the myopic policies to nearly a third of the original error. Section 4.4 describes a study in which bottleneck dynamics and lead time iteration ideas are effectively used in project management.

2. Review of the Literature

2.1. Dispatch Scheduling versus Reservation Scheduling

In reservation scheduling, a formal schedule is developed in advance and most actual processing is expected to conform exactly to that schedule. Unanticipated changes are patched into the predetermined schedule. In dispatch scheduling the schedule is more dynamic, unanticipated changes simply cause a shift in the entire schedule flexibly. The need for complicated resource matching favors a reservation system (executive’s appoint- ment book). The need for a compact schedule that is always sorted by current priorities favors dispatch scheduling.

By its nature, bottleneck dynamics is best suited for the dispatch approach, since it utilizes repeated forward simulation of the problem with updated priorities. The literature on dispatch scheduling is large (Conway et al. 1967; Baker 1974; French 1982). Reservation systems have been extensively explored in the AI community, using a constraint satisfaction approach (Fox et al. 1983; Ow et al. 1988; Smith 1989). Conway and Maxwell have also developed a proprietary reservation system that shows promise.

2.2. Costing and Pricing

There is extensive operations research literature (Zimmerman and Sovereign 1974) that develops “dual” prices for machines in simple production contexts. Prices are positive if the machine is fully utilized, zero otherwise. In a variant of these models, when demands are nonstationary, prices are positive only during full utilization periods (leading to the conclusion that it is inexpensive to increase utilization from 0.9 to 0.95, which is not observed in practice).

Similarly, there is a broad economics literature on this topic. Turvey (1968) develops “peak load” pricing for resources in production contexts with nonstationary demand. Essentially, demand can be controlled to capacity in each period by decreasing or in- creasing the price in that period. Thus in this type of analysis, prices are set externally rather than being true dual variables.

There is some recent literature in which a positive price is imputed to resources that are not on the average fully utilized. This is due to the fact that demand arrives irregularly. There are busy periods when delay of the resource would cost activities in holding/ tardiness. There is a fair amount of literature on when this irregularity is due to stochasticity in a stationary model. Karmarkar (1983) and Karmarkar et al. (1983, 1987) develop the idea that congestion develops from the inability to fully adjust in the planning process to dynamic changes in lead times. Karmarkar (1983) argues that capacity constraints are then effective at any level of utilization. His queuing model gives an important link between lead time, capacity, and a determination of the optimal batch size. His basic model has been extended to multi-item and multi-work center models (Karmarkar et al. 1983, 1987). They present a case study that utilizes the queuing model for batch sizing decisions. Zipkin (1986) utilizes similar models, optimizing operation costs of a shop over a given set of simple policies. Kekre (1987) shows that congestion costs can increase with greater heterogeneity at a given machine utilization.

Banker et al. (1988) use the multi-item model of Karmarkar et al. (1983) as a basis for determining relevant costs (resource prices) in a stochastic single machine shop with a mixed Poisson arrival stream and somewhat more general processing times. Using the

Page 5: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

98 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

Pollaczek-Khinchine formula, they first derive the long-term average waiting time for any product, which is then converted to a formula to total waiting cost. Taking the derivative of this formula with respect to each parameter produces long-term average prices of various types.

Roundy et al. (199 1) proposed a two-module scheduling system for dynamic job shops with the weighted tardiness criterion. In this system, the hierarchically upper or planning module takes a snapshot of the shop and calculates the dual prices for the resources. The dual prices are obtained by finding a feasible solution to the Lagrangian relaxation of the integer programming formulation of the snapshot problem. The values of the La- grangian dual variables correspond to the machine prices. The planning module then passes on these prices to the lower or dispatching module, which makes localized decisions with the aid of the information from the planning module. They report markedly improved schedules over those resulting from purely dispatch-rule-based methods.

2.3. Bottleneck Methods OPT from Creative Output (Lundrigan 1986; Meleton 1986; Fry et al. 1992) is repre-

sentative of many other current finite scheduling systems (NUMETRIX, Q-Control), which make clever approximate solutions to the mathematical programming scheduling model. OPT's basic advance is that by focusing on a single bottleneck resource, a good solution that is meaningful to the users can be obtained. Disadvantages include (a) multiple and shifting bottlenecks cannot be accommodated, (b) no reactive scheduling capability, and (c) proprietary.

The shifting bottleneck method was developed by Adams et al. ( 1988) and has recently been extended by Balas and Vazacopoulos (work in process). Related work is being carried out by Ovacik and Uzsoy (1992). The method may be considered a high com- putational cost, high accuracy version of OPT, restricted to the makespan objective.

2.4. Bottleneck Dynamics Vepsalainen and Morton (1987, 1988) developed the lead time iteration procedure for

the flow and job shop. They demonstrated that lead time iteration improved the accuracy of the heuristics that needed an estimate of activity slack. They also showed that about five iterations was typically sufficient.

Morton et al. ( 1988) gave the first rather complete development of an early version of bottleneck dynamics, which they called SCHED-STAR. It iterated lead times and prices (by a post-iteration analysis). However, the method used to calculate priorities was more complicated and less easy to generalize than the current method. A study comparing 9 heuristics across 1,200 job shop problems used a net present value objective and deter- mined both job release and job sequencing. SCHED-STAR ranked far above the second- place procedure. Morton and Singh (1988) developed some theoretical properties of bottleneck dynamics, showing how theoretical prices for both deterministic and stochastic cases could be determined.

Lawrence and Morton (1993b) develop bottleneck dynamics for the multi-project management problem. They develop a two stage procedure in which one first decides which available activity in each project has the highest priority, and then chooses which of these activities to schedule. Again, bottleneck dynamics consistently out-performed the rest.

Finally Morton and Pentico (1993) have written a complete book on heuristic sched- uling systems. Among many other topics, it gives an exposition on all facets of bottleneck dynamics.

3.. Basic Bottleneck Dynamics

In Section 3.1 we develop the basic bottleneck dynamics machinery, conditional on knowing leadtimes and prices and give a few examples of how this machinery may be

Page 6: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 99

used. In Section 3.2 we discuss obtaining lead times, and in Section 3.3 we discuss how to obtain prices, together with the full iterative procedure for solving both problems.

3.1. Bottleneck Dynamics Machinery

(For the moment we assume lead times and prices are known.) 3.1.1. Basic Bottleneck Dynamics Definitions.

1. Let Rk(t) be the (implicit) price per unit time of using resource k at time t (the dual price or the marginal cost of postponing all activities for a unit time in the busy period).

2. Let I be the interest rate derived from the firm’s cost of capital. 3. Therefore, IRk(t) is the marginal premium of using a unit time of k earlier or later. 4. Let jk be the activity that is to be processed on machine k and is required to be

done before a downstream job j can be finished (or is the part of job j to be done on machine k).

5. Define the non-time-based importance of job j by the weight Wj, where Wj = (Ajx K), Aj is value added in shop, 5 is customer importance.

6. Let Ljdt) be the forecast lead time from the time activity jk is finished until job j is finished, given jk is started at time t.

7. Let the forecast slack (depending only on the forecast lead time) similarly be given by

Sjk(f) = dj - Ljk(t) - pjk - t

where dj is the due date for job j and pjk is the processing time of activity jk. 8. Let the activity-time urgency Ujk(t) be the job time urgency for the slack sik(t). That

is Ujdt) is the marginal cost of delaying jk in terms of the ultimate delay of job j (This in turn is one of the additive components of the objective function.).

9. Then the delay price or delay cost of the activity jk is given by WjUjdt).

3.1.2. One Resource (Machine) Sequencing. Bottleneck dynamics sequencing for a static single resource is relatively easy because

1. the lead time (Ljk(t)) until the completion of the job is zero; 2. the (unknown) resource price Rk(t) enters the priority of every activity equally, and

hence may be canceled out; and 3. the formulas are much simpler.

Now we apply our framework to the static single machine case. Let the resource have price R and let job j have weight Wj and urgency Uj. If we decide to process it a time A earlier (or later), then the saving (or cost) for j is AWjUj; but the resource is also used earlier, with resulting extra cost AIRpj. Thus the net savings for processing the job earlier would be:

AWjUj - AIRpj

Since there is a single resource, the highest priority job would be the one with the highest net savings for unit of resource cost, or the priority rj would be given by

rj = A[(WjUj)/(lRPj) - 1.01

Finally, since A, I, and R are the same for every job, a priority with the same ranking can be given simply by the following formula:

For the static one resource problem, sequencing priorities may be estimated by the static one resource sequencing formula:

uj = ( wj/Pj) Uj

Page 7: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

100 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

where Wj is the job importance, pj is the processing time, and Uj is the current time urgency factor. [Remember that Q(t) changes with time so that priorities must be re- calculated whenever time changes.]

This is a very suggestive formula. It says to prioritize by the basic job value per unit of processing time (bang for the buck) scaled up or down by a “slack” factor. The one remaining difficulty here is the estimation of Uj.

EXAMPLE 1: MINIMIZE WEIGHTED FLOW. Here clearly Uj(t) = 1 .O for all t, hence our formula becomes the known optimal solution:

EXAMPLE 2: MINIMIZE WEIGHTED TARDINESS. Tardiness is the amount of time by which the completion of the job overshoots its due date. It can be mathematically expressed as max(O, C’ - Dj), where Cj is the completion time and Dj is the due date of job j. In the case of weighted tardiness each job is penalized for tardiness by a multiple that is the measure of the importance of the job.

For this objective Rachamadugu and Morton (198 1) fit

a Uj which is exponentially decreasing in positive slack, and 1 .O for negative slack. Hence our formula becomes

k is a free parameter with 1.7 usually being a good fit and pav is the average processing time of jobs in the line.

The R&M heuristic has consistently performed well. See a study by Rachamadugu and Morton (referred to as R&M) (Morton and Pentico 1993, p. 162) on 1,920 static problems, and a study by Morton and Ramnath (Morton and Pentico 1993, p. 166-168) on 200 dynamic problems. In both cases R&M turned in the best performance for a dispatch heuristic. 3.1.3. Multiple Resource Sequencing. Now let us generalize the static one-resource- sequencing formula to the case where there are many resources and activities required to complete the job. We will limit ourselves here to the case where each activity requires one resource and there are never two different activities needing the same resource on one job. The idea can be generalized easily. In order to present the material in a little more concise manner we will drop from the notation for resource prices and urgency the dependency on time. However, these continue to be functions of time.

The basic approximation (principle) we use is, if we wish to expedite a job, we need to not only expedite a given activity by A, but all downstream activities in the job by A. Bottleneck Dynamics Sequencing Principle. The resource cost of expediting a job cur- rently waiting at a machine by a time A can be estimated by weighing all remaining downstream resource usage of the job by the appropriate prices and multiplying by IA.

This principle is not exact, but it works extremely well in practice and simplifies the whole bottleneck dynamics theory considerably. The basic intuition is as follows: if we expedite an activity on a machine, the eventual completion of the job, which the activity is a part of, is not affected unless all downstream activities are expedited as well. This principle holds for more complex jobs with precedence constraints. Now consider jobj, which currently has activities i, . . . , m, . . . , it4 that need to be processed. Activity i is currently waiting at resource k(z), and we are considering expediting it by a time amount A. Let m index the remaining operations, from i + 1 to M. Operation m at resource k(m) will have resource usage Of RN,pjMm)s Then the principle just above says that the formula for the value of expediting activity i becomes

Page 8: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 101

Now finally, as before, we normalize and ignore factors that are the same for all activities to obtain the multi-resource sequencing priority:

where Wj is the job weight, &t(l) is the urgency of the particular current activity i in incurring cost to j, Pjhm) are the processing times of remaining activities for j on machines k(m), and RM~) are the resource prices to be charged for these times.

It is easy enough to generalize this formula to the case where several resources are needed per activity, or multiple activities use the same resource, or when pjk is a function of time.

Note that it is not very important for individual prices Rk to be accurate, as there is a need for a reasonable estimate of aggregate resource usage in cost terms. Notice also that some of our other simple dispatch or OFT like methods may be seen as special cases.

3.2. Obtaining Lead-times

There are a number of ways of estimating the lead time from operation ji until the finish of job j which differ in ease of calculation and accuracy. Historical-Fixed Parameter. The simplest procedure is to estimate lead-time as a fixed multiple of the remaining process time Tji = Cm=ia PjNmb That is:

k can be estimated very easily by finding the average time through the shop historically divided by the average process time for a large number of jobs. k is often taken as being between 3.0 and 6.0. Historical- Varied Parameter. Unfortunately, in practice k is highly variable, depending on the current shop loading. An improvement would be to estimate k historically for a lightly loaded, moderately loaded, and heavily loaded shop. Then the loading condition of the shop would be an input parameter. Just as one could try to correct for overall shop loading, one could also try to correct for priority of the job, loading on the machine, and average loading on following machines. To do this, one could run regressions on past shop performance:

(k factor) = A0 + Ar(shopload) + &(jobpriority) + A3(machineload).

This is a research question at this point. So far, we have talked about estimating k his- torically and simply using that. However, the computer gives us a lot of power. We could also choose to run the whole dispatch procedure for a number of values of k. (3.0, 3.5, 4.0 - * * ), or we could try some variations in the regression formula. However, if we are willing to run the simulation more than once, lead time iteration is likely the method of choice.

The lead time iteration method given below has been used extensively by the authors and others in testing both myopic methods and bottleneck dynamics, with consistently good results. A recent study by Narayan et al. ( 1994) showed that many heuristics based on slack could be improved by using lead time iteration. Lead Time Iteration.

1. Choose any initial estimate of lead times (e.g., L$ = 3.OT,). 2. Perform a dispatch simulation using some heuristic procedure. 3. Record the objective function obtained, F(n) for iteration FL

Page 9: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

102 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

4. If the termination condition is satisfied, go to Step 7. 5. Set L;+’ to the ex-post Lj:: for iteration ~1. 6. Go to Step 2. 7. Report the objective value and scheduling policy for the iteration giving the best

value of the objective function.

3.3. Obtaining Prices We discuss the central busy period method for deriving prices and turn to approximate

methods after that. 3.3.1. Busy Period Analysis. Consider a resource k within a larger scheduling problem. Suppose that a schedule has been formed so that at a time t we not only know the current queue in front of the resource and the priorities within that queue, but also have good forecasts of the arrival time and priorities of arriving jobs. We can imagine simulating the resource: jobs are processed, new ones arrive; more are processed. At some point after a total of Njobs have been processed (including one partially processed at the start), the resource will first become idle. The time up to that point is called the busy period. Number these jobs from 1 to N in the order that they will be actually processed. We assume that jobj has weight Wj and forecast urgency Uj, which has been estimated currently by some lead time estimation method we have talked about. To allow for a partially completed job 1, we assume w1 has already been decreased in proportion to the part of it already processed. Now, if the resource were shut down for an hour, what would be the differential cost; that is to say, what is the approximate resource price? The fundamental insight is that the optimal schedule would not change much, so that the busy period and priorities would be relatively unchanged. The principal effect would be that all operations in the busy period would also be delayed for an hour. Thus, the fundamental resource price for resource k is

Rk = 2 wjUjk(t> i=l,N

where N is the number of operations in the busy period, Wj is the weight of job j, and Uj its urgency.

Note from the formula that it is clear that the price in general will vary over time and be roughly proportional to the current busy-ness of the resource. It is also clear that good estimation of prices requires working with a solution that is reasonably good. 3.3.2. Price Estimation Methods. We next turn to describing individual methods avail- able for implementing the busy period idea. 1. Dynamic and iterative piicing method

(a) Run the full sequencing problem by some heuristic (e.g., myopic). (b) Record the detailed trace of the run. (c) Analyze actual busy periods and Wj and Uj for each resource at a number of points

of time. (The starting times of activities would probably be adequate.) (d) Use these to compose ex-post price profiles for each resource. (e) Run a new simulation, making decisions with bottleneck dynamics and the newly

estimated prices. (f) If the convergence criterion is satisfied, stop. (g) Return to Step b. Several points bear notice. First, the lead times can be iterated simultaneously with

the prices. Second, as for lead-time iteration, the convergence criterion is likely to be of the form: “stop if current best solution hasn’t been improved for X iterations.” The iterative pricing method is actually the original method employed for bottleneck dynamics, and has been extensively tested in job shops using the weighted tardiness criterion. One interesting thing found in these initial empirical studies is that extremely accurate prices

Page 10: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 103

do not seem to be necessary to get good results. Since iterative methods are quite complex and there may be many problems where direct investigation of busy periods is difficult, a number of simpler methods were also explored. 2. Static and moderately simple methods

Method A: Price the resource proportional to its actual utilization; method B: Simulate using a good heuristic. Then simulate increasing the resource amount and estimate the sensitivity. The price is then taken as proportional to the improvement in the objective per unit relaxation of the resource; method C: Estimate the long run average busy period by queuing theory, making a number of simplifications:

R/c = (~u)&‘k/(l - Pkj2>

(In this last formula, (WY),, is the average delay price of activities at the resource, and Pk is the long-term utilization rate of resource k. The last part of the formula expresses the (exact) unconditional average length of the busy period for a M/M/l queue as a function of the utilization rate.) 3. Static and exhaustive search methods

For smaller problems with, say, two or three resources, it is feasible to simply try “all combinations” of possible prices. For each set of prices simulate the system and record the value of the objective function. Then try all sets of prices via a coarse search. (For three machines, 19 runs with all combinations of values of prices at 0.01, 0.5, or 1 .O proved quite adequate.) This method gives excellent results as far as static pricing models go, and can serve as a benchmark for evaluating simpler procedures. 4. Dynamic and moderately simple methods

Method A: Price proportional to the actual current length of the queue; method B: This method is analogous to the earlier queuing theory result, except that it is based on the actual jobs currently in the queue, rather than the average line. This dynamic ap- proximation is

Rk(t) = z Wki(t)Uki(t) + (WU)avNk(t)(Pk/(l - Pk)) i= 1 ,N(t)

Here (wu),, is the long-term average marginal delay cost of a job in queue at this machine, Sk is the long-term utilization of the machine. Nk is the current line length (it could be reduced by the fractional job remaining on the machine if desired), where wki and uki are the weight and urgency factors for each job currently in the line.

Basically, the summation term of the formula adds up the actual delay costs currently in the line. The right side estimates the delay costs for the rest of the busy period, based again on exact results for a M/&f/ 1 queue. The expected number of jobs to arrive in the rest of a busy period for a M/M/ 1 queue conditional on current line length N(t) is exactly (N(t))(p/( 1 - p)). Since the urgency for incoming jobs is unknown, we multiply by an average urgency. This rule has been the principal one used in practice. It seems robust and quite accurate.

4. Results From Some Studies

In this section we very briefly present findings from some of the studies that used ideas described above for a variety of problems. Greater details on these findings and expla- nations can be found in either the original papers or in Morton and Pentico (1993).

4.1. Lead Time Iteration (LTI) in Shops with Weighted Tardiness Objective

4.1.1. Flow Shops. Vepsalainen and Morton ( 1987) did a study comparing a number of dispatch heuristics in a flow shop. Since bottleneck dynamics had not been fully developed at the time these studies were undertaken, there is no report on the bottleneck dynamic enhancements for this problem.

Page 11: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

104 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

The following heuristics were tested over a total of 1,280 test problems: FCFS, WSPT, EDD-global, slop, Weighted Covert, R&M-one pass, and R&M iterated. The shop parameters they tested included the number of jobs, number of machines, variation in processing times, tardiness factors and range of due dates.

They found that FCFS, EDD and S/OP and WSPT all performed poorly compared to Weighted Covert, R&M-single pass and R&M-iterated. The average difference between Weighted Covert and R&M-iterated was about 16% measured as the percentage deviation from the best method. The difference between R&M-Singk pass and R&M-iterated was about 8%. Vepsalainen and Morton concluded that although the R&M-single pass was the best heuristic if speed was of primary concern, its performance could be easily enhanced by using lead time iteration without too much additional effort. 4.1.2. Job Shops. Vepsalainen and Morton (1987, 1988) compared the R&M heuristic with lead-time iteration against the weighted version of COVERT. Both rules were tested with three different lead time estimation methods:

1. STD: a fixed multiple of the remaining processing time. 2. FORM: a simple fitted formula based on queuing theory and regression, based on

line length and the job priority. 3. ITER: LTI, with no smoothing between iterations.

In addition four benchmark rules, FCPS, EDD, slop, and WSPT, were also used. The parameters varied were machine speeds, job sizes, shop utilization, and due date

settings. They found that LTI was the best lead time estimation method and the R&M heuristic with LTI resulted in the highest average accuracy.

4.2. Bottleneck Dynamics

Recently Lawrence and Morton (1993a), set out to demonstrate a unified set of hy- potheses about dispatch methods in job shops. In the following, “myopic” means the dispatch policy that would be optimal (or very nearly optimal) for the dynamic one machine problem; “iterated myopic” means the myopic. dispatch policy with lead time iteration; “bottleneck dynamics” means the iterated myopic policy with dynamic price iteration. The hypotheses were as follows:

1. The myopic policy performs better than other simple dispatch policies. 2. The iterated myopic policy performs better than the myopic policy. 3. Bottleneck dynamics performs better than the iterated myopic policy. The study was carried out for five objective functions: weighted flow time, weighted

tardiness, maximum tardiness, weighted fraction tardy, and makespan. For these the myopic policies were taken to be WSPT, Rachamadugu and Morton, Operation Due Date (true due dates), Weighted Modified Hodgson’s Rule (modified for dynamic case), Op- eration Due Date (constant due dates), respectively.

There were also a pool of competing heuristics. The hypotheses were tested over three different shop conditions and also on an example drawn from the industry. The testing validated the hypotheses except in the case of weighted fraction tardy where a simple dispatch policy performed slightly better than the myopic dispatch policy.

4.3. Dynamic Problems with Inserted Idleness

Using dispatch methods for dynamic problems is very similar to static problem, the difference being that when a resource becomes free, instead of selecting a job from all the jobs that eventually need to be processed, only jobs that are currently available are considered suitable candidates. The advantage of using purely dispatch methods for dy- namic problems is their robustness and simplicity, and the assurance that the resource is never idling more than absolutely necessary. However, in certain cases this may not be the best policy. When a “hot” job is due to arrive soon, it may be worthwhile to idle a resource. In such cases bottleneck dynamics suggests that the priority of soon-to-arrive

Page 12: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 105

jobs be reduced to reflect the lost resource value involved in waiting for the job. A simple approximation of the full BD formula, which was termed as “X-Dispatch,” is as follows:

rjidle = rj(l - B(rj - O+/Pmin)

where K is the original priority, ?Tji& is the corrected priority, rj is the arrival time of job i, t is the current time and Pmin is the processing time of the shortest job amongst those available at time t. B is a constant that seems to fit well experimentally as follows: B = 1.3 + p (p is the average utilization of the machine).

A recent study on job shops with the weighted tardiness objective by Narayan et al. (1994) tested the above formula in conjunction with the R&M heuristic and found that it reduced the average error by well over 33%. They also found that the combination of X-dispatch and bottleneck dynamics was very powerful and the error of the R&M heuristic was reduced up to a third of the original error. They also found that bottleneck dynamics dramatically enhances performance with increasing problem size.

4.4. Project Management Consider now the problem of scheduling multiple projects, each with its own due date

and weight, with an objective such as weighted tardiness. It is still possible to schedule by a dispatch procedure. Advance time until the next resource changes in availability. Consider all activities throughout the shop that are currently feasible. Calculate a dynamic priority for each. Schedule the activity with the highest priority, and advance the clock again.

Lawrence and Morton (1993a) made the following observation about the dispatch process: Candidate activities within the same project cannot be differentiated on the basis of importance, since all must be performed to obtain any reward. But they also cannot be distinguished on the basis of resource usage or process time, since, again, all must eventually be performed. Thus, irrespective of the objective, as far as activities within the same project are concerned, the objective is to minimize maximum lateness, to coordinate completion times as much as possible. Minimizing maximum lateness is achieved by taking activities in order of their operation due dates or, equivalently, in terms of minimum late finish time (LFT) (iii + p& where 1, is a current estimate, and pij the original process time). Thus a two-stage procedure to solve the problem is as follows:

1. In each project, choose from among eligible activities the one with minimum LFT.

2. For each such candidate, calculate the priority by the appropriate myopic heuristic. For project management, the priority is still WjUj/RAj. But now Wj is the weight of the whole project, and RAj is price of all resources necessary to finish the project. Lawrence and Morton (1993b) conducted a large study on multiple project problems, comparing bottleneck dynamics with more standard dispatch heuristics. The main factors of the study were the number of resources (four levels), due-date tightness (three levels), scheduling rule (30 policies), and random cell replications (40 replications), giving a total of 14,400 individual scheduling problems for the main experiment alone. There were 30 rules studied consisting of 20 benchmark rules, five heuristic pricing rules, and the heuristic pricing rules augmented by lead-time iteration (LTI).

The LTI updating policy reduced the weighted tardiness of all pricing rules by over 18% on the average, and thus proved highly useful. It found its best schedule on the average after 3.8 iterations. Bottleneck dynamics with lead-time iteration was by far the best performer, followed by bottleneck dynamics using the relaxed network to estimate lead times.

5. Conclusions

This paper gives an introduction to a framework for heuristic scheduling systems called bottleneck dynamics. We have shown how tasks can be sequenced by first determining

Page 13: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

106 THOMAS MORTON, VENKATESH NARAYAN, AND PRASAD RAMNATH

approximate dual prices for resources and then using that to sequence jobs. We have described studies that have used these ideas very effectively in a variety of problem areas. There still remain vast areas to which this methodology can be applied. See Morton (1994) and Morton and Pentico (1993) for a more detailed description of how this ap- proach can be used for several other problem types.

References

ADAMS, J., E. BALAS, AND D. ZAWACK (1988), “The Shifting Bottleneck Procedure for Job Shop Scheduling,” Management Science, 34, 39 l-40 1.

BAKER, K. R. (1974), Introduction to Sequencing and Scheduling, John Wiley, New York. BANKER, R. D., S. DATAR, AND S. KEKRE (1987), “Relevant Costs, Congestion and Stochastity in Production

Environments,” Journal of Accounting and Economics, 10, 3, 17 l-197. CONWAY, R. W., W. L. MAXWELL, AND L. W. MILLER (1967), Theory ofScheduling, Addison-Wesley, Reading,

MA. Fox, M. S., B. P. ALLEN, S. F. SMITH, AND G. A. STROM (1983), ISIS: A Constraint-Directed Reasoning

Approach to Job Shop Scheduling, A System Summa y, The Robotics Institute, Carnegie Mellon University, Pittsburgh, PA.

FRENCH, S. (1982), Sequencing and Scheduling An Introduction to the Mathematics of the Job-Shop, John Wiley, New York.

FRY, T. D., J. F. Cox, AND J. H. BLACKSTONE (1992), “An Analysis and Discussion of the Optimized Production Technology Software and Its Use,” Production and Operations Management, 1, 229-242,

KARMARKAR, U. S. (1983), Lot Sizes, Manufacturing Lead Times and Utilization, Working Paper No. QM8312, Graduate School of Management, University of Rochester, Rochester, NY.

KARMARKAR, U. S., S. KEKRE, AND S. KEKRE (1983), Multi-Item Lot-Sizing and Manufacturing Lead Times, Working Paper No. QM8325, Graduate School of Management, University of Rochester, Rochester, NY.

KARMARKAR, U. S., S. KEKRE, AND S. KEKRE (1987), “Capacity Analysis of a Manufacturing Cell,” Journal of Manufacturing Systems, 6, 3, 165-75.

KEKRE, S. (1987), “Performance of A Manufacturing Cell with Increased Product Mix,” IIE Transactions, 19, 3,329-339.

LAWRENCE, S. R. AND T. E. MORTON (1993a), “Myopic Dispatch Scheduling and Bottleneck Dynamics,” Technical Report, Carnegie Mellon University, Pittsburgh, PA.

LAWRENCE S. AND T. MORTON (1993b), “Resource-Constrained Multiproject Scheduling with Tardy Costs: Comparing Myopic, Bottleneck, and Resource Pricing Heuristics,” European Journal of Operational Research, 64, 168-187.

LUNDRIGAN, R. (1986), “What Is This Thing They Call 0~~7” Production and Inventory Management, 27(second quarter), 2- 12.

MELETON, M. P. (1986), “oPr-Fantasy or Breakthrough?’ Production and Inventory Management, 27(second quarter), 13-2 1.

MORTON, T. E. (1994), Survey of Bottleneck Dynamics-A Framework for Heuristic Scheduling Systems, Working paper # 1994- 13, G.S:I.A., Carnegie Mellon University, Pittsburgh, PA.

MORTON, T., S. KEKRE, S. LAWRENCE, AND S. RAJAGOPALAN (1988), “SCHEDSTAR: A Price Based Shop Scheduling Module,” Journal of Manufacturing and Operations Management, 1, 13 I- 18 1.

MORTON, T. AND M. SINGH (1988), “Implicit Costs and Prices for Resources with Busy Periods,” Journal of Manufacturing and Operations Management, 1, 305-322.

MORTON, T. E. AND D. PENTICO (1993), Heuristic Scheduling Systems- With Applications to Project Scheduling, John Wiley, New York.

MORTON, T. E. AND P. RAMNATH (1992), Guided Forward Tabu/Beam Search for Scheduling Very Large Dynamic Job Shops, Working Paper #1992-47, G.S.I.A., Carnegie Mellon University, Pittsburgh, PA.

NARAYAN, V., T. MORTON, AND P. RAMNATH (1994), X-Dispatch Methods for Weighted Tardiness Job Shops, Working Paper #1994-14, G.S.I.A., Carnegie Mellon University, Pittsburgh, PA.

OVACIK, I. AND R. UZSOY (1992), A Shifting Bottleneck Algorithm for Scheduling Semiconductor Testing Operations, Research Memorandum No. 92-4, Purdue University, West Lafayette, IN.

Ow, PENG SI, S. F. SMITH, AND A. THIRIEZ (1988), “Reactive plan revision” AAAI 88, Seventh National Conference on Artificial Intelligence, Saint Paul, MN, vol. 1, 77-82.

F~CHAMADUGU, R. V. AND T. E. MORTON (198 I), Myopic Heuristics for the Single Machine Weighted Tardiness Problem, Working Paper #28-8 l-82, Graduate School of Industrial Administration, Carnegie Mellon University, Pittsburgh, PA.

ROUNDY, R. O., W. L. MAXWELL, Y. T. HERER, S. R. TAYUR, AND A. W. GETZLER (1991), “A Price-Directed Approach to Real-Time Scheduling of Production Operations,” IIE Transactions, 23, 2, 149-60.

Page 14: A TUTORIAL ON BOTTLENECK DYNAMICS: A HEURISTIC SCHEDULING METHODOLOGY

BOTTLENECK DYNAMICS SCHEDULING METHODOLOGY 107

SMITH, S. F. (1989), The OPIS Framework for Modeling Manufacturing Systems, The Robotics Institute, Carnegie Mellon University, Pittsburgh, PA.

TURVEY, R. (1968), “Peak Load Pricing,” Journal ofPolitical Economy, 76, 1, 101-l 13. VEPSALAINEN, A. P. J. AND T. E. MORTON (1987), “Priority Rules for Job Shops with Weighted Tardiness

Costs,” Management Science, 33,8, 1035-1047. VEPSALAINEN, A. AND T. MORTON (1988), “Improving Local Priority Rules with Global Leadtime Estimates,”

Journal of Manufacturing and Operations Management, 1, 102- 118. ZIMMERMAN, H. J. AND M. G. SOVEREIGN (1974), “Quantitative Models for Production Management,” Prentice

Hall. ZIPKIN, D. H. ( 1986), “Models for Design and Control of Stochastic, Multi-Item Batch Production Systems,”

Operations Research, 34, 1,91-104.