WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Job scheduling system    
United States Patent5093794   
Link to this pagehttp://www.wikipatents.com/5093794.html
Inventor(s)Howie; George R. (Greenwich, CT); Weisser, Jr.; Paul T. (South Windsor, CT)
AbstractAn improved job scheduling system provides for scheduling of a variety of jobs without special purpose coding by the use of time maps to maintain current data, including the preferred path through the shop, as well as scheduling jobs around bottleneck shop resources in a dynamic manner.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5093794
Job scheduling system - US Patent 5093794 Drawing
Job scheduling system
Inventor     Howie; George R. (Greenwich, CT); Weisser, Jr.; Paul T. (South Windsor, CT)
Owner/Assignee     United Technologies Corporation (Hartford, CT)
Patent assignment
All assignments
Publication Date     March 3, 1992
Application Number     07/396,882
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     August 22, 1989
US Classification     700/100
Int'l Classification     G06F 015/46
Examiner     Heckler; Thomas M.
Assistant Examiner    
Attorney/Law Firm    
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/468 364/194 364/200 MS File 364/900 MS File
Patent Tags     job scheduling
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4896269
Tong
700/101
Jan,1990

[0 after 0 votes]
4852001
Tsushima
705/8
Jul,1989

[0 after 0 votes]
4661912
Imanishi
700/169
Apr,1987

[0 after 0 votes]
4383298
Huff
705/28
May,1983

[0 after 0 votes]
4580207
Arai
700/169
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a shop having a number of shop resources for doing jobs by performing operations on workpieces, each workpiece following a path through at least two shop resources, said path being specified by a work order schedule list characteristic of said job and maintained within computing means and specifying the sequence, location and time of a predetermined set of operations on a workpiece in a predetermined set of at least two shop resources, said computing means including a data processing system comprising WOM means for scheduling operations in at least two shop resources, based on data received from a resource set of at least two BRO means, each BRO means being associated with a shop resource, the method of ordering a work order schedule list for at least one job in a shop, in which:

for at least one job, said WOM means passes a call specifying an initial resource operation for said job to an initial relevant BRO sub set of at least one BRO means for an initial resource operation;

for said initial resource operation at least one BRO means returns a bid to said WOM means specifying at least one suggested time slot for said initial resource operation associated with that BRO means, thereby forming a set of suggested time slots for each resource for said initial resource operation;

said WOM means selects one bid for said initial resource operation in accordance with a predetermined strategy, thereby scheduling an operation time for said selected initial resource operation;

said WOM means then repetitively passes calls to a subsequent relevant BRO sub set of at least one BRO means for each other operation in said predetermined set of operations and selects bids returned from said subsequent relevant BRO set, thereby defining a set of scheduled time slots for said at least one job; and

said computer means then calculates a completion date for said job, characterized in that:

said method of ordering a work order schedule, including said steps of defining a set of scheduled time slots, is performed in a planning mode;

said set of scheduled time slots are contained within a corresponding set of contract time slots having an extent in time at least as great as said set of scheduled time slots and a first BRO means reacts in an operations mode to shop events occurring in its associated shop resource by moving a scheduled operation time within a corresponding first contract time slot from an ineligible scheduled time slot to an eligible time slot, whereby for a first class of shop events said BRO means can adjust the operations of said associated shop resource without affecting the operations of other shop resources or of other jobs; and

for shop events having a schedule impact greater than the extent of said first contract time slot, said system causes that BRO means associated with the next operation in said work order schedule list to move the scheduled time slot of said next operation within its corresponding contract time slot, whereby for a second class of shop events the execution of other jobs is not affected; and for shop events having a schedule impact greater than the extent of the contract time slots of associated BRO means, said system identifies a conflict set of jobs affected by said shop event and causes said WOM means to pass calls to and select bids from those BRO means associated with operations in said conflict set, whereby said system reschedules those jobs affected by said shop event.

2. A method according to claim 1, further characterized in that: at least some of said BRO means contain means for maintaining an input queue of workpieces ready to be worked on and said BRO means selects, in said operations mode, a next workpiece based on a price function dependent on a delay quantity representative of the difference between an initially scheduled finish date and a currently estimated finish date.

