1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to update rules for a plurality of entities in a simulation as the simulation is running, the method comprising: receiving configuration parameters for the simulation, the configuration parameters including a plurality of rules that control the interactions of the plurality of entities in the simulation; performing the simulation for a first plurality of iterations; analyzing the simulation results to determine if there is an update for the plurality of rules; if there is an update for the plurality of rules, creating the rule update for the plurality of rules; and applying the rule update to the plurality of rules.