The content of an industrial optimization problem includes the technical issues of optimization and the practical issue of forming the operational problem into an optimization problem. Naturally, a successful resolution requires competency with regard to the technical issues; however, the major requirement is an understanding of the underlying operations. The application of linear programming to the loom planning process in the textile industry provides an illustration.
Looms are the machines used to weave cloth, which is sold for a profit. However, looms can be set up to weave various kinds of cloth, each with its own profit structure and customer demand. The heart of the problem (in the late 1970s) lay in deciding what mix of products to make with a general goal of improving profits. The caveats were what made the problem interesting. For instance, profits might be sacrificed to retain long term market share and while forecast and actual future (booked orders) demand (and prices) varied from month to month, overly radical shifts in the mix would not be permitted. Further, the software and hardware of the time were definitely not designed for interaction with managers: the glass cage and lab-coated computer servants were a reality; external terminals were available, but not ubiquitous; and the IBM linear programming software was designed to be operated only by an expert. Despite these impediments, the task of manually creating a loom plan each month was formidable and the potential for improvement looked large enough to investigate computer-based optimization.
The key to appreciating the solution is the same as the key to creating the solution - understanding the operations to be modeled. Four elements of the problem are described: the manufacturing operations, the business operations, the planning process, and the technical constraints.
Looms use yarn in two ways, as warp yarn and as fill yarn. Warp yarn runs the length of the fabric being produced and each yarn (or "end") should ideally be as about long as the piece of cloth to be produced. (Knots produce flaws and are to be avoided). Fill yarn ends run across the width of the fabric. Different styles of cloth are produced by using different types of yarn and by changing the weaving pattern (the sequence of under and over crossings of the warp and the fill). Fabric may be woven using pre-dyed yarn or undyed yarn. There are several different types of looms, each with its own characteristics, such as speed of weaving and styles of fabric that it can produce. Most looms use one or more warp beams (large metal spools about two to three yards along the length of the barrel and about a yard in diameter upon which the warp ends have been wound). Each loom choice has advantages and disadvantages; however, for planning purposes, the number of the types and the numbers of each type are fixed: looms are expensive. Large textile firms generally have multiple mills with weaving capacity, usually in different towns.
In addition to the weaving process itself, there are preparation processes that are impacted by choices of loom plans. The proper types and amounts of yarn must be available at the correct times. For example, at the time of this project, warp yarn was needed three weeks prior to its turn at the loom, while fill yarn was only required one week prior to weaving. The basic reason was the extra yarn preparation needed for warp yarn. Warp yarn to be run on beam looms had to be beamed, requiring processing time. Further, warp yarn has to be stronger than fill yarn because of the mechanical stresses it undergoes in weaving and some yarns need a coating (called slashing or an alternative process called single end sizing) in various solutions designed to keep it from snagging the fill. This process also requires time. These preparation processes are generally designed to have higher capacity than the weaving capacity to prevent bottlenecks caused by these lower value added processes. However, a particular preparation process might not be available at the mill in which a particular style was to be woven, requiring transportation between preparation and weaving. Additionally, some mills had idle capacity that could be added by calling in extra workers, if the demand continued for a sufficient length of time.
Theoretically, a set of looms can be run so as to divide their production into any specified fraction among the feasible products. Practically, the production plan must be divided into discrete units. The reasons may be collected as change costs, although actually collecting the change costs may be more effort than is worthwhile. Among the costs are loss of production time while changing the loom set up and loss of production time in the preparation steps and the finishing steps (after the fabric has been produced) because of inconveniently short runs. Short runs can be made and were made for special situations; however, too many special situations require more labor than otherwise and may require more in the way of physical facilities than is available. For example, the number of warp beams owned by the firm, or present at a given plant, was finite.
Another practical operational constraint was balancing production among the mills. Because many mills had similar capabilities and similar variable costs, an optimal solution might result in one mill running full in one month at the expense of other mills, with a reversed situation in the following month. Such a situation would incur excessive change costs and would also be hard on workers, who prefer consistent pay checks. Some loss in potential variable margin would be acceptable to produce a balanced schedule.
Textile firms, like firms in other businesses, vary in their integration of operations. Frequently this means that some products are sold directly to the end user, others are sold to distributors or other marketers, and others are sold to firms who process the goods further before selling into the marketing chain. Some of the fabrics are sold directly after weaving and others undergo various additional (finishing) processes, such as dyeing. Generally, the fabrics that are sold furthest along the chain, with the most additional processing, often command the largest profit on a per yard basis. A simple maximization on profit may overlook the additional investment in resources and processing time and the additional risks involved in producing these goods, resulting in decisions that would be tantamount to getting out of the simpler businesses.
The firm in question was internally divided into businesses, such as women's wear, men's wear, and the dress business. Each business had its own business manager who was responsible for running the business at a profit. Naturally, each business manager would be concerned with running his fabrics at the mill with the lowest costs and obtaining a maximum amount of fabric to sell.
The Planning Process and the Goals of the Planner
Different textile businesses may choose to organize the management of weaving differently. This particular firm used a central planning function and a distributed scheduling function. The purpose of the planning function was to decide how much of each style ought to be made at each mill, based on firm orders, semi-firm "programs," forecast orders, forecast prices and margins, known capacities, and any other relevant business information. The loom plan (and preparation plans) were the tools for communicating these decisions. The loom plan consisted of a list of fabric styles and the numbers of each type loom assigned to those styles for each mill and each month through the planning horizon (roughly a year). The purpose of the scheduling function was to implement the plans as nearly as possible, considering available looms (looms don't "run out" precisely on schedule), available parts (e.g., multiple types of beams that only fit certain loom types), shipping anomalies, numbers of workers, and other real life problems. Thus, excessive precision in the loom plan was meaningless, as it could not be made to happen. Nevertheless, in broad terms some loom plans were clearly better than others, both in terms of feasibility and in terms of profitability.
The loom planner's goal was to satisfy three sets of people: top management who wanted to maximize variable margin; internal business managers who wanted to maximize their access to production; and mill managers who wanted balanced plans and uncomplicated, feasible schedules. In slack times, there would be insufficient demand to fully load the mills and balancing production might be the operative activity; however, in good times, not all of the proposed yardage could be manufactured and deciding how much of the forecast yardage would not be made would be the operative activity.
The manual loom planning process involved producing plans with pencil and paper and manually checking all the constraints. For example, the yards to be produced of a given style was calculated by multiplying the numbers of looms of each type at each mill (assigned to that style) times the production standards (for loom type, mill, and style). The total yards for a style should equal the total desired yards and the total assignments for each mill should be feasible. The conversion of the loom plan into preparation plans and yarn needs was also tedious and subject to error. Further, decisions on what styles to short involved calculations of margins and balancing, margins, business needs, and the fact that all of the fabric that had been sold must be made. Practically, this meant that simple mathematical errors were possible and some constraint checks might be omitted by error. The tendency was to make only marginal changes, if possible, because doing so reduced the checking that was required.
Constraints on Human Readable Linear Program (LP) Inputs and Outputs
At the time this system was implemented, the LP package that was available on the IBM mainframe had severe size limits on the names of variables. The number of variables in this problem and the amount of information that was needed to identify each variable to a human made direct use of the LP variables impossible; variable name coding was required. In fact, two levels of coding were required. One level consisted of meaningful initials and was used to allow input data and output data to fit into 80 column (card image size) and 132 column (print page size) limits. This coding scheme was meaningful to the planners but would require interpretation for business and manufacturing personnel. The second level of coding was arbitrary, sequencing the first level of coding and producing variable names such as "132" (representing the 132nd variable), in order to fit the LP naming constraints. This level of coding would need interpretation before presentation to the planners operating the system because the identity of variable "132" would change as the number of variables changed.
The planning and scheduling processes were manual and there were no written descriptions of the processes. Discovering just what the planning process was took time. The time was spent in discussing the process with the planners and schedulers, visiting the mills to observe the machinery, and rechecking the understanding of the process as it developed. The division of the overall process between the planners and the schedulers had evolved over time and, generally, worked. However, it was conceivable that a different division should be instituted.
The solution to the problem of improving the loom planning process evolved over time. It was clear at the beginning of the problem definition stage that a computer could handle the mathematics of multiplying and adding that was involved in checking whatever constraints involved in designing a good loom plan. It was not clear what solution techniques were most appropriate. Today a spreadsheet model would be an obvious candidate; however, PCs and spreadsheets had not yet been invented. The most technically desirable candidate was mathematical optimization. However, the questions of what constraints should be included, whether the computer had the power to handle the problem in sufficient complexity, whether the solution could be applied on a regular basis by non-mathematicians, and whether the solution would be sufficiently improved to be worth the cost (in time and effort) needed resolution.
Once the problem was well defined, it was determined that the best way to answer the questions about mathematical optimization was to build a prototype system and try it. Some answers became clear immediately: the computer could handle the optimization for a single month (or perhaps a couple of connected months); however, it could not handle the entire forecast horizon as a single LP. The problem had to be divided into independent LPs for each month and manually smoothed. Encapsulating software was written to hide the intricacies of the LP and interpret the results into the language of industry. The answer to the worth of the approach could only be answered after usage of the system.
The nominal objective was to maximize the variable margin dollar value of the fabric to be woven in each of the months in the forecast horizon, subject to various constraints. Rather than requiring the loom planner to understand the mechanics of the IBM LP system, a preprocessor was created to handle this chore. Using a screen editor, the planner created four files (updated from the previous month's set): the available number of looms by type and month, the fabric style/loom standards (production rates and variable cost by type loom and mill), the forecast quantities and prices by style and month, and the quantities already sold with prices. Figure 1 illustrates the computer flows. The preprocessor output the coding values for the fabric styles, the input data for the LP program (in the required format), and the LP control statements.
Figure 1. A preprocessor converts the loom planner's description of the problem into the proper format for the IBM LP system.
The LP control statements were automatically fed to the LP compiler as shown in Figure 2, which produced the actual Loom LP. The Loom LP automatically ran, using the LP input data, producing the LP output data.
Figure 2. The process flow creates and solves the loom planner's LP, producing LP output data.
The LP output data were not intelligible to the loom planner and required a postprocessor to create useful information. As shown in Figure 3, the postprocessor program required the original input data and the file of style coding values to convert the LP output data into information comprehensible to the loom planner. The previous month's (multi-month) loom plan was also input to allow comparison of the previous plan to the new results. Reports were output, as well as a new (multi-month) loom plan.
Figure 3. The results of the Loom LP are converted to useful reports by the postprocessor.
There were also practical requirements for loom plans that were more trouble than they were worth to code into the LP constraints. Among these requirements were estimates of how many loom changes could be accommodated in a month and from one month to the next (which depended on the number of personnel scheduled to work and the particular mill's current efficiency). Similarly, the precision of output generated by the Loom LP surpassed the ability of the operation to deliver. Therefore, the loom planner had to modify the loom plan, as shown in Figure 4. These modifications were checked by the preparation program to ensure feasibility was maintained. The preparation program also converted the desired fabric yardages into plans for the preparation mills and yarn requirements for the yarn mills. Although it is not shown, the loom planner also had the option of modifying the original set of forecasts and constraints and rerunning the entire system if the results were too badly out of synchronization with business needs.
Figure 4. The Loom LP's loom plan is manually reviewed and modified by the loom planner. The loom plan is then exploded into preparation and yarn requirements by the preparation program.
No industrial operations research project is successful unless its results are used by the customer. This optimization system was used for at least seven years following its development. The keys to its use were the facts that the system was easier for the loom planner to use than the previous, manual system of developing loom plans and that the resulting loom plans were significantly better than those developed manually. For the loom planner better included:
The fact that the manual modifications destroyed any claims to mathematical optimality was unimportant. No loom plan could be expected to be exactly implemented in the mills. Too many variables and unexpected occurrences at the detailed scheduling level were omitted at the planning level for exact compliance to be possible.
This illustration of optimization in the textile industry recounts work done in the late 1970's. As was mentioned in the description, computer technology has changed in the intervening years. It would be natural to question the relevance of this illustration to today's problems.
The precise nature of the solution would be different. There are more LP systems available, some with better user interfaces than others, coupling the translation of textile terminology to optimizer terminology more closely. Computer power now admits mixed integer programming solutions. Certainly a mainframe could handle the entire forecast horizon as a single problem, today. Perhaps it could even be done on a PC. Thus, the problem that was posed to the optimizer could be closer to the real problem today than it was yesterday.
On the other hand, despite the rapidity of change in the computer industry, the mechanical, human, and business problems in manufacturing have changed more slowly. For example, until an operation is completely automated, the abilities and desires of the human operators must continue as factors in planning and running the operation, sometimes even more critical factors as the numbers are reduced and individual's schedules become significant. Thus, the precise nature of scheduling looms might differ from that described here; yet, the types of constraints and the fact that some constraints are addressed by the computer and some must be addressed afterward by the loom planner would remain. For, when all is said and done, the real problem, very often, can only be approximated by a mathematical problem. And after the mathematical problem has been solved, that solution is only an aid to solving the real problem.
If you arrived here using a keyword shortcut, you may use your browser's "back" key to return to the keyword distribution page.
Return to Hartley's Projects Page