Добавление ограничений к функции с помощью Optim.jl в Julia

Я использую библиотеку Optim.jl, чтобы максимизировать значение коэффициента Шарпа

using Optim
function getSharpeRatioNegative(W,ex_mu,S)
  return  dot(W', ex_mu) / sqrt(dot(W',S*W))  
end
f(W::Vector) = getSharpeRatioNegative(W,ex_mu,S) 
result = optimize(f, [0.2;0.2;0.2;0.2;0.2])

Как я могу добавить следующие ограничения:

  1. Значение элементов W положительно. ( W[i] >0)
  2. Сумма значений W равна 1. (сумма (W[1:5]) == 1)

1 ответ

Optim.jl в настоящее время не выполняет ограниченную оптимизацию. Есть PR, чтобы добавить это, но это еще не совсем слито. Проверьте JuMP для выполнения ограниченной оптимизации.

Другие вопросы по тегам