3. A method according to claim 1, further characterized in that said system further comprises assumption means for maintaining a set of current assumptions about work order schedule lists;

at least some of said BRO means contain means for maintaining an input queue of workpieces ready to be worked on; and

said BRO means selects, in said operations mode, a next workpiece based on data obtained from said set of current assumptions.

4. A method according to claim 2, further characterized in that said system further comprises assumption means for maintaining a set of current assumptions about work order schedule lists; and

said BRO means selects, in said operations mode, a next workpiece based on data obtained from said set of current assumptions and included in said price function.

5. In a shop having a number of shop resources for doing jobs by performing operations on workpieces, each workpiece following a path through at least two shop resources, said path being specified by a work order schedule list characteristic of said job and maintained within computing means and specifying the sequence, location and time of a predetermined set of operations on a workpiece in a predetermined set of at least two shop resources, said computing means including a data processing system comprising WOM means for scheduling operations in at least two shop resources, based on data received from a resource set of at least two BRO means, each BRO means being associated with a shop resource, the method of ordering a work order schedule list for at least one job in a shop, in which:

for at least one job, said WOM means passes a call specifying an initial resource operation for said job to an initial relevant BRO sub set of at least one BRO means for an initial resource operation;

for said initial resourse operation at least one BRO means returns a bid to said WOM means specifying at least one suggested time slot for said initial resource operation associated with that BRO means, thereby forming a set of suggested time slots for each resourse for said initial resourse operation;

said WOM means selects one bid for said initial resource operation in accordance with a predetermined strategy, thereby scheduling an operation time for said selected initial resource operation;

said WOM means then repetitively passes calls to a subsequent relevant BRO sub set of at least one BRO means for each other operation in said predetermined set of operations and selects bids returned from said subsequent relevant BRO set, thereby defining a set of scheduled time slots for said at least one job; and

said computer means then calculates a completion date for said job, characterized in that:

said method includes both a planning mode and an operations mode, in which planning mode said steps of developing a schedule are performed;

including the steps of scheduling through a bottleneck shop resource in which a bottleneck operation is performed by first scheduling for each job having said bottleneck operation an operation time having a bottleneck start time and a bottleneck finish time through said bottleneck and subsequently scheduling earlier operations in said work order list to meet said bottleneck start time and scheduling later operations in said work order list to begin after said bottleneck finish time; and

said WOM means contains at least two strategies for scheduling bottleneck operations and selection means for selecting a second strategy in the event of failure of a first strategy to schedule jobs within a set of applicable constraints.

6. A method according to claim 5, further characterized in that said system includes bottleneck identification means for identifying bottleneck shop resources as a function of scheduled operations above a predetermined threshold, whereby said WOM performs bottleneck scheduling on a time-varying set of bottleneck shop resources.

7. A method according to claim 6, further characterized in that said system further comprises assumption means for maintaining a set of current assumptions about shop resources and work order schedule lists; and said bottleneck identification means identifies bottleneck operations using data obtained from said assumption means.

8. A method according to claim 5, further characterized in that said method of ordering a work order schedule, including said steps of defining a set of scheduled time slots, is performed in a planning mode; said set of scheduled time slots are contained within a corresponding set of contract time slots having an extent in time at least as great as said set of scheduled time slots and a first BRO means reacts in an operations mode to shop events occurring in its associated shop resource by moving a scheduled operation time within a corresponding first contract time slot from an ineligible scheduled time slot to an eligible time slot, whereby for a first class of shop events said BRO means can adjust the operations of said associated shop resource without affecting the operations of other shop resources or of other jobs; and for shop events having a schedule impact greater than the extent of said first contract time slot, said system causes that BRO means associated with the next operation in said work order schedule list to move the scheduled time slot of said next operation within its corresponding contract time slot, whereby for a second class of shop events the execution of other jobs is not affected; and for shop events having a schedule impact greater than the extent of the contract time slots of associated BRO means, said system identifies a conflict set of jobs affected by said shop event and causes said WOM means to pass calls to and select bids from those BRO means associated with operations in said conflict set, whereby said system reschedules those jobs affected by said shop event.

