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.