Simulation modeling is increasingly being used to address a variety of issues in several disciplines including but not limited to healthcare, manufacturing, service and supply chain systems. As a pivotal decision making tool, simulation determines the attractive configurations and alternatives to provide sufficient justification to convince managers to adopt improvements. However, there are some activities in real-world systems which simulation software packages are not enable to address them properly. These type of activities are primarily decision making toolboxes which are developed in order to improve the system performance. For instance, in manufacturing systems, scheduling techniques are widely used to provide the optimal scheduling of the shop floor activities. Therefore, with the aim of long-term strategic planning of the system via simulation, it’s crucial to bring these decision making activities into simulation model. This capability makes the simulation smarter and more accurate since it provides more realistic perspective of the system and what really happens in there.
Embedding this exceptional logic into a simulation model is quite challenging; however, with the advance of current simulation packages like SIMIO, its attainable. One of the advantageous of SIMIO among many, is its “Application Programmers Interface” (API) capability, which allows users to customize or extend their desired model properly. The extension could be adding new steps, elements and rules, importing and exporting data, enhancing experimentation with external algorithms, or interfacing from external programs. By leveraging the API capability, this study presents a new user defined step instance which incorporates MATLAB as an integral part of the SIMIO. This step is called “CallMatlab” and requires the folder address that the MATLAB file is located plus the MATLAB function’s name. Similar to the existing step instances in SIMIO, the user could easily drag-and-drop CallMatlab while building processes.
One of the applications of the proposed “CallMatlab” step is call for optimization within the simulation run. In the literature, this type of simulation is called Iterative Optimization-based Simulation (IOS) which an optimization manager is embedded in a simulation agent. This step is able to trigger optimizer by occurrence of predefined events in simulation. Regardless of the optimization type, one could utilize MATLAB either to run user customized optimization algorithms, or call commercial optimizers e.g. CPLEX through MATLAB. Since the aim of simulation is to mirror the real-world activities, the user can apply this step whenever they routine optimization in a real-world situations. For instance, in a manufacturing system, the planners use optimization to schedule the jobs either in regular basis like: at the beginning of every shift or at some urgent cases like: machine failure, repair or new job arrival. Hence, depending on how often optimization is used in the system, the provided step would be called during simulation execution which triggers the optimizer in MATLAB. Some of the applications of this step instance in simulation modeling are provided as follows.
Application in Healthcare Systems
Scheduling the patients, nurses or physicians is a very common task in most hospitals and ERs. The CallMatlab step could be utilized to model daily scheduling operations at a hospital where unplanned events may occur and optimization is needed. Examples of such events are: two ill physicians, the announcement of a bus accident that will overflow an ER, a delay in the arrival of critical spare parts, etc. In general, these events require immediate compensating actions that may be assessed with a simulation model (Espinoza et al., 2014). A simulation-based decision model, initialized by having the most recent information of the state of the system, might be useful in short term evaluation of several alterative solutions or alternative operational strategies (Espinoza et al., 2014). However, for long term planning, the proposed step could help practitioners to run IOS to portray their system, while it is optimizing several times in face of any challenge that may exist in the real healthcare system.
Application in Manufacturing Systems
During a simulation run of a manufacturing system, optimization is called whenever the status of the system changes and rescheduling is needed. The optimization manager in MATLAB solves an analytical problem and sends the results back to the simulation in order to redistribute the unprocessed jobs among available machines. Some of the trigger events in a manufacturing system could be, machine breakdowns, preventive maintenance, change in demand pattern, unexpected tardiness of the scheduled jobs or shift start time. By occurring any of those aforementioned events, the simulation manager initiates the optimization and reschedules all of the unprocessed jobs according to the fresh optimal solution.
Application in Supply Chain Management (SCM) Systems
A simulation model could embrace diverse SCM models with their non-linear, complex relationships and under more realistic assumptions. Customer’s demand and supplier’s capacities are constantly changing both in terms of variety and price range. One could leverage IOS model on a supply chain model, while any of those changes in the system could be considered as a trigger point. For instance, if customer’s demand changes, supplier capacity varies, new supplier been selected, the number of available transports fluctuates or even prices change, the simulation could pause itself and optimize the system according to the new SCM condition. Applying the proposed IOS approach, provides companies the opportunity to design their own supply chain, not only by optimizing internal operations, but also by examining and improving the entire supply chain's performance for long term.
The proposed SIMIO step integrates a simulation software to a computational agent in order to perform high computational operation like optimization. Several applications are presented to illustrate the potential of the proposed CallMatlab step instance in order to implement IOS modeling. However, this step is not limited to perform optimization and could be utilized to execute any type of calculation whichever user desires. We believe this addition, adds a new dimension to simulation modeling approach. This would enable experts to enjoy the modeling simulation while implementing their own logics and decision making tools within the simulation run.