Practice makes a modeler perfect
When you have a business problem for which you need to create a simulation model at hand, the most critical next step, that in some instances can even mean success or failure of your modeling project, is to determine how exactly to model the problem.
The first question that you are looking to answer at this instance is:
Is a Simulation modeling method necessary ?
Analytical vs Simulation models
If you are a functional manger involved in strategic planning, high level forecasting etc. in a large organization, chances are that the most popular modeling tools are Spreadsheets. Tools like spreadsheets are useful in formula based solution instances -The output values are linked to the input ones via chains of formulas and in more complex models, scripts. Various add-ons allow you to perform parameter variation, Monte carlo or optimization experiments.
But formula based Analytical models have limitations
There is a large class of problems where the analytics (formula- based) solution does not exist or is very hard to find. To be more specific, these problems are Dynamic problems with features like:
- Non-linear behavior
- Memory requirement
- Non -intuitive influences between variables
- Time and casual dependencies
- Large number of parameters
Consider a Transportation optimization scenario as an example…….
In these cases, you are looking to optimize the use of a rail car or truck fleet. Travel, loading and unloading times, maintenance, breakdowns, delivery time restrictions, terminal point capacities make that kind of problem extremely hard to approach with a spreadsheet.
The availability of a vehicle at a particular location on a particular date and time depends on a sequence of events preceding that time. Answering the question of where to send the vehicle when it is idle requires the analysis of event sequences in the future.
Once you have determined that Simulation modeling is indeed needed, the next question that needs to be answered is:
What type of Simulation model should I use ?
Three methods in Simulation modeling
Method in Simulation modeling parlance means a general framework for mapping a real world system to its model. It essentially suggests a type of language, or “terms and conditions” for model building. Three methods are widely used:
- System Dynamics
- Discrete Event Modeling
- Agent Based Modeling
Understanding the level of abstraction of the problem
In you career as an analytics professional in Supply Chain domain, you will end up developing models of various abstraction levels. As mentioned earlier, the rules of abstraction are not cast in stone and can (and should) vary based on the problem at hand. However, generally, certain types of simulation models will always align with a specific abstraction level.
The cheat sheet below should be able to guide you in your model development process to evaluate whether you are modeling at the right abstraction level.
To get a more in depth understanding of abstraction level, please refer to my this article:
Think about the problem to determine the method to be used
As mentioned before, the choice of method that should be used is based on the system being modeled and the purpose of the model. Abstraction level, as defined above, plays a key role in that. Sometimes, this choice is driven by the expertise of the modeler as they end up choosing a method they are strong in. However…..
I strongly suggest to avoid this approach since in many instances, I have seen “overkill” scenarios where complex models were created where the result could have been delivered using simple simulation modeling methods.
Understanding the methods and choices through examples
Example 1: Say you are a retailer and you need to understand the demand dynamics of Supply and Demand. You can use a System Dynamics modeling approach in this instance.
System dynamics is a method of studying dynamic systems. In system dynamics modeling we take an endogenous point of view. Model the system as a casually closed structure that itself defines its behavior.
Example 2: You need to model how parts will move through a Manufacturing assembly line. The good choice here is Discrete Event modeling. The idea of a Discrete event modeling method is that the modeler considers the system being modeled as a process, i.e a sequence of operations being performed across entities.
The model is generally specified graphically as a process flowchart, where blocks represent operations. The flowchart usually begins with “source” blocks that generate entities and injects them into the process, and ends with “sink” blocks that remove entities from the model. Typical output expected from a discrete event model is:
- Utilization of resources
- Time spent in the system or its part by an entity
- Waiting times
- Queue lengths
- System throughput
- Cost of the entity processing and its structure
Example 3: An industrial supply chain with a network of several independent companies is a good example of a socio-technical system. The physical and social networks of the actors involved in their operation collectively form an interconnected, complex system in which the actors determine the development and operation of the physical network and, likewise, the physical network affects the behavior of the actors.
In this type of system, the many interactions taking place in the social and physical subsystems can result in the complex, dynamic behavior of the supply chain as a whole. Accordingly, any attempt to improve the functioning of the supply chain requires a comprehensive understanding of this behavior under different supply network configurations.
Most of the current approaches to the modelling and simulation of supply chains do not capture the rich socio-technical dynamics present. The Agent-based modelling approach, however, seems to be very promising as a means to address this complex behavior.
Agent based modeling suggests to the modeler yet another way of looking at the system when you may not know how the system as a whole behaves, what are the key variables and dependencies between them, or simply don’t see that there is a process flow but you may have some insight into how the objects in the system behave individually. Therefore, you can start building the model from the bottom up by identifying those objects (agents) and identifying their behaviors.
You can connect the agents to each other and let them interact; other times you can put them in an environment, which may have its own dynamics. The global behavior of the system then emerges out of many concurrent individual behaviors.
The more you do it, the better you get at it….Bon Voyage….!!!