9. In a shop having a number of shop resources for doing jobs by performing operations on workpieces, each workpiece following a path through at least two shop resources, said path being specified by a work order schedule list characteristic of said job and maintained within computing means and specifying the sequence, location and time of a predetermined set of operations on a workpiece in a predetermined set of at least two shop resources, said computing means including a data processing system comprising WOM means adapted for scheduling operations in at least two shop resources, based on data received from a resource set of at least two BRO means, each BRO means being associated with a shop resource, the method of ordering a work order schedule list for at least one job in a shop, in which:

for at least one job, said WOM means passes a call specifying an initial resource operation for said job to an initial relevant BRO sub set of at least one BRO means for an initial resource operation;

for said initial resource operation at least one BRO means returns a bid to said WOM means specifying at least one suggested time slot for said initial resource operation associated with that BRO means, thereby forming a set of suggested time slots for each resource for said initial resource operation;

said WOM means selects one bid for said initial resource operation in accordance with a predetermined strategy, thereby scheduling an operation time for said selected initial resource operation;

said WOM means then repetitively passes calls to a subsequent relevant BRO sub set of at least one BRO means for each other operation in said predetermined set of operations and selects bids returned from said subsequent relevant BRO set, thereby defining a set of scheduled time slots for said at least one job; and

said computer means then calculates a completion date for said job, characterized in that:

said system generates a time map for said job containing representations of at least some of said resource operations, including specification of a start time and an end time and linking information connection sequentially ordered resource operations, and including at least one path through said time map from a job start time to a job end time;

said system further adds to said time map resource operation constraints on said work order schedule list for said job, said constraints having an uncertainty specified by a lower time and an upper time and being linked to an associated resource operation;

said system further includes a search routine that examines paths through said time map and selects the most specific path, having the least uncertainty, whereby additional information including delays, changes in resource may be entered into said system by putting more specific times into said time map; and

said system may extract information by searching for that path through said time map having the least uncertainty, whereby timerelated information may be extracted from said system.

10. A method according to claim 9, further characterized in that said system further comprises assumption means for maintaining a set of current assumptions about work order schedule lists and said assumption means are linked to said time map, whereby said time map reflects said set of current assumptions.

11. A method according to claim 9, further characterized in that said system includes subordinate time maps, each associated with a shop resource and containing associated shop resource data and being linked to a predetermined location in said time map, whereby said search routine searches from said predetermined location through said subordinate time map and returns to said time map, thereby reflecting data in said subordinate time map.
 Description Submit all comments and votes
 


TECHNICAL FIELD

The field of the invention is that of distributed problem solving, in particular a distributed, capacity constrained scheduling system that schedules a series of operations on greatly varying jobs typically having small production quantities and subject to constraints in a finite capacity environment. The essential functions of the system are to estimate the potential completion times of work and to subsequently schedule that work.

BACKGROUND ART

It has been found that a workpiece moving through a job shop, one in which small orders are scheduled independently of one another, as contrasted with a production shop in which production runs are much longer and more repetitive in nature, spends a small fraction of its time actually being operated on, perhaps 10%. The remainder of the time is spent waiting its turn for the next operation. The benefits of improvement in inventory costs and shop throughput are thought to be potentially very large, but efforts to date have had only limited success in handling the very difficult computational problems associated with scheduling.

Extensive work has been done on this problem, some of which is summarized below:

In the Integer Programming approach, characteristics of routes (like set-ups and lead times) and interactions between routes (like capacity and lot-size) are represented using integer variables. Though integer programs provide powerful models, they require detailed information up front and are computationally intractable for large scheduling problems.

An approach known as Hierarchical Decomposition of Integer Programs is an extension of linear programming which decomposes the problem into two stages: a higher level capacity balancing stage and a lower level route sequencing stage. This approach requires forecasts of capacity requirements up front and usually assumes fixed lead times. This approach is based on infinite capacity.

Simulation techniques allow detailed modeling of the shop under dynamic conditions. They provide a good assessment of release and lot-sizing strategies but fail to regard the schedule with respect to performance measures (for instance, tardiness). With no performance measures it is difficult to assess improvements when making operational decisions.

MRP (Manufacturing Resource Planning) is characterized by infinite capacity backward scheduling. More recently, extensions have provided incremental revisions to the plan based on changes in capacity. But MRP does not alter lead times dynamically based on changes in lot sizes and capacity. This tends to produce highly inflated lead times. An advantage of MRP for large manufacturing enterprises is excellent database support and the corresponding ability to communicate the plan throughout the organization.

Queuing Simulation--Queuing models are good at predicting throughput based on static forecasts of demand. They do not seem appropriate in shops where demand and shop conditions are unpredictable.

OPT, a commercial program available from Synchronous Manufacturing, is a finite scheduling system which focuses on critical shop resources (typically bottlenecks) to constrain capacity. OPT attempts to decrease inventories and increase throughput based on changing lead times. However, OPT cannot be easily extended by its users and thus provides limited `seat of the pants` decision support.

DISCLOSURE OF INVENTION

The invention relates to an improved shop scheduling system referred to as the Cooperative Scheduling System (CSS) in which a central routine, the Work Order Manager (WOM) interacts with a set of subroutines representing shop resources comprising one or more machines to first set a planned schedule allowing for finite shop capacity at "bottlenecks" in a planning mode and then, in an operational mode, to correct and modify the schedule to accommodate for inevitable delays, machine breakdowns, changes in priority, etc.

In any shop, the life cycle of an order is characterized by continually increasing knowledge and changing assumptions about fabrication, capacity, demand and management priority. Due to this, the execution of promises and schedules vary from those originally planned. In an experimental shop, variations can be dramatic since exact fabrication and resource needs are not known until the job is complete. Planning capability is, of course, essential to making good promises but it is also necessary to provide tools to react to conditions which cause variance from the predicted schedule. Accordingly, the system provides two modes: a planning mode for predicting schedules and an operational mode for reacting to changing conditions.

Planning Mode--The planning mode produces an estimated target date for each work order and operation within the work order and feeds those dates to the work order tracking system.

The goal in planning is to make a feasible promise based on the customer's want date, resource capacity, and the throughput desired by the shop. The essential ingredient to meet this objective is that schedules for each work order, and consequently its routes, be measured against the goal. This requires that the "goodness" of each possible schedule for a work order be measured in some quantifiable term; this quantifiable term is generally called the objective function and in Cooperative Scheduling it is the weighted tardiness function. Many functions may be used for this purpose. The one employed in this embodiment is the sum of the product of the priority and the square of the number of late days.

Planning mode must produce these estimates as constrained by resource capacity. In Cooperative Scheduling, the philosophy that throughput should be throttled by the most critical shop resources is adopted. Planning mode uses this assumption to constrain schedules by identifying the critical shop resources and scheduling all routes that pass through them first. Bottlenecks may be identified by stored data in the database, by operator input, or by the system itself dynamically classifying resource centers as bottlenecks in response to the projected load. All other schedules of work order routes are then constrained by the capacity for the critical resource for which a schedule is already determined.

Planning mode also considers relationships among work orders. Work orders which are part of the same project may be combined in work order packages. These packages are used to determine critical paths in the work order relationships. This ability then leverages initial priority decisions; work orders outside the critical path will typically be given a lower initial priority.

A job is entered along with a sequential list of the operations to be performed on the workpiece; the list is displayed to an operator along with a first list of time windows (earliest start-latest completion) for the various steps that is automatically generated from stored process information. This information will be derived from a time map to be described later.

The list may be interactively updated by the operator to accommodate scheduling through shop bottlenecks by imposing tighter constraints (later start and earlier end) on the bottleneck operations.

The time windows in the initial analysis are transmitted to another routine, called a Resource Broker (BRO), that returns at least one "bid" for each step. A bid is a target start and complete time within the "window" set by the WOM. The bids are generated with regard to the finite capacity and previous scheduling commitments of the resources.

