Making adjustments to a system during simulation phase is not only easier but also helps to avoid big expenses once the system has been fully implemented. Especially for new systems where there might not be any data to work with, simulation can produce initial data to better evaluate the process and perform reiterative adjustments. In this project, a fictitious e-commerce warehouse was used to evaluate one important property of systems: Queues. Systems will usually be composed of multiple interconnect components that react on the previous component, process the object or data, and pass it along to the next component. The flow of information/objects needs to be carefully orchestrated and balanced to avoid the system collapsing. If there is just one slow component, it can cause the system to overflow/explode. If the system is operating very fast, then it can result in underutilized components leading to unnecessary costs.
Introduction
A distribution center is a warehouse which stocks products and specializes in redistributing them to retailers, wholesalers, or directly to consumers. As consumers shift their shopping habits to online shopping, demand for distribution centers has grown. Distribution centers work as a transit point for product transport in the entire logistics network system. It is of great significance to reduce the operating costs of logistics enterprises and improve the service level and efficiency of logistics enterprises [1]. As competition becomes more aggressive in e-commerce, companies have sought methods to increase volume while reducing costs and delivery wait times from their warehouse. Likewise storage and internal distribution of products becomes more complex to manage when facilities grow in size.
In order to maximize storage area, reduce internal transportation times, and increase utilization, distribution centers are expanding automation. This consists of replacing highly repetitive tasks performed by humans with robots. Warehouse managers utilize robots to repetitively move goods long distances in order to free workers for value-added jobs [2]. Such tasks include visual recognition and manual assortment, tasks that currently are challenging for robots to perform.
This project aims to model and simulate a distribution center that employs both robots and humans to process customer orders using Rockwell's Arena Simulation Software. The goal is to reduce transportation time by using robots that will fetch and transport items, and maximize human utilization with sorting and packing in order to fulfill customer orders within the same day. Due to the software’s student license limitations, the model has been scaled down and simplified in order to fit within the given constraints (maximum 150 entities/orders).
Problem Statement
Blue Crate, a fictitious e-commerce company, sells multiple items online and ships products from its distribution center to the customer’s address using a third party courier. The company has struggled to keep up with e-commerce competitors, such as Amazon, since customers are demanding faster delivery for their ordered goods. Blue Crate cannot control how long it takes the courier company to deliver the package to customers, but it can improve how long it takes to package an order and delivery it to the courier company. Currently, the distribution center is mostly operated by workers and on average it takes 3 days to process an order. This is attributed due to time lost by workers walking around trying to fetch items and creating backlog in peak times. If the distribution center can process the order within the same day, then the courier company can ship the package the next day. In order to reduce processing time, the CTO of Blue Crate has order to automate the transportation processes in the warehouse.
Operation
Blue Crate’s Distribution Center is housed in a 500,000 square feet warehouse (500 x 1000). The warehouse is divided in 5 zones: Receiving Zone, Inventory Zone, Storage Zone (with a robot operated subzone and a human operated subzone), Packing Zone, and Delivery Zone. Figure 1 shows a physical representation of the facility and is not shown to scale. There is a network of conveyors and streets that connect the flow of goods in-and-out of the storage zone.
Figure 1: Distribution Center Layout
The model only focuses on Storage, Packing and Delivery Zone. The other two zones have been left out of the simulation and are only shown for completeness.
Within the warehouse, there are multiple resources and machines being operated to process, retrieve and ship all incoming orders. There are 2 Associates, 4 human pickers, 2 robot pickers, 2 loaders, 3 robot carts, 1 forklift and 2 conveyor belts (storage->packing and packing->shipping). Table 1 describes their role in detail.
Name |
Type |
Zone |
Description |
Associate |
Human |
Packing |
Process incoming orders and route the requests to storage to be retrieved. Once retrieved, inspect the item and pack it. If the item is wrong, return it personally to storage. |
Picker |
Human, Robot |
Storage |
Retrieves the items from the storage and places them in a transport (robocart, conveyor, forklift) |
Transporter/ Conveyor |
Machine, Robot |
Storage, Packing, Delivery |
Sends item from Storage to Packer station |
Loader |
Human |
Delivery |
Places packages in inside the shipping truck. |
Table 1: Resources and their purpose
Customer orders arrive to the warehouse with inter-arrival time distributed as Expo(3). All times are in minutes. The order can by any of three types and historically have shown to be 60% for small items (such as Electronics or Books), 35% for medium items (such as Clothing and Toys) and 5% for large items (such as Home appliances). Orders will enter a queue and wait for an Associate to review the order. Associate service time follows a distribution as Unif(1,2). The Associate will then send a request to retrieve the item from its respective Storage subzone based on the type of order.
If it’s a small request, then a robot-Picker will retrieve the item from the Robot subzone and place it on a robot transporter so it can be taken to the Packing Zone. This process can be fully automated since books and electronics have typical shapes which can be easily retrieved by robots. The rest of the requests (medium and large) are retrieved by a human-Picker from the Human subzone. Items are placed randomly all over the warehouse so item retrieval can vary. Robot-Picker has service time with distribution Expo(7) and human-picker has service time with distribution Expo(20). If it’s a medium item, then the item can be sent over conveyer as they are typically light. It takes 2 minutes for the Picker to prep the item and place it on the conveyor. This consists in placing the item in a special container and inputting information in the system. A large item is typically too large and big so it requires a forklift to transport the item to the packing zone. The picker will need 4 minutes to prep large items.
Once the item arrives at the Packing Zone, an Associate has to first verify the item for accuracy and any damages. This is a quick process with distribution Unif(0.5, 1). If the wrong item was picked, then it has to be returned back to the storage zone by an Associate. Historically only 2% of the requests have this problem and has a service time with distribution Tria(5, 8 , 15). While this process does not add value to the overall process, it is necessary to avoid costs due to customer returning the item. If the item is correct, then the Associate will proceed to package and label the item. This has a service time with distribution Tria(1.5, 2, 4). The package is then placed on a conveyor which leads to the Delivery zone. Loaders will then place the packages on delivery trucks (two types). This has a service time with distribution Tria(3,4,6). Priority packages (which have higher shipping rate), will leave the warehouse right away. While normal packages will leave the warehouse once a batch of 5 has accumulated.
Schedules
Workers at the warehouse have a 9 hour shift per day with a 1 hour break. In order to keep orders flowing at all times, working shifts are split into two. In the first shift, employees work consistently for 4 hours and then take a one hour break. After that, they work for another 4 hours and then end their day at the warehouse. In the second shift, employees work for 3 hours followed by a 30 minute break. They work for another 2 hours and take a second 30 minute break. They work for 3 more hours and then end their day. Below table summarizes how an employee doing any task can be assigned a working schedule.
Shift |
Daily Schedule |
||||
Shift 1 |
Work: 4 hr |
Break: 1 hr |
Work: 4 hr |
||
Shift 2 |
Work: 3 hr |
Break: 30 min |
Work: 2 hr |
Break: 30 min |
Work: 3 hr |
Table 2: Breakdown of daily schedule based on shifts
Robots have virtually no breaks during the 9 hour shift. They do need occasional maintenance but that has been excluded from the model as it doesn’t run long enough. However, robots and other mechanical parts are subject to failures which will cause downtime.
Transportation
Items need to be transported from the storage zone to the packing zone and from the packing zone to the shipping zone. Due to the size of the warehouse, there are large distances to cover within the facility in order to reach the next processing area. Table 3 shows the average distance and time needed based on the transportation method. These are one way distances, and except conveyors, all vehicles need to return to their point of origin.
Transporter |
Speed (ft/min) |
Distance (ft) One way |
Time (min) Estimated |
Robot Cart |
160 |
900 |
5.625 |
Forklift |
75 |
900 |
12.000 |
Conveyor Storage |
150 |
800 |
5.333 |
Conveyor Shipping |
50 |
100 |
2.000 |
Table 3: Average distances and estimated transportation times
Costs
There are two types of costs being considered: Operational and New Equipment (robots). Employees are paid \(15 an hour and they are not paid during their break. Each transporter robot costs \)40,000 to purchase. Existing equipment such as forklift and belt conveyors are not considered as part of the cost.
Assumptions
The initial problem statement intended to model a real world e-commerce warehouse. However, given the software’s license limitations and the time frame, the problem had to be scaled down and simplified. The model went through several iterations to reduce complexity and optimize areas of interest. Below are the assumptions that were made:
- Assumption 1: Each order is treated as a separate transaction. For example, if the same customer orders multiple items, they are all treated as separate orders. Each order arrives separately within its inter-arrival time, meaning that orders cannot be placed in bulk.
- Assumption 2: The model only captures order processing. Receiving and Inventory zone are assumed to be running in parallel and keeping a steady supply of items. If an item were to be out of stock, then the website would not allow the order to be placed in the first place.
- Assumption 3: Customers can only place orders within the warehouse’s business hours (9-hour shift). Although a website can operate 24 hours, there is not enough flexibility to allocate many orders (Arena only allows max 150 entities). Ideally, workers should already have a number of orders waiting when the warehouse opens. However, these take space and reduce the amount of orders than can be processed in the system. It’s more important to study the orders that are already being served than the orders that are waiting to be served.
- Assumption 4: Though the warehouse is stocked with infinite supply of items, orders can be transferred (balk) to another warehouse if the warehouse is running at capacity (150 entities).
- Assumption 5: Carts are autonomously operated and navigate in designated areas with no human supervision. They transport only one item at time, from the storage zone to the shipping zone. Carts do not carry any items towards the storage the zone.
- Assumption 6: Failures are rare and happen at intervals greater than the period of observation (e.g. once a year). Maintenance is done during the night, when the warehouse is not accepting orders. Therefore both of these factors are not included in the model.
- Assumption 7: Transportation distances are optimized for cart utilization. Conveyors are used for speed purposes and underutilization is not accounted for.
Goal of Study
The model tries to achieve the following three goals:
- Reduce average warehouse processing time (from order placement to product leaves warehouse) to an average of 3 hours (180 minutes).
- Have utilization of automated transfer vehicles between 70%-90%.
- Have utilization of human workers between 60%-80%.
Utilization is primarily important since it is of interest to keep costs down by having the least amount of people doing repetitive tasks. Processing time follows in importance since the package has to be ready for shipment the same day. Queue waiting time comes in last, as there is plenty of leeway for waiting. The only concern would be if the cumulative waiting time is excessively causing a bottle neck in the system.
When it comes to transportation time, the focus is transporting the item as fast as possible to the packing zone due to the size of the warehouse. This can result in underutilization of some resources. As long as robot utilization and speed are in balance with costs, the rest of the equipment can be ignored.
Logical Model
A logical model is used as a visual representation of the processes happening at the distribution center. The layout of the facility also contributes to the order and method in which processes get affected. Figure 2 explains the lifecycle of a customer order inside the warehouse.
Figure 2: Logical Model
Initially, and entity will be created and then assigned a type based on chance. The order will then be received and processed by a resource. Based on the type, the order will be fetched by human or robot resource. At this point, the order becomes a physical item that has to be transported. The transport method is also decided based on the entity type. Afterwards, the item has to be inspected. If it passes the test, then it proceeds to packing. If not, it has to be returned, converted to an order and fetched again. This is also decided by chance, which has a low probability of happening. Once the item has been packaged, it has to be transported to a different location where it will be loaded to a truck and shipped. Normal delivery is buffered and only delivered until a minimum threshold is met. There is also a balk option added right during the arrival. This checks the number of entities currently in the entire system and will discard the order it’s reaching the 150 limit. More details on Appendix D.
The logical model does not represent the complete Arena model, as there are many other modules needed perform the desired simulation. Rather it is used to assess the initial estimates as well as a map to navigate the more complicated Arena Model. The full model is shown and explained in Appendix D.
Verification and Sensitivity
One of the goals is to have all our human resources and robots within the target utilization range. Table 4 shows a comparison between the statistical output from Appendix E and the estimated values calculated in Appendix C. The values were extracted from the first replication and can vary based on the replication instance being used. In general, all aspects of the study are within acceptable ranges given that simulation will consider other factors which are hard to calculate. Transporters in particular resulted difficult to estimate since Arena seems to take several factors other than distance into consideration.
One point to note is that conveyors are severely underutilized. This was a sacrifice taken in order to fit as many orders on robot carts while keeping distances realistic. Making full use of the conveyor by reducing the speed and increasing cell size would have achieved more utilization but would have also caused the model to reach 150 entities faster. Therefore they are not considered as part of the study and were added only for completeness. In reality, there can be many active items and packages moving around the warehouse. Such big volume and activity would definitely justify having conveyors.
Process |
Statistical Output |
Estimated Values |
% Error |
Comments |
Associate S1 |
0.831 |
0.814 |
2.09% |
Low % error. Utilization exceeds the range of the goal. |
Associate S2 |
0.832 |
0.814 |
2.21% |
Low % error. Utilization exceeds the range of the goal. |
Picker S1 |
0.709 |
0.667 |
6.30% |
Acceptable % error. Utilization within the range of the goal. |
Picker S2 |
0.723 |
0.667 |
8.40% |
High % error. Utilization within the range of the goal. |
Loader S1 |
0.727 |
0.721 |
0.83% |
Negligible % error. Utilization within the range of the goal. |
Loader S2 |
0.724 |
0.721 |
0.42% |
Negligible % error. Utilization within the range of the goal. |
robotPicker |
0.706 |
0.700 |
0.86% |
Acceptable % error. Utilization slightly low but within the range of the goal. |
roboCart |
0.803 |
0.749 |
7.21% |
High % error. Utilization within the range of the goal. |
Forklift |
0.511 |
0.400 |
27.75% |
High % error. Utilization is low, but not part of the goal. |
Pack Conveyor |
0.013 |
0.007 |
85.71% |
High % error. Utilization is low, but not part of the goal. |
Ship Conveyor |
0.001 |
0.001 |
0.00% |
High % error. Utilization is low, but not part of the goal. |
Table 4: Verification of utilization results
Since the focus is on maximizing robot utilization, there was some experimentation done to choose the best number of units. Table 5 shows the results obtained by using 3, 4, 5 robot carts to transport small items from the warehouse to the packing area. Appendix A describes how the simulation length was derived and Appendix E contains the statistical output of these three instances.
Performance Measure |
3 Robots |
4 Robots
|
5 Robots
|
Acceptable Range |
Comment |
time waiting for robot Cart |
4.872 |
.594 |
.120 |
<5 min |
5 robots is best |
# of items in line for robot Cart |
.999 |
.121 |
.024 |
<1 order |
5 robots is best |
Utilization |
.803 |
.600 |
.478 |
70%-90% |
3 carts wins |
WIP (small order) |
18.439 |
15.334 |
15.418 |
<20 order |
4 carts wins |
Total Processing Time (average all three orders) |
105.97 |
90.658 |
91.431 |
<2 hrs |
4 carts wins |
Cost |
\(120K |
\)160K |
\(200K |
<\)187.2K |
3 carts wins |
Table 5: Evaluation of different robot transporters allocation
Going for 3 robot transporters is the best choice due to having 80% utilization, and the lowest investment cost. Overall processing time is also important, but having to wait around 15 more minutes is a reasonable compromise to take. As long as the goal of processing all order remains under 3 hours, we can sacrifice a few minutes around the system. In most cases, the higher the utilization the longer requests/items will have to wait to be serviced. On the other hand, the faster the request/order is serviced, the lower utilization will be.
Robot pickers also had an impact in the overall processing time. A test was also conducted to see the impacts of changing the processing times. Robots need time to process images, the more time allowed the better decision they can make. Increasing the time would cause fewer errors but would also significantly increase waiting times. Therefore it was chosen to stay with faster processing and have humans mediate for errors. Table 6 summarizes the simulation results.
One important discovery found during long simulation lengths is that there are periods were the system will peak beyond 150 orders. A table with a summary of the results can be found in Appendix F. Though the system was designed to operate below the 150 mark, there are certain unknown conditions that will still push the system to its limit. In order to avoid Arena hit the limit error, a balking section was added to so that the system could continue operating to debug the issue. It turns out that having the highest utilization is not always the ideal choice. Therefore the decision was taken use a service time that keeps the utilization of robot picker at a marginal 70%.
Performance Measure |
Expo(7) Service Time |
Expo(8) Service Time |
Expo(9) Service Time |
Acceptable Range |
Comment |
time waiting for robot |
8.29 |
14.68 |
57.86 |
<15 min |
Expo(7) wins |
# of items in line for robot |
1.70 |
2.92 |
11.88 |
<5 order |
Expo(7) wins |
Utilization |
.70 |
.81 |
.91 |
70%-90% |
Expo(9) wins indirectly |
WIP (small order) |
18.43 |
17.16 |
31.25 |
<15 orders |
Expo(9) wins |
Total Processing Time (average all three orders) |
105.97 |
97.37 |
145.01 |
<2 hrs |
By far, faster processing is preferred |
Table 6: Evaluation of different process times for robot pickers
Finally, costs were also computed in order to validate the investment. Table 7 summarizes the overall costs of robots for the system. The first year, robots will cost more because of the initial investment. After that, the price would go down and still deliver a higher utilization than human workers, whereas human labor will continue to cost the full price each year. Usually every five years equipment will need to be upgraded, which is plenty of time to recover the investment.
Resource |
Number |
Hourly Cost |
Hrs/week |
Yearly Cost |
Total Yearly Cost |
Human |
6 |
\(15 |
8 |
\)31.2K |
\(187.2K (recurring) |
|
|
|
|
|
|
Robot Picker |
2 |
- |
9 |
\)40K |
\(80K (one time) |
Robot Transporter |
3 |
- |
9 |
\)40k |
\(120K (one time) |
Robot Total |
5 |
- |
- |
- |
\)200K |
Table 7: Cost comparison
Summary of Results
The focus of the study was to reduce the time an order spends in the warehouse. The model considered optimizing both the human and machine components. Table 8 summarizes the results obtained in the statistical output (Appendix E) along with their expectations.
Process |
Measure |
Observed |
Expected Range |
Reason |
Comment |
Process Order |
Lq(#) |
4.693 |
< 5 |
Common line |
Good |
Lq(max) |
31 |
< 30 |
Break time accumulation |
Acceptable |
|
Wq(mins) |
14.011 |
< 5.68 min |
Combined service time |
High |
|
Wq(max) |
78.451 |
< 88.04 |
5.68*31/2 |
Good |
|
Util1 Assoc. |
.831 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
Util2 Assoc. |
.832 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
|
|
|
|
|
|
Robot Picker |
Lq(#) |
1.701 |
< 5 |
Common line |
Good |
Lq(max) |
28 |
< 5 |
Common line |
High |
|
Wq(mins) |
8.294 |
<7 min |
Service Time |
Acceptable |
|
Wq(max) |
96.914 |
<98 min |
7*28/2=98 |
Good |
|
Util Robot |
.706 |
0.70-0.90 |
Machine |
Good |
|
|
|
|
|
|
|
Human Picker |
Lq(#) |
3.345 |
< 5 |
Common line |
Good |
Lq(max) |
31 |
< 30 |
Break time accumulation |
Acceptable |
|
Wq(mins) |
24.450 |
<20 min |
Service time |
Acceptable |
|
Wq(max) |
197.88 |
<155 min |
20*31/4 |
High |
|
Util1 Picker |
.709 |
0.60-0.80 |
Human Resource |
Good |
|
Util2 Picker |
.723 |
0.60-0.80 |
Human Resource |
Good |
|
|
|
|
|
|
|
Inspect Item |
Lq(#) |
4.682 |
< 5 |
Common line |
Good |
Lq(max) |
26 |
< 30 |
Break time accumulation |
Good |
|
Wq(mins) |
13.704 |
< 5.68 min |
Combined service time |
High |
|
Wq(max) |
79.143 |
<73.84 min |
5.68*26/2 |
High |
|
Util1 Assoc. |
.831 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
Util2 Assoc. |
.832 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
|
|
|
|
|
|
Return to Storage |
Lq(#) |
.100 |
< 1 |
%2 occurrence |
Good |
Lq(max) |
3 |
< 1 |
%2 occurrence |
High |
|
Wq(mins) |
14.252 |
<11.83 min |
Combined service time |
High |
|
Wq(max) |
69.980 |
<17.74 min |
11.83*3/2 |
High |
|
Util1 Assoc. |
.831 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
Util2 Assoc. |
.832 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
|
|
|
|
|
|
Pack Item |
Lq(#) |
4.280 |
< 5 |
Common line |
Good |
Lq(max) |
25 |
< 30 |
Break time accumulation |
Good |
|
Wq(mins) |
12.790 |
< 2.5 min |
Service time |
High |
|
Wq(max) |
78.677 |
<31.25 min |
2.5*25/2 |
High |
|
Util1 Assoc. |
.831 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
Util2 Assoc. |
.832 |
0.60-0.80 |
Shared Human resource |
Acceptable |
|
|
|
|
|
|
|
Load Truck |
Lq(#) |
.748 |
< 5 |
Common line |
Good |
Lq(max) |
10 |
< 30 |
Break time accumulation |
Good |
|
Wq(mins) |
2.235 |
4.33 min |
Service Time |
Good |
|
Wq(max) |
44.024 |
21.65 min |
4.33*10/2 |
High |
|
Util1 Ldr. |
.727 |
0.60-0.80 |
Human Resource |
Good |
|
Util2 Ldr. |
.724 |
0.60-0.80 |
Human Resource |
Good |
|
|
|
|
|
|
|
Robot Transport from Storage |
Lq(#) |
1.701 |
< 5 |
Common line |
Good |
Lq(max) |
28 |
< 5 |
Common line |
High |
|
Wq(mins) |
8.294 |
<5.6(2) min |
Transport Time |
Good |
|
Wq(max) |
96.914 |
<104.9 min |
5.62(2)*28/3 |
Good |
|
Util cart |
.803 |
0.70-0.90 |
Machine |
Good |
|
|
|
|
|
|
|
Forklift Transport from Storage |
Lq(#) |
.271 |
< 5 |
Common line |
Good |
Lq(max) |
10 |
< 30 |
Break time accumulation |
Good |
|
Wq(mins) |
15.892 |
<12(2) min |
Transport Time |
Good |
|
Wq(max) |
294.92 |
240 |
12(2)*10/1 |
High |
|
Util forklift |
.511 |
0.60-0.80 |
Human Driver |
Low |
|
|
|
|
|
|
|
Conveyor from Storage |
Lq(#) |
.041 |
< 5 |
Common line |
Good |
Lq(max) |
4 |
< 5 |
Common line |
Good |
|
Wq(mins) |
.348 |
<5.3 min |
Service Time |
Good |
|
Wq(max) |
7.595 |
<21.2 min |
5.3*4 |
Good |
|
Util convey |
.001 |
0.60-0.80 |
Machine |
Low |
|
|
|
|
|
|
|
Conveyor from Packing |
Lq(#) |
.033 |
< 5 |
Common line |
Good |
Lq(max) |
2 |
< 5 |
Common line |
Good |
|
Wq(mins) |
.101 |
<2 min |
Service Time |
Good |
|
Wq(max) |
1.122 |
<10 min |
5*2 |
Good |
|
Util convey |
.013 |
0.60-0.80 |
Machine |
Low |
|
|
|
|
|
|
|
Total Ship Normal Time |
105.97 |
<3 hr |
Goal of study |
Good |
|
Total Ship Normal (max) |
783.80 |
<4 hr |
Peak times |
High |
|
Total Ship Rush Time |
97.041 |
<3 hr |
Goal of study |
Good |
|
Total Ship Rush (max) |
486.37 |
<4 hr |
Peak times |
High |
|
|
|
|
|
|
|
Small Order Total Time |
91.674 |
<3 hr |
Goal of study |
Good |
|
Small Order Total (max) |
486.37 |
<4 hr |
Peak times |
High |
|
Med. Order Total Time |
119.44 |
<3 hr |
Goal of study |
Good |
|
Med. Order Total (max) |
510.60 |
<4 hr |
Peak times |
High |
|
Large Order Total Time |
148.28 |
<3 hr |
Goal of study |
Good |
|
Large Order Total (max) |
783.80 |
<4 hr |
Peak times |
High |
Table 8: Summary of average times, queues and utilization
Explanation of Values
- Lq (number waiting in line): A queue is always expected since there will always be a steady inflow of orders. There are several factors that contribute to queue lines such as shared resources for multiple processes and the distance from the storage zone. For most processes, the average queue line has been set to 5.
- Lq (max): Workers need to take breaks and during this time work will accumulate. Though schedules are designed to keep work steady during the 9 hours day, there two hours in which service will drop by half. On the other hand, robots don’t get breaks so long lines should not be happening.
- Wq (time waiting in line): Average service times were used as a comparison point. For dedicated resources, the average service time was set as the limit. For shared resources, all combined average service times were set as the limit. This is because resources can be occupied performing any of the four task. Refer to Appendix C for list of average service times. The range of 5.68 – 11.83 was used (taking into account a 2% probability for “Return to Storage”), were 5.68 = 1.5+9.33(2%)+0.75+2.5 and 11.83 = 1.5+9.33+0.75+2.5.
- Wq (max): Maximum waiting time is calculated based on Lq(max) ∗ Average service time / number of resources.
- Utilization: As mentioned in the goal section, the range for human resources is 0.6-0.8 and for machines is 0.7 – 0.9.
- Comments: “Good” indicates that values are within range. “Acceptable” means that values are marginally out of range. These values should be kept under observation. “High” and “Low” indicates that the values our out of range and should be revised further.
Observations
The first point to notice is the total time maximum value (783 mins). This metric is of importance since it measures the longest time an order spent in the system (end-to-end). Rush time will usually be slightly shorter as there is no batch component. This is an alarming value as it means an order can be queued within the system for over a day. The data was plotted (Moving Average) in Output Analyzer and as seen in Figure 3 the scale of the problem became clearer. “783” minutes (13 hours) is a rare outlier and describes worse possible scenario that could happen. In fact most of the peaks are contained within 300 minutes (5 hours). Several other iterations of the model do not reveal this outlier. Nonetheless, having worse case scenarios being captured within the sample data is a good sign for the study.
Figure 3: Moving Average Plot of Total Shipping Time (normal)
Possible explanations could be an increase of demand due to holiday shopping or special offers. Some level of delay is acceptable, but should be minimized where possible. Separating the data by order type shows that the major time contributors are large orders, which are serviced by forklift. Due to the low volume of expected orders (5%) and low utilization (0.51), only one forklift has been assigned. By adding one more forklift, the max peak times can be pushed from 300 minutes to 200 minutes (3.3 hours). However, this would also push down over all forklift utilization to 0.26. A new forklift can be purchased for \(10,000 and a used one for \)5,000. Given the low utilization, a used forklift may be a better option. Figure 4 and Table 9 show a visual and numerical summary of the impacts of adding one more forklift.
Figure 4: Assessments of Total Shipping Time (normal) with 2 forklifts
Forklift Transport from Storage |
Lq(#) |
.010 |
Lq(max) |
3 |
|
Wq(mins) |
.577 |
|
Wq(max) |
30.456 |
|
Util forklift |
.264 |
|
Large Order Total Time |
112.55 |
|
Large Order Total (max) |
394.19 |
|
Cost |
\(5,000 |
Table 9: Impacts of suggestion
There are other areas than can be improved such as the waiting time for Associates. Their utilization is a little high because they rotate between four different tasks. When separated, these four tasks actually don’t take much time so they were combined together. This was done to temporary disengage workers from the same repetitive tasks and avoid burnout. The model follows the company’s policy that all work must be done before taking a break, but everyone should still take the complete allotted break time. While this policy may seem fine, this could actually create small gaps where both resources are not working. A simple change in policy such as forcing everyone to stop what they are doing and take their break exactly at the given time can reduce the number of spurious peaks over time. Figure 5 shows how such policy would have an impact on the overall processing time. Enforcing the policy might require special supervision from managers which could add unknown costs and possible repercussions. Appendix D describes the actual technical details of scheduling in the model.
Figure 5: Plot reflecting a Change in Schedule Policy
Alternatively, rather than hiring more resources, training and optimizations to the workplace could be suggested. For example offering training that allows Associates examine items faster for major defects to speed up the time he or she spends in that process. Or upgrading the order processing system with better software could significantly reduce or even eliminate the task. However these approaches will need a more detailed study before making further recommendations.
Conclusions
Overall, the system has shown that adding robotics systems to the warehouse has improved overall processing times. That is, when combining all three types of orders, those that are served by robots (small orders) complete in less time compared to the other two types. Suggestions have been provided on how to further optimize the system. Additionally, further price guidance has been provided in order to balance performance versus cost. As both high utilization and low wait time cannot be achieved, the current system has been designed to provide a balance between both.
High Level Report
After assessing Blue Crate’s problem, it was recommended to automatize some of the warehouse’s processes to reduce overall order processing times. A model has been constructed around the warehouse’s operations, and multiple simulations were performed using Arena Simulation Software in order to find the best performance. The goal was to service orders within 3 hours in order to ship the package the same day. At the same time, utilization of human resources was kept within 60% to 80%, and equipment within 70% to 90%.
Robots were introduced in a special area of the warehouse, primarily to handle small orders (which are compromised of books and electronics). There are two types of robots that perform two different tasks: pick and transport. Due to the price of each unit, an evaluation was conducted which was supported with simulation. It was determine that two pickers and three transporters would fit the utilization range, service time and cost. The total cost to acquire the robots would be \)200K and a return on invest should be seen within the second year.
Other areas of improvement were also found and solutions were also suggested. For example, large orders (such as home appliances) can experience large delays (spanning over a day) during peak times. Transportation of large goods requires a forklift which can cause major delays even though it is being underutilized. By purchasing used equipment for $5,000, worst case waiting time can be slashed by more than 50%. Average processing times will see reduction of 25%. Though these compromise the smaller portion of the total orders placed, it is important to minimize the processing delays as just a few late deliveries can tarnish the reputation of the company.
The above two graph shows the majority of the orders, which are small orders, are processed in the least amount of time. While the other two types take more time to process. Therefore the majority of Blue Crate’s orders should be experiencing faster delivery time and more satisfied customers. A complete report has been attached to this email with all supporting evidence.
Appendix A: Simulation Length and Transient Period
There are multiple points of interest which were logged using the Statistic Module located in the Advanced Process of Arena. Figure A.1 shows all the records that were extracted and stored in separate files. One of the records of interest is “Total Ship Normal” which records the start-to-end time it takes an order to be processed, packaged and shipped from the time it first arrives. More specifics on this record are explained in Appendix D.
Statistical output can sometimes be exposed to irregular results due to the randomness effect. Rather than modifying the model’s distributions and resources, we want to focus our window of observation by collecting several samples (or replications) and clean any initial noise (transient period).
Figure A.1: Statistical Output
Initially, the model was simulated for 1,000 minutes with 5 replications which yielded 5 samples. The goal is to obtain a 95% confidence interval for the Total Ship Normal Time that has a half width of less than 5% from the sample mean. The ideal simulation length can be derived using the below formula:
Figure A.2 shows the results displayed using Output Analyzer. Table A.1 shows the extracted averages and half widths for better visibility. The first step is to derive the mean (x̅), variance (S2) and standard deviation (S) of the sample (n).
Figure A.2: Confidence Interval displayed in Output Analyzer
Replication |
Average Complete Time |
Half Width |
% from Mean |
1 |
75.6 |
25.9 |
34.26% |
2 |
71.9 |
29.4 |
40.89% |
3 |
75.1 |
34.5 |
45.94% |
4 |
93.1 |
30.1 |
32.33% |
5 |
118 |
42.7 |
36.19% |
Table A.1: Sample Averages and Half Widths
The top portion of Table A.2 was computed using Microsoft Excel’s “Data Analysis” module by providing all 5 averages from Table 1 as inputs. From this data and t-table probabilities, Half width (h) and desired half width (h’) were then computed. Formulas that accompany the table follow after. The final chosen simulation was chosen to be 50,000, a little more than double the obtained result.
Average |
86.74 |
Variance |
374.363 |
SD |
19.348 |
Simulation Length |
1000 |
n |
5 |
CL |
95% |
a |
0.05 |
a/2 |
0.025 |
t(0.025,4) |
2.776 |
h |
24.020 |
Percent |
5% |
h' |
4.337 |
New Length |
30675 |
Table A.2: Statistical Output
As for the transient period, there is not much variance observed at the beginning of the plot as seen in Figure A.3. Some spikes are observed once in a while but they happen sporadically throughout the model which is hard to correlate to transient period. Therefore, there was no warm-up period provided in any of the simulations. Even in the case of adding 1000 minutes of warm-up period, there was no significant change observed. One explanation for these peaks could be due to the change in shifts of workers. During this time, large number of orders will accumulate. If many orders happen to arrive during break time, then the average process time will also increase. It takes some time for workers to reduce the queue back to normal levels. In order to contain these peaks, break times could be further spread out.
Figure A.3: Plot of “Tally Total Ship Normal” as viewed in Output Analyzer
Appendix B: Data Processing and Fitting
Incoming orders are what keep the warehouse moving, therefore it is important to understand and predict when the orders will arrive. Based on this information, resources and processes can be adjusted in order to obtain the best utilization and efficiency. Usually data is collected during a period of time and represented in a histogram. A distribution is then fitted over the histogram so that we have a set of probabilities on which our model can draw predictions.
Due to time limitation, data could not be collected that could help derive the ideal inter-arrival rate of warehouse orders. Instead assumptions had to be made and a distribution had to be picked that would best fit the model. The most common type of arrival distribution of customers in a queuing system is random that follow Poisson Process or sometimes is called as Markovian [7]. While there are no physical customers entering the warehouse, customers are virtually placing orders in the website. The inverse of this model (or inter-arrival), that is customers/minutes (orders/minutes), is best represented with an exponential probability distribution.
In real world large scale e-commerce sites, many orders can be placed within seconds. As of 2016, Amazon processes a bit more than 600 orders per second [8]. Of course, this project cannot cover such an enormous inflow and settled for an exponential distribution with a mean of three minutes (Expo(3)) after some experimentation. One part consisted in playing with different numbers and the other consisted in analyzing the probabilities of the distribution to ensure the model could handle it. Figure B.1 shows the histogram and fitted curve of an Exponential distribution.
Figure B.1: Histogram of Exponential distribution as seen with Input Analyzer
From the distribution summary on Table B.1, we can observe that there is 20% possibility of getting orders as fast as 0.6 minutes. This means that the system should be able to handle small batches of large orders. If the system were to receive many orders within a small time window, then the orders would quickly accumulate and reach the 150 entity Arena limit. This would cause the simulation to fail and no report would be generated. Now, the longer the simulation is allowed to run and the more replications are included, there is a higher chance of catching a window of time that gets these batches and triggering the 150 limit error. So while Expo(3) minutes works fine for the chosen simulation length discussed in Appendix A, a larger length like 500,000 minutes with 20 replications will cause the system to reach 150 entities within ~250,000 minutes at replication 6. A solution to this (for debugging purposes) is discussed in Appendix D.
Distribution Summary
Distribution: Exponential Expression: EXPO(3.03) Square Error: 0.000074 Chi Square Test Number of intervals = 30 Degrees of freedom = 28 Test Statistic = 22.1 Corresponding p-value > 0.75 Data Summary Number of Data Points = 16666 Min Data Value = 7.86e-005 Max Data Value = 26.2 Sample Mean = 3.03 Sample Std Dev = 3
Histogram Summary Histogram Range = 0 to 27 Number of Intervals = 40
================================================================== Int. No. of Probability Cumulative No. Data Pts. x Density Distribution ------------------------------------------------------------------ Data Function Data Function 0 3216 0.675 0.193 0.200 0.193 0.200 1 2705 1.35 0.162 0.160 0.355 0.360 2 2193 2.03 0.132 0.128 0.487 0.488 3 1708 2.70 0.102 0.102 0.589 0.590 4 1390 3.38 0.0834 0.0819 0.673 0.672 5 1089 4.05 0.0653 0.0656 0.738 0.737 6 890 4.72 0.0534 0.0525 0.791 0.790 7 710 5.40 0.0426 0.0420 0.834 0.832 8 549 6.07 0.0329 0.0336 0.867 0.865 9 451 6.75 0.0271 0.0269 0.894 0.892 10 356 7.42 0.0214 0.0215 0.915 0.914 11 288 8.10 0.0173 0.0172 0.933 0.931 12 206 8.78 0.0124 0.0138 0.945 0.945 13 171 9.45 0.0103 0.0110 0.955 0.956 14 147 10.1 0.00882 0.00882 0.964 0.965 15 109 10.8 0.00654 0.00706 0.971 0.972 16 99 11.5 0.00594 0.00565 0.977 0.977 17 69 12.2 0.00414 0.00452 0.981 0.982 18 67 12.8 0.00402 0.00362 0.985 0.986 19 52 13.5 0.00312 0.00290 0.988 0.988 20 45 14.2 0.00270 0.00232 0.991 0.991 21 32 14.9 0.00192 0.00185 0.993 0.993 22 33 15.5 0.00198 0.00148 0.995 0.994 23 26 16.2 0.00156 0.00119 0.996 0.995 24 15 16.9 0.000900 0.000950 0.997 0.996 25 12 17.6 0.000720 0.000760 0.998 0.997 26 6 18.2 0.000360 0.000608 0.998 0.998 27 6 18.9 0.000360 0.000487 0.998 0.998 28 7 19.6 0.000420 0.000390 0.999 0.998 29 4 20.3 0.000240 0.000312 0.999 0.999 30 4 20.9 0.000240 0.000250 0.999 0.999 31 2 21.6 0.000120 0.000200 0.999 0.999 32 3 22.3 0.000180 0.000160 1.00 0.999 33 1 23.0 6.00e-005 0.000128 1.00 0.999 34 2 23.6 0.000120 0.000102 1.00 1.00 35 1 24.3 6.00e-005 8.19e-005 1.00 1.00 36 1 25.0 6.00e-005 6.55e-005 1.00 1.00 37 0 25.7 0.000 5.24e-005 1.00 1.00 38 1 26.3 6.00e-005 4.20e-005 1.00 1.00 39 0 27.0 0.000 3.36e-005 1.00 1.00 |
Table B.1: Exponential distribution summary
For illustration and personal understanding of the effects of the chosen distribution, below Figure B.2 shows a 50,000 minute simulation in arena. The intervals are somehow consistent, with higher a frequency gravitating towards the bottom (not very distinguishable) and few low values towards the top.
Figure B.2: Exponential graph over time shown in Arena
Appendix C: Verification
Before creating and running the model in Arena, it is optimal to verify whether the initial values are sustainable for the system. Below set of tables contain an estimate of the number we are expecting to see in Arena. These were derived from the logical model shown in Figure 2. There are other factors that are too complex to cover in the estimation and are better left to simulation.
First, the total number of possible orders that will enter the system is calculated.
\[Total Orders = \frac{simulation length}{inter arrival}=\frac{50000}{3}=16666\]
Then, the number of orders per type is calculated based on their historical distribution. Pickers are chosen based on the order type, so this helps to have an overall estimate on how the orders will be routed. These are shown in Table C.1.
Order Type |
Example |
Historical % |
Orders |
All |
- |
- |
16666 |
Small |
Electronics |
60 |
10000 |
Books |
|||
Medium |
Clothing |
35 |
5833 |
Toys |
|||
Large |
Home |
5 |
833 |
Table C.1: Order type allocation
Following up, each process will have a mean service time which can be calculated. These represent the amount of work needed to complete an activity. All service times are represented by distributions since these are activities that take different amounts of time to complete, randomness being a factor. Table C.2 shows the corresponding mean based on the distribution.
Process |
Distribution (min) |
Mean (min) |
Arrival |
Expo(3) |
Mean=3 |
Process Order |
Unif(1,2) |
Mean=(1+2)/2=1.5 |
Robot |
Expo(7) |
Mean=7 |
Picker |
Expo(20) |
Mean=20 |
Inspect |
Unif(0.5,1) |
Mean=(0.5+1)/2=0.75 |
Return Storage |
Tria(5,8,15) |
Mean=(5+8+15)/3=9.33 |
Pack Item |
Tria(1.5,2,4) |
Mean=(1.5+2+4)/3=2.5 |
Load Truck |
Tria(3,4,6) |
Mean=(3+4+6)/3=4.33 |
Table C.1: Process average service time estimates
Each resource can be assigned to one or more processes. Table C.2 was derived using the arrival time and process time from Table C.1. For each process there can be one or more resources assigned to complete the task. “Available” represents the full allocated resource that is needed to for the task. “Scheduled” represents the actual time that a resource can dedicate to the task. Time is reduced when workers take break or get injured. In this model, only breaks were considered and are modeled based on Table 2. That is out of a 9 hour period, only 8 hours are utilized. Also, notice that robots do not need to take breaks, so they are scheduled to operate the entire 9 hours.
Process |
Resource |
Mean (min) |
Need |
Available, Scheduled |
Utilization, Schedule Utilization |
Arrival |
|
3 |
|
|
|
Process Order |
Associate S1 |
1.5 |
1 |
1, 0.88 |
1.5/3*1/2=0.250,0.284 |
Process Order |
Associate S2 |
1.5 |
1 |
1, 0.88 |
1.5/3*1/2=0.250,0.284 |
Return Storage |
Associate S1 |
9.33 |
1 |
1, 0.88 |
(0.02) 9.33/3*1/2=0.031,0.035 |
Return Storage |
Associate S2 |
9.33 |
1 |
1, 0.88 |
(0.02) 9.33/3*1/2=0.031,0.035 |
Inspect Item |
Associate S1 |
0.75 |
1 |
1, 0.88 |
0.75/3*1/2=0.125,0.142 |
Inspect Item |
Associate S2 |
0.75 |
1 |
1, 0.88 |
0.75/3*1/2=0.125,0.142 |
Pack Item |
Associate S1 |
2.5 |
1 |
1, 0.88 |
(0.98) 2.5/3*1/2=0.408,0.464 |
Pack Item |
Associate S2 |
2.5 |
1 |
1, 0.88 |
(0.98) 2.5/3*1/2=0.408,0.464 |
Total |
Associate |
|
|
|
0.814, 0.925 |
|
|
|
|
|
|
Pick Item |
Robot |
7 |
1 |
2, 2 |
(0.60)7/3*1/2=0.700 |
|
|
|
|
|
|
Pick Item |
Picker S1 |
20 |
1 |
2, 1.76 |
(0.40) 20/3*1/4=0.667,0.757 |
Pick Item |
Picker S2 |
20 |
1 |
2, 1.76 |
(0.40) 20/3*1/4=0.667,0.757 |
|
|
|
|
|
|
Load Truck |
Loader S1 |
4.33 |
1 |
1, 0.88 |
4.33/3*1/2=0.721,0.820 |
Load Truck |
Loader S2 |
4.33 |
1 |
1, 0.88 |
4.33/3*1/2=0.721,0.820 |
Table C.2: Resource Process Estimates
In this case, Associates participate in several tasks as needed, so they are a shared resource and their utilization is the summation of all processes. On the other hand Pickers and Loaders are assigned to a single process so their utilization is calculated from a single process. Due to the double shift there is more than one resource assigned to a process, so utilization can slightly vary between resources in the simulation though they work on the same task.
Calculating utilization for transporters is slightly different. Distance and speed plays are an additional factor that needs to be taken into consideration. Table C.3 was derived using the time values (one way) from Table 3 and the arrival time from Table C.1.
Transporter |
Resource |
Mean (min) |
Need |
Available |
Utilization |
Arrival |
|
3 |
|
|
|
Transport |
roboCart |
5.62 |
1 |
3 |
(0.6)((2*5.62))/3*1/3=0.749 |
Transport |
Fork Lift |
12.00 |
1 |
1 |
(0.05)((2*12))/3*1/1=0.400 |
Convey |
Conveyor Packing |
5.33 |
1 |
800 |
(0.35)5.33/3*1/800=0.001 |
Convey |
Conveyor Shipping |
2.00 |
1 |
100 |
2.00/3*1/100=0.007 |
Table C.3: Transporter Process Estimates
Time |
Small |
Medium |
Large |
|
1.5+0.75+2.5+7+4.33 |
1.5+0.75+2.5+20+4.33 |
1.5+0.75+2.5+20+4.33 |
Value Added |
16.08 |
29.08 |
29.08 |
|
0.25+0.25+(0.02)9.33+1+1 |
2+2+(0.02)9.33+1+1 |
4+2+(0.02)9.33+1+1 |
Non Value |
2.68 |
6.18 |
8.18 |
|
5.62+2.00 |
5.33+2.00 |
12.00+2.00 |
Transport |
7.62 |
7.33 |
14.00 |
|
|
|
|
Table C.4: Time needed per Entity/Order
Table C.4 summarizes the total time spent for each type of order. Value added represents the time an order is being served in a process. Non value represents areas that are considered waste. These have been minimized as much as possible. Return to storage has been considered as non value because it’s an area that ideally should not happen. Transport time is the time it takes to move an item from storage zone to packing zone.
Calculation Queue waiting numbers and times resulted more complicated than thought as there are shared resources. These have been left for simulation to come up with the values.
Appendix D: Arena Model
Figure D.1 shows the final model used in Arena. Orders arrive through the left and exit through the bottom right part. There are three outputs: one for rush orders, one for normal orders and one for transfer orders to another warehouse (balk). Several modules, attributes and statistics were used in the model.
Figure D.1: Distribution Center Arena Model
Entry
Create module is used to represent arriving orders. To keep the model simple and somewhat predictable, only one create module is used. The model requires 3 different types of entities so four assign modules are used. The decide module “Order Type” will direct the entity to the designated “Assign Small, Medium or Large”. The “Assign Type” module contains the expression with the function DISC() that sets the probability. Figure D.1 shows the designated probabilities and service times based on Figure 2. The function TNOW is used to stamp the initial time which will be used for comparison in other processes.
Figure D.1: Arrival and entity type assignment
Once decision takes place, the entity is assigned a size and corresponding attribute values using additional “Assign” modules. Fetch time will be used by the pickers and Arrive Time is used as the initial time to compare when extracting statistics using “Record” Modules.
Before entering the first process, there is a Decide Module that checks the system can accept any more orders. If there are more than 130 active entities in the system, then the order will exit the system right away and count as balk. This is to avoid Arena’s 150 entities limitation and allows further debugging. For some reason, there will be other entities as well which are not counted in the WIP (Work In Process), so 130 is the top limited found before hitting an error. Below formula was used inside the decision module shown in Figure D.2.
Figure D.2: Balking feature
Processes and Resources
There are seven Process Modules in the model. Six of which employ human workers and the remaining uses robots. Since there are two shifts for every human worker type, the Set Module was used to group both types. There is one Set for every type of worker. When a process needs to allocate resource, it will look at the set and chose a resource in cyclical form. Figure D.4 shows how processes are defined with a distribution and resource allocation. Delay Type can take a direct distribution or an Expression in the form of an attribute.
Figure D.3: Processes and resource allocation
The Schedule module defines the work hours and capacity for each resource. There are two types of schedules as defined in Table 2. The Wait Schedule Rule option will wait until the in-process entities release their units of the resource before starting the actual capacity decrease. The reduced capacity will always be of the specified duration, but the time between these reductions may increase [9]. The assumption is that workers try to finish pending work before going on their break. However, they will still take their allotted break time which can cause a shift in schedules. If strict break times were to be implemented, then the Preempt option would be a better fit. The preempt option attempts to preempt the last unit of the resource seized by taking it away from the controlling entity. If successful and a single unit of capacity is enough, then the capacity reduction starts immediately [9].
Within the Duration table, a value of one or more indicates the capacity available during a given duration. Zero denotes that there is no work being done by a resource, in other words a schedule break. Figure D.4 shows the various modules used to define the schedules of each worker type with their break times.
Figure D.4: Sets, Resources and Schedule definitions
Stations and Transportation
Stations serve as the entry and exit point for moving items from one point to another, Figure D.5. They can be implicitly derived when defining an “Enter” and “Exit” module in the Advanced Transfer tab. Depending on the transfer type, the number of transports or segments to allocate are defined as well as the allocation rule. For carts, the smallest distance rule was selected. Once a Transport/Conveyor reaches its destination it has to be released so it can be re-utilized. For carts and forklifts, they are ordered to go immediately back to their home station since they won’t be carrying anything back. This helps to reduce waiting times. Delays were also added at both ends to represent loading and unloading prep-time.
Figure D.5: Stations and their transpiration rules
Robot Carts are simply carts which are assumed to be autonomous. The AGV option was not used in this case. Transporters and Conveyors have a designated speed which was populated as per Table 3. Respective distances were added in the “Distance” and “Segment” modules.
Figure D.6: Stations and their transpiration rules
Exit Points
Once items are packed and loaded on a truck, the items don’t usually leave right away. In the last part of the model two types of shipments are simulated. The priority delivery will cause the item to exit the model right away, meaning the package was shipped right away and constitutes 20 percent of all packages. For all other normal packages, they are placed in a buffer using the “Batch” module which will retain the shipment until 5 packages accumulate. Once 5 entities accumulate they are released at the same time. Since we are interested in counting the individual entities a “Separate” Module is used to obtain individual statistics. Figure D.7 shows the modules used and their parameters.
Priority packages will have a premium added to the overall cost, so individual trucks can be designated to ship the package right away. On the other hand, normal delivery requires that the truck is fully loaded in order to minimize shipping costs. It would be very expensive to ship a half empty truck. The truck in our case was limited to a capacity of 5 packages (size does not matter). This is to best utilize our allotted 150 limited in other areas of the model. In reality, a normal size truck would hold several hundred packages.
Finally, there are other parts within in the module that are of interest. For this “Record” modules were used record the data. As mentioned in Appendix A, these values were individually stored in a file for mode in detail analysis using Output Analyzer.
Figure D.7: Outputs, Records and Batches
One area of improvement would be to assign the delivery type in an attribute upon arrival. Based on the priority, some items could be placed ahead of others in order shorten the wait time. Another area of improvement would be to allocate the capacity of the truck based on volume and size of the packages. Packaging could also have different service times based on the size. Due to time limitations, these features were not designed into the model.
Appendix E: Statistical Output
3 robots, 160
ARENA Simulation Results Andres Zacarias - License: STUDENT
Summary for Replication 1 of 20
Project: Distribution Center Run execution date : 4/28/2017 Analyst: Andres Zacarias Model revision date: 4/28/2017
Replication ended at time : 50000.0 Minutes Base Time Units: Minutes
TALLY VARIABLES
Identifier Average Half Width Minimum Maximum Observations ___________________________________________________________________________________________________
Tally Total Ship Normal 105.97 12.114 18.822 783.80 13385 Tally Ship Rush 25.903 3.1396 9.2591 91.686 3342 Tally Normal Trans Time 13.331 1.7763 9.3332 324.92 6830 Tally Max WIP -- -- -- -- 0 Tally Total Ship Rush 97.041 11.639 19.263 486.37 3342 Tally Fetch 72.278 (Corr) 8.2575 735.73 16733 Tally Ship Normal 33.392 3.2348 9.0807 131.22 13385 Tally Robot Trans Time 13.850 1.3723 6.1250 63.205 10254 Medium Order.VATime 30.000 .54071 7.2734 188.18 5839 Medium Order.NVATime 6.3227 .06063 6.0000 33.877 5839 Medium Order.WaitTime 75.665 15.465 .00000 422.90 5839 Medium Order.TranTime 7.4593 .02435 7.3329 18.000 5839 Medium Order.OtherTime .00000 .00000 .00000 .00000 5839 Medium Order.TotalTime 119.44 15.545 22.388 510.60 5839 order.VATime -- -- -- -- 0 order.NVATime -- -- -- -- 0 order.WaitTime -- -- -- -- 0 order.TranTime -- -- -- -- 0 order.OtherTime -- -- -- -- 0 order.TotalTime -- -- -- -- 0 Small Order.VATime 16.122 .14801 7.1860 78.226 10054 Small Order.NVATime 2.6862 .02713 2.5000 31.398 10054 Small Order.WaitTime 65.131 (Corr) .00000 396.18 10054 Small Order.TranTime 7.7335 .01495 7.6246 24.500 10054 Small Order.OtherTime .00000 .00000 .00000 .00000 10054 Small Order.TotalTime 91.674 (Corr) 18.822 486.37 10054 Large Order.VATime 29.097 1.6709 7.7677 137.31 834 Large Order.NVATime 8.3340 .14938 8.0000 24.945 834 Large Order.WaitTime 96.582 20.186 .00000 670.53 834 Large Order.TranTime 14.273 .12535 13.999 26.000 834 Large Order.OtherTime .00000 .00000 .00000 .00000 834 Large Order.TotalTime 148.28 20.847 37.069 783.80 834 Leave Pack Shipping.Queue.WaitingTime .10131 .00425 .00000 1.1223 16733 Inspect Item.Queue.WaitingTime 13.704 3.0409 .00000 79.143 17084 Leave Conveyor Storage.Queue.WaitingTime .34880 .03631 .00000 7.5955 5977 Leave Forklift Storage.Queue.WaitingTime 15.892 12.579 .00000 294.92 853 Leave Robot Storage.Queue.WaitingTime 4.8721 1.1939 .00000 51.455 10256 Robot Picks Item from Storage.Queue.Waitin 8.2945 (Corr) .00000 96.914 10258 Process Order.Queue.WaitingTime 14.011 (Corr) .00000 78.451 16750 Return to Storage.Queue.WaitingTime 14.252 4.3059 .00000 69.980 351 Batch Shipping.Queue.WaitingTime 7.3997 .16932 .00000 85.886 13385 Human Picks Item from Storage.Queue.Waitin 24.450 6.5467 .00000 197.88 6832 Pack Item.Queue.WaitingTime 12.790 2.9913 .00000 78.677 16733 Load Truck.Queue.WaitingTime 2.2355 .22264 .00000 44.024 16732
DISCRETE-CHANGE VARIABLES
Identifier Average Half Width Minimum Maximum Final Value ___________________________________________________________________________________________________
NumQ_robPick 1.7017 (Corr) .00000 28.000 .00000 NumQ_robStor .99937 .25519 .00000 15.000 .00000 NumQ_Process 4.6938 1.1377 .00000 31.000 1.0000 NumQ_humPick 3.3453 .93013 .00000 31.000 9.0000 Medium Order.WIP 13.953 1.9251 .00000 46.000 9.0000 order.WIP .00000 (Insuf) .00000 1.0000 .00000 Small Order.WIP 18.439 2.5380 .00000 61.000 12.000 Large Order.WIP 2.4762 .49952 .00000 16.000 3.0000 Associate S2.NumberBusy .83205 .01144 .00000 1.0000 1.0000 Associate S2.NumberScheduled .88575 .00312 .00000 1.0000 1.0000 Associate S2.Utilization .83205 .01144 .00000 1.0000 1.0000 Associate S1.NumberBusy .83122 .01312 .00000 1.0000 1.0000 Associate S1.NumberScheduled .88765 (Insuf) .00000 1.0000 1.0000 Associate S1.Utilization .83122 .01312 .00000 1.0000 1.0000 robotPicker.NumberBusy 1.4121 .03783 .00000 2.0000 2.0000 robotPicker.NumberScheduled 2.0000 (Insuf) 2.0000 2.0000 2.0000 robotPicker.Utilization .70606 .01891 .00000 1.0000 1.0000 Loader S1.NumberBusy .72762 (Corr) .00000 1.0000 1.0000 Loader S1.NumberScheduled .88713 (Insuf) .00000 1.0000 1.0000 Loader S1.Utilization .72762 (Corr) .00000 1.0000 1.0000 Loader S2.NumberBusy .72484 .01005 .00000 1.0000 1.0000 Loader S2.NumberScheduled .88557 .00286 .00000 1.0000 1.0000 Loader S2.Utilization .72484 .01005 .00000 1.0000 1.0000 Picker S1.NumberBusy 1.3858 .05923 .00000 2.0000 1.0000 Picker S1.NumberScheduled 1.6992 (Insuf) .00000 2.0000 .00000 Picker S1.Utilization .70957 .03053 .00000 1.0000 1.0000 Picker S2.NumberBusy 1.3881 .05543 .00000 2.0000 1.0000 Picker S2.NumberScheduled 1.6248 .03021 .00000 2.0000 .00000 Picker S2.Utilization .72385 .02772 .00000 1.0000 1.0000 Leave Pack Shipping.Queue.NumberInQueue .03391 (Corr) .00000 2.0000 .00000 Inspect Item.Queue.NumberInQueue 4.6826 1.1592 .00000 26.000 .00000 Leave Conveyor Storage.Queue.NumberInQueue .04170 .00504 .00000 4.0000 .00000 Leave Forklift Storage.Queue.NumberInQueue .27113 .21329 .00000 10.000 .00000 Leave Robot Storage.Queue.NumberInQueue .99937 .25519 .00000 15.000 .00000 Robot Picks Item from Storage.Queue.Number 1.7017 (Corr) .00000 28.000 .00000 Process Order.Queue.NumberInQueue 4.6938 1.1377 .00000 31.000 1.0000 Return to Storage.Queue.NumberInQueue .10006 .03491 .00000 3.0000 .00000 Batch Shipping.Queue.NumberInQueue 1.9813 .02198 .00000 5.0000 3.0000 Human Picks Item from Storage.Queue.Number 3.3453 .93013 .00000 31.000 9.0000 Pack Item.Queue.NumberInQueue 4.2805 1.1060 .00000 25.000 .00000 Load Truck.Queue.NumberInQueue .74809 .06798 .00000 10.000 .00000 roboCart.NumberBusy 2.4097 .04233 .00000 3.0000 2.0000 roboCart.NumberScheduled 3.0000 (Insuf) 3.0000 3.0000 3.0000 roboCart.Utilization .80325 .01411 .00000 1.0000 .66667 Forklift.NumberBusy .51180 .03797 .00000 1.0000 .00000 Forklift.NumberScheduled 1.0000 (Insuf) 1.0000 1.0000 1.0000 Forklift.Utilization .51180 .03797 .00000 1.0000 .00000 Conveyor Shipping.Utilization .01325 2.0606E-04 .00000 .03960 .00990 Conveyor Shipping.LengthAccumulated .66930 .01043 .00000 3.0000 1.0000 Conveyor Storage.Utilization .00139 3.5398E-05 .00000 .00624 .00000 Conveyor Storage.LengthAccumulated .47816 .01212 .00000 3.0000 .00000
COUNTERS
Identifier Count Limit _____________________________________________________________
countWrong 351 Infinite Count No Capacity 0 Infinite
OUTPUTS
Identifier Value _____________________________________________________________
Medium Order.NumberIn 6785.0 Medium Order.NumberOut 6776.0 order.NumberIn 16751. order.NumberOut 16751. Small Order.NumberIn 11664. Small Order.NumberOut 11652. Large Order.NumberIn 979.00 Large Order.NumberOut 976.00 Associate S2.NumberSeized 25565. Associate S2.ScheduledUtilization .93937 Associate S1.NumberSeized 25353. Associate S1.ScheduledUtilization .93643 robotPicker.NumberSeized 10258. robotPicker.ScheduledUtilization .70606 Loader S1.NumberSeized 8380.0 Loader S1.ScheduledUtilization .82020 Loader S2.NumberSeized 8352.0 Loader S2.ScheduledUtilization .81851 Picker S1.NumberSeized 3413.0 Picker S1.ScheduledUtilization .81557 Picker S2.NumberSeized 3419.0 Picker S2.ScheduledUtilization .85436 System.NumberOut 16727. |
4 robots, 160
ARENA Simulation Results Andres Zacarias - License: STUDENT
Summary for Replication 1 of 20
Project: Distribution Center Run execution date : 4/28/2017 Analyst: Andres Zacarias Model revision date: 4/28/2017
Replication ended at time : 50000.0 Minutes Base Time Units: Minutes
TALLY VARIABLES
Identifier Average Half Width Minimum Maximum Observations ___________________________________________________________________________________________________
Tally Total Ship Normal 90.658 5.5156 19.056 390.28 13125 Tally Ship Rush 22.838 1.4584 9.1592 98.807 3326 Tally Normal Trans Time 12.723 .50100 9.3333 171.11 6595 Tally Max WIP -- -- -- -- 0 Tally Total Ship Rush 82.294 4.9668 18.609 366.21 3326 Tally Fetch 59.921 4.6658 8.1035 355.89 16464 Tally Ship Normal 30.632 1.4772 8.7421 113.13 13125 Tally Robot Trans Time 7.6292 .19263 6.1250 33.769 10220 Medium Order.VATime 30.074 .60321 7.3334 212.50 5644 Medium Order.NVATime 6.2662 .05696 6.0000 28.604 5644 Medium Order.WaitTime 61.178 7.5355 .00000 316.18 5644 Medium Order.TranTime 7.4382 .02254 7.3329 18.000 5644 Medium Order.OtherTime .00000 .00000 .00000 .00000 5644 Medium Order.TotalTime 104.95 7.9028 23.208 390.28 5644 order.VATime -- -- -- -- 0 order.NVATime -- -- -- -- 0 order.WaitTime -- -- -- -- 0 order.TranTime -- -- -- -- 0 order.OtherTime -- -- -- -- 0 order.TotalTime -- -- -- -- 0 Small Order.VATime 16.313 .15050 7.2384 102.92 9997 Small Order.NVATime 2.7051 .03003 2.5000 22.627 9997 Small Order.WaitTime 49.812 5.8147 .00000 240.48 9997 Small Order.TranTime 7.7448 .01694 7.6246 18.875 9997 Small Order.OtherTime .00000 .00000 .00000 .00000 9997 Small Order.TotalTime 76.575 5.7990 18.609 284.64 9997 Large Order.VATime 30.974 1.5561 6.9921 296.32 810 Large Order.NVATime 8.3582 .18286 8.0000 25.946 810 Large Order.WaitTime 76.869 8.7373 .00000 247.53 810 Large Order.TranTime 14.281 .14328 13.999 26.000 810 Large Order.OtherTime .00000 .00000 .00000 .00000 810 Large Order.TotalTime 130.48 8.3460 33.871 366.21 810 Leave Pack Shipping.Queue.WaitingTime .10409 .00386 .00000 1.1001 16458 Inspect Item.Queue.WaitingTime 10.497 1.3675 .00000 78.988 16809 Leave Conveyor Storage.Queue.WaitingTime .31385 .03063 .00000 6.2019 5766 Leave Forklift Storage.Queue.WaitingTime 11.495 2.7205 .00000 141.11 830 Leave Robot Storage.Queue.WaitingTime .59483 .10803 .00000 22.019 10222 Robot Picks Item from Storage.Queue.Waitin 8.3031 1.1978 .00000 96.393 10224 Process Order.Queue.WaitingTime 10.871 1.8040 .00000 78.529 16497 Return to Storage.Queue.WaitingTime 9.2000 1.6435 .00000 53.586 344 Batch Shipping.Queue.WaitingTime 7.6171 .15142 .00000 85.248 13125 Human Picks Item from Storage.Queue.Waitin 20.184 5.2392 .00000 145.37 6600 Pack Item.Queue.WaitingTime 9.7201 1.8681 .00000 80.529 16459 Load Truck.Queue.WaitingTime 2.3259 .23655 .00000 38.414 16454
DISCRETE-CHANGE VARIABLES
Identifier Average Half Width Minimum Maximum Final Value ___________________________________________________________________________________________________
NumQ_robPick 1.7027 .24816 .00000 22.000 11.000 NumQ_robStor .12161 .01915 .00000 8.0000 .00000 NumQ_Process 3.5876 .50474 .00000 33.000 5.0000 NumQ_humPick 2.6658 .73374 .00000 24.000 5.0000 Medium Order.WIP 11.874 1.1358 .00000 39.000 21.000 order.WIP .00000 (Insuf) .00000 1.0000 .00000 Small Order.WIP 15.344 1.0974 .00000 57.000 27.000 Large Order.WIP 2.1212 .20442 .00000 9.0000 3.0000 Associate S2.NumberBusy .81749 .01166 .00000 1.0000 1.0000 Associate S2.NumberScheduled .88577 .00301 .00000 1.0000 1.0000 Associate S2.Utilization .81749 .01166 .00000 1.0000 1.0000 Associate S1.NumberBusy .81674 .01150 .00000 1.0000 1.0000 Associate S1.NumberScheduled .88746 (Insuf) .00000 1.0000 1.0000 Associate S1.Utilization .81674 .01150 .00000 1.0000 1.0000 robotPicker.NumberBusy 1.4456 .04372 .00000 2.0000 2.0000 robotPicker.NumberScheduled 2.0000 (Insuf) 2.0000 2.0000 2.0000 robotPicker.Utilization .72281 .02186 .00000 1.0000 1.0000 Loader S1.NumberBusy .72100 .01055 .00000 1.0000 1.0000 Loader S1.NumberScheduled .88700 (Insuf) .00000 1.0000 1.0000 Loader S1.Utilization .72100 .01055 .00000 1.0000 1.0000 Loader S2.NumberBusy .70508 .00941 .00000 1.0000 1.0000 Loader S2.NumberScheduled .88555 .00298 .00000 1.0000 1.0000 Loader S2.Utilization .70508 .00941 .00000 1.0000 1.0000 Picker S1.NumberBusy 1.3694 .05079 .00000 2.0000 2.0000 Picker S1.NumberScheduled 1.6901 (Insuf) .00000 2.0000 2.0000 Picker S1.Utilization .70356 .02598 .00000 1.0000 1.0000 Picker S2.NumberBusy 1.3605 .04943 .00000 2.0000 2.0000 Picker S2.NumberScheduled 1.6238 .02338 .00000 2.0000 2.0000 Picker S2.Utilization .70979 .02562 .00000 1.0000 1.0000 Leave Pack Shipping.Queue.NumberInQueue .03426 .00159 .00000 2.0000 1.0000 Inspect Item.Queue.NumberInQueue 3.5302 .53773 .00000 26.000 6.0000 Leave Conveyor Storage.Queue.NumberInQueue .03619 .00324 .00000 4.0000 .00000 Leave Forklift Storage.Queue.NumberInQueue .19082 .05131 .00000 5.0000 .00000 Leave Robot Storage.Queue.NumberInQueue .12161 .01915 .00000 8.0000 .00000 Robot Picks Item from Storage.Queue.Number 1.7027 .24816 .00000 22.000 11.000 Process Order.Queue.NumberInQueue 3.5876 .50474 .00000 33.000 5.0000 Return to Storage.Queue.NumberInQueue .06330 .01373 .00000 3.0000 .00000 Batch Shipping.Queue.NumberInQueue 1.9995 .01834 .00000 5.0000 1.0000 Human Picks Item from Storage.Queue.Number 2.6658 .73374 .00000 24.000 5.0000 Pack Item.Queue.NumberInQueue 3.2007 .49953 .00000 26.000 5.0000 Load Truck.Queue.NumberInQueue .76543 .09292 .00000 10.000 1.0000 roboCart.NumberBusy 2.4018 .04890 .00000 4.0000 3.0000 roboCart.NumberScheduled 4.0000 (Insuf) 4.0000 4.0000 4.0000 roboCart.Utilization .60045 .01222 .00000 1.0000 .75000 Forklift.NumberBusy .49800 .02796 .00000 1.0000 .00000 Forklift.NumberScheduled 1.0000 (Insuf) 1.0000 1.0000 1.0000 Forklift.Utilization .49800 .02796 .00000 1.0000 .00000 Conveyor Shipping.Utilization .01303 1.8484E-04 .00000 .03960 .02970 Conveyor Shipping.LengthAccumulated .65827 .00933 .00000 3.0000 2.0000 Conveyor Storage.Utilization .00134 3.1556E-05 .00000 .00624 .00125 Conveyor Storage.LengthAccumulated .46124 .01085 .00000 3.0000 1.0000
COUNTERS
Identifier Count Limit _____________________________________________________________
countWrong 344 Infinite Count No Capacity 0 Infinite
OUTPUTS
Identifier Value _____________________________________________________________
Medium Order.NumberIn 6564.0 Medium Order.NumberOut 6543.0 order.NumberIn 16502. order.NumberOut 16502. Small Order.NumberIn 11611. Small Order.NumberOut 11584. Large Order.NumberIn 952.00 Large Order.NumberOut 949.00 Associate S2.NumberSeized 25191. Associate S2.ScheduledUtilization .92291 Associate S1.NumberSeized 24918. Associate S1.ScheduledUtilization .92031 robotPicker.NumberSeized 10224. robotPicker.ScheduledUtilization .72281 Loader S1.NumberSeized 8320.0 Loader S1.ScheduledUtilization .81285 Loader S2.NumberSeized 8134.0 Loader S2.ScheduledUtilization .79620 Picker S1.NumberSeized 3345.0 Picker S1.ScheduledUtilization .81028 Picker S2.NumberSeized 3255.0 Picker S2.ScheduledUtilization .83787 System.NumberOut 16451. |
5 robots, speed 160
ARENA Simulation Results Andres Zacarias - License: STUDENT
Summary for Replication 1 of 20
Project: Distribution Center Run execution date : 4/28/2017 Analyst: Andres Zacarias Model revision date: 4/28/2017
Replication ended at time : 50000.0 Minutes Base Time Units: Minutes
TALLY VARIABLES
Identifier Average Half Width Minimum Maximum Observations ___________________________________________________________________________________________________
Tally Total Ship Normal 91.431 7.0802 20.740 425.39 13270 Tally Ship Rush 23.913 2.1612 8.8481 78.402 3299 Tally Normal Trans Time 12.758 .67661 9.3332 162.46 6744 Tally Max WIP -- -- -- -- 0 Tally Total Ship Rush 83.072 (Corr) 17.654 292.15 3299 Tally Fetch 59.844 4.7498 7.8760 371.99 16577 Tally Ship Normal 31.405 1.8675 8.8763 104.11 13270 Tally Robot Trans Time 6.5376 .05180 6.1250 19.064 10185 Medium Order.VATime 29.847 .67543 7.3221 191.33 5778 Medium Order.NVATime 6.2947 .06889 6.0000 34.841 5778 Medium Order.WaitTime 61.971 8.4858 .00000 293.09 5778 Medium Order.TranTime 7.4524 .02723 7.3329 18.000 5778 Medium Order.OtherTime .00000 .00000 .00000 .00000 5778 Medium Order.TotalTime 105.56 8.5946 22.837 425.39 5778 order.VATime -- -- -- -- 0 order.NVATime -- -- -- -- 0 order.WaitTime -- -- -- -- 0 order.TranTime -- -- -- -- 0 order.OtherTime -- -- -- -- 0 order.TotalTime -- -- -- -- 0 Small Order.VATime 16.255 .12551 6.9447 145.76 9974 Small Order.NVATime 2.7035 .03153 2.5000 17.405 9974 Small Order.WaitTime 50.563 5.4401 .00000 224.88 9974 Small Order.TranTime 7.7400 .01673 7.6246 13.250 9974 Small Order.OtherTime .00000 .00000 .00000 .00000 9974 Small Order.TotalTime 77.262 5.4786 17.654 266.60 9974 Large Order.VATime 28.923 1.5133 7.0915 169.56 817 Large Order.NVATime 8.2992 .15535 8.0000 44.053 817 Large Order.WaitTime 79.232 8.4717 .37155 246.93 817 Large Order.TranTime 14.235 .11823 13.999 38.000 817 Large Order.OtherTime .00000 .00000 .00000 .00000 817 Large Order.TotalTime 130.69 9.0765 36.486 371.77 817 Leave Pack Shipping.Queue.WaitingTime .10432 .00427 .00000 1.0383 16575 Inspect Item.Queue.WaitingTime 11.216 1.7211 .00000 63.747 16926 Leave Conveyor Storage.Queue.WaitingTime .36729 .04068 .00000 7.3886 5914 Leave Forklift Storage.Queue.WaitingTime 11.470 3.1664 .00000 132.46 834 Leave Robot Storage.Queue.WaitingTime .12012 .01669 .00000 7.3147 10186 Robot Picks Item from Storage.Queue.Waitin 8.1000 1.2899 .00000 92.592 10186 Process Order.Queue.WaitingTime 11.414 1.6121 .00000 63.980 16587 Return to Storage.Queue.WaitingTime 10.956 1.8065 .00000 46.639 349 Batch Shipping.Queue.WaitingTime 7.5572 .16284 .00000 91.217 13270 Human Picks Item from Storage.Queue.Waitin 18.612 4.1926 .00000 171.31 6749 Pack Item.Queue.WaitingTime 10.518 1.5142 .00000 64.135 16576 Load Truck.Queue.WaitingTime 2.4063 .27179 .00000 49.006 16572
DISCRETE-CHANGE VARIABLES
Identifier Average Half Width Minimum Maximum Final Value ___________________________________________________________________________________________________
NumQ_robPick 1.6501 .29845 .00000 20.000 .00000 NumQ_robStor .02447 .00380 .00000 4.0000 .00000 NumQ_Process 3.7866 .68461 .00000 26.000 1.0000 NumQ_humPick 2.5123 .65354 .00000 22.000 .00000 Medium Order.WIP 12.206 (Corr) .00000 34.000 10.000 order.WIP .00000 (Insuf) .00000 1.0000 .00000 Small Order.WIP 15.418 1.5918 .00000 45.000 8.0000 Large Order.WIP 2.1366 .25259 .00000 9.0000 1.0000 Associate S2.NumberBusy .82342 .01245 .00000 1.0000 1.0000 Associate S2.NumberScheduled .88528 .00324 .00000 1.0000 1.0000 Associate S2.Utilization .82342 .01245 .00000 1.0000 1.0000 Associate S1.NumberBusy .82095 .01411 .00000 1.0000 1.0000 Associate S1.NumberScheduled .88757 (Insuf) .00000 1.0000 1.0000 Associate S1.Utilization .82095 .01411 .00000 1.0000 1.0000 robotPicker.NumberBusy 1.4285 .03295 .00000 2.0000 .00000 robotPicker.NumberScheduled 2.0000 (Insuf) 2.0000 2.0000 2.0000 robotPicker.Utilization .71429 .01648 .00000 1.0000 .00000 Loader S1.NumberBusy .71746 .01384 .00000 1.0000 .00000 Loader S1.NumberScheduled .88728 (Insuf) .00000 1.0000 1.0000 Loader S1.Utilization .71746 .01384 .00000 1.0000 .00000 Loader S2.NumberBusy .71779 .01168 .00000 1.0000 1.0000 Loader S2.NumberScheduled .88502 .00301 .00000 1.0000 1.0000 Loader S2.Utilization .71779 .01168 .00000 1.0000 1.0000 Picker S1.NumberBusy 1.3699 .06079 .00000 2.0000 1.0000 Picker S1.NumberScheduled 1.7024 (Insuf) .00000 2.0000 2.0000 Picker S1.Utilization .70117 .03140 .00000 1.0000 .50000 Picker S2.NumberBusy 1.3577 .05347 .00000 2.0000 .00000 Picker S2.NumberScheduled 1.6346 .03083 .00000 2.0000 2.0000 Picker S2.Utilization .70865 .02804 .00000 1.0000 .00000 Leave Pack Shipping.Queue.NumberInQueue .03458 .00185 .00000 2.0000 .00000 Inspect Item.Queue.NumberInQueue 3.7969 .70883 .00000 24.000 3.0000 Leave Conveyor Storage.Queue.NumberInQueue .04344 .00618 .00000 4.0000 .00000 Leave Forklift Storage.Queue.NumberInQueue .19133 .05688 .00000 5.0000 .00000 Leave Robot Storage.Queue.NumberInQueue .02447 .00380 .00000 4.0000 .00000 Robot Picks Item from Storage.Queue.Number 1.6501 .29845 .00000 20.000 .00000 Process Order.Queue.NumberInQueue 3.7866 .68461 .00000 26.000 1.0000 Return to Storage.Queue.NumberInQueue .07648 .01788 .00000 3.0000 .00000 Batch Shipping.Queue.NumberInQueue 2.0057 .02136 .00000 5.0000 2.0000 Human Picks Item from Storage.Queue.Number 2.5123 .65354 .00000 22.000 .00000 Pack Item.Queue.NumberInQueue 3.4869 .66806 .00000 24.000 1.0000 Load Truck.Queue.NumberInQueue .79756 .09183 .00000 9.0000 .00000 roboCart.NumberBusy 2.3933 .05349 .00000 5.0000 3.0000 roboCart.NumberScheduled 5.0000 (Insuf) 5.0000 5.0000 5.0000 roboCart.Utilization .47866 .01070 .00000 1.0000 .60000 Forklift.NumberBusy .49999 .02842 .00000 1.0000 1.0000 Forklift.NumberScheduled 1.0000 (Insuf) 1.0000 1.0000 1.0000 Forklift.Utilization .49999 .02842 .00000 1.0000 1.0000 Conveyor Shipping.Utilization .01313 2.1760E-04 .00000 .03960 .02970 Conveyor Shipping.LengthAccumulated .66292 .01098 .00000 3.0000 2.0000 Conveyor Storage.Utilization .00138 4.1026E-05 .00000 .00624 .00375 Conveyor Storage.LengthAccumulated .47296 .01411 .00000 3.0000 1.0000
COUNTERS
Identifier Count Limit _____________________________________________________________
countWrong 349 Infinite Count No Capacity 0 Infinite
OUTPUTS
Identifier Value _____________________________________________________________
Medium Order.NumberIn 6705.0 Medium Order.NumberOut 6695.0 order.NumberIn 16588. order.NumberOut 16588. Small Order.NumberIn 11566. Small Order.NumberOut 11558. Large Order.NumberIn 971.00 Large Order.NumberOut 970.00 Associate S2.NumberSeized 25297. Associate S2.ScheduledUtilization .93012 Associate S1.NumberSeized 25141. Associate S1.ScheduledUtilization .92494 robotPicker.NumberSeized 10186. robotPicker.ScheduledUtilization .71429 Loader S1.NumberSeized 8286.0 Loader S1.ScheduledUtilization .80860 Loader S2.NumberSeized 8286.0 Loader S2.ScheduledUtilization .81104 Picker S1.NumberSeized 3402.0 Picker S1.ScheduledUtilization .80466 Picker S2.NumberSeized 3347.0 Picker S2.ScheduledUtilization .83066 System.NumberOut 16569. |
Appendix F – Further Experimentation
Below table shows the number of instances an order had to be transferred to a separate warehouse due to no capacity in the current warehouse. Simulation length of 500,000 minutes with 20 replications was used. Note that Expo(8) seemed to be an ideal choice at the beginning, but after some adjustments around the model Expo(7) ended being a better choice. Balking is the last resort and should be avoided at all costs. Transferring can invoke additional costs due to the logistics of shipping a product from a different location.
RoboPicker |
First Model |
Final Model |
||||
Replication |
Expo(7) |
Expo(8) |
Expo(9) |
Expo(7) |
Expo(8) |
Expo(9) |
1 |
0 |
0 |
22 |
0 |
0 |
24 |
2 |
0 |
0 |
16 |
0 |
16 |
16 |
3 |
0 |
0 |
6 |
0 |
0 |
0 |
4 |
0 |
0 |
0 |
0 |
0 |
36 |
5 |
0 |
0 |
0 |
0 |
0 |
0 |
6 |
10 |
0 |
9 |
0 |
0 |
11 |
7 |
0 |
0 |
2 |
0 |
0 |
68 |
8 |
0 |
0 |
10 |
0 |
0 |
8 |
9 |
0 |
0 |
0 |
0 |
0 |
6 |
10 |
0 |
0 |
24 |
0 |
0 |
0 |
11 |
0 |
0 |
0 |
0 |
0 |
20 |
12 |
22 |
0 |
9 |
0 |
0 |
16 |
13 |
0 |
0 |
17 |
0 |
0 |
19 |
14 |
0 |
0 |
54 |
1 |
0 |
26 |
15 |
0 |
0 |
0 |
0 |
0 |
31 |
16 |
0 |
0 |
0 |
0 |
0 |
8 |
17 |
0 |
0 |
0 |
0 |
0 |
28 |
18 |
0 |
0 |
7 |
0 |
0 |
37 |
19 |
0 |
0 |
27 |
0 |
0 |
6 |
20 |
0 |
0 |
5 |
0 |
0 |
31 |
Table F.1: Out of capacity (balk) instances
Perhaps Exponential distribution is not the best suited distribution for the robot picking process. One recommendation would be to gather additional data to see if there is a better distribution that provides more consistency. The initial assumption was that there was going to be a great number of units roaming around which would add more complexity.
Appendix G: Problems Faced
Several problems came up will designing and testing the model. Some issues were due to not fully understanding how the software worked; others were with making the problem statement larger than the time could allow working on.
Problem statement
Initially, there were supposed to be 5 orders types and an additional resource named Packers. This was already narrowed down from the 10 types I initially planned. However, tracking all 5 types and doing verification became very time consuming since one little change would require recalculating many values.
Figure G.1: Problem Statement Model
Also, the problem was trying to emulate real world data from readings in [2], [3], [4], [5] & [6]. Such as using actual fast arrival times, warehouse sizes, transportation speeds and human performance. This caused hitting the 150 entity limit very quickly. While the model was simplified and adjusted to avoid hitting the limit, there were the occasional limit hits when running multiple replications with long lengths. Find a balance for meeting the utilization goal also meant countless hours.
The solution was to limit the orders to 3 types, remove Packers and give all tasks to Associates, and slow down the flow of arriving orders as wells as speeds.
Scheduling
Initially a 16 hour day was planned but had to be reduced to 9 due to the way Arena calculated utilization. Since workers would only be working 8 hours a day, that meant the 8 hours were left empty which caused a drop of utilization. Though each worker was capped at 9 hours, there was no way to limit the same in arena. So what should have been calculated as 8/9=0.88, Arena would treat it as 8/16=0.5.
The solution was to limit the shift in to 9 hour days and limit the number of shifts from three to two. This way utilization could be measured on the spot without having to adjust the Statistical Output values.
Figure G.2: Three shifts set as 4,1,4 spread over 16 hours
Batch Simulation VS Animation Simulation
By default, all models will run in animation mode. This is a great way to see how parts inside the system move. However when trying to run multiple replications with long simulation lengths, this process can take quite some time. The greater the animations, the more time it will take to finish running the simulation (even in fast forward mode). Instead “Batch Run” can be used to the skip animation and jump faster to the statistical output in a matter of seconds.
While this feature is convenient, I ran into a problem towards the conclusion of the project. All values in the report are using batch simulation but they don’t populate graphs. To complement the report, animation mode was switched back on. When the report was provided, it showed significant different values than the batch mode for some fields. Below is the first part of the statistical output for replication 1:
Replication ended at time : 50000.0 Minutes Base Time Units: Minutes
TALLY VARIABLES
Identifier Average Half Width Minimum Maximum Observations ___________________________________________________________________________________________________
Tally Total Ship Normal 101.93 9.9960 18.751 443.22 13440 Tally Ship Rush 25.665 2.9694 9.1560 106.46 3388 Tally Normal Trans Time 12.525 .79084 9.3332 172.17 6775 Tally Max WIP -- -- -- -- 0 Tally Total Ship Rush 94.660 9.9109 18.256 451.69 3388 Tally Fetch 68.706 6.3094 7.8959 421.88 16839 Tally Ship Normal 33.280 3.0208 9.0774 117.32 13440 Tally Robot Trans Time 13.737 .86248 6.1250 60.282 10422 Medium Order.VATime 29.335 .50583 7.1053 175.37 5809 Medium Order.NVATime 6.2824 (Corr) 6.0000 36.240 5809 Medium Order.WaitTime 67.474 9.2067 .00000 301.19 5809 Medium Order.TranTime 7.4462 .02459 7.3329 18.000 5809 Medium Order.OtherTime .00000 .00000 .00000 .00000 5809 Medium Order.TotalTime 110.53 9.0930 22.510 443.22 5809 order.VATime -- -- -- -- 0 order.NVATime -- -- -- -- 0 order.WaitTime -- -- -- -- 0 order.TranTime -- -- -- -- 0 order.OtherTime -- -- -- -- 0 order.TotalTime -- -- -- -- 0 Small Order.VATime 16.199 .13621 7.0475 92.730 10200 Small Order.NVATime 2.7048 .03829 2.5000 23.871 10200 Small Order.WaitTime 65.194 (Corr) .00000 282.06 10200 Small Order.TranTime 7.7435 .02083 7.6246 18.875 10200 Small Order.OtherTime .00000 .00000 .00000 .00000 10200 Small Order.TotalTime 91.842 (Corr) 18.256 336.01 10200 Large Order.VATime 29.388 1.5909 8.0732 324.34 819 Large Order.NVATime 8.3818 (Corr) 8.0000 27.410 819 Large Order.WaitTime 84.399 12.480 .00541 297.54 819 Large Order.TranTime 14.293 (Corr) 14.000 26.000 819 Large Order.OtherTime .00000 .00000 .00000 .00000 819 Large Order.TotalTime 136.46 12.749 34.145 451.69 819 |
Table G.1: Statistical result with animation
Figure G.3: Batch Run screenshot
By enabling batch run as shown in Figure G.3, below statistical output was provided:
Replication ended at time : 50000.0 Minutes Base Time Units: Minutes
TALLY VARIABLES
Identifier Average Half Width Minimum Maximum Observations ___________________________________________________________________________________________________
Tally Total Ship Normal 105.97 12.114 18.822 783.80 13385 Tally Ship Rush 25.903 3.1396 9.2591 91.686 3342 Tally Normal Trans Time 13.331 1.7763 9.3332 324.92 6830 Tally Max WIP -- -- -- -- 0 Tally Total Ship Rush 97.041 11.639 19.263 486.37 3342 Tally Fetch 72.278 (Corr) 8.2575 735.73 16733 Tally Ship Normal 33.392 3.2348 9.0807 131.22 13385 Tally Robot Trans Time 13.850 1.3723 6.1250 63.205 10254 Medium Order.VATime 30.000 .54071 7.2734 188.18 5839 Medium Order.NVATime 6.3227 .06063 6.0000 33.877 5839 Medium Order.WaitTime 75.665 15.465 .00000 422.90 5839 Medium Order.TranTime 7.4593 .02435 7.3329 18.000 5839 Medium Order.OtherTime .00000 .00000 .00000 .00000 5839 Medium Order.TotalTime 119.44 15.545 22.388 510.60 5839 order.VATime -- -- -- -- 0 order.NVATime -- -- -- -- 0 order.WaitTime -- -- -- -- 0 order.TranTime -- -- -- -- 0 order.OtherTime -- -- -- -- 0 order.TotalTime -- -- -- -- 0 Small Order.VATime 16.122 .14801 7.1860 78.226 10054 Small Order.NVATime 2.6862 .02713 2.5000 31.398 10054 Small Order.WaitTime 65.131 (Corr) .00000 396.18 10054 Small Order.TranTime 7.7335 .01495 7.6246 24.500 10054 Small Order.OtherTime .00000 .00000 .00000 .00000 10054 Small Order.TotalTime 91.674 (Corr) 18.822 486.37 10054 Large Order.VATime 29.097 1.6709 7.7677 137.31 834 Large Order.NVATime 8.3340 .14938 8.0000 24.945 834 Large Order.WaitTime 96.582 20.186 .00000 670.53 834 Large Order.TranTime 14.273 .12535 13.999 26.000 834 Large Order.OtherTime .00000 .00000 .00000 .00000 834 Large Order.TotalTime 148.28 20.847 37.069 783.80 834 |
Table G.2: Statistical result with batch run
“Tally Total Ship Normal” records the maximum total time spent in the system by an entity. Notice how the maximum value decreases from 783 to 443 when Batch Run is disabled. Other values are affected but not as severely as this value. This lead to a lot of confusion since batch run and animation run were alternated throughout the project to debug issues. The solution was to rely only on output analyzer for plotting values.
Appendix H – Illustrations
Below picture shows the Robot picker that retrieves items from the robot subzone and places it on the robot transporter which will deliver it to the Packing Zone.
Figure H1. Illustration of a Robot Picker with a robot transporter [4]
Sources
Rockwell Arena version 15.00.00001 with Student License
[1] L. Lingling and Z. Jiapeng. Logistics distribution center location optimizatio model an example study. MATEC Web of Conferences 100pp. 02026. 2017. . DOI: 10.1051/matecconf/201710002026.
[2] Cutler, T. Large Distribution Centers Automate with Robotic Systems Applications. Automation. July 08, 2013. https://www.automation.com/automation-news/article/large-distribution-centers-automate-with-robotic-systems-applications
[3] Wulfraat, M. Is Kiva Systems a Good Fit for Your Distribution Center? An Unbiased Distribution Consultant Evaluation. MWPVL. February 2012. http://www.mwpvl.com/html/kiva_systems.html
[4] Ackerman, E. Fetch Robotics Introduces Fetch and Freight: Your Warehouse Is Now Automated. IEEE Spectrum. April 29 2015. http://spectrum.ieee.org/automaton/robotics/industrial-robots/fetch-robotics-introduces-fetch-and-freight-your-warehouse-is-now-automated
[5] McFarland, M. Amazon only needs a minute of human labor to ship your next package. CNN Tech. October 6 2016. http://money.cnn.com/2016/10/06/technology/amazon-warehouse-robots/
[6] D’Onfro, J. See what it's like inside Amazon's massive warehouses. Business Insider. Aug 17 2015. http://www.businessinsider.com/what-its-like-in-amazons-massive-warehouses-fulfillment-centers-2014-11/#amazon-calls-its-warehouses-fulfillment-centers-or-fcs-it-also-has-sortation-centers-where-prepped-packages-are-sorted-before-being-shipped-to-individual-post-offices-note-all-the-loading-docks-at-the-fc-below-1
[7] Teknomo, Kardi. 2014. Queuing Theory Tutorial. Revoledu. http://people.revoledu.com/kardi/tutorial/Queuing/Arrival-Distribution.html
[8] Popomaronis ,Tom. Prime Day Gives Amazon Over 600 Reasons Per Second to Celebrate. Inc. JUL 13, 2016. https://www.inc.com/tom-popomaronis/amazon-just-eclipsed-records-selling-over-600-items-per-second.html
[9] Kelton, W.D., Sadowski, R.P, Zupick, N.B. 2015, Simulation with Arena, 6th edn, McGraw-Hill Higher Education, Boston.