For the Just-in-Time production scheme in large manufacturing systems we ... methodological extension into an integrated automated manufacturing system that is supported by a ... 1.1 Distributed Computer Control for Just-in-Time Production ... assuming the following 4 control levels as identified by Jones and McLean ...
Distributed Integrated Scheduling in Automated Manufacturing Systems with Transient Machine Failures Horst F. Wedde*, Sanjeev K. Taneja**, Frank Thorsten Breuer*
Abstract For the Just-in-Time production scheme in large manufacturing systems we describe a considerable methodological extension into an integrated automated manufacturing system that is supported by a distributed real-time computer system. This allows for higher flexibility in demand fluctuation as well as for larger variety of products. At the same time better adaptability of transportation planning and transportation cost reduction are achieved. The basis for this integrated scheduling are new bidding algorithms which we will present. Eventually, in an extension of the presented scheduling algorithms, novel fault tolerant strategies are developed for overcoming or neutralizing the effect of (transient) machine failures. They are handled by the local schedulers and are designed to guarantee a minimal distributed response and its propagation in the presence of failures. Through their integration into the production and transportation scheduling the advantages of the Just-in-Time approach (no storage costs) are preserved in principle while a near-optimal way for the affected jobs is found to still meet their deadlines. Experimental results are also discussed.
1 1.1
Introduction Distributed Computer Control for Just-in-Time Production
In the manufacturing domain, computers schedule jobs for processing in the shop floor world of machines and transportation systems. The network of computers executes processes at a rate (at most tenths of seconds) which is much faster than the processing of operations on a machine (minutes or hours). The network of computers is also more reliable than the machines because mechanical components are more prone to failures than the electronic ones. In the network of computers, any computer is capable of executing a large variety of processes. On the shop floor, the specialized nature of machines allows typically only one operation per machine. The well-known Just-in-Time manufacturing concept has found wide attraction in practice since as a demand-driven system, mostly no storage or buffer capacities are needed, saving huge investments for constructing, managing, and maintaining such facilities. Also, the Just-in-Time concept relies on a very simple form of cell-to-cell communication through canbans. A canban, or request card, is sent by a cell to a suitable neighbor cell for producing and delivering a needed part. The part is then sent to the requesting cell, together with the original canban. This procedure is local in nature. In principle no higher-level or centralized control is needed to guide and supervise the demand and production flows. The Just-in-Time method has not yet been used in computer-controlled manufacturing systems. Here mostly hierarchical control concepts have been proposed and implemented, typically assuming the following 4 control levels as identified by Jones and McLean [JONE86]: •
facility control;
•
shop control;
* University of Dortmund, Lehrstuhl 3, Fachbereich Informatik, 44221 Dortmund / Germany ** Lucent Technologies Inc.
1
•
workstation control;
•
equipment control.
Here a computer at a higher control level sends commands to, and receives status information, lower level computers. No direct communication like between requesting and producing cells (called neighbor cells in the previous paragraph) or clients and servers is possible, creating a divergence between production/ demand flow and computer communication/ control flow. Also, adding new cells to an existing production system implies substantial changes even on the higher control levels, and it makes the hierarchical control much more complex and inefficient. Failures of computers on a higher level make the whole control system underneath the failed computer unavailable. In our novel approach we developed a completely decentralized control architecture among autonomous cell controllers in which these shortcomings are avoided. Every production job has a deadline indicating the time at which the job has to be completed unless penalties for late delivery would have to be incurred. This implies that for producing parts or subassemblies, suitable deadlines have to be determined as well. This would even be done in such a way that some flexibility within a cell for rearranging the cell schedule (switching from a failed to an operational machine configuration) could be accommodated. So the computer control system would work under both real-time and fault tolerance constraints. In the canban method, in particular if applied on the equipment or machine level, there is only one neighbor cell or machine for the issued request thus enforcing "dedicated" production paths with little flexibility and fault tolerance between cells or machines. In our approach, however, we assume a multiplicity of cells each of which is capable of performing a variety of operations. Instead of sending a request for a needed product part to one cell only, a choice of cells is provided for delivering the requested part, and the request is multicast to those capable cells. From the capable cells bids will be awaited, and the (timewise) best bid will be accepted. So, in addition to the flexibility within the cells, our approach exhibits, and takes advantage of, flexibility of production paths, i.e. on the shop or facility levels, again for both real-time and fault tolerance purposes. Under transient machine failures either alternative cell schedules or alternative production paths will be determined. (We will strongly exploit here that the involved computer control, in particular the scheduling overhead, is nearly negligible within the manufacturing time granularity as argued at the beginning of this section.) In a fully automated manufacturing environment there arises not only the problem of distributed dynamic but transportation between cells will also be automated. A limited number of Automated Guided Vehicles (AGV) move within a network along transport tracks. They have to be scheduled such that under the real-time constraints of the part production and assembly, the final products are completed by their deadlines. Since AGVs are very expensive and only a comparably limited could be utilized on a given transport track system without complications like collisions or jams, there is no closed-form solution for the combined scheduling problems. As a result production and transportation scheduling have to be dynamically integrated. Transient machine failures as a separate management problem could be overcome by a sufficient number of redundant machines in cells, or even of redundant cells. However, there is a trade-off between the risk of missing some product deadlines (hence of paying a penalty) because of machine failures, and the high costs of purchasing and maintaining redundant machine or even cell capacities. This calls for dynamic management of transient machine failures, as an integral part of product/ AGV scheduling. Such integrative efforts have so far not been discussed. Fully distributed algorithms for dynamic production/ shop floor scheduling and integrated scheduling of autonomous AGVs, under the assumption of (unpredictable) machine failures, are developed and studied in this paper. This is the key achievement of our contribution.
2
1.2
Previous and Related Work
After work on cell scheduling under hierarchical control [JONE86] and a remarkable number of concepts for uniprocessor systems the idea of distributed architectures for manufacturing systems was introduced rather recently [DUFF87, DILT91]. So far no in-depth treatment of this subject, e.g. through formally defining production scheduling algorithms and performing experimental analysis, has been reported. Although several control architectures for integrating planning (including fault tolerance measures) and control functions had been proposed, corresponding distributed algorithms have not yet materialized. In this way our integrated distributed algorithms are a first comprehensive technical investigation and development in this area of interest. For scheduling of computer processes in uniprocessor and multiprocessor systems there is a wealth of different approaches [DERT89, NI89, XU90]. For distributed real-time scheduling several variants of bidding algorithms have been studied [RAMA84, STAN85, ZHAO85, ZHAO87]. The techniques proposed apply well in systems where the scheduling overhead is a delicate subject, due to the fact that the environmental time granularity is comparable in scale to the process granularity. This is not the same for manufacturing processes as stated at the beginning of the section. Thus, our bidding algorithms are more closely related to a distributed scheme for production scheduling only [SHAW87] which is derived from an earlier idea in [DAVI83]. Even in this singular aspect our work considerably defines and substantiated Shaw's ideas. Otherwise the concepts, and part of the results in [TAN93] are a major basis for this paper. 1.3
Organization of the Paper
After formally defining the distributed manufacturing model for production scheduling our distributed bidding algorithm will be presented in section 2 (referred to as Algorithm I). In section 3 its extension as to integrate AGV scheduling will be introduced (referred to as Algorithm II). In section 4 both the manufacturing model and the algorithm will be again refined and extended such that transient machine failures can be handled in a completely distributed fashion (Algorithm III). A comparative simulation study on the novel algorithms will be reported in section 5 from which conclusions will be drawn in section 6. Pseudo-code of the 3 algorithms can be found in Appendix A, B, C , respectively.
2 2.1
Scheduling of Cells The Distributed Manufacturing Model
The manufacturing cells are interconnected with a local area network to form a loosely coupled distributed system. The transportation time from one cell to another is assumed to be negligible for the purpose of cell scheduling in this chapter. (For accommodating and integrating AutomatedGuided-Vehicle (AGV) scheduling however the transportation time will be taken into consideration in chapter 3.) For a given diversity of products that could be manufactured, each product consists of parts which may undergo a series of operations (drilling, boring,..) and which will be assembled into components through assembly operations. The components themselves may undergo specific operations, and the resulting subproducts may again be assembled into larger components. In this way a final product is generated. All operations are performed within cells. Each cell has a variety of different machines that each of which could perform different operations on a specific set of subproducts or components. (As described in the introduction this provides both a certain production flexibility and fault tolerance.) The cell flexibility, in contrast, is constrained by functional precedences of operations. Under a given set of machining and assembling constraints, production schedules of each involved cell are to be developed in a distributed fashion by the cooperation of the cell controllers. Each 3
cell controller is in charge for scheduling all operations that are performed on a subproduct in its cell. Furthermore we assume: 1. The products/sub-assemblies can be produced by selecting from alternative production sequences within the cells. The cell scheduler will select a sequence based on the current schedule of machines and the deadline of the job to be scheduled. 2. According to the standard manufacturing practice, operations are considered to be nonpreemptive, i.e. an operation runs to completion once started. 3. While scheduling a new job, the cell scheduler follows the First-Come-First-Serve (FCFS) policy. Since scheduling within the cells is not a major focus of our study we do not make assumptions on job priorities. 4. We assume that manufacturing is consumer-driven. Thus the arrival times of the jobs are considered to be aperiodic or unpredictable. Jobs for manufacturing products arrive in the Scheduling Department SD. 5. Completion times for the same operation and subproducts may vary between different capable machines. 6. If an operation on given subproducts could be performed within a cell, the corresponding cell scheduler will schedule it on a local basis. (Consequently the scheduler will not consider to cooperate with other cell schedulers to this extend even if an external machine would be faster. The idea is that this potential advantage would be more than outweight by additional transportation costs and scheduling overhead.)
o11
o12
o13
o14
Part p1 o21
o22
o51
o52
p5
o23
Part p2
o71
o72
Product P o31
o32
o33 o61
Part p3
o62
p6 o41
o42
o43
o44
o45
Part p4
Assembling Precedence Constraints Machining Precedence Constraints
Fig. 2.1 An Assembling and Machining Structure of a Product 2.2
Formal Notations and Definitions
Given a real-time cellular manufacturing system with c cells C1,C2 , .....,Cc . A cell Ci will have I machines Mi1, Mi2, .....MiI . For a job J let Q(J) and D(J) be the quantity of the ordered product Pj and the job deadline, respectively. The machines in the manufacturing system will produce p different known products. Each product is made up of a set of sub-assembly(ies) and/or part(s) called components. A part is a component which can not be separated.
4
The component is assembled in an order given by the assembling precedence constraints. Each component is manufactured by a set of operations called the process-sequence, performed in an order determined by the machining precedence constraints. For example, the product ‘P’ in figure 2.1 is made up of sub-assemblies p5 and p6. Sub-assembly p5 is made up of parts p1 and p2. Part p1 is manufactured by the operations o11, o12, o13 and o14 by following the machining precedence constraints o11 ->o12 ->o13 ->o14. This means o11 must be completed before o12 etc. Parts p1 and p2 must be completed before the operations on component p5 can be initiated. 2.3
The Bidding Scheme
In our approach the task to meet the job deadlines is pursued through a distributed bidding mechanism. Upon arrival of a job, the Scheduling Department SD requests bids for completing the job by its deadline D (J), and selects one of them based on their submitted bids. Any cell, if requested to submit a bid for a delivery of a subproduct, either would be able to complete the needed operations completely, or it would itself request bids for the missing operations or subproduct deliveries. In the latter case it would need the bids in order to compute its own bid. Cell Ci (or SD) requesting a bid from cell Cj is called the bidding predecessor cell of Cj . By similar reasoning, cell Cj is the bidding successor cell of Ci . On submitting a bid, a successor cell commits the offered operations, that is the requested sub-job. A sub-job is said to be scheduled if one of the committed cells has been selected and notified. Bidding may lead to a chain of predecessor-successor cells in which each cell knows only about its bidding predecessor cell at the previous level, or successor cell at the next level. Successor cell Cj submits its bid to the bidding predecessor cell Ci. The bidding predecessor cell Ci selects the cell with minimum makespan for commitment. Ci in turn submits its bid to its own bidding predecessor cell at the next level. Finally, a commitment path with minimum makespan is selected for scheduling. It should be noted that the propagation of bidding is opposite to the flow of production operations (Backward propagation scheme). Several feasible commitment paths are possible for the same job when searched by different cells. In this context, for an operation sequence O1->O2 (which means that operation O1 must be completed before operation O2), the cell C2 committing the operation O2 is called the bidding predecessor of cell C1 committing the operation O1 . The following assumptions are made for the algorithm: 1. There are no production delays due to machine, computer or network failures. (Machine failures are considered in chapter 4.) 2. A cell is said to be capable if it has the ability to process at least the last operation of the sub-job in the production flow with respect to the special properties of the component in work. For each product P the assembling and machining precedence structure (production structure) is uniquely defined. To facilitate the bidding procedure, it is assumed that every cell has prior knowledge of operation capabilities of all potential bidding successor cells. Therefore, a cell needs to request bids for a subjob only from the capable cells. 3. Every message will be correctly delivered to its destination, within a well bounded amount of time. 4. Messages sent from one cell to another are received in the same order in which they are sent. 5. Each cell is always connected with all other cells, network failures are not considered. 6. A bidding time interval defines a deadline by which a requesting cell must receive the
5
bids. Otherwise after this deadline it is considered useless to start the requested production. 2.4
Algorithm Description (Algorithm I)
• When a new job arrives in the scheduling department SD, it multicasts a message REQUEST-BID-CELL(SD , Psd ,Dsd ) to the capable cells, requesting bids for the product Psd , by deadline Dsd. • When a cell Cj_receives the REQUEST-BID-CELL(Ci ,Pi, Di) message for the job from the bidding predecessor cell Ci , cell Cj commits the operations which could be performed on machines within the cell. It selects the machines, based on the latest start time to meet the deadline. It is conceivable that Cj receives two messages REQUEST-BID-CELL(Ci , Pi , Di) and REQUEST-BID-CELL(Ci' , Pi' , Di') for the subproducts Pi and Pi' but where the requests refer to the same job and subproducts Pi =Pi'. Each cell keeps track of the commitments by the unique customer job number, sub-assembly number and part number. Therefore, in the mentioned situation of overlapping requests for the same job and subproducts (but possibly different deadlines), time slots would be scheduled independently since at most one of the submitted bids would be selected. Case i). If all operations of the part/sub-assembly Pj could be performed in Cj in due time, cell Cj computes the latest start time Tj for the operations Pj. It then multicasts a REQUEST-BID-CELL( Cj ,Pj ,Dj ) message to the capable cells for each of the components Pj. Here Dj is the new deadline which is equal to Tj. If there are no components left to be requested, Cj submits a bid to its bidding predecessor cell Ci by sending a message SUBMIT-BID-CELL (Cj , Pi ,Tj ) with the latest start time Tj . Case ii). If not all operations of the part/sub-assembly could be performed in Cj in due time, cell Cj multicasts a REQUEST-BID-CELL(Cj ,Pj ,Dj ) message to the capable cells for completing the operations on manufacturing Pj . Case iii).If none of the operations of the job could be performed in Cj - this could happen only due to timing problems - then the cell Cj stops and submits no bid. • On receiving SUBMIT-BID-CELL(Cj,Pi,Tj.) messages within the bidding time-interval, cell Ci selects the best bid based on the latest start time Tj . It sends a message RELEASECELL(Ci, Pi) to the unsuccessful bidders. Cell Ci will send a message SUBMIT-BIDCELL(Ci, Pi, Tj) to the bidding predecessor cell, which again repeats this step, until the bid is received by the SD . • If the cell Ci receives no SUBMIT-BID-CELL message, a time-out occurs. Cell Ci then undoes the machine commitments for the job. It submits no bid and stops. • SD finally selects the best bid based on the latest start time. SD sends a message SCHEDULE-CELL(SD, Psd) to the cell whose bid was selected. A message RELEASECELL(SD,Psd) is sent to the cells with the rejected bids. If SD receives no bid within the bidding time interval, scheduling terminates with failure. • Cell Ci, on receiving a message RELEASE-CELL, deletes the commitments for the corresponding sub-job. It then sends a message RELEASE-CELL to its successor cells. This continues, until there are no successors. • Cell Ci , on receiving a message SCHEDULE-CELL, schedules the machines for the corresponding sub-job. It then sends a message SCHEDULE-CELL to its successor cells. This continues, until there are no successors. Pseudo-code for algorithm I can be found in Appendix I.
6
2.5
A Sample Scheduling Problem
Let us consider a cellular system with three cells, namely C1, C2 and C3. The operation capability of the machines within the cells are as follows: Operation Name of Cell C
Name of
Capability of
Machine ‘M’ in Cell ‘C’
Machine ‘M’
C1
s1
screw
C2
b1
bore
d1
drill
b2
bore
C3
Table 2.2 An Example Cellular System Configuration. Cell C1 has one machine s1 capable of processing the ‘screw’ operation. Similarly cells C2 has two machines etc. The Material handling time for moving parts from one cell to another is assumed to be zero. The following example product p1 is considered for scheduling as shown below: Product/Sub-
Component(s)
Assembling
Operation(s) of A
assembly/Part
of A
Constraint(s)
Machine #1
Machining
Machine #2
Constraint(s)
Name (A)
Name
Quantit y
of A
Name
Name
Time
Name
Time
of A.
p1
p2
2
p2 -> p1
screw
s1
30
-
-
-
p2
-
-
-
bore
b1
30
b2
20
drill->bore
drill
d1
40
Table 2.3 An Example Product Bill of Materials and Operations. In table 2.3, the product p1 is made up of one component p2 (quantity=2). The operation required to manufacture p1 is ‘screw’ with a processing time of 30 units on machine s1. Part p2 requires two operations ‘bore’ and ‘drill’ performed in the order of machining constraints drill->bore, which means that ‘drill’ must be completed before ‘bore’. The operation ‘bore’, required to manufacture p2, that needs 30 units of processing time on machine b1 or 20 units of processing time on machine b2 . Considering that the system is in the initial state, the schedule of all machines will be NIL. Let a job (product = p1 , quantity =10, deadline=3000 time units) arrive at current time zero. The cell controllers schedule the finish-time and start time of machines so that the job can be completed by the deadline. In the sequel we give an example history for scheduling the given job by describing the relevant scheduling steps and times: Current-Time=0.00 1. SD requests a bid for the product p1 (deadline=3000,
quantity=10) from cell C1 by the deadline 3000.
7
Current-Time=0.05 1. C1 computes start-time of part p1 as follows: Finish-time of operation screw on part p1 =3000 and Start-time of operation screw on part p1 =3000-(30*10)=2700.
1. C3 requests a bid from C2 for operation drill on part p2 by the deadline =2300 and quantity=10*2.
Current-Time=0.20 1. C2 submits a bid to C1 for part p2 , with starttime=1300
Current-Time=0.55 1. C1 sends a reject message to C2
Current-Time=0.35 2. C2 computes start-time of part p2 as follows: Finish-time of operation drill on part p2 = 2300. Current-Time=0.10 Start-time of operation bore on 1. C1 requests a bids for the part p2, quantity=10*2, from part p = 2300-(40*10*2)=1500. 2 the cells C2 and C3 , by the deadline 2700. Current-Time=0.40 1. C2 submits a bid to C3 for part p2 with startCurrent-Time=0.15 1. C2 computes start-time of p2 as follows: time=1500 Finish-time of operation bore on part p2 = 2700. Current-Time=0.45 Start-time of operation bore on 1. C3 submits a bid to C1 for part p2 with startpart p2 = 2700-(30*10*2)=2100. time=1500 Finish-time of operation drill on part p2 =2100. Start-time of operation drill on Current-Time=0.50 part p2 = 2100-(40*10*2)=1300. 1. C1 evaluates a bids from C2 and C3 and selects C3 .
Current-Time=0.60 1. C2 , on receiving the reject message, deletes the commitment. 2. C1 submits the bid to SD with start-time=1500
Current-Time=0.25 1. C3 computes start-time of part p2 as follows: Finish-time of operation bore on part p2 = 2700. Start-time of operation bore on part p2 = 2700-(20*10*2)=2300.
Current-Time=0.65 1. As the SD does not get a bid from any other cell, it accepts the bid from C1.
Current-Time=0.30
The resulting production schedule is determined as displayed in table 2.4: Operation Cell
Machine
Product/Part
Name
Finish-time
Start-time
C1
s1
p1
screw
3000
2700
C2
d1
p2
drill
2300
1500
C3
b1
p2
bore
2700
2300
Table 2.4 Production Schedule of Machines for an Example Product.
3 3.1
Distributed Cell/AGV-Scheduling: Algorithm II. Modification of the Model
In the previous section the manufacturing system consisted solely of flexible manufacturing cells. The assumption on the transportation subsystem was that the transportation was available at constant cost whenever needed. In this section it is assumed that a limited number of AGVs are responsible for transportation of parts or sub-assemblies from one cell to another. AGVs operate in an autonomous mode. Their control system and the manufacturing cells are inter-connected
8
through a local area network to form a loosely coupled distributed system. In this paper we assume that AGVs are always operational. Problem: Given a real-time cellular manufacturing system together with m AGVs A1, A2 , ..., Am . Through the cooperation of cell-controllers and autonomous AGV-controllers, a schedule for cells and AGVs is to be determined such that the deadlines of the arriving jobs will be met. Cooperation among the cells and AGVs is achieved by a bidding scheme as discussed below. 3.2
The Bidding Scheme
A bidding successor cell Cj receives a request for a bid from a bidding predecessor cell Ci (see section 2.3) for delivering a needed quantity of components. It attempts to determine the earliest start time for producing the requested components. For doing so, it first requests bids from all AGVs for transporting components from Cj to Ci. After selecting a bid from the AGVs, that allows the latest start time for Cj, Cj submits its own bid to Ci. If selected by Ci, Cj commits the requested operation in case that it can produce the needed component on its own. If it cannot commit the operation completely, it requests further bids for the missing machine operations. As a result of our particular method this structure contains exactly one path for each part, from its generation or production until the final product to which it belongs. This path allows for the latest start time to complete the part in time (Just-In-Time principle). This will lead to a bidding chain of commitments by cells and AGVs, constituting a feasible commitment path structure for the given job. Several feasible commitment paths are possible for the same job as searched by different capable cells. Finally, a commitment path with minimum makespan is selected for scheduling. 3.3
Algorithm Description
In addition to the scheduling rules as described in section 2.4 for including AGV scheduling we formulate the following rules: • When cell Cj receives the message REQUEST-BID-CELL(Ci,Pi,Di) for the job from the predecessor cell Ci , the cell Cj multicasts a REQUEST-BID-AGV(Cj,Ci,Pi,Di) to the AGVs, requesting for transportation from the source cell Cj to the destination cell Ci , to be completed by the transportation deadline Di. • When AGV v receives a message REQUEST-BID-AGV from cell Cj , v commits the transportation in a manner that meets the deadline Di and its start time Tv is latest. The bid is submitted to the requesting cell Cj by a message SUBMIT-BID-AGV(Av, Pi, Tv). If the AGV cannot commit any time slot, then it will not submit any bid. If the received bid request is for the transportation of a part, for which it had already been committed on behalf of another cell, then the previously committed time slot is ignored for calculation the new bid. • Upon receiving the SUBMIT-BID-AGV messages from the AGVs within the bidding time-interval, cell Cj will select the bid with the latest start time Tl. The deadline Dj for completing the cell operation in Cj is set to Tl. A message RELEASE-AGV(Cj, Pi) is sent to each AGV whose bid was not approved. • If cell Cj does not receive any SUBMIT-BID-AGV message from AGVs before the timeout, then it stops and submits no bid. • Upon receiving a message RELEASE-CELL, cell Cj sends a message RELEASEAGV(Ci,Pi) to the AGV that had committed to do the transportation for Cj. • Upon receiving the message SCHEDULE-CELL, cell Ci sends a message SCHEDULEAGV(Ci,Pi) to the AGV that had committed the transportation for Cj. • Upon AGV receiving a message RELEASE-AGV(Cj, Pj ), the addressed AGV will 9
delete the committed time slot for the transportation job. • Upon AGV receiving a message SCHEDULE-AGV(Cj,Pj) the addressed AGV will schedule the committed time slot for the transportation. Pseudo-code of algorithm II can be found in appendix B.
4
Distributed Rescheduling: Algorithm III
In a manufacturing system one distinguishes between faults and failures. The main difference between a fault and a failure lies in their frequency of occurrence and repair time. Faults are caused, for example, by misfeeding of a part, breaking of a tool, an improper insertion of a tool etc. Failures in term are often caused by wear and tear, as in a motor bearing. In this paper we do not consider faults. In this section, an algorithm is presented for dynamic rescheduling machines and AGVs, in the presence of machine failures so that the products can still be manufactured in time. We will call it algorithm III. The major idea for this extension will be presented subsequently. 4.1
Problem Description and Solution Idea
For a system of loosely coupled cells and AGVs we consider a more realistic system where machine failures could occur. In case of a failure a machine needs repair. Machine failures and repair will occur in a stochastic fashion. The probability of more than one machine failing at the same time is assumed to be zero (cf. [AKEL90]). The repair time is assumed to last between 1 and 7 hours. Repair times of less than an hour are considered as part of normal machine maintenance. (Cell controllers, AGVs and the network are assumed to be always operational.) In case of a machine failure the production of parts or sub-assemblies may be discontinued or at least are in danger to miss their deadlines. In order to meet this challenge we introduced an additional time interval (slack) to each part/sub-assembly production time (about 5-15% of the scheduled production time). So if Di was the deadline for a particular part production in cell Ci and Pi its production time, then the latest start time is Si for the production in Ci - which will be transmitted as the deadline in bidding request - will be adjusted by a slack ∆i such that Si=Di-Pi-∆i. In case of a machine failure in cell Ci, this cell tries to reschedule the involved operations by assigning them to idle machines. If that is not possible even under the new slack Ci requests bids for part or all of the machine operations in question from neighbor cells. If a timely schedule could not be found in this way Ci notifies its bidding predecessor Ck about the failure. Ck would in turn try to reinitiate the bidding procedure for the services it expected from Ci. If a chain of failure messages would build up until it reaches the capable cell for the final product (see definition 2.3), this cell would again try to reinitiate the production job. If unsuccessful it would discard the job. In terms of rules the rescheduling part of algorithm III is indicated in section 4.2 . 4.2
Rule Description for Rescheduling (Configuration Example)
• If a machine fails in cell Cj at a certain time, then cell Cj becomes responsible for rescheduling of the parts scheduled at this time. • Let operations (O1->O2->O3->O4) be scheduled in cell Cj. Here, O2 is the successor of O1, and so on. Deadline for completion of O4 is equal to the start time of the AGV for transportation of the part to the next cell. Let machine m fail at the time of scheduled operation O2 . Here, O1 has already been completed. The local scheduler starts rescheduling. For local rescheduling to be successful, the local scheduler must be able to reschedule O2 , O3, and O4 within the cell to finish by its deadline. Cell Cj selects the machine which can start the operation O2 earliest. Similarly, machines for operations O3 and O4 are selected based on the earliest start time and after completion of the previous operation. If finish-time of O4 is before its deadline, 10
then local rescheduling is successful. Otherwise, it starts global rescheduling by requesting bids from capable cells for the job, by multicasting the message REQUEST-BID-CELL( Cj,Pj,Djt) to all the capable cells. • When rescheduling successor cell Ck receives the REQUEST-BID-CELL message for the operations (O2->O3->O4), cell Ck multicasts the REQUEST-BID-AGV (Cj,Ck,Pk) to all the AGVs requesting for transportation of part Pk, from the cell Cj to the cell Ck, by the earliest start time. A bid is submitted to the requesting cell Ck , by a message SUBMIT-BID-AGV(Av,Pk,Tv), where Tv is the earliest start time of the AGV. Cell Ck commits operation O2 after time Tv +TTv (TT is the transportation time) such that the start time is earliest. It requests bids from other cells for the operations (O3->O4). After cell Ck receives all the bids, it selects the bid which can finish the operations earliest. It submits the selected bid to the rescheduling predecessor cell Cj • Upon receiving bids from the cells, cell Cj selects the bid which can finish the operations earliest. If the selected bid meets the deadline then rescheduling is successful and cell Cj stops. Otherwise, cell Cj sends a message UNABLE-TO-SCHEDULE(Cj, Pi,Tf) to its bidding predecessor cell Ci where Tf is the new arrival time of the part Pi at the cell Ci . • Upon receiving UNABLE-TO-SCHEDULE(Cj, Pi,Tf) message, the bidding predecessor cell Ci first checks, whether the new arrival-time Tf can be accepted or not. If the additional time slack is taken into account, it is possible that Tf is early enough (Tf - Djt < slacki (P) for the component P in cell Ci ) to recover from the failure by a local rescheduling in cell Ci. In this case, no further global rescheduling is necessary. If the duration is too large the bidding predecessor cell Ci performs local rescheduling as in step 2 to make up for the delayed arrival (Tf-Djt) from the bidding successor cell Cj. If operations are rescheduled before deadline Djt , then further rescheduling is not needed, otherwise it starts rescheduling. This continues until rescheduling is successful, or until there is no bidding predecessor cell. • If there is no bidding predecessor cell and bidding is not yet successful then the algorithm discards the job. A pseudo-code of algorithm III could be found in appendix C.
5
Simulation Study
Simulation experiments have been performed for evaluating the distributed algorithm described, in the simple practical context of furniture manufacturing. Three similar product types are chosen for scheduling in three different shop floor configurations. Three product types ensures some production variety in the system, thus justifying the need of a flexible manufacturing system. Some details of the production process as well as the model for the simulation experiments are provided.
11
Op erations for Production Component
Quantity
Oper.
A
Name
Tim e
Oper Name
B.
Oper.
C
Oper. D
Time
Name
Time
30
Bend2
35
Leg
2
Cut
45
Bend1
C onnect-Leg
2
Cut
45
Dril l
Ar m
2
Cut
45
Bend1
C onnect-Arm
3
Cut
45
Dril l
152
Seat
1
Drill
152
Support- back
1
Drill
152
Sub-Assy-1
1
Screw
160
Weld
Sub-Assy-2
1
Screw
160
Weld
Sub-Assy-3
1
Screw
240
Weld
Steel Chair
1
Screw
320
Name
Time
Drill
152
Paint
200
152 25
Drill
152
240
Grind
85
200
Grind
75
200
Grind
75
Tabl e 5.1: Bi ll of M at erials and P roducti on Operations for Steel Chair. B C A
A Leg
D
B Sub-Assy-1
C A
C
D
Sub-assy-3
B A Connect Leg
B
A
B Sub-Assy-2
C
A
B A Arm
C
A
B Connect Arm
Steel Chair
A B Support-back A
B
Assembling Precedence Constraints
Seat
Machining Precedence Constraints
Fig. 5.2: An Assembling and Machining Structure of a Steel Chair
5.1
Product Model Description
The following requirements were derived from the real furniture production process for the selection of three furniture or product types: i.
Each product is produced in three different sizes, called product size.
ii.
Each product is produced by machining and assembly processes in a manufacturing environment.
iii. The average batch size of each job is 40 pieces. iv. Each job is produced within a lead time of 2 to 4 weeks. v.
The total number of parts and sub-assemblies for each product type is less than 1.
12
discrete
Leg( 2 nos.)
Connect leg( 2 )
Arm( 2)
Connect arm( 3 )
Sub-assly-1
Sub-assly-3
Sub-assly-1
Sub-assly-2
Seat
Support -back
Sub-assly-2
Sub-assly-3
St eel Chair
Fig.5.3 Sequence for Assembly of Steel Chair.
The selected product types were steel table, steel chair and bed frame . Tables 5.1 shows the bill of material and the operation times of operations for the steel chair production as an example. Figures 5.2, 5.3, show the assembly and machining constraints for the steel chair. 5.2
Shop floor Model Description
Three different shop floor configurations S1, S2, and S3 of cells and machines were selected. They are shown in table 5.4 . The following context was derived from shop floor models: i.
The assembly is either manual or done by robots.
ii.
There are at least two machines in the shop floor capable of doing any given operation.
iii. The maximum number of machines in each cell is six. iv. The machines are running one shift of 8 hours/day.
13
Cell Name
c1
Shop Name
S1,S2,S3
c2
S1,S2,S3
c3
S1,S2,S3
c4
c5
c6
S2
S3
S3
Machine Name
Operations
Mean failure time
bc-1 bc-2 pr-1 pr-2 d-1 d-2
bending,cutting bending,cutting press, rivet press, rivet drill drill
80 140 90 110 80 160
g-1 g-2 s-1 s-2 w-1 w-2
grind grind scew screw weld weld
140 160 90 180 190 100
p-1 p-2
paint paint
100 170
bc-3 pr-3 d-3 d-4
bending,cutting press, rivet drill drill
140 110 130 120
g-3 g-4 s-3 s-4 w-3 w-4
grind grind scew screw weld weld
140 110 110 150 130 120
bc-4 bc-5 pr-3 pr-4 d-5 d-6
bending,cutting bending,cutting press, rivet press, rivet drill drill
160 90 120 80 140 130
Table 5.4 Shop-floor configurations and Operation capability of machines
14
5.3
Simulation Experiments
The set of jobs requested by the customers per day is defined as job set. Its quantity is called job set quantity. The subset of the job set quantity that could be successfully scheduled is called the guaranteed job set quantity. For each shop floor configuration, three different batch size patterns are selected as shown in the table below: Batch size
Batch size
Batch sizes
Variation
Min
Max
permitted
Small
30
50
30, 40, 50
Medium
20
60
20,30,40,50,60
Large
10
70
10,20,30,40,50,60,70
Table 5.5 Batch sizes of Jobs for Simulation Model. For example, for a simulation run with medium batch size variation, the batch size will be 20,30,40,50,or 60. For the simulation study a job generator module generates five customer-requested jobs (as 1 jobset) per day. For each job, it generates the product type from the 3 different types, the product size from three sizes, and the batch size. The deadline value of the job is chosen between minimum and maximum time values, by uniformly distributed random number generation. The following conventions are used:
5.3
Minimum_time_of_deadline
= Current_time + (Lead_Time * Batch_Size)
Maximum_time_of_deadline
= Minimum_time_of_deadline + Maximum_Laxity
Lead_Time
= Average lead-time for the batch size = 1 (= production time)
Maximum_Laxity
= 20 days (considered equal to the lead time of 20 days for a product with average batch size).
Results
5.3.1 Algorithm I From the beginning of section 3 we recall that transportation for parts from one cell to another one is assumed to be available whenever needed, at constant costs. 9 different types of simulation runs were performed for accommodating the 3 shop configurations and 3 batch size variations. Each simulation is run over a 50-day time period. The performance of the algorithm is evaluated by looking at the pattern of the guaranteed job set quantity, relative to the job set quantity for each of the simulation runs. In figures 5.6, 5.7 and 5.8 the graphs show for each day the job set quantity and the guaranteed job set quantity as scheduled by the algorithm, each for one of the three shop floor configurations and batch size variations. (Note that the graphs do not show the quantity actually produced on any given day. They show only the quantity scheduled on the particular day.) Figure 5.6 shows the graphs for the shop configuration S1. The requested job quantity is equal to the guaranteed job set quantity for the first seven days. Hence the graphs coincide. This is because during the initial stages of the simulation, all the machines are free. After seven days, the unavailability of time slots on machines causes quite a few jobs to fail. It can also be seen that during simulation with medium batch size variation more jobs than with small batch size variation
15
Figure 5.6: Cell Scheduling Configuration #1
can be guaranteed. This is because the smaller size jobs could readily fit into the small free slots of the machine schedules. By the same token, the large batch size variation allows a still larger number of jobs to be scheduled in due time. For the shop floor configurations S2 and S3, with their increasing number of cells and machines, the requested job set quantity was equal to the guaranteed job set quantity even for the first eight to
16
Figure 5.7: Cell Scheduling Configuration #2
fifteen days, compared to seven days in cell configuration S1 (see fig 5.7 and 5.8). Also otherwise the increasingly better basis for bidding results in a clearly better performance of Algorithm I. Using the data in figures 5.6, 5.7, and 5.8 the mean and standard deviation for each simulation run are calculated in the table below:
17
Figure 5.8: Cell Scheduling Configuration #3
18
Shop-Config
Graph
Sample Size
Mean
Standard Deviation
S1
S2
S3
A
40
51.8
39.5
B
40
59.7
48.0
C
40
59.3
34.1
A
40
76.3
40.9
B
40
78.5
45.2
C
40
75.3
48.5
A
40
136.0
50.3
B
40
137.8
52.9
C
40
143.3
58.9
Table 5.9 Mean and Standard Deviation of the Simulation Runs. To compare the mean deviation of the simulation runs, a significance test was performed. Table 5.10 below shows the computed test values given by the test. Shop-floor (Graph)
Combined
Test Statistic
S.D
Confidence Interval
S1(A) and S2(A)
40.2
2.7
24.5 ± 15.1
S1(B) and S2(B)
46.6
1.8
18.8 ± 17.5
S1(C) and S2(C)
42.1
1.7
16 ± 15.8
S2(A) and S3(A)
45.8
5.76
59.7 ± 17.2
S2(B) and S3(B)
49.2
5.32
59.3 ± 18.5
S2(C) and S3(C)
54.0
5.56
65 ± 20.3
Table 5.10 interval
Statistical Analysis of the Simulation Runs at a 90% confidence
For all cases in table 5.10 the test statistic is greater than 1.67. Also the confidence interval does not include zero. Hence, we can say with 90% confidence that the mean quantity scheduled increases in shop configuration S2 compared to S1. Also, the mean quantity of scheduled jobs increases again in shop configuration S3, compared to S2. 5.3.2
Algorithm II
The performance of the algorithm was evaluated in the shop floor configuration S2, with 1, 2 or 3 AGVs. (S2 can be found in table 5.4. It consists of the cells c1, c2, c3, c4.) For every day the guaranteed job set quantity was compared to the job set of that day. The time of transportation between any pair of cells which includes loading and unloading, is assumed to be known (within the range of 12 to 15 minutes). The medium batch size variation is assumed for the arriving jobs (see table 5.5).
19
The results of the simulation are shown in graphs A, B and C of figure 5.11. The simulation runs were performed over a 50 day time period. The quantity which could not be scheduled to meet the deadline was discarded. Note again that the graphs do not show the quantity actually produced on any given day. They only show the quantity scheduled on each day. In graph A, when there is only one AGV in the system, the requested quantity was equal to the guaranteed job quantity on the first day. Hence the graphs coincide. This is so since during the initial stage of the simulation, all the time slots of the machines and (the only) AGV are free. In graph B, when there are two AGVs in the system, the requested quantity was equal to the guaranteed job quantity for the first two days while in graph C, this optimal scheduling result lasted even for the first five days. The reason is that the availability of additional AGVs in the system provided a growing number of empty time slots for transportation in second and third graphs. For the graphs in figure 5.11, we computed the mean and standard deviation of the simulation runs as shown in table 5.12 below: Shop-Config.
Graph
Sample Size
Mean
Standard Deviation
S2
A
40
29.5
27.6
B
40
48.0
43.0
C
40
57.0
40.5
Table 5.12 Mean and Standard Deviation of the Simulation Runs Table 5.13 below shows the results of the ‘t-test’. Graphs
Combined S.D.
Test Statistic
Confidence Interval (90%)
A and B
36.1
2.3
18.5 ± 13.6
B and C
46.6
1.0
9.0 ± 15.7
Table 5.13 Statistical Analysis of the Simulation Runs at a 90% confidence interval The test statistic is 1.67 at the 10% significance level (or 90 % confidence interval). The test statistic in table 5.13 for the graphs A and B is less than 2.3 > 1.67. Also the confidence interval does not include zero. Hence, we can say with 90% confidence that the mean quantity scheduled increases in graph B relative to graph A. In configuration B, the replication of AGVs, provides a higher transportation availability, resulting in fewer deadline failures. For graphs B and C, the test statistic is 1.0 < 1.67. Also the confidence interval includes zero. Hence, we can say with 90% confidence that the mean quantity scheduled does not increase in graph C relative to graph B even though one more AGV has been added. In this configuration the machines in the shop floor are not able to produce enough parts to keep all three AGVs busy. 5.3.3 Algorithm III A module for machine failure generation has been added. This module generates exponentially distributed random machine failure patterns in the system. The mean working time of the machines in the system is set to vary between 80 and 200 hours. The mean time for an operator to repair a machine which experiences a failure was between 1 and 7 hours. The module first 20
generates the mean time of failure for a machine by the uniform distribution. This mean value was used to generate the exponentially distributed random repair time. For higher flexibility of cell scheduling under machine failures a slack of 10% was added (see section 4.1). If no job was scheduled for production during a machine breakdown no production delay was to be experienced. Hence no rescheduling was done. Cell configuration S3 of table 5.4 with two AGVs was selected for the simulation, and the medium batch size variation was assumed for the arriving jobs. The simulation was run three times, each time for the duration of fifty days. A different seed number was used in each simulation run so that different machine failure patterns were generated each time. In figure 5.14 the number of deadline failures per day with and without the rescheduling algorithm were plotted in the same graph. In figure 5.15, the total quantity which Algorithm III was able to reschedule successfully was plotted. Using the data of the graphs in figure 5.15 the mean and standard deviation of the rescheduled quantities in each simulation run were calculated in table 5.16 below: Shop-Config.
Graph
Sample Size
Mean
Standard Deviation
S3
A
35
27.1
30.8
B
35
30.9
31.6
C
35
26.3
30.1
Table 5.16 Mean and Standard Deviation of Various Simulation Runs. For compare the mean deviations of the simulation runs a significance test which is known as 'ttest' was performed. Table 5.17 below shows the calculated values given by the ‘t-test’. Graphs
Combined S.D.
Test Statistic
Confidence Interval (90%)
A and B
31.2
0.63
4.8 ± 12.6
B and C
30.9
0.61
4.6 ± 12.4
A and C
30.5
0.11
0.1 ± 12.3
Table 5.17 Statistical Analysis of Various Simulation Runs at 90% confidence interval From the t-table, using 68 degrees of freedom, the test statistic is given as 1.67 at the 10% significance level (or 90 % confidence interval). The test statistic in table 5.17 for all the graphs is less than 0.64. Also the confidence interval includes zero in all the cases. Hence, we can say with 90% confidence that the mean quantity rescheduled is the same in all simulation runs, thus confirming that the simulation runs are representatively significant.
6
CONCLUSION
In this paper we presented novel distributed algorithms for production scheduling in an automated manufacturing system. We incrementally extended a new distributed cell scheduling algorithm by
21
integrating, through model refinement, Automated-Guided-Vehicle (AGV) scheduling and finally, through adding slack times for cell operation and transportation deadlines, by adaptive distributed rescheduling features for handling transient machine failures, thus providing for fault tolerance capacity. Even for the singular cell scheduling problem as dealt with in section 2, there had not been any distributed algorithm in the literature to handle both machining and sub-assembly operations. The further integration of AGV scheduling and adaptive rescheduling in case of transient machine failures are original contributions from our research that have not really been addressed so far. We performed preliminary simulation studies with a real manufacturing example (furniture production) and realistic data. The results show how with increased replication of machines the real-time performance improves considerably. The flexibility of the underlying bidding technique is further demonstrated by the improved performance under higher variation of batch sizes since the algorithm obviously takes good advantage of smaller batches to be scheduled as smaller time slots will be immediately utilized. One of the open questions we are currently investigating is the impact of the frequency of variation of batch size over time, on the real-time behavior of the system. In the experiments with Algorithm II, we found a direct performance dependency on the number of AGVs involved until the cell throughput arrived at a limit while the available AGV capacity was not exhausted. When comparing Algorithm III with its rescheduling features to Algorithm II as a benchmark under different failure injection patterns, the performance was throughout found highly superior, due to the rescheduling techniques used in Algorithm III. In our current research we are working on the problem how to minimize penalties for missed job deadlines, a conceptual refinement of the deadline studies which have been given considerable attention, however, in the centralized control case only. As a problem of a very high practical impact, a major body of work is now being devoted to adaptively tailoring the degree of replication of machines or cells, according to local needs and costs. This is beyond the scope of this paper. References: [AKEL90]
Akela R., Krogh B.H., and Singh M.R., ‘Efficient Computation of Coordinating Controls in Hierarchical Structures for Failure-Prone Multi-Cell Flexible Assembly Systems’, IEEE Transactions on Robotics and Automation, vol. 6, No. 6, Dec 1990.
[DAVI83]
David R., and Smith R., ‘Negotiation as a Metaphor for Distributed Problem Solving’, Artificial Intelligence, 20, pp. 63-109, 1983.
[DILT91]
Dilts D.M., Boyd N.P. and Whorms H.H., ‘The Evolution of Control Architectures for Automated Manufacturing Systems’, Journal of Manufacturing Systems, vol. 10, no. 1, pp. 79-93, 1991.
[JONE86] Jones A. T. and McLean C.R., ‘ A Proposed Hierarchical Control Model for Automated Manufacturing Systems,’ Journal of Manufacturing Systems, vol. 5, no. 1, pp. 15-25, 1986. [NI89] Ni L.M. and Wu C.-F. E.,’ Design Tradeoffs for Process Scheduling in Shared Memory Multiprocessor Systems,’ IEEE Transactions on Software Engineering,’ vol. 15, no. 3, Mar 1989. [RAMA84]
Ramamrithm, and Stankovic J., ‘Dynamic Task Scheduling in Hard Real Time Distributed Systems,’ Proceedings of Distributed Computing Systems Conference, pp. 96-107, 1984.
[SHAW87]
Shaw M.J.P., ‘A Distributed Scheduling Method for Computer Integrated Manufacturing: the use of Local Area Networks in Cellular Systems, ‘International Journal of Production Research, vol. 25, no. 9, pp. 1285-1303, 1987.
[STAN85]
Stankovic J.A., Ramamritham K. and Cheng S., ‘Evaluation of a Flexible Task Scheduling Algorithm for Distributed Hard Real-Time Systems,’ IEEE Transactions on Computers, vol. c-34, no. 12, pp. 1130-1143, Dec. 1985.
22
[XU90] Xu J., and Parnas D.L., ‘Scheduling Processes with Release Times, Deadlines, Precedence and Exclusion Relations,’ IEEE Transactions on Software Engineering, vol. 16, no. 3, pp. 564-577, Mar 1990. [ZHAO85]
Zhao W., and Ramamritham K., ‘Distributed Scheduling using Bidding and Focused Adressing,’ Proceedings of IEEE Real-Time Systems Symposium, pp. 103-111, Dec. 1985.
[ZHAO87]
Zhao W., Ramamritham K. and Stankovic J.A., ‘Scheduling Tasks with Resource Requirements in Hard Real-Time Systems,’ IEEE Transactions on Software Engineering, vol. SE-13, no. 5, pp. 564577, May 1987.
[TAN93]
Taneja S.K., ‘Distributed Computing in Computer-Integrated-Manufacturing Systems,’Ph. D. Dissertation, Wayne State University, Detroit, Michigan, 1993.
23
Appendix A: Outline of Algorithm I JN : Job no.
Sl: Start-time of the selected bid. CT : Current-time.
{oi1,oi2,...oim} = Operations of JN Cr : Bid Requesting Cell.
Cs: Bid Submitting Cell. Fs : Finish-time of an operation in cell Cs. Ss : Start-time of an operation in cell Cs.
oij : Operation of part pi to be scheduled. di : Deadline to complete operation oij. Cr: Request-a-Bid (JN,Cr) Multicast Request-a-Bid(JN,Cr). Store the JN in wait-for-bid queue.
Cr: Evaluate-a-bid (JN,Ss) Whenever a cell submits bid do; If (di-Ss ) < (di- Sl) then do; Sl=Ss;
Cs: Compute-a-Bid (JN)
end do;
Upon receiving a Request-a-Bid message
Response-to-Bid(JN,Cs,RELEASE);
do; For o=(oij,oi(j+1),.....oim) compute start-time SS of o with min(di-Ss).
cells OR time-out has occurred then do;
If Submit-a-Bid message is received from all the
If none of the machines can perform operation o then do; If o> oij
If no bidding predecessor cell exists then do; Response-to-Bid(JN,Cs,SCHEDULE)
then do; Request-a-Bid(JN,Cr )
end do; else do;
end do;
Submit-a-Bid(JN,Cr,Sl) end do;
Return; end do; else do; d i = Fs end do; end For; If component part(s) exists then do; Request-a-Bid(JN,Cr) for the part(s) end do; else do; Submit-a-Bid(JN, Cr,Ss) end do; end do;
end do; end do; Cr: Response-to-Bid (JN,Cs,message) (* message = SCHEDULE :- Bid has been accepted *) (* message = RELEASE :- Bid has been rejected *) If message= RELEASE then do; Delete the commitments. end do; If message = SCHEDULE then do; Schedule the commitments for production end do; To each of the bidding successor cells do; Send a Message Response-to-Bid( JN,Cs,message). end do; Cs: Submit-a-Bid (JN,Cr,Ss) Send a message Submit-a-bid(JN,Ss) to Cr. Delete the JN in wait-for-bid queue.
24
Appendix B: Outline of Algorithm II JN : Job no. {oi1,oi2,...oim} = Operations of JN
Sl : Start-time of the selected bid.
d : Deadline for transportation Cr : Bid Requesting Cell.
CT : Current-time. Cs : Bid Submitting Cell.
ST : Start-time of transportation in AGV As.
oij : Operation of part pi to be scheduled.
Ss : Start-time of an operation in cell Cs.
di : Deadline to complete operation oij.
Fs : Finish-time of an operation.
As: Bid Submitting AGV.
compute start-time SS of operation o with min(di-Ss).
Cell:Request-a-AGV-Bid (JN,Cr)
If none of the machines can perform operation o then do; If o> oij
Broadcast message Request-a-Bid(JN,Cr) to all the AGVs. Store the JN in wait-for-bid queue.
then do; Request-a-Bid(JN,Cr )
AGV:Compute-a-Bid (JN) Compute start-time ST of the AGV with min(d -ST). if the AGV cannot meet the deadline d then do; Return; end do; AGV:Submit-a-Bid(JN,Cr,ST)
end do; Return; end do; else do; d i = Fs end do; end For; If component part(s) exists then do; Request-a-Bid(JN,Cr) for the part(s)
AGV:Submit-a-Bid (JN,Cr,ST) Send a message Submit-a-bid(JN,As,ST) to Cr
end do; else do; Submit-a-Bid(JN, Cr,Ss)
AGV:Response-to-Bid (JN,message) (* message = SCHEDULE :- Bid accepted *) (* message = RELEASE :- Bid rejected *) If message = RELEASE then do; Delete the commitments. end do; If message = SCHEDULE then do; Schedule the commitment. end do;
end do;
end do;
Cr: Response-to-Bid (JN,Cs,message) (* message = SCHEDULE :- Bid has been accepted *) (* message = RELEASE :- Bid has been rejected *) If message= RELEASE then do; Delete the commitments. end do; If message = SCHEDULE then do; Schedule the commitments for production end do; To each of the bidding successor cells do; Send a Message Response-to-Bid( JN,Cs,message).
Cell:Evaluate-a-AGV-bid (JN,As,ST) If (d -ST ) < (d - Sl) then do; Sl=ST; end do; Cell:Response-to-Bid(JN,As, RELEASE)
end do;
If Submit-a-Bid message is received from all the AGVs OR time-out has occurred then do; Cell:Compute-a-Bid(JN) end do;
Cr: Evaluate-a-bid (JN,Ss) Whenever a cell submits bid do; If (di-Ss ) < (di- Sl) then do;
Cell:Response-to-a-AGV-Bid (JN,As,message) (* message = SCHEDULE :- Bid accepted *) (* message = RELEASE :- Bid rejected *) Send message Response-to-Bid(JN,message) to As
Sl=Ss; end do; If Submit-a-Bid message is received from all the cells OR time-out has occurred then do; If no bidding predecessor cell exists then do; Response-to-Bid(JN,Cs,SCHEDULE)
Delete the JN in wait-for-bid queue.
end do; else do; Submit-a-Bid(JN,Cr,Sl)
Cr: Request-a-Bid (JN,Cr) Multicast Request-a-Bid(JN,Cr). Store the JN in wait-for-bid queue.
end do; end do; end do;
Cs: Compute-a-Bid (JN) Upon receiving a Request-a-Bid message do; Request-a-AGV-Bid(JN,CS) For o=(oij,oi(j+1),.....oim)
Cs: Submit-a-Bid (JN,Cr,Ss) Send a message Submit-a-bid(JN,Ss) to Cr. Delete the JN in wait-for-bid queue.
Appendix C: Outline of Algorithm III JN : Job no. {oi1,oi2,...oim} = Operations of JN
d : Deadline for transportation Cr : Bid Requesting Cell.
25
oij : Operation of part pi to be scheduled. oif : operation with failure di : Deadline to complete operation oij. As: Bid Submitting AGV. Sl : Start-time of the selected bid. ST : Start-time of transportation in AGV As. CT : Current-time.
Cs : Bid Submitting Cell. Ss : Start-time of an operation in cell Cs. Fs : Finish-time of an operation ET: Earliest Time. EF : Earliest Finish Time SEF: Selected Earliest Finish Time RS: Rescheduling(used in procedurenames)
Reschedule For o=(oif,oi(f+1),.....oim) compute start-time SS of operation o with min(EF). If none of the machines can perform operation o then do; Request-a-RSBid(oif,oi(f+1),.....oim,Cr,CT) end do; return; else do; EF=Fs; end do; end for; if EF>di
Cr: Response-to-RSBid (JN,Cs,message) (* message = SCHEDULE :- Bid has been accepted *) (* message = RELEASE :- Bid has been rejected *) (* message = UNABLE :- operations couldn't be rescheduled in the cell to meet the deadline *)
then do Request-a-RSBid(oif,oi(f+1),.....oim,Cr,CT) end do; Cs: Compute-a-RSBid (oif,oi(f+1),.....oim) Upon receiving a Request-a-RSBid message do; Request-a-AGV-Bid(JN,CS) compute start-time SS of operation o with min(di-Ss). If none of the machines can perform operation o then do; Return; end do; else do; EF = Fs Request-a-RSBid(oi(f+1),.....oim,Cr,EF) Submit-a-Bid(JN, Cr,EF) end do; end do; Cr: Evaluate-a-RSBid (JN, EF) Whenever a cell submits bid do; If (EF