the tutorial from scipy only shows one possible solution for differential evolution (https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html).
How can i get multiple solutions? And if not, is it because of scipy implementation or are differential evolutions algorithm just designed that way?
import numpy as np
from scipy.optimize import rosen, differential_evolution
bounds = [(0,2), (0, 2), (0, 2), (0, 2), (0, 2)]
result = differential_evolution(rosen, bounds)
result.x, result.fun
There are several hyperparameters that you can set for the evolution algorithm to diverge.
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html
E.g.
[out]:
Having a large variance in the bounds
But since rosen function is formulaic, the variance in the bounds needs to be large enough to see significant changes in the results.
[out]: