You are here

Questions on Simile

I downloaded the trial copy of Simile earlier this year. My congratulations for coming up with ideas that will refresh the System Dynamics community!

I am looking for new alternatives in military modelling using System Dynamics (or similar tools). Presently I use Vensim, and based on that experience I would like to ask the following questions on Simile. (Sorry, I have not had time to work seriously with Simile):

1. How does Simile handle delays, this cornerstone of the System Dynamics paradigm? Simile’s help file does not even recognize the word delay!
2. How does Simile handle queues? I do not see any function for that.
3. How does Simile handle tables? Is it as in System Dynamics, by constructing a normalized x,y-table?
4. Does Simile allow easy sensitivity analysis? The ran_var(X,Y) function is there, but can I define max. and min. limits for a set of variables and get the output as a sensitivity plot?
5. Does Simile allow testing (debugging) of physical units? I have found Vensim’s Units Check facility extremely helpful. If the units of a model do not match, it is a certain sign that something is wrong—usually one’s thinking.
6. Does Simile allow partial testing of the model? Again, a very useful feature of Vensim is that the model can be tested piecemeal, as the work progresses (Vensim’s Partial Simulation).
7. Can Simile present a step-by-step (dt) list of simulated variable values? I have found that this is important when something is wrong with the model and one needs to look precisely for causes and actions (Vensim’s Table tool).
8. Does Simile allow discrete functions? The traditional System Dynamics school sees the world as a continuous function (and vehemently defends that view!), but in my experience discrete constructs are sometimes needed. For instance, it may not be logical to model your flow of sheep as a continuous variable if you transport sheep from Australia to the UK with only one ship.
9. Does Simile support optimization? Again, Simile’s help file does not know that word.
10. Does Simile allow outputs (plots) to be customized?
11. Is it possible to make a top-view presentation of a Simile model, while retaining the possibility to change most variables for simulation (a kind of a “flight simulator” approach). The traditional non-hierarchic System Dynamics models easily get clogged with too many details for presenting to decision-makers. A simple graphical model, “executive summary”, is needed but with the ability to demonstrate the dynamic behaviour.
12. Have you cooperated with the UK MOD in developing Simile? I guess that Simile’s submodel and GIS provisions should prove very useful in military modelling.
_________________
Johnny

Forums: 

> 1. How does Simile handle delays, this cornerstone
> of the System Dynamics paradigm?

Jerry Vanclay, a professor at Southern Cross University (Australia), has kindly provided us with a Simile implementation of the famous beer game, designed to introduce Systems Thinking. This shows a simple use of compartments to introduce a delay between the ordering and the delivery of a consignment of beer. One day, we will post the model on the web site, but in the meantime, anyone is welcome to write to us for a copy of it.

> 2. How does Simile handle queues?

There are a number of ways to handle queues in Simile, depending on what information you want about the queue. For the full shebang, an individual-based model (using a variable membership submodel to represent each object in the queue) is very interesting. Again, write to us if you'd like to see an example.

> 3. How does Simile handle tables?

Tables provide a value for use in an equation given an array of one or more indices. The data are supplied in a comma-separated values file. If a single column of data is given in the file, it is used as values, with an automatically assigned count as index. If more than one column of data are given, the last column is used as values, with the previous columns acting as indices. For example, in providing data for a grid of squares, the x- and y-coordinates would be followed by a value for that square.

In the equation the indices are substituted for whatever variable or instance number represents the index. In the example of the grid square, which should be modelled as a multiple-instance submodel, the x- and y-coordinates are derived from the submodel instance number, using the index( ) function.

> 4. Does Simile allow easy sensitivity analysis?

Not really. Not easily, certainly. This is one of the areas where we have many ideas how to improve. A first step towards this is taken in Version 4.0, which is presently undergoing final tests before release. A new feature allows scripts to be written to automate multiple Simile runs (amongst other things) and this would allow a determined user to accomplish a sensitivity analysis.

> 5. Does Simile allow testing (debugging) of
> physical units?

This feature is new in Version 4.0 !

> 6. Does Simile allow partial testing of
> the model?

Yes, if a submodel envelope can be drawn around the component to be tested. You can save a submodel separately, and load it independently, when it can be tested. Values required from elsewhere in the (incomplete) model are provided by the user using sliders.

> 7. Can Simile present a step-by-step (dt)
> list of simulated variable values?

Yes. Simile has a table display tool to which any or all variables can be added, and the results displayed and/or saved to file. The display interval can be set equal to dt or to any longer interval, if desired.

> 8. Does Simile allow discrete functions?

Simile uses the Euler integration method, which allows difference equations to be written as easily as differential equations. New in Version 4.0 is the option to use Runge-Kutta integration for continuous systems, but many discrete systems can continue to be modelled easily using Euler integration. I may have missed your point here, in which case fire away again.

> 9. Does Simile support optimization?

Rather like the answer to question (4) above, this is an area we're really keen to see improvements. At the moment, it can't easily be done within Simile. New in Version 4.0, user-defined scripts will allow a custom scheme to be designed.

> 10. Does Simile allow outputs (plots) to
> be customized?

No. We recommend exporting data using the table display tool and plotting it in your favourite graphics program if a particular style of plot is required. The quality of these programs is very high, and we could not replicate all the options within a small, fast display designed to be used during the simulation.

> 11. Is it possible to make a top-view presentation
> of a Simile model, while retaining the possibility
> to change most variables for simulation (a kind
> of a “flight simulator” approach).

Interesting question ! This is possible in a number of different ways using Simile. The run control is designed to look like a "flight simulator" dashboard, using sliders and checkboxes to control any variable designated by the modeller and viewing a set of display tools pre-determined by the modeller. Within the model diagram, it is possible to suppress detail, so that only the top-level components are shown. Furthermore, a custom display tool provides a game-like interface to allow a model to hidden completely except for the specified controls. Of course, in all these cases, the whole model is there, ready and waiting to be exposed, if the user is curious.

> 12. Have you cooperated with the UK MOD
> in developing Simile?

No. A large part of the development of Simile was performed as part of a research project funded by the UK Department for International Development. There is a very similar requirement for System Dynamics models that are more expressive, and therefore able to handle concepts such as GIS, than conventional graphical modelling packages provide.

Thank you very much for the thought that has gone into your questions. Please do not hesitate to follow up on any of these points.

Kind regards,
Alastair Davies