Page 164 - 6734
P. 164
стохастичних методів оптимізації з границями. Не використовує
градієнтні методи, але потребує більшої кількості ітерацій.
Моделює такі процеси біологічної еволюції як розмноження,
мутація, рекомбінація і відбір. Доступні різні еволюційні стратегії
(http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differ
ential_evolution.html). У прикладі шукається мінімум функції
в межах [1, 4.5].
import numpy as np
from scipy.optimize import differential_evolution
f=lambda x: x*np.sin(x**2) # функція однієї змінної
res = differential_evolution(f, bounds=[(1, 4.5)]) #
знайти мінімум
print res
import matplotlib.pyplot as plt
x=np.linspace(1,5,200)
plt.plot(x,f(x),'k') # графік
plt.scatter(res['x'], res['fun'], linewidths=[3,3]) #
мінімум
plt.xlabel('x');plt.ylabel('y');plt.grid();plt.show()
fun: array([-4.15851032])
jac: array([ 4.79616347e-06])
message: 'Optimization terminated successfully.'
nfev: 158
nit: 9
success: True
x: array([ 4.16024526])
163