I've been running it for some time now and it seems that the model started to converge towards generation 35 and then diverged after that. i.e. since you consider the loss to be distance from each particle to the food, then the ants ended up somewhat above the food at 35, and then started overshooting it after that. Is that expected behavior?