March 2011


Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sean Luke <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Tue, 22 Mar 2011 08:15:41 -0400
text/plain (59 lines)
Hi Joerg, I've been making a lot of cleanups out on SVN as I go  
through all the code as I write each chapter of the manual and
discover things in the code which are less than optimal. I then
deprecate or slightly tweak it. It's a good exercise but it'll drive
you nuts, sorry about that. :-) Wait till people complain about the
revised charting code API.

So you've got the right idea. SimState's constructor is really
*really* simple:

public SimState(long seed)
          this.random = new MersenneTwisterFast(seed);
          this.schedule = new Schedule();
          this.seed = seed; // for GUIs later on if they want to

This means that all you have to do is call super(seed), then just set
the schedule as you like, exactly like your example below. I expect
your code to be safe for the foreseeable future.

So I'm interested: what kind of code are you executing before and
after each step? Is there a reason why MASON's "ordering" facility
wouldn't be sufficient? Should we be thinking about adding a gizmo to
the existing Schedule?


On Mar 22, 2011, at 2:32 AM, Joerg Hoehne wrote:

> Hi developers,
> in the current svn repository the SimState class was modified at
> least the
> constructors. This class does now only provide one constructor
> accepting a
> long a seed value for the random number generator.
> In older releases it was allowed to specify a scheduler what I did
> in the past.
> I'm using a subclassed scheduler to execute some additional code
> before and
> after each simulation step.
> Now I set the scheduler immediately after invoking super(seed) as
> the code
> example shows below.
> private AbstractSimulation(IUserSimulation userSimulation) {
> super(1);
> this.schedule = new ScheduleExtended();
> <and some more code>
> My question is: Is this a safe way to set up an own Schedule object
> and will it
> be safe in the future?
> Jörg