AnyLogic Software

This forum contains all archives from the SD Mailing list (go to http://www.systemdynamics.org/forum/ for more information). This is here as a read-only resource, please post any SD related questions to the SD Discussion forum.
Locked
Patricia.Quinn@ge.com
Newbie
Posts: 1
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Patricia.Quinn@ge.com »

Group,

Has there been any previous discussion regarding AnyLogic software for SD
applications that someone can direct me to?

If not, does anyone in our SD community have experience/familiarity with
AnyLogic software?
This software purports to ""develop more models with one tool"", including SD,
as the bullets below indicate from their website (
http://www.xjtek.com).
* Develop agent-based, system dynamics, discrete-event, continuous and
dynamic system models, in any combination, with one tool
* AnyLogic supports the seamless integration of discrete and
continuous simulations
* The native Java environment supports limitless extensibility
including custom java code, external libraries, and external data sources
* An extensive statistical distribution function set provides an
excellent platform for simulating the uncertainty inherent in all systems
* A powerful experimental framework, built-in support for Monte Carlo
simulations and advanced forms of optimization support a wide variety of
simulation approaches


Here is my short list of questions regarding this software:

1) What are the strengths of AnyLogic software?

2) What are the weaknesses of AnyLogic software?

3) How does AnyLogic compare to Vensim and/or Stella (technically,
transparency, interface capability, training time, etc.)?


Greatly appreciate your thoughts and comments.

Regards,
Pat
From: Patricia.Quinn@ge.com
Bill Harris
Senior Member
Posts: 75
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Bill Harris »

Patricia.Quinn@ge.com writes:

> 3) How does AnyLogic compare to Vensim and/or Stella (technically,
> transparency, interface capability, training time, etc.)?

Pat,

I'm not familiar with AnyLogic, but their goals sound related to those
of Paul Fishwick in his SimPack software and in his book Simulation
Model Design and Execution. NB: SimPack models are coded in C (or, in a
few cases, C++), and there's not much frou-frou there. That gives quite
a bit of flexibility -- anything you're willing to code in C.

Potentially OT: I've done a bit of work using SimPack, and it's got a
different feel than working with a system with a GUI. It feels as if it
takes longer to create a model that way. (I've built up a couple of
different approaches to doing SD modeling in SimPack, though, and
neither look a lot like SimPack's original code anymore -- one looks a
lot like Dynamo.) It also feels as if the process encourages me to
think more about what I'm doing before I do it, which makes me wonder if
the overall process is longer or only the step that puts model
components into the software. I guess I should be more rigorous in
measuring that.

Finally, it seems as if seeing results is faster, easier, and more
flexible (using Gnuplot), for I simulate the model once and then can
quickly plot any one of a number of graphs in simple- or
publication-quality with a few keystrokes (Emacs' gnuplotmode is great
for this). If I had stochastic components to a model, I could use
something like R to analyze the results.

