swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: experiment management


From: pauljohn
Subject: Re: experiment management
Date: Mon, 10 Sep 2001 08:45:05 -0500

We had a nice go-around on this in the mailing list about 2
months ago. Fred Wan was looking at ways to do it, and he posted
several questions and descriptions of his experience.  I believe
in the end he came around to my way of thinking.

My recommendation:

learn how to pass command line arguments to your program and run
in batch mode.  Use an external program to manage the
repetitions.  I have used Drone and think it is good.  Because
my windows users could not get Drone to work, I created a perl
script that can do the replication and parameter sweeps (for an
arbitrary number of variables).  That is here:
http://lark.cc.ukans.edu/~pauljohn/Swarm/MySwarmCode/replicator.pl

I wrote up a little tutorial for Objective-C users who want to
pass command line 
arguments and may also want to watch the simultion in GUI mode. 
That is here:

http://lark.cc.ukans.edu/~pauljohn/ps909/Agent-Based_Models/simpleObserverBug3-6.tar.gz

I don't get any feedback one way or the other about this.  I
take that as positive, because when things are fouled up, I get
plenty of negative feedback :)

On the Java side of the equation, I believe replicator.pl can be
adjusted and Sven Thommesen posted an excellent memo on argument
passing from the command line and you can find a link to it in
the SwarmFaq.

The alternative approaches that some have considered.

1.  In the swarm tutorial, there is a simulation that repeats
itself with benefit of an experiment manager class.  Look at
simpleExperBug.  That one has the Swarm Gui controlling a
wrapper class that spawns simulations. You don't get Gui display
of the action going on in a simulation.  I don't see much point
in this approach, as a result, and think the batch mode is
better.  And if I were at a meeting about the tutorial, I'd vote
in favor of a motion to remove this component.

2.  I worked pretty hard to enable Gui display in a context like
that.    The last working model is this one:

http://lark.cc.ukans.edu/~pauljohn/Swarm/MySwarmCode/repeatingHeatbugsParameter-2.0.1x.tar.gz

This creates an experiment manager, and the "next" action spawns
a simulation that  you can watch and interact with.  There is
some monkey business (problems I am not taking time to fix) with
Swarm itself that Marcus Daniels explained. The problem causes
some crashes when you start/stop/start the individual runs of
the model.  I am not digging into this more because I think the
approach I recommend above is the best.

Until our recent go-around on this, I had forgotten that Steve
Railsback had emailed me with a variant of the simpleExperBug
approach that worked in Objective-C.  I remember it was a model
of fish movement in a river that had an absolutely beautiful
picture with it.  I think if Steve is reading this message, he
will probably announce for us the URL of his code, as I seem to
have lost it.

I will update the FAQ with my opinions here.  To the best of my
knowledge, I've given a full account of the differing points of
view.

Charlotte Bruun wrote:
> 
> Dear List,
> 
> Is there anything new on experiment management?. At the FAQ page there is
> an old discussion on how to repeat experiments (for example with different
> random seeds), but this is from 1998. How do users handle this problem in
> 2001?
> 
> Charlotte Bruun



-- 
Paul E. Johnson                       email: address@hidden
Dept. of Political Science           
http://lark.cc.ukans.edu/~pauljohn
University of Kansas                  Office: (785) 864-9086
Lawrence, Kansas 66045                FAX: (785) 864-5700

                  ==================================
   Swarm-Support is for discussion of the technical details of the day
   to day usage of 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]