Method for resource allocation for the manufacture of a product
This is a continuation-in-part of Ser. No. 737,145 filed May 23, 1985, and now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention is directed to a control system for a complete manufacturing system for small-order-quantity, complex goods. The control system of this invention has the capability of rapid information processing and display, minimization of manufacturing cycle time, efficient allocation of resources, and minimized excess costs. 
     Although the invention has general application to a wide range of manufacturing systems, it will be illustratively described with specific reference to the manufacture of gearboxes. 
     In the manufacture of small-order-quantity, complex goods such as gearboxes, the work effort is a sequence of machining and assembly operations. The proper control of these operations is as important to the efficient transformation of the raw steel into the finished gearbox as each machining operation itself. Just as an improvement in the cutting method of the gears can produce faster, lower-cost production, an improvement in the control of manufacturing operations can produce a similar reduction in total cost and the elapsed time of production. 
     For example, in U.S. Pat. No. 3,703,725, the method of control uses a computer to balance work flow rates in a manufacturing process. In U.S. Pat. No. 3,845,286, a control system sequences semi-conductor wafers through a number of work stations. In U.S. Pat. No. 4,027,246, a central computer controls the transfer and processing of semi-conductor wafers. Although these inventions teach a means for manufacturing control, and an improvement in efficiency, they do not teach a means to maximize manufacturing efficiency and thereby minimize manufacturing costs. 
     In the manufacture of complex, small-order-quantity goods, the costs of idle waiting time, penalties due to late delivery, unjustified expediting costs, and excessive inventories must be minimized. 
     One system that has addressed this problem is the critical path method (CPM), in which a network of activities is created that shows the sequence of operations and the interdependencies of the particular manufacturing process. A variation of this basic method is PERT (Project Evaluation and Review Technique) which uses multiple estimates to provide a probabilistic output. These systems are frequently computerized and searched to find the critical item; i.e., the item that is, in effect, the latest, and which determines the final completion date. 
     The major problem with these systems is that critical items must be searched serially; each requiring a computer run, at a considerable expense in large projects. Further, for every change in the availability date of any item, the impact on the final completion date can only be assessed by another computer run. In general, these systems do not provide an easy and timely visability into the critical items and their degree of impact. Also, these systems do not offer a means to balance resources in order to minimize the costs of the project. 
     OBJECTIVES OF THE INVENTION 
     One object of this invention is to provide a control system for small-order-quantity manufacturing that provides a means to search the manufacturing process in parallel for critical items and to order those items by their degree of criticality. Another object is to provide a control system for product manufacture that provides real-time responses to inquiries about the impact of changes in the availability of an item. Another object is to provide a manufacturing control system that establishes a method of allocating resources to provide the optimal distribution of those resources. Another object is to provide a means to monitor the progress of a manufacturing operation. 
     SUMMARY OF THE INVENTION 
     This manufacturing control system establishes a network of manufacturing activities, assigns time duration estimates to each activity, and establishes baseline schedule dates for the start and completion of each activity. This baseline schedule data set is then used as a constant reference against which all supporting external component availabilities and actual progress is measured. The principle control variable is a measure of the deviation from the baseline data set and is called slack. This slack variable is used to determine the projected final completion date, allocate resources, and order queues. 
    
    
     A BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a typical network of events and activities that describe the manufacture of a product. 
     FIG. 2 shows a schematic of the control system for external components. 
     FIG. 3 shows a schematic of the control system for internal operations. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     To facilitate the description of the invention, it is worthwhile to define some conventions solely for this purpose. These conventions are somewhat arbitrary and should not be construed as limiting to the generality of the invention. For the purpose of this description: 
     (a) Time is measured in working days 
     (b) Each working day is assigned a sequential number called the &#34;date&#34; representing calendar date or point in time; the number increases with later calendar dates. 
     (c) Slack is defined as the requirement date minus the availability date; therefore, if the requirement date is later in time (a higher number) than the availability date (a lower number) the slack is positive. 
     (d) Least slack is defined in the algebraic sense, meaning the most negative amount; e.g., negative 6 (-6) is less than positive 4 (+4). 
     The product that is manufactured in the preferred embodiment of the control system invention is mechanical gearboxes. This control system invention is applicable to an enormous range of manufactured products and the use of gearboxes in this embodiment should not be construed as limiting. 
     In FIG. 1, in the manufacture of gearboxes, particularly those of small-order-quantity, produced on a job-shop rather than a continuous assembly line basis, the time-consuming manufacturing operations such as gear cutting, gear hobbing, gear grinding, etc., may be defined as activities, 1, 2, 3, 4, 5, and each one identified by the letter &#34;A&#34; and a numerical suffix; e.g., &#34;A1&#34;, A2&#34;, A3&#34;. At the beginning and end of each activity, 1, 2, 3, 4, 5, there exists a condition of state which occurs at a moment in time and which are defined as events 6, 7, 8, 9, 10, 11; e.g., &#34;Activity A1 completed, Activity A2 ready to begin&#34;. Events, 6, 7, 8, 9, 10, 11, are identified by the letter &#34;E&#34; and a numeric suffix; e.g., &#34;E1&#34;, &#34;E2&#34;, &#34;E3&#34;. 
     FIG. 1 shows network of activities, 1, 2, 3, 4, 5, and events, 6, 7, 8, 9, 10, 11, flowing from left to right. The interconnecting arrows show the direction of time and material flow and the independencies between activities, 1, 2, 3, 4, 5, and events, 6, 7, 8, 9, 10, 11. For example, Activity A5, 5, cannot begin until event E3, 8, as occurred, which is &#34;Activity A2 complete, Activity A4 complete, Activity A5 ready to begin&#34;. Within each activity block, 1, 2, 3, 4, 5, has also been added the estimated time duration of the activity. This estimate includes time waiting in queue, machine time, and time to transport to the next workstation. The foregoing parallels the Critical Path Method (CPM) of network analysis. A network such as that in FIG. 1 is generated for all the manufacturing steps that are to be controlled by the subject invention. Typically, this is done by the production control personnel and will include all of the manufacturing steps (such as gear cutting, gear hobbing, gear grinding) for all the components required in the complete assembly. The production control personnel will also identify the purchased material required at each event, 6, 7, 8, 9, 10, 11, to support the next activity, 1, 2, 3, 4, 5; e.g., gear blanks, gear case castings, fasteners, bearings, paint, etc. This identification task is the same as that normally performed by the production control personnel in many existing manual systems of control. 
     The next step is the assignment of dates to each event. The desired final completion date is assigned to the final completion event, E6, 11 in FIG. 1. In this example, &#34;day 215&#34; is used. The remaining events are assigned their dates by moving from right to left (backward with respect to time) and subtracting the time duration estimate of the intervening activity from the prior determined date. For example, the date for E3, 8, equals the date for E6, 11, less the duration of A5, 5; i.e., day 209 equals day 215 less 6 days. The result shown in FIG. 1 is the baseline schedule. This step may be performed manually or automatically on a digital computer. 
     The network shown in FIG. 1 has no slack (or waiting) time within the flow. Therefore, the time duration between any two points on any path through the network will be equal to the sum of the time durations of the activities included in the subject path. this is a major difference with the Critical Path Method (CPM) and with PERT, both of which typically have embedded slack time in their networks. 
     The information from the baseline schedule in the form of each event and its associated schedule date is loaded via a terminal, 13, into memory field A,14, in the control computer, 12, in FIG. 2. 
     At this point it is beneficial to describe the control system in two parts: the first being the control of external components and the second (to be described later) being the control of internal operations. An external component is an item that has not entered the network yet. 
     The information prepared by the production control personnel linking each required external component with an event is loaded via a terminal 13 into memory field B, 15, in the control computer, 12. Each external component is assigned a unique number for identification purposes. The estimated availability date for each external component is loaded via a terminal, 13, into memory field C,16, in the central computer, 12. Using pre-programmed instructions, the external slack calculator, 17, in the control computer, 12, serially retrieves each external component and its associated event from memory field B, 15, retrieves the baseline schedule date associated with that event from memory field A, 14, and retrieves the external component&#39;s availability date from memory field C, 16. The external slack calculator, 17, then subtracts the availability date from the baseline schedule date and defines the result as the &#34;external slack variable&#34; for that external component. The external slack variable associated with each external component, its event, baseline schedule date, and availability date are transmitted and stored in memory field D, 18, in the control computer, 12. 
     When the external slack variable for each of external components has been calculated and stored, the control computer, 12, prints out the collected and calculated data from memory field D, 18, on printer 19. An example printout is simulated in Table 1. Column 1 is the identification number of each external component. Column 2 is the first event at which the external component is required. At all subsequent events, it is an internal item and controlled by a method to be explained later. Column 3 is the baseline schedule date associated with the event in Column 2. Column 4 is the availability date associated with the external component in Column 1. Column 5 is the external slack variable which is equal to the date in Column 3 minus the date in Column 4. The last columns are a graphical representation of the slack variable in Column 5. 
     The final completion date will be determined by the external component that has the least slack value and by an amount equal to that component&#39;s slack value. In the Table 1 example, external component 91005 will pace the final completion date since it has the least slack value of -2. External component 91005 has the most late availability with respect to its baseline schedule date. The final completion date will be two days late (-2 days of slack) due to this component. Using this control system, the critical component and the component&#39;s impact on final completion date are immediately determined. In order to improve the final completion date, only resources concentrated on the critical component (91005) will have an impact on the final completion date. The rest of the components will not have any effect on the final completion date as long as their slack values are not the least. Therefore, the slack values of the non-critical components can decrease within this limitation without producing any schedule impact. When management personnel review the information shown in Table 1, they can readily determine the impact of each external component upon the final completion date and they can predict the final completion date based on the item with the least slack. If this slack is negative, the final completion will be late. Management personnel must determine if the lateness and the degree of lateness are acceptable, and, if not, what degree of lateness is acceptable. This is translated into a slack value; e.g., negative one (-1), and is called the &#34;project external slack&#34;. This management decision process, 23, is shown in FIG. 2. This information is transmitted via terminal, 13, to memory field D, 18, in the control computer, 12. 
     This is the value that all external component slack variables will be measured against. Any external component, with a slack variable less than the project external slack variable must have its slack increased to be at lease equal to the project external slack value. This can be done by improving the component&#39;s availability date or rescheduling its requirement data to be later in time. Then a subroutine, 24, in the control computer, 12, searches memory field D, 18, and identifies the external components with slack variables less than the project external slack. These components are critical and their availabilities must be improved by the allocation of additional resources so that their new slack variables are greater to or equal to the project external slack variable. 
     The external project slack value and the critical components listing are transmitted to production control personnel, via a terminal, 13, with the instruction to concentrate on improving the availabilities on the listed items in order to satisfy the project external slack value. As availability dates are revised, they are transmitted via terminal, 13, by production control personnel to memory field C, 16, in the control computer, 12. The external slack calculator, 17, will calculate the new slack variable and update memory field D, 18, and periodically present the results to management personnel via a printer, 19, for reconsideration of the project external slack variable decision, 23. 
     Since these functions are so simple and straightforward, the control computer, 12, can quickly determine the new external slack variable based on a component&#39;s new availability, compare it to the project external slack, determine its criticality and respond to the production control personnel via the terminal, 13, within a few seconds. This allows the production control personnel to take immediate action if the subject component is reported critical. 
     The second portion of the control system controls the internal operations. After an external component enters the system, its progress through the network is monitored at each work station and it is termed an internal component. When an activity is complete, the internal component is sent to its next activity. When it arrives at the next activity workstation, it is checked against the list of components (internal and external) required for the next activity. When all of the necessary components have arrived at the workstation, they are placed at the end of the work queue, and the event preceeding the activity that is to take place at the workstation is considered to have occurred. As shown in FIG. 3, at least once per day, all events that have occurred in the queue for each workstation are identified and transmitted via a computer terminal, 13, to memory field E, 20, in the control computer, 12, along with the present date. For each event, the event slack calculator, 21, in the control computer, 12, retrieves the schedule date for its event from memory field A, 14, (previously loaded for external components), and calculates the internal slack variable which is equal to the schedule date minus the present date. The internal slack calculator then arranges the events for each workstation in the order of increasing slack and transmits this listing to the terminal, 13, for the subject workstation. The workstation personnel can now order the queue with respect to increasing slack from the list. Therefore, those events with the least slack (and therefore most critical) are at the head of the queue. The event slack calculator also directs the event slack to memory field F, 22, where is accumulated and at least one per day printed on the printer, 19, for review by management personnel. 
     Management personnel have received the external slack information and the event slack information from the control computer, 12. The final completion date will be determined by the external components or events with the least slack. Management personnel may allocate additional resources to improve the slack of the critical and near critical external components or internal events (by expediting activities to minimize their durations). The cost of these additional resources must be justified based on avoiding penalty costs for late completion or gaining additional revenue for early completion. To aid management personnel in this process, the cost of availability improvement can be calculated. For each of the most critical external components and internal events, the costs for availability improvement per day are estimated. These costs are shown graphically in Table 2 for external components. The costs for internal events would be shown in a similar manner. 
     Table 2, Column 1 identifies the external component by number. Since it is only necessary to concentrate on the items with the least slack, the components from Table 1 with slack of +2 or greater are not shown. Column 2 shows the event that the external component is required to support. Column 3 shows the present slack value. The next 5 columns graphically show the cost to improve a component&#39;s availability. For example, component 91001 requires $200 for each day of improvement in its availability. It now has a slack value of -1. To improve its availability three days to a slack value of +2, will cost $600. 
     On the bottom row of the table is accumulated the network cost of schedule improvement (increased slack). The accumulation is computed by starting at the right-most column, and moving to the left, summing the entries in each column with the entries from all columns to the right, and entering the accumulated total under the subject column. In this example, the cost to improve the final completion date by 1 through 4 days (change the slack to -1, 0, +1, +2, respectively) is $200, $600, $5000, and $9600 respectively. These additional costs can be compared to the external costs of a delay in the final completion date, and a determination can be made if the additional internal costs are justified. Management personnel can adjust the project slack variable accordingly. 
     The control of internal events can also utilize project event slack variable that would be determined by management personnel and operate in a manner similar to the project external slack variable used to control external components. The structure of the computerization may be changed to use a number of small personal computers, each used by an individual responsible for the control of several events, since this control system may be readily modularized. A minimum of communication is required between the personal computers and management personnel: the external components and events with the least slack and their associated availability improvement costs must be transmitted to management personnel, and, after aggregating the data from all the personal computers and reviewing it, management personnel must respond with the project external slack variable and a project event slack variable (if used). In similar manner, a very large project extending over many companies, can use this control system. Each company would be analogous to the individual with the personal computer, transmitting critical component slack information to a central management and recieving project timing directions via project slack variable information from the central management. 
     While the invention has been particularly shown and described in reference to a preferred embodiment thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention. 
     
                                           TABLE 1                                 