I haven't given up on GUIfied simulators by any means, but a text-based
programming approach also has merit. I think the switching back and
forth helps me improve on both sides, much as software engineering
research (e.g., some of Bill Curtis' work at the former MCC, IIRC) has
indicated programmers improve with the number of different languages
they know, even when programming in one particular language.

Bill
From: Bill Harris <bill_harris@facilitatedsystems.com>
--
Bill Harris 3217 102nd Place SE
Facilitated Systems Everett, WA 98208 USA
http://facilitatedsystems.com/ phone: +1 425 337-5541
Geoff McDonnell
Junior Member
Posts: 7
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Geoff McDonnell »

This is the first AnyLogic discussion on this list. However a small group of
SD folks met in Denver last November to critically evaluate AnyLogic over
several days.
Most of us were there because we needed to address more detailed subgroup or
individual behaviors within the context of systems constraints. I was
impressed by the elegant object-oriented architecture and the ability to
extend the product.
If you want to build a SD model in Anylogic it is very similar to that in
Vensim/Powersim/Stella: variables (stocks, flows, auxiliary), formulas and
equations, lookup tables, delays, support for Arrays (Subscripts), etc.
However the familar notation of Flows between the stocks is replaced by
links that show the variable dependencies only. Variable and function tips
are available when
you are typing. AnyLogic enables you to better structure your model: you can
encapsulate a certain SD diagram into an object and define its ""interface""
variables. You can also reuse your SD component (called an Active Object
in AnyLogic): ""instantiate"" several times with different parameters.

However, the real strength of AnyLogic is the ability to define non-SD
model elements and to combine them with SD models: you have many more
modeling constructs to define discrete events or discrete behaviors: e.g.
statecharts, timers, etc. You can use alternative approaches such as
Discrete Event (flowchart-based, there is a library with queues, delays,
conveyors, etc.) and Agent Based modeling. For Agent based, however,
AnyLogic is not a ""pure drag-and-drop"" tool anymore and you need to
get ready to do at least some Java coding, which can be a challenge for SD
purists. I would say, AnyLogic can be as flexible as you wish, but to
harness its full power you would need to learn some Java.

Visualization/animation capabilities of AnyLogic are far more advanced than
in any of traditional SD (and maybe even DE/AB) tools. It is quite easy to
develop interactive animations with nice graphical front-ends and you even
can convert them to applets and publish on your website - full working
interactive models can be run by clients using their web browsers. There are
many examples of such models at
http://www.xjtek.com/models/agent_based_models/

After using ithink for more than a decade, I find the main difference is
that SD tools force the problem to be conceptualised in the familiar SD way
and with the conventional representation. This is only one of many ways of
both conceptualising and visualising in AnyLogic. Again it takes time to
learn how to use its strengths; fortunately there are a large number of
examples to work through.
Because I build health system simulations, again I need to represent system
constraints and sub-group and individual (Agent based) behaviors (e.g. state
transitions based on custom probabilities calibrated using discrete choice
experiments for preference sensitive decisions). Also the GIS-like
animations help tell a more compelling and engaging story to a broader range
of people including policy makers and consumers. To me, splitting an
elegant SD Model to handle subgroups can ruin a good model.

Our current approach on projects (for the past 8 months) is to build an
aggregate SD only model to model system structure and the average behavior
pattern , then a more detailed SD + AB and or DE model to represent subgroup
(e.g. regional variation) and individual behaviors and for engaging
animation.
As for training time, our experience is that it's easy for OOT youngsters
from computer science, comfortable with UML, but a little harder for SD
tragics to broaden their way of conceptualising a problem. I am teaching a
health systems simulation course using anylogic next semester so that will
give me a feel of how new non- technical modellers react to it.

regards
geoff
Dr Geoff McDonnell
Director Adaptive Care Systems
Research Fellow Centre for Health Informatics UNSW
gmcdonne@bigpond.net.au
sydney Australia
Phone +612 9386 0993 Fax +612 9386 0992
Joel Rahn
Junior Member
Posts: 15
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Joel Rahn »

Gord Kubanek (and I to a lesser extent) is looking at Anylogic as an
alternative to SD for HR problems. Should have something to say in about
a month.
Joel Rahn
jrahn@sympatico.ca
Magdy Helal
Junior Member
Posts: 7
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Magdy Helal »

Hello, I have seen AnyLogic in the WinterSim Conf last year. It was very
amazing idea to see a s/w that combines all simulation techniques in one
package. The s/w was priced at $500 which makes it relatively cheap and
makes me and may be other have doubts about it. However I did not try it
yet. One of my fellows is doing right now but he is not interested in
SD.

For those who have worked with AnyLogic I have this question, which is
about how to combine discrete simulation with Continuous simulation in a
single model such that all variables can interact.

There can be two ways to build discrete-continuous simulations. In the
first the system time can be advanced continuously up to the next most
eminent future event. The event occurs altering the state of the system
and after it the continuous time advance part takes over again.
Continuous variables represent the state variables and are integrated
(mostly integral equations are used for continuous simulation) between
adjacent discrete events. Discrete events are described as time events,
however the events, which occur when the system reaches a certain state
of threshold, are called state events. This type of hybrid system mixes
the characteristics of each of the two simulation paradigms. So that
some variables will need statistical data preparation and analysis,
while some will be deterministic. V&V of the entire model will be closer
to follow the discrete simulation. Further the existence of
probabilistic data and variables will necessitate that the analysis of
the model output be based on statistics. Generally speaking, the
discrete parts will have great impact, and will be dominant in this type
of hybrid systems.

The other way is to have discrete and continuous independent components
in the model and then the interaction of them must be planned to allow
for data exchange. But the two types of variables are not interacting
automatically.

I would like to know how does AnyLogic combine the two simulation
paradigm, using the first approach or the second approach. I believe it
is the first. But if you correct me in that please do.

Best regards

Magdy Helal
Industrial Engi & Management Systems Dept
University of Central Florida
4000 Central Florida Blvd
Orlando, Florida 32816
Phone 407 823 0017 OR 407 882 0285
Fax 407 823 3413
Cell 407 496 9468
e-mail:
mhelal@mail.ucf.edu
Geoff McDonnell
Junior Member
Posts: 7
Joined: Fri Mar 29, 2002 3:39 am

AnyLogic Software

Post by Geoff McDonnell »

In response to Magdy Helal,
The price you mention is the academic rate, which is significantly
discounted from the full commercial price.

AFAIK, in AnyLogic the simulation engine is truly hybrid, i.e. is capable of
executing a concurrent interdependent and interacting mixture of continuous
processes and discrete events.

You can define a set of variables and algebraic-differential equations on
them (e.g., a SD stock and flow diagram), and that will be your continuous
part of the model. Numerical methods included in the AnyLogic engine (BTW,
there
is a good choice of them, not just Euler and Runge-Kutta) will solve
the equations in continuous time, and at the same time the ""discrete engine""
will be scheduling and executing the discrete events that are generated by
statecharts, timers, or more high level constructs such as Enterprise
Library Delay objects, etc. The way the two parts interact is as follows:


1. Suppose the nearest discrete event is scheduled to occur at a certain
moment in time.
The continuous engine (the ""integrator"") is told to stop
exactly at that time. Then the event is executed, which may include any kind
of action, generation or canceling of other events, etc. - AND changes of
variables that are integrated (or even changes of active equations set if
equations are associated with statechart states!) This way the discrete part
may affect the continuous part. After event(s) scheduled for that time
moment are all executed, the continuous engine resumes its execution with
possibly new initial conditions until the next event.

2. But it may also work vice versa: you can define a condition (a ""change
event""), say ""X > 5 AND f(Y) == x"", and associate it with a statechart
transition. Then the condition is constantly being tested while the
continuous engine is doing its job, and, if it becomes true, the engine will
accurately (with the specified tolerance) find the exact moment of time when
it happens and generate a corresponding discrete event at that moment which
will cause the statechart transition to execute. This way the continuous
part can affect the discrete part of the model.

There are examples in the AnyLogic distribution set (some of physical
systems, but also supply chain) that demonstrate the usefulness and elegance
of this hybrid approach.

regards
geoff
Dr Geoff McDonnell
Director Adaptive Care Systems
Research Fellow Centre for Health Informatics UNSW
gmcdonne@bigpond.net.au
Mobile 0419 016 116
Phone +612 9386 0993 Fax +612 9386 0992
Locked