Changing termination conditions for differential evolution

The issue at https://github.com/scipy/scipy/issues/6382 discusses termination of the differential evolution solver. At the moment termination occurs when: np.std(population_energies) / np.abs(np.mean(population_energies)) < tol. However, if the mean of the population_energies is 0, then this unnecessarily extends the number of iterations that the solver carries out. I propose to change this behaviour to: If `tol` is a tuple (rtol, atol) then terminate when np.std(population_energies) <= (atol + rtol * np.abs(np.mean(population_energies))). However, if `tol` is a single float then the existing behaviour will be honoured. Thoughts, comments? _____________________________________ Dr. Andrew Nelson _____________________________________
participants (1)
-
Andrew Nelson