June 2008


Options: Use Monospaced Font
Show HTML 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]>
Thu, 26 Jun 2008 23:02:34 -0400
text/plain (23 lines)
I forgot to add this:

You're going to need to perform the split outside of a step() method,  
because there may be several things on the stack ready to go, and  
stacks won't serialize or clone of course.  Instead, the split will  
have to happen in the outer loop which pulses the schedule itself.   
This may put a bit of a kink in your style in terms of building your  
model -- and you'll have to handle the split-test code manually.

Assuming you could reset your simulation state, another possible  
approach would be to create subschedules.  The idea would be this.   
An agent, during its step() method, decides the simulation needs to  
be split for a while.  The agent copies away the current simulation  
state, or whatever is necessary, storing the copy as a local  
variable.  Then it creates a MASON schedule (we'd have to make sure  
everything works nicely there but it should), loads it with agents,  
and runs it.  Then it destroys the schedule , copies back from the  
local variable, creates another MASON schedule, loads it with agents,  
and runs *it*, and so on.  When done branching, we copy back from the  
local variable and return from the step() method maybe.