next up previous contents
Next: The PMC Model Up: No Title Previous: COOrdination Language

The Simple Model


Introduction and Objectives

As a preparation for the design and implementation of a multi-echelon supply chain model, a simpler model was chosen. The Simple Model is an enterprise model with low structural complexity developed at Hewlett-Packard Laboratories. The model in described by M. Shahid Mujtaba [18]. Mujtaba's purpose when creating the model was to explore the relationship between different factors and metrics used in manufacturing. This was to be achieved through simulation. When gathering data from the simulation, Mujtaba [18] focused on metrics related to inventory levels and write-off at the end of the product life cycle (EOL write-off), as well as customer satisfaction. Mujtaba [18] describes the model and results of the simulations.

The objectives when implementing the Simple Model using COOL were several:

This chapter describes the model, and its COOL design and implementation. The model described here is as good as identical to the one described by Mujtaba [18], and the name, the Simple Model, is therefore kept. It is only in the implementation that the models differ.

Overview of the Model


The Enterprise and Product

The Simple Model as it is implemented here is a model of a small manufacturer of lamps. The manufacturer assembles the lamps from nine parts of three classes: three A parts, three B parts, and three C parts. There is one unit of each part in a lamp. The three parts of each class are indexed with 1, 2, and 3. Table gifa) shows the value of each part. As shown in Table gifb) the value of the A, B, and C parts are 50, 30, and 20 percent of the product value respectively.

Table: Parts, Values, Safety Stocks and Lead Times in the Simple Model.

The Assembly Plant and Inventories

  As shown in Figure gif, there are three inventories in the model: The raw product inventory (RPI), the work in process (WIP), and the finished goods inventory (FGI). The RPI is the inventory for incoming parts ready to enter assembly, the WIP are the products that are in the assembly, and in the FGI we find the finished products ready for shipment to customers.

Figure: The entities and material flow in the Simple Model

A safety stock is the stocking level desired at any time for a given part in a given inventory. Holding inventory is costlygif, and the ideal situation would therefore be to have no parts in stock when they are not immediately needed. In the real world however materials and production planners meet many uncertainties. A safety stock superior to zero is therefore in general required for the RPI and FGI.

Although there are no uncertainties in this model, the principle of safety stocks is addressed. In the Simple Model safety stocks are calculated as a set number of weeks of the average forecasted demand for the 13 next weeks (including this week). We call this weeks of safety. For example if the average forecasted demand for part A.1 the next 13 weeks is 40, and the weeks of safety is 4, the safety stock level is set to 160. Table gif shows the weeks of safety for the different part classes. A parts have 4 weeks, B parts 8, and C parts have 16 weeks of safety. For the FGI we use 2 weeks of safety.

Time and Material Flow

Time is measured in weeks. When a month is used this signifies four weeks.

When arriving from the suppliers the parts enter the RPI (see Fig. gif). From the RPI the parts enter assembly (WIP), and are now referred to as products. A set of one unit of each of the nine parts makes up one product.

The parts have different lead times from suppliers according to the index. These are shown in Table gifc). Parts of index 1 have 6 weeks lead time, index 2 parts have 10 weeks, and index 3 parts 14 weeks. All parts are delivered according to lead time, and there are no damaged parts.

Figure: Timeline of materials flow.

Figure gif shows a timeline for the material flow in the Simple Model. Week 0 on the line is set to the week when a customer order arrives. To build a customer order, parts of index 1 (14 weeks lead time) most be ordered 13 weeks prior to the arrival of the order. This is indicated at week -13 of Fig. gif. Index 2 parts must be orders at week -7, and index 3 parts at week -3.

Parts can enter assembly instantaneously when they arrive in the RPI. The figure shows an assembly time of two weeks. Once out of assembly, the products enter the FGI, from where they are shipped to customers. Products are ready for shipment the moment they enter the FGI. Transport time to customer is one week. The plant quotes an order to delivery time of 4 weeks.


This section deals with the processes necessary to receive materials, assemble these to form products, and ship the products to customers.

Issuing a Demand Forecast:
Since materials orders must be ready up to 13 weeks prior to the arrival of orders, it is impossible for the company to base the materials planning on incoming orders. A demand forecast is necessary. The demand forecast gives the expected product quantity ordered for a set number of weeks. In the model we assume the forecasted demand to be as is shown in Figure gif.

Figure: Forecasted Demand.