__________________________________________________________________________
           Baseline                                                       
           Schedule                                                       
                Estimated Slack                                           
Item No.                                                                  
     Event No.                                                            
           Date Avail. Date                                               
                      Slack                                               
                          +5 +4 +3 +2 +1 0  -1 -2                         
__________________________________________________________________________
91001                                                                     
     E1    13 Oct.                                                        
                14 Oct.                                                   
                      -1                    X                             
91002                                                                     
     E1    13 Oct.                                                        
                12 Oct.                                                   
                      +1              X                                   
91003                                                                     
     E2    17 Oct.                                                        
                15 Oct.                                                   
                      +2           X                                      
91004                                                                     
     E2    17 Oct.                                                        
                14 Oct.                                                   
                      +3        X                                         
91005                                                                     
     E3    20 Oct.                                                        
                22 Oct.                                                   
                      -2                       X                          
91006                                                                     
     E3    20 Oct.                                                        
                19 Oct.                                                   
                      +1              X                                   
91007                                                                     
     E4    12 Oct.                                                        
                12 Oct.                                                   
                       0                 X                                
91008                                                                     
     E4    12 Oct.                                                        
                10 Oct.                                                   
                      +2           X                                      
91009                                                                     
     E5    17 Oct.                                                        
                12 Oct.                                                   
                      +5  X                                               
91010                                                                     
     E5    17 Oct.                                                        
                13 Oct.                                                   
                      +4     X                                            
__________________________________________________________________________
 
    
     
                                           TABLE 2                                 
__________________________________________________________________________
Event    Slack                                                            
             Slack            Cost to                                     
Item No.                                                                  
     No. No. +2  +1  0  -1 -2 Improve Avail                               
__________________________________________________________________________
91001                                                                     
     E1  -1  200 200 200                                                  
                        X     $200/day                                    
91002                                                                     
     E2  +1  100 X            $100/day                                    
91005                                                                     
     E3  -2  200 200 200                                                  
                        200                                               
                           X  $200/day                                    
91006                                                                     
     E3  +1  100 X            $200/day                                    
91007                                                                     
     E4   0  4000                                                         
                 4000                                                     
                     X        $4000/day                                   
Cost to improve                                                           
             $9600                                                        
                 $5000                                                    
                     $600                                                 
                        $200                                              
                           $0                                             
final compl. date:                                                        
__________________________________________________________________________