Добавление ограничений к функции с помощью 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])
Как я могу добавить следующие ограничения:
- Значение элементов W положительно. ( W[i] >0)
- Сумма значений W равна 1. (сумма (W[1:5]) == 1)
1 ответ
Optim.jl в настоящее время не выполняет ограниченную оптимизацию. Есть PR, чтобы добавить это, но это еще не совсем слито. Проверьте JuMP для выполнения ограниченной оптимизации.