SCHEDULING AND SCHEDULING PHILOSOPHIES Nilesh Sivaramakrishnan Master of science graduate student Submitted in Partial Completion of the Requirements of IEM 5303 Advanced Manufacturing Systems Design Fall 1999 This paper was developed to assist students in partial fulfillment of course requirements. No warranty of any kind is expressed or implied. Readers of this document bear sole responsibility for verification of its contents and assume any/all liability for any/all damage or loss resulting from its use. Table of Contents Scheduling and scheduling philosophies .......................................................................... 1 Introduction........................................................................................................................ 1 Definitions and Measures in scheduling .................................................................................. 1 Definitions................................................................................................................... 1 Measures ..................................................................................................................... 2 Classification of Production Scheduling .......................................................................... 4 Requirements Generation ........................................................................................................ 4 Open Shop ................................................................................................................... 4 Closed shop ................................................................................................................. 4 Processing Complexity .............................................................................................................. 4 One stage, one-processor problem .............................................................................. 5 One stage, parallel processor problem ........................................................................ 5 Multistage Problem ..................................................................................................... 5 Multistage, Flow shop problem .................................................................................. 5 Multistage, Job shop problem ..................................................................................... 5 Scheduling Criteria ................................................................................................................... 5 Requirements specification ...................................................................................................... 6 Scheduling Environment .......................................................................................................... 6 Scheduling within a manufacturing organization............................................................ 7 Classification of scheduling approaches ........................................................................... 9 Conventional or traditional scheduling approaches .............................................................. 9 Algorithmic solutions.................................................................................................. 9 Enumeration Methods ............................................................................................... 10 Scheduling heuristics ................................................................................................ 12 Discrete event simulation .......................................................................................... 14 Knowledge Based approach ................................................................................................... 15 Distributed problem solving approach.................................................................................. 15 Page i Drawbacks of traditional approach ................................................................................. 16 Conclusion........................................................................................................................ 18 Bibliography ..................................................................................................................... 19 List of Figures Figure 1 Information flow diagram in a manufacturing system [2] ............................... 7 Figure 2. Categories of scheduling Approaches [7] ......................................................... 9 Figure 3 Branch and Bound Method [5] ........................................................................ 11 Page ii Abstract Production scheduling is the allocation of available production resources to best satisfy some criteria. The intent of this paper is to provide the basic definitions and notations used in scheduling theory, it then describes the broad classification of production scheduling and describes in brief the traditional approaches used to solve scheduling problems through literature survey. This paper concludes by describing the various drawbacks of traditional approaches and by highlighting the necessary steps that need to be taken to bridge the gap between the theory and practice of scheduling methods. Page iii SCHEDULING AND SCHEDULING PHILOSOPHIES INTRODUCTION Sequencing and scheduling are the forms of decision making which play a crucial role in manufacturing as well as in service industries. In the current competitive environment effective sequencing and scheduling have become a necessity for survival in the market place [2]. Production scheduling concerns the efficient allocation of resources over time for the manufacture of goods. Scheduling problems occur whenever a common set of resources – labor, material, and equipment – must be used to make a variety of different products, during the same period of time. The objective of scheduling is to find a way to assign and sequence these shared resources such that the production constraints are satisfied and production costs are minimized [1]. DEFINITIONS AND MEASURES IN SCHEDULING Definitions Scheduling Morton and Pentico (1993)[3] define scheduling as “ Scheduling is the process of organizing, choosing and timing resource usage to carry out all the activities necessary to produce the desired outputs at desired times, while satisfying a large number of time and relationship constraints among the activities and the resources.” This definition implies that, if resources are not limited, a scheduling problem does not exist [4]. Jobs Jobs are the activities to be done. Some examples of jobs in a manufacturing environment are, a part to be processed, a product waiting to be shipped etc. It is assumed that each job has a known processing time. Unless otherwise stated, once work on a job begins, it must be continuously processed until finished, preemption is not allowed. It must have a due time or date by which it should be completed. A job may or may not depend upon other jobs. It is assumed that if more then one machine must processes the job, the job can only be processed by one machine at any given time [4]. Page 1 Machines Machines process jobs. In a manufacturing environment machine might be an automatic molding machine, drilling machine etc. The machine environment can be broken down into single machine, parallel machine, flow shop, job shop and open shop based on the number of machines and the sequence of processing [4]. Measures The best schedule implies that a measure of performance. Maximizing profit and minimizing cost are obvious measures, but it is difficult to estimate the financial parameters that relate to schedule cost and profit [4]. Proxy objectives are used to approximate some relevant costs. The proxy measures are functions of completion time in which the objective is to minimize the function, and in which the function only increases if at least one completion time in the schedule increases [4]. Notations n = Number of jobs to process m = Number of jobs to process pik = the time to process job і on machine k (pi if m = 1) ri = the release time (or release date) for job і di = the due time or (or due date) for job і wi = the weight (importance or value) of job і relative to other jobs Given a particular schedule, the following are defined for job і [4] Ci = the completion time for job і Fi = Ci - ri, the flow time of job і (Fi > 0) Li = Ci - di, the lateness of job і (Li < 0 denotes earliness) Ti = Max {0, Li }, is the tardiness of job і Ei = max {0, - Li }, the earliness of job і δi = 1 if the job і is tardy (i.e., Ti > 0) δi = 0 if job і is on time or early (i.e., Ti = 0) Cmax = Maxi=1,n {Ci}, the maximum completion time of all jobs or is the make span Page 2 Lmax = Maxi=1,n {Li}, the maximum lateness of all the jobs Tmax = Maxi=1,n {Ti}, the maximum tardiness of all the jobs Assumptions made for most scheduling problems [4]: Data are known with certainty Set-up times are independent of order of processing All jobs are immediately available No precedence exists between jobs Once a job starts processing, it cannot be interrupted Formal mathematical notations have been developed to classify scheduling problems [5], the notation consists of four parameters [5]: n|m|A|B where: 1. n is the number of jobs 2. m is the number of machines 3. A describes the flow pattern or discipline within the factory, i.e.: a. F for flow shop case which assumes that all tasks are to be processed on the same set of machines with an identical ordering of the processing steps b. P for the permutation flow-shop case. Here the search for a schedule is restricted to the case where the job order is the same for each machine c. G is the general job-shop case where there are no restrictions on the processing steps for each task d. When there is only one machine, A is left blank 4. B describes the performance measure by which the schedule is to be evaluated Page 3 CLASSIFICATION OF PRODUCTION SCHEDULING Numerous schemes have been developed for categorizing the production scheduling problems. The intent of any classification is to provide a semblance of organization so that the major differentiating dimensions of the problems classes are identified [6]. Stephen Graves (1981)[6] provides a broad classification that encompasses the general characteristics of scheduling theory and scheduling practice. The author provides three dimensions for classifying production-scheduling problems [6] 1. Requirements generation 2. Processing complexity 3. Scheduling criteria REQUIREMENTS GENERATION Requirements can be generated either directly by customer orders or indirectly through inventory replenishments decisions. This distinction is often made in terms of open shop and closed shop [6]. Open Shop In an open shop all the production orders are by customer request and no inventory is stocked. The scheduling problem in its simplest form is a simple sequencing problem in which open orders are sequenced at each facility [6]. Closed shop In a closed shop all customer requests are serviced from inventory, and production tasks are more inventory replenishment decisions. The scheduling problem for a closed shop is involved not only in the sequencing decisions, but also with the lot-sizing decisions associated with inventory replenishment processes [6]. Although a pure open shop or closed shop is rare, most production environments are a primarily an either open, closed or a combination of both [6]. PROCESSING COMPLEXITY Processing complexity is concerned with the number of processing steps associated with each production task. The common breakdown for processing complexity is as follows [6]. Page 4 One-stage, one-processor (facility) One-stage, parallel processors (facilities) Multistage, flow shop Multistage, job shop. One stage, one-processor problem This is the simplest problem form, here all tasks require one processing step, which must be done on the one production facility [6]. One stage, parallel processor problem This is similar to the one-processor problem except that each task requires a single processing step, which may be performed on any of the parallel processors [6]. Multistage Problem For a multistage problem, each task requires processing at a set of distinct facilities. Here there is a strict precedence ordering of the processing steps for a particular task [6]. Multistage, Flow shop problem The flow shop problem assumes that all tasks are to be processed on the same set of facilities with an identical precedence ordering of the processing steps [6]. Multistage, Job shop problem The multistage job shop problem is the most general production-scheduling problem. Here there are no restrictions on the processing steps for a task, and alternative routings for a task may be allowed. This characterization of processing complexity seems capable of capturing the nature of most production environments [6]. SCHEDULING CRITERIA Scheduling criteria indicates the measures upon which schedules are to be evaluated. Two broad classes of criteria are schedule cost and schedule performance [6]. Schedule cost includes the fixed costs associated with the production setups and changeovers, variable production and overtime costs, inventory holding costs, shortage costs for not meeting deadlines or stocking out, and possibly expediting costs for Page 5 implementing the schedule in a dynamic environment. The system costs for implementing the schedule and for monitoring the progress of the schedule also need to be included in the schedule costs [6]. The performance of the schedule may be measured in many ways. Common measures are the utilization level of the production resources, the percentage of late tasks, the average of minimum tardiness for a set of tasks, and the average or maximum flow time for a set of tasks. In addition service criteria may be used to evaluate the production schedule of a closed shop [6]. In most production environments, the schedule evaluation is based on the mixture of both cost and performance criteria [6]. Two other classifications, which are commonly seen in literature, are based on the requirements specification and the scheduling environment [6]. REQUIREMENTS SPECIFICATION Depending upon how the requirements are generated, the specification of the requirements may be termed as deterministic or stochastic. For instance for an open shop, the processing time can for each step of the task may be known, or may be a random variable with specified probability distribution. Similarly, for a closed shop, the customer demand process, which drives the inventory replenishment processes, may be deterministic or stochastic [6]. SCHEDULING ENVIRONMENT The scheduling environment deals with the assumptions on the availability of information on the future requirements. A common distinction is made between a static and dynamic environment. In a Static environment, the scheduling problem is defined with respect to a finite set of fully specified requirements; no additional requirements will be added to this set, nor will any of the specifications be altered. As a contrast in a dynamic environment, the scheduling problem is defined not only for the known requirements, but also with respect to the anticipations for additional requirements and specifications generated over the future time periods [6]. Page 6 SCHEDULING WITHIN A MANUFACTURING ORGANIZATION Production planning, Orders, master scheduling Demand forecasts Capacity Quantities due status dates Material requirements, Materials planning, requirements Capacity planning Scheduling Shop orders, constraints Release dates Scheduling and Detailed rescheduling Scheduling Schedule Schedule performance Dispatching Shop status Shop floor management Job loading Data collection Shop floor FIGURE 1 INFORMATION FLOW DIAGRAM IN A MANUFACTURING SYSTEM [2] The scheduling function in an organization or any system has to interface with many other functions. These interfaces are system dependent and may differ substantially from one situation to another [2]. In a manufacturing system orders have to be released and have to be translated into jobs with associated due dates. The jobs have to be processed by the machines in a work center in a given order or sequence. Jobs may have to wait for processing on machines that are busy, and preemptions may occur when high priority jobs arrive at the machines Page 7 and have to proceed at once. Detailed scheduling of the tasks to be performed in a production system is necessary to maintain efficiency and control of operations [2]. The scheduling function has to interface with several other important functions in an organization. It is affected by the production planning process, which handles medium-to long term planning for the entire organization. This process must consider inventory levels, forecasts, and resource requirements to optimize at a higher level the product mix and long-term resource allocation. Scheduling also receives input from shop floor control. Unexpected events on the shop floor, such as machine breakdowns or processing times that are longer then anticipated, have to be taken into account because they may have a major impact on the schedules [2]. Factories today often have elaborate manufacturing information systems in place. It typically has a central computer and a central database. Connected to this central computer are local area networks of personal computers, workstations, and data entry terminals. The scheduling function is done on a personal computer or a workstation connected to the factory's main computer. Terminals at key locations may be connected to the scheduling computer to provide departments access to the necessary scheduling information and to enable the departments to provide the scheduling systems with the relevant information such as status of machines, changes in job data, and so on [2]. Page 8 CLASSIFICATION OF SCHEDULING APPROACHES V.Suresh and D.Chaudhuri (1993) [7] group scheduling approaches into three broad categories Scheduling Approach Conventional Knowledge Distributed Based Solving FIGURE 2. CATEGORIES OF SCHEDULING APPROACHES [7] This paper concentrates only on the conventional or the traditional scheduling approaches. CONVENTIONAL OR TRADITIONAL SCHEDULING APPROACHES The approaches to developing possible scheduling algorithms vary, some of the famous traditional scheduling approaches are Algorithmic solutions An algorithm is a recipe for obtaining a solution to a model. An instance is a particular set of data for the model. Exact algorithms give an optimal solution to every instance of problem. This paper discusses two algorithms [5] based on an initial algorithm developed by Johnson [5] The objective of Johnson’s algorithm is to minimize flow time [Fmax] [5]. 1. n|2|F|Fmax In this problem the, n jobs must be processed through two machines, so that the maximum flow time is minimized. The algorithm is as follows [5]: a. Start processing with the job having the shortest processing time on machine 1 Page 9 b. Finish processing with the job having the shortest processing time on machine 2 (since this is the that the machine 1 has to be idle). If the smallest time is the same for two jobs, then an arbitrary selection is made [5]. 2. n|2|G|Fmax This solution is for a job shop and each job shop has to be processed in the same order through each of the two machines, the jobs can be divided into four different categories A, B, C, and D. A: those jobs to be processed on machine M1 only B: those jobs to be processed on machine M2 only C: Those jobs to be processed on both machines, in the order M1 followed by M2 D: Those jobs to be processed on both machines, in the order M2 followed by M1 The development of an optimal schedule is as follows a. Schedule the jobs of type A in any order to give the sequence SA. b. Schedule the jobs of type B in any order to give the sequence SB c. Schedule the jobs of type C using Johnson’s Algorithm for n/2/F/Fmax d. Schedule the jobs of type D using Johnson’s algorithm for n/2/f/ Fmax to give the sequence Sd The drawback of the two algorithms presented here is that, majority of the scheduling problems cannot be approximated to any of these algorithms. It is widely acknowledged that the larger of the scheduling problems are not Non-Polynomial (NP) complete, that is, the number of possible solutions increases exponentially with the size of the scheduling problem [5]. Cunningham (1986)[8] showed that for a simple n jobs and m machines case, the upper bound on the number of solutions is (n!) m which is almost 25 billion for a five machine-five job problem [8]. Enumeration Methods The enormity of the potential solution place, forced the development of viable solution techniques with the objective of eliminating large groups of non-optimal solutions. An enumeration method lists, or enumerates all possible schedules and then eliminates the non-optimal possibilities from the list, leaving those, which are optimal .Two, such enumeration techniques are [5]: Page 10 Dynamic programming Branch and Bound method Dynamic Programming Dynamic programming originates from Bellam (1957) [9]. He applied dynamic programming ideas to sequencing problems and obtained solutions to the single machine problem. The major drawback of dynamic programming is the amount of calculation required. French (1982) [10], showed that the gross estimate on the computer time needed solve dynamic programming scheduling problems increases exponentially as the problem size increases. He concluded that dynamic programming may be used suitably for solving relatively small problems [5]. Branch and Bound method Branch and Bound is a form of implicit enumeration. It involves the formation of an elimination tree, which lists possible permutations. Branches in this tree may then be eliminated if it is evident that the solution will not approach the optimal [5]. To illustrate this approach consider an example taken from Cunningham and Browne (1986) [8][5], which lists the possible sequence of four jobs A, B, C, and D on one machine. The assumption for this example is that job A is selected first. A 7 1 3 C B 3 4 2 C D 4 7 4 D B C D 4 D 1 D 3 3 B C 2 2 B B C FIGURE 3 BRANCH AND BOUND METHOD [5] Page 11 Since the assumption is that we start with job A, the possible number of solutions is 6[5]. In the figure above the numbers represent the cost of scheduling jobs in that order, and this cost is based on the number of set up changes that are involved. The branch and bound procedure is as follows [5] First branch on AB, which results in the possibilities ABC and ABD. Since they are longer than AC, then branch on AC to produce ACB and ACD. Again, evaluate the shortest permutation, which in this case is ABC and then produce ABCD. Then eliminate ACBD and ACBD since they are longer than ABCD. After that, ACDB is preferable to ABCD, and AD is eliminated because of its length. This results in ACDB being accepted as the final solution [5]. To overcome the computation time, a heuristic schedule is developed which reduced the possible solution space. The authors claim that the problem becomes more manageable if the list of jobs to be sequenced were divided into groups containing similar jobs, and then the branch and bound scheduler was used to schedule individual jobs [5]. Scheduling heuristics Barr (1981)[11] describes a heuristic as “A rule of thumb, strategy, trick, simplification, or any other kind of device, which drastically limits the search for solutions in large problems … all that can be said for a useful heuristic is that it offers solutions which are good enough most of the time ” Blackstone (1981)[12] compared several rules based on results of published studies. They identified several rules that exhibited good performance in general; they identified 34 rules and presented them in terms of: Rules involving processing times The two main rules are based on the shortest imminent operation time of jobs awaiting processing in a workstation queue [5]. SI: The shortest imminent operation rule, selects the processing that job for which the operation can be completed in the least time [5] Page 12 Truncated SI: This rule, a modified version of the SI rule, ensures that jobs with long process times which have been waiting for a certain time period, are given priority so that they may meet their due dates [5] Dynamic scheduling rules With dynamic scheduling heuristics, jobs are scheduled in real time based on the current state of the system. A well-known dynamic heuristic is the minimum slack time heuristic, which calculates the amount of time remaining for each job in the system. This calculation is based on the due date of the job (d), the current date (p) and the sum of the remaining processing times (sum)[5] Minimum slack time = d-p-sum Another effective dynamic rule is the least slack per operation rule, which is based on the total number of remaining operations [5] Least slack per operation = [d-p-sum]/[number of remaining operations] Rules involving due dates The principle advantage of having due-dates based rules over processing time-based rules is a smaller variance of job lateness, and often a smaller number of tardy jobs []. Conway (1967)[13], has shown that this advantage is especially manifest when due dates are established as some multiple of total processing time. Conway also studied three due date based rules: earliest due date, least slack due date and least slack per operation, and of these it was found that the least slack per operation produces a smaller variance of job lateness and a smaller number of tardy jobs than the other two measures [13]. Simple rules The most commonly used simple heuristic is the First-In-First-Out (FIFO), and a number of researchers have found that this rule performs substantially the same as random with respect to mean flow time or mean lateness. FIFO is an attractive alternative due to its simplicity of definition and usage [5]. The priority rule is another simple method for selecting jobs from a queue. The priority rule requires that a priority value be assigned to each job, and those with highest priority value be processed first [5]. Page 13 Discrete event simulation Pritsker (1994)[15] described digital simulation as ‘ The establishment of a mathematical logical model of a system, and the experimental manipulation of the system on the computer’. As a result of experimentation with a simulation model, inferences can be drawn about the modeled system. The main advantage of the simulation approach is that the information may be obtained about the system prior to implementation, thus enabling the system designers to pinpoint the risks and benefits of a proposed system. Wichman (1990)[14] developed an excellent methodology for implementing scheduling forecasting systems. He divided the approach into four different phases [14]: 1) Problem Analysis Define the objectives, analyze and understand the problem Define the production goal of the factory, and the criteria on how to best solve the production and scheduling tasks Develop conceptual models for the scheduling systems, its functionality, and the required data structures Describe the input and outputs and the general data requirements 2) Model Development Specify requirements to model functionality Model the implementation i.e. create SIMAN model, experiment, animation and user coded subroutines Pilot run and model validation 3) Experimentation, integration analysis and prototype development Establish experimentation plan Establish schedule objective- scheduling rule relationships for the specific system Establish and if possible formulate heuristic rules Implement the objective – rule relationship into the model and create a prototype with end user menus Test system prototype Page 14 4) Implementation, installation and training Tailor user interfaces and output reports Install system and train users Thus the authors provide an extensive framework for the development and implementation of a computer simulation scheduler, which can capture all the generalities of a real world system. KNOWLEDGE BASED APPROACH The fundamental characteristics of a knowledge-based approach are the manipulation of knowledge encoded about a particular domain of problem solving, say, scheduling [7]. This knowledge is, of course, acquired from experts in the field. There are three major approaches to expert system based solutions: rule based, pattern-directed and a combination of the two [7]. Atabaksh [16] provides a detailed survey of knowledge based scheduling system. DISTRIBUTED PROBLEM SOLVING APPROACH Distributed problem solving is the co-operative solution of problems by a set of decentralized and loosely connected intelligent problem solving agents. These agents are processors with local procedures, rules etc., that can be applied to the problem. They need to co-operate, as none of the agents possess information necessary to solve the global problem. Speed, reliability, extensibility and fault tolerance are some of the fundamental characteristics of distributed problem solvers [7]. For a survey of distributed problem solving techniques, see Decker [17]. Page 15 DRAWBACKS OF TRADITIONAL APPROACH The previous section describes some of the scheduling algorithms, which can be categorized as being part of the traditional approach scheduling. With the exception of discrete event simulation these approaches have failed to bridge the gap between the theory and practice of scheduling. The reason for this obvious lack of success can be attributed to their impracticability [5]. Hadavi (1987)[18] echoed his view by stating that analytical solutions which aim at optimal solutions, is feasible only for a small set of scheduling problems, namely those which assume highly idealized conditions and small number of jobs and machines. Hadavi (1987) pointed out that some of the highly idealized conditions required by these traditional methods are: Each machine resource is continuously available There is no rework Each operation can be performed by only one machine on the shop floor. These assumptions are not really valid in the context of modern manufacturing systems. Thus, in the pursuit of optimality, one could argue that reality is lost along the way [5]. Some of the disadvantages with traditional approaches are as follows Optimization algorithms The problems solved using algorithms are usually NP hard for instances larger then two jobs and two machines [5]. The time required to compute an optimal schedule increases exponentially with the size of the problem. Problems of larger size cannot be generally solved to optimality, even with computing power that far exceeds the capacities of modern super computers [5]. Heuristic solutions These approaches require skillful schedulers and vary from situation to situation. The feasibility of the solution depends entirely on the schedulers experience and judgment [5]. Enumeration Methods Page 16 This approach gives an optimal solution by complete evaluation of all schedules, if the problems are small. Otherwise it is sometimes too cumbersome as it involves extensive calculation due to large number of variables and constraints [5]. Discrete System simulation The experimental nature of simulation has its principal disadvantage. Simulation studies are difficult to generalize beyond the specific experimental setting employed and, as such contribute little to the theory of production scheduling. Using simulation to produce schedules is costly, both in computer time used to generate schedules and in human modeling effort required to design and run the simulation model. The accuracy of a simulation is limited by the judgment and the skill of a programmer and even highly accurate modeling does not guarantee that optimal solution or even good schedules will be found experimentally [1]. Knowledge based system Expert systems are expensive and time consuming to develop. The costs of developing expert schedulers tailored to specific production environments may well be prohibitive. Expert systems for reasonably sized problems may result in very slow computational speeds, the costs of using expert schedulers, therefore may also be prohibitive. Expert systems strive to automate decisions that are made by genuine human experts. To reach this goal, it is necessary to capture this high level of expertise of individuals currently involved in the solution of scheduling problems. Unfortunately, the quality of human performance in many scheduling tasks is suspect [1]. Page 17 CONCLUSION No single approach currently appears to offer the basis for a unified theory of production scheduling to bridge the gap between production scheduling theory and practice [1]. Future research efforts should be directed towards reducing this gap. One such opportunity lies in combining the traditional approach with knowledge based approach. In this framework heuristic solutions and AI search could be used to generate candidate schedules. The performance of the candidate schedule could be verified using simulation models, where the simulations could be manipulated interactively by an expert scheduler. Such a framework would wed the rich modeling aspects of simulation with solution-oriented techniques of heuristic solutions [1]. This paper is conclude by listing the essential characteristics of a good scheduling system [18]: It must be robust enough to handle exception and efficient in terms of meeting due dates and production costs. It must be able to use knowledge of constraints, preferences and current information about the environment during schedule generation. It must provide enough flexibility to react to disruptions in an efficient and timely manner. Scheduling decisions must be based on actual conditions in order to increase the efficiency of the system in real time. Page 18 BIBLIOGRAPHY [1] Rodammer, F.A., and White, K.P., ‘ A Recent Survey Of Production Scheduling’, IEEE Trans., 1988, SMC-18, (6), pp.841-851 [2] Michael Pinedo, ‘Scheduling: Theory, Algorithms, And Systems’, New Jersey, Prentice Hill (1995). [3] Morton, T.E., and Pentico, D.W., ‘Heuristics Scheduling Systems’, New York, John Wiley & Sons (1993). [4] Sipper, D. and Bulfin, R.L., ‘Production: Planning, Control, and Integration’, New York, McGraw Hill (1997). [5] Baver, A., Bowden, R., Browne, J., Duggan, J., and Lyons, G., ‘Shop Floor Control Systems: From Design To Implementation’, New York, Chapman & Hill (1991). [6] Graves, S.C., ‘A Review Of Production Scheduling’, Operat. Res., 1981, 29, (4), pp. 646-675 [7] Suresh, V., and Chaudhuri, D., ‘Dynamic Scheduling: A Survey Of Research’, International Journal Of Production Economics, 1993, 32, pp. 53-63. [8] Cunningham, P. and Browne, J., ‘ A LISP- Based Heuristic Scheduler For Automatic Insertion In Electronics Assembly’, International Journal Of Production Research, 1986, 24, (6), pp. 1395-1408. [9] Bellman, R., ‘Dynamic Programming’, New York, Princeton University Press (1957). [10] French, S., ‘Sequencing and Scheduling: An Introduction To The Mathematics Of The Job Shop’, West Sussex, Ellis Harwood Ltd., (1982). [11] Barr, A., Feigenbaum (eds), ‘The Handbook of Artificial Intelligence’, Vol1. MA, Addison-Welsey,(1981). [12] Blackstone, J.H., Phillips, D.T, Hogg, G.L.‘ A State-Of-The-Art Survey Of Dispatching Rules For Manufacturing Job Shop Operation’, International Journal of Production Research, 1982, 20, (1), pp. 27-45. [13] Conway, R.W., Maxwell, W.L., Miller, L.W., ‘Theory of Scheduling’, Mass, Addison-Wesley, (1967) Page 19 [14] Wichmam, K.E., ‘A Methodology For Development Of Simulation Based Production Schedule Generation Systems’, Proceedings of the 1990 Winter Simulation Conference, pp. 619-624. [15] Pritsker, A.B. ‘ An Introduction to Simulation and SLAM II’, System Publishing Corporation, West Lafayette, (1984). [16] Atabaksh, H., ‘ A Survey Of Constrained Based Scheduling Systems’, AI Eng., 1991, 6, pp. 58-73. [17] Decker, K.S., ‘Distributed Problem Solving Techniques: A Survey’, IEEE transactions, 1987, SMC, SMC 17, pp. 729-740 [18] Hadavi, K., ‘ An Integrated Planning and Scheduling Environment’, Proceedings of the conference on Artificial intelligence in manufacturing, Long Beach, California, Published by the Society of Manufacturing Engineers, (1987) Page 20