Liviu Panait wrote:

> I believe one of the problems with deterministic scheduling is that  
> you may start seeing all sorts of artifacts.

You are right, but Mike's point is still an interesting one.  Having a 
means to verify correct code functioning is of very high value and 
running experiments n times over to smooth out single run outcomes can 
be time-consuming.  And there is a paucity of easy to use 'tools' to 
help understand the behavior produced in emergent sims.  When I tried to 
replicate Growing Artificial Societies (Epstein and Axtell's 
Sugarscape)  results, I found that I had many kinds of bugs that were 
hard to track down and that my incorrect implementations may be 
partially or fully responsible for why I didn't fully replicate the 
simulation outcomes documented in the book.

For what it's worth, one leading ABM practicioner claimed that he had 
done experiments to demonstrate that randomizing only 20% of a schedule 
was sufficient to eliminate artifacts.  I don't think this has been 

But you would have to turn off other random elements as well, not just 
the scheduler, to make the simulation deterministic enough, depending on 
the debugging or verification goal.  From an unpublished paper on my 
effort to replicate the simulation outcomes described in GAS, here is an 
attempt at a randomization typology for agent-based models:

Type 1 - Initial distributions of entities and their states, such as  
agents' genetic characteristics and initial locations.

Type 2 - Dynamic state assignments from distributions such as the  next 
direction to look in agent visual scan patterns or an agent life  
expectancy at birth.

Type 3 - Order of execution among entities (such as agents), and  
between agents for asynchronous interactions.  In both the classic  and 
MASON models, agents are randomly selected for execution/behavior  each 
time step, but the sequence of agent and environment rules execution  is 

Type 4 - Simulation outcomes that can be characterized by theoretical  
tools such as Markov fields.  For example, Culture (K) eventually  
reaches equilibrium in one of three absorbing states (all blue,  static 
levels of the two colors on the sugar mountains, or all red)

A search of the MASON Sugarscape source code indicates that there are  
24 statements -- calls to -- for Type 1 and Type 2  
randomization.  I implemented about 75% of the rules in GAS.