My current method of perturbation is to cap the total # of activations per candidate globally. When at least 3 improvements in the best global fitness score have been achieved, I cut the global activation limit in half. Obviously, this is fairly catastrophic for the current population. Each generation can increase the limit by 1% if no improvements made. This provides aggressive selection pressure for more efficient networks and forces a different kind of partial restart of the training process (I.e. do what you just did with 50% resources now). Very often this does result in optimization of the network. It also seems to make the networks rebound faster after restarts. At first, a restart can take 10-20 generations to recover. By generation 1000, this is closer to 1-2.