Tis an interesting problem you raise. It's true that the "hack" ECJ's generational algorithms use for re-evaluation doesn't make any sense in a steady-state model.
I don't know how people have handled multiple tests in parallel steady-state EAs before. I don't recall seeing any discussion of it in the literature.
It seems to me that there are two options, though, that could save you the trouble of implementing a distribution multiple-testing scheme:
- If your evaluation function doesn't exhaust all of a node's resources, run multiple tests in parallel on the same node. This is easy to do inside your implementation of the Problem class.
Your heavy-duty simulations probably eat up all your nodes' processors, though, so this might not help your application.
- Ramp up the population size. In some cases, given the same computational resources, using a large population can be just as effective at washing out the effects of noise as multiple testing.
You can see if your application falls into this category by using a fixed budget of fitness evaluations and seeing if it makes more progress with a big population, or with multiple testing. If the latter truly works much better, then that's a sign that it could be worth your effort to modify ECJ's steady-state master-slave model to support distributed multiple testing.
Just my two cents. Sean et all will be more familiar with what it might take to implement the feature itself.