This paper presents an interactive model based system for the management of production in textile production systems focusing on the Master Production Scheduling problem. Because of the special characteristics of the industry, that is mainly the multi-phase process with multiple units per phase, different planning horizons and different production requirements for each phase, the scheduling of these systems becomes quite complex. Apart from a comprehensive presentation of the set of the modules the system is composed of, together with their interrelationships, the above characteristics are analyzed, and their impact on the production control system is explained. The system is also related to two well-known production control systems, namely MRP-II and Optimised Production Technology. The system’s attributes are presented with the aid of data structure diagrams, while the complete algorithm concerning the Master Production Scheduling module, in a pseudo-code form, and the corresponding part of the database are illustrated in the Appendix.
This paper presents an interactive model based system for the management of production in textile production systems focusing on the Master Production Scheduling problem. Because of the special characteristics of the industry, that is mainly the multi-phase process with multiple units per phase, different planning horizons and different production requirements for each phase, the scheduling of these systems becomes quite complex. Apart from a comprehensive presentation of the set of the modules the system is composed of, together with their interrelationships, the above characteristics are analyzed, and their impact on the production control system is explained. The system is also related to two well-known production control systems, namely MRP-II and Optimised Production Technology. The system’s attributes are presented with the aid of data structure diagrams, while the complete algorithm concerning the Master Production Scheduling module, in a pseudo-code form, and the corresponding part of the database are illustrated in the Appendix.
This paper presents an interactive model based system for the management of production in textile production systems focusing on the Master Production Scheduling problem. Because of the special characteristics of the industry, that is mainly the multi-phase process with multiple units per phase, different planning horizons and different production requirements for each phase, the scheduling of these systems becomes quite complex. Apart from a comprehensive presentation of the set of the modules the system is composed of, together with their interrelationships, the above characteristics are analyzed, and their impact on the production control system is explained. The system is also related to two well-known production control systems, namely MRP-II and Optimised Production Technology. The system’s attributes are presented with the aid of data structure diagrams, while the complete algorithm concerning the Master Production Scheduling module, in a pseudo-code form, and the corresponding part of the database are illustrated in the Appendix.
This paper presents an interactive model based system for the management of production in textile production systems focusing on the Master Production Scheduling problem. Because of the special characteristics of the industry, that is mainly the multi-phase process with multiple units per phase, different planning horizons and different production requirements for each phase, the scheduling of these systems becomes quite complex. Apart from a comprehensive presentation of the set of the modules the system is composed of, together with their interrelationships, the above characteristics are analyzed, and their impact on the production control system is explained. The system is also related to two well-known production control systems, namely MRP-II and Optimised Production Technology. The system’s attributes are presented with the aid of data structure diagrams, while the complete algorithm concerning the Master Production Scheduling module, in a pseudo-code form, and the corresponding part of the database are illustrated in the Appendix.
The paper describes an interactive model-based system for managing production in textile production systems, focusing on the Master Production Scheduling problem. It analyzes the impact of the industry's characteristics on production control.
Textile production systems typically involve a multi-phase manufacturing process with multiple production units per phase. They have mixed job-shop and flow-shop characteristics, sequence dependent operations, and different planning horizons and production characteristics for each phase.
The DSS focuses on a comprehensive description of the Master Production Scheduling (MPS) problem and presents all related production control processes. It takes into account the special characteristics of the textile industry.
Production planning and control in textile
industry: A case study
Nikos I. Karacapilidis GMD - German National Research Center for Information Technology, Artificial Intelligence Research Division, Schloss Birlinghoven, 53757 Sankt Augustin, Germany Costas P. Pappis Dept. of Industrial Management, University of Piraeus, 185 34 Piraeus, Greece This paper presents an interactive model based system for the management of production in textile production systems focusing on the Master Production Scheduling problem. Because of the special characteristics of the industry, that is mainly the multi-phase process with multiple units per phase, different planning horizons and different production requirements for each phase, the scheduling of these systems becomes quite complex. Apart from a comprehensive presentation of the set of the modules the system is composed of, together with their interrelationships, the above characteristics are analyzed, and their impact on the production control system is explained. The system is also related to two well-known production control systems, namely MRP-II and Optimised Production Technology. The systems attributes are presented with the aid of data structure diagrams, while the complete algorithm concerning the Master Production Scheduling module, in a pseudo-code form, and the corresponding part of the database are illustrated in the Appendix. Keywords: Master Production Scheduling, Decision Support Systems, Production Planning, MRP-II, Textile Industry. 1. Introduction Textile production systems form an interesting area for the study of scheduling problems. The industry has been developed following both vertical integration, particularly among spinning and weaving firms, and horizontal integration, promoted by the idea that a full line of textile products is necessary for effective marketing [1]. Such production systems comprise various page 2 production phases which are illustrated in Figure 1 together with the type of their output. Weaving consists of crossing a yarn, called the weft yarn, with several thousands of yarns composing the warp. Starching is a procedure that comprises synthesis and special treatment of some warps. Warp making is the arrangement of the warp yarns in parallel on a roll. Each yarn is taken from a bobbin which is put on a bobbin stand. This paper describes YFADI, an interactive Decision Support System (DSS) for the management of production in textile production systems. Focusing on a comprehensive description of the Master Production Scheduling (MPS) problem, all related production control processes are presented. The system differs from generic Production Management DSSs, in that it takes into account the special characteristics of the textile industry. These characteristics are discussed below: The textile industry imposes a variety of constraints concerning the integration of an overall scheduling procedure. Typically, a textile production unit is characterized by a multi-phase manufacturing process with multiple production units per phase (i.e., parallel machines). The mixed character of a textile production system, which lies between job-shop and flow-shop, makes production management quite complex. In addition, there are sequence dependent operations, and different planning horizons and production characteristics for each phase. Consequently, different production planning algorithms for each phase are required. For example, the weaving process is characterized by long planning horizons and relatively slow speed of machines, very long setup times, very large production batches, and mixed order and stock-based production. On the contrary, the warp making process is characterized by short planning horizons and high speed of machines, short setup times, small production batches and only orders-based production. The above phases pose the most complex production scheduling problems. Additional special characteristics of the textile industry, that have been taken into account in the development of the YFADI production control system, are the following: Most textile companies are ageing while the technology changes rapidly. These companies own machines of different ages and production characteristics, such as processing speed, changeover possibilities and facilities, etc.
The changeover (i.e., setup) times of the machines is dependent on the sequence of jobs on the machines. Usually, there are two types of changeover times in the weaving phase, the total and the partial ones, depending on the types of two clothes being processed in sequence. Partial changeover times take place between two successive related jobs and are much smaller than the total ones, which refer to unrelated jobs (see Appendix for the definition of relation between jobs). Minimization of the total setup times is among the most significant objectives in the scheduling of a textile industrial unit. Throughout the set of phases, jobs can be splitted and processed in parallel. Nevertheless, job splitting has to be weighed up with the advantageous results, mainly in terms of quality of constant processing of a particular job in the same machine. Simultaneous setting up of the weaving machines which have been charged with the parallel processing of a particular job should be avoided. It is worth mentioning that the setting-up of a weaving machine usually requires more than two workers, while only one worker can attend to the normal operation of about 10 of them. Textile production systems may be treated as a succession of local problems, one per each production phase. The coherence of these local problems should be taken into account by material requirements planning or just-in-time approaches [2]. The rest of the paper is organized as follows: A literature review is given in the next section. The system architecture is presented in Section 3; the set of modules the system is composed of and their coordination are also discussed. The MPS problem and the related algorithms that have been developed for the system are comprehensively described in Section 4 (a pseudo-code form of these algorithms, and the corresponding part of the database are illustrated in the Appendix), together with an application example. The relation of YFADI with two well-established production control systems, MRP-II and Optimised Production Technology (OPT), is illustrated in Section 5. Finally, concluding remarks are given in Section 6. 2. Literature review Production/operations management has been the focus of a wide literature covering all aspects of planning and control of industrial processes [3-7]. Most of the related work has been based on mathematical analysis and traditional Operational Research methodology. The advent of the information technology has given rise to new approaches based on direct involvement and interaction of the user when applying respective decision aids in the form of software tools. Thus, in recent years, a lot of work has been done in the area of Decision Support and Knowledge Based Management Support systems with applications in the scheduling of medium and large scale Make-To-Stock (MTS) page 4 and Make-To-Order (MTO) companies [8-12]. Most of the research in the area has certainly been aimed at the first category. This is due to the fact that systems developed for MTS environments are usually reckoned to be also applicable to the MTO ones. Differences in the requirements between the two categories are extensively presented in [13], focusing on the application areas of production scheduling, capacity control and setting of delivery dates, and discussing the issue whether the available research can meet the needs of the MTO sector. However, the distinction made in [13] between the above two categories of companies is sharp. As argued above, this is not the case in textile production systems. DICTUM is an interactive model-based decision support system, worth mentioning for the analysis and synthesis of large-scale industrial systems [14, 15]. The system has been developed in order to primarily meet the needs of chemical production systems. Besides elements such as an information system consisting of data banks and database management systems, it also includes a flexible model generating system for formulating system models, a simulation and multicriteria optimization system for evaluation of consumed resources, a sophisticated user interface and modules for report generation. It is argued that DICTUM is applicable for any complex system characterized by linear input-output relations. In addition to the development of decision support systems, various expert systems have been also developed for production scheduling and planning (see for example [16]). Studies on the evaluation of these approaches reveal that they have been developed mainly to perform certain scheduling/planning functions just as good as humans do, with considerably greater speed and less human effort [17]. These systems can generally demonstrate greater consistency, which is certainly a worthy objective. However, in order to be really helpful in real production applications, they must have the ability to adjust to new problem environments and improve their knowledge state. In order to implement advanced systems in the area, key factors seem to be the ability of enumerating alternatives before changing the problem description, and the successful employment of embedded algorithmic knowledge. Classical OR approaches have a lot to contribute to this last point (see for example [18]). Some of the special problems of the textile industry discussed above have been addressed by specialized algorithms, based on graph theory [2]. However, they strictly distinguish MTO and MTS environments, and are not applicable to a hybrid case. In addition, their application to a multi-phase production line is not reported. As it is made clear in [2], these algorithms allow sequencing of jobs in the machines only if the jobs succession characteristics are not complex, and are rather inefficient in terms of computation time and data size. In order to reduce the complexity of the scheduling problem, multi-phase production systems are often decomposed in separate production units, and different types of control are introduced [19, 20]. For example, [19] distinguishes between goodsflow and production unit control, which concern planning and control decisions on the factory and the production unit level, respectively. Co-ordination of the production process, through the production units mentioned above, is the basic problem in these systems; it may refer to different production phases, specific types of jobs, inventory levels, etc. page 5 Work on the development of an on-line environment for the manager in the textile industry has been reported in [21, 22]. Again, it addresses only one phase of the production line, namely, the weaving phase. In this work, previous methods of work allocation in weaving have been investigated and improvements are suggested. The main motivation behind the development of such an environment is that a computer simulation of the weave room operations can lead to an efficient real-time decision making system. 3. The YFADI DSS YFADI, meaning weft in the Greek language, is a decision support system that has been developed for the production planning and scheduling of a Greek textile industrial plant. In its first release it covers the operations of warp making, starching and weaving (the shaded area in Figure 1), but a future release will cover all the production phases of the industry, that is, from yarn spinning to the final sewing of clothes. Its main objective is to provide the manager with efficient production management tools, applicable to the multi-phase production of a variety of products. The alternative production plans, provided by the system, help the user to make decisions about the production rates for each product [23-25]. YFADI is characterized by: Openness: The system has been developed taking into consideration the characteristics of the textile industry, with its mixed manufacturing type of process, and the variety of the type of the final product (clothe, textile or warp). Several textile enterprises have been contacted, and the related users requirements have been identified before the application of the system to the specific textile enterprise. It was among our main objectives during the development of the system to keep it open for further applications and extensions. This has been achieved via the proper identification of the objects involved (e.g. machines, products, shifts, setups, personnel, planning horizons etc.) and the appropriate design of both the Database and the Model Based Management System described explicitly in the sequel. Special attention has been also paid to the modelling of the multi-phase production. Rapid and efficient data interchange in order to cope with frequent changes in production schedules and the remoteness of the sites where the various operations often take place. User-friendliness: Keeping in mind that the textile industry in Europe mainly consists of small and medium size enterprises and employ mostly persons with limited computer education, the system requires limited, in time and cost, training of them. The software of the system consists of three parts: the Database Management System (DBMS), the Model Based Management System (MBMS) and the User Interface. The commercially available Oracle RDBMS has been used in our implementation. Its main advantages, in comparison with a third generation language, are the easiness of model development, the modular design and page 6 implementation, interoperability within the widely applied operation systems (i.e., DOS, UNIX, etc.), the unlimited number of records, the possibility of definition of variable length fields that results in lower system memory requirements, and the encouraging results of previous systems developed on it. The MBMS has been developed by the research team involved in the project and includes all the algorithms and models needed. It is written in mixed C and SQL programming languages, with the aid of Pro*C tool of Oracle RDBMS. The system requires CPU capable of supporting Oracle (i.e., IBM 80386, HP, VAX, etc.). The User Interface, in the first release, has been designed using exclusively Oracle tools. Furthermore, YFADI may either be a stand-alone system or consist of a server connected via a network (Ethernet has been selected) with simple terminals, depending on the needs of the specific user enterprise. In order to better analyze the user needs and coherently develop the system, the MBMS was partitioned into the following eight modules (see Figure 2 illustrating the backbone of their interdependencies), interrelated via the Oracle DBMS: Forecasting Orders Processing Aggregate Production Planning Master Production Scheduling Material Requirements Planning Inventory Control Purchasing Work in Progress. page 7 Master Production Scheduling Aggregate Production Planning Material Requirement Planning Forecasting Orders Processing Inventory Control Work In Progress Purchasing Database Figure 2: The modules of the YFADI Decision Support System. In particular, the Forecasting module makes the short, medium and long term forecasts and measures their accuracy. Historical sales data, branch sales, bids results, the time horizon of the forecasts and some experts' forecasts compose the inputs to the module. Multiple regression analysis, extrapolative forecasting and an adaptive Holt-Winters forecasting are the methods employed. The module produces reports containing forecasts, comparative results and graphics for the short, medium and long term forecasts. The module can be used as a stand-alone decision support system. The outputs produced are stored in the database and are input to the Aggregate Production Planning module. Forecasting is particularly important in the textile industry, due to its long planning horizons. The Orders Processing (OP) module integrates the customers' orders in a well-structured form in order to facilitate the follow-up by the manager. Retrieval of orders of a certain customer or a certain kind of product during a certain period and presentation of the related reports are easily obtained, due to the design of the database. The manager may alter the policy of the company concerning a certain customer or product by considering these reports. The module provides input to the Aggregate Production Planning module. The Aggregate Production Planning (APP) module deals with the middle-range production planning problem of the enterprise, with the objective of meeting a varying pattern of demand over a page 8 horizon of 3 to 15 months. More specifically, the managerial decisions involved in the problem concern the specification of aggregate production rates, and work force and inventory levels for each period within the above planning horizon. The decisions taken refer to overtime, work subcontracted, number of shifts, inventory levels, and production rates. The modules inputs originate from the Forecasting module and refer to demand estimated for each period of the planning horizon (usually, per month); the OP module and refer to existing orders; the Inventory Control module and refer to the existing (on-order, in-progress and available) level of inventories and the consequent make-to- stock demand; the Database and refer to each products requirements and the status of the production environment (i.e., availability of machines, number of working days, etc.). As described in the sequel (Section 3), the module is strongly interrelated with the MPS module. Alternative aggregate plans for the satisfaction of the total demand are produced and evaluated in the APP module, considering cost data for overtime, subcontracting, inventory holding and delay of orders. The best scenario is suggested, the criterion being the total cost minimization. Outputs of the module are the Aggregate Production Plans (usually per month, but the user can adjust the related parameter), the Personnel Employment Program, the Machine Utilization Program and various spreadsheets concerning inventory and subcontracting status. The cumulation of demand for various products in a total demand has to be performed using a common unit of measurement. For the textile industry, the machine-hour is the most appropriate planning unit. In other words, all quantities of demand, either estimated for each period of the planning horizon or originated in the existing orders, have to be converted and expressed in machine hours. The critical capacity at the APP level is decided upon the number of the available machine-hours. Overtime production and subcontracting are quite common options in the textile industry. The Material Requirement Planning (MRP) module is aimed at the efficient scheduling of the requirements of raw materials and intermediate products, in order for the necessary quantities to be available in the right time. Operation Sheets and Bills of Materials are employed. The module is closely collaborating with the MPS module as it is made clear in the next section. Using a backward procedure, the MRP module defines the requirements in intermediate products and, finally, in raw materials in order to fulfil the production schedules. By aggregating the material requirements for each production order, MRP derives analytical schedules of what is needed (both quantities and due dates). The main inputs of the module are: the Production Schedules produced by MPS; the Bills of Materials, that are available in the Database and, the available stocks that are provided by the Inventory Control module. The MRP module also collaborates with the Inventory Control and Purchasing modules providing information concerning quantities of materials already available and ordered, respectively. The Inventory Control (IC) module deals with the management of the inventory of each product. Attention is given both to MTS and MTO products. Safety stocks, re-order points and economic order quantities (EOQ) are determined and the size of lots for batch production is evaluated. The module is updated about the reserved inventory by the MPS, and calculates the page 9 actual inventory status by obtaining daily (or, periodically, upon users wish) data from the Work in Progress and Purchasing modules. The main outputs here are spreadsheets concerning the safety stocks, re-order points, EOQs for the made-to-stock products, available inventories of raw materials and finished products, in-progress and on-order inventories. Such reports can be easily classified per kind of product, supplier, size, quality requirements, place of storage, usage, date of entry, availability, etc. The Purchasing module deals with the evaluation of alternative schedules for the supply of the necessary materials, considering various cost elements and quality requirements. The module is fed with data from the MRP, concerning the scheduled materials requirements; the IC module, concerning the available stocks and the Database, concerning costs and lead times for alternative suppliers. The module specifies the best placement of orders. Algorithms have been developed for the appraisal of various suppliers, combined with possible quantity discounts. After the orders have been placed, the module monitors their progress. Every time an order arrives, the IC module is updated. Reports about orders in progress, orders received or delayed, and order cost and quantity are some of those produced by the module. The Work in Progress module, based on data on the current production situation concerning each work centre, reports on the progress regarding the implementation of schedules. The module receives information about the production status of each work center and the progress of each order, and compares them with the scheduled ones (usually on a daily basis). As a next step, the IC and the MPS modules are informed about the actual production situation and any eventual deviations. The user may alter previous production schedules, through the MPS module, taking these deviations into account. Two main reports are available: one about the progress of the orders and another about the progress of each work center (including machines and personnel). Aggregated data are also produced, concerning deviations for long term production periods, aiming at adjusting the corresponding parameters of the MPS module, in order for the latter to be more effective in the future. 4. The Master Production Scheduling module The MPS module is at the core of the MBMS. For a predefined time horizon, usually between 3 and 6 months, it helps the manager to determine the exact quantities to be daily produced and the corresponding jobs sequencing and machine loading. As mentioned above, the variety in the form of customers' orders (clothes, textiles or warps) and the multitude of phases in the textile industry make scheduling not an easy task. Figure 3 illustrates the scheduling procedure implemented in our system. It refers to the weaving, starching and warp making phases. page 10 Priorities and Scheduling Policies Specification System orders for starched warp Production orders for weaving MPS Weaving MRP Weaving Customer orders for starched warp MPS Starched Warp Making System orders for unstarched warp Customer orders for unstarched warp Priorities and Scheduling Policies Specification MRP Starched Warp Making MRP Unstarched Warp Making MPS Unstarched Warp Making Priorities and Scheduling Policies Specification Figure 3: Flow chart for scheduling in YFADI DSS. page 11 The customers' orders concerning textiles requiring weaving, from the OP module, and the corresponding estimates for the demand, from the Forecasting module, are cumulated into production orders for weaving. These orders feed the MPS module, where the scheduling of the above phases takes place. The module primarily takes into account the available capacity determined by the APP module. The user may specify the desired capacity levels and preferences about the set of orders. He can also consider alternative scenaria, produced by the MPS module, and relate them to the available capacity, determined by the APP module for different policies regarding subcontracting, number of shifts, etc. The production orders are converted into purchasing orders corresponding to the requirements for yarn, both for warp and weft, via the MRP module. More explicitly, in each phase the MPS procedure produces a schedule that feeds the MRP module, which in turn, feeds the MPS module of the previous, according to the sequence of phases a clothe is constructed, phase. Working first in a backwards scheduling way the scheduling procedure starts from the weaving phase. After retrieving the set of the orders concerning weaving from the database, the system interacts with the user in order to define priorities of the jobs, the scheduling policy and the rules of sequencing (Figure 4). As described in the Appendix, the allowable values for the status of a job are: Scheduled but not in-progress; Unscheduled; In-progress, and Finished. Priorities and Scheduling Policies Specification A. Consider: 1. Only the unscheduled jobs 2. Every job that its processing has not started yet B. Priorities specification to be made: 1. By the user 2. By the system C. For the jobs with the same priority consider as tie-braker: 1. Their due date 2. Their release date 1 2 1 Figure 4: Specification of priorities and scheduling policies. page 12 The system asks the user to specify whether he wishes to schedule only the unscheduled jobs, i.e., jobs that are considered for scheduling for the first time, or both scheduled but not in-progress and unscheduled ones. In the latter case, the system may reconsider previous decisions, concerning scheduled jobs, in order to produce more preferable job sequences. The user may either specify priorities, indicating preferential treatment of some customers, or consider all the jobs having a common priority index. The priority of each job is considered as the most significant criterion in job sequencing. For the jobs with the same priority index the tie-breaker can be selected between the due date (Earliest Due Date rule) and the release date of the job (FIFO rule). 4.1. An example We first illustrate the scheduling procedure by an application example. Let A.10.023.00 be the job code of a job requiring weaving of 70,000 meters of a particular clothe with due date June 25, 1996. The system retrieves from the database three related jobs that are either already scheduled or in-progress. The corresponding machines are the WM1, WM4 and WM10 and the information retrieved is shown in Figure 5a. Note that, in this case, job setup stands for partial changeover times since the jobs are related. The maximum production volume that each machine can produce until the due date of the job under consideration (that is, for the period between the date that the machine is available and the due date) is calculated (see Figure 5b). The algorithm takes both setup and transportation times into account. In our example, the total quantity that may successively be scheduled to the related jobs is 65,900 meters and, therefore, 4,100 meters remain unscheduled. The system identifies from the database the machines that can process the job A.10.023.00, and retrieves the appropriate data (Figure 5c). WM3 and WM5 are the only candidate machines and their maximum production volume is also calculated (Figure 5d). WM3 is selected by the system for the production of the remaining 4,100 meters, as it can produce the maximum volume. The set of decisions (i.e., production orders) concerning the scheduling of the job are demonstrated in Figure 6a. As one can see, the finish times of three out of four job parts coincide. A basic constraint in our case study was that no more than two job parts were allowed to finish on the same day (in order to avoid co-occurring changeover times). This is achieved by the application of the schedule improvement procedure, which produces the outputs illustrated in Figure 6b. page 13 job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM1 300 10 3 23/06/94 12:00 WM4 200 10 4 21/06/94 17:00 WM10 250 8 3 18/06/94 09:00 machine code job process job setup job trans. time machine available job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM3 200 20 4 22/06/94 12:00 WM5 300 25 4 23/06/94 12:00 machine code job process job setup job trans. time machine available (a) (c) job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM1 35 300 10,500 WM4 77 200 15,400 WM10 160 250 40,000 machine code slack time job process production volume scheduled qty (b) unscheduled qty 65,900 4,100 job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM3 48 200 9,600 WM5 19 300 5,700 machine code slack time job process production volume scheduled qty (d) unscheduled qty 65,900 4,100 qty(m), job process(m/hr), job setup(hrs), job transportation time (hrs), slack time (hrs), production volume (m). Figure 5: Example data for the scheduling of the weaving phase. job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM1 23/06/96 12:00 25/06/96 12:00 10,500 WM3 20/06/96 12:00 22/06/96 09:00 4,100 WM4 21/06/96 17:00 25/06/96 12:00 15,400 WM10 18/06/96 09:00 25/06/96 12:00 40,000 machine code start time finish time production volume (a) before schedule improvement procedure qty(m), production volume (m). job code: A.10.023.00 qty: 70,000 due date: 25/06/96 WM1 23/06/96 12:00 25/06/96 12:00 10,500 WM3 20/06/96 12:00 23/06/96 15:00 10,100 WM4 21/06/96 17:00 25/06/96 12:00 15,400 WM10 18/06/96 09:00 24/06/96 12:00 34,000 machine code start time finish time production volume (b) after schedule improvement procedure Figure 6: Example data for the schedule improvement procedure. page 14 Figure 7 summarizes the results of the scheduling of the starching phase for the last production order in the weaving phase (concerning WM10). Since the maximum length of the warp in WM10 is 10,000 meters the required number of starched rolls is 4. The machine does not require all of them simultaneously, thus four jobs, corresponding to four starched rolls of 8,500 meters each, are created. These jobs have then to be scheduled in the starching machine. Finally, Figure 8 gives an example of the creation of the appropriate jobs in the warp making phase. In our case, the maximum allowable number of cones was 672. Thus, for the production of a warp consisting of 6,476 threads, six rolls of 648 threads each plus four rolls of 647 threads each have to be scheduled in the warp making machines. The length of each roll from the warp making phase is equal to the length of the roll required in the starching machine. Note that the due date of all ten rolls of the warp making machines is equal to the start date of the corresponding job in the starching machine. In this case, job setup and transportation times are considered to be very small and, consequently, negligible. 1 18/06/96 09:00 2 20/06/96 06:00 3 21/06/96 16:00 4 23/06/96 02:00 machine code start time finish time production volume qty(m), production volume (m), max warp(m), job process(m/hr), roll length (m). WM10 18/06/96 09:00 24/06/96 12:00 34,000 Part No. due date jobs created: max warp: 10,000 job process: 250 number of rolls: 4 roll length: 8,500 Figure 7: Example data for the scheduling of the starching phase. warp density: 6,476 maximum allowable number of cones: 672 number of rolls from the warp making machines: 10 starching job start date: 10/06/96 15:00 warp making jobs due date: 10/06/96 15:00 Figure 8: Example data for the scheduling of the warp making phase. page 15 4.2. Schedule procedure The MPS module of the system tries to consecutively schedule related jobs in order to achieve minimization of the sum of their changeover times. Jobs belonging to the same category have identical relationship indices and require only partial changeover times, while jobs from different categories require total changeover times, between their consecutive processing. The current status of the database is traced in order to retrieve the relationship indices of both in-progress and scheduled jobs, and the corresponding machines that these jobs have been already allocated to (WM1, WM4, and WM10 in the example above). For each machine in which a job J has been scheduled or is in- progress, the production volume for the period between the scheduled finish time of J and the due date of the job the system considers for scheduling is calculated. Additionally, the unscheduled jobs are grouped according to their relationship indices. The consecutive scheduling of jobs in each of these sets is cost effective, but may lead to violations of customers requirements (i.e., due dates). This can be balanced through interactions with the customers (influencing the OP and APP modules) before finalizing the production plans. The algorithms for the minimization of the changeover times are analytically described in Step 4 of the MPS procedure in the Appendix. The machine loading is done in such a way that the number of the machines required is minimized, while the current due dates requests are attained. After the above matching procedure of jobs, some parts of them may have not been scheduled yet. This case was made clear with the example above. In this case, the set of machines capable to process the job is considered and the unscheduled part is scheduled following the machine loading procedure for the non-related jobs (Step 6 in the Appendix). The machine loading of the non- related jobs, for which there are no related jobs in-progress or scheduled, is quite similar with the above procedure. The basic difference is that, in this case, job setup stands for the total changeover time. Because of the large changeover times during the weaving phase, avoiding too many set-ups during the same day is a special requirement in the textile industry. In our case study, no more than two changeovers during the same day were allowed. The schedule improvement procedure takes the schedule determined so far as input and, by reallocating work loads among the appropriate machines, leads to a schedule that conforms with the above constraint (see Figure 6b for the example above). The corresponding algorithm is analytically presented in Step 7 of the MPS procedure in the Appendix. As made clear in the introduction, a weaving machine is fed by rolls of starched warps and the necessary weft, that crosses the yarns of the warp. Due to the fact that the machine does not require all the rolls simultaneously, a warp scheduling procedure has been developed in order to specify a schedule for feeding the weaving machines. This schedule will be translated into job orders for the starching and the warp making phases. The maximum allowable length of a warp (10,000 meters page 16 for the WM10 in the example above) is defined according to the dimensions of the roll that a weaving machine may accommodate and the kind of the associated yarn. The part of the database concerning orders for starched warp is fed with both the orders derived from the requirements of the weaving machines and the (usual) customer orders. In our case, due to the horizontal integration of the enterprise, jobs defined by the warp scheduling procedure are characterized by maximum priority. Consequently, during the scheduling of the starching and warp making machines, jobs that have been ordered by the customers are less favoured than the ones determined by the above procedure. The scheduling of the starching phase is done taking into account the priority of the jobs, primarily, and the jobs due date, secondarily (see again Figure 7 in the example above). Each warp making machine is characterized by a maximum allowable number of cones (or bobbins) of yarn in its corresponding bobbin stand. The jobs concerning warp making are characterized by a variable called warp density, that is the number of the threads in a warp, and by the maximum number of cones (6,476 and 672, respectively, in the example above). A special procedure has been developed for the specification of the feeding of the starching machine. This is essential for the minimization of the setup times. As in the case between the phases of weaving and starching, the part of the system database concerning orders for unstarched warp is fed with orders derived from the requirements of the starching machine (which keep the same priority index that they had in the starching phase) and usual customer orders. The starching machine processes the rolls produced by the warp making machines in parallel. Thus, the due date of all jobs in a warp making machine that correspond to a job J in the starching machine, is set equal to the estimated start date of J (10/06/96 15:00 in the example above). Finally, due to the fact that, in our case, each job for unstarched warp can be processed at a specific warp making machine, the scheduling of these jobs is done similarly to those of the starching phase (the system is able to consider the general case though). As it has been made clear from the above, the MPS and MRP modules in YFADI are tightly interrelated (see Figure 3). We should mention here that the distinction between them as two separate modules is only conceptual. The only motivation for that is the adoption of the MRP concept as a "standard" procedure, independently of the type of the production system. 5. Relation to MRP-II and OPT production control systems This section aims at providing an overview of the relation of YFADI DSS with the production scheduling concepts of two well-known computerized production control systems, MRP-II (Manufacturing Resources Planning) [26, 27] and OPT (Optimised Production Technology) [26-29]. Their architecture is illustrated in Figures 9 and 10, respectively. page 17 Business plan Production plan Master Production Schedule Material Requirements Planning Capacity Requirements Planning Aggregate Capacity Planning Shop Floor Purchasing Distribution Common Database Forecasts Demands Bills of materials Lead times Workcentre capacities Labour Routings Sufficient capacity ? Figure 9: Schematic of MRP-II (from [26]). Integrated Bill Of Materials and Routing File Minimum Tranfer Batch Sizes Rough-cut capacity check to determine bottleneck resources Detailed finite forward schedule of bottleneck and post-bottleneck resources Backschedule pre-bottleneck resources Order Completion Dates Brain of OPT Lead Times Figure 10: Schematic of OPT system (from [26]). page 18 MRP-II systems generally use backward scheduling. OPT, on the other hand, uses a combination of forward and backward scheduling techniques (Figure 11). Non-critical pre-bottleneck operations of an order are backscheduled, from the scheduled start time of the bottleneck operation, using a procedure similar to MRP-II. YFADI makes no distinction between critical and non critical resources. Its scheduling technique is primarily based on a backward scheduling technique, since the due dates of the jobs are taken into account. Following the scheduling procedure dictated by the special characteristics of the industry, after the specification of the work loads in each machine, a forward scheduling technique is adopted, taking the earliest date that each machine is available into account. This kind of iterations between backward and forward scheduling, combined with the interactions of APP and MPS modules discussed above, help the user to consider alternative scenaria and, consequently, to refine his plans and make the final decisions. MRP-II systems do not take capacity constraints into account when processing the requirements from the master schedule. Thus, it is quite possible that the capacity requirements exceed capacity availability on a resource for some periods of time. It may be possible to increase capacity in some way by employing more people, buying new machines or subcontracting, but in the short term this may not be possible. In this case MRP-II usually attempts to replan the master schedule to ensure that there are no capacity overloads. This process is often described as loading to infinite capacity or as capacity requirements planning. OPT, on the other hand, deals with this problem by avoiding the scheduling of resources other than bottlenecks. In a finite loading procedure capacity is given and the schedule is treated as a variable. YFADI, in its first version, has been specifically designed for a textile industrial unit, the policy of which is to accept every customer order because subcontracting is easily available and quite profitable. This may be interpreted as scheduling with infinite capacity. As discussed in the previous section, the MPS module of YFADI schedules considering finite capacity, as it has been determined via the APP module. However, what has been adopted in our implementation is that all orders are primarily considered for a draft production plan from the MPS module. Successive interactions of the latter with the APP module refine the final plans, incorporating adjustments of the number of machines in operation and/or work shifts for a specific period, as well as about the volume to be produced by subcontractors. At this point, YFADI works similarly to MRP-II systems. The OPT system, via its Brain module, comprises a non-interactive algorithm that determines process batch sizes, production sequences and buffer stocks for the critical resources, based on their capacity limitations, to maximize throughput. On the contrary, the scheduling procedure of YFADI interacts with the user in order to specify priorities and scheduling policies at each production phase. YFADI also avoids the two main criticisms that OPT faces so far. The first is that OPT relies on the existence of a fairly well defined bottleneck for its principles to be valid. In many plants the bottleneck is not clearly defined, and manufacturing contingencies may cause it to wander within the timescale of an OPT schedule. The second objection is concerned with the tightness of the OPT schedules, which must be precisely adhered to if the plan is to retain its integrity, and make little page 19 allowance for any random interruptions. OPT gives no guidance on schedule recovery. These disadvantage does not exist in YFADI, because the schedules produced by it are not tight. The system enables the user to interact at various points, in order to achieve fine tuning of schedules. The user may simulate what-if questions and create alternative selections. Additionally, the Work in Progress module has been designed in order to report the progress regarding the implementation of schedules. The user may consider possible deviations from goals, and rerun the remaining plan through the MPS and APP modules. YFADI makes, as in OPT, an implicit distinction between transfer and process lot sizes, allowing both of them to be variable. This is described in the scheduling procedure of the weaving machines, where not all the starched rolls are required simultaneously, as well as in the scheduling procedure of the starching machine, where the complete set of the corresponding unstarched rolls from the warp making machines has to be provided before the starching procedure starts. Another specific characteristic of YFADI is the way that its MPS and MRP modules operate and collaborate. Due mainly to the special characteristics of the industry, the analysis of the components of the final product, i.e., the clothe in our case, that have to be produced by the enterprise is effected through the MPS module following a capacitated scheduling procedure. Further analysis of the requirements of a clothe in terms of requirements for starched rolls, and of the latter in terms of requirements for unstarched rolls of warp, are typical examples of such a cooperation. MRP in YFADI uses the same bill of materials structure as in the MRP-II and OPT systems. Generally speaking, the scheduling procedure in YFADI has been developed being oriented to the textile industry and, therefore, is superior to other, general purpose, systems in the way that it treats the existing specific characteristics mentioned above. Backward scheduling Assembly Backward scheduling Forward scheduling Component 1 Component 2 Work Centres Bottleneck Figure 11: Scheduling in OPT (from [27]). page 20 6. Conclusion The objective of this paper has been to present work done on designing a DSS for the production management in the textile industry. After a short discussion of the model based management system, the paper gives a comprehensive analysis and synthesis of the MPS procedure in such an environment. This procedure has been developed by taking into account the specific features of the industry as well as some particular methods and heuristics that management adopts. A particular example has been presented, which covers most of the scheduling parameters. Finally, the system has been related to two well-known production management systems, MRP-II and OPT. YFADI has been developed aiming at inventory reduction, increased productivity, improved customer service and control of the business in a textile industrial unit. The phases covered (weaving, starching and warp making) are the most difficult ones in terms of scheduling. The system has been integrated in a structured form, oriented by the textile manufacturing process phases. Two particular features of YFADI are that: a production order can be splitted up into a set of jobs which are then assigned to multiple parallel machines; all customer orders are accepted and the available capacity is adapted accordingly, basically due to the ease of subcontracting. Both features may characterise production units in the textile and other industries as well. The system is certainly applicable to them, and especially to those characterized by multi-phase production environments, such as the chemical industry. Implementation issues such as the interrelations of its modules, the existence of multiple machines per phase, various planning horizons and production requirements, can be adapted to any characteristic and/or scheduling policy of such a company. There are two basic reasons that advocate it. First, the coordination of the systems modules through the aid of the database; Oracle plays a central role here, supporting a proper modular design and implementation environment. Secondly, the object-oriented approach during the implementation of the system; the set of objects identified and used for the specific case study can be easily modified in order to cover the needs of a similar firm. Acknowledgements: The authors thank the anonymous referees for their useful suggestions and comments on the structure and contents of earlier versions of this paper. page 21 References [1] R.P. Olsen, The Textile Industry: An Industry Analysis Approach to Operations Management, Lexington Books, Toronto, 1978. [2] A. Guinet, "Textile Production Systems: a Succession of non-identical parallel processor shops", Journal of the Operational Research Society, Vol.42, No 8, 1991, pp. 655-671. [3] E.S. Buffa and R.K. Sarin, Modern Production/Operations Management, John Wiley and Sons, New York, 1987. [4] K.N. Dervitsiotis, Operations Management, Mc Graw-Hill, New York, 1981. [5] M.A.H. Dempster, J.K. Lenstra and A.H.G. Rinnoy Kan, Deterministic and Stochastic Scheduling, D. Reidel Publ. Co., London, 1982. [6] C.C. Holt, F. Modigliani, J.F. Muth and H.A. Simon, Planning Production, Inventories and Work Force, Prentice-Hall, Englewood Cliffs, N.J., 1960. [7] S. French, Sequencing and Scheduling, Ellis Horwood, New York, 1982. [8] G. Doukidis, Fr. Land and G. Miller (eds.), Knowledge Based Management Support Systems, John Wiley and Sons, 1989. [9] V. Lotfi and C.C. Pegels, Decision Support Systems for Production and Operations Management, Irwin, Homewood, Ill, 1986. [10] T.E. Morton and D.W. Pentico, Heuristic Scheduling Systems, John Wiley and Sons, New York, 1993. [11] T.E. Vollmann, W.L. Berry and D.C. Whybark, Manufacturing Planning and Control Systems, Irwin, Homewood, 1988. [12] D.E. Brown and W.T. Scherer (eds), Intelligent Scheduling Systems, Kluwer Academic Publ., London, 1995. page 22 [13] L.C. Henry and B.G. Kingsman, Production Planning Systems and their applicability to make-to-order companies, European Journal of Operational Research, Vol. 40, 1989, pp. 1-15. [14] A. Barnikow, U. Behrendt, K. Hartmann and M. Scharni, "DICTUM: Decision Support System for analysis and synthesis of large-scale industrial systems. Part I: Components", Computers in Industry, Vol.18, 1992, pp. 135-144. [15] L. Dietzsch, U. Kroeller and K. Hartmann, "DICTUM: Decision Support System for analysis and synthesis of large-scale industrial systems. Part II: Databases and industrial applications", Computers in Industry, Vol.18, 1992, pp. 145-153. [16] M.S. Fox and S.F. Smith, ISIS - A knowledge-based system for factory scheduling, Expert Systems, Vol.1, No 1, 1984, pp. 25-49. [17] J.J. Kanet and H.H. Adelsberger, Expert systems in production scheduling, European Journal of Operational Research, Vol. 29, 1987, pp. 51-59. [18] R.M. OKeefe, V. Belton and T. Ball, Experiences with Using Expert Systems in O.R., Journal of the Operational Research Society, Vol.37, No 7, 1986, pp. 657-668. [19] J.W.M. Bertrand, J.C. Wortmann and J. Wijngaard, Production Control: A Structural and Design Oriented Approach, Elsevier Science Publishers B.V., Amsterdam, 1990. [20] V.S. Tanaev, Y.N. Sotskov and V.A. Strusevich (eds), Scheduling Theory: Multistage Systems, Kluwer Academic Publ., London, 1994. [21] S. Jayaraman and R. Malhotra, "Weave room of the future. Part I: Team approach to operations - A simulation study", Textile Research Journal, April 1989, pp. 237-243. [22] S. Jayaraman and R. Malhotra, "Weave room of the future. Part II: Monitored data for real time resource allocation", Textile Research Journal, May 1989, pp. 271-274. [23] N.I. Karacapilidis, C.P. Pappis, S.N. Pantazopoulos and G. Adamopoulos, Designing a DSS for production planning and scheduling in the textile industry in J.Janssen and C.H.Skiadas eds Applied Stochastic Models and Data Analysis, World Scientific, 1993, pp. 466-477. [24] N.I. Karacapilidis, Scheduling and control of job-shop production systems, Ph.D. thesis, Dept. of Mechanical Engineering, University of Patras, Greece, 1993. page 23 [25] G. Adamopoulos, N.I. Karacapilidis, and S.N. Pantazopoulos, "Production management in the textile industry using the "YFADI" decision support system", Computers and Chemical Engineering, Vol. 18S., 1994, pp. 577-583; also in Proceedings of ESCAPE-3/European Symposium on Computer Aided Process Engineering, Graz, Austria, July 5-7, 1993. [26] R. Kerr, Knowledge-Based Manufacturing Management: Applications of Artificial Intelligence to the effective management of manufacturing companies, Addison-Wesley, New York, 1991. [27] C.C. New and G.R. Clark, Production Planning and Control with MRP and OPT in R.Wild ed., International Handbook of Production and Operations Management, Cassell Educational, London, 1989. [28] S.C. Aggarwal, MRP, JIT, OPT, FMS? Making sense of production operations systems, Harvard Business Review, Vol. 63, Sep/Oct. 1985, pp. 8-16. [29] L.J. Krajewski and L.P. Ritzman, Operations Management: Strategy and Analysis, Addison- Wesley, Menlo Park, CA, 1987. page 24 Appendix 1. The system database The database of the MPS module is composed of the following tables: (i) The table mpsjobs, with the fields: job_code The code of a job; it is of alphanumeric type. product_code The code of the specific product; it is of alphanumeric type and characterizes the operation type (i.e., weaving, starching or warp making). qty The quantity of the specific job (in meters). job_in The date, on which the order related to the specific job was received. job_dd The due date of the job. job_start_date The date, on which the processing of the specific job has been scheduled to start. job_end_date The date, on which the processing of the specific job has been scheduled to be completed. priority The priority index of the job; it is of numeric type. job_status The status of a job; the allowable values are: S (scheduled, but not in- progress), U (unscheduled), I (in-progress) and F (finished). relation A number indicating the related jobs, that is jobs that the scheduler wishes to be processed (mainly during weaving) consecutively in order to minimize the setup time. All related jobs are assigned the same number. (ii) The table job_machine, which relates the jobs to the various processing centers (i.e., machines capable to process the specific job). It consists of the fields: job_code As above. machine_code The code of a machine capable to process the specific job. Usually, there are more than one records with the same job_code indicating the alternative processing abilities of the system. It is of alphanumeric type and characterizes the type of the machine with the first two letters (i.e., WE for weaving machine, ST for starching machine and WA for warp making machine). job_setup The setup time for the specific job and the specific machine (in hours). It is used when the previous job processed at the specific machine has not the same relation with the specific job. page 25 job_setup_rel The setup time for the specific job and the specific machine (in hours) when the previous job processed at the specific machine has the same relation with the specific job. job_process The speed of the machine ("picks" or meters per hour). It varies depending on the machine and the kind of the product. job_trans The transportation time of a job from the specific processing center to the next one. prod It indicates the quantity of the specific product that can be produced at the specific machine for the time interval between the date that it is free and the due date of the job. (iii) The table machine_status, with the fields: machine_code As above. status The status of the machine. Allowed values are B (busy), F (free), O (out of order) and M (maintenance). product_code As above. In the case that the field status is F, it is assigned null. job_code As above. start_mach_stat The date that the specific status starts. end_mach_stat The date that the specific status ends. 2. The MPS procedure This section describes the MPS module of the system, in pseudocode. It should be noted that the first version of YFADI covers the operations of weaving, starching and warp making. Step 1: Retrieve all orders concerning weaving from database. Step 2: Define: - priorities of the jobs - jobs to be scheduled, (i.e., only unscheduled jobs or both scheduled, but not in progress, and unscheduled jobs) - rules of sequencing (i.e., due date or FIFO). Step 3: For every job with code job_code, quantity qty and relationship index relation find from tables machine_status and mpsjobs (i) machine_code and page 26 (ii) job_code, with identical relationship index and job_status='S' (scheduled) or job_status='I' (in progress), grouped by machine_code and job_code. Step 4: For all related jobs and the corresponding machines: find machine_code, job_code, max(end_mach_stat). From the job_machine table find: (i) job_process; (ii) job_setup_rel, and (iii) job_trans. Compute slack=(job_dd of job to be scheduled)-(job_trans)- -(job_setup_rel)-(max(end_mach_stat)); prod=(job_process)*slack. Find the machine with the maximum prod. If prod qty: { compute the necessary time for the production of qty; update the tables machine_status and mpsjobs } else { schedule prod in this machine; set qty=qty-prod; continue as above with the machine that is able to produce the maximum but one prod; update the tables machine_status and mpsjobs }. Step 5: Proceed as in Step 3, for non-related jobs. Step 6: Compute rest, that is the part of the job that possibly has not been scheduled yet. For all jobs and the corresponding machines, i.e., those that are capable of producing them, Find machine_code, job_code, max(end_mach_stat). From the table job_machine find: (i) job_process; (ii) job_setup, and (iii) job_trans. Compute: avail=(job_dd of job to be scheduled)-(job_trans)- page 27 -(job_setup)-(max(end_mach_stat); prod=(job_process)*avail. Find the machine with the maximum prod. If prod rest: compute the necessary time for the production of rest else { schedule prod in this machine; continue as above but with rest=rest-prod and the next machine, i.e., that is capable of producing the maximum but one prod }. Update the tables machine_status and mpsjobs. Step 7: For every job scheduled for weaving: Find from the tables machine_status and job_machine: (i) job_process; (ii) end_mach_stat, and (iii) machine_code. Set the above records in descending order in respect to end_mach_stat . Let: maxend the maximum end_mach_stat, and proc the corresponding job_process. Find: (i) the minimum end_mach_stat, minend; (ii) its machine_code, machmin, and (iii) its job_process, minproc. If (maxend-minend) > 1, and until there are no more than 2 identical end_mach_stat /* The avoidance of more than two identical end_mach_stat guarantees that there will not appear more than two changes of warps in the weaving machines at the same day, which is a basic constraint because of the large setup times during that operation. */ { For the machine corresponding to maxend, set end_mach_stat = end_mach_stat - 1. For the machine corresponding to minend, setend_mach_stat=end_mach_stat + ceil(proc/minproc) } /* The function ceil(x) produces the next integer which is greater than x. */ Update the tables machine_status and mpsjobs. Step 8: For all jobs concerning weaving { for every machine scheduled to process it page 28 { find (i) job_start_date; (ii) qty; (iii) max_warp, and (iv) job_process. /* The max_warp is a variable indicating the maximum allowable length of a warp and it is defined according to the dimensions of the roll that a weaving machine may accept and the kind of the yarn. Thus, this variable defines the jobs concerning starching and warp making, since a weaving machine does not require all rolls simultaneously. */ Compute: numb = ceil(qty/max_warp); posot = qty/numb. For k=1 to knumb, with step 1 { create records concerning starching in the table mpsjobs, with qty = posot; job_status = 'U'; if k=1 then job_dd = job_start_date else job_dd = job_start_date + +(k-1)(posot/job_process)/24 + job_trans, + job_setup; job_pr=0 }. /* The jobs created in this Step are characterized by job_pr=0, since they are of maximum priority. Consequently, the jobs concerning warp making and starching that have been ordered from the various customers are characterized by job_pr greater than zero. A variable x/24 is used for the addition of hours to a date type (DD/MM/YY HH:MI, i.e., day/month/year hour:minute) variable. */ } }. Step 9: Define: - priorities of the jobs on the starching machine; - jobs to be scheduled on the starching machine (see Step 2). Step 10: Order jobs concerning starching by: first key the job_pr (increasing), and second key the job_dd (increasing). From the table machine_status find the maximum end_mach_stat, let free, of the starching machine, where status = 'B'. /* The maximum end_mach_stat, where status = 'B', is identical with the date that the machine is free. */ page 29 For every job { update tables mpsjobs and machine_status with { job_start_date = free; job_end_date=free+(job_setup+(qty/job_process)+job_trans)/24; job_status = 'S' } set free = free+(job_setup+(qty/job_process)+job_trans)/24 }. Step 11: For all jobs concerning starching { find (i) job_start_date; (ii) qty; (iii) warp_dens, and (iv) job_process. Compute number = ceil(warp_dens/numcone); /* The field numcone indicates the maximum allowable number of cones of yarn in a warp making machine. In this application, numcone=672. */ amount = ceil(warp_dens/number); /* The jobs concerning warp making are defined by warp_dens, that is the number of the threads at a warp, and by numcone. For example, for a warp consisting of 6,476 threads and if numcone=672, the manager has to schedule 6 rolls with 648 threads and 4 rolls with 647 threads for the warp making machines. This is essential for the minimization of the setup times of the above machines. */ ol = amount * number; dif = ol - warp_dens. For k=1 to kdif, with step 1 { create records concerning warp making in the table mpsjobs, with: qty = qty of the corresponding starching job; job_status = 'U'; job_dd = job_start_date of the corresponding starching job; job_pr = job_pr of the corresponding starching job, and numthreads = amount-1 }. /* The field numthreads indicates the number of threads in a roll of a warp making machine. */ For m=1 to mnumber-dif, with step 1 { create records concerning warp making in the table mpsjobs, with: qty = qty of the corresponding starching job; job_status = 'U'; job_dd = job_start_date of the corresponding starching job; page 30 job_pr = job_pr of the corresponding starching job, and numthreads = amount } }. /* Since the starching machine processes the rolls of the warp making machines in parallel, the due date of a job in a warp making machine is the job_start_date of the corresponding starching job.*/ Step 12: Keeping in mind that the table job_machine has only one record for each job concerning warp making, that is, each job is processed at only one warp making machine, the scheduling of these jobs is similar with those concerning starching (Step 10). page 31 Nikos I. Karacapilidis is currently a post-doctoral Research Associate at the Artificial Intelligence Research Division of GMD (German National Research Center for Information Technology). He holds a B.Sc. degree in Computer Engineering (1989) and a Ph.D. in Operational Research (1993), both from the University of Patras, Greece. He has also worked as a post-doctoral Research Assistant at the Dept. of Electronic Engineering, Queen Mary & Westfield College, University of London (1993-94). His research interests include the topics of Collaborative Group Decision Making Systems, Distributed and Constraint-Based Planning and Scheduling, Mediation and Argumentation Systems, and applications of Planning/Scheduling combining AI and OR techniques. He has published papers in international scientific journals (Computers in Industry, Decision Support Systems, Journal of Operational Research Society, Computers and Chemical Engineering, International Transactions in Operational Research, Fuzzy Sets and Systems) and conference proceedings. Costas P. Pappis is currently an Associate Professor of Production / Operations Management at the University of Piraeus, Greece. He holds a BS degree in Production Engineering from the Technical University of Athens, a Diploma in Management Studies from the Polytechnic of Central London and a Ph.D. in Engineering from the University of London. He has worked as an operations analyst, as an Engineer in the Technical Services of the National Bank of Greece and as Director of the Offsets Department of the Ministry of National Economy of Greece. He is Vice-President of the European Association of OR Societies (EURO), and of the Hellenic OR Society. He has published papers in IEEE Systems, Man and Cybernetics, European Journal of Operational Research, Fuzzy Sets and Systems, Journal of Operational Research Society, Decision Support Systems, Computers in Industry, International Transactions in Operational Research and Engineering Cost and Production Economics.