Top demand, V, is set to 80 units per week. The demand starts at half the top demand for the first month. The first month there will also be a demand for 30 units per week for consignment. These are products used for demonstrations and public relations purposes. The second month the demand increases to 3/4 of the top demand, and the third month we reach the top. The demand remains stable for the next L months. The initial value of L is 6. In month L+3 the demand decreases to 3/4 of V. The next month to half of V, and in the final month the demand is a fourth of V. The life cycle for the product is L+6 months, initially 12.

Production Planning:
The production planning is done in two stages, each bringing knew information:
The first stage
of the planning results in a ship plan, defining the number of products that the plant should dispatch the next set number of weeks. It is based on the demand forecast, but also takes into account the current backlog. To meet a delivery time of four weeks, orders must be shipped after three weeks in the backlog. For this week and the next three weeks, the amount to ship is determined by the backlog. For future weeks beyond this, the demand forecast must be trusted.

The second stage
is a build plan. The build plan gives the targeted quantity for which to start production. It is based on the ship plan, and takes into account the stocking level in the FGI, safety stock of the FGI, and the WIP.

Materials Ordering and Delivery:
The materials orders are calculated based on the build plan (targeted production is exploded to parts via the BOM). The current stocking levels in the RPI, the RPI safety stocks, and the materials on-order data base are taken into account.

Materials arriving this week are delivered as orders are sent.

Customer Ordering:
Customer orders come in at the beginning of every week. The ordered amount will be proportional to the forecasted demand. Orders are added to the current backlog.

The duration of production is two weeks. Unlimited capacity is assumed, i.e. an infinite number of units can be started each week.

Filling Orders and Dispatching:
Orders are filled and shipped at the end of the week. Orders will not be filled before their due date, i.e. initially three weeks after order date. When orders that are due can not be filled this week because of FGI stock-out, these will stay in the backlog and have higher priority next week.

Designing a Multi-Agent System


The COOL Agents

The functions of the company of the Simple Model and their responsibilities are already identified by Mujtaba [18]. These are: marketing, order processing, planning, shipping, production, R&D, vendors, and customers. When identifying agents, these functions were used. Basically one agent was made for each function. This supports the statements in Section gif (on motivation) regarding the ease of conceptualizing when using a multi-agent approach. Some alterations were made: a materials agent was added, shipping was renamed to dispatching and vendors were gathered in one suppliers agent.

This results in a COOL setup of nine active agentsgif (as is seen in Figure gif): Marketing, Order-processing, Planning, Materials, Production, Dispatching, Purchasing, Customers, and Statistics. (The role of the suppliers and R&D is not implemented.) The following describes the agents and their roles.

Figure: The agents in the Simple Model.

has knowledge of the assumptions of future demand (Fig. gif), and issues the demand forecast. The demand forecast is sent to Planning.
manages the backlog. It enters incoming customer orders, and removes shipped orders. It also provides backlog data to other agents upon request.
takes care of stage two of the planning process. It requests backlog levels from Order-processing, and calculates the ship plan for the week. It also calculates the RPI and FGI safety stocks. The ship plan and FGI safety stock is sent to Production, and the RPI safety stock is sent to Materials.
makes a build plan. The FGI data needed is requested from Dispatching. Build plan is sent to Materials. Production also requests RPI levels when starting production. The number of units started is the minimum of lowest RPI level and the planned production. Materials is notified of units started, and Dispatching is notified of finished products.
calculates the requirements of parts for the planned production (as defined by the build plan). The resulting materials orders are sent to Purchasing and recorded in the on-order data base. Since all parts are assumed to arrive according to lead times, material arrivals are simply modeled as Materials moving ordered quantities from on-order to RPI when orders are due (= order week + lead time).
updates the FGI. It fills and ships orders based on the backlog (requested from Order-processing). Order-processing is notified of shipped orders.
send customer orders to Order-processing.
is described in the Simulation section (gif) below.

Table: The agents' process responsibilities.

Conversation Classes

Table gif shows the responsibilities of each agent. For most Simple Model agents, responsibility is limited to one or two processes. In the implementation of the model each agent uses roughly one main conversation class. This main class handles the communication and actions necessary to satisfy the agent's main responsibility.

Marketing, for example, uses the marketing-forecast-conversation class. The rules of this conversation class specifies the actions needed to make a demand forecast for the current week, and send the forecast to Planning. Upon receiving the demand forecast from Marketing, Planning initiates a planning-conversation. The planning-conversation class defines the actions needed to calculate and send the safety stocks and ship plan.

Table: Conversation class associations in the COOL implementation of the Simple Model

