MDESim - MATLAB Discrete Event Simulator

[ What is MDESim | When to use MDESim | When NOT to use MDESim | Download & Installation | Requirements | MDESim Manual | The Author ]

What is MDESim

MDESim (MATLAB Discrete Event Simulator) is a MATLAB function with local declarations that represents an event-oriented discrete simulation tool written in the MATLAB language. There are system declarations common to all or most discrete simulation models that obviously should not be modified. User part code adds variables and functionality of particular simulation models. Nothing is protected or hidden, so users have full control over the model. All important facilities typical for discrete simulation tools are available:

Of course there are other facilities like generation of random numbers, advanced statistics, presentation graphics, etc. that are already supported by standard MATLAB functions and toolboxes. Note that so far the tool is in its very initial stage of development, so I shall appreciate very much all comments and suggestions.

Back to Top


When to use MDESim

MDESim was created because (surprisingly) no such tool is currently available. By "such tool" I mean a general, easy to use, and fast to learn tool for creation of programmed discrete event simulation models in MATLAB where users have full control over the model.

Among other topics I teach variance reduction techniques and simulation based optimization. So I need simulation models represented by functions that given input arguments return the simulation results. Such functions are then called repeatedly from other functions that implement various optimization and variance reduction algorithms.

The tool might be interesting for those who want to write simple and medium-scale discrete simulation models in MATLAB.

A user of MDESim is in a position similar to a programmer in a discrete simulation language based on events paradigm. (S)he has to write event routines together with model initialization and evaluation of the experiment. Most simulation-related tasks are programmed by activating MDESim functions.

Back to Top


When NOT to use MDESim

Do not use MDESim if you do not like programming. Though programming of models is easy, understanding of system functions is necessary and coding the model functionality may not be trivial. Moreover there are user friendly tools that support creation of models without programming. In MATLAB environment there is SimEvents and there are other tools like Arena, Extend, SIMUL8, etc. Just note that full versions of such tools are expensive.

Do not use MDESim in case of larger simulation studies. The main objective when creating MDESim was simplicity and clarity. Not speed. So if you need to write models of complex systems, use either one of the simulation languages, or what is more typical today, a library of simulation routines in a general language. There are such libraries for languages like Java, C++, Python, etc. My tip for Java programmers is the tool SSJ (Stochastic Simulation in Java).

Back to Top


Download & Installation

MDESim is free. Please e-mail me first something about yourself and about your intended use of MDESim. Then I shall send you the downloading details.

There is no installation. All models are functions that of course typically call other local or global user functions. All is I hope clear from provided examples.

Back to Top


Requirements

The only requirement is MATLAB. MDESim works with versions 7 and later, probably even older ones. Please report any incompatibility issues.

Back to Top


MDESim Manual

Open the MDESim manual. In the manual there are example models including user code.

Back to Top


The Author

In case of any problems do not hesitate to contact me:

 
Jaroslav Sklenar
Associate Professor
Department of Statistics and Operations Research
University of Malta
Msida MSD 2080
Malta
e-mail: jaroslav.sklenar@um.edu.mt

Web: http://staff.um.edu.mt/jskl1/

Phone: (+356) 2340 3070     Fax: (+356) 2131 2110

Back to Top


[ Home | University of Malta | Department of Statistics & OR ]

This page is translated into Russian by Alana Kerimova.

This page is translated into Chinese by Austin Cole.

This page is translated into Spanish by Chema Bescos.

This page is translated into German.

This page is translated into Ukrainian.

This page is translated into Italian.

This page is translated into Czech.