October 2006


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, 10 Oct 2006 00:28:08 -0400
text/plain (39 lines)
On Oct 8, 2006, at 9:50 PM, Maciej M Latek wrote:

> I need to solve a problem concerning stopping and restarting a  
> simulation. My bless point is to have a function on a schedule,  
> which in each step checks a condition for ending a given run, if  
> false does nothing,  if true does some reporting, resets simulation  
> parameters to some new values and restarts the simulation.
> Now, the condition checking, reporting and resetting values works  
> fine, unfortunately I'm not able to get simulation started once  
> again after finishing the first run (I'm using the start() SimState  
> method).

If you're using the command line, it's fairly straightforward: write  
your on top-level MASON loop.
A basic loop is really pretty simple; I think we cover it in one of  
the tutorials.  All you have to do
is write a version of it that repeats, something like:

1. Make a SimState
2. loop as long as you want
3.     set up your parameters, reset your SimState variables as you  
see fit
4.     start()
5.     loop while schedule.step() is true
6.     finish()

If you need to do this with a GUI, then I have to think about how  
best to hack MASON to do this.  Probably the right thing is to hack  
the Console a little, along the lines of how the Console can restart  
with a new seed upon pressing stop.

One gotcha lies in movies and time series -- they won't update unless  
the timestamp is smaller than they've seen before (of course).  Since  
you're restarting, the timestamp is now small again.  You'll need to  
reset them as well, or else do a little hacking there too.