Table gif shows the conversation class associations. We see that Planning also uses a generic conversation class, request-backlog-conversation, which specifies the actions when requesting backlog data from Order-processing. The conversation class is called generic because it is used by several agents. The table also shows the reporting related to each conversation class, i.e. the statistical data that is sent to Statistics. This is further treated below.

Note that when an agent uses a class like the request-backlog-conversation, the agent receiving the request needs to use a conversation class specifying its actions upon the receipt. For the request-backlog-conversation, Order-processing uses the answer-backlog-conversation. This is a generic property of COOL: When a message is sent the receiver should have a corresponding conversation class that defines some sort of response to the message.

Simulation and Statistics


Time as the Sequence of Processes

The simulation is run with discrete time intervals. The granularity is one week. A simulation starts with an initial 20 weeks before any customer orders arrive, i.e. the first customer orders arrive in week 21. The simulations start with all inventories empty, and no materials ordered.

Figure: The sequence of processes within a week.

The Statistics agent is responsible for the weekly progress of the simulation. Through the running of a week it is the sequence of processes that keeps track of time. This is shown in Figure gif. The week starts with customer orders coming in. Next the production planning (demand forecast, ship plan, and build plan) takes place, ending in the ordering of materials. Before production starts, the materials due this week arrive. Production runs till Friday afternoon, when due orders are shipped. The sequence of processes is assured by coordinating the conversations as will be shown below.

As seen from Table gif Statistics uses two conversation classes, the simulation-conversation and the run-simulation-conversation. When starting a simulation a simulation-conversation is initiated. This conversation will remain active through the whole simulation. At the beginning of each week a run-simulation-conversation is initiated. A message is sent to Marketing telling it to issue a demand forecast. The forecast is sent to Planning. Upon receiving the forecast Planning sends a ship plan to Production. Upon receiving the ship plan, Production sends a build plan to Materials, triggering it to send materials orders to Purchasing. In this manner the correct sequence of processes is assured during the materials and production planning.

When Materials have sent orders, it checks the on-order data base for incoming materials. When this is done, we are ready for production. Materials will give Production the current RPI-levels, and Production simulates the movement of products from the RPI, through the WIP, and into the FGI. Dispatching is notified on finished products, and Materials of raw product usage. At this point, the week's production is finished, and we could say it is Friday afternoon. Dispatching fills and ships orders.

We are now at the week's end. Through the running of each week, the agents have sent statistical data to Statisticsgif. This is usually done at the end of the agent's main conversation class. Statistics knows that the week is ended when it has received all the week's statistical data from the agents. The run-simulation-conversation saves the statistics and terminates. The simulation-conversation advances the week counter, and initiates a new run-simulation-conversation.



Simulations were run with these parameters (initial values in italics):

Statistical Data

Because an aim was to verify the COOL implementation by comparing the simulation results with those of Mujtaba [18], the same statistical data were recorded, with focus on inventory values and customer satisfaction. We may say that all performance data come from within an agent's domain, e.g. the RPI values is the domain of Materials and the backlog the domain of Order-processing. It is therefore this agent's responsibility to report RPI-value at the end of each week. Section gif (the motivation section) states that agents may be given the responsibility of recording data of their respective domains. This is followed through here.

Table gif shows from which agent statistical data is sent, and in which conversations this is done.



The results of the simulations are thoroughly described and discussed in Mujtaba [18]. Only examples of the results will be presented and commented on here. Note that the objective was not to analyze the performance of the Simple Model, but to verify the correctness of the implementation through comparing the results with those of Mujtaba [18]. Each of the subsections below deals with a series of simulations where the value of one of the parameters was varied.

Mujtaba [18] ran more experiments than these, but the simulation described below were judged sufficient to verify the correctness of the implementation.

A Data Presentation Tool


A small application was implemented to display the data resulting from the simulations. The tool allows the user to browse all data which is save by the statistics agent (or simulation agent for the PMC Model). The application allows the user to draw predefined graphs. The graph figures presented in here and in Section gif are all generated in this way.

The graph figures are built up as follows: Each column of graph windows correspond one simulation. The upper row of the figure gives the name of these simulations. Figure gif, for example, presents data from five simulations, with names from left to right: AF=0.50, AF=0.75, AF=1.00, AF=.50, and AF=2.00. Which data is presented is labeled over the graphs themselves. The label gives a descriptive name to the graphsgif. Figure gif shows customer orders (actual demand) in black. The graphs may be draw in different colors in the same windows, as in Figure gif, or in separate graph window rows as in Figure gif.

Varying A/F

