There is a technique to schedule high-volume production (millions of entities) and not slow the simulation. Scheduling with these volumes sounds impossible but, it’s not, and it’s simple to implement. To find out more, read the steps and get a link to a new model object.
Last week I developed a spectacular model for a pharmaceutical company. We needed to change the production line every 2 to 24 hours to a new product. The volumes were not high enough for dedicated lines. The temporary systems required different pieces of equipment to be assembled quickly to create a production line based on the product specs. The variation of products defined hundreds of possible equipment configurations. The total production for the week could be greater than one million units, while the individual orders could be from 2500 to 250,000 units (Bottles).
I needed to schedule many different products with a combined volume of more than one million units but, I discovered scheduling large quantities slows ProcessModel to a crawl. For example, scheduling 200,000 units to a single location takes 50 seconds just to load the entities.
High-Volume Production Problem
Before sharing the solution, it’s important to understand the problem. Simulations become slow when the event engine becomes overloaded. The simulation engine is required to track every entity in the model. Greater numbers of entities monitored in the model cause longer simulation time.
The only real choice for multiple high-volume arrivals is the scheduled arrival. When using a scheduled arrival, entities enter the receiving location at the precise time of the arrival. If five orders, totaling 200,000 units, are scheduled for Monday at 8:00 AM, then 200,000 entities arrive at 8:00 AM. You might ask “why not stagger the arrivals.” That might be a reasonable solution, except the timing for the arrival is not known. You may have to use the model to determine the timing. If any part of the model changes, then the arrival timing would need to be redone. So, it’s not practical to stagger production with precise timing.
Keep in mind that most high-volume production systems only have a few thousand entities in the “production process” at one time. The “high-volume” portion of the system can be accounted for in units waiting for processing, and completed product waiting to for shipment. The work in process is relatively small.
Also, keep in mind that once an entity exits the model, it’s no longer in the event engine. The simulation isn’t required to monitor departed entities.
If entities are introduced as needed and removed soon after production, the simulation will run fast and be able to process millions of entities.
High-Volume Production Solution
Reduce the number of concurrent entities in the simulation and the problem is solved. Scheduled arrivals are ideal to introduce entities because of a date and unique attributes for each product. But the problem of high quantities entering a queue is a problem.
Rather than having a large quantity arriving at once, use a scheduled arrival to introduce a “single entity” with a volume attribute. Use the volume attribute to create units using the create route. A Create route doesn’t introduce the entities until there is room at the destination. For example, if a create route has a quantity of 500, but the receiving location only has a capacity of 1 then 499 entities are scheduled but not placed into the event engine until there is room at the receiving location. Using this technique, I have built a model that processes more than 12 million entities and still runs efficiently.
Full disclosure requires me to say the solution is a bit more complex than I have described above. Since an entity is only allowed to create 999 new entities, large orders require multiple creates to reach high volumes. Because the programming of this technique may be difficult for a beginning user, ProcessModel created a simple model object to turn a single entity with a volume attribute into millions of arrivals. You insert the model object, then perform the following simple tasks:
- Insert graphics for each product produced.
- Modify the arrival to include the arrival date and time for the order.
- In the action logic of each arrival, change the volume, and the product identifier.
- Change the graphic after the Create route to match the graphics inserted in step 1.
The high-volume arrivals model object has application in pharmaceutical, manufacturing, food processing, consumer products, insurance processing, and more. Any time there are high volumes this is a simple technique to help you model your process.
This model object takes less than 1 minute to implement. It’s available for download, housed in the arrivals section and is called “High Volume Arrivals.” With your maintenance and support, this and other model objects are free. If you want this model object sent to you, just send an email to support with the words “Send me the Model Object – High Volume Arrivals.” Do you need help or want this model object modified, contact support.