Я пытаюсь найти глобальный минимум целевой функции, используя basinhopping
, но большую часть времени он застревает на локальном минимуме. Я прочитал документ для basinhopping
и нашел, что interval
и accept_test
могут быть полезны, но теперь вопрос заключается в том, какие значения дают им, например. Я хочу, чтобы моя целевая функция максимально приближалась к 0 (закрытие 1е-5), не затрачивая слишком много времени на очень большие значения, например 4 или 5. Как и для interval
, как можно узнать, как часто обновляется этапы?scipy.optimize.basinhopping interval и принять тестовые синтаксисы
Вот как я ищу «глобальный» минимум:
np.random.seed(555) # Seeded to allow replication.
minimizer_kwargs = {"method": "L-BFGS-B", "bounds": bnds,, tol=1e-4}
ret = basinhopping(merit_function, abcdex, minimizer_kwargs=minimizer_kwargs, niter=10)
zoom = ret['x']
res = minimize(merit_function, zoom, method = 'L-BFGS-B', bounds=bnds, tol=1e-9)
print res