Wait, wait, what?
They are using agent based simulation for water and power!?
(Warning: long, somewhat heady, most certainly rambling post ahead)
From what I understand, agent based simulation works best when three conditions hold:
1. The "thing" to be models can be separated into more or less distinct entities or agents that can more or less act independently (loosely speaking, is what is being modeled a countable noun?)
2. The "transmission time" (loosely speaking, is the state of the thing being modeled directly correlated to time in a periodic fashion, and if so, is the period over several cycles? If it is not periodic, do changes in relevant state disrupt nearby local equilibrium before affecting parts further away?)
3. The time to reach equilibrium is high (loosely speaking, given no action from the player after a relevant state change, would it take many cycles to reach the new equilibrium?)
This means for things like sims, transportation, crime, plants that grow and reproduce, certain types of disasters like fire (the "unit" is "tile on fire" in this case), stuff like that is a great fit for agent based simulation, and I am glad to see them pursue it. I'm even fine with the shortcut of them only simulating a fraction of the agents each simulation cycle and probabilistically and/or approximately extrapolating the rest, as long as they rotate (or better yet, randomize favoring agents that have been waiting for a full sim for longer more strongly) which ones get chosen. So long as the fraction is judiciously chosen, it leads to a reasonable approximation for a fraction of the CPU cost.
Though I do have to shake my head about each sim not having a designated home and work place (though either or both could change over time, but that would be the exception, not the rule), but instead on each "state transition" just choosing the "closest" slot. That is a shortcut, that unlike the cycling one, does quite detrimentally reduce simulation accuracy.
However, for water...um what?
Yea, the "transmission time" and time to reach equilibrium is rather high, but you can't really seperate it into independent agents. To model true fluid behavior, you would need an absurd number of agents. This is why the fields of fluid dynamics and mechanics exist, to model the complexities the travel time and time to reach equilibrium causes without having to consider each individual molecule and still get a very accurate description of what is happening. That seems like a better way to model a water system, and much less likely to cause strange behavior. Heck, you could even do an iterative approximation each cycle, which would be no more expensive than an agent based simulation, but because of the nature of what is being modeled, would converge on a good approximation of real life behavior much faster.
For power...no, just no.
Power not only can't be modeled effectively using agents (it's even worse than water really, as you would have to track electrons or some approximation thereof, which would have to be even more numerous to get a decent), but it even has a very short transmission time and hits equilibrium much faster. This makes it even easier to compute how much "power" would be at each "edge" and "vertex", as you can assume rather reasonably that equilibrium can be reached over a single simulation cycle, rather than multiple as you may have to do with water (depending on long in in-game time each cycle covers). Again, you can use an iterative approximation if needed (as for highly complicated, branching circuits, the equations to find exact answers can become quite ornery), but as you can assume equilibrium that cycle, you don't even need to consider the previous cycle's state, letting you converge to a decent approximation that cycle even faster; far, far faster and more reliably than you can get with agent simulation.
(end rambling)
Seriously, if Maxis using agent simulation for non-countable entities is true, then I am going to have to face palm.
*readies the Picard pic, just in case*