[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compare Swarm with Repast
From: |
Paul Johnson |
Subject: |
Re: Compare Swarm with Repast |
Date: |
Sun, 11 Aug 2002 11:24:49 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020606 |
I don't want a flame war over this, as I expect the answer will boil
down to a religious "whatever you like, use it!" I also fear that I'm
only revealing my ignorance. And if I say anything that offends anybody,
I sincerely apologize and don't intend to.
RePast originated as a translation of much Swarm source into Java, so it
should be similar. There are many parts of RePast that are literal
translations. I recall recently seeing a user question about why the
diffusion grid in RePast works the way it does, and the answer was that
Swarm used a particular formula and they copied it exactly. I tend to
think of RePast as an alternative implementation of the Swarm API,
rather than a competitor, it is a project cooperating along toward a
common goal.
I think it would be excellent if you wrote up some agents in Java, and
then created both Swarm and RePast sims for those agents, and we could
match them up. At the last Swarmfest Mike North gave a presentation
about using RePast to recreate a simulation that replicated an old swarm
classic. That presentation was really interesting, showing it could be
done and that there are some surprising techinical complications
(numerical precision being important).
There have been a few comparisons published, they seem to indicate that
for light duty projects, RePast is easier to get up and running, but for
heavy duty projects it may be lacking. In the swarm-support list within
the last two weeks, a couple users have touted the ease of use.
For me, Java is a minus rather than a plus, but I understand some people
like it.
Off the top of my head, I'd say here are some important things to consider:
1. Archiving:
Now, concerning RePast, I noted this web site today:
http://www.irit.fr/COSI/training/evaluationoftools/Evaluation-Of-RePast.htm
In there it says RePast has no serialization.
I've got the current Swarm (CVS) working to fully save and re-create
complicated objects, including ones that contain Swarm Arrays and C
arrays of ints and doubles. Look for a methods
"lispStoreIntegerArray..." and "lispStoreDoubleArray" in DefObject.*.
Sometimes it is vital to be able to save the state of a simulation in
its entirety and restart and Swarm can do it for me in the Lisp format.
I'm not trying to do this with HDF5. (yet!)
2. Swarm implements hierarchical dynamic decentralized scheduling. You
can have any number of levels of hierarchy and actions from any level
get merged into time in a meaningful way. About this, I made a
presentation at the last swarmfest. (I think I have that online in my
Swarm directory) In this sense, the Scheduling mechanism in swarm more
closely approaches the ideal of a 'bottom up' model.
3. For Swarm, one can find some really interesting applications, not
just the swarmapps stuff, but the village model (of Southwestern Native
Americans), Arborgames, El Farol, the Artificial Stock Market, and
numerous others. Many of these are in the Swarm ftp directories, many
are available directly from authors. Repast has translated Heatbugs to
run in RePast, but as far as I know, there is not so big a set of examples.
At the last swarmfest, the RePast team gave a nice presentation
featuring some of the strengths of their package, including several
kinds of diagnostic tools for social networks. As you must know, RePast
is explicitly designed for social science modeling of that sort. That
part looked good to me and I considered whether we should lobby for
development support in Swarm for similar libraries. I concluded that it
was probably not worth my effort because so many of the people using
Swarm have no interest in social networks.
For me, the most interesting issue is this. All of these sim packages
are motivated in part by the desire to help nonprogrammers build models.
I think it is important that the modeling framework not impose too
much structure, it is important to avoid the danger that modelers will
find a "hammer" and think all problems are "nails". What can a package
do to help researchers implement their "ideas" without making them do a
ton of programming? I think no package has a perfectly workable answer.
In case you are making a fresh start, here are other simulation packages.
Starlogo: this is one of the first efforts to implement a commonly
usable simulation framework and I think it is pretty nice, if you can
get it going. It imposes a pretty large amount of structure on models
that can be run--mostly you need to have agents wandering around in 2d
doing stuff. I don't think it would accomodate something like the
Artificial Stock Market
Ascape: is a Brookings sponsored project that many people are using
quite effectively in business and academic research (sugarscape). I do
not know all the business details of its current status, but I got the
idea that Biosgroup is very enthusiastic about the software and they are
making actual money (?) doing research projects with it. At a recent
meeting, I learned that Ascape, like RePast, imposes a rather limited
view of Scheduling.
There are other packages I've heard of but never tracked down, including
Quicksilver and a one called AgentSheets.
As far as I can see, these all trace back intellectually to Chris
Langton, the SFI, Swarm, and "new ideas" from about 1994.
At a National Academy of Sciences meeting last October, I met several
research teams that were preparing new tools for this kind of thing. My
notes indicate a package called Dyno was coming out that was supposed to
be truly scalable on a massive level, and until this moment I forgot to
look it up.
pj
Xiaodong Li wrote:
Dear swarm modelers,
Just had a browse at Repast Web site... I am wondering if anyone has
done some serious comparison between Swarm and Repast. It seems that
Repast offers features almost just as good as Swarm, apart from its
advantages of being built upon Java. Can anyone tell any pitfall before
I consider to jump in the boat?
It seems to me that Repast lacks of good tutorials and application
examples for beginners to follow... I cannot find anything like the
simpleBug to ExperBug that kind of examples, which I think is very
helpful in Swarm.
Comments are appreciated.
- Xiaodong
RMIT Uni. Melbourne, VIC, Australia
==================================
Swarm-Modelling is for discussion of Simulation and Modelling techniques
esp. using Swarm. For list administration needs (esp. [un]subscribing),
please send a message to <address@hidden> with "help" in the
body of the message.
==================================
--
Paul E. Johnson email: address@hidden
Dept. of Political Science http://lark.cc.ku.edu/~pauljohn
University of Kansas Office: (785) 864-9086
Lawrence, Kansas 66045 FAX: (785) 864-5700
==================================
Swarm-Modelling is for discussion of Simulation and Modelling techniques
esp. using Swarm. For list administration needs (esp. [un]subscribing),
please send a message to <address@hidden> with "help" in the
body of the message.
==================================
- Compare Swarm with Repast, Xiaodong Li, 2002/08/11
- Re: Compare Swarm with Repast,
Paul Johnson <=
- RE: Compare Swarm with Repast, Christopher J. Mackie, 2002/08/11
- Re: Compare Swarm with Repast, Russell Standish, 2002/08/11
- Re: Compare Swarm with Repast, M Lang / S Railsback, 2002/08/12
- Re: polymorphism (was compare swarm with repast), Nick Collier, 2002/08/12
- Re: polymorphism (was compare swarm with repast), gepr, 2002/08/12
- swarm support (was compare swarm with repast), Jacobo Myerston, 2002/08/12
- Re: swarm support (was compare swarm with repast), gepr, 2002/08/12
- Re: swarm support (was compare swarm with repast), Jacobo Myerston, 2002/08/12
- Re: swarm support (was compare swarm with repast), gepr, 2002/08/12
- Re: swarm support, Alex Lancaster, 2002/08/13