swarm-modeling
[Top][All Lists]
Advanced

[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.
                 ==================================


reply via email to

[Prev in Thread] Current Thread [Next in Thread]