The WOM accepts one of the offered times for each step, thereby establishing the final planned schedule, having some slack time between the completion date of step n and the start time of step n+1.

Operational Mode--Operational mode uses the weighted tardiness measure established in the planning mode to support decisions in the short term. There are two types of decisions which must be supported: releasing decisions and reacting decisions.

Releasing decisions answer the question: what job should be released next to this work center? Planning mode produces a list of work predicted for each work center. At execution time, this list is sequenced according to the weighted tardiness measure; the route which will contribute to an on time shop the most goes first.

Reacting decisions are made when new information affecting a planned schedule is received or when assumptions have changed. Most reacting decisions involve reordering the list of work to be done in the best way. Again, the best way is measured according to the weighted tardiness measure.

In the operations mode, the broker routine reacts to an input delay in the start time because the part has been affected by a schedule change in an earlier fabrication step to adjust the start time and still meet the target start time for the next operation. If this is not possible, the BRO routine will notify the WOM, which will, in turn, call the next BRO routine on the schedule for that part to see if it can use its slack to accommodate the remaining delay. The effect of a delay thus ripples along the list of steps until it is absorbed or until the system fails to make adjustment.

The priority decisions as to which of the waiting jobs will be done first is made by use of the weighted tardiness function described above, which computes for each waiting job, its completion date and selects the job that will increase the total delay in passing through the shop by the least amount.

A feature of this invention is that both the final scheduling decision and the first attempt at schedule recovery are: "delegated" to the BRO routines, which may be running on local workstations within an overall network.

Another feature of the invention is that a time map is generated for each work order parts and accessed by the WOM in the course of scheduling.

The time map carries the work order scheduling information; is updated to reflect changing circumstances; and may be accessed by an operator such as a shop manager and/or a work center foreman to display current information and to answer "What if" questions that show the consequences of alternative actions.

Other features and advantages will be apparent from the specification and claims and from the accompanying drawings which illustrate an embodiment of the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an overall block diagram of the system.

FIG. 2 illustrates the different operating modes of the system and the data flow.

FIG. 3 illustrates the data flow between the WOM and the Broker routine in planning mode.

FIG. 4 illustrates the flow of the planning mode.

FIG. 5 illustrates a time map.

FIGS. 6a, 6b, and 6c illustrate a simplified time map of a work order.

FIG. 7 illustrates a time-map path and the "window" allocated to different operations.

FIGS. 8A through 8G illustrate the steps in forming a time map.

FIG. 9 illustrates the process of scheduling an operation.

FIGS. 10-13 illustrate portions of FIG. 9 in more detail.

FIG. 14 illustrates the operation of the Broker routines.

FIGS. 15A and 15B illustrate different routines that respond to a call from the Work Order Manager.

BEST MODE FOR CARRYING OUT THE INVENTION

Referring to FIG. 1, there is shown a block diagram of the overall system. The top block, referred to as the master scheduler, is the overall driver program that communicates with the others. This central point is a convenient place to enter global parameters such as, the priority of different classes of jobs, the rules governing priority and both on the overall shop level and within a smaller group referred to a resource. Conventionally, the standard priority is to meet the due dates that have been assigned to an individual job. Other priorities, such as reducing the amount of work in progress, may also be implemented. Different priorities and goals may be assigned to different areas of the shop at this central point.

One of the main functions of this block is to provide control, either manual or automatic, for problems that cannot be handled by lower levels. A common example will be those in which the shop is overloaded and not all due dates can be met. The set of jobs that are affected, i.e., delayed, by a change to make a high priority job come out on time is referred to as the conflict set. In a case where a high priority job has bumped other jobs, the conflict set will be passed to the master scheduler which will then rearrange and arrange for the rescheduling of the jobs. This may be done, for example, by setting relative priorities for the jobs and then passing that information down to the work order managers for automatic rescheduling in light of those priorities.

This central point is also a convenient place to present to the person responsible for the shop qualitative information, such as, a rough estimate of the length of time for a job, so that a customer's inquiry may be responded to by someone having access to this overall program.

The master scheduler supports the following seven functions in the planning mode:

