Simulation Best Practices for Real World Models
Simulation best practices are key to being successful on every project, but it takes time to learn how to approach a model. This article teaches the simulation best practices used at SimWell that we’ve developed over hundreds of simulation models.
Simulation modeling is the process of replicating an existing (or potential) system into a simulation model using software and technology.
Simulation models represent great resources for testing multiple systems hypothetical scenarios in risk-free environments while being able to manipulate their parameters, constraints and logic without having to incur in high costs.
However, even with the use of cutting-edge technologies and software, replicating a system into a simulation model represents a challenging task.
Without a well defined working methodology it can be time and resources consuming, leading to the need of identifying best practices to optimize the modeling process and build effective, robust and reliable simulation models.
In this blog, we will go over a compilation of some of the best simulation modeling practices from our best simulation modelers at SimWell to succeed as a simulation modeler.
If you interested in learning more about the entire process for managing a modeling and simulation project from scratch and for building effective simulation models, check out the following article: How To Build Effective Simulation Models, or Book a Call with us.
What simulation best practices make for a good simulation model?
A model that captures and replicates the real system
If the simulation model is not capable of capturing and replicating the real system under study (if it exists), then the model’s purpose becomes lost.
The simulation model must mimic to the best of its capabilities the operation of the system under study, including all of the interactions between its agents and resources, including constraints and limitations. In this way, the simulation analyst can be confident on the obtained data to make the correct decisions.
A model that is simple enough to answer specific questions
The simulation model must be capable of providing data that helps answering all formulated questions during the defining phase of the simulation study. Simulation models are meant to be used as decision-support tools to transform data into valuable information and business insights to define a course of action on a given project.
A model that is trustable and validated
As stated before, the simulation model must provide trustable outputs that capable of supporting the decisions made by the simulation analyst, project manager and stakeholders of the project. To achieve this, the simulation model must go over a series of validation steps to ensure a correct logic of the system being modeled.
A model that is robust and reliable
The simulation model must mimic all constraints and limitations from the system under study. You will want to limit some of the agents and resources parameters (e.g. walking speed, processing capacity, lifting capacity) to make them act as if they would on real life.
A model that is fast to execute
The simulation model must be able of loading and executing fast, specially when replications are need (i.e. almost always). Small changes in simulation models can improve significantly their execution speed (e.g. writing outputs to csv files instead of xlsx files).
A model that is well organized and documented
The simulation model must contain a logical flow that facilitates its understanding and reading. It is highly recommended to keep a separate documentation file that lists its objective, agents, logic, constraints, limitations and any other significant information for the simulation analyst or anyone involved in the development and coding process of the model.
A model that is easy to use/intuitive UI
The simulation model must have a friendly-user interface, especially if it is going to be shared with non-technical people who will run it.
A model that contains useful animation (good looking/realistic) if possible
The simulation model can contain animation to help non-technical people understand the logical flow of the process and its execution. In addition, animation is useful for formal presentations and for capturing the audience attention.
A model that is capable of detecting wrong inputs
The simulation model must be able to easily recognize if the input data is wrong, incomplete, missing or contains a different format from the one required. From a systems perspective, always take into consideration that ‘garbage in, garbage out’.
A model that has no bugs
The simulation model must be free of bugs. Otherwise it will not be able to run and obtain the desired results, and thus, it would be useless. It is considered good practice to debug the simulation model in a regular basis after new updates or changes have been made to avoid losing progress if an error or bug is found.
Simulation Best Practices for Modeling Process
Define what to model before starting to build it
This is the most overlooked simulation best practices. Be sure to have a clear understanding of the system to be modeled. Will you be required to model the entire system or just a subsystem? Do you need to consider all of its components? Is there anything can should or should not be excluded? These are all questions that need be answered prior to start building the simulation model.
Make lots of small tests/examples/prototypes
This will help you mastering your objects and concepts within your simulation model. This is a key simulation best practices.
Fail fast, fail often
Run your simulation model in a very regular basis; do not wait to add major chances without running it, otherwise it will become more difficult to track errors. In addition, you can also make use of the debugger mode (if the simulation software used has one), pause the model while running it, or print success messages after specific actions/functions have been called. This is an important simulation best practices that will save you time and frustration.
Expedite/automate the testing and debugging processes
Create outputs, display plots and build dashboards that help visualizing the results to identify undesired trends or wrong outcomes.
Add lots of comments and descriptions
There is nothing more frustrating than trying to understand the logic behind a code written by someone else that has no comments included. Adding descriptive lines of comments on one’s code facilitates its reading and understanding to people who are unfamiliar with it and that will continue working on it. When declaring variables, be sure that their names are descriptive enough to clearly understand what they represent.
Simulation Best Practices for Model Quality
The model should be easy to update
It is very likely that customers will want to try out multiple configurations or variants of the same model (e.g. new layouts, new parameters, additional variables, more constraints), reason why it must be flexible enough to make quick updates and adapt it to the client’s needs. You will want to avoid having to build a simulation model for each configuration.
Do not copy code
Avoid at all cost hard-coding when possible. Optimize your code in a way that it can be reusable with other configurations from the same model whiteout having to code everything all again.
Break down code and objects to short functions and several agents
Instead of having few large functions with multiple operations, try having many small functions with unique operations. In this way you can specific functions multiple times without having to hard-code them from scratch.
Visually organize objects in a practical and intuitive way
Within your simulation model, try organizing the process flow/logic from left to right or from top to button in a practical way. Group all functions in a common space, as well as parameters, variables, agents and resources. In this way, if any changes are needed, a simulation modeler can easily identify the objects and modify them according to the model’s needs.
Think about what the user might want to test/change
Take one step further and ask yourself potential questions the user might ask you (the modeler) down the road. In this way, your simulation model could be prepared to include additional features that were not originally considered.
Get help from experts in each area
Simulation modelers tend to specialized in specific software (e.g. AnyLogic, Anylogistix, Arena, MassMotion), libraries (e.g. pedestrian, material handling, rail, fluids, discrete event) and industries (supply chain, logistic, manufacturing, defense, health care). You may try to contact expert simulation modelers depending on your project nature; just take into considerations that their services are highly likely to not be free.
Resources to Improve your Simulation Best Practices and Modeling Skills
Previous models built by others
Some simulation modelers share their projects and models with the public by uploading them on a cloud, shared folder or website. Take advantage from the work of others to identify simulation best practices and techniques used to replicate them in your models.
Simulation software companies support teams
Simulation software companies regularly have customer support teams to help modelers answering technical questions.
Included example models in simulation software
Usually simulation software will include a limited library/portfolio of simulations models from which the users can play with and test. These models are meant for explanatory purposes and/or meant to be use as small tutorials for new users.
Help files & official documentations
Simulation software have an official documentation document (i.e. guide or manual) that lists and explains the software capabilities, functions, methods, libraries and more.
If a simulation software requires you to write lines of code using a particular programming language (e.g. Java for AnyLogic simulation software) and you feel that you lack programming skills, you can look for external programming courses in websites such as Udemy and Coursera. You might end up finding courses and tutorials on simulation software as well!
Books and academic papers
If you are interested in going more in depth in the theoretical part of the modeling and simulation field, take a look at books and academic papers. There are multiple researches interested in this field publishing new knowledge with academics and industry professionals.
LinkedIn user groups
There are multiple LinkedIn groups of simulation software users where they share ideas, posts, questions, doubts and sometime models. To join LinkedIn’s AnyLogic Software Users group, click here. Learning simulation best practices from the experts is the best way to learn.
In addition to all previous resources listed, there are multiple blogs on the internet with tutorials, examples and Q&As related with the field of modeling and simulation. It would just be a matter of finding the right community that best fits your interests to start contributing to this field.
We are a team of experts simulation modelers with many years of experience in multiple projects within a wide number of industries, including manufacturing, supply chain, logistics, warehouse management, mining, healthcare and crowd analysis.
At SimWell, we know you’re a trailblazing business leader, and it’s your job to make confident, informed decisions. The problem is you have a complex operation with infinite variables and interactions that just don’t fit on a pivot table. This leaves you utterly underwhelmed by the predictive tools at your disposal, and completely overwhelmed by the massive decisions looming.
We understand the all-consuming nature of big decisions, and the sleepless nights that surely follow. We know the pressure you’re feeling and we’re here to help. You need REAL answers based on the complexities of your operation. With cutting-edge simulation software from SimWell, you get just that.
We help you accurately predict the outcome of your decisions, giving back years of trial and error, saving you countless costs, and setting you free to be a trailblazing business leader. Press fast-forward on your big decisions with SimWell.