Я пытаюсь оптимизировать функцию небольшого числа переменных (от 2 до 10). То, что я пытаюсь сделать, это вычислить минимум функции на ограниченном гиперкубаОграниченная оптимизация с использованием матрицы Гессиана (scipy)
[0,1] x [0,1] x ... x [0,1]
Расчет функции, ее градиент и его мешковину аль относительно простым, быстрым и точным.
Теперь моя проблема заключается в следующем:
Использование scipy
, я могу использовать либо scipy.optimize.minimize(..., method='Newton-CG')
или scipy.optimize.minimize(..., method='TNC')
для вычисления минимума функции, однако:
- Первый метод использует матрицу Гессе, но Я не могу установить границы для переменных, которые я оптимизирую
- Второй метод позволяет мне устанавливать границы для переменных, но метод не использует гессиан.
Есть ли какой-либо метод, который будет использовать оба?
Почему якобиан недостаточно в вашем случае? – Moritz
Вы можете попробовать cyipopt – Moritz
@Moritz хорошо, как правило, использование hessian ускорит работу и уменьшит количество оценок funcion. – 5xum