1. Setting the Scheduling Horizon, which is the time for which CSS plans schedules.

2. Identifying critical resources and capacity bottlenecks.

3. Assigning work orders to the proper work order managers.

4. Assigning resources to the proper resource brokers for finite scheduling.

5. Providing an outlook reflecting the optimism of the shop manager regarding the ability to meet schedules based on known shop conditions may be provided.

6. Passing information about appropriate strategies to the work order managers and resource brokers.

7. Recommending that another shop be used when no capacity exists for incoming work.

The scheduling horizon will typically be the shop lead time but may be any period of time which the scheduler chooses. The shop manager may set the scheduling horizon through a menu provided by the user interface of CSS with the aid of capacity charts, etc. The outlook reflects the shop manager's expert opinion about the ability of the shop to meet due dates generally. The outlook is entered through the user interface as a fraction between 0 and 1. This outlook is then used in generating schedules as a measure of optimism. Simply, if the shop manager is pessimistic, the work order manager will assume it will take longer to do the job.

The shop manager knows about these policies and goals and through his expertise may know how a work order manager or resource broker should go about its task to contribute to them. The shop manager can provide this knowledge through strategies. For instance, if the policy is to reduce inventories, the master scheduler can impose a "minimize wip" (work in process) strategy on a work order manager. But since the overall objective is to get the job out on time, the strategy may be "minimize tardiness first and then minimize wip."

Strategies are built by the shop manager through the user interface editing screens and may later be selected dynamically through other screens provided by the interface. Strategies may be selected globally, per work order, or per work center as deemed appropriate by the shop manager.

The next level down is that of the work order manager routines, which may be a single routine operating on different data or may be a set of different data structures or data objects. For the purposes of this application, the word "routine" or "means" in the appropriate context will mean a routine, data structure or object, depending on the language that is used to implement the invention. In a distributed computing environment, there may be several routines operating in parallel.

The work order manager has the task of arranging for the scheduling of a work order, which is a series of tasks to be performed on a part or on a set of parts. Often, a project or piece of equipment will require a number of parts that are related in that they must all be finished before the system can be assembled. The work order lists will be grouped in a work order package and dealt with as a unit, in order to identify the critical path for the package, so that some parts do not need to wait longer than necessary for the others.

