Proceedings of the ASI'2000 Conference; Bordeaux, France; September 18th - 20th , 2000
NEGOTIATION-BASED MANUFACTURING CONTROL IN HOLONIC MANUFACTURING SYSTEMS Olaf Bochmann, Paul Valckenaers, Hendrik Van Brussel Katholieke Universiteit Leuven Faculty of Engineering Department of Mechanical Engineering Division of Production Engineering Machine Design & Automation B-3000 Leuven, Celestijnenlaan 300B, Belgium Voice: (+32) 16 32 25 15 Fax: (+32) 16 32 29 87
[email protected]
ABSTRACT The dream of holonic manufacturing is that fully operational Computer Integrated Manufacturing systems can be installed by merely plugging together manufacturing resources that are each controlled by an individual agent. The functionality of an holonic architecture would supersede and integrate the functionality currently in the islands of automation in Manufacturing Resource Planning (MRP II) systems, Distributed Control Systems (DCS), Manufacturing Execution Systems (MES) and Shop-Floor Control (SFC) systems, while providing additional benefit of fault tolerance, modularity, local empowerment, and overall flexibility. In a scenario, where order holons negotiate with resource holons to execute an operation, resource holons need to know about the market value of the capacity of their resource. We describe a new algorithm, called distributed probabilistic scheduling, that defines a probabilistic time window within which a resource holon can autonomously schedule an engagement. An engagement is used to express the likelihood that an operation is going to be executed on a certain resource. We propose the use of Bayesian Networks to encode this probabilistic model. This model provides an estimate of the predicted load over time for each resource. It also allows deferring resource allocation decisions until the last possible moment. The load estimate can help to optimize resource allocation decisions. The agents will continually update the probabilistic model based on these decisions.
1. INTRODUCTION A key requirement for most manufacturing control systems is to schedule the future use of the factory's resources. Manufacturing control architectures have traditionally been centralized. They have been evolving towards to hierarchical systems using client / server architectures. But already in the mid 1980's researchers at Rensselaer Polytechnic Institute began investigating the possibility of heterarchical architectures. From this work, the Contract Net negotiation protocol [1] was developed. But still the preponderance of opinion has been that manufacturing control architectures should be strictly hierarchical. József Hatvany [8] espoused the advantages of heterarchical manufacturing control and claimed heterarchy would provide more flexibility. These voices fell mostly on deaf ears until the Holonic Manufacturing Systems research project was lunched. At the end of its first phase, this project has shown the feasibility of holonic techniques in a range of applications. It is now looking for physical demonstrators. The PROSA reference architecture [2][3] is also a result of this project. In this architecture, the schedule for the use of the factory's resources emerges from the interactions of different holons as they seek to fulfill their commitments. Sauter and Parunak [4] have proposed an algorithm called Density-based Emergent Scheduling Kernel (DESK). DESK uses probabilistic committed capacity profiles of resources over time to provide a surface over which the agents can wander looking for opportunities to optimize. We introduce an algorithm called Distributed Probabilistic Scheduling (DPS) providing capacity profiles based on probabilistic time windows and probabilistic engagements. These capacity profiles are used to propagate intentions and give an estimate of the predicted load to the resource holons. The model for the probabilistic time windows includes all operations of a thread of the process plan and the due date. The model for probabilistic engagements includes all feasible resources coming in consideration to execute an operation. Since the agents continually updating the probabilistic model based on committed decisions, the alternatives in the decision tree are decreasing and the probabilities of upcoming events are increasing. Section 2 describes the concept of market-based control, the reference architecture for holonic manufacturing systems, and the communication protocol for holons. In section 3 we focus on the mathematical aspect of capacity profiles.
-1-
Section 4 introduces the Distributes Probabilistic Scheduling algorithm. Section 5 offers a summary and some conclusions.
2. MARKETS AND NEGOTIATION Market-Based Control [7] is a paradigm for controlling complex systems that would otherwise be very difficult to control, maintain, or expand. Decentralization, interacting agents, and some notion of a resource that needs to be allocated are features of markets that have provided motivation for this work. In a market based system the "control" emerges from the individual goals of the agents rather than a central goal imposed from above. The simple interactions of trading like selling and buying, among individual agents lead to a desirable global effect, such as stable prices or fair allocation of resources. Holonic manufacturing [5] is a distributed approach for the development and operation of manufacturing systems. It introduces a dynamic hierarchy in the system, enabling itself to reconfigure. The basic entities in these systems are holons. A holon is an autonomous1 and co-operative2 building block of a manufacturing system. It can be responsible for transforming, transporting, storing and/or validating information and physical objects. The holon consists of an information processing part and occasionally an associated physical processing part. The PROSA [2][3] reference architecture for holonic manufacturing systems, describes three types of holons: product holons, resource holons, and order holons. A product holon holds the process and product knowledge to ensure the correct fabrication of the product with sufficient quality. It acts as an information server to the other holons types. A product holon provides consistent and up-to-date information on the product life-cycle, user requirements, design, and process plan and bill of material. A resource holon consists of a physical part, namely a production resource and of an information processing part that controls the resource. It offers production capacity to the order holons and functionality to the product holons. It holds the method to allocate the production resource, and the knowledge and procedures to organize, use and control these production resources to drive production. A resource holon is an abstraction for the production means. An order holon represents a manufacturing order. It is an active entity responsible for performing the work correctly and on time. Figure 1 shows a system of that holons what we call a holarchy. Within this system the holons can co-operate under certain rules in order to achieve a goal or objective. Considering a market-based concept for a heterarchical control approach, the different holon types are the market participants. Between themselves they create tree different cooperation domains: one for production knowledge, one for process knowledge, and one for process execution knowledge. In a practical application, product holons can be created based on a real or forecasted market demand for a particular product. These product holons determine themselves how the product can be produced. They use information about the abilities of the dynamic set of resource holons. When an order holon arrives in the system, it will consult the respective product holon on how to produce the product demanded in the order. As a result, the order holon receives and maintains a process plan. Then, the order holon will negotiate with the resource holons in order to have themselves produced. The result of such a negotiation process is the allocation of a resource to a specific task of the process plan.
Order Holon
Process Execution Knowledge
Production Knowledge
Resource Holon
Product Holon
Process Knowledge
Figure 1: Holonic system in manufacturing.
1 2
Autonomy: The capability of an entity to create and control the execution of its own plans and/or strategies. Co-operation: A process whereby a set of entities develops mutually acceptable plans and executes these plans. -2-
The contract net system supplies a communication protocol for holons, the Contract Net Protocol [1], for carrying out this mutual selection process. When an order enter the system, the order holon becomes a task manager. A task manager generates subtasks from the task description, constructs task announcements for each subtask. He can distribute them either by broadcasting to all nodes or by focused addressing to a selected subset of nodes. Then he selects the most appropriate returned bid and allocates the subtask to that bidder. The task manager monitors the progress on the contract, possibly requesting information, interim reports etc. The manager is free to reallocate the subtask if the contractor fails to complete it in a timely manner. The workers receive task announcements, evaluate their own eligibility, and return bids to do the subtasks and perform subtasks allocated to them. They can also report results produced from performing subtasks to the manager of the subtask and may exchange procedures and data with other nodes to augment their capabilities.
A manager announces the existence of tasks via a multicast. pot. Contractor 1
Agents evaluate the announcement., Manager pot. Contractor 2 pot. Contractor 1 Time
pot. Contractor 3
The manager awards a contract to the most appropriate agent
Manager some of the agents submit bids.
pot. Contractor 2
Contractor pot. Contractor 3 Manager Agent 2 The manager and contractor communicate privately as necessary.
Agent 3
Figure 2: Contract Net Protocol.
3. CAPACITY PROFILES Sauter and Parunak [4] introduced the concept of capacity profiles, where engagements on a resource are described by a kernel k, representing the operation time and the commitment window, representing a time window, within which a specific operation has to be executed. Figure 3 shows four capacity engagements whose kernal width varies as a percentage of the commitment window width. If we assume that the kernal can slide anywhere within the working window with equal probability we can construct committed capacity profiles for any engagement that represents the amount of resource‘s capacity committed to executing that engagement at any point in the time. More generally we can say that the execution of an engagement on a resource can not be started before the earliest start time EST of the commitment window, and can not be started after last finishing time LFT of the commitment window minus kernel time k. It can be considered as certain, that a resource starts some time between EST and LFT-k:
P(EST ≤ Start ≤ (LFT − k )) =
LFT −k
∫ f (t )dt = 1 . Start
EST
It follows from that that:
0, t < EST , t > (LFT − k ) ′ where FStart (t ) = f Start (t ) and f Start (t ) ≥ 0 . FStart = 1, EST ≤ t ≤ (LFT − k )
Respectively, it can be considered as certain, that a resource finishes some time between EST+k and LFT:
-3-
(1)
P((EST + k ) ≤ End ≤ LFT ) =
LFT
∫ f (t )dt = 1 .
(2)
End
EST + k
It follows from that that:
0, t < (EST + k ), t > LFT ′ where FEnd (t ) = f End (t ) and f End (t ) ≥ 0 . FEnd = 1, (EST + k ) ≤ t ≤ LFT
The committed capacity cc at time t on resource i and for engagement j is the difference of the probability that the execution of that engagement has been started and the probability that it has been finished at this time: t
t
0
0
cc(t)
fStart(t)
(3)
fEnd(t)
1
fStart, End(t)
cc(t)
1
fStart, End(t)
cci , j (t ) = ∫ f Start (t )dt − ∫ f End (t )dt . fStart(t)
fEnd(t) P(0 ≤ Start ≤ t )
P (0 ≤ Start ≤ t )
P(0 ≤ End ≤ t )
cc(t)
P (0 ≤ End ≤ t )
cc(t) LFT-k
EST+k
cc(t)
fStart, End(t)
1
cc(t)
fStart(t)
0 t
1
fEnd(t)
P(0 ≤ Start ≤ t )
P (0 ≤ End ≤ t )
P(0 ≤ Start ≤ t )
0
EST
LFT-k= EST+k
CW
K
LFT 50%
0 t
EST CW
t
25%
cc(t)
fStart(t)
P(0 ≤ End ≤ t )
LFT
K
CW
fEnd(t)
LFT-k
EST+k
EST
10%
K
CW
LFT
cc(t)
EST
fStart, End(t)
0
LFT-k
EST+k K
LFT
t
75%
Figure 3: Committed capacity profiles 10%; 25%; 50%; 75%.
To get the Combined Committed Capacity Profile for resource i, the individual committed capacity profiles cci,j can be added:
ccci (t ) = ∑ j cci , j (t ) .
(4)
Figure 4a shows the “dance card” of a resource with 4 engagements. This function provides a profile that can be used to guide the location of future engagements and to inform the resource of potential scheduling conflicts that need to be resolved. In Figure 4a the capacity profiles of engagements 1, 2, and 3 overlap in such a way that the resource’s capacity is committed beyond 100% for a time. In This example, Engagement 1 uses 100% of the capacity of the resource during part of its working window. If the working window of engagement 2 and 3 where changed so as to avoid overlapping with that region of engagement 1 then the over capacity violation would be eliminated.
ccc' (t ) = ∑i cc'i (t )
(5)
Figure 4b shows the Combined Committed Capacity Profile after that adjustment has been made. These decisions can be done with straightforward algorithms without the need for complex reasoning. The capacity conflict was resolved
-4-
without having to make any changes in the commitments to the upstream or downstream processes. If the resource is unable to resolve the conflict by moving the working window it may renegotiate the original commitment window on an engagement and as a last result, renege on its commitment entirely. Resources use their committed capacity profiles to encourage placements of future engagements in regions of low committed capacity by charging increasing hourly rates for increasing committed capacity. These cost profiles can be used to select which engagement to adjust when there are several alternatives available to resolve an over committed region. By determining which move results in a lower overall cost the resource is able to pick the best engagement to adjust. Eng 1
k1
Eng 1 CW 1
Eng 2 k3
Eng 3 k4
Eng 4
k2
k1
Eng 2 CW 2
k3
Eng 3
CW 3
k4
Eng 4
CW 4
WW 1
k2 WW 2
WW 3
WW 4
1.6 1.2 0.8 0.4
ccEng 3
ccEng 4
ccEng 1
t Committed Capacuty
Committed Capacuty
t
cccEng 1-4 ccEng 2
1.6 1.2 0.8 0.4
cc'Eng 3
cc'Eng 1
cc'Eng 4
ccc'Eng 1-4 cc'Eng 2
t
t
Figure 4: Combined committed capacity profiles.
4. DISTRIBUTED PROBABILISTIC SCHEDULING Scheduling is defined as the process of optimizing resource allocation decisions on beforehand. Thus it refers to performance criteria like throughput, work-in-process, flow time, and tardiness. On the other side, resource allocation is the decision for all operations when and with which resource to perform. It is usually a subject to constraints, like limited capacity of a resource, or precedence relations between operations. Here, we consider scheduling as a down stream propagation of feasible intentions. Intentions are encoded as prenegotiated engagements on resources. Figure 5 shows a set of engagements necessary to fulfill a certain order. Each engagement includes a committed capacity cci on an arbitrary resource, where i stand for an operation out of a fixed sequence of n operations of a thread of the process plan. Also part of the engagement is a fixed time slot ESTi≤Ti≤LFTi,, within the operation has to be executed. Since we consider transport of parts form one resource to another as integrated in the operation (or even as a separate operation), the end of a time slot is at the same time the begin of the following time slot LFTi=ESTi+1.
i =1 0, . ESTi = LFTi−1 , 2 ≤ i ≤ n
(6)
To create the commitment windows it seems to be useful to distribute the slack time over the individual operations proportionally. A customer order defines a product and a due date. The product specification results in a process plan with n operations and individual operation times ki. The total operation time is the sum of the individual operation times n
To = ∑ ki . The slack time is the difference of available time, given by the due date, and the operation time i =1
Ts = Ta − To . The time for each commitment window results in LFTi − ESTi = ki n
LFTi = ∑ ki i =1
Ta . To
Ta and To (7)
-5-
.5
fStart 1(t)
fEnd 1(t)
fStart 2(t)
fEnd 2(t)
3