Я хочу решить проблему нелинейного программирования. Целевая функция нелинейна, а ограничения линейны. Учитывая вектор α(dim is n*1)
, я хочу найти другой вектор θ( dim also is n*1)
, чтобы cos (α, θ) минимизировать . Между тем у θ
есть некоторые ограничения. ограничение: A.dot(θ) < 0
(ноль - вектор-столбец) d Тусклость m*n
, m < n
.
Проблема: is Given α(dim is n*1)
, Тусклость m*n
, m < n
minimize cos(α, θ) = α^T.dot(θ) /(|α||θ|)
subject to
A.dot(θ) < 0 (zero dim m*1)
Я пытался использовать scipy.optimize.minimize, чтобы решить проблему и ввести ограничения. как
scipy.optimize.minimize(method='SLSQP', constraints=cons)
scipy.optimize.minimize(method='COBYLA', constraints=cons)
Результат методов в зависимости от начального значения . Я не знаю, как получить разумное начальное значение, поэтому я устанавливаю начальное значение случайно. Как и ожидалось, метод дает неверный результат , результаты не соответствуют ограничениям.