The first series of simulation tested the effect of changing the ratio of actual orders to forecasted orders (A/F). Figure gif shows actual demand in black and forecasted demand in gray. Figure gif shows the effect of A/F on inventory levels in the RPI (gray) and FGI (black). As expected we experience stock-out in the FGI when demand is higher than forecasted. A less intuitive result is that of the RPI when A/F is 1. We see than even though our forecasts are correct, we still have an EOL write-off from the RPI of $108,000.

Figure: Graph showing Acual Orders and Order Forecast

Customer satisfaction was measured, among others, through counting the number of units delivered on-time (within quoted order to delivery time, here: 4 weeks). Figure gif shows how this quickly drops to zero (black line) as actual demand is increased. Figure gif shows that the reason is FGI stockout.

Figure: Graph showing the values of RPI and FGI inventories as A/F increases.

It is obvious that the model does not handle different A/F ratios very well. A too low A/F gives an enormous EOL write-off in the RPI (for A/F = 0.5: $1.4 million), and a too high A/F gives a low level of customer satisfaction.

Figure: Graph showing how customer satisfaction decreases as A/F increases.

Varying K

As long as the other parameters are kept constant, varying the value of K (coefficient to the weeks of safety) only affects the materials side (RPI, on-order). As customer orders do not arrive before week 21, the plant has enough time to order materials. The graphs in the bottom line in Fig. gif shows the value of each week's materials order. As long as there is no forecast of orders, there are no safety stocks. This means that the safety stocks are not filled until week 21. We see three destinct highs appearing on the graphs. These represent the orders for materials to be delivered in week 21. These are only for filling safety stocks. (Production for orders in week 21 starts in week 22, see Fig. gif). As we increase the value of K, and therefore the level of safety stock, the peeks on the materials ordered also increase. This naturally gives a higher value of the orders in the on-order data base shown as the top line of Figure gif. The period of high value of on-order ends at week 21 when the materials are delivered, and the value of the matrials is thereby transferred to the RPI (middle line in Fig. gif).

Figure: Graph showing the effect on materials orders and inventory as K increases.

It is obvious from the RPI value graphs that a too high value of K gives an unacceptable EOL write-off in the RPI . With a K of 2 materials worth more than $812,000 are left for scrap. Assuming this setting of the model, a K of about 0.75 is the highest we should go to avoid EOL write-off.

Varying L

Next the simulations were run with different values of L (length of period with highest demand). From the Figure gif we see that as the L increases the committed inventory (sum of physical inventories and on-order) reaches a stable level at $4.4 million.

Figure: Comitted inventory as L increases. L is given in weeks.

Varying Y

Figures gif and  gif are examples of results obtained when varying the quoted order to delivery time, Y. Fig. gif illustrates the order to shipment time. We see that the delay between the graphs is Y-1. With a transportation time of 1 week, this gives an order to delivery time of Y.

Figure: Visiualizing varying delivery times.

Figure: The backlog and RPI values with varying delivery times.

On the customer satisfaction side the model performed well. We see from Fig. gif (grey line) that the backlog values are stable on Y-1 times the weekly demand. This shows that orders are satisfied as planned. On the materials side, however, the black line of the figure shows that the EOL write-off increases as the value of Y decreases. According to Mujtaba [18] |em ``this is intuitively correct: the longer the quoted availability, the longer we can afford to wait before ordering material''.

Varying lt

The parameter lt gives percentage of value of the product from parts with 6, 10, and 14 weeks lead times respectively. The upper row of Figure gif shows the value of materials ordered each week. In the three last graphs in the row there is only one clear peakgif. The peak occurs in the week which material to fill safety stocks in week 21 is ordered. As we increase lead times (from right to left) the peak will of course move to an earlier week.

Figure: Materials ordering when lt varies.

With increasing lead times the on-order value (lower graph row) increases. This is intuitively correct, since orders will stay longer in the on-order data base.


A comparison of the results of the simulations with those of Mujtaba [18] showed that the implementation was correct.

Another objective of this part of the work was to be familiarized with the COOL language, and with running simulations using agents. As will be seen in the next chapter, many of the solutions developed for the implementation of the Simple Model are also used in the next model, unchanged or improved.

It was helpful to understand to a greater degree the dynamics of the supply chain before designing a larger model. By re-designing the processes and interactions among the entities (agents) in the supply chain, a greater understanding of their roles was obtained. This was particularly important for the production and materials planning. It was also useful to work with the terminology of the supply chain before taking on the larger modeling task.

next up previous contents
Next: The PMC Model Up: No Title Previous: COOrdination Language

Rune Teigen
Tue May 27 17:50:58 EDT 1997