The work order manager starts out with an order from a customer for a part or parts. It accesses the data base to pull out the standard list of tasks and processes required for such a part (or accepts as input the list of processes and associates them with standard times. It then sends out calls, which are a set of parameters, to the relevant resource brokers which handle the machines that can perform the operations on the standard list. These parameters specify the desired start date and finish date of each operation, and also, the standard process time, which the operation is assumed to take. These dates are set with a large enough margin so there is a reasonable chance of finding an open slot on a machine within that window. Each broker then searches the data base to find the parameters of the part, such as the physical size and so on to select which of the machines it controls that can be used. The broker then scans the time reservation list for each machine to find at least one open machine window, either on one machine or more than one machine. The broker formulates bids that contain the proposed start and finish times for the operation and an indication of the cost of this option in terms of weighted tardiness. Cost accrues both from the tardiness of the operation to be scheduled and the impact that scheduling this operation has on previously scheduled work. The broker selects bid windows to be returned to the WOM according to a local strategy that may not be the same as the global strategy. Typically, the local strategy is to minimize the weighted tardiness function which is a calculated quantity which measures the impact of delay of this part on the total shop throughput. The work order manager then scans through the list of bids from each broker and selects a set of award windows (one window for each operation) that will do the job. The choice will be governed by the global strategy which is usually getting parts out on time.

The work order manager then allocates the slack time, which is the time between scheduled job operations, to the different brokers. An example is illustrated in FIG. 7 showing on the first line a set of five operations A-E having different bid windows in which they could be performed over a period of twenty-two days. The actual processing time for each operation is not indicated on this Figure but will be considerably shorter than the open windows. The lower line referred to as B illustrates the allocation of slack, the final window is called the "contract window." This window provides the broker with information about the earliest and latest times the operation can be run given the scheduled times of its predecessor and successor operations. This information is useful in operational mode. In this case, operation D is a bottleneck operation so that it is extremely unlikely that D will be performed earlier in time than is indicated on FIG. 7 and is quite likely to slide to a later time. Thus, the window D' is skewed to a later time. The window C' is also skewed to a later time, since it is not likely at all that it will be possible to move operation D up in time. The significance of this slack allocation will be explained later. The work order manager also compares the total start and finish times to the initial assumptions when the order was accepted. Quite often, it will be found that it is not possible to meet the due date that was promised. This is a common situation in which the order takers or sales people tend to be optimistic. In the particular case of bottleneck operations, they invariably slide and are delayed. If the due date cannot be met, the simplest thing is simply to report failure, i.e., that the job will be delayed. As an alternative, the system is capable of having the work order manager instruct the resource brokers, some or all of them, to drop low priority jobs from their schedule and then to reschedule the higher priority jobs.

When an operational event (also referred to as a shop event), such as a machine breakdown, sick machinist, etc. occurs, there are potentially hundreds of operations affected. This is the conflict set. The master scheduler must direct work orders from the conflict set back into CSS for automatic rescheduling or bring them to the attention of the shop manager.

Project Trade-offs--when a conflict occurs that cannot be handled locally by a resource broker or WOM and also cannot be rescheduled by the system, it is likely that there are two projects that together exceed the shop capacity. In this case, the shop manager will have to intervene to assign greater priority to one project.

Transactions are the basic information packet transmitted between CSS components. Transactions contain the identification of the sender and receiver, a sequence number and other data items required to ensure communications integrity. Transactions have a "content" and a "type" that determine their meaning and communicate the intent of the sender to the receiver. Depending on their content and type, transactions represent calls, bids, and awards, as well as other queries or assertions communicated through the system. The transaction types are: initialize, shutdown, query, assert, receive response, and evaluate.

The representation language and the temporal reasoning utility provide a language in which queries can be expressed throughout CSS. The format is similar to the pseudo first order predicate calculus language used in Prolog. Typical queries are expressed as a list whose first element is a predicate and whose remaining elements are terms. Inference is performed on these queries by backward chaining. An important extension to the reasoning typically done in expert systems is that the queries allowed in CSS are temporal in nature; they mention and reason about time explicitly, using the time map representation described below. The query language is supported at many levels throughout the system: queries can appear in rules, in program code, or they can be entered through the developer's interface. Queries also appear as the content of transactions as discussed above.

The system may use a standalone, local, finite scheduling resource broker as illustrated in FIG. 15A or a more general rule-based object that employs an inference engine to apply a set of rules. The advantage of this latter approach is that artificial intelligence techniques may be used to translate the expertise of experienced managers to the system.

The system will employ a routine to calculate the weighted tardiness measure or other figure of merit for the schedule. In the preferred embodiment, Lagrangian Relaxation techniques, a well known variety of mathematical modeling, were employed to quantify the effects of capacity constraints on the schedule. Less coding may be expended if a simpler technique were used, such as summing the tardiness function calculated separately for different work orders, rather than using the Lagrangian technique to calculate an optimum change for the whole set of affected work orders.

Due date performance is measured by the difference between operation due dates and scheduled operation completion date. Provision is made to weight job lateness by the relative importance of the job and to place a higher price on a job as its lateness increases.

Determination of the price (which is measured in days, rather than dollars) is directed by four constraints:

1. A precedence constraint forcing work order operations to be performed in sequence.

2. A resource constraint ensuring that resource usage cannot exceed capacity limits.

3. A time constraint that requires a work order to arrive at the operation before the processing of that operation can begin.

4. A time constraint that an operation takes a prescribed amount of time to complete.

The prices determined by the weighted tardiness function are saved in the knowledge base so that decisions in the operational mode can be made in light of these prices. Prices are saved for each resource type and each work order route.

The WOM can schedule work orders according to different goals:

1. Schedule Around Bottleneck--Bottleneck work centers which the master scheduler has identified are scheduled first and the rest of the work order is scheduled around them. To schedule the bottlenecks, the WOM identifies all unscheduled work orders that go through a bottleneck workcenter. All of the work orders that pass through the same bottleneck are gathered together and scheduled through the bottleneck at once using optimization. Conflicts generated by this process can be automatically renegotiated, manually renegotiated or left unscheduled. After the bottleneck operations have been scheduled the remaining operations are scheduled around them.

2. Reduce Lead Time--Work orders are scheduled to finish as soon as possible.

3. Reduce Lead Time and WIP--First, the WOM reduces lead time on the job and then compresses the release times of the upstream operations to reduce the WIP.

No matter what the goal, the call-bid-award communications work the same way. Handling of various goals occurs in the selection method invoked when bids are returned.

When the resource brokers are unable to return bids within the call window the WOM must generate a recovery action. Options are:

1. Leave the work order unscheduled. If most of the operations have failed to schedule, the work order should be left unscheduled and brought to the attention of the shop manager.

2. Commit to the operations which have acceptable bids and leave the remaining operations unscheduled. This option may be preferable when most of the operations have received acceptable bids.

3. Renegotiate the failing operations allowing more impact on the schedule. This option applies to very high priority jobs.

4. Modify or relax constraints. The WOM can ask the master scheduler to relax the release or want date of the work order. This change may affect other work orders in the work order package.

A bottleneck resource is defined as any of the following:

a) A resource at or over 100% capacity for a period of time in which capacity on that resource is demanded by new or ongoing work.

b) A point where many part numbers come together for processing or assembly.

c) A point from which routes commonly diverge to many different parts of the shop.

d) A resource which has particular desirable characteristics and is often in high demand.

Overall capacity is constrained by the capacity of bottleneck resources. In other words, the shop can never finish work orders at a faster rate than the bottleneck can finish operations, given that the work order passes through the bottleneck. The master scheduler analyzes the set of work orders to be scheduled and the current bottlenecks to determine if any work orders pass through the bottlenecks or if new bottlenecks are created. The master scheduler then performs the following steps: a) packages the bottleneck work orders; b) passes the work order package to a work order manager which computes quick, roughcut schedules for non-bottleneck routes in those work orders; and c) selects a strategy to guide the work order manager in negotiation with the resource brokers which manage the bottleneck workcenters.

Depending on the configuration of the CSS, the resource broker may do one of the following: a) add the new operations to the existing set of bottleneck operations and optimize the entire bottleneck schedule or; b) provide options to the work order manager which reflect the impact of adding the new operations and let the master scheduler guide the scheduling process or; c) finite schedule the bottleneck automatically with the guidance of the weighted tardiness measure and the knowledge base.

After the resource brokers schedule the bottlenecks, the master scheduler then passes the package of work orders to a work order manager to further schedule the non-bottleneck routes. In this way, the CSS in planning mode produces a predicted schedule constrained by capacity at the bottleneck.

Once work orders are received by the work order manager, there are two ways to schedule them:

A pure optimization that chooses among work order scheduling options through the weighted tardiness function.

A negotiation that consults not only the weighted tardiness function but also the knowledge base, the resource broker, and possibly the master scheduler to determine a schedule which satisfies a variety of constraints.

Option one is provided and selected for speed. It will be useful for providing estimates for large numbers of work orders at a time in planning mode and quickly resolving large numbers of conflicts in the operational mode.

Option two is likely to be used most often. In option two, the work order manager identifies the resource brokers which manage each of the work centers that a work order is expected to pass through. The work order manager writes a contract for each operation in the work order and sends a "request for bids", also termed a "call", to the resource brokers identified. The brokers return bids trying to maintain a good work center schedule. The work order manager selects the best bid from each broker trying to build a good work order schedule. This process (as well as the option 1 process) is guided by the weighted tardiness objective. The call-bid process may go on a number of times before a satisfactory schedule is determined. At the end of the process, the work order manager "awards" work to the broker based on the best bids.

Planning mode queues are positioned at work centers and are filled with awards made during the planning mode. The primary function of the planning mode queue is to keep predicted schedules in waiting before releasing them to specific resources in the work center. "Release" means that this job will be performed next. As up